diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa1729faaf..d00a92007f 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,37 @@ 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-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/.gitignore b/.gitignore index 42fbb5942d..ec6222adef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store /dist **/dist /control-dist/ diff --git a/.meta-updater/main.mjs b/.meta-updater/main.mjs index 23cb6e7df4..f527fa34a3 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 6df9eb3687..0a1036c0cc 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 0bc5b3daec..78409b28ee 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/bin/run-node-tests.mjs b/bin/run-node-tests.mjs deleted file mode 100755 index 927f6ea45b..0000000000 --- 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, - }); -} diff --git a/package.json b/package.json index cfdbf92bdf..638730ce57 100644 --- a/package.json +++ b/package.json @@ -25,19 +25,20 @@ "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": "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", + "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", "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 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" @@ -54,8 +55,10 @@ "@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:*", "@glimmer-workspace/integration-tests": "workspace:*", "@glimmer-workspace/repo-metadata": "workspace:*", "@glimmer/env": "0.1.7", @@ -126,6 +129,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/packages/@glimmer-workspace/benchmark-env/package.json b/packages/@glimmer-workspace/benchmark-env/package.json index 1ada0933e8..7b6ad22f4d 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 6d6ecf9097..63feddf552 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 d063182cf0..0dddbc69cf 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 883eb1e1f2..e6e99e9b15 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-node-tests/.gitignore b/packages/@glimmer-workspace/integration-node-tests/.gitignore new file mode 100644 index 0000000000..8d12edbe86 --- /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 new file mode 100644 index 0000000000..65744ce04a --- /dev/null +++ b/packages/@glimmer-workspace/integration-node-tests/package.json @@ -0,0 +1,21 @@ +{ + "name": "@glimmer-workspace/integration-node-tests", + "version": "0.92.0", + "type": "module", + "private": true, + "repo-meta": { + "strictness": "loose" + }, + "scripts": { + "test:node": "vitest --run" + }, + "dependencies": { + "@glimmer/syntax": "workspace:*", + "execa": "^9.5.2", + "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 new file mode 100644 index 0000000000..562477fe12 --- /dev/null +++ b/packages/@glimmer-workspace/integration-node-tests/test/prettier.test.ts @@ -0,0 +1,41 @@ +import { createRequire } from 'node:module'; + +import * as prettier from 'prettier'; +import { describe, expect, it } from 'vitest'; + +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 + * + * 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`, () => { + 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/packages/@glimmer-workspace/integration-tests/package.json b/packages/@glimmer-workspace/integration-tests/package.json index c138056767..7767159359 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 02ea2e148b..7fda1b061b 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 2e006deeee..aaba44b301 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 7c67297d5e..705c51d504 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 c05aeec506..7381093647 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 7ace7a8edb..0450258700 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 6e38b1da99..1affb87572 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/lib/present.ts b/packages/@glimmer/debug-util/lib/present.ts index 5b2886e747..e03386ab4f 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( diff --git a/packages/@glimmer/debug-util/package.json b/packages/@glimmer/debug-util/package.json index 4217d34135..a54e810860 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 6470fea724..8673ef4002 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 0dd5e96239..dba5654778 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 3e62957b1a..6ec0d83216 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 f7548f22cb..ff82003281 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 a6392d150b..97adbbaa98 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 92f15701d2..3463bb5929 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 ef9052c2b0..123532aae9 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 81ebd9e130..d068d7094c 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 66ae30bb01..a16923bf66 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 30312ee3ad..5b2d8a8479 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 97f23b7b30..afb4c8afe6 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 871f709b20..9b53b62fc1 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 2f937141a0..fd6a6c855b 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 1f122684db..2b4a83aa9f 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 f802d06f27..3fd0a8caad 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 c6a2c81ed9..2d83d6edef 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 3134fbe265..9a09a9e3e9 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 0e94631864..8254430227 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 17b95be601..56e6485c63 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 c621c30116..2e4a5b8e50 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 caf836e48f..3284f2f07c 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 286e4648f4..9f61232459 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 39d72baad4..9dc323dd8e 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 d933ad3d51..7674c22562 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 21ddd1440c..6a937c0298 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 e46a143e7a..02a48d5039 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 d208f0d198..2aa799b845 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 9ef0e89b50..65b3ceef89 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 4517aa56d1..01d2fc2b75 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 b4488cd4e7..7f5379590c 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 7bd289f386..7ad830c1d3 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 b24da21ab4..00cb79fc3e 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 61521e64da..7f8896aec9 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 4c95412521..4e1419c705 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 780b101976..66280a4cf2 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/pnpm-lock.yaml b/pnpm-lock.yaml index 126251827c..9148d31c8b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,12 +47,18 @@ 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 '@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 @@ -263,6 +269,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 @@ -592,6 +601,25 @@ 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 + execa: + specifier: ^9.5.2 + version: 9.5.2 + prettier: + 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) + packages/@glimmer-workspace/integration-tests: dependencies: '@glimmer-workspace/test-utils': @@ -4416,6 +4444,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'} @@ -4675,6 +4732,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'} @@ -5116,6 +5177,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'} @@ -5146,6 +5211,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'} @@ -5817,6 +5886,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'} @@ -6121,6 +6194,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'} @@ -6394,6 +6470,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'} @@ -6462,6 +6541,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'} @@ -7897,12 +7980,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==} @@ -7939,6 +8024,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==} @@ -8820,6 +8908,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==} @@ -9790,6 +9885,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==} @@ -9969,6 +10067,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==} @@ -9984,6 +10085,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'} @@ -10266,6 +10370,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'} @@ -10703,6 +10825,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} @@ -10774,6 +10901,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==} @@ -10854,6 +11009,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==} @@ -14221,6 +14381,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': @@ -14487,6 +14687,8 @@ snapshots: assert-never@1.4.0: {} + assertion-error@2.0.1: {} + assign-symbols@1.0.0: {} ast-types@0.13.4: @@ -15238,6 +15440,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 @@ -15269,6 +15479,8 @@ snapshots: dependencies: inherits: 2.0.4 + check-error@2.1.1: {} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 @@ -15812,6 +16024,8 @@ snapshots: dependencies: mimic-response: 1.0.1 + deep-eql@5.0.2: {} + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -16289,6 +16503,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 @@ -16717,6 +16933,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: @@ -16860,6 +17080,8 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 + expect-type@1.1.0: {} + express@4.21.2: dependencies: accepts: 1.3.8 @@ -18547,6 +18769,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 @@ -19492,6 +19716,10 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + + pathval@2.0.0: {} + pause-stream@0.0.11: dependencies: through: 2.3.8 @@ -20599,6 +20827,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: {} @@ -20801,6 +21031,8 @@ snapshots: stable@0.1.8: {} + stackback@0.0.2: {} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 @@ -20815,6 +21047,8 @@ snapshots: statuses@2.0.1: {} + std-env@3.8.0: {} + stdin-discarder@0.2.2: {} stream-combiner@0.0.4: @@ -21292,6 +21526,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 @@ -21751,6 +21995,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 @@ -21774,6 +22039,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 @@ -21891,6 +22194,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 diff --git a/repo-metadata/metadata.json b/repo-metadata/metadata.json index 5d3c8e26cb..506264e0fb 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"]] @@ -108,6 +107,20 @@ ".": [[["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" + }, + "entryPoints": { + "./package.json": [[["default"], "./package.json"]] + } + }, { "root": "packages/@glimmer-workspace/integration-tests", "name": "@glimmer-workspace/integration-tests", diff --git a/repo-metadata/package.json b/repo-metadata/package.json index 70721f96d6..f5f9a2b0c4 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/smoke-tests/node/.gitignore b/smoke-tests/node/.gitignore new file mode 100644 index 0000000000..8d12edbe86 --- /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 0000000000..e29ef78dbe --- /dev/null +++ b/smoke-tests/node/package.json @@ -0,0 +1,42 @@ +{ + "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": "vitest --run", + "test:setup": "node --disable-warning=ExperimentalWarning --experimental-strip-types ./setup.ts" + }, + "devDependencies": { + "execa": "^9.5.2", + "vite": "^5.4.10", + "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 0000000000..7fb744be74 --- /dev/null +++ b/smoke-tests/node/setup.ts @@ -0,0 +1,74 @@ +import { readFile } from 'node:fs/promises'; +import { join } from 'node:path'; +import { styleText } from 'node:util'; + +import { execaCommand } 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); +} + +let asBin = false; + +function log(msg: any) { + if (asBin) { + console.info(msg); + } +} + +function inDir(dir: string, cmd: string, options = {}) { + log(styleText('gray', `in ${dir}:\n`) + styleText('green', '\t' + cmd)); + + return execaCommand(cmd, { + cwd: dir, + preferLocal: true, + shell: true, + stdio: 'inherit', + ...options, + }); +} + +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) { + 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 new file mode 100644 index 0000000000..8c5a927c97 --- /dev/null +++ b/smoke-tests/node/tests/syntax.test.ts @@ -0,0 +1,96 @@ +import { preprocess } from '@glimmer/syntax'; +import { describe, it, expect } from 'vitest'; + +describe('@glimmer/syntax', () => { + it('process()', () => { + 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", + } + `); + }); +}); diff --git a/smoke-tests/node/vite.config.ts b/smoke-tests/node/vite.config.ts new file mode 100644 index 0000000000..75417a1826 --- /dev/null +++ b/smoke-tests/node/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + resolve: { + conditions: ['module', 'node', process.env['NODE_ENV'] ?? 'production'], + }, +}); diff --git a/tsconfig.json b/tsconfig.json index 5df27cdb99..c0b5a690e7 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 fd41e11e97..a6d1808e00 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"] @@ -34,11 +35,25 @@ "outputs": ["dist/**"] }, "prepack": { - "outputs": ["dist/**"] + "outputs": ["dist/**"], + "dependsOn": ["^prepack"] + }, + "//#test:lint": { + "dependsOn": ["//#repo:update:conventions", "//#repo:update:metadata"] }, + "//#repo:update:conventions": {}, + "//#repo:update:metadata": {}, "//#test:types": { "inputs": ["**/dist/**", "tsconfig.dist.json"], - "dependsOn": ["^build"] + "dependsOn": ["^prepack", "//#benchmark:setup", "//#smoke:setup"] + }, + "//#benchmark:setup": { + "outputs": ["./benchmark/benchmarks/krausest/packages"], + "dependsOn": ["^prepack"] + }, + "//#smoke:setup": { + "outputs": ["./smoke-tests/node/packages"], + "dependsOn": ["^prepack"] } } }