From 835b0423bba95a3b33423b1165dc75097c061ab5 Mon Sep 17 00:00:00 2001 From: mintaka Date: Mon, 31 Aug 2026 22:01:37 -0400 Subject: [PATCH] refactor(toolchain): add shared tsconfig.base.json; extend it everywhere (RIG-3115) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The compass tree had no shared tsconfig base — every project shipped a standalone copy, the tool ones byte-identical. This adds a root `tsconfig.base.json` (matching how biome uses `extends: //` and bun uses one lock + catalog) and points every non-fork, non-astro project at it, leaving only genuine per-project deltas (apps/ui's DOM/Solid libs, per-project `types`/`include`, the tools' module-handling flags: `moduleDetection`, `allowJs`, `allowImportingTsExtensions`). eng-docs (Astro toolchain) and forks/ keep their own bases and are untouched. Strict-flag unification: `noFallthroughCasesInSwitch` and `noImplicitOverride` fold into the base — the full `:typecheck` gate stays green repo-wide with them applied everywhere. `noUncheckedIndexedAccess` is deferred: lifting it repo-wide surfaces 385 pre-existing latent type errors in the leaner projects (packages/compass-agent 165, apps/ui 219, tools/toolchain/devenv-cli 1), all TS18048/TS2532/TS2345/TS2322 'possibly undefined' at index accesses. It remains a per-leaf delta on the 14 tool configs that already had it; fixing the product-code errors is out of scope for this structural PR and is left for a follow-up. Spec-impact: none. Refs RIG-3115 Co-authored-by: Matt Wilkinson --- apps/ui/moon.yml | 8 ++++---- apps/ui/tsconfig.json | 8 +------- packages/compass-agent/moon.yml | 4 ++-- packages/compass-agent/tsconfig.json | 8 +------- packages/compass-client/moon.yml | 2 +- packages/compass-client/tsconfig.json | 8 +------- tools/agent-image-env-gate/moon.yml | 4 ++-- tools/agent-image-env-gate/tsconfig.json | 12 ++---------- tools/ci-matrix/moon.yml | 4 ++-- tools/ci-matrix/tsconfig.json | 12 ++---------- tools/compass-app-dev/moon.yml | 4 ++-- tools/compass-app-dev/tsconfig.json | 12 ++---------- tools/cx-token-gate/moon.yml | 4 ++-- tools/cx-token-gate/tsconfig.json | 12 ++---------- tools/design-ledger-gate/moon.yml | 4 ++-- tools/design-ledger-gate/tsconfig.json | 12 ++---------- tools/forge-linear-token/moon.yml | 4 ++-- tools/forge-linear-token/tsconfig.json | 12 ++---------- tools/inline-sql-gate/moon.yml | 4 ++-- tools/inline-sql-gate/tsconfig.json | 12 ++---------- tools/macos-bundle/moon.yml | 4 ++-- tools/macos-bundle/tsconfig.json | 12 ++---------- tools/microvm-boot-test/moon.yml | 4 ++-- tools/microvm-boot-test/tsconfig.json | 12 ++---------- tools/orion-ref-gate/moon.yml | 4 ++-- tools/orion-ref-gate/tsconfig.json | 12 ++---------- tools/release-notes/moon.yml | 4 ++-- tools/release-notes/tsconfig.json | 12 ++---------- tools/renovate-preflight/moon.yml | 4 ++-- tools/renovate-preflight/tsconfig.json | 12 ++---------- tools/renovate/moon.yml | 3 ++- tools/renovate/tsconfig.json | 12 ++---------- tools/sea-ref-gate/moon.yml | 4 ++-- tools/sea-ref-gate/tsconfig.json | 12 ++---------- tools/stamp-gate/moon.yml | 4 ++-- tools/stamp-gate/tsconfig.json | 8 +------- tools/toolchain/devenv-cli/moon.yml | 2 +- tools/toolchain/devenv-cli/tsconfig.json | 8 +------- tools/toolchain/moon.yml | 2 +- tools/toolchain/tsconfig.json | 8 +------- tsconfig.base.json | 13 +++++++++++++ 41 files changed, 86 insertions(+), 220 deletions(-) create mode 100644 tsconfig.base.json diff --git a/apps/ui/moon.yml b/apps/ui/moon.yml index 40c005977..c23939cc2 100644 --- a/apps/ui/moon.yml +++ b/apps/ui/moon.yml @@ -15,11 +15,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['src/**/*', 'tsconfig.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] + inputs: ['src/**/*', 'tsconfig.json', '/tsconfig.base.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] build: command: 'bunx vite build' deps: ['install'] - inputs: ['src/**/*', 'index.html', 'tsconfig.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] + inputs: ['src/**/*', 'index.html', 'tsconfig.json', '/tsconfig.base.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] outputs: ['dist'] test: # `--conditions browser` resolves solid-js to its client build (dist/solid.js), @@ -47,7 +47,7 @@ tasks: # vite.config.ts too, matching the `build`/`typecheck` inputs. Without these a # vite.config-only change would leave `test` unaffected and serve the gate a # cached-green, precisely on the config change the gate exists to catch. - inputs: ['src/**/*', 'index.html', 'tsconfig.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] + inputs: ['src/**/*', 'index.html', 'tsconfig.json', '/tsconfig.base.json', 'package.json', 'vite.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] stylelint: # D7 guard (RIG-2034 T6): bans raw hex, --rigel-* refs, literal # durations/easings, and the retired legacy var vocabulary outside @@ -74,7 +74,7 @@ tasks: # the rot this gate exists to red on. Precedent: `ci` itself (below). command: 'bunx playwright test e2e/dev-boot.spec.ts' deps: ['install'] - inputs: ['src/**/*', 'index.html', 'tsconfig.json', 'package.json', 'vite.config.ts', 'e2e/dev-boot.spec.ts', 'playwright.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] + inputs: ['src/**/*', 'index.html', 'tsconfig.json', '/tsconfig.base.json', 'package.json', 'vite.config.ts', 'e2e/dev-boot.spec.ts', 'playwright.config.ts', '/bun.lock', '/packages/compass-client/src/**/*', '/packages/compass-client/package.json'] options: cache: false ci: diff --git a/apps/ui/tsconfig.json b/apps/ui/tsconfig.json index 0ec56001c..7f36b755a 100644 --- a/apps/ui/tsconfig.json +++ b/apps/ui/tsconfig.json @@ -1,13 +1,7 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", "lib": ["ES2022", "DOM", "DOM.Iterable"], - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "jsx": "preserve", "jsxImportSource": "@solidjs/web", "types": ["vite/client", "bun"] diff --git a/packages/compass-agent/moon.yml b/packages/compass-agent/moon.yml index 84a115bac..0c5a1cc6e 100644 --- a/packages/compass-agent/moon.yml +++ b/packages/compass-agent/moon.yml @@ -14,11 +14,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['src/**/*', 'scripts/**/*', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['src/**/*', 'scripts/**/*', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['src/**/*', 'scripts/**/*', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['src/**/*', 'scripts/**/*', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/packages/compass-agent/tsconfig.json b/packages/compass-agent/tsconfig.json index 067409b52..e86254a58 100644 --- a/packages/compass-agent/tsconfig.json +++ b/packages/compass-agent/tsconfig.json @@ -1,12 +1,6 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "types": ["bun"] }, "include": ["src", "scripts"] diff --git a/packages/compass-client/moon.yml b/packages/compass-client/moon.yml index 238b0e62a..ee40f6141 100644 --- a/packages/compass-client/moon.yml +++ b/packages/compass-client/moon.yml @@ -11,7 +11,7 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['src/**/*', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['src/**/*', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] diff --git a/packages/compass-client/tsconfig.json b/packages/compass-client/tsconfig.json index 777bf2fc0..ac9ef3e35 100644 --- a/packages/compass-client/tsconfig.json +++ b/packages/compass-client/tsconfig.json @@ -1,12 +1,6 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "types": ["bun"] }, "include": ["src"] diff --git a/tools/agent-image-env-gate/moon.yml b/tools/agent-image-env-gate/moon.yml index 2d2426a49..5dfd70728 100644 --- a/tools/agent-image-env-gate/moon.yml +++ b/tools/agent-image-env-gate/moon.yml @@ -27,12 +27,12 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: # The pure core (env-check.ts) over fixtures for each wrong-image defect. command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The real gate: build the exact spec the publish lane ships, inspect its # OCI config, and assert env-cleanliness + platform. Depends on diff --git a/tools/agent-image-env-gate/tsconfig.json b/tools/agent-image-env-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/agent-image-env-gate/tsconfig.json +++ b/tools/agent-image-env-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/ci-matrix/moon.yml b/tools/ci-matrix/moon.yml index d03a4892a..fbed3ce86 100644 --- a/tools/ci-matrix/moon.yml +++ b/tools/ci-matrix/moon.yml @@ -16,11 +16,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/ci-matrix/tsconfig.json b/tools/ci-matrix/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/ci-matrix/tsconfig.json +++ b/tools/ci-matrix/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/compass-app-dev/moon.yml b/tools/compass-app-dev/moon.yml index dfda88436..8f1b446cf 100644 --- a/tools/compass-app-dev/moon.yml +++ b/tools/compass-app-dev/moon.yml @@ -18,11 +18,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/compass-app-dev/tsconfig.json b/tools/compass-app-dev/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/compass-app-dev/tsconfig.json +++ b/tools/compass-app-dev/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/cx-token-gate/moon.yml b/tools/cx-token-gate/moon.yml index 7a17b03a8..575b4aa09 100644 --- a/tools/cx-token-gate/moon.yml +++ b/tools/cx-token-gate/moon.yml @@ -23,11 +23,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The consumption gate: scan the whole repo's apps/ui/src CSS tree for # banned raw hex / --rigel-* / literal duration+easing values. Run from the diff --git a/tools/cx-token-gate/tsconfig.json b/tools/cx-token-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/cx-token-gate/tsconfig.json +++ b/tools/cx-token-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/design-ledger-gate/moon.yml b/tools/design-ledger-gate/moon.yml index 6af96f2d8..2bff02eea 100644 --- a/tools/design-ledger-gate/moon.yml +++ b/tools/design-ledger-gate/moon.yml @@ -21,11 +21,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The snapshot gate: scan the whole repo's docs/designs/ governed buckets # ledger/header/pointer integrity. Run from the workspace root so links and diff --git a/tools/design-ledger-gate/tsconfig.json b/tools/design-ledger-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/design-ledger-gate/tsconfig.json +++ b/tools/design-ledger-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/forge-linear-token/moon.yml b/tools/forge-linear-token/moon.yml index 3d0f50121..3b99657d4 100644 --- a/tools/forge-linear-token/moon.yml +++ b/tools/forge-linear-token/moon.yml @@ -26,11 +26,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/forge-linear-token/tsconfig.json b/tools/forge-linear-token/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/forge-linear-token/tsconfig.json +++ b/tools/forge-linear-token/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/inline-sql-gate/moon.yml b/tools/inline-sql-gate/moon.yml index fd3329651..dd017eaa9 100644 --- a/tools/inline-sql-gate/moon.yml +++ b/tools/inline-sql-gate/moon.yml @@ -23,11 +23,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The ban gate: scan the whole repo's go/**/*.go tree for inline SQL at pgx # call sites. Run from the workspace root so the scanned globs resolve diff --git a/tools/inline-sql-gate/tsconfig.json b/tools/inline-sql-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/inline-sql-gate/tsconfig.json +++ b/tools/inline-sql-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/macos-bundle/moon.yml b/tools/macos-bundle/moon.yml index d0705e1d6..413cc6e60 100644 --- a/tools/macos-bundle/moon.yml +++ b/tools/macos-bundle/moon.yml @@ -17,11 +17,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/macos-bundle/tsconfig.json b/tools/macos-bundle/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/macos-bundle/tsconfig.json +++ b/tools/macos-bundle/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/microvm-boot-test/moon.yml b/tools/microvm-boot-test/moon.yml index 978d057a5..5f2f9b280 100644 --- a/tools/microvm-boot-test/moon.yml +++ b/tools/microvm-boot-test/moon.yml @@ -23,13 +23,13 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: # The pure core (run-core.ts) over fixtures: the out-path parsing + env # mapping, incl. the fail-closed drift edges. command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/microvm-boot-test/tsconfig.json b/tools/microvm-boot-test/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/microvm-boot-test/tsconfig.json +++ b/tools/microvm-boot-test/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/orion-ref-gate/moon.yml b/tools/orion-ref-gate/moon.yml index 3c499b1ae..9055afb53 100644 --- a/tools/orion-ref-gate/moon.yml +++ b/tools/orion-ref-gate/moon.yml @@ -17,11 +17,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The boundary gate: scan the whole tracked tree (via git grep) for any # reference to the private monorepo. Run from the workspace root so the diff --git a/tools/orion-ref-gate/tsconfig.json b/tools/orion-ref-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/orion-ref-gate/tsconfig.json +++ b/tools/orion-ref-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/release-notes/moon.yml b/tools/release-notes/moon.yml index e6eba4c0e..337a52fe3 100644 --- a/tools/release-notes/moon.yml +++ b/tools/release-notes/moon.yml @@ -17,11 +17,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] options: diff --git a/tools/release-notes/tsconfig.json b/tools/release-notes/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/release-notes/tsconfig.json +++ b/tools/release-notes/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/renovate-preflight/moon.yml b/tools/renovate-preflight/moon.yml index d05359481..b66c77c9c 100644 --- a/tools/renovate-preflight/moon.yml +++ b/tools/renovate-preflight/moon.yml @@ -18,12 +18,12 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'package.json', 'tsconfig.json', '/bun.lock'] + inputs: ['*.ts', 'package.json', 'tsconfig.json', '/tsconfig.base.json', '/bun.lock'] ci: deps: ['typecheck', 'test'] diff --git a/tools/renovate-preflight/tsconfig.json b/tools/renovate-preflight/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/renovate-preflight/tsconfig.json +++ b/tools/renovate-preflight/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/renovate/moon.yml b/tools/renovate/moon.yml index 13369ef8f..20f7ffc50 100644 --- a/tools/renovate/moon.yml +++ b/tools/renovate/moon.yml @@ -20,7 +20,7 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] @@ -28,6 +28,7 @@ tasks: - '*.ts' - '*.json5' - 'tsconfig.json' + - '/tsconfig.base.json' - 'package.json' - '/bun.lock' - '/package.json' diff --git a/tools/renovate/tsconfig.json b/tools/renovate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/renovate/tsconfig.json +++ b/tools/renovate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/sea-ref-gate/moon.yml b/tools/sea-ref-gate/moon.yml index 8361ee200..13e25b9be 100644 --- a/tools/sea-ref-gate/moon.yml +++ b/tools/sea-ref-gate/moon.yml @@ -17,11 +17,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The boundary gate: scan the whole tracked tree (via git grep) for any # retired SEA-NNN issue ref. Run from the workspace root so the scan and diff --git a/tools/sea-ref-gate/tsconfig.json b/tools/sea-ref-gate/tsconfig.json index 47d3248bb..d40cc9e50 100644 --- a/tools/sea-ref-gate/tsconfig.json +++ b/tools/sea-ref-gate/tsconfig.json @@ -1,19 +1,11 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "Preserve", + "lib": ["ES2022"], "moduleDetection": "force", "allowJs": true, - "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "types": ["bun"] } } diff --git a/tools/stamp-gate/moon.yml b/tools/stamp-gate/moon.yml index 5fb2a4295..edd5db944 100644 --- a/tools/stamp-gate/moon.yml +++ b/tools/stamp-gate/moon.yml @@ -17,11 +17,11 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] test: command: 'bun test' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', 'package.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', 'package.json', '/bun.lock'] check: # The gate itself, against the real gen trees and the real plugin. Distinct # from `test`, which drives the pure core over fixtures: this one is the diff --git a/tools/stamp-gate/tsconfig.json b/tools/stamp-gate/tsconfig.json index 612d04ceb..0e1399b19 100644 --- a/tools/stamp-gate/tsconfig.json +++ b/tools/stamp-gate/tsconfig.json @@ -1,12 +1,6 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "types": ["bun"] }, "include": ["."] diff --git a/tools/toolchain/devenv-cli/moon.yml b/tools/toolchain/devenv-cli/moon.yml index 62c96acd6..6dfd0f0b4 100644 --- a/tools/toolchain/devenv-cli/moon.yml +++ b/tools/toolchain/devenv-cli/moon.yml @@ -19,7 +19,7 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', '/bun.lock'] test: command: 'bun test' diff --git a/tools/toolchain/devenv-cli/tsconfig.json b/tools/toolchain/devenv-cli/tsconfig.json index db8363cde..747c03e9a 100644 --- a/tools/toolchain/devenv-cli/tsconfig.json +++ b/tools/toolchain/devenv-cli/tsconfig.json @@ -1,12 +1,6 @@ { + "extends": "../../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "allowImportingTsExtensions": true, "types": ["bun"] }, diff --git a/tools/toolchain/moon.yml b/tools/toolchain/moon.yml index 6523a5471..6b6cd3113 100644 --- a/tools/toolchain/moon.yml +++ b/tools/toolchain/moon.yml @@ -18,7 +18,7 @@ tasks: typecheck: command: 'bunx tsc --noEmit' deps: ['install'] - inputs: ['*.ts', 'tsconfig.json', '/bun.lock'] + inputs: ['*.ts', 'tsconfig.json', '/tsconfig.base.json', '/bun.lock'] test: command: 'bun test' diff --git a/tools/toolchain/tsconfig.json b/tools/toolchain/tsconfig.json index db8363cde..251782f93 100644 --- a/tools/toolchain/tsconfig.json +++ b/tools/toolchain/tsconfig.json @@ -1,12 +1,6 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", - "module": "preserve", - "moduleResolution": "bundler", - "strict": true, - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, "allowImportingTsExtensions": true, "types": ["bun"] }, diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..468378689 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "preserve", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "noEmit": true, + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noImplicitOverride": true + } +}