From bcf1cd3cb9c7d5c632579f3d2b868947369d4039 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:20:13 -0500 Subject: [PATCH 01/29] Try to make a test to prevent #1688 (and other prettier breakages) --- .../integration-tests/test/package.json | 3 +- .../test/syntax/prettier-test.ts | 30 +++ pnpm-lock.yaml | 172 +++--------------- 3 files changed, 62 insertions(+), 143 deletions(-) create mode 100644 packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts diff --git a/packages/@glimmer-workspace/integration-tests/test/package.json b/packages/@glimmer-workspace/integration-tests/test/package.json index 02ea2e148..0c3030ca8 100644 --- a/packages/@glimmer-workspace/integration-tests/test/package.json +++ b/packages/@glimmer-workspace/integration-tests/test/package.json @@ -22,6 +22,7 @@ "@glimmer/syntax": "workspace:*", "@glimmer/util": "workspace:*", "@glimmer/validator": "workspace:*", - "@glimmer/wire-format": "workspace:*" + "@glimmer/wire-format": "workspace:*", + "prettier": "^3.4.2" } } diff --git a/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts b/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts new file mode 100644 index 000000000..577e39d0c --- /dev/null +++ b/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts @@ -0,0 +1,30 @@ +import { jitSuite, RenderTest, test } from '@glimmer-workspace/integration-tests'; +import * as prettier from 'prettier'; + +/** + * See: https://github.com/glimmerjs/glimmer-vm/issues/1688 + */ +class PrettierSuite extends RenderTest { + static suiteName = 'Prettier'; + + @test + async 'Underlynig preprocess API works'() { + let result = (await import('@glimmer/syntax')).preprocess('

'); + + this.assert.ok(result, `It can be await import()'d, and doesn't error`); + } + + /** + * Requires the root package.json#pnpm#overrides point at our internal + * copy of @glimmer/syntax, or else prettier brings its own already published + * copy of @glimmer/syntax + */ + @test + async 'Prettier can call preprocess'() { + let result = await prettier.format(`
\n
`, { parser: 'glimmer' }); + + this.assert.strictEqual(result, ''); + } +} + +jitSuite(PrettierSuite); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 126251827..3dc0d0c64 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@1000.0.0) + version: 1000.0.3(@pnpm/logger@5.2.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -308,7 +308,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@5.2.0) + version: 1000.0.5(@pnpm/logger@1000.0.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -736,6 +736,9 @@ importers: '@glimmer/wire-format': specifier: workspace:* version: link:../../../@glimmer/wire-format + prettier: + specifier: ^3.4.2 + version: 3.4.2 packages/@glimmer-workspace/test-utils: dependencies: @@ -12526,15 +12529,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12554,20 +12557,6 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - load-json-file: 6.2.0 - '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12586,7 +12575,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12596,7 +12585,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12646,36 +12635,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/catalogs.config': 1000.0.1 - '@pnpm/catalogs.types': 1000.0.0 - '@pnpm/config.env-replace': 3.0.0 - '@pnpm/constants': 1001.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/git-utils': 1000.0.0 - '@pnpm/matcher': 1000.0.0 - '@pnpm/npm-conf': 3.0.0 - '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - '@pnpm/workspace.read-manifest': 1000.0.1 - better-path-resolve: 1.0.0 - camelcase: 6.3.0 - camelcase-keys: 6.2.2 - can-write-to-dir: 1.1.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - normalize-registry-url: 2.0.0 - path-absolute: 1.0.1 - path-name: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' - read-ini-file: 4.0.0 - realpath-missing: 1.1.0 - which: '@pnpm/which@3.0.1' - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12717,9 +12676,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12727,11 +12686,6 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 - '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12761,15 +12715,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12809,30 +12763,6 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 - '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/dedupe.issues-renderer': 1000.0.0 - '@pnpm/dedupe.types': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/render-peer-issues': 1000.0.2 - '@pnpm/types': 1000.1.0 - ansi-diff: 1.2.0 - boxen: 5.1.2 - chalk: 4.1.2 - cli-truncate: 2.1.0 - normalize-path: 3.0.0 - pretty-bytes: 5.6.0 - pretty-ms: 7.0.1 - ramda: '@pnpm/ramda@0.28.1' - rxjs: 7.8.1 - semver: 7.6.3 - stacktracey: 2.1.8 - string-length: 4.0.2 - '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12995,9 +12925,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13011,14 +12941,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/types': 1000.1.0 - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13064,13 +12986,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13090,19 +13012,6 @@ snapshots: mem: 8.1.1 semver: 7.6.3 - '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/env.system-node-version': 1000.0.1 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - detect-libc: 2.0.3 - execa: safe-execa@0.1.2 - mem: 8.1.1 - semver: 7.6.3 - '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13142,14 +13051,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13168,19 +13077,6 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 - '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/crypto.hash': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/hooks.types': 1001.0.1 - '@pnpm/lockfile.types': 1001.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/store-controller-types': 1001.0.0 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - path-absolute: 1.0.1 - '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13339,11 +13235,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13355,14 +13251,6 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) - '@pnpm/fs.find-packages': 1000.0.3 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) From 07347e6fda71bccb601e30bc0c200362b1cdda4a Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:30:15 -0500 Subject: [PATCH 02/29] Seems fine so far... --- .../integration-tests/test/package.json | 3 +- .../test/syntax/prettier-test.ts | 30 -- .../node-tests/package.json | 17 ++ .../node-tests/prettier.test.ts | 37 +++ pnpm-lock.yaml | 288 ++++++++++++++++++ 5 files changed, 343 insertions(+), 32 deletions(-) delete mode 100644 packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts create mode 100644 packages/@glimmer-workspace/node-tests/package.json create mode 100644 packages/@glimmer-workspace/node-tests/prettier.test.ts diff --git a/packages/@glimmer-workspace/integration-tests/test/package.json b/packages/@glimmer-workspace/integration-tests/test/package.json index 0c3030ca8..02ea2e148 100644 --- a/packages/@glimmer-workspace/integration-tests/test/package.json +++ b/packages/@glimmer-workspace/integration-tests/test/package.json @@ -22,7 +22,6 @@ "@glimmer/syntax": "workspace:*", "@glimmer/util": "workspace:*", "@glimmer/validator": "workspace:*", - "@glimmer/wire-format": "workspace:*", - "prettier": "^3.4.2" + "@glimmer/wire-format": "workspace:*" } } diff --git a/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts b/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts deleted file mode 100644 index 577e39d0c..000000000 --- a/packages/@glimmer-workspace/integration-tests/test/syntax/prettier-test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { jitSuite, RenderTest, test } from '@glimmer-workspace/integration-tests'; -import * as prettier from 'prettier'; - -/** - * See: https://github.com/glimmerjs/glimmer-vm/issues/1688 - */ -class PrettierSuite extends RenderTest { - static suiteName = 'Prettier'; - - @test - async 'Underlynig preprocess API works'() { - let result = (await import('@glimmer/syntax')).preprocess('

'); - - this.assert.ok(result, `It can be await import()'d, and doesn't error`); - } - - /** - * Requires the root package.json#pnpm#overrides point at our internal - * copy of @glimmer/syntax, or else prettier brings its own already published - * copy of @glimmer/syntax - */ - @test - async 'Prettier can call preprocess'() { - let result = await prettier.format(`
\n
`, { parser: 'glimmer' }); - - this.assert.strictEqual(result, ''); - } -} - -jitSuite(PrettierSuite); diff --git a/packages/@glimmer-workspace/node-tests/package.json b/packages/@glimmer-workspace/node-tests/package.json new file mode 100644 index 000000000..ba3b89a63 --- /dev/null +++ b/packages/@glimmer-workspace/node-tests/package.json @@ -0,0 +1,17 @@ +{ + "name": "@glimmer-workspace/node-tests", + "version": "0.92.0", + "type": "module", + "private": true, + "scripts": { + "test:lint": "eslint . --quiet", + "test:node": "vitest" + }, + "dependencies": { + "@glimmer/syntax": "workspace:*", + "prettier": "^3.4.2" + }, + "devDependencies": { + "vitest": "^3.0.4" + } +} diff --git a/packages/@glimmer-workspace/node-tests/prettier.test.ts b/packages/@glimmer-workspace/node-tests/prettier.test.ts new file mode 100644 index 000000000..0d7713a79 --- /dev/null +++ b/packages/@glimmer-workspace/node-tests/prettier.test.ts @@ -0,0 +1,37 @@ +import { describe, it, expect } from 'vitest'; +import * as prettier from 'prettier'; +import { createRequire } from 'node:module'; + +const require = createRequire(import.meta.url); + +/** + * See: https://github.com/glimmerjs/glimmer-vm/issues/1688 + * + * Requires the root package.json#pnpm#overrides point at our internal + * copy of @glimmer/syntax, or else prettier brings its own already published + * copy of @glimmer/syntax + */ +describe('Prettier', () => { + it(`SANITY: we've symlinked to the in-repo copy of @glimmer/syntax`, async () => { + let workspacePath = require.resolve('@glimmer/syntax'); + let prettierPath = require.resolve('prettier'); + let prettierGlimmer = require.resolve('@glimmer/syntax', {paths: [prettierPath]}); + + expect(prettierGlimmer).toBe(workspacePath); + }); + + it('Underlynig preprocess API works', async () => { + let result = (await import('@glimmer/syntax')).preprocess('

'); + + expect(result, `It can be await import()'d, and doesn't error`).toBeTruthy(); + }); + + it('Prettier can call preprocess', async () => { + let result = await prettier.format(`
\n
`, { parser: 'glimmer' }); + + expect(result).toMatchInlineSnapshot(` + "
+
" + `); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3dc0d0c64..d04a72f4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -736,9 +736,19 @@ importers: '@glimmer/wire-format': specifier: workspace:* version: link:../../../@glimmer/wire-format + + packages/@glimmer-workspace/node-tests: + dependencies: + '@glimmer/syntax': + specifier: workspace:* + version: link:../../@glimmer/syntax prettier: specifier: ^3.4.2 version: 3.4.2 + devDependencies: + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) packages/@glimmer-workspace/test-utils: dependencies: @@ -4419,6 +4429,35 @@ packages: resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} + + '@vitest/mocker@3.0.4': + resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + + '@vitest/runner@3.0.4': + resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==} + + '@vitest/snapshot@3.0.4': + resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==} + + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + '@xmldom/xmldom@0.8.10': resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} @@ -4678,6 +4717,10 @@ packages: assert-never@1.4.0: resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -5119,6 +5162,10 @@ packages: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} engines: {node: '>=0.10.0'} @@ -5149,6 +5196,10 @@ packages: charm@1.0.2: resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -5820,6 +5871,10 @@ packages: resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} engines: {node: '>=4'} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -6124,6 +6179,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -6397,6 +6455,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -6465,6 +6526,10 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} @@ -7942,6 +8007,9 @@ packages: resolution: {integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==} engines: {node: '>=4'} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -8823,6 +8891,13 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} @@ -9793,6 +9868,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -9972,6 +10050,9 @@ packages: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} @@ -9987,6 +10068,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} @@ -10269,6 +10353,24 @@ packages: tiny-lr@2.0.0: resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + tmp@0.0.28: resolution: {integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg==} engines: {node: '>=0.4.0'} @@ -10706,6 +10808,11 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite@5.4.10: resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10777,6 +10884,34 @@ packages: yaml: optional: true + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^20.17.10 + '@vitest/browser': 3.0.4 + '@vitest/ui': 3.0.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + walk-sync@0.3.4: resolution: {integrity: sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==} @@ -10857,6 +10992,11 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} @@ -14109,6 +14249,46 @@ snapshots: '@typescript-eslint/types': 8.20.0 eslint-visitor-keys: 4.2.0 + '@vitest/expect@3.0.4': + dependencies: + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.0.4(vite@6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.0.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + + '@vitest/pretty-format@3.0.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.0.4': + dependencies: + '@vitest/utils': 3.0.4 + pathe: 2.0.2 + + '@vitest/snapshot@3.0.4': + dependencies: + '@vitest/pretty-format': 3.0.4 + magic-string: 0.30.17 + pathe: 2.0.2 + + '@vitest/spy@3.0.4': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@3.0.4': + dependencies: + '@vitest/pretty-format': 3.0.4 + loupe: 3.1.2 + tinyrainbow: 2.0.0 + '@xmldom/xmldom@0.8.10': {} '@zkochan/which@2.0.3': @@ -14375,6 +14555,8 @@ snapshots: assert-never@1.4.0: {} + assertion-error@2.0.1: {} + assign-symbols@1.0.0: {} ast-types@0.13.4: @@ -15126,6 +15308,14 @@ snapshots: ansicolors: 0.3.2 redeyed: 2.1.1 + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + chalk@1.1.3: dependencies: ansi-styles: 2.2.1 @@ -15157,6 +15347,8 @@ snapshots: dependencies: inherits: 2.0.4 + check-error@2.1.1: {} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 @@ -15700,6 +15892,8 @@ snapshots: dependencies: mimic-response: 1.0.1 + deep-eql@5.0.2: {} + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -16177,6 +16371,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@1.6.0: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -16605,6 +16801,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} esyes@1.0.3: @@ -16748,6 +16948,8 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 + expect-type@1.1.0: {} + express@4.21.2: dependencies: accepts: 1.3.8 @@ -18435,6 +18637,8 @@ snapshots: cli-cursor: 2.1.0 wrap-ansi: 3.0.1 + loupe@3.1.2: {} + lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -19380,6 +19584,10 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + + pathval@2.0.0: {} + pause-stream@0.0.11: dependencies: through: 2.3.8 @@ -20487,6 +20695,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -20689,6 +20899,8 @@ snapshots: stable@0.1.8: {} + stackback@0.0.2: {} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 @@ -20703,6 +20915,8 @@ snapshots: statuses@2.0.1: {} + std-env@3.8.0: {} + stdin-discarder@0.2.2: {} stream-combiner@0.0.4: @@ -21180,6 +21394,16 @@ snapshots: transitivePeerDependencies: - supports-color + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinypool@1.0.2: {} + + tinyrainbow@2.0.0: {} + + tinyspy@3.0.2: {} + tmp@0.0.28: dependencies: os-tmpdir: 1.0.2 @@ -21639,6 +21863,27 @@ snapshots: vary@1.1.2: {} + vite-node@3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0(supports-color@8.1.1) + es-module-lexer: 1.6.0 + pathe: 2.0.2 + vite: 6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite@5.4.10(@types/node@20.17.10)(terser@5.37.0): dependencies: esbuild: 0.21.5 @@ -21662,6 +21907,44 @@ snapshots: tsx: 4.19.2 yaml: 2.7.0 + vitest@3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + dependencies: + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(vite@6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + debug: 4.4.0(supports-color@8.1.1) + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite-node: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.17.10 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + walk-sync@0.3.4: dependencies: ensure-posix-path: 1.1.1 @@ -21779,6 +22062,11 @@ snapshots: dependencies: isexe: 3.1.1 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wide-align@1.1.5: dependencies: string-width: 4.2.3 From 67841dc0d31d6d08dffc5042b17aa2a3b7490789 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:34:52 -0500 Subject: [PATCH 03/29] Add node testing to CI --- .github/workflows/ci.yml | 15 +++++++++++++++ package.json | 2 +- .../@glimmer-workspace/node-tests/package.json | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa1729faa..4391a99a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,6 +45,7 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} - run: pnpm repo:lint:all + verify: name: Verify runs-on: ubuntu-latest @@ -62,6 +63,20 @@ jobs: - run: pnpm repo:update:metadata - uses: wyvox/action-no-git-diff@v1 + + test-node: + name: Node + runs-on: ubuntu-latest + needs: ['install_dependencies'] + timeout-minutes: 5 + + steps: + - uses: wyvox/action@v1 + with: + node-version: 22.13.0 + repo-token: ${{ secrets.GITHUB_TOKEN }} + - run: pnpm test:node + test-chrome: name: Chrome runs-on: ubuntu-latest diff --git a/package.json b/package.json index cfdbf92bd..bb53bdcfc 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "test:babel-plugins": "yarn workspace @glimmer/vm-babel-plugins test", "test:browserstack": "ember test --test-port=7774 --host 127.0.0.1 --config-file=testem-browserstack.js", "test:lint": "eslint . --quiet", - "test:node": "node bin/run-node-tests.mjs", + "test:node": "pnpm -r test:node", "test:smoke": "SMOKE_TESTS=true ember test", "ts": "node --disable-warning=ExperimentalWarning --experimental-strip-types", "unlink:all": "esyes ./bin/unlink-all.mts" diff --git a/packages/@glimmer-workspace/node-tests/package.json b/packages/@glimmer-workspace/node-tests/package.json index ba3b89a63..abeea00ff 100644 --- a/packages/@glimmer-workspace/node-tests/package.json +++ b/packages/@glimmer-workspace/node-tests/package.json @@ -5,7 +5,7 @@ "private": true, "scripts": { "test:lint": "eslint . --quiet", - "test:node": "vitest" + "test:node": "vitest --run" }, "dependencies": { "@glimmer/syntax": "workspace:*", From 0e3dde17b5e25fcc1117e7ffc1250a611a84d4cd Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:35:11 -0500 Subject: [PATCH 04/29] delete unused file --- bin/run-node-tests.mjs | 46 ------------------------------------------ 1 file changed, 46 deletions(-) delete mode 100755 bin/run-node-tests.mjs diff --git a/bin/run-node-tests.mjs b/bin/run-node-tests.mjs deleted file mode 100755 index 927f6ea45..000000000 --- a/bin/run-node-tests.mjs +++ /dev/null @@ -1,46 +0,0 @@ -import path from 'node:path'; - -import { execaSync } from 'execa'; - -const __dirname = new URL('.', import.meta.url).pathname; - -const PROJECT_ROOT = path.resolve(__dirname, '..'); -const EMBER_BIN = 'ember'; -const QUNIT_BIN = 'qunit'; -const NODE_TEST_GLOB = '@glimmer/{node,bundle-compiler}/test/**/*node-test.js'; - -// With the TAP reporter, testem swallows any errors generated while running -// this script that are not in TAP format and does not treat non-zero exit codes -// as a test failure. This handler ensures that any non-zero exits emit a -// TAP-compatible bail out message. -process.on('exit', (code) => { - if (code !== 0) { - console.log('Bail out! Non-zero exit code ' + code); - } -}); - -let outputDir = process.env['EMBER_CLI_TEST_OUTPUT']; - -// When running inside `ember test`, we already have a build we can use. -if (outputDir) { - process.chdir(outputDir); - exec(QUNIT_BIN, [NODE_TEST_GLOB]); -} else { - // When running script directly, we need to build first to ensure we have - // tests to run. - process.chdir(PROJECT_ROOT); - exec(EMBER_BIN, ['build']); - exec(QUNIT_BIN, [`dist/${NODE_TEST_GLOB}`]); -} - -// Executes a command and pipes stdout back to the user. -/** - * @param {string} command - * @param {readonly string[] | undefined} args - */ -function exec(command, args) { - execaSync(command, args, { - stdio: 'inherit', - preferLocal: true, - }); -} From dcebdb43128d41064f9070c7568f13fd4f59fb95 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:35:44 -0500 Subject: [PATCH 05/29] Remove mention of run-node-tests --- repo-metadata/metadata.json | 1 - 1 file changed, 1 deletion(-) diff --git a/repo-metadata/metadata.json b/repo-metadata/metadata.json index 5d3c8e26c..f5e903616 100644 --- a/repo-metadata/metadata.json +++ b/repo-metadata/metadata.json @@ -47,7 +47,6 @@ "./package.json": [[["default"], "./package.json"]], "./patch-all.mjs": [[["default"], "./patch-all.mjs"]], "./run-browserstack-tests.mjs": [[["default"], "./run-browserstack-tests.mjs"]], - "./run-node-tests.mjs": [[["default"], "./run-node-tests.mjs"]], "./run-tests.mjs": [[["default"], "./run-tests.mjs"]], "./run-types-tests.mjs": [[["default"], "./run-types-tests.mjs"]], "./sync-npm-owners.mjs": [[["default"], "./sync-npm-owners.mjs"]] From 42ee4d0edd67cb798a900cb5e26d05683296e0bd Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:48:48 -0500 Subject: [PATCH 06/29] Why isn't linting working? --- .../package.json | 8 +- .../tests}/prettier.test.ts | 0 pnpm-lock.yaml | 195 ++++++++++++++---- 3 files changed, 162 insertions(+), 41 deletions(-) rename packages/@glimmer-workspace/{node-tests => integration-node-tests}/package.json (67%) rename packages/@glimmer-workspace/{node-tests => integration-node-tests/tests}/prettier.test.ts (100%) diff --git a/packages/@glimmer-workspace/node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json similarity index 67% rename from packages/@glimmer-workspace/node-tests/package.json rename to packages/@glimmer-workspace/integration-node-tests/package.json index abeea00ff..d3fa8b8d1 100644 --- a/packages/@glimmer-workspace/node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -1,8 +1,14 @@ { - "name": "@glimmer-workspace/node-tests", + "name": "@glimmer-workspace/integration-node-tests", "version": "0.92.0", "type": "module", "private": true, + "repo-meta": { + "strictness": "loose", + "lint": [ + "tests/**/*" + ] + }, "scripts": { "test:lint": "eslint . --quiet", "test:node": "vitest --run" diff --git a/packages/@glimmer-workspace/node-tests/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts similarity index 100% rename from packages/@glimmer-workspace/node-tests/prettier.test.ts rename to packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d04a72f4c..32b99ff72 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@5.2.0) + version: 1000.0.3(@pnpm/logger@1000.0.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -308,7 +308,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@1000.0.0) + version: 1000.0.5(@pnpm/logger@5.2.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -592,6 +592,19 @@ importers: specifier: ^9.18.0 version: 9.18.0(jiti@2.4.2) + packages/@glimmer-workspace/integration-node-tests: + dependencies: + '@glimmer/syntax': + specifier: workspace:* + version: link:../../@glimmer/syntax + prettier: + specifier: ^3.4.2 + version: 3.4.2 + devDependencies: + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + packages/@glimmer-workspace/integration-tests: dependencies: '@glimmer-workspace/test-utils': @@ -737,19 +750,6 @@ importers: specifier: workspace:* version: link:../../../@glimmer/wire-format - packages/@glimmer-workspace/node-tests: - dependencies: - '@glimmer/syntax': - specifier: workspace:* - version: link:../../@glimmer/syntax - prettier: - specifier: ^3.4.2 - version: 3.4.2 - devDependencies: - vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) - packages/@glimmer-workspace/test-utils: dependencies: '@glimmer/interfaces': @@ -12669,15 +12669,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/logger': 1000.0.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12697,6 +12697,20 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 + '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + load-json-file: 6.2.0 + '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12715,7 +12729,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12725,7 +12739,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12775,6 +12789,36 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/catalogs.config': 1000.0.1 + '@pnpm/catalogs.types': 1000.0.0 + '@pnpm/config.env-replace': 3.0.0 + '@pnpm/constants': 1001.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/git-utils': 1000.0.0 + '@pnpm/matcher': 1000.0.0 + '@pnpm/npm-conf': 3.0.0 + '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + '@pnpm/workspace.read-manifest': 1000.0.1 + better-path-resolve: 1.0.0 + camelcase: 6.3.0 + camelcase-keys: 6.2.2 + can-write-to-dir: 1.1.1 + is-subdir: 1.2.0 + is-windows: 1.0.2 + normalize-registry-url: 2.0.0 + path-absolute: 1.0.1 + path-name: 1.0.0 + ramda: '@pnpm/ramda@0.28.1' + read-ini-file: 4.0.0 + realpath-missing: 1.1.0 + which: '@pnpm/which@3.0.1' + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12816,9 +12860,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12826,6 +12870,11 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 + '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12855,15 +12904,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12903,6 +12952,30 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 + '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/dedupe.issues-renderer': 1000.0.0 + '@pnpm/dedupe.types': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/render-peer-issues': 1000.0.2 + '@pnpm/types': 1000.1.0 + ansi-diff: 1.2.0 + boxen: 5.1.2 + chalk: 4.1.2 + cli-truncate: 2.1.0 + normalize-path: 3.0.0 + pretty-bytes: 5.6.0 + pretty-ms: 7.0.1 + ramda: '@pnpm/ramda@0.28.1' + rxjs: 7.8.1 + semver: 7.6.3 + stacktracey: 2.1.8 + string-length: 4.0.2 + '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13065,9 +13138,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13081,6 +13154,14 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/types': 1000.1.0 + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13126,13 +13207,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13152,6 +13233,19 @@ snapshots: mem: 8.1.1 semver: 7.6.3 + '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/env.system-node-version': 1000.0.1 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + detect-libc: 2.0.3 + execa: safe-execa@0.1.2 + mem: 8.1.1 + semver: 7.6.3 + '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13191,14 +13285,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13217,6 +13311,19 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 + '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/crypto.hash': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/hooks.types': 1001.0.1 + '@pnpm/lockfile.types': 1001.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/store-controller-types': 1001.0.0 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + path-absolute: 1.0.1 + '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13375,11 +13482,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13391,6 +13498,14 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) + '@pnpm/fs.find-packages': 1000.0.3 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) From 4554a5ab54dae27d777ad4b8636048311185d59b Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 12:43:50 -0500 Subject: [PATCH 07/29] As I feared, we have the build wrong --- .../integration-node-tests/package.json | 1 + .../tests/prettier.test.ts | 111 ++++++++++- pnpm-lock.yaml | 172 +++--------------- turbo.json | 3 +- 4 files changed, 143 insertions(+), 144 deletions(-) diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index d3fa8b8d1..2c8b3576e 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -15,6 +15,7 @@ }, "dependencies": { "@glimmer/syntax": "workspace:*", + "execa": "^9.5.2", "prettier": "^3.4.2" }, "devDependencies": { diff --git a/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts index 0d7713a79..c7e1be449 100644 --- a/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts @@ -1,7 +1,12 @@ import { describe, it, expect } from 'vitest'; import * as prettier from 'prettier'; import { createRequire } from 'node:module'; +import os from 'node:os'; +import { join } from 'node:path'; +import { $ } from 'execa'; +import { readFile, mkdtemp, writeFile } from 'node:fs/promises'; +const monorepoRoot = join(import.meta.dirname, '../../../../'); const require = createRequire(import.meta.url); /** @@ -15,7 +20,7 @@ describe('Prettier', () => { it(`SANITY: we've symlinked to the in-repo copy of @glimmer/syntax`, async () => { let workspacePath = require.resolve('@glimmer/syntax'); let prettierPath = require.resolve('prettier'); - let prettierGlimmer = require.resolve('@glimmer/syntax', {paths: [prettierPath]}); + let prettierGlimmer = require.resolve('@glimmer/syntax', { paths: [prettierPath] }); expect(prettierGlimmer).toBe(workspacePath); }); @@ -34,4 +39,108 @@ describe('Prettier', () => { " `); }); + + /** + * This is important because we don't test the code we ship to npm + * (the code we ship to npm goes through a build process, and we opted + * to not do that for in-repo dev ergonomics) + * + * Process: + * 1. build @glimmer/syntax (and dependencies) + * 2. creat a tmp folder + * 3. create a project in that tmp folder + * 4. pack and add the tarballs to the project + * 6. See if a basic import and call to pre-process works + */ + it('Uses the real build, and not our monorepo infra', async () => { + /** + * pnpm packs tgz's with the name format ${hyphenated-package-name}-${version}.tgz + */ + async function versionOf(name) { + let manifestPath = join(monorepoRoot, 'packages', name, 'package.json'); + let manifestString = await readFile(manifestPath); + return JSON.parse(manifestString.toString()).version; + } + + let tarballs = { + syntax: `glimmer-syntax-${await versionOf('@glimmer/syntax')}`, + util: `glimmer-util-${await versionOf('@glimmer/util')}`, + wireFormat: `glimmer-wire-format-${await versionOf('@glimmer/wire-format')}`, + }; + + let file = `console.log((await import('@glimmer/syntax')).preprocess('

'));`; + let manifest = JSON.stringify({ + name: 'real-test', + type: 'module', + private: true, + devDependencies: { + '@glimmer/syntax': `file://./${tarballs.syntax}`, + '@glimmer/util': `file://./${tarballs.util}`, + '@glimmer/wire-format': `file://./${tarballs.wireFormat}`, + }, + pnpm: { + overrides: { + '@glimmer/syntax': `file://./${tarballs.syntax}.tgz`, + '@glimmer/util': `file://./${tarballs.util}.tgz`, + '@glimmer/wire-format': `file://./${tarballs.wireFormat}.tgz`, + }, + }, + }); + + async function newTmpDir() { + const tmpDir = await mkdtemp( + join(os.tmpdir(), `glimmer-node-integration-testing-${Date.now()}-`) + ); + + return tmpDir; + } + + function inDir(dir: string, cmd: string) { + return $({ cwd: dir, preferLocal: true, shell: true })(cmd); + } + function inRoot(cmd: string) { + return inDir(monorepoRoot, cmd); + } + + function inTmp(cmd: string) { + return inDir(tmp, cmd); + } + + ////////// + // 1 build + // When turbo is set up with "dependsOn": "["^prepack"], we see these packages + // - @glimmer/syntax + // - @glimmer/util + // - @glimmer/wire-format + // + // So these 3 packages need to be packed and installed + await inRoot(`pnpm turbo --filter "@glimmer/syntax" prepack`); + + ////////// + // 2 create a space that doesn't mess up the repo + let tmp = await newTmpDir(); + + console.debug(`Project can be inspected at ${tmp}`); + + ////////// + // 3 create a project that represents real consumer usage + await writeFile(join(tmp, 'package.json'), manifest); + await writeFile(join(tmp, 'index.js'), file); + + ////////// + // 4 install the tarballs using stable names so we don't have to + // dynamically build the package.json + let packToTemp = `pnpm pack --pack-destination ${tmp}`; + await inDir(join(monorepoRoot, 'packages/@glimmer/syntax'), packToTemp); + await inDir(join(monorepoRoot, 'packages/@glimmer/util'), packToTemp); + await inDir(join(monorepoRoot, 'packages/@glimmer/wire-format'), packToTemp); + await inTmp(`pnpm install`); + + ////////// + // 5 does it work? + let result = await inTmp(`node index.js`); + let stdout = result.stdout; + + expect(stdout).toMatchInlineSnapshot(); + }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32b99ff72..202b7bd4d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@1000.0.0) + version: 1000.0.3(@pnpm/logger@5.2.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -308,7 +308,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@5.2.0) + version: 1000.0.5(@pnpm/logger@1000.0.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -597,6 +597,9 @@ importers: '@glimmer/syntax': specifier: workspace:* version: link:../../@glimmer/syntax + execa: + specifier: ^9.5.2 + version: 9.5.2 prettier: specifier: ^3.4.2 version: 3.4.2 @@ -12669,15 +12672,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12697,20 +12700,6 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - load-json-file: 6.2.0 - '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12729,7 +12718,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12739,7 +12728,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12789,36 +12778,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/catalogs.config': 1000.0.1 - '@pnpm/catalogs.types': 1000.0.0 - '@pnpm/config.env-replace': 3.0.0 - '@pnpm/constants': 1001.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/git-utils': 1000.0.0 - '@pnpm/matcher': 1000.0.0 - '@pnpm/npm-conf': 3.0.0 - '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - '@pnpm/workspace.read-manifest': 1000.0.1 - better-path-resolve: 1.0.0 - camelcase: 6.3.0 - camelcase-keys: 6.2.2 - can-write-to-dir: 1.1.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - normalize-registry-url: 2.0.0 - path-absolute: 1.0.1 - path-name: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' - read-ini-file: 4.0.0 - realpath-missing: 1.1.0 - which: '@pnpm/which@3.0.1' - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12860,9 +12819,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12870,11 +12829,6 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 - '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12904,15 +12858,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12952,30 +12906,6 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 - '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/dedupe.issues-renderer': 1000.0.0 - '@pnpm/dedupe.types': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/render-peer-issues': 1000.0.2 - '@pnpm/types': 1000.1.0 - ansi-diff: 1.2.0 - boxen: 5.1.2 - chalk: 4.1.2 - cli-truncate: 2.1.0 - normalize-path: 3.0.0 - pretty-bytes: 5.6.0 - pretty-ms: 7.0.1 - ramda: '@pnpm/ramda@0.28.1' - rxjs: 7.8.1 - semver: 7.6.3 - stacktracey: 2.1.8 - string-length: 4.0.2 - '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13138,9 +13068,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13154,14 +13084,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/types': 1000.1.0 - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13207,13 +13129,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13233,19 +13155,6 @@ snapshots: mem: 8.1.1 semver: 7.6.3 - '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/env.system-node-version': 1000.0.1 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - detect-libc: 2.0.3 - execa: safe-execa@0.1.2 - mem: 8.1.1 - semver: 7.6.3 - '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13285,14 +13194,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13311,19 +13220,6 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 - '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/crypto.hash': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/hooks.types': 1001.0.1 - '@pnpm/lockfile.types': 1001.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/store-controller-types': 1001.0.0 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - path-absolute: 1.0.1 - '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13482,11 +13378,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13498,14 +13394,6 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) - '@pnpm/fs.find-packages': 1000.0.3 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) diff --git a/turbo.json b/turbo.json index fd41e11e9..c7635d380 100644 --- a/turbo.json +++ b/turbo.json @@ -34,7 +34,8 @@ "outputs": ["dist/**"] }, "prepack": { - "outputs": ["dist/**"] + "outputs": ["dist/**"], + "dependsOn": ["^prepack"] }, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], From 85685a9d8dceb833288afe39ff82a313fb0f62df Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 12:58:03 -0500 Subject: [PATCH 08/29] idk man --- .../integration-node-tests/package.json | 2 +- .../{tests => test}/prettier.test.ts | 23 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) rename packages/@glimmer-workspace/integration-node-tests/{tests => test}/prettier.test.ts (84%) diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index 2c8b3576e..41896bfa7 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -6,7 +6,7 @@ "repo-meta": { "strictness": "loose", "lint": [ - "tests/**/*" + "test/**/*" ] }, "scripts": { diff --git a/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts similarity index 84% rename from packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts rename to packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts index c7e1be449..f205dc1ad 100644 --- a/packages/@glimmer-workspace/integration-node-tests/tests/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -50,7 +50,7 @@ describe('Prettier', () => { * 2. creat a tmp folder * 3. create a project in that tmp folder * 4. pack and add the tarballs to the project - * 6. See if a basic import and call to pre-process works + * 5. See if a basic import and call to pre-process works */ it('Uses the real build, and not our monorepo infra', async () => { /** @@ -95,15 +95,15 @@ describe('Prettier', () => { return tmpDir; } - function inDir(dir: string, cmd: string) { - return $({ cwd: dir, preferLocal: true, shell: true })(cmd); + function inDir(dir: string, cmd: string, options = {}) { + return $({ cwd: dir, preferLocal: true, shell: true, ...options })(cmd); } function inRoot(cmd: string) { return inDir(monorepoRoot, cmd); } - function inTmp(cmd: string) { - return inDir(tmp, cmd); + function inTmp(cmd: string, options = {}) { + return inDir(tmp, cmd, options); } ////////// @@ -138,9 +138,16 @@ describe('Prettier', () => { ////////// // 5 does it work? - let result = await inTmp(`node index.js`); - let stdout = result.stdout; + // + // NOTE: dev isn't allowed because it requires that @glimmer/env be compiled away + // let dev = await inTmp(`node --conditions="development" index.js`); + // + let prod = await inTmp(`node --conditions="production" index.js`); + // should also be prod, as dev won't work without a build system + let defaultConditions = await inTmp(`node index.js`); - expect(stdout).toMatchInlineSnapshot(); + expect(prod.stdout).toMatchInlineSnapshot(); + // expect(dev.stdout).toMatchInlineSnapshot(); + expect(defaultConditions.stdout).toMatchInlineSnapshot(); }); }); From b22bc20be52c8f008a402bdefa848287254a6413 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:07:01 -0500 Subject: [PATCH 09/29] run pnpm repo:update:metadata --- repo-metadata/metadata.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/repo-metadata/metadata.json b/repo-metadata/metadata.json index f5e903616..850d9c108 100644 --- a/repo-metadata/metadata.json +++ b/repo-metadata/metadata.json @@ -107,6 +107,21 @@ ".": [[["default"], "./index.js"]] } }, + { + "root": "packages/@glimmer-workspace/integration-node-tests", + "name": "@glimmer-workspace/integration-node-tests", + "version": "0.92.0", + "type": "module", + "private": true, + "repo-meta": { + "built": false, + "strictness": "loose", + "lint": ["test/**/*"] + }, + "entryPoints": { + "./package.json": [[["default"], "./package.json"]] + } + }, { "root": "packages/@glimmer-workspace/integration-tests", "name": "@glimmer-workspace/integration-tests", From 41c9a7b883ab38ecca72cb44c12c2073b6de4b8e Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:13:04 -0500 Subject: [PATCH 10/29] Lints -- these are actually all correct --- .../integration-node-tests/test/prettier.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts index f205dc1ad..301aec4c2 100644 --- a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -1,10 +1,11 @@ -import { describe, it, expect } from 'vitest'; -import * as prettier from 'prettier'; +import { mkdtemp, readFile, writeFile } from 'node:fs/promises'; import { createRequire } from 'node:module'; import os from 'node:os'; import { join } from 'node:path'; + import { $ } from 'execa'; -import { readFile, mkdtemp, writeFile } from 'node:fs/promises'; +import * as prettier from 'prettier'; +import { describe, expect, it } from 'vitest'; const monorepoRoot = join(import.meta.dirname, '../../../../'); const require = createRequire(import.meta.url); @@ -17,7 +18,7 @@ const require = createRequire(import.meta.url); * copy of @glimmer/syntax */ describe('Prettier', () => { - it(`SANITY: we've symlinked to the in-repo copy of @glimmer/syntax`, async () => { + it(`SANITY: we've symlinked to the in-repo copy of @glimmer/syntax`, () => { let workspacePath = require.resolve('@glimmer/syntax'); let prettierPath = require.resolve('prettier'); let prettierGlimmer = require.resolve('@glimmer/syntax', { paths: [prettierPath] }); @@ -120,6 +121,7 @@ describe('Prettier', () => { // 2 create a space that doesn't mess up the repo let tmp = await newTmpDir(); + // eslint-disable-next-line no-console console.debug(`Project can be inspected at ${tmp}`); ////////// From e484f96bb299fca644f36f0c8dbacbe661ec55af Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:58:31 -0500 Subject: [PATCH 11/29] Fix #1688 --- .../test/prettier.test.ts | 58 ++++++++++++++++++- packages/@glimmer/debug-util/lib/present.ts | 4 +- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts index 301aec4c2..e4203a805 100644 --- a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -53,7 +53,7 @@ describe('Prettier', () => { * 4. pack and add the tarballs to the project * 5. See if a basic import and call to pre-process works */ - it('Uses the real build, and not our monorepo infra', async () => { + it('Uses the real build, and not our monorepo infra', { timeout: 20_000 }, async () => { /** * pnpm packs tgz's with the name format ${hyphenated-package-name}-${version}.tgz */ @@ -148,8 +148,60 @@ describe('Prettier', () => { // should also be prod, as dev won't work without a build system let defaultConditions = await inTmp(`node index.js`); - expect(prod.stdout).toMatchInlineSnapshot(); + expect(prod.stdout).toMatchInlineSnapshot(` + "{ + type: 'Template', + body: [ + { + type: 'ElementNode', + path: [Object], + attributes: [], + modifiers: [], + params: [], + comments: [], + children: [], + openTag: [j], + closeTag: [j], + loc: [j], + tag: [Getter/Setter], + blockParams: [Getter/Setter], + selfClosing: [Getter/Setter] + } + ], + blockParams: [], + loc: j { + data: J { source: [tt], hbsPositions: [Object], kind: 'HbsPosition' }, + isInvisible: false + } + }" + `); // expect(dev.stdout).toMatchInlineSnapshot(); - expect(defaultConditions.stdout).toMatchInlineSnapshot(); + expect(defaultConditions.stdout).toMatchInlineSnapshot(` + "{ + type: 'Template', + body: [ + { + type: 'ElementNode', + path: [Object], + attributes: [], + modifiers: [], + params: [], + comments: [], + children: [], + openTag: [j], + closeTag: [j], + loc: [j], + tag: [Getter/Setter], + blockParams: [Getter/Setter], + selfClosing: [Getter/Setter] + } + ], + blockParams: [], + loc: j { + data: J { source: [tt], hbsPositions: [Object], kind: 'HbsPosition' }, + isInvisible: false + } + }" + `); }); }); diff --git a/packages/@glimmer/debug-util/lib/present.ts b/packages/@glimmer/debug-util/lib/present.ts index 5b2886e74..e03386ab4 100644 --- a/packages/@glimmer/debug-util/lib/present.ts +++ b/packages/@glimmer/debug-util/lib/present.ts @@ -14,8 +14,8 @@ export function assertPresent(value: T, message?: string): asserts value is P } } -export function isPresentArray(list: readonly T[]): list is PresentArray { - return list.length > 0; +export function isPresentArray(list?: readonly T[]): list is PresentArray { + return list ? list.length > 0 : false; } export function ifPresent( From ba76cdbb7ade52a7775261da9130dbcba1236b48 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:41:56 -0500 Subject: [PATCH 12/29] Move test project into a real project, rather than tmp for easier poking around --- package.json | 2 +- .../integration-node-tests/.gitignore | 2 + .../integration-node-tests/package.json | 1 + .../test/prettier.test.ts | 171 +----------------- .../integration-node-tests/test/smoke.test.ts | 25 +++ smoke-tests/node/.gitignore | 2 + smoke-tests/node/package.json | 41 +++++ smoke-tests/node/setup.ts | 54 ++++++ smoke-tests/node/tests/syntax.test.ts | 8 + smoke-tests/node/vite.config.ts | 3 + tsconfig.json | 1 + turbo.json | 1 + 12 files changed, 140 insertions(+), 171 deletions(-) create mode 100644 packages/@glimmer-workspace/integration-node-tests/.gitignore create mode 100644 packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts create mode 100644 smoke-tests/node/.gitignore create mode 100644 smoke-tests/node/package.json create mode 100644 smoke-tests/node/setup.ts create mode 100644 smoke-tests/node/tests/syntax.test.ts create mode 100644 smoke-tests/node/vite.config.ts diff --git a/package.json b/package.json index bb53bdcfc..ec8c2060c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "test:babel-plugins": "yarn workspace @glimmer/vm-babel-plugins test", "test:browserstack": "ember test --test-port=7774 --host 127.0.0.1 --config-file=testem-browserstack.js", "test:lint": "eslint . --quiet", - "test:node": "pnpm -r test:node", + "test:node": "pnpm turbo test:node", "test:smoke": "SMOKE_TESTS=true ember test", "ts": "node --disable-warning=ExperimentalWarning --experimental-strip-types", "unlink:all": "esyes ./bin/unlink-all.mts" diff --git a/packages/@glimmer-workspace/integration-node-tests/.gitignore b/packages/@glimmer-workspace/integration-node-tests/.gitignore new file mode 100644 index 000000000..8d12edbe8 --- /dev/null +++ b/packages/@glimmer-workspace/integration-node-tests/.gitignore @@ -0,0 +1,2 @@ +packages/ +pnpm-lock.yaml diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index 41896bfa7..cd72c9fcc 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -19,6 +19,7 @@ "prettier": "^3.4.2" }, "devDependencies": { + "@glimmer-workspace/repo-metadata": "workspace:*", "vitest": "^3.0.4" } } diff --git a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts index e4203a805..fd6ce4985 100644 --- a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -1,13 +1,8 @@ -import { mkdtemp, readFile, writeFile } from 'node:fs/promises'; import { createRequire } from 'node:module'; -import os from 'node:os'; -import { join } from 'node:path'; -import { $ } from 'execa'; import * as prettier from 'prettier'; import { describe, expect, it } from 'vitest'; -const monorepoRoot = join(import.meta.dirname, '../../../../'); const require = createRequire(import.meta.url); /** @@ -18,7 +13,7 @@ const require = createRequire(import.meta.url); * copy of @glimmer/syntax */ describe('Prettier', () => { - it(`SANITY: we've symlinked to the in-repo copy of @glimmer/syntax`, () => { + it(`SMOKE: we've symlinked to the in-repo copy of @glimmer/syntax`, () => { let workspacePath = require.resolve('@glimmer/syntax'); let prettierPath = require.resolve('prettier'); let prettierGlimmer = require.resolve('@glimmer/syntax', { paths: [prettierPath] }); @@ -40,168 +35,4 @@ describe('Prettier', () => { " `); }); - - /** - * This is important because we don't test the code we ship to npm - * (the code we ship to npm goes through a build process, and we opted - * to not do that for in-repo dev ergonomics) - * - * Process: - * 1. build @glimmer/syntax (and dependencies) - * 2. creat a tmp folder - * 3. create a project in that tmp folder - * 4. pack and add the tarballs to the project - * 5. See if a basic import and call to pre-process works - */ - it('Uses the real build, and not our monorepo infra', { timeout: 20_000 }, async () => { - /** - * pnpm packs tgz's with the name format ${hyphenated-package-name}-${version}.tgz - */ - async function versionOf(name) { - let manifestPath = join(monorepoRoot, 'packages', name, 'package.json'); - let manifestString = await readFile(manifestPath); - return JSON.parse(manifestString.toString()).version; - } - - let tarballs = { - syntax: `glimmer-syntax-${await versionOf('@glimmer/syntax')}`, - util: `glimmer-util-${await versionOf('@glimmer/util')}`, - wireFormat: `glimmer-wire-format-${await versionOf('@glimmer/wire-format')}`, - }; - - let file = `console.log((await import('@glimmer/syntax')).preprocess('

'));`; - let manifest = JSON.stringify({ - name: 'real-test', - type: 'module', - private: true, - devDependencies: { - '@glimmer/syntax': `file://./${tarballs.syntax}`, - '@glimmer/util': `file://./${tarballs.util}`, - '@glimmer/wire-format': `file://./${tarballs.wireFormat}`, - }, - pnpm: { - overrides: { - '@glimmer/syntax': `file://./${tarballs.syntax}.tgz`, - '@glimmer/util': `file://./${tarballs.util}.tgz`, - '@glimmer/wire-format': `file://./${tarballs.wireFormat}.tgz`, - }, - }, - }); - - async function newTmpDir() { - const tmpDir = await mkdtemp( - join(os.tmpdir(), `glimmer-node-integration-testing-${Date.now()}-`) - ); - - return tmpDir; - } - - function inDir(dir: string, cmd: string, options = {}) { - return $({ cwd: dir, preferLocal: true, shell: true, ...options })(cmd); - } - function inRoot(cmd: string) { - return inDir(monorepoRoot, cmd); - } - - function inTmp(cmd: string, options = {}) { - return inDir(tmp, cmd, options); - } - - ////////// - // 1 build - // When turbo is set up with "dependsOn": "["^prepack"], we see these packages - // - @glimmer/syntax - // - @glimmer/util - // - @glimmer/wire-format - // - // So these 3 packages need to be packed and installed - await inRoot(`pnpm turbo --filter "@glimmer/syntax" prepack`); - - ////////// - // 2 create a space that doesn't mess up the repo - let tmp = await newTmpDir(); - - // eslint-disable-next-line no-console - console.debug(`Project can be inspected at ${tmp}`); - - ////////// - // 3 create a project that represents real consumer usage - await writeFile(join(tmp, 'package.json'), manifest); - await writeFile(join(tmp, 'index.js'), file); - - ////////// - // 4 install the tarballs using stable names so we don't have to - // dynamically build the package.json - let packToTemp = `pnpm pack --pack-destination ${tmp}`; - await inDir(join(monorepoRoot, 'packages/@glimmer/syntax'), packToTemp); - await inDir(join(monorepoRoot, 'packages/@glimmer/util'), packToTemp); - await inDir(join(monorepoRoot, 'packages/@glimmer/wire-format'), packToTemp); - await inTmp(`pnpm install`); - - ////////// - // 5 does it work? - // - // NOTE: dev isn't allowed because it requires that @glimmer/env be compiled away - // let dev = await inTmp(`node --conditions="development" index.js`); - // - let prod = await inTmp(`node --conditions="production" index.js`); - // should also be prod, as dev won't work without a build system - let defaultConditions = await inTmp(`node index.js`); - - expect(prod.stdout).toMatchInlineSnapshot(` - "{ - type: 'Template', - body: [ - { - type: 'ElementNode', - path: [Object], - attributes: [], - modifiers: [], - params: [], - comments: [], - children: [], - openTag: [j], - closeTag: [j], - loc: [j], - tag: [Getter/Setter], - blockParams: [Getter/Setter], - selfClosing: [Getter/Setter] - } - ], - blockParams: [], - loc: j { - data: J { source: [tt], hbsPositions: [Object], kind: 'HbsPosition' }, - isInvisible: false - } - }" - `); - // expect(dev.stdout).toMatchInlineSnapshot(); - expect(defaultConditions.stdout).toMatchInlineSnapshot(` - "{ - type: 'Template', - body: [ - { - type: 'ElementNode', - path: [Object], - attributes: [], - modifiers: [], - params: [], - comments: [], - children: [], - openTag: [j], - closeTag: [j], - loc: [j], - tag: [Getter/Setter], - blockParams: [Getter/Setter], - selfClosing: [Getter/Setter] - } - ], - blockParams: [], - loc: j { - data: J { source: [tt], hbsPositions: [Object], kind: 'HbsPosition' }, - isInvisible: false - } - }" - `); - }); }); diff --git a/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts new file mode 100644 index 000000000..c9f2a82fe --- /dev/null +++ b/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts @@ -0,0 +1,25 @@ +import { join } from 'node:path'; + +import { WORKSPACE_ROOT } from '@glimmer-workspace/repo-metadata'; +import { $ } from 'execa'; +import { describe, it } from 'vitest'; + +const NODE_SMOKE_DIR = join(WORKSPACE_ROOT, './smoke-tests/node'); + +function inNodeSmoke(cmd: string, options = {}) { + return $({ cwd: NODE_SMOKE_DIR, preferLocal: true, shell: true, ...options })(cmd); +} + +describe('Smake Tests', () => { + /** + * This is important because we don't test the code we ship to npm + * (the code we ship to npm goes through a build process, and we opted + * to not do that for in-repo dev ergonomics) + */ + it('Uses the real build, and not our monorepo infra', { timeout: 20_000 }, async () => { + await inNodeSmoke( + `node --disable-warning=ExperimentalWarning --experimental-strip-types ./setup.ts` + ); + await inNodeSmoke(`pnpm run test:node`); + }); +}); diff --git a/smoke-tests/node/.gitignore b/smoke-tests/node/.gitignore new file mode 100644 index 000000000..8d12edbe8 --- /dev/null +++ b/smoke-tests/node/.gitignore @@ -0,0 +1,2 @@ +packages/ +pnpm-lock.yaml diff --git a/smoke-tests/node/package.json b/smoke-tests/node/package.json new file mode 100644 index 000000000..90363ec3b --- /dev/null +++ b/smoke-tests/node/package.json @@ -0,0 +1,41 @@ +{ + "name": "@glimmer-workspace/smoke-tests-node", + "type": "module", + "private": true, + "engines": { + "node": ">=18.0.0" + }, + "exports": { + ".": "./setup.ts" + }, + "scripts": { + "test:lint": "eslint . --quiet", + "test:node": "NODE_ENV=production vitest --run", + "test:setup": "node --disable-warning=ExperimentalWarning --experimental-strip-types ./setup.ts" + }, + "devDependencies": { + "execa": "^9.5.2", + "vitest": "^3.0.4" + }, + "config": { + "tsconfig": "../../tsconfig.json" + }, + "dependencies": { + "@glimmer/syntax": "file:packages/@glimmer/syntax.tgz", + "@glimmer/util": "file:packages/@glimmer/util.tgz", + "@glimmer/wire-format": "file:packages/@glimmer/wire-format.tgz", + "@glimmer/compiler": "file:packages/@glimmer/compiler.tgz", + "@glimmer/interfaces": "file:packages/@glimmer/interfaces.tgz", + "@glimmer/runtime": "file:packages/@glimmer/runtime.tgz" + }, + "pnpm": { + "overrides": { + "@glimmer/syntax": "file:packages/@glimmer/syntax.tgz", + "@glimmer/util": "file:packages/@glimmer/util.tgz", + "@glimmer/wire-format": "file:packages/@glimmer/wire-format.tgz", + "@glimmer/compiler": "file:packages/@glimmer/compiler.tgz", + "@glimmer/interfaces": "file:packages/@glimmer/interfaces.tgz", + "@glimmer/runtime": "file:packages/@glimmer/runtime.tgz" + } + } +} diff --git a/smoke-tests/node/setup.ts b/smoke-tests/node/setup.ts new file mode 100644 index 000000000..9cd389f05 --- /dev/null +++ b/smoke-tests/node/setup.ts @@ -0,0 +1,54 @@ +import { readFile } from 'node:fs/promises'; +import { join } from 'node:path'; + +import { $ } from 'execa'; + +const WORKSPACE_ROOT = join(import.meta.dirname, '../../'); +const NODE_SMOKE_DIR = join(WORKSPACE_ROOT, './smoke-tests/node'); + +function inRoot(cmd: string, options = {}) { + return inDir(WORKSPACE_ROOT, cmd, options); +} + +function inDir(dir: string, cmd: string, options = {}) { + return $({ + cwd: dir, + preferLocal: true, + shell: true, + ...options, + })(cmd); +} + +export function inNodeSmoke(cmd: string, options = {}) { + return inDir(NODE_SMOKE_DIR, cmd, options); +} + +export async function prepare() { + ////////// + // build + // When turbo is set up with "dependsOn": "["^prepack"], we see these packages + // - @glimmer/syntax + // - @glimmer/util + // - @glimmer/wire-format + // + // So these 3 packages need to be packed and installed + await inRoot(`pnpm turbo prepack`); + + let manifestPath = join(WORKSPACE_ROOT, 'smoke-tests/node/package.json'); + let manifest = JSON.parse((await readFile(manifestPath)).toString()); + let deps = Object.keys(manifest.dependencies); + + ////////// + // install the tarballs using stable names so we don't have to + // dynamically build the package.json + let pack = (out: string) => `pnpm pack --out ${join(NODE_SMOKE_DIR, 'packages', out)}.tgz`; + + for (let dep of deps) { + await inDir(join(WORKSPACE_ROOT, `packages/${dep}`), pack(dep)); + } +} + +if (process.argv[1] === import.meta.filename) { + await prepare(); + await inNodeSmoke(`pnpm install --ignore-workspace`); +} diff --git a/smoke-tests/node/tests/syntax.test.ts b/smoke-tests/node/tests/syntax.test.ts new file mode 100644 index 000000000..a86a703ec --- /dev/null +++ b/smoke-tests/node/tests/syntax.test.ts @@ -0,0 +1,8 @@ +import { preprocess } from '@glimmer/syntax'; +import { describe, it, expect } from 'vitest'; + +describe('@glimmer/syntax', () => { + it('process()', () => { + expect(preprocess('

')).toMatchInlineSnapshot(); + }); +}); diff --git a/smoke-tests/node/vite.config.ts b/smoke-tests/node/vite.config.ts new file mode 100644 index 000000000..c049f46e1 --- /dev/null +++ b/smoke-tests/node/vite.config.ts @@ -0,0 +1,3 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({}); diff --git a/tsconfig.json b/tsconfig.json index 5df27cdb9..c0b5a690e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -34,6 +34,7 @@ "packages/@types/*/index.*", "packages/@types/*/lib/**/*", "benchmark/**/*", + "smoke-tests/**/*", "bin/**/*", "**/*.config.mts" ], diff --git a/turbo.json b/turbo.json index c7635d380..daeaaee5f 100644 --- a/turbo.json +++ b/turbo.json @@ -25,6 +25,7 @@ "cache": false, "dependsOn": ["test:lint", "test:publint"] }, + "test:node": {}, "test:lint": {}, "test:publint": { "dependsOn": ["prepack", "prepare"] From ddd5f2b147eb0db0df4f8f42bfca1d4dc6883f2d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:49:12 -0500 Subject: [PATCH 13/29] Set vitest conditions --- smoke-tests/node/package.json | 2 +- smoke-tests/node/vite.config.ts | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/smoke-tests/node/package.json b/smoke-tests/node/package.json index 90363ec3b..830fbe6b7 100644 --- a/smoke-tests/node/package.json +++ b/smoke-tests/node/package.json @@ -10,7 +10,7 @@ }, "scripts": { "test:lint": "eslint . --quiet", - "test:node": "NODE_ENV=production vitest --run", + "test:node": "vitest --run", "test:setup": "node --disable-warning=ExperimentalWarning --experimental-strip-types ./setup.ts" }, "devDependencies": { diff --git a/smoke-tests/node/vite.config.ts b/smoke-tests/node/vite.config.ts index c049f46e1..917bddabf 100644 --- a/smoke-tests/node/vite.config.ts +++ b/smoke-tests/node/vite.config.ts @@ -1,3 +1,7 @@ import { defineConfig } from 'vite'; -export default defineConfig({}); +export default defineConfig({ + resolve: { + conditions: ['module', 'node', process.env.NODE_ENV ?? 'production'] + } +}); From 2d05f5a14b1c99f8e276e7a6e85fd70a0713cc21 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:06:26 -0500 Subject: [PATCH 14/29] Curious --- .github/workflows/ci.yml | 17 ++++ pnpm-lock.yaml | 172 +++++++++++++++++++++++++++++++++------ 2 files changed, 162 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4391a99a0..d00a92007 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,6 +77,23 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} - run: pnpm test:node + test-smoke: + name: Smoke + runs-on: ubuntu-latest + needs: ['install_dependencies'] + timeout-minutes: 5 + + steps: + - uses: wyvox/action@v1 + with: + node-version: 22.13.0 + repo-token: ${{ secrets.GITHUB_TOKEN }} + - working-directory: ./smoke-tests/node + run: | + pnpm test:setup + pnpm test:node + + test-chrome: name: Chrome runs-on: ubuntu-latest diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 202b7bd4d..95415f581 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@5.2.0) + version: 1000.0.3(@pnpm/logger@1000.0.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -308,7 +308,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@1000.0.0) + version: 1000.0.5(@pnpm/logger@5.2.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -604,6 +604,9 @@ importers: specifier: ^3.4.2 version: 3.4.2 devDependencies: + '@glimmer-workspace/repo-metadata': + specifier: workspace:* + version: link:../../../repo-metadata vitest: specifier: ^3.0.4 version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -12672,15 +12675,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/logger': 1000.0.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12700,6 +12703,20 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 + '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + load-json-file: 6.2.0 + '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12718,7 +12735,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12728,7 +12745,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12778,6 +12795,36 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/catalogs.config': 1000.0.1 + '@pnpm/catalogs.types': 1000.0.0 + '@pnpm/config.env-replace': 3.0.0 + '@pnpm/constants': 1001.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/git-utils': 1000.0.0 + '@pnpm/matcher': 1000.0.0 + '@pnpm/npm-conf': 3.0.0 + '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + '@pnpm/workspace.read-manifest': 1000.0.1 + better-path-resolve: 1.0.0 + camelcase: 6.3.0 + camelcase-keys: 6.2.2 + can-write-to-dir: 1.1.1 + is-subdir: 1.2.0 + is-windows: 1.0.2 + normalize-registry-url: 2.0.0 + path-absolute: 1.0.1 + path-name: 1.0.0 + ramda: '@pnpm/ramda@0.28.1' + read-ini-file: 4.0.0 + realpath-missing: 1.1.0 + which: '@pnpm/which@3.0.1' + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12819,9 +12866,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12829,6 +12876,11 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 + '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12858,15 +12910,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12906,6 +12958,30 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 + '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/dedupe.issues-renderer': 1000.0.0 + '@pnpm/dedupe.types': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/render-peer-issues': 1000.0.2 + '@pnpm/types': 1000.1.0 + ansi-diff: 1.2.0 + boxen: 5.1.2 + chalk: 4.1.2 + cli-truncate: 2.1.0 + normalize-path: 3.0.0 + pretty-bytes: 5.6.0 + pretty-ms: 7.0.1 + ramda: '@pnpm/ramda@0.28.1' + rxjs: 7.8.1 + semver: 7.6.3 + stacktracey: 2.1.8 + string-length: 4.0.2 + '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13068,9 +13144,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13084,6 +13160,14 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/types': 1000.1.0 + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13129,13 +13213,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13155,6 +13239,19 @@ snapshots: mem: 8.1.1 semver: 7.6.3 + '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/env.system-node-version': 1000.0.1 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + detect-libc: 2.0.3 + execa: safe-execa@0.1.2 + mem: 8.1.1 + semver: 7.6.3 + '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13194,14 +13291,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13220,6 +13317,19 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 + '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/crypto.hash': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/hooks.types': 1001.0.1 + '@pnpm/lockfile.types': 1001.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/store-controller-types': 1001.0.0 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + path-absolute: 1.0.1 + '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13378,11 +13488,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13394,6 +13504,14 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) + '@pnpm/fs.find-packages': 1000.0.3 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) From 5de9010a9fe91ee35a0ca4f66f8df97a8cd1926c Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:13:11 -0500 Subject: [PATCH 15/29] Fix node smoke --- smoke-tests/node/package.json | 24 +++---- smoke-tests/node/setup.ts | 19 ++++++ smoke-tests/node/tests/syntax.test.ts | 90 ++++++++++++++++++++++++++- 3 files changed, 120 insertions(+), 13 deletions(-) diff --git a/smoke-tests/node/package.json b/smoke-tests/node/package.json index 830fbe6b7..3abb4e424 100644 --- a/smoke-tests/node/package.json +++ b/smoke-tests/node/package.json @@ -21,21 +21,21 @@ "tsconfig": "../../tsconfig.json" }, "dependencies": { - "@glimmer/syntax": "file:packages/@glimmer/syntax.tgz", - "@glimmer/util": "file:packages/@glimmer/util.tgz", - "@glimmer/wire-format": "file:packages/@glimmer/wire-format.tgz", - "@glimmer/compiler": "file:packages/@glimmer/compiler.tgz", - "@glimmer/interfaces": "file:packages/@glimmer/interfaces.tgz", - "@glimmer/runtime": "file:packages/@glimmer/runtime.tgz" + "@glimmer/syntax": "file:./packages/@glimmer/syntax.tgz", + "@glimmer/util": "file:./packages/@glimmer/util.tgz", + "@glimmer/wire-format": "file:./packages/@glimmer/wire-format.tgz", + "@glimmer/compiler": "file:./packages/@glimmer/compiler.tgz", + "@glimmer/interfaces": "file:./packages/@glimmer/interfaces.tgz", + "@glimmer/runtime": "file:./packages/@glimmer/runtime.tgz" }, "pnpm": { "overrides": { - "@glimmer/syntax": "file:packages/@glimmer/syntax.tgz", - "@glimmer/util": "file:packages/@glimmer/util.tgz", - "@glimmer/wire-format": "file:packages/@glimmer/wire-format.tgz", - "@glimmer/compiler": "file:packages/@glimmer/compiler.tgz", - "@glimmer/interfaces": "file:packages/@glimmer/interfaces.tgz", - "@glimmer/runtime": "file:packages/@glimmer/runtime.tgz" + "@glimmer/syntax": "file:./packages/@glimmer/syntax.tgz", + "@glimmer/util": "file:./packages/@glimmer/util.tgz", + "@glimmer/wire-format": "file:./packages/@glimmer/wire-format.tgz", + "@glimmer/compiler": "file:./packages/@glimmer/compiler.tgz", + "@glimmer/interfaces": "file:./packages/@glimmer/interfaces.tgz", + "@glimmer/runtime": "file:./packages/@glimmer/runtime.tgz" } } } diff --git a/smoke-tests/node/setup.ts b/smoke-tests/node/setup.ts index 9cd389f05..91bed1fbc 100644 --- a/smoke-tests/node/setup.ts +++ b/smoke-tests/node/setup.ts @@ -10,12 +10,22 @@ function inRoot(cmd: string, options = {}) { return inDir(WORKSPACE_ROOT, cmd, options); } +let asBin = false; + +function log(msg: any) { + if (asBin) { + console.info(msg); + } +} + function inDir(dir: string, cmd: string, options = {}) { return $({ cwd: dir, preferLocal: true, shell: true, ...options, + // execa types are wrong? + // @ts-expect-error })(cmd); } @@ -44,11 +54,20 @@ export async function prepare() { let pack = (out: string) => `pnpm pack --out ${join(NODE_SMOKE_DIR, 'packages', out)}.tgz`; for (let dep of deps) { + log(`Packing ${dep}`); await inDir(join(WORKSPACE_ROOT, `packages/${dep}`), pack(dep)); } } if (process.argv[1] === import.meta.filename) { + asBin = true; + log(`Setting up smoke test packages`); + log({ WORKSPACE_ROOT, NODE_SMOKE_DIR }); + await prepare(); + + log(`Installing Deps`); await inNodeSmoke(`pnpm install --ignore-workspace`); + + log(`Done`); } diff --git a/smoke-tests/node/tests/syntax.test.ts b/smoke-tests/node/tests/syntax.test.ts index a86a703ec..8c5a927c9 100644 --- a/smoke-tests/node/tests/syntax.test.ts +++ b/smoke-tests/node/tests/syntax.test.ts @@ -3,6 +3,94 @@ import { describe, it, expect } from 'vitest'; describe('@glimmer/syntax', () => { it('process()', () => { - expect(preprocess('

')).toMatchInlineSnapshot(); + expect(preprocess('

')).toMatchInlineSnapshot(` + { + "blockParams": [], + "body": [ + { + "attributes": [], + "blockParams": [], + "children": [], + "closeTag": { + "end": { + "column": 9, + "line": 1, + }, + "start": { + "column": 4, + "line": 1, + }, + }, + "comments": [], + "loc": { + "end": { + "column": 9, + "line": 1, + }, + "start": { + "column": 0, + "line": 1, + }, + }, + "modifiers": [], + "openTag": { + "end": { + "column": 4, + "line": 1, + }, + "start": { + "column": 0, + "line": 1, + }, + }, + "params": [], + "path": { + "head": { + "loc": { + "end": { + "column": 3, + "line": 1, + }, + "start": { + "column": 1, + "line": 1, + }, + }, + "name": "h1", + "original": "h1", + "type": "VarHead", + }, + "loc": { + "end": { + "column": 3, + "line": 1, + }, + "start": { + "column": 1, + "line": 1, + }, + }, + "original": "h1", + "tail": [], + "type": "PathExpression", + }, + "selfClosing": false, + "tag": "h1", + "type": "ElementNode", + }, + ], + "loc": { + "end": { + "column": 9, + "line": 1, + }, + "start": { + "column": 0, + "line": 1, + }, + }, + "type": "Template", + } + `); }); }); From 05069ee5352133d258d979a212f32b8b0e3cd447 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:25:06 -0500 Subject: [PATCH 16/29] Remove extraneous test --- .../test/prettier.test.ts | 3 +++ .../integration-node-tests/test/smoke.test.ts | 25 ------------------- 2 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts diff --git a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts index fd6ce4985..562477fe1 100644 --- a/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -11,6 +11,9 @@ const require = createRequire(import.meta.url); * Requires the root package.json#pnpm#overrides point at our internal * copy of @glimmer/syntax, or else prettier brings its own already published * copy of @glimmer/syntax + * + * NOTE: that this test alone is insufficient to test our built outputs. + * the smoke-tests/* folders are for that purpose. */ describe('Prettier', () => { it(`SMOKE: we've symlinked to the in-repo copy of @glimmer/syntax`, () => { diff --git a/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts b/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts deleted file mode 100644 index c9f2a82fe..000000000 --- a/packages/@glimmer-workspace/integration-node-tests/test/smoke.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { join } from 'node:path'; - -import { WORKSPACE_ROOT } from '@glimmer-workspace/repo-metadata'; -import { $ } from 'execa'; -import { describe, it } from 'vitest'; - -const NODE_SMOKE_DIR = join(WORKSPACE_ROOT, './smoke-tests/node'); - -function inNodeSmoke(cmd: string, options = {}) { - return $({ cwd: NODE_SMOKE_DIR, preferLocal: true, shell: true, ...options })(cmd); -} - -describe('Smake Tests', () => { - /** - * This is important because we don't test the code we ship to npm - * (the code we ship to npm goes through a build process, and we opted - * to not do that for in-repo dev ergonomics) - */ - it('Uses the real build, and not our monorepo infra', { timeout: 20_000 }, async () => { - await inNodeSmoke( - `node --disable-warning=ExperimentalWarning --experimental-strip-types ./setup.ts` - ); - await inNodeSmoke(`pnpm run test:node`); - }); -}); From c31c56db5833e3217b2b9d93c1be1b308c4b36b6 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:32:33 -0500 Subject: [PATCH 17/29] Why doesn't my local CLI env match CI --- package.json | 1 + .../@glimmer-workspace/integration-node-tests/package.json | 5 +---- smoke-tests/node/vite.config.ts | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ec8c2060c..a1b1201ae 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@eslint/js": "9.17.0", "@glimmer-workspace/build-support": "workspace:*", "@glimmer-workspace/eslint-plugin": "workspace:*", + "@glimmer-workspace/integration-node-tests": "workspace:*", "@glimmer-workspace/integration-tests": "workspace:*", "@glimmer-workspace/repo-metadata": "workspace:*", "@glimmer/env": "0.1.7", diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index cd72c9fcc..1e3103c69 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -4,10 +4,7 @@ "type": "module", "private": true, "repo-meta": { - "strictness": "loose", - "lint": [ - "test/**/*" - ] + "strictness": "loose" }, "scripts": { "test:lint": "eslint . --quiet", diff --git a/smoke-tests/node/vite.config.ts b/smoke-tests/node/vite.config.ts index 917bddabf..75417a182 100644 --- a/smoke-tests/node/vite.config.ts +++ b/smoke-tests/node/vite.config.ts @@ -2,6 +2,6 @@ import { defineConfig } from 'vite'; export default defineConfig({ resolve: { - conditions: ['module', 'node', process.env.NODE_ENV ?? 'production'] - } + conditions: ['module', 'node', process.env['NODE_ENV'] ?? 'production'], + }, }); From ebf3909deef80a29e89b4d523a180a9d8c6847f2 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:38:14 -0500 Subject: [PATCH 18/29] lockfile --- pnpm-lock.yaml | 3 +++ smoke-tests/node/package.json | 1 + 2 files changed, 4 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95415f581..052106d6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,6 +53,9 @@ importers: '@glimmer-workspace/eslint-plugin': specifier: workspace:* version: link:packages/@glimmer-workspace/eslint-plugin + '@glimmer-workspace/integration-node-tests': + specifier: workspace:* + version: link:packages/@glimmer-workspace/integration-node-tests '@glimmer-workspace/integration-tests': specifier: workspace:* version: link:packages/@glimmer-workspace/integration-tests diff --git a/smoke-tests/node/package.json b/smoke-tests/node/package.json index 3abb4e424..e29ef78db 100644 --- a/smoke-tests/node/package.json +++ b/smoke-tests/node/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "execa": "^9.5.2", + "vite": "^5.4.10", "vitest": "^3.0.4" }, "config": { From 8074cd1bffe665f5853396869a73a76b96d1d52a Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:43:45 -0500 Subject: [PATCH 19/29] different logging --- smoke-tests/node/setup.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/smoke-tests/node/setup.ts b/smoke-tests/node/setup.ts index 91bed1fbc..2e2781146 100644 --- a/smoke-tests/node/setup.ts +++ b/smoke-tests/node/setup.ts @@ -1,5 +1,6 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; +import { styleText } from 'node:util'; import { $ } from 'execa'; @@ -19,10 +20,13 @@ function log(msg: any) { } function inDir(dir: string, cmd: string, options = {}) { + log(styleText('gray', `in ${dir}:\n`) + styleText('green', '\t' + cmd)); + return $({ cwd: dir, preferLocal: true, shell: true, + stdio: 'inherit', ...options, // execa types are wrong? // @ts-expect-error @@ -54,7 +58,6 @@ export async function prepare() { let pack = (out: string) => `pnpm pack --out ${join(NODE_SMOKE_DIR, 'packages', out)}.tgz`; for (let dep of deps) { - log(`Packing ${dep}`); await inDir(join(WORKSPACE_ROOT, `packages/${dep}`), pack(dep)); } } From b161bc521dec7236fb3bf6691cd62cf11d2ad63d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:45:34 -0500 Subject: [PATCH 20/29] Now its working? --- smoke-tests/node/setup.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/smoke-tests/node/setup.ts b/smoke-tests/node/setup.ts index 2e2781146..7fb744be7 100644 --- a/smoke-tests/node/setup.ts +++ b/smoke-tests/node/setup.ts @@ -2,7 +2,7 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; import { styleText } from 'node:util'; -import { $ } from 'execa'; +import { execaCommand } from 'execa'; const WORKSPACE_ROOT = join(import.meta.dirname, '../../'); const NODE_SMOKE_DIR = join(WORKSPACE_ROOT, './smoke-tests/node'); @@ -22,15 +22,13 @@ function log(msg: any) { function inDir(dir: string, cmd: string, options = {}) { log(styleText('gray', `in ${dir}:\n`) + styleText('green', '\t' + cmd)); - return $({ + return execaCommand(cmd, { cwd: dir, preferLocal: true, shell: true, stdio: 'inherit', ...options, - // execa types are wrong? - // @ts-expect-error - })(cmd); + }); } export function inNodeSmoke(cmd: string, options = {}) { From 09d3fc0656d736adcd00991a6940af40eb77a87d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:06:54 -0500 Subject: [PATCH 21/29] Codify the requirements for running the types check --- .gitignore | 1 + package.json | 3 +- .../integration-node-tests/package.json | 6 +- pnpm-lock.yaml | 174 ++++-------------- turbo.json | 5 +- 5 files changed, 44 insertions(+), 145 deletions(-) diff --git a/.gitignore b/.gitignore index 42fbb5942..ec6222ade 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store /dist **/dist /control-dist/ diff --git a/package.json b/package.json index a1b1201ae..480ef5ffd 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "repo:lint:files": "turbo run test:lint", "repo:lint:fix": "turbo run test:lint -- --fix && prettier -w .", "repo:lint:pub": "turbo run test:publint", - "repo:lint:types": "tsc -b", + "repo:lint:types": "turbo run //#test:types", "repo:prepack": "turbo run prepack", "repo:update:conventions": "pnpm meta-updater", "repo:update:metadata": "node --experimental-strip-types --no-warnings ./repo-metadata/lib/update.ts", @@ -39,6 +39,7 @@ "test:lint": "eslint . --quiet", "test:node": "pnpm turbo test:node", "test:smoke": "SMOKE_TESTS=true ember test", + "test:types": "tsc -b", "ts": "node --disable-warning=ExperimentalWarning --experimental-strip-types", "unlink:all": "esyes ./bin/unlink-all.mts" }, diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index 1e3103c69..d5d1a8948 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -4,7 +4,10 @@ "type": "module", "private": true, "repo-meta": { - "strictness": "loose" + "strictness": "loose", + "lint": [ + "test/*" + ] }, "scripts": { "test:lint": "eslint . --quiet", @@ -17,6 +20,7 @@ }, "devDependencies": { "@glimmer-workspace/repo-metadata": "workspace:*", + "eslint": "^9.18.0", "vitest": "^3.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 052106d6a..2ee13bb73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,7 +70,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@1000.0.0) + version: 1000.0.3(@pnpm/logger@5.2.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -311,7 +311,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@5.2.0) + version: 1000.0.5(@pnpm/logger@1000.0.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -610,6 +610,9 @@ importers: '@glimmer-workspace/repo-metadata': specifier: workspace:* version: link:../../../repo-metadata + eslint: + specifier: ^9.18.0 + version: 9.18.0(jiti@2.4.2) vitest: specifier: ^3.0.4 version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) @@ -7974,12 +7977,14 @@ packages: lodash.omit@4.5.0: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} + deprecated: This package is deprecated. Use destructuring assignment syntax instead. lodash.restparam@3.6.1: resolution: {integrity: sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==} lodash.template@4.5.0: resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + deprecated: This package is deprecated. Use https://socket.dev/npm/package/eta instead. lodash.templatesettings@4.2.0: resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} @@ -12678,15 +12683,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12706,20 +12711,6 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - load-json-file: 6.2.0 - '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12738,7 +12729,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12748,7 +12739,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12798,36 +12789,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/catalogs.config': 1000.0.1 - '@pnpm/catalogs.types': 1000.0.0 - '@pnpm/config.env-replace': 3.0.0 - '@pnpm/constants': 1001.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/git-utils': 1000.0.0 - '@pnpm/matcher': 1000.0.0 - '@pnpm/npm-conf': 3.0.0 - '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) - '@pnpm/read-project-manifest': 1000.0.3 - '@pnpm/types': 1000.1.0 - '@pnpm/workspace.read-manifest': 1000.0.1 - better-path-resolve: 1.0.0 - camelcase: 6.3.0 - camelcase-keys: 6.2.2 - can-write-to-dir: 1.1.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - normalize-registry-url: 2.0.0 - path-absolute: 1.0.1 - path-name: 1.0.0 - ramda: '@pnpm/ramda@0.28.1' - read-ini-file: 4.0.0 - realpath-missing: 1.1.0 - which: '@pnpm/which@3.0.1' - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12869,9 +12830,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12879,11 +12840,6 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 - '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12913,15 +12869,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12961,30 +12917,6 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 - '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/dedupe.issues-renderer': 1000.0.0 - '@pnpm/dedupe.types': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/render-peer-issues': 1000.0.2 - '@pnpm/types': 1000.1.0 - ansi-diff: 1.2.0 - boxen: 5.1.2 - chalk: 4.1.2 - cli-truncate: 2.1.0 - normalize-path: 3.0.0 - pretty-bytes: 5.6.0 - pretty-ms: 7.0.1 - ramda: '@pnpm/ramda@0.28.1' - rxjs: 7.8.1 - semver: 7.6.3 - stacktracey: 2.1.8 - string-length: 4.0.2 - '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13147,9 +13079,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13163,14 +13095,6 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' - '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/error': 1000.0.1 - '@pnpm/types': 1000.1.0 - transitivePeerDependencies: - - '@pnpm/logger' - '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13216,13 +13140,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13242,19 +13166,6 @@ snapshots: mem: 8.1.1 semver: 7.6.3 - '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-meta': 1000.0.1 - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/env.system-node-version': 1000.0.1 - '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - detect-libc: 2.0.3 - execa: safe-execa@0.1.2 - mem: 8.1.1 - semver: 7.6.3 - '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13294,14 +13205,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13320,19 +13231,6 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 - '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) - '@pnpm/crypto.hash': 1000.0.0 - '@pnpm/error': 1000.0.1 - '@pnpm/hooks.types': 1001.0.1 - '@pnpm/lockfile.types': 1001.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/store-controller-types': 1001.0.0 - '@pnpm/types': 1000.1.0 - chalk: 4.1.2 - path-absolute: 1.0.1 - '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13491,11 +13389,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 1000.0.0 + '@pnpm/logger': 5.2.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13507,14 +13405,6 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': - dependencies: - '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) - '@pnpm/fs.find-packages': 1000.0.3 - '@pnpm/logger': 5.2.0 - '@pnpm/types': 1000.1.0 - '@pnpm/util.lex-comparator': 3.0.0 - '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) diff --git a/turbo.json b/turbo.json index daeaaee5f..b168102d0 100644 --- a/turbo.json +++ b/turbo.json @@ -40,7 +40,10 @@ }, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], - "dependsOn": ["^build"] + "dependsOn": ["^prepack", "//#benchmark:setup"] + }, + "//#benchmark:setup": { + "dependsOn": ["^prepack"] } } } From 3207df8d6d19bb95a11ab44ed0e9c227aa2c4f16 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:40:04 -0500 Subject: [PATCH 22/29] More turbo progress --- package.json | 3 +++ pnpm-lock.yaml | 3 +++ turbo.json | 7 ++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 480ef5ffd..260f4c43e 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "repo:prepack": "turbo run prepack", "repo:update:conventions": "pnpm meta-updater", "repo:update:metadata": "node --experimental-strip-types --no-warnings ./repo-metadata/lib/update.ts", + "smoke:setup": "node --disable-warning=ExperimentalWarning --experimental-strip-types ./smoke-tests/node/setup.ts", "start": "vite", "test": "node bin/run-tests.mjs", "test:babel-plugins": "yarn workspace @glimmer/vm-babel-plugins test", @@ -55,6 +56,7 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/config-inspector": "^0.7.1", "@eslint/js": "9.17.0", + "@glimmer-workspace/benchmark-env": "workspace:*", "@glimmer-workspace/build-support": "workspace:*", "@glimmer-workspace/eslint-plugin": "workspace:*", "@glimmer-workspace/integration-node-tests": "workspace:*", @@ -128,6 +130,7 @@ "typescript": "^5.7.3", "typescript-eslint": "^8.19.0", "vite": "^6.0.10", + "vitest": "^3.0.4", "zx": "^8.3.0" }, "changelog": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ee13bb73..2e8401577 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -266,6 +266,9 @@ importers: vite: specifier: ^6.0.10 version: 6.0.10(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) zx: specifier: ^8.3.0 version: 8.3.0 diff --git a/turbo.json b/turbo.json index b168102d0..300bc18cb 100644 --- a/turbo.json +++ b/turbo.json @@ -40,9 +40,14 @@ }, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], - "dependsOn": ["^prepack", "//#benchmark:setup"] + "dependsOn": ["^prepack", "//#benchmark:setup", "//#smoke:setup"] }, "//#benchmark:setup": { + "outputs": ["./benchmark/benchmarks/krausest/packages"], + "dependsOn": ["^prepack"] + }, + "//#smoke:setup": { + "outputs": ["./smoke-tests/node/packages"], "dependsOn": ["^prepack"] } } From e6c337dd755cbf7d2db7bca2142333c9f6c2cceb Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:06:20 -0500 Subject: [PATCH 23/29] omg it worked --- pnpm-lock.yaml | 172 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 145 insertions(+), 27 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e8401577..f7bcfbe2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,6 +47,9 @@ importers: '@eslint/js': specifier: 9.17.0 version: 9.17.0 + '@glimmer-workspace/benchmark-env': + specifier: workspace:* + version: link:packages/@glimmer-workspace/benchmark-env '@glimmer-workspace/build-support': specifier: workspace:* version: link:packages/@glimmer-workspace/build @@ -70,7 +73,7 @@ importers: version: 2.0.3 '@pnpm/workspace.find-packages': specifier: ^1000.0.3 - version: 1000.0.3(@pnpm/logger@5.2.0) + version: 1000.0.3(@pnpm/logger@1000.0.0) '@rollup/plugin-sucrase': specifier: ^5.0.2 version: 5.0.2(rollup@4.31.0-0) @@ -314,7 +317,7 @@ importers: version: 1000.1.0 '@pnpm/workspace.find-packages': specifier: ^1000.0.1 - version: 1000.0.5(@pnpm/logger@1000.0.0) + version: 1000.0.5(@pnpm/logger@5.2.0) '@types/node': specifier: ^20.17.10 version: 20.17.10 @@ -12686,15 +12689,15 @@ snapshots: '@pnpm/types': 12.2.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/cli-utils@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/default-reporter': 1001.1.1(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 - '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@5.2.0) - '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@5.2.0) + '@pnpm/logger': 1000.0.0 + '@pnpm/manifest-utils': 1000.0.2(@pnpm/logger@1000.0.0) + '@pnpm/package-is-installable': 1000.0.2(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -12714,6 +12717,20 @@ snapshots: chalk: 4.1.2 load-json-file: 6.2.0 + '@pnpm/cli-utils@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/default-reporter': 1001.1.3(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/manifest-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/package-is-installable': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + load-json-file: 6.2.0 + '@pnpm/cli-utils@4.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -12732,7 +12749,7 @@ snapshots: '@pnpm/config.env-replace@3.0.0': {} - '@pnpm/config@1002.1.0(@pnpm/logger@5.2.0)': + '@pnpm/config@1002.1.0(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/catalogs.config': 1000.0.1 '@pnpm/catalogs.types': 1000.0.0 @@ -12742,7 +12759,7 @@ snapshots: '@pnpm/git-utils': 1000.0.0 '@pnpm/matcher': 1000.0.0 '@pnpm/npm-conf': 2.3.1 - '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@5.2.0) + '@pnpm/pnpmfile': 1001.0.1(@pnpm/logger@1000.0.0) '@pnpm/read-project-manifest': 1000.0.1 '@pnpm/types': 1000.0.0 '@pnpm/workspace.read-manifest': 1000.0.1 @@ -12792,6 +12809,36 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/config@1002.1.2(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/catalogs.config': 1000.0.1 + '@pnpm/catalogs.types': 1000.0.0 + '@pnpm/config.env-replace': 3.0.0 + '@pnpm/constants': 1001.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/git-utils': 1000.0.0 + '@pnpm/matcher': 1000.0.0 + '@pnpm/npm-conf': 3.0.0 + '@pnpm/pnpmfile': 1001.0.3(@pnpm/logger@5.2.0) + '@pnpm/read-project-manifest': 1000.0.3 + '@pnpm/types': 1000.1.0 + '@pnpm/workspace.read-manifest': 1000.0.1 + better-path-resolve: 1.0.0 + camelcase: 6.3.0 + camelcase-keys: 6.2.2 + can-write-to-dir: 1.1.1 + is-subdir: 1.2.0 + is-windows: 1.0.2 + normalize-registry-url: 2.0.0 + path-absolute: 1.0.1 + path-name: 1.0.0 + ramda: '@pnpm/ramda@0.28.1' + read-ini-file: 4.0.0 + realpath-missing: 1.1.0 + which: '@pnpm/which@3.0.1' + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/config@21.8.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/catalogs.config': 0.1.1 @@ -12833,9 +12880,9 @@ snapshots: '@pnpm/logger': 5.2.0 '@pnpm/types': 12.2.0 - '@pnpm/core-loggers@1000.1.0(@pnpm/logger@5.2.0)': + '@pnpm/core-loggers@1000.1.0(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/core-loggers@1000.1.1(@pnpm/logger@1000.0.0)': @@ -12843,6 +12890,11 @@ snapshots: '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.1.0 + '@pnpm/core-loggers@1000.1.1(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/crypto.base32-hash@3.0.1': dependencies: '@pnpm/crypto.polyfill': 1.0.0 @@ -12872,15 +12924,15 @@ snapshots: '@pnpm/dedupe.types@2.0.0': {} - '@pnpm/default-reporter@1001.1.1(@pnpm/logger@5.2.0)': + '@pnpm/default-reporter@1001.1.1(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/config': 1002.1.0(@pnpm/logger@5.2.0) - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/config': 1002.1.0(@pnpm/logger@1000.0.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/dedupe.issues-renderer': 1000.0.0 '@pnpm/dedupe.types': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/render-peer-issues': 1000.0.1 '@pnpm/types': 1000.0.0 ansi-diff: 1.2.0 @@ -12920,6 +12972,30 @@ snapshots: stacktracey: 2.1.8 string-length: 4.0.2 + '@pnpm/default-reporter@1001.1.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/config': 1002.1.2(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/dedupe.issues-renderer': 1000.0.0 + '@pnpm/dedupe.types': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/render-peer-issues': 1000.0.2 + '@pnpm/types': 1000.1.0 + ansi-diff: 1.2.0 + boxen: 5.1.2 + chalk: 4.1.2 + cli-truncate: 2.1.0 + normalize-path: 3.0.0 + pretty-bytes: 5.6.0 + pretty-ms: 7.0.1 + ramda: '@pnpm/ramda@0.28.1' + rxjs: 7.8.1 + semver: 7.6.3 + stacktracey: 2.1.8 + string-length: 4.0.2 + '@pnpm/default-reporter@14.0.6(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13082,9 +13158,9 @@ snapshots: bole: 5.0.17 ndjson: 2.0.0 - '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/manifest-utils@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/error': 1000.0.1 '@pnpm/types': 1000.0.0 transitivePeerDependencies: @@ -13098,6 +13174,14 @@ snapshots: transitivePeerDependencies: - '@pnpm/logger' + '@pnpm/manifest-utils@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/error': 1000.0.1 + '@pnpm/types': 1000.1.0 + transitivePeerDependencies: + - '@pnpm/logger' + '@pnpm/manifest-utils@6.0.9(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13143,13 +13227,13 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@5.2.0)': + '@pnpm/package-is-installable@1000.0.2(@pnpm/logger@1000.0.0)': dependencies: '@pnpm/cli-meta': 1000.0.0 - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/env.system-node-version': 1000.0.0 '@pnpm/error': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 detect-libc: 2.0.3 execa: safe-execa@0.1.2 @@ -13169,6 +13253,19 @@ snapshots: mem: 8.1.1 semver: 7.6.3 + '@pnpm/package-is-installable@1000.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-meta': 1000.0.1 + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/env.system-node-version': 1000.0.1 + '@pnpm/error': 1000.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + detect-libc: 2.0.3 + execa: safe-execa@0.1.2 + mem: 8.1.1 + semver: 7.6.3 + '@pnpm/package-is-installable@9.0.12(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-meta': 6.2.2 @@ -13208,14 +13305,14 @@ snapshots: '@pnpm/patching.types@1000.0.0': {} - '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@5.2.0)': + '@pnpm/pnpmfile@1001.0.1(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@5.2.0) + '@pnpm/core-loggers': 1000.1.0(@pnpm/logger@1000.0.0) '@pnpm/crypto.hash': 1000.0.0 '@pnpm/error': 1000.0.1 '@pnpm/hooks.types': 1001.0.0 '@pnpm/lockfile.types': 1001.0.0 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/store-controller-types': 1000.1.0 '@pnpm/types': 1000.0.0 chalk: 4.1.2 @@ -13234,6 +13331,19 @@ snapshots: chalk: 4.1.2 path-absolute: 1.0.1 + '@pnpm/pnpmfile@1001.0.3(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/core-loggers': 1000.1.1(@pnpm/logger@5.2.0) + '@pnpm/crypto.hash': 1000.0.0 + '@pnpm/error': 1000.0.1 + '@pnpm/hooks.types': 1001.0.1 + '@pnpm/lockfile.types': 1001.0.1 + '@pnpm/logger': 5.2.0 + '@pnpm/store-controller-types': 1001.0.0 + '@pnpm/types': 1000.1.0 + chalk: 4.1.2 + path-absolute: 1.0.1 + '@pnpm/pnpmfile@6.0.13(@pnpm/logger@5.2.0)': dependencies: '@pnpm/core-loggers': 10.0.7(@pnpm/logger@5.2.0) @@ -13392,11 +13502,11 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@5.2.0)': + '@pnpm/workspace.find-packages@1000.0.3(@pnpm/logger@1000.0.0)': dependencies: - '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@5.2.0) + '@pnpm/cli-utils': 1000.0.3(@pnpm/logger@1000.0.0) '@pnpm/fs.find-packages': 1000.0.1 - '@pnpm/logger': 5.2.0 + '@pnpm/logger': 1000.0.0 '@pnpm/types': 1000.0.0 '@pnpm/util.lex-comparator': 3.0.0 @@ -13408,6 +13518,14 @@ snapshots: '@pnpm/types': 1000.1.0 '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@1000.0.5(@pnpm/logger@5.2.0)': + dependencies: + '@pnpm/cli-utils': 1000.0.5(@pnpm/logger@5.2.0) + '@pnpm/fs.find-packages': 1000.0.3 + '@pnpm/logger': 5.2.0 + '@pnpm/types': 1000.1.0 + '@pnpm/util.lex-comparator': 3.0.0 + '@pnpm/workspace.find-packages@4.0.14(@pnpm/logger@5.2.0)': dependencies: '@pnpm/cli-utils': 4.0.9(@pnpm/logger@5.2.0) From 1003ff54feee2637dce24cf2a45b7877d0b5c55e Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:42:14 -0500 Subject: [PATCH 24/29] Maybe I just remove the local lint script --- packages/@glimmer-workspace/integration-node-tests/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index d5d1a8948..acd3ebbc2 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -10,7 +10,6 @@ ] }, "scripts": { - "test:lint": "eslint . --quiet", "test:node": "vitest --run" }, "dependencies": { From 75061caaac913d748d0fdeb6947c306d1350c259 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:42:42 -0500 Subject: [PATCH 25/29] Don't need that anymore --- .../@glimmer-workspace/integration-node-tests/package.json | 1 - pnpm-lock.yaml | 3 --- 2 files changed, 4 deletions(-) diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index acd3ebbc2..26b0ad182 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -19,7 +19,6 @@ }, "devDependencies": { "@glimmer-workspace/repo-metadata": "workspace:*", - "eslint": "^9.18.0", "vitest": "^3.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7bcfbe2a..9148d31c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -616,9 +616,6 @@ importers: '@glimmer-workspace/repo-metadata': specifier: workspace:* version: link:../../../repo-metadata - eslint: - specifier: ^9.18.0 - version: 9.18.0(jiti@2.4.2) vitest: specifier: ^3.0.4 version: 3.0.4(@types/node@20.17.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) From 545581514c402e73ec4369c3deb64b01b77254e9 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:04:38 -0500 Subject: [PATCH 26/29] Fix --- package.json | 1 - .../@glimmer-workspace/integration-node-tests/package.json | 5 +---- repo-metadata/metadata.json | 3 +-- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 260f4c43e..18797ab1e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "test:lint": "eslint . --quiet", "test:node": "pnpm turbo test:node", "test:smoke": "SMOKE_TESTS=true ember test", - "test:types": "tsc -b", "ts": "node --disable-warning=ExperimentalWarning --experimental-strip-types", "unlink:all": "esyes ./bin/unlink-all.mts" }, diff --git a/packages/@glimmer-workspace/integration-node-tests/package.json b/packages/@glimmer-workspace/integration-node-tests/package.json index 26b0ad182..65744ce04 100644 --- a/packages/@glimmer-workspace/integration-node-tests/package.json +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -4,10 +4,7 @@ "type": "module", "private": true, "repo-meta": { - "strictness": "loose", - "lint": [ - "test/*" - ] + "strictness": "loose" }, "scripts": { "test:node": "vitest --run" diff --git a/repo-metadata/metadata.json b/repo-metadata/metadata.json index 850d9c108..506264e0f 100644 --- a/repo-metadata/metadata.json +++ b/repo-metadata/metadata.json @@ -115,8 +115,7 @@ "private": true, "repo-meta": { "built": false, - "strictness": "loose", - "lint": ["test/**/*"] + "strictness": "loose" }, "entryPoints": { "./package.json": [[["default"], "./package.json"]] From 4a89ee9e46cd3aa09deb660db5d86fa7e50d80c7 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:57:30 -0500 Subject: [PATCH 27/29] Updates --- .meta-updater/main.mjs | 4 ++-- .meta-updater/package.json | 4 +--- bin/package.json | 4 +--- packages/@glimmer-workspace/benchmark-env/package.json | 1 - packages/@glimmer-workspace/build/package.json | 4 +--- packages/@glimmer-workspace/env/package.json | 4 +--- packages/@glimmer-workspace/eslint-plugin/package.json | 4 +--- .../@glimmer-workspace/integration-tests/package.json | 4 +--- .../integration-tests/test/package.json | 4 +--- packages/@glimmer-workspace/test-utils/package.json | 4 +--- packages/@glimmer/compiler/package.json | 1 - packages/@glimmer/compiler/test/package.json | 4 +--- packages/@glimmer/constants/package.json | 4 +--- packages/@glimmer/constants/test/package.json | 4 +--- packages/@glimmer/debug-util/package.json | 4 +--- packages/@glimmer/debug-util/test/package.json | 4 +--- packages/@glimmer/debug/package.json | 4 +--- packages/@glimmer/debug/test/package.json | 4 +--- packages/@glimmer/destroyable/package.json | 1 - packages/@glimmer/destroyable/test/package.json | 4 +--- packages/@glimmer/encoder/package.json | 1 - packages/@glimmer/global-context/package.json | 1 - packages/@glimmer/interfaces/package.json | 1 - packages/@glimmer/local-debug-babel-plugin/package.json | 4 +--- packages/@glimmer/local-debug-flags/package.json | 4 +--- packages/@glimmer/manager/package.json | 1 - packages/@glimmer/manager/test/package.json | 4 +--- packages/@glimmer/node/package.json | 1 - packages/@glimmer/opcode-compiler/package.json | 1 - packages/@glimmer/owner/package.json | 1 - packages/@glimmer/owner/test/package.json | 4 +--- packages/@glimmer/program/package.json | 1 - packages/@glimmer/program/test/package.json | 4 +--- packages/@glimmer/reference/package.json | 1 - packages/@glimmer/reference/test/package.json | 4 +--- packages/@glimmer/runtime/package.json | 1 - packages/@glimmer/syntax/package.json | 1 - packages/@glimmer/syntax/test/package.json | 4 +--- packages/@glimmer/util/package.json | 1 - packages/@glimmer/util/test/package.json | 4 +--- packages/@glimmer/validator/package.json | 1 - packages/@glimmer/validator/test/package.json | 4 +--- packages/@glimmer/vm-babel-plugins/package.json | 1 - packages/@glimmer/vm/package.json | 1 - packages/@glimmer/wire-format/package.json | 1 - .../package.json | 4 +--- packages/@types/eslint-plugin-import/package.json | 4 +--- packages/@types/eslint-plugin-qunit/package.json | 4 +--- packages/@types/js-reporters/package.json | 4 +--- packages/@types/puppeteer-chromium-resolver/package.json | 4 +--- repo-metadata/package.json | 4 +--- turbo.json | 8 +++++++- 52 files changed, 40 insertions(+), 115 deletions(-) diff --git a/.meta-updater/main.mjs b/.meta-updater/main.mjs index 23cb6e7df..f527fa34a 100644 --- a/.meta-updater/main.mjs +++ b/.meta-updater/main.mjs @@ -26,10 +26,9 @@ export default () => const scripts = /** @type { JsonObject } */ (actual.scripts ??= {}); - update(scripts, 'test:lint', 'eslint . --quiet'); - // replaced with prepack delete scripts['test:types']; + delete scripts['test:lint']; const updateRepo = () => { update(actual, 'repository', { @@ -57,6 +56,7 @@ export default () => */ if (isRoot) { updateRepo(); + update(scripts, 'test:lint', 'eslint . --quiet'); } else { delete actual.repository; } diff --git a/.meta-updater/package.json b/.meta-updater/package.json index 6df9eb368..0a1036c0c 100644 --- a/.meta-updater/package.json +++ b/.meta-updater/package.json @@ -6,9 +6,7 @@ "keywords": [ "node" ], - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@pnpm/find-workspace-dir": "^1000.0.1", "@pnpm/meta-updater": "^2.0.3", diff --git a/bin/package.json b/bin/package.json index 0bc5b3dae..78409b28e 100644 --- a/bin/package.json +++ b/bin/package.json @@ -13,9 +13,7 @@ "*" ] }, - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer-workspace/repo-metadata": "workspace:*", "@pnpm/workspace.find-packages": "^1000.0.5", diff --git a/packages/@glimmer-workspace/benchmark-env/package.json b/packages/@glimmer-workspace/benchmark-env/package.json index 1ada0933e..7b6ad22f4 100644 --- a/packages/@glimmer-workspace/benchmark-env/package.json +++ b/packages/@glimmer-workspace/benchmark-env/package.json @@ -25,7 +25,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer-workspace/build/package.json b/packages/@glimmer-workspace/build/package.json index 6d6ecf909..63feddf55 100644 --- a/packages/@glimmer-workspace/build/package.json +++ b/packages/@glimmer-workspace/build/package.json @@ -14,9 +14,7 @@ "console" ] }, - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/local-debug-babel-plugin": "workspace:*", "@rollup/plugin-commonjs": "^25.0.7", diff --git a/packages/@glimmer-workspace/env/package.json b/packages/@glimmer-workspace/env/package.json index d063182cf..0dddbc69c 100644 --- a/packages/@glimmer-workspace/env/package.json +++ b/packages/@glimmer-workspace/env/package.json @@ -4,7 +4,5 @@ "version": "0.92.0", "type": "module", "exports": "./index.d.ts", - "scripts": { - "test:lint": "eslint . --quiet" - } + "scripts": {} } diff --git a/packages/@glimmer-workspace/eslint-plugin/package.json b/packages/@glimmer-workspace/eslint-plugin/package.json index 883eb1e1f..e6e99e9b1 100644 --- a/packages/@glimmer-workspace/eslint-plugin/package.json +++ b/packages/@glimmer-workspace/eslint-plugin/package.json @@ -4,9 +4,7 @@ "version": "0.92.0", "type": "module", "exports": "./index.js", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.18.0", diff --git a/packages/@glimmer-workspace/integration-tests/package.json b/packages/@glimmer-workspace/integration-tests/package.json index c13805676..776715935 100644 --- a/packages/@glimmer-workspace/integration-tests/package.json +++ b/packages/@glimmer-workspace/integration-tests/package.json @@ -12,9 +12,7 @@ "test/**/*" ] }, - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer-workspace/test-utils": "workspace:*", "@glimmer/compiler": "workspace:*", diff --git a/packages/@glimmer-workspace/integration-tests/test/package.json b/packages/@glimmer-workspace/integration-tests/test/package.json index 02ea2e148..7fda1b061 100644 --- a/packages/@glimmer-workspace/integration-tests/test/package.json +++ b/packages/@glimmer-workspace/integration-tests/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/integration-tests", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer-workspace/integration-tests": "workspace:*", "@glimmer-workspace/test-utils": "workspace:*", diff --git a/packages/@glimmer-workspace/test-utils/package.json b/packages/@glimmer-workspace/test-utils/package.json index 2e006deee..aaba44b30 100644 --- a/packages/@glimmer-workspace/test-utils/package.json +++ b/packages/@glimmer-workspace/test-utils/package.json @@ -4,9 +4,7 @@ "version": "0.92.0", "type": "module", "main": "index.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*", "@glimmer/util": "workspace:*" diff --git a/packages/@glimmer/compiler/package.json b/packages/@glimmer/compiler/package.json index 7c67297d5..705c51d50 100644 --- a/packages/@glimmer/compiler/package.json +++ b/packages/@glimmer/compiler/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/compiler/test/package.json b/packages/@glimmer/compiler/test/package.json index c05aeec50..738109364 100644 --- a/packages/@glimmer/compiler/test/package.json +++ b/packages/@glimmer/compiler/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/compiler", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/compiler": "workspace:*", "@glimmer/interfaces": "workspace:*", diff --git a/packages/@glimmer/constants/package.json b/packages/@glimmer/constants/package.json index 7ace7a8ed..045025870 100644 --- a/packages/@glimmer/constants/package.json +++ b/packages/@glimmer/constants/package.json @@ -7,9 +7,7 @@ "type": "module", "main": "index.ts", "types": "index.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*" }, diff --git a/packages/@glimmer/constants/test/package.json b/packages/@glimmer/constants/test/package.json index 6e38b1da9..1affb8757 100644 --- a/packages/@glimmer/constants/test/package.json +++ b/packages/@glimmer/constants/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/constants", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/env": "0.1.7", "@glimmer/util": "workspace:*" diff --git a/packages/@glimmer/debug-util/package.json b/packages/@glimmer/debug-util/package.json index 4217d3413..a54e81086 100644 --- a/packages/@glimmer/debug-util/package.json +++ b/packages/@glimmer/debug-util/package.json @@ -6,9 +6,7 @@ "description": "Common utilities used in Glimmer with debug-specific behavior", "type": "module", "exports": "./index.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*" }, diff --git a/packages/@glimmer/debug-util/test/package.json b/packages/@glimmer/debug-util/test/package.json index 6470fea72..8673ef400 100644 --- a/packages/@glimmer/debug-util/test/package.json +++ b/packages/@glimmer/debug-util/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/debug-util", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/env": "0.1.7", "@glimmer/util": "workspace:*" diff --git a/packages/@glimmer/debug/package.json b/packages/@glimmer/debug/package.json index 0dd5e9623..dba565477 100644 --- a/packages/@glimmer/debug/package.json +++ b/packages/@glimmer/debug/package.json @@ -7,9 +7,7 @@ "sideEffects": false, "type": "module", "exports": "./index.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*", "@glimmer/reference": "workspace:*", diff --git a/packages/@glimmer/debug/test/package.json b/packages/@glimmer/debug/test/package.json index 3e62957b1..6ec0d8321 100644 --- a/packages/@glimmer/debug/test/package.json +++ b/packages/@glimmer/debug/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/debug", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/debug": "workspace:*" } diff --git a/packages/@glimmer/destroyable/package.json b/packages/@glimmer/destroyable/package.json index f7548f22c..ff8200328 100644 --- a/packages/@glimmer/destroyable/package.json +++ b/packages/@glimmer/destroyable/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/destroyable/test/package.json b/packages/@glimmer/destroyable/test/package.json index a6392d150..97adbbaa9 100644 --- a/packages/@glimmer/destroyable/test/package.json +++ b/packages/@glimmer/destroyable/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/destroyable", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/destroyable": "workspace:*", "@glimmer/global-context": "workspace:*", diff --git a/packages/@glimmer/encoder/package.json b/packages/@glimmer/encoder/package.json index 92f15701d..3463bb592 100644 --- a/packages/@glimmer/encoder/package.json +++ b/packages/@glimmer/encoder/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/global-context/package.json b/packages/@glimmer/global-context/package.json index ef9052c2b..123532aae 100644 --- a/packages/@glimmer/global-context/package.json +++ b/packages/@glimmer/global-context/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "devDependencies": { diff --git a/packages/@glimmer/interfaces/package.json b/packages/@glimmer/interfaces/package.json index 81ebd9e13..d068d7094 100644 --- a/packages/@glimmer/interfaces/package.json +++ b/packages/@glimmer/interfaces/package.json @@ -16,7 +16,6 @@ "index.d.ts" ], "scripts": { - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/local-debug-babel-plugin/package.json b/packages/@glimmer/local-debug-babel-plugin/package.json index 66ae30bb0..a16923bf6 100644 --- a/packages/@glimmer/local-debug-babel-plugin/package.json +++ b/packages/@glimmer/local-debug-babel-plugin/package.json @@ -8,7 +8,5 @@ "type": "module", "private": true, "exports": "./index.js", - "scripts": { - "test:lint": "eslint . --quiet" - } + "scripts": {} } diff --git a/packages/@glimmer/local-debug-flags/package.json b/packages/@glimmer/local-debug-flags/package.json index 30312ee3a..5b2d8a847 100644 --- a/packages/@glimmer/local-debug-flags/package.json +++ b/packages/@glimmer/local-debug-flags/package.json @@ -6,9 +6,7 @@ "type": "module", "private": true, "exports": "./index.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "devDependencies": { "eslint": "^9.18.0" } diff --git a/packages/@glimmer/manager/package.json b/packages/@glimmer/manager/package.json index 97f23b7b3..afb4c8afe 100644 --- a/packages/@glimmer/manager/package.json +++ b/packages/@glimmer/manager/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/manager/test/package.json b/packages/@glimmer/manager/test/package.json index 871f709b2..9b53b62fc 100644 --- a/packages/@glimmer/manager/test/package.json +++ b/packages/@glimmer/manager/test/package.json @@ -5,9 +5,7 @@ "strictness": "loose" }, "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*", "@glimmer/manager": "workspace:*", diff --git a/packages/@glimmer/node/package.json b/packages/@glimmer/node/package.json index 2f937141a..fd6a6c855 100644 --- a/packages/@glimmer/node/package.json +++ b/packages/@glimmer/node/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/opcode-compiler/package.json b/packages/@glimmer/opcode-compiler/package.json index 1f122684d..2b4a83aa9 100644 --- a/packages/@glimmer/opcode-compiler/package.json +++ b/packages/@glimmer/opcode-compiler/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/owner/package.json b/packages/@glimmer/owner/package.json index f802d06f2..3fd0a8caa 100644 --- a/packages/@glimmer/owner/package.json +++ b/packages/@glimmer/owner/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "devDependencies": { diff --git a/packages/@glimmer/owner/test/package.json b/packages/@glimmer/owner/test/package.json index c6a2c81ed..2d83d6ede 100644 --- a/packages/@glimmer/owner/test/package.json +++ b/packages/@glimmer/owner/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/owner", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/owner": "workspace:*" } diff --git a/packages/@glimmer/program/package.json b/packages/@glimmer/program/package.json index 3134fbe26..9a09a9e3e 100644 --- a/packages/@glimmer/program/package.json +++ b/packages/@glimmer/program/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/program/test/package.json b/packages/@glimmer/program/test/package.json index 0e9463186..825443022 100644 --- a/packages/@glimmer/program/test/package.json +++ b/packages/@glimmer/program/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/program", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/program": "workspace:*" } diff --git a/packages/@glimmer/reference/package.json b/packages/@glimmer/reference/package.json index 17b95be60..56e6485c6 100644 --- a/packages/@glimmer/reference/package.json +++ b/packages/@glimmer/reference/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/reference/test/package.json b/packages/@glimmer/reference/test/package.json index c621c3011..2e4a5b8e5 100644 --- a/packages/@glimmer/reference/test/package.json +++ b/packages/@glimmer/reference/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/reference", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/global-context": "workspace:*", "@glimmer/reference": "workspace:*", diff --git a/packages/@glimmer/runtime/package.json b/packages/@glimmer/runtime/package.json index caf836e48..3284f2f07 100644 --- a/packages/@glimmer/runtime/package.json +++ b/packages/@glimmer/runtime/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/syntax/package.json b/packages/@glimmer/syntax/package.json index 286e4648f..9f6123245 100644 --- a/packages/@glimmer/syntax/package.json +++ b/packages/@glimmer/syntax/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/syntax/test/package.json b/packages/@glimmer/syntax/test/package.json index 39d72baad..9dc323dd8 100644 --- a/packages/@glimmer/syntax/test/package.json +++ b/packages/@glimmer/syntax/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/syntax", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer-workspace/integration-tests": "workspace:*", "@glimmer-workspace/test-utils": "workspace:*", diff --git a/packages/@glimmer/util/package.json b/packages/@glimmer/util/package.json index d933ad3d5..7674c2256 100644 --- a/packages/@glimmer/util/package.json +++ b/packages/@glimmer/util/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/util/test/package.json b/packages/@glimmer/util/test/package.json index 21ddd1440..6a937c029 100644 --- a/packages/@glimmer/util/test/package.json +++ b/packages/@glimmer/util/test/package.json @@ -2,9 +2,7 @@ "private": true, "name": "@glimmer-test/util", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/util": "workspace:*" } diff --git a/packages/@glimmer/validator/package.json b/packages/@glimmer/validator/package.json index e46a143e7..02a48d503 100644 --- a/packages/@glimmer/validator/package.json +++ b/packages/@glimmer/validator/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/validator/test/package.json b/packages/@glimmer/validator/test/package.json index d208f0d19..2aa799b84 100644 --- a/packages/@glimmer/validator/test/package.json +++ b/packages/@glimmer/validator/test/package.json @@ -5,9 +5,7 @@ "strictness": "strict" }, "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@glimmer/global-context": "workspace:*", "@glimmer/interfaces": "workspace:*", diff --git a/packages/@glimmer/vm-babel-plugins/package.json b/packages/@glimmer/vm-babel-plugins/package.json index 9ef0e89b5..65b3ceef8 100644 --- a/packages/@glimmer/vm-babel-plugins/package.json +++ b/packages/@glimmer/vm-babel-plugins/package.json @@ -31,7 +31,6 @@ "scripts": { "prepack": "rollup -c rollup.config.mjs", "test": "mocha", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/vm/package.json b/packages/@glimmer/vm/package.json index 4517aa56d..01d2fc2b7 100644 --- a/packages/@glimmer/vm/package.json +++ b/packages/@glimmer/vm/package.json @@ -27,7 +27,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@glimmer/wire-format/package.json b/packages/@glimmer/wire-format/package.json index b4488cd4e..7f5379590 100644 --- a/packages/@glimmer/wire-format/package.json +++ b/packages/@glimmer/wire-format/package.json @@ -28,7 +28,6 @@ ], "scripts": { "prepack": "rollup -c rollup.config.mjs", - "test:lint": "eslint . --quiet", "test:publint": "publint" }, "dependencies": { diff --git a/packages/@types/eslint-community__eslint-plugin-eslint-comments/package.json b/packages/@types/eslint-community__eslint-plugin-eslint-comments/package.json index 7bd289f38..7ad830c1d 100644 --- a/packages/@types/eslint-community__eslint-plugin-eslint-comments/package.json +++ b/packages/@types/eslint-community__eslint-plugin-eslint-comments/package.json @@ -3,9 +3,7 @@ "name": "@types/eslint-community__eslint-plugin-eslint-comments", "version": "0.92.0", "exports": "./index.d.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@types/eslint": "^9.6.1" } diff --git a/packages/@types/eslint-plugin-import/package.json b/packages/@types/eslint-plugin-import/package.json index b24da21ab..00cb79fc3 100644 --- a/packages/@types/eslint-plugin-import/package.json +++ b/packages/@types/eslint-plugin-import/package.json @@ -4,9 +4,7 @@ "version": "0.92.0", "type": "module", "exports": "./index.d.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@types/eslint": "^9.6.1" } diff --git a/packages/@types/eslint-plugin-qunit/package.json b/packages/@types/eslint-plugin-qunit/package.json index 61521e64d..7f8896aec 100644 --- a/packages/@types/eslint-plugin-qunit/package.json +++ b/packages/@types/eslint-plugin-qunit/package.json @@ -3,9 +3,7 @@ "name": "@types/eslint-plugin-qunit", "types": "index.d.ts", "version": "0.92.0", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "@types/eslint": "^9.6.1" } diff --git a/packages/@types/js-reporters/package.json b/packages/@types/js-reporters/package.json index 4c9541252..4e1419c70 100644 --- a/packages/@types/js-reporters/package.json +++ b/packages/@types/js-reporters/package.json @@ -3,7 +3,5 @@ "name": "@types/js-reporters", "version": "0.92.0", "exports": "./index.d.ts", - "scripts": { - "test:lint": "eslint . --quiet" - } + "scripts": {} } diff --git a/packages/@types/puppeteer-chromium-resolver/package.json b/packages/@types/puppeteer-chromium-resolver/package.json index 780b10197..66280a4cf 100644 --- a/packages/@types/puppeteer-chromium-resolver/package.json +++ b/packages/@types/puppeteer-chromium-resolver/package.json @@ -3,9 +3,7 @@ "name": "@types/puppeteer-chromium-resolver", "version": "0.92.0", "exports": "./index.d.ts", - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "puppeteer": "23.11.1" } diff --git a/repo-metadata/package.json b/repo-metadata/package.json index 70721f96d..f5f9a2b0c 100644 --- a/repo-metadata/package.json +++ b/repo-metadata/package.json @@ -10,9 +10,7 @@ }, "./metadata.json": "./metadata.json" }, - "scripts": { - "test:lint": "eslint . --quiet" - }, + "scripts": {}, "dependencies": { "chalk": "^5.4.1", "execa": "^9.5.2", diff --git a/turbo.json b/turbo.json index 300bc18cb..f26264477 100644 --- a/turbo.json +++ b/turbo.json @@ -26,7 +26,8 @@ "dependsOn": ["test:lint", "test:publint"] }, "test:node": {}, - "test:lint": {}, + "test:lint": { + }, "test:publint": { "dependsOn": ["prepack", "prepare"] }, @@ -38,6 +39,11 @@ "outputs": ["dist/**"], "dependsOn": ["^prepack"] }, + "//#test:lint": { + "dependsOn": ["//#repo:update:conventions", "//#repo:update:metadata"] + }, + "//#repo:update:convensions": {}, + "//#repo:update:metadata": {}, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], "dependsOn": ["^prepack", "//#benchmark:setup", "//#smoke:setup"] From 8206d97b686caf4f45dd96af6b58722bfcde6e3d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 17:40:42 -0500 Subject: [PATCH 28/29] fix --- package.json | 2 +- turbo.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 18797ab1e..638730ce5 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "lint:format": "prettier -c .", "postinstall": "node --disable-warning=ExperimentalWarning --experimental-strip-types ./bin/bench-packages.mts", "repo:lint:all": "turbo run lint:all", - "repo:lint:files": "turbo run test:lint", + "repo:lint:files": "turbo run //#test:lint", "repo:lint:fix": "turbo run test:lint -- --fix && prettier -w .", "repo:lint:pub": "turbo run test:publint", "repo:lint:types": "turbo run //#test:types", diff --git a/turbo.json b/turbo.json index f26264477..945cec319 100644 --- a/turbo.json +++ b/turbo.json @@ -42,7 +42,7 @@ "//#test:lint": { "dependsOn": ["//#repo:update:conventions", "//#repo:update:metadata"] }, - "//#repo:update:convensions": {}, + "//#repo:update:conventions": {}, "//#repo:update:metadata": {}, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], From 3e14e233969fd58a389ff036b7e0acfe20efb1df Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 24 Jan 2025 17:59:45 -0500 Subject: [PATCH 29/29] last fix? --- turbo.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/turbo.json b/turbo.json index 945cec319..a6d1808e0 100644 --- a/turbo.json +++ b/turbo.json @@ -26,8 +26,7 @@ "dependsOn": ["test:lint", "test:publint"] }, "test:node": {}, - "test:lint": { - }, + "test:lint": {}, "test:publint": { "dependsOn": ["prepack", "prepare"] },