From 808bee7daad4ba1f6b100527337f42d2eac5b712 Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sun, 11 Oct 2026 18:06:45 -0700 Subject: [PATCH] chore(typecheck): typecheck with tsc-rs (#16704) Co-authored-by: Claude Opus 5.5 --- apps/desktop/package.json | 2 +- apps/mobile/package.json | 2 +- apps/server/package.json | 2 +- .../scripts/record-muse-msp-replay-fixture.ts | 4 +- .../scripts/record-pi-rpc-replay-fixture.ts | 4 +- .../pullRequest/PullRequestService.test.ts | 2 +- apps/web/package.json | 2 +- docs/operations/development.md | 7 + infra/relay/package.json | 2 +- oxlint-plugin-t3code/package.json | 2 +- package.json | 1 + packages/client-runtime/package.json | 2 +- packages/contracts/package.json | 2 +- packages/effect-acp/package.json | 2 +- packages/effect-codex-app-server/package.json | 2 +- packages/provider-acp-registry/package.json | 2 +- packages/provider-acp/package.json | 2 +- packages/provider-core/package.json | 2 +- packages/provider-cursor/package.json | 2 +- packages/provider-grok/package.json | 2 +- packages/provider-muse/package.json | 2 +- packages/provider-opencode/package.json | 2 +- packages/provider-pi/package.json | 2 +- packages/provider-pi/src/server/usage.ts | 2 +- packages/provider-testing/package.json | 2 +- packages/shared/package.json | 2 +- .../source-control-azure-devops/package.json | 2 +- .../source-control-bitbucket/package.json | 2 +- packages/source-control-core/package.json | 2 +- packages/source-control-forgejo/package.json | 2 +- packages/source-control-gitcafe/package.json | 2 +- packages/source-control-github/package.json | 2 +- packages/source-control-gitlab/package.json | 2 +- packages/source-control-testing/package.json | 2 +- packages/ssh/package.json | 2 +- packages/tailscale/package.json | 2 +- pnpm-lock.yaml | 139 +++++++++++++----- pnpm-workspace.yaml | 5 +- scripts/package.json | 2 +- tsconfig.base.json | 4 + 40 files changed, 158 insertions(+), 72 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 551aa17e962ec1d2fbb6f31a5cb8ed5eefe1a376..8e736a7d54105a46abdcbc6ffe6dafaee2e9a271 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -7,7 +7,7 @@ "scripts": { "ensure:electron": "node scripts/ensure-electron-runtime.mjs", "start": "node scripts/start-electron.mjs", - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --passWithNoTests", "smoke-test": "node scripts/smoke-test.mjs" }, diff --git a/apps/mobile/package.json b/apps/mobile/package.json index e6f306eeb4671b799102276f95463ae9e262ec0f..66a92abb93ab0e45ba727861da4597c6bfad1173 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -43,7 +43,7 @@ "sync:pierre-icons": "node scripts/sync-pierre-file-icons.mjs", "generate": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/generate-uniwind-themes.mts", "test": "vp test run --config ../../vite.config.ts --dir .", - "typecheck": "tsc --noEmit" + "typecheck": "tsc-rs --noEmit" }, "dependencies": { "@clerk/expo": "catalog:", diff --git a/apps/server/package.json b/apps/server/package.json index 50ae5e0b499e9ce90290e198ddbab9fdecf6cd92..715fb3097986df3a695aefd1141f0356c4977ca3 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -19,7 +19,7 @@ "build:bundle": "vp pack", "build:exe": "node scripts/cli.ts build-exe", "start": "node dist/bin.mjs", - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run", "record:codex-replay": "bun scripts/record-codex-app-server-replay-fixture.ts", "record:claude-replay": "bun scripts/record-claude-agent-sdk-replay-fixture.ts", diff --git a/apps/server/scripts/record-muse-msp-replay-fixture.ts b/apps/server/scripts/record-muse-msp-replay-fixture.ts index 7a1cda34dd3c2b2ccb850f64b9e4cecc5bb950c2..4adcaf3b683bc88abd3074a886c08c8aecab68ec 100644 --- a/apps/server/scripts/record-muse-msp-replay-fixture.ts +++ b/apps/server/scripts/record-muse-msp-replay-fixture.ts @@ -236,13 +236,13 @@ const record = Effect.gen(function* () { const entries: Array = []; const commandIds: Array> = []; - const placeholder = { + const placeholder: ProviderReplayTranscript = { provider: MUSE_PROVIDER_KIND, protocol: MUSE_MSP_REPLAY_PROTOCOL, version: museVersion, scenario: fixture.name, entries: [], - } satisfies ProviderReplayTranscript; + }; const materializeInput = materializeFixtureInput({ scenario: fixture.name, fixtureInput, diff --git a/apps/server/scripts/record-pi-rpc-replay-fixture.ts b/apps/server/scripts/record-pi-rpc-replay-fixture.ts index 560565666e90ecda17bf699a27eaa8848063b56d..359b94bb13a4a1710368e23fd541d1b3665b99a3 100644 --- a/apps/server/scripts/record-pi-rpc-replay-fixture.ts +++ b/apps/server/scripts/record-pi-rpc-replay-fixture.ts @@ -244,13 +244,13 @@ const record = Effect.gen(function* () { ); const entries: Array = []; - const placeholder = { + const placeholder: ProviderReplayTranscript = { provider: PI_PROVIDER, protocol: PI_RPC_REPLAY_PROTOCOL, version: piVersion, scenario: fixture.name, entries: [], - } satisfies ProviderReplayTranscript; + }; const layerRecordingSpawner = Layer.effect( ChildProcessSpawner.ChildProcessSpawner, Effect.map(Effect.service(ChildProcessSpawner.ChildProcessSpawner), (live) => diff --git a/apps/server/src/pullRequest/PullRequestService.test.ts b/apps/server/src/pullRequest/PullRequestService.test.ts index cc1469436a15eb47e01f24e3a92909bd87e9cc9f..3850ed63a7b114d5b5cfb9a7f69511652b789003 100644 --- a/apps/server/src/pullRequest/PullRequestService.test.ts +++ b/apps/server/src/pullRequest/PullRequestService.test.ts @@ -6202,7 +6202,7 @@ it.effect("releases an expired diff nobody reads again", () => const service = yield* makeService({ projects: [project({ id: "p1", title: "web", workspaceRoot: "/a", repository: "acme/web" })], providers: [ - fakeProvider("github", { + fakeProvider(SourceControlProviderKind.make("github"), { getDiff: () => Effect.sync(() => ({ patch: "@@", truncated: false, nextCursor: null })), }), ], diff --git a/apps/web/package.json b/apps/web/package.json index 4d10f89743b6612c52c15c2ba9059619c8fbd940..b4ef7684a006b28f3f53fc6f20aaf0ae08fbfd9c 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,7 +8,7 @@ "dev": "vp dev", "build": "vp build", "preview": "vp preview", - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --passWithNoTests --project unit" }, "dependencies": { diff --git a/docs/operations/development.md b/docs/operations/development.md index b7e1b257d0b2f00959a1ea865e8c6e7a82f33e05..cc7d569f7041912bf7b4d36b7df1dbf580dae953 100644 --- a/docs/operations/development.md +++ b/docs/operations/development.md @@ -106,6 +106,13 @@ vp lint vp run --filter typecheck ``` +TypeScript workspaces typecheck with tsc-rs, which has Effect diagnostics built in. +Keep `typescript`, `@effect/tsgo`, and the `effect-tsgo patch` prepare step: editors +still use them for Effect quick fixes and refactors. Keep `@effect/tsgo` on the +effect-tsgo version that tsc-rs ports (see the tsc-rs README), or the two disagree +on rule names. +Marketing keeps `astro check` for Astro files. + Use `vp run lint:mobile` for native mobile changes. CI owns the full suite; see [ci.yml](../../.github/workflows/ci.yml) for its current jobs. The [manual Windows lane](../../.github/workflows/windows-tests.yml) is available for focused diff --git a/infra/relay/package.json b/infra/relay/package.json index 472f2606f20aa8ad24a0f10d65ce540d09458f8d..2992bb56a12ad69d56a7257bf1a22a8d3cb255de 100644 --- a/infra/relay/package.json +++ b/infra/relay/package.json @@ -9,7 +9,7 @@ "tunnels:census": "node scripts/tunnel-census.ts", "destroy": "alchemy destroy", "test": "vp test run --config ../../vite.config.ts --dir .", - "typecheck": "tsc --noEmit" + "typecheck": "tsc-rs --noEmit" }, "dependencies": { "@clerk/backend": "catalog:", diff --git a/oxlint-plugin-t3code/package.json b/oxlint-plugin-t3code/package.json index 35f13bbf382884b4501d9aa3559314bae015a76d..64c24c42bc4316eccd76ee49d4b9b84256e76bfb 100644 --- a/oxlint-plugin-t3code/package.json +++ b/oxlint-plugin-t3code/package.json @@ -3,7 +3,7 @@ "private": true, "type": "module", "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../vite.config.ts --dir ." }, "dependencies": { diff --git a/package.json b/package.json index e21d895fd656d2ff08e23b43f8f00f25f3a7a7b2..8f18f5c2504e53bac7c3994f71f88df7f9808dba 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@shadcn/lint": "0.1.5", "@types/node": "catalog:", "knip": "6.34.0", + "tsc-rs": "0.4.0", "typescript": "catalog:", "vite-plus": "catalog:" }, diff --git a/packages/client-runtime/package.json b/packages/client-runtime/package.json index 672f199270261bae2dc3ac56e2552e460cd722b4..ef3163329997e3165acbc9a0db64fe6e0568e13b 100644 --- a/packages/client-runtime/package.json +++ b/packages/client-runtime/package.json @@ -413,7 +413,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run" }, "dependencies": { diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 2daf804aadbf5e3b7b7319784a4045ed9cd1c49e..9faddf9e5a94d5117ede68233e55873ffd626e8d 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -21,7 +21,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/effect-acp/package.json b/packages/effect-acp/package.json index 0ceaf8e8af958c59ecfc0f7771cd21eaa9a82dcb..2b1b703c050e23a157c3eea58bfff8c2ce018ea4 100644 --- a/packages/effect-acp/package.json +++ b/packages/effect-acp/package.json @@ -37,7 +37,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir .", "generate": "node scripts/generate.ts" }, diff --git a/packages/effect-codex-app-server/package.json b/packages/effect-codex-app-server/package.json index 608db8d2ca30f690fbf3c0a0a588da9aa5ad2e69..624d96b91f033154fa4d3f9a5ad964937bce3be5 100644 --- a/packages/effect-codex-app-server/package.json +++ b/packages/effect-codex-app-server/package.json @@ -29,7 +29,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir .", "generate": "node scripts/generate.ts", "probe": "node test/examples/codex-app-server-probe.ts" diff --git a/packages/provider-acp-registry/package.json b/packages/provider-acp-registry/package.json index a9c474a9148f89b255714c69f23dea7e0d179c3e..cd192ba0f1f975178db17fc491512b40454ebe75 100644 --- a/packages/provider-acp-registry/package.json +++ b/packages/provider-acp-registry/package.json @@ -29,7 +29,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-acp/package.json b/packages/provider-acp/package.json index f3bbfa0dad3855e9f7650295f2317ad135e6f69e..32989728e0c6550190cb78f062d1e8bb58f90903 100644 --- a/packages/provider-acp/package.json +++ b/packages/provider-acp/package.json @@ -45,7 +45,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-core/package.json b/packages/provider-core/package.json index c45de9a9b149f47b4c0ec59972cee6172cec4df8..7003e0a82c9b86f66cc7e69c1f8236ed8ec11948 100644 --- a/packages/provider-core/package.json +++ b/packages/provider-core/package.json @@ -185,7 +185,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-cursor/package.json b/packages/provider-cursor/package.json index b139d6ecc8dd81e807e618e492fd92a03136cd36..1b4aa9f332839e50d7add8023d91fea49c671b5e 100644 --- a/packages/provider-cursor/package.json +++ b/packages/provider-cursor/package.json @@ -45,7 +45,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-grok/package.json b/packages/provider-grok/package.json index 95ba20214e81a011ecc22d8e4e8299f74d272235..1187be63a0344cd5f0ccb250e98a5b6967bd02c5 100644 --- a/packages/provider-grok/package.json +++ b/packages/provider-grok/package.json @@ -25,7 +25,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-muse/package.json b/packages/provider-muse/package.json index e6e6852c2ba46d063f520079e26073d896a420fe..a54d78fc585bcea4e471d70f6019ee31af3497fd 100644 --- a/packages/provider-muse/package.json +++ b/packages/provider-muse/package.json @@ -21,7 +21,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-opencode/package.json b/packages/provider-opencode/package.json index 9aa836a69a6d1c99b08542ea88997e1c710bebbd..8834800fd6377d4c8658a897f376f878897adbd7 100644 --- a/packages/provider-opencode/package.json +++ b/packages/provider-opencode/package.json @@ -45,7 +45,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-pi/package.json b/packages/provider-pi/package.json index 3eb548606a456a55ae31d0bb58b18b5639754f68..8606fee447362ab16698075d175e065851a43c18 100644 --- a/packages/provider-pi/package.json +++ b/packages/provider-pi/package.json @@ -21,7 +21,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/provider-pi/src/server/usage.ts b/packages/provider-pi/src/server/usage.ts index 8c019cc68368b01713ec9b6843aac3bafaa167e5..bce75c298750fc3cb51dac4e1f4fa5375ded7faa 100644 --- a/packages/provider-pi/src/server/usage.ts +++ b/packages/provider-pi/src/server/usage.ts @@ -115,7 +115,7 @@ export const piUsageFormat: TranscriptUsageFormat = { usage: true, message: { role: true, provider: true, model: true, responseModel: true, usage: true }, }, - mightCarryUsage: (line) => line.includes('"usage"') || line.includes('"session"'), + usageMarkers: ['"usage"', '"session"'], parseLine: (line, state) => { let parsed: unknown; try { diff --git a/packages/provider-testing/package.json b/packages/provider-testing/package.json index 90cd5b4a7f98fdd5092e0602bb9550d17576a530..fa78824aa8ae1d389d3bea0482fffc262cad21b0 100644 --- a/packages/provider-testing/package.json +++ b/packages/provider-testing/package.json @@ -25,7 +25,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/shared/package.json b/packages/shared/package.json index 5e290d502e6f895bb520849eb405a181e0fb32a2..7ad055d76ded9132bafc4c12b6180022883d8675 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -485,7 +485,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-azure-devops/package.json b/packages/source-control-azure-devops/package.json index 4e5f9747c379fea83ce869f07a0b2eae36fe09b0..456c9b1d0148887c828ced79bde0f323f49d33b4 100644 --- a/packages/source-control-azure-devops/package.json +++ b/packages/source-control-azure-devops/package.json @@ -41,7 +41,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-bitbucket/package.json b/packages/source-control-bitbucket/package.json index 890c4c34cbe5cbe9583bf4ff1fb0cf40ac4e82d7..7321429132a0bd24142c53449435a65d6e5a1b62 100644 --- a/packages/source-control-bitbucket/package.json +++ b/packages/source-control-bitbucket/package.json @@ -37,7 +37,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-core/package.json b/packages/source-control-core/package.json index d463190918b2962f75d3b551561a0b34210327df..414d5199eae27a4cbdd6c04e7063f2de91aa5b4c 100644 --- a/packages/source-control-core/package.json +++ b/packages/source-control-core/package.json @@ -45,7 +45,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-forgejo/package.json b/packages/source-control-forgejo/package.json index a33de46a6de8a6c443ad9520e3f8599a46b3703c..5a2f1a747c90085aaccb81f3c7c69db48036b167 100644 --- a/packages/source-control-forgejo/package.json +++ b/packages/source-control-forgejo/package.json @@ -33,7 +33,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-gitcafe/package.json b/packages/source-control-gitcafe/package.json index 7107cd1e47f0e5af98bf8740f4abbe217d99dd3a..af7f7740bb9e0423cd24440573c4ef6288335e1c 100644 --- a/packages/source-control-gitcafe/package.json +++ b/packages/source-control-gitcafe/package.json @@ -37,7 +37,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-github/package.json b/packages/source-control-github/package.json index 7cd6bed31b83bd60ad07bd7c8860d7b705020794..d7be6f20ce153c81851860f84c36622906431327 100644 --- a/packages/source-control-github/package.json +++ b/packages/source-control-github/package.json @@ -73,7 +73,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-gitlab/package.json b/packages/source-control-gitlab/package.json index def5c117c558c6484c64c9af263a179706f5c2b0..aafefa73fb4badf8368114c83cd2557602eccd8a 100644 --- a/packages/source-control-gitlab/package.json +++ b/packages/source-control-gitlab/package.json @@ -41,7 +41,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/source-control-testing/package.json b/packages/source-control-testing/package.json index 60c1bbcf43bf6243f797d628e488a50dbb09df0c..298364a137d6366bf1e072d5e5dea2ab0dd47df3 100644 --- a/packages/source-control-testing/package.json +++ b/packages/source-control-testing/package.json @@ -9,7 +9,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit" + "typecheck": "tsc-rs --noEmit" }, "dependencies": { "@t3tools/contracts": "workspace:*", diff --git a/packages/ssh/package.json b/packages/ssh/package.json index 04b6173bd252adc91c022620112bb3256c473f58..8c31c3a4558028e456e87b430bd647b833cf965d 100644 --- a/packages/ssh/package.json +++ b/packages/ssh/package.json @@ -25,7 +25,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/packages/tailscale/package.json b/packages/tailscale/package.json index e51f0773937051d0b47a4831fe5ca43ae8efc5a1..b6ab7f4c1034ddfa958d17f9fae540746174d357 100644 --- a/packages/tailscale/package.json +++ b/packages/tailscale/package.json @@ -9,7 +9,7 @@ } }, "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../../vite.config.ts --dir ." }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 130e01a08b2ac239a7f976adf4b3ef0e6b00a4cf..772f580c1402ff6fa745708373eed32158ef2bb5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ catalogs: specifier: 4.0.2 version: 4.0.2 '@effect/tsgo': - specifier: 0.46.1 - version: 0.46.1 + specifier: 0.51.1 + version: 0.51.1 '@legendapp/list': specifier: 3.3.5 version: 3.3.5 @@ -178,7 +178,7 @@ importers: version: 1.1.0 '@effect/tsgo': specifier: 'catalog:' - version: 0.46.1 + version: 0.51.1 '@shadcn/lint': specifier: 0.1.5 version: 0.1.5 @@ -188,6 +188,9 @@ importers: knip: specifier: 6.34.0 version: 6.34.0 + tsc-rs: + specifier: 0.4.0 + version: 0.4.0 typescript: specifier: 'catalog:' version: 7.0.2 @@ -3123,43 +3126,43 @@ packages: peerDependencies: effect: 4.0.2 - '@effect/tsgo-darwin-arm64@0.46.1': - resolution: {integrity: sha512-ErehNqI9p8me4XKO8N4bzdDWgBbSNlJ3CIZGfXoAW6Fo4Oo7x4ZbZV7KNsMSn9aJSiUUOQUoXjGBdslU5OYMdw==} + '@effect/tsgo-darwin-arm64@0.51.1': + resolution: {integrity: sha512-Jx+1RB3pz1B2zYs1EmxybwDOq9KRpfdu/rn1XTULNMZmqUJZuvTQU9CRqB0g/ZgIa6MeNBZEYvmAu4Dq2/QVWA==} cpu: [arm64] os: [darwin] - '@effect/tsgo-darwin-x64@0.46.1': - resolution: {integrity: sha512-zsQI1gjGMYF/C2FWDUwbStBAf0tJDVgXeWwTAZ+VUiNY06fR1SrZHK0L+22PE49Nim3biWK2h+XXRFVzql+ojg==} + '@effect/tsgo-darwin-x64@0.51.1': + resolution: {integrity: sha512-eRz7eHOOb2eJPUj66m89Zhzu924vGvNLDAXzcEAIaXVsWc4Zw29RVUsRnp/ozTmCbDVCvMqPSh8i9bkdAmt8mA==} cpu: [x64] os: [darwin] - '@effect/tsgo-linux-arm64@0.46.1': - resolution: {integrity: sha512-e283BZEQC3mJpk1N7vdUhoF/aYHc4YwCE/fwz/80d11OSvG35U+c49grxS7V7+dAl2ld6QiT8D1rcL8PYu8DLQ==} + '@effect/tsgo-linux-arm64@0.51.1': + resolution: {integrity: sha512-LqZKkEEgJcq7dOho+h0esioU/idlB/+VhPuMR7l9B5Y7mk17Eivs8TiJQHtxLVfrh/nizbvZih7O5GujRNG0bw==} cpu: [arm64] os: [linux] - '@effect/tsgo-linux-arm@0.46.1': - resolution: {integrity: sha512-Y12wOcJ6HgwiCgg/oDQH4tdRQKRsWnul/KjCOwMxzVT4kO+ndczu1sKUZT+qIxV7qNk4Sq+uSWKEnFBA3ETI8w==} + '@effect/tsgo-linux-arm@0.51.1': + resolution: {integrity: sha512-vub6MCJIbczHp+Im1GTEUh5YyS+6YHcvH0ZmBdSjdvqzzBKbRnl5xUbO52tRJlty74f+3ey+uSh0nIO99NnggA==} cpu: [arm] os: [linux] - '@effect/tsgo-linux-x64@0.46.1': - resolution: {integrity: sha512-NYGBC3Scfo9yZJfs7cg0KMcHgtukJ4+xff18nqIrON9Zzc/qD6w1AwEwYKYCsbai5hTQBb3VLIWmHM8BJ54WJg==} + '@effect/tsgo-linux-x64@0.51.1': + resolution: {integrity: sha512-zyKKcdL2Pr4C//9raggaEuxhsSUR7jT6517vHvPwykbBPjPnnmGtM1Kq7NKEIZnvXWzXcaK+4wAK/0FqSqMOmw==} cpu: [x64] os: [linux] - '@effect/tsgo-win32-arm64@0.46.1': - resolution: {integrity: sha512-MK93SN9qjowrCjch+2wGGncd6Y7KgDyJvLKVVFCJV8cPpHoL3xDCpxFCGqQWe120mVpLmnzbM2evKdh0M5l5PA==} + '@effect/tsgo-win32-arm64@0.51.1': + resolution: {integrity: sha512-yIF88Za3Bs793Mb8OShet8gc3kj/NNty6+ZoTdgiPXWlY6xh84bZZCOETqE7VcCmxXFT3NZSYQuDrU35/CTvRQ==} cpu: [arm64] os: [win32] - '@effect/tsgo-win32-x64@0.46.1': - resolution: {integrity: sha512-hlRbeNlp0N/dfZZFl+xVzT3XfHYqPmkXzCadR6e5yoe/vyA3O9RnO5UrOBHsXvL2RTE6hrh8bRfx2Uu6g3LL5w==} + '@effect/tsgo-win32-x64@0.51.1': + resolution: {integrity: sha512-5HO1TJkWMlErIXbfKKWEMzg0Jj0MPQAzs0g1k7wA3B1ZxNDoDY9iRu5eGM+G1a4HmKl3zA7hQZd0ch2Dh4MohQ==} cpu: [x64] os: [win32] - '@effect/tsgo@0.46.1': - resolution: {integrity: sha512-DMcBCg5nWLufejRlyqFEkXmbtaLUJ56NKny6L1LTtimvz0U3VNj9H6ZUXV4WeeWvJzVyL0y7G2wsCBAFUgy1jw==} + '@effect/tsgo@0.51.1': + resolution: {integrity: sha512-i6mA6cNah+0mkPdu8qZILCO3Pnd9kWo03/s82Ju+1DFhdL28HFagi+1PRGxqgq1uMaHziWQ+ciKvOmIoks2RdA==} hasBin: true '@effect/vitest@4.0.2': @@ -6180,6 +6183,42 @@ packages: '@tiptap/starter-kit@3.31.3': resolution: {integrity: sha512-WKof9RewdmGHvWJ1wn0/HVNG2mV+HOgVRyJkKekuM9fgr6BZAAH/xZsWE1eon+94JnQ+KtK2ThydXQM/qc6b2A==} + '@tsc-rs/darwin-arm64@0.4.0': + resolution: {integrity: sha512-g7/vyDJejH/Q3SrNSBU6RQ3/lAOkfRKJWItctE3/gHON1bE1a/ZXn6FDVl4krVdq7IL1Tv+qt8QdW/HE/3zd4w==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@tsc-rs/darwin-x64@0.4.0': + resolution: {integrity: sha512-rbyoTAw/te6OPdLdy9pUdDGfdNUKYxiANfKBEah3xEFkWD/Qgo2RDMlgmtgcZZ2YAfofk//mLSgJubyxFN4UAw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@tsc-rs/linux-arm64@0.4.0': + resolution: {integrity: sha512-Do+aW6j1ij5Uwq9/43dEZ1QqlJesBRkzqV5aQB+ts9CA77RVabMRU6A7lyzYUkBhN8oM1yvBm/8NhjogfOdWaw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@tsc-rs/linux-x64@0.4.0': + resolution: {integrity: sha512-LPs7cRxoYv87uDqyeeAchuIEsoCOKPf70lgP1CgJD52AoEI9+kHrHC/Ync9R80+nVw2os8F4n8vFJKqpVFnpTA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@tsc-rs/win32-arm64@0.4.0': + resolution: {integrity: sha512-iiqdmmyH67mDpzlOph8zpUNkea+40Cbd+vcgq7sHPWUMX0j5Z21zKNfjAUNuIBdwf2RWssEalQfhlqjlljc/mg==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@tsc-rs/win32-x64@0.4.0': + resolution: {integrity: sha512-9HuOuax8UHxfrjFxzgsSETHOfLlshwzNKXN9ZoUf0kzzFMkBbRuw0guYNuufR3VoxAbpSG6vY0MRayiWwg88lA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@tweenjs/tween.js@23.1.3': resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} @@ -11629,6 +11668,11 @@ packages: resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} engines: {node: '>=6.10'} + tsc-rs@0.4.0: + resolution: {integrity: sha512-tSy0GZ9p+kYZx4QAs6JGa8cXihp0oft7ISqJtbpJ1w2QSclmSK8ikxIxPAYzVHEbIN5Bd7SE8MH0WLmJUhSIHg==} + engines: {node: '>=16.20.0'} + hasBin: true + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -13869,36 +13913,36 @@ snapshots: dependencies: effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688) - '@effect/tsgo-darwin-arm64@0.46.1': + '@effect/tsgo-darwin-arm64@0.51.1': optional: true - '@effect/tsgo-darwin-x64@0.46.1': + '@effect/tsgo-darwin-x64@0.51.1': optional: true - '@effect/tsgo-linux-arm64@0.46.1': + '@effect/tsgo-linux-arm64@0.51.1': optional: true - '@effect/tsgo-linux-arm@0.46.1': + '@effect/tsgo-linux-arm@0.51.1': optional: true - '@effect/tsgo-linux-x64@0.46.1': + '@effect/tsgo-linux-x64@0.51.1': optional: true - '@effect/tsgo-win32-arm64@0.46.1': + '@effect/tsgo-win32-arm64@0.51.1': optional: true - '@effect/tsgo-win32-x64@0.46.1': + '@effect/tsgo-win32-x64@0.51.1': optional: true - '@effect/tsgo@0.46.1': + '@effect/tsgo@0.51.1': optionalDependencies: - '@effect/tsgo-darwin-arm64': 0.46.1 - '@effect/tsgo-darwin-x64': 0.46.1 - '@effect/tsgo-linux-arm': 0.46.1 - '@effect/tsgo-linux-arm64': 0.46.1 - '@effect/tsgo-linux-x64': 0.46.1 - '@effect/tsgo-win32-arm64': 0.46.1 - '@effect/tsgo-win32-x64': 0.46.1 + '@effect/tsgo-darwin-arm64': 0.51.1 + '@effect/tsgo-darwin-x64': 0.51.1 + '@effect/tsgo-linux-arm': 0.51.1 + '@effect/tsgo-linux-arm64': 0.51.1 + '@effect/tsgo-linux-x64': 0.51.1 + '@effect/tsgo-win32-arm64': 0.51.1 + '@effect/tsgo-win32-x64': 0.51.1 '@effect/vitest@4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)': dependencies: @@ -16734,6 +16778,24 @@ snapshots: '@tiptap/extensions': 3.31.3(@tiptap/core@3.31.3(@tiptap/pm@3.31.3))(@tiptap/pm@3.31.3) '@tiptap/pm': 3.31.3 + '@tsc-rs/darwin-arm64@0.4.0': + optional: true + + '@tsc-rs/darwin-x64@0.4.0': + optional: true + + '@tsc-rs/linux-arm64@0.4.0': + optional: true + + '@tsc-rs/linux-x64@0.4.0': + optional: true + + '@tsc-rs/win32-arm64@0.4.0': + optional: true + + '@tsc-rs/win32-x64@0.4.0': + optional: true + '@tweenjs/tween.js@23.1.3': {} '@tybys/wasm-util@0.10.3': @@ -23040,6 +23102,15 @@ snapshots: ts-dedent@2.3.0: {} + tsc-rs@0.4.0: + optionalDependencies: + '@tsc-rs/darwin-arm64': 0.4.0 + '@tsc-rs/darwin-x64': 0.4.0 + '@tsc-rs/linux-arm64': 0.4.0 + '@tsc-rs/linux-x64': 0.4.0 + '@tsc-rs/win32-arm64': 0.4.0 + '@tsc-rs/win32-x64': 0.4.0 + tslib@2.8.1: {} type-fest@0.13.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index aca4f28645e858a32f5833e90e0fe7f5b6ace92d..0d37bd2f57298d2260a7ad1ffd13b0668135bfd6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,6 +23,7 @@ allowBuilds: "react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.10.tgz": true react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.9.tgz: set this to true or false sharp: true + tsc-rs: true utf-8-validate: false workerd: false @@ -40,7 +41,7 @@ catalog: "@effect/platform-node-shared": 4.0.2 "@effect/sql-pg": 4.0.2 "@effect/sql-sqlite-do": 4.0.2 - "@effect/tsgo": 0.46.1 + "@effect/tsgo": 0.51.1 "@effect/vitest": 4.0.2 "@electron-webauthn/macos": 1.3.1 "@legendapp/list": 3.3.5 @@ -82,6 +83,8 @@ catalog: unified: 11.0.5 minimumReleaseAgeExclude: + - tsc-rs + - "@tsc-rs/*" - expo-glass-effect@58.0.3 - expo-blur@58.0.3 - expo-audio@58.0.4 diff --git a/scripts/package.json b/scripts/package.json index ed30ba91b7b8ff1be867bccc94e162d367af91b5..23a3c194cecd240a41d6e7512c66c4cce85615c5 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -3,7 +3,7 @@ "private": true, "type": "module", "scripts": { - "typecheck": "tsc --noEmit", + "typecheck": "tsc-rs --noEmit", "test": "vp test run --config ../vite.config.ts --dir ." }, "dependencies": { diff --git a/tsconfig.base.json b/tsconfig.base.json index f6914a8e1e6c56d4d3cae814f72d9c680c01caf3..17efedde931b034501c53bb25a04b6b9b21a744b 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -28,6 +28,10 @@ "instanceOfSchema": "error", "deterministicKeys": "error", "strictEffectProvide": "off", + // We use Effect's unstable modules (http, sql) on purpose. These rules + // also make effect-tsgo 0.47+ report false TS2790 errors on `delete`. + "unstableApiUsage": "off", + "experimentalApiUsage": "off", "missingEffectServiceDependency": "error", "leakingRequirements": "error", "globalErrorInEffectCatch": "error", -- 2.54.0