authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-10-11 18:06:45-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-11 18:06:45-07:00
log808bee7daad4ba1f6b100527337f42d2eac5b712
treedf0c5d12cf2767075266aecabd3917b4c5d2c2af
parent6bbb72c61dfcbd3b7f9398ca8ce99b86c6bdefdb
signature Signed by PGP key B5690EEEBB952194

chore(typecheck): typecheck with tsc-rs (#16704)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

40 files changed, 158 insertions(+), 72 deletions(-)

apps/desktop/package.json+1-1
...@@ -7,7 +7,7 @@...@@ -7,7 +7,7 @@
7 "scripts": {7 "scripts": {
8 "ensure:electron": "node scripts/ensure-electron-runtime.mjs",8 "ensure:electron": "node scripts/ensure-electron-runtime.mjs",
9 "start": "node scripts/start-electron.mjs",9 "start": "node scripts/start-electron.mjs",
10 "typecheck": "tsc --noEmit",10 "typecheck": "tsc-rs --noEmit",
11 "test": "vp test run --passWithNoTests",11 "test": "vp test run --passWithNoTests",
12 "smoke-test": "node scripts/smoke-test.mjs"12 "smoke-test": "node scripts/smoke-test.mjs"
13 },13 },
apps/mobile/package.json+1-1
...@@ -43,7 +43,7 @@...@@ -43,7 +43,7 @@
43 "sync:pierre-icons": "node scripts/sync-pierre-file-icons.mjs",43 "sync:pierre-icons": "node scripts/sync-pierre-file-icons.mjs",
44 "generate": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/generate-uniwind-themes.mts",44 "generate": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/generate-uniwind-themes.mts",
45 "test": "vp test run --config ../../vite.config.ts --dir .",45 "test": "vp test run --config ../../vite.config.ts --dir .",
46 "typecheck": "tsc --noEmit"46 "typecheck": "tsc-rs --noEmit"
47 },47 },
48 "dependencies": {48 "dependencies": {
49 "@clerk/expo": "catalog:",49 "@clerk/expo": "catalog:",
apps/server/package.json+1-1
...@@ -19,7 +19,7 @@...@@ -19,7 +19,7 @@
19 "build:bundle": "vp pack",19 "build:bundle": "vp pack",
20 "build:exe": "node scripts/cli.ts build-exe",20 "build:exe": "node scripts/cli.ts build-exe",
21 "start": "node dist/bin.mjs",21 "start": "node dist/bin.mjs",
22 "typecheck": "tsc --noEmit",22 "typecheck": "tsc-rs --noEmit",
23 "test": "vp test run",23 "test": "vp test run",
24 "record:codex-replay": "bun scripts/record-codex-app-server-replay-fixture.ts",24 "record:codex-replay": "bun scripts/record-codex-app-server-replay-fixture.ts",
25 "record:claude-replay": "bun scripts/record-claude-agent-sdk-replay-fixture.ts",25 "record:claude-replay": "bun scripts/record-claude-agent-sdk-replay-fixture.ts",
apps/server/scripts/record-muse-msp-replay-fixture.ts+2-2
...@@ -236,13 +236,13 @@ const record = Effect.gen(function* () {...@@ -236,13 +236,13 @@ const record = Effect.gen(function* () {
236236
237 const entries: Array<ProviderReplayEntry> = [];237 const entries: Array<ProviderReplayEntry> = [];
238 const commandIds: Array<Array<string>> = [];238 const commandIds: Array<Array<string>> = [];
239 const placeholder = {239 const placeholder: ProviderReplayTranscript = {
240 provider: MUSE_PROVIDER_KIND,240 provider: MUSE_PROVIDER_KIND,
241 protocol: MUSE_MSP_REPLAY_PROTOCOL,241 protocol: MUSE_MSP_REPLAY_PROTOCOL,
242 version: museVersion,242 version: museVersion,
243 scenario: fixture.name,243 scenario: fixture.name,
244 entries: [],244 entries: [],
245 } satisfies ProviderReplayTranscript;245 };
246 const materializeInput = materializeFixtureInput({246 const materializeInput = materializeFixtureInput({
247 scenario: fixture.name,247 scenario: fixture.name,
248 fixtureInput,248 fixtureInput,
apps/server/scripts/record-pi-rpc-replay-fixture.ts+2-2
...@@ -244,13 +244,13 @@ const record = Effect.gen(function* () {...@@ -244,13 +244,13 @@ const record = Effect.gen(function* () {
244 );244 );
245245
246 const entries: Array<ProviderReplayEntry> = [];246 const entries: Array<ProviderReplayEntry> = [];
247 const placeholder = {247 const placeholder: ProviderReplayTranscript = {
248 provider: PI_PROVIDER,248 provider: PI_PROVIDER,
249 protocol: PI_RPC_REPLAY_PROTOCOL,249 protocol: PI_RPC_REPLAY_PROTOCOL,
250 version: piVersion,250 version: piVersion,
251 scenario: fixture.name,251 scenario: fixture.name,
252 entries: [],252 entries: [],
253 } satisfies ProviderReplayTranscript;253 };
254 const layerRecordingSpawner = Layer.effect(254 const layerRecordingSpawner = Layer.effect(
255 ChildProcessSpawner.ChildProcessSpawner,255 ChildProcessSpawner.ChildProcessSpawner,
256 Effect.map(Effect.service(ChildProcessSpawner.ChildProcessSpawner), (live) =>256 Effect.map(Effect.service(ChildProcessSpawner.ChildProcessSpawner), (live) =>
apps/server/src/pullRequest/PullRequestService.test.ts+1-1
...@@ -6202,7 +6202,7 @@ it.effect("releases an expired diff nobody reads again", () =>...@@ -6202,7 +6202,7 @@ it.effect("releases an expired diff nobody reads again", () =>
6202 const service = yield* makeService({6202 const service = yield* makeService({
6203 projects: [project({ id: "p1", title: "web", workspaceRoot: "/a", repository: "acme/web" })],6203 projects: [project({ id: "p1", title: "web", workspaceRoot: "/a", repository: "acme/web" })],
6204 providers: [6204 providers: [
6205 fakeProvider("github", {6205 fakeProvider(SourceControlProviderKind.make("github"), {
6206 getDiff: () => Effect.sync(() => ({ patch: "@@", truncated: false, nextCursor: null })),6206 getDiff: () => Effect.sync(() => ({ patch: "@@", truncated: false, nextCursor: null })),
6207 }),6207 }),
6208 ],6208 ],
apps/web/package.json+1-1
...@@ -8,7 +8,7 @@...@@ -8,7 +8,7 @@
8 "dev": "vp dev",8 "dev": "vp dev",
9 "build": "vp build",9 "build": "vp build",
10 "preview": "vp preview",10 "preview": "vp preview",
11 "typecheck": "tsc --noEmit",11 "typecheck": "tsc-rs --noEmit",
12 "test": "vp test run --passWithNoTests --project unit"12 "test": "vp test run --passWithNoTests --project unit"
13 },13 },
14 "dependencies": {14 "dependencies": {
docs/operations/development.md+7
...@@ -106,6 +106,13 @@ vp lint <files>...@@ -106,6 +106,13 @@ vp lint <files>
106vp run --filter <package> typecheck106vp run --filter <package> typecheck
107```107```
108108
109TypeScript workspaces typecheck with tsc-rs, which has Effect diagnostics built in.
110Keep `typescript`, `@effect/tsgo`, and the `effect-tsgo patch` prepare step: editors
111still use them for Effect quick fixes and refactors. Keep `@effect/tsgo` on the
112effect-tsgo version that tsc-rs ports (see the tsc-rs README), or the two disagree
113on rule names.
114Marketing keeps `astro check` for Astro files.
115
109Use `vp run lint:mobile` for native mobile changes. CI owns the full suite; see116Use `vp run lint:mobile` for native mobile changes. CI owns the full suite; see
110[ci.yml](../../.github/workflows/ci.yml) for its current jobs.117[ci.yml](../../.github/workflows/ci.yml) for its current jobs.
111The [manual Windows lane](../../.github/workflows/windows-tests.yml) is available for focused118The [manual Windows lane](../../.github/workflows/windows-tests.yml) is available for focused
infra/relay/package.json+1-1
...@@ -9,7 +9,7 @@...@@ -9,7 +9,7 @@
9 "tunnels:census": "node scripts/tunnel-census.ts",9 "tunnels:census": "node scripts/tunnel-census.ts",
10 "destroy": "alchemy destroy",10 "destroy": "alchemy destroy",
11 "test": "vp test run --config ../../vite.config.ts --dir .",11 "test": "vp test run --config ../../vite.config.ts --dir .",
12 "typecheck": "tsc --noEmit"12 "typecheck": "tsc-rs --noEmit"
13 },13 },
14 "dependencies": {14 "dependencies": {
15 "@clerk/backend": "catalog:",15 "@clerk/backend": "catalog:",
oxlint-plugin-t3code/package.json+1-1
...@@ -3,7 +3,7 @@...@@ -3,7 +3,7 @@
3 "private": true,3 "private": true,
4 "type": "module",4 "type": "module",
5 "scripts": {5 "scripts": {
6 "typecheck": "tsc --noEmit",6 "typecheck": "tsc-rs --noEmit",
7 "test": "vp test run --config ../vite.config.ts --dir ."7 "test": "vp test run --config ../vite.config.ts --dir ."
8 },8 },
9 "dependencies": {9 "dependencies": {
package.json+1
...@@ -56,6 +56,7 @@...@@ -56,6 +56,7 @@
56 "@shadcn/lint": "0.1.5",56 "@shadcn/lint": "0.1.5",
57 "@types/node": "catalog:",57 "@types/node": "catalog:",
58 "knip": "6.34.0",58 "knip": "6.34.0",
59 "tsc-rs": "0.4.0",
59 "typescript": "catalog:",60 "typescript": "catalog:",
60 "vite-plus": "catalog:"61 "vite-plus": "catalog:"
61 },62 },
packages/client-runtime/package.json+1-1
...@@ -413,7 +413,7 @@...@@ -413,7 +413,7 @@
413 }413 }
414 },414 },
415 "scripts": {415 "scripts": {
416 "typecheck": "tsc --noEmit",416 "typecheck": "tsc-rs --noEmit",
417 "test": "vp test run"417 "test": "vp test run"
418 },418 },
419 "dependencies": {419 "dependencies": {
packages/contracts/package.json+1-1
...@@ -21,7 +21,7 @@...@@ -21,7 +21,7 @@
21 }21 }
22 },22 },
23 "scripts": {23 "scripts": {
24 "typecheck": "tsc --noEmit",24 "typecheck": "tsc-rs --noEmit",
25 "test": "vp test run --config ../../vite.config.ts --dir ."25 "test": "vp test run --config ../../vite.config.ts --dir ."
26 },26 },
27 "dependencies": {27 "dependencies": {
packages/effect-acp/package.json+1-1
...@@ -37,7 +37,7 @@...@@ -37,7 +37,7 @@
37 }37 }
38 },38 },
39 "scripts": {39 "scripts": {
40 "typecheck": "tsc --noEmit",40 "typecheck": "tsc-rs --noEmit",
41 "test": "vp test run --config ../../vite.config.ts --dir .",41 "test": "vp test run --config ../../vite.config.ts --dir .",
42 "generate": "node scripts/generate.ts"42 "generate": "node scripts/generate.ts"
43 },43 },
packages/effect-codex-app-server/package.json+1-1
...@@ -29,7 +29,7 @@...@@ -29,7 +29,7 @@
29 }29 }
30 },30 },
31 "scripts": {31 "scripts": {
32 "typecheck": "tsc --noEmit",32 "typecheck": "tsc-rs --noEmit",
33 "test": "vp test run --config ../../vite.config.ts --dir .",33 "test": "vp test run --config ../../vite.config.ts --dir .",
34 "generate": "node scripts/generate.ts",34 "generate": "node scripts/generate.ts",
35 "probe": "node test/examples/codex-app-server-probe.ts"35 "probe": "node test/examples/codex-app-server-probe.ts"
packages/provider-acp-registry/package.json+1-1
...@@ -29,7 +29,7 @@...@@ -29,7 +29,7 @@
29 }29 }
30 },30 },
31 "scripts": {31 "scripts": {
32 "typecheck": "tsc --noEmit",32 "typecheck": "tsc-rs --noEmit",
33 "test": "vp test run --config ../../vite.config.ts --dir ."33 "test": "vp test run --config ../../vite.config.ts --dir ."
34 },34 },
35 "dependencies": {35 "dependencies": {
packages/provider-acp/package.json+1-1
...@@ -45,7 +45,7 @@...@@ -45,7 +45,7 @@
45 }45 }
46 },46 },
47 "scripts": {47 "scripts": {
48 "typecheck": "tsc --noEmit",48 "typecheck": "tsc-rs --noEmit",
49 "test": "vp test run --config ../../vite.config.ts --dir ."49 "test": "vp test run --config ../../vite.config.ts --dir ."
50 },50 },
51 "dependencies": {51 "dependencies": {
packages/provider-core/package.json+1-1
...@@ -185,7 +185,7 @@...@@ -185,7 +185,7 @@
185 }185 }
186 },186 },
187 "scripts": {187 "scripts": {
188 "typecheck": "tsc --noEmit",188 "typecheck": "tsc-rs --noEmit",
189 "test": "vp test run --config ../../vite.config.ts --dir ."189 "test": "vp test run --config ../../vite.config.ts --dir ."
190 },190 },
191 "dependencies": {191 "dependencies": {
packages/provider-cursor/package.json+1-1
...@@ -45,7 +45,7 @@...@@ -45,7 +45,7 @@
45 }45 }
46 },46 },
47 "scripts": {47 "scripts": {
48 "typecheck": "tsc --noEmit",48 "typecheck": "tsc-rs --noEmit",
49 "test": "vp test run --config ../../vite.config.ts --dir ."49 "test": "vp test run --config ../../vite.config.ts --dir ."
50 },50 },
51 "dependencies": {51 "dependencies": {
packages/provider-grok/package.json+1-1
...@@ -25,7 +25,7 @@...@@ -25,7 +25,7 @@
25 }25 }
26 },26 },
27 "scripts": {27 "scripts": {
28 "typecheck": "tsc --noEmit",28 "typecheck": "tsc-rs --noEmit",
29 "test": "vp test run --config ../../vite.config.ts --dir ."29 "test": "vp test run --config ../../vite.config.ts --dir ."
30 },30 },
31 "dependencies": {31 "dependencies": {
packages/provider-muse/package.json+1-1
...@@ -21,7 +21,7 @@...@@ -21,7 +21,7 @@
21 }21 }
22 },22 },
23 "scripts": {23 "scripts": {
24 "typecheck": "tsc --noEmit",24 "typecheck": "tsc-rs --noEmit",
25 "test": "vp test run --config ../../vite.config.ts --dir ."25 "test": "vp test run --config ../../vite.config.ts --dir ."
26 },26 },
27 "dependencies": {27 "dependencies": {
packages/provider-opencode/package.json+1-1
...@@ -45,7 +45,7 @@...@@ -45,7 +45,7 @@
45 }45 }
46 },46 },
47 "scripts": {47 "scripts": {
48 "typecheck": "tsc --noEmit",48 "typecheck": "tsc-rs --noEmit",
49 "test": "vp test run --config ../../vite.config.ts --dir ."49 "test": "vp test run --config ../../vite.config.ts --dir ."
50 },50 },
51 "dependencies": {51 "dependencies": {
packages/provider-pi/package.json+1-1
...@@ -21,7 +21,7 @@...@@ -21,7 +21,7 @@
21 }21 }
22 },22 },
23 "scripts": {23 "scripts": {
24 "typecheck": "tsc --noEmit",24 "typecheck": "tsc-rs --noEmit",
25 "test": "vp test run --config ../../vite.config.ts --dir ."25 "test": "vp test run --config ../../vite.config.ts --dir ."
26 },26 },
27 "dependencies": {27 "dependencies": {
packages/provider-pi/src/server/usage.ts+1-1
...@@ -115,7 +115,7 @@ export const piUsageFormat: TranscriptUsageFormat<typeof PiScanState.Type> = {...@@ -115,7 +115,7 @@ export const piUsageFormat: TranscriptUsageFormat<typeof PiScanState.Type> = {
115 usage: true,115 usage: true,
116 message: { role: true, provider: true, model: true, responseModel: true, usage: true },116 message: { role: true, provider: true, model: true, responseModel: true, usage: true },
117 },117 },
118 mightCarryUsage: (line) => line.includes('"usage"') || line.includes('"session"'),118 usageMarkers: ['"usage"', '"session"'],
119 parseLine: (line, state) => {119 parseLine: (line, state) => {
120 let parsed: unknown;120 let parsed: unknown;
121 try {121 try {
packages/provider-testing/package.json+1-1
...@@ -25,7 +25,7 @@...@@ -25,7 +25,7 @@
25 }25 }
26 },26 },
27 "scripts": {27 "scripts": {
28 "typecheck": "tsc --noEmit",28 "typecheck": "tsc-rs --noEmit",
29 "test": "vp test run --config ../../vite.config.ts --dir ."29 "test": "vp test run --config ../../vite.config.ts --dir ."
30 },30 },
31 "dependencies": {31 "dependencies": {
packages/shared/package.json+1-1
...@@ -485,7 +485,7 @@...@@ -485,7 +485,7 @@
485 }485 }
486 },486 },
487 "scripts": {487 "scripts": {
488 "typecheck": "tsc --noEmit",488 "typecheck": "tsc-rs --noEmit",
489 "test": "vp test run --config ../../vite.config.ts --dir ."489 "test": "vp test run --config ../../vite.config.ts --dir ."
490 },490 },
491 "dependencies": {491 "dependencies": {
packages/source-control-azure-devops/package.json+1-1
...@@ -41,7 +41,7 @@...@@ -41,7 +41,7 @@
41 }41 }
42 },42 },
43 "scripts": {43 "scripts": {
44 "typecheck": "tsc --noEmit",44 "typecheck": "tsc-rs --noEmit",
45 "test": "vp test run --config ../../vite.config.ts --dir ."45 "test": "vp test run --config ../../vite.config.ts --dir ."
46 },46 },
47 "dependencies": {47 "dependencies": {
packages/source-control-bitbucket/package.json+1-1
...@@ -37,7 +37,7 @@...@@ -37,7 +37,7 @@
37 }37 }
38 },38 },
39 "scripts": {39 "scripts": {
40 "typecheck": "tsc --noEmit",40 "typecheck": "tsc-rs --noEmit",
41 "test": "vp test run --config ../../vite.config.ts --dir ."41 "test": "vp test run --config ../../vite.config.ts --dir ."
42 },42 },
43 "dependencies": {43 "dependencies": {
packages/source-control-core/package.json+1-1
...@@ -45,7 +45,7 @@...@@ -45,7 +45,7 @@
45 }45 }
46 },46 },
47 "scripts": {47 "scripts": {
48 "typecheck": "tsc --noEmit",48 "typecheck": "tsc-rs --noEmit",
49 "test": "vp test run --config ../../vite.config.ts --dir ."49 "test": "vp test run --config ../../vite.config.ts --dir ."
50 },50 },
51 "dependencies": {51 "dependencies": {
packages/source-control-forgejo/package.json+1-1
...@@ -33,7 +33,7 @@...@@ -33,7 +33,7 @@
33 }33 }
34 },34 },
35 "scripts": {35 "scripts": {
36 "typecheck": "tsc --noEmit",36 "typecheck": "tsc-rs --noEmit",
37 "test": "vp test run --config ../../vite.config.ts --dir ."37 "test": "vp test run --config ../../vite.config.ts --dir ."
38 },38 },
39 "dependencies": {39 "dependencies": {
packages/source-control-gitcafe/package.json+1-1
...@@ -37,7 +37,7 @@...@@ -37,7 +37,7 @@
37 }37 }
38 },38 },
39 "scripts": {39 "scripts": {
40 "typecheck": "tsc --noEmit",40 "typecheck": "tsc-rs --noEmit",
41 "test": "vp test run --config ../../vite.config.ts --dir ."41 "test": "vp test run --config ../../vite.config.ts --dir ."
42 },42 },
43 "dependencies": {43 "dependencies": {
packages/source-control-github/package.json+1-1
...@@ -73,7 +73,7 @@...@@ -73,7 +73,7 @@
73 }73 }
74 },74 },
75 "scripts": {75 "scripts": {
76 "typecheck": "tsc --noEmit",76 "typecheck": "tsc-rs --noEmit",
77 "test": "vp test run --config ../../vite.config.ts --dir ."77 "test": "vp test run --config ../../vite.config.ts --dir ."
78 },78 },
79 "dependencies": {79 "dependencies": {
packages/source-control-gitlab/package.json+1-1
...@@ -41,7 +41,7 @@...@@ -41,7 +41,7 @@
41 }41 }
42 },42 },
43 "scripts": {43 "scripts": {
44 "typecheck": "tsc --noEmit",44 "typecheck": "tsc-rs --noEmit",
45 "test": "vp test run --config ../../vite.config.ts --dir ."45 "test": "vp test run --config ../../vite.config.ts --dir ."
46 },46 },
47 "dependencies": {47 "dependencies": {
packages/source-control-testing/package.json+1-1
...@@ -9,7 +9,7 @@...@@ -9,7 +9,7 @@
9 }9 }
10 },10 },
11 "scripts": {11 "scripts": {
12 "typecheck": "tsc --noEmit"12 "typecheck": "tsc-rs --noEmit"
13 },13 },
14 "dependencies": {14 "dependencies": {
15 "@t3tools/contracts": "workspace:*",15 "@t3tools/contracts": "workspace:*",
packages/ssh/package.json+1-1
...@@ -25,7 +25,7 @@...@@ -25,7 +25,7 @@
25 }25 }
26 },26 },
27 "scripts": {27 "scripts": {
28 "typecheck": "tsc --noEmit",28 "typecheck": "tsc-rs --noEmit",
29 "test": "vp test run --config ../../vite.config.ts --dir ."29 "test": "vp test run --config ../../vite.config.ts --dir ."
30 },30 },
31 "dependencies": {31 "dependencies": {
packages/tailscale/package.json+1-1
...@@ -9,7 +9,7 @@...@@ -9,7 +9,7 @@
9 }9 }
10 },10 },
11 "scripts": {11 "scripts": {
12 "typecheck": "tsc --noEmit",12 "typecheck": "tsc-rs --noEmit",
13 "test": "vp test run --config ../../vite.config.ts --dir ."13 "test": "vp test run --config ../../vite.config.ts --dir ."
14 },14 },
15 "dependencies": {15 "dependencies": {
pnpm-lock.yaml+105-34
...@@ -13,8 +13,8 @@ catalogs:...@@ -13,8 +13,8 @@ catalogs:
13 specifier: 4.0.213 specifier: 4.0.2
14 version: 4.0.214 version: 4.0.2
15 '@effect/tsgo':15 '@effect/tsgo':
16 specifier: 0.46.116 specifier: 0.51.1
17 version: 0.46.117 version: 0.51.1
18 '@legendapp/list':18 '@legendapp/list':
19 specifier: 3.3.519 specifier: 3.3.5
20 version: 3.3.520 version: 3.3.5
...@@ -178,7 +178,7 @@ importers:...@@ -178,7 +178,7 @@ importers:
178 version: 1.1.0178 version: 1.1.0
179 '@effect/tsgo':179 '@effect/tsgo':
180 specifier: 'catalog:'180 specifier: 'catalog:'
181 version: 0.46.1181 version: 0.51.1
182 '@shadcn/lint':182 '@shadcn/lint':
183 specifier: 0.1.5183 specifier: 0.1.5
184 version: 0.1.5184 version: 0.1.5
...@@ -188,6 +188,9 @@ importers:...@@ -188,6 +188,9 @@ importers:
188 knip:188 knip:
189 specifier: 6.34.0189 specifier: 6.34.0
190 version: 6.34.0190 version: 6.34.0
191 tsc-rs:
192 specifier: 0.4.0
193 version: 0.4.0
191 typescript:194 typescript:
192 specifier: 'catalog:'195 specifier: 'catalog:'
193 version: 7.0.2196 version: 7.0.2
...@@ -3123,43 +3126,43 @@ packages:...@@ -3123,43 +3126,43 @@ packages:
3123 peerDependencies:3126 peerDependencies:
3124 effect: 4.0.23127 effect: 4.0.2
31253128
3126 '@effect/tsgo-darwin-arm64@0.46.1':3129 '@effect/tsgo-darwin-arm64@0.51.1':
3127 resolution: {integrity: sha512-ErehNqI9p8me4XKO8N4bzdDWgBbSNlJ3CIZGfXoAW6Fo4Oo7x4ZbZV7KNsMSn9aJSiUUOQUoXjGBdslU5OYMdw==}3130 resolution: {integrity: sha512-Jx+1RB3pz1B2zYs1EmxybwDOq9KRpfdu/rn1XTULNMZmqUJZuvTQU9CRqB0g/ZgIa6MeNBZEYvmAu4Dq2/QVWA==}
3128 cpu: [arm64]3131 cpu: [arm64]
3129 os: [darwin]3132 os: [darwin]
31303133
3131 '@effect/tsgo-darwin-x64@0.46.1':3134 '@effect/tsgo-darwin-x64@0.51.1':
3132 resolution: {integrity: sha512-zsQI1gjGMYF/C2FWDUwbStBAf0tJDVgXeWwTAZ+VUiNY06fR1SrZHK0L+22PE49Nim3biWK2h+XXRFVzql+ojg==}3135 resolution: {integrity: sha512-eRz7eHOOb2eJPUj66m89Zhzu924vGvNLDAXzcEAIaXVsWc4Zw29RVUsRnp/ozTmCbDVCvMqPSh8i9bkdAmt8mA==}
3133 cpu: [x64]3136 cpu: [x64]
3134 os: [darwin]3137 os: [darwin]
31353138
3136 '@effect/tsgo-linux-arm64@0.46.1':3139 '@effect/tsgo-linux-arm64@0.51.1':
3137 resolution: {integrity: sha512-e283BZEQC3mJpk1N7vdUhoF/aYHc4YwCE/fwz/80d11OSvG35U+c49grxS7V7+dAl2ld6QiT8D1rcL8PYu8DLQ==}3140 resolution: {integrity: sha512-LqZKkEEgJcq7dOho+h0esioU/idlB/+VhPuMR7l9B5Y7mk17Eivs8TiJQHtxLVfrh/nizbvZih7O5GujRNG0bw==}
3138 cpu: [arm64]3141 cpu: [arm64]
3139 os: [linux]3142 os: [linux]
31403143
3141 '@effect/tsgo-linux-arm@0.46.1':3144 '@effect/tsgo-linux-arm@0.51.1':
3142 resolution: {integrity: sha512-Y12wOcJ6HgwiCgg/oDQH4tdRQKRsWnul/KjCOwMxzVT4kO+ndczu1sKUZT+qIxV7qNk4Sq+uSWKEnFBA3ETI8w==}3145 resolution: {integrity: sha512-vub6MCJIbczHp+Im1GTEUh5YyS+6YHcvH0ZmBdSjdvqzzBKbRnl5xUbO52tRJlty74f+3ey+uSh0nIO99NnggA==}
3143 cpu: [arm]3146 cpu: [arm]
3144 os: [linux]3147 os: [linux]
31453148
3146 '@effect/tsgo-linux-x64@0.46.1':3149 '@effect/tsgo-linux-x64@0.51.1':
3147 resolution: {integrity: sha512-NYGBC3Scfo9yZJfs7cg0KMcHgtukJ4+xff18nqIrON9Zzc/qD6w1AwEwYKYCsbai5hTQBb3VLIWmHM8BJ54WJg==}3150 resolution: {integrity: sha512-zyKKcdL2Pr4C//9raggaEuxhsSUR7jT6517vHvPwykbBPjPnnmGtM1Kq7NKEIZnvXWzXcaK+4wAK/0FqSqMOmw==}
3148 cpu: [x64]3151 cpu: [x64]
3149 os: [linux]3152 os: [linux]
31503153
3151 '@effect/tsgo-win32-arm64@0.46.1':3154 '@effect/tsgo-win32-arm64@0.51.1':
3152 resolution: {integrity: sha512-MK93SN9qjowrCjch+2wGGncd6Y7KgDyJvLKVVFCJV8cPpHoL3xDCpxFCGqQWe120mVpLmnzbM2evKdh0M5l5PA==}3155 resolution: {integrity: sha512-yIF88Za3Bs793Mb8OShet8gc3kj/NNty6+ZoTdgiPXWlY6xh84bZZCOETqE7VcCmxXFT3NZSYQuDrU35/CTvRQ==}
3153 cpu: [arm64]3156 cpu: [arm64]
3154 os: [win32]3157 os: [win32]
31553158
3156 '@effect/tsgo-win32-x64@0.46.1':3159 '@effect/tsgo-win32-x64@0.51.1':
3157 resolution: {integrity: sha512-hlRbeNlp0N/dfZZFl+xVzT3XfHYqPmkXzCadR6e5yoe/vyA3O9RnO5UrOBHsXvL2RTE6hrh8bRfx2Uu6g3LL5w==}3160 resolution: {integrity: sha512-5HO1TJkWMlErIXbfKKWEMzg0Jj0MPQAzs0g1k7wA3B1ZxNDoDY9iRu5eGM+G1a4HmKl3zA7hQZd0ch2Dh4MohQ==}
3158 cpu: [x64]3161 cpu: [x64]
3159 os: [win32]3162 os: [win32]
31603163
3161 '@effect/tsgo@0.46.1':3164 '@effect/tsgo@0.51.1':
3162 resolution: {integrity: sha512-DMcBCg5nWLufejRlyqFEkXmbtaLUJ56NKny6L1LTtimvz0U3VNj9H6ZUXV4WeeWvJzVyL0y7G2wsCBAFUgy1jw==}3165 resolution: {integrity: sha512-i6mA6cNah+0mkPdu8qZILCO3Pnd9kWo03/s82Ju+1DFhdL28HFagi+1PRGxqgq1uMaHziWQ+ciKvOmIoks2RdA==}
3163 hasBin: true3166 hasBin: true
31643167
3165 '@effect/vitest@4.0.2':3168 '@effect/vitest@4.0.2':
...@@ -6180,6 +6183,42 @@ packages:...@@ -6180,6 +6183,42 @@ packages:
6180 '@tiptap/starter-kit@3.31.3':6183 '@tiptap/starter-kit@3.31.3':
6181 resolution: {integrity: sha512-WKof9RewdmGHvWJ1wn0/HVNG2mV+HOgVRyJkKekuM9fgr6BZAAH/xZsWE1eon+94JnQ+KtK2ThydXQM/qc6b2A==}6184 resolution: {integrity: sha512-WKof9RewdmGHvWJ1wn0/HVNG2mV+HOgVRyJkKekuM9fgr6BZAAH/xZsWE1eon+94JnQ+KtK2ThydXQM/qc6b2A==}
61826185
6186 '@tsc-rs/darwin-arm64@0.4.0':
6187 resolution: {integrity: sha512-g7/vyDJejH/Q3SrNSBU6RQ3/lAOkfRKJWItctE3/gHON1bE1a/ZXn6FDVl4krVdq7IL1Tv+qt8QdW/HE/3zd4w==}
6188 engines: {node: '>=16.20.0'}
6189 cpu: [arm64]
6190 os: [darwin]
6191
6192 '@tsc-rs/darwin-x64@0.4.0':
6193 resolution: {integrity: sha512-rbyoTAw/te6OPdLdy9pUdDGfdNUKYxiANfKBEah3xEFkWD/Qgo2RDMlgmtgcZZ2YAfofk//mLSgJubyxFN4UAw==}
6194 engines: {node: '>=16.20.0'}
6195 cpu: [x64]
6196 os: [darwin]
6197
6198 '@tsc-rs/linux-arm64@0.4.0':
6199 resolution: {integrity: sha512-Do+aW6j1ij5Uwq9/43dEZ1QqlJesBRkzqV5aQB+ts9CA77RVabMRU6A7lyzYUkBhN8oM1yvBm/8NhjogfOdWaw==}
6200 engines: {node: '>=16.20.0'}
6201 cpu: [arm64]
6202 os: [linux]
6203
6204 '@tsc-rs/linux-x64@0.4.0':
6205 resolution: {integrity: sha512-LPs7cRxoYv87uDqyeeAchuIEsoCOKPf70lgP1CgJD52AoEI9+kHrHC/Ync9R80+nVw2os8F4n8vFJKqpVFnpTA==}
6206 engines: {node: '>=16.20.0'}
6207 cpu: [x64]
6208 os: [linux]
6209
6210 '@tsc-rs/win32-arm64@0.4.0':
6211 resolution: {integrity: sha512-iiqdmmyH67mDpzlOph8zpUNkea+40Cbd+vcgq7sHPWUMX0j5Z21zKNfjAUNuIBdwf2RWssEalQfhlqjlljc/mg==}
6212 engines: {node: '>=16.20.0'}
6213 cpu: [arm64]
6214 os: [win32]
6215
6216 '@tsc-rs/win32-x64@0.4.0':
6217 resolution: {integrity: sha512-9HuOuax8UHxfrjFxzgsSETHOfLlshwzNKXN9ZoUf0kzzFMkBbRuw0guYNuufR3VoxAbpSG6vY0MRayiWwg88lA==}
6218 engines: {node: '>=16.20.0'}
6219 cpu: [x64]
6220 os: [win32]
6221
6183 '@tweenjs/tween.js@23.1.3':6222 '@tweenjs/tween.js@23.1.3':
6184 resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}6223 resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}
61856224
...@@ -11629,6 +11668,11 @@ packages:...@@ -11629,6 +11668,11 @@ packages:
11629 resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==}11668 resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==}
11630 engines: {node: '>=6.10'}11669 engines: {node: '>=6.10'}
1163111670
11671 tsc-rs@0.4.0:
11672 resolution: {integrity: sha512-tSy0GZ9p+kYZx4QAs6JGa8cXihp0oft7ISqJtbpJ1w2QSclmSK8ikxIxPAYzVHEbIN5Bd7SE8MH0WLmJUhSIHg==}
11673 engines: {node: '>=16.20.0'}
11674 hasBin: true
11675
11632 tslib@2.8.1:11676 tslib@2.8.1:
11633 resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}11677 resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1163411678
...@@ -13869,36 +13913,36 @@ snapshots:...@@ -13869,36 +13913,36 @@ snapshots:
13869 dependencies:13913 dependencies:
13870 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)13914 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1387113915
13872 '@effect/tsgo-darwin-arm64@0.46.1':13916 '@effect/tsgo-darwin-arm64@0.51.1':
13873 optional: true13917 optional: true
1387413918
13875 '@effect/tsgo-darwin-x64@0.46.1':13919 '@effect/tsgo-darwin-x64@0.51.1':
13876 optional: true13920 optional: true
1387713921
13878 '@effect/tsgo-linux-arm64@0.46.1':13922 '@effect/tsgo-linux-arm64@0.51.1':
13879 optional: true13923 optional: true
1388013924
13881 '@effect/tsgo-linux-arm@0.46.1':13925 '@effect/tsgo-linux-arm@0.51.1':
13882 optional: true13926 optional: true
1388313927
13884 '@effect/tsgo-linux-x64@0.46.1':13928 '@effect/tsgo-linux-x64@0.51.1':
13885 optional: true13929 optional: true
1388613930
13887 '@effect/tsgo-win32-arm64@0.46.1':13931 '@effect/tsgo-win32-arm64@0.51.1':
13888 optional: true13932 optional: true
1388913933
13890 '@effect/tsgo-win32-x64@0.46.1':13934 '@effect/tsgo-win32-x64@0.51.1':
13891 optional: true13935 optional: true
1389213936
13893 '@effect/tsgo@0.46.1':13937 '@effect/tsgo@0.51.1':
13894 optionalDependencies:13938 optionalDependencies:
13895 '@effect/tsgo-darwin-arm64': 0.46.113939 '@effect/tsgo-darwin-arm64': 0.51.1
13896 '@effect/tsgo-darwin-x64': 0.46.113940 '@effect/tsgo-darwin-x64': 0.51.1
13897 '@effect/tsgo-linux-arm': 0.46.113941 '@effect/tsgo-linux-arm': 0.51.1
13898 '@effect/tsgo-linux-arm64': 0.46.113942 '@effect/tsgo-linux-arm64': 0.51.1
13899 '@effect/tsgo-linux-x64': 0.46.113943 '@effect/tsgo-linux-x64': 0.51.1
13900 '@effect/tsgo-win32-arm64': 0.46.113944 '@effect/tsgo-win32-arm64': 0.51.1
13901 '@effect/tsgo-win32-x64': 0.46.113945 '@effect/tsgo-win32-x64': 0.51.1
1390213946
13903 '@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)':13947 '@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)':
13904 dependencies:13948 dependencies:
...@@ -16734,6 +16778,24 @@ snapshots:...@@ -16734,6 +16778,24 @@ snapshots:
16734 '@tiptap/extensions': 3.31.3(@tiptap/core@3.31.3(@tiptap/pm@3.31.3))(@tiptap/pm@3.31.3)16778 '@tiptap/extensions': 3.31.3(@tiptap/core@3.31.3(@tiptap/pm@3.31.3))(@tiptap/pm@3.31.3)
16735 '@tiptap/pm': 3.31.316779 '@tiptap/pm': 3.31.3
1673616780
16781 '@tsc-rs/darwin-arm64@0.4.0':
16782 optional: true
16783
16784 '@tsc-rs/darwin-x64@0.4.0':
16785 optional: true
16786
16787 '@tsc-rs/linux-arm64@0.4.0':
16788 optional: true
16789
16790 '@tsc-rs/linux-x64@0.4.0':
16791 optional: true
16792
16793 '@tsc-rs/win32-arm64@0.4.0':
16794 optional: true
16795
16796 '@tsc-rs/win32-x64@0.4.0':
16797 optional: true
16798
16737 '@tweenjs/tween.js@23.1.3': {}16799 '@tweenjs/tween.js@23.1.3': {}
1673816800
16739 '@tybys/wasm-util@0.10.3':16801 '@tybys/wasm-util@0.10.3':
...@@ -23040,6 +23102,15 @@ snapshots:...@@ -23040,6 +23102,15 @@ snapshots:
2304023102
23041 ts-dedent@2.3.0: {}23103 ts-dedent@2.3.0: {}
2304223104
23105 tsc-rs@0.4.0:
23106 optionalDependencies:
23107 '@tsc-rs/darwin-arm64': 0.4.0
23108 '@tsc-rs/darwin-x64': 0.4.0
23109 '@tsc-rs/linux-arm64': 0.4.0
23110 '@tsc-rs/linux-x64': 0.4.0
23111 '@tsc-rs/win32-arm64': 0.4.0
23112 '@tsc-rs/win32-x64': 0.4.0
23113
23043 tslib@2.8.1: {}23114 tslib@2.8.1: {}
2304423115
23045 type-fest@0.13.1:23116 type-fest@0.13.1:
pnpm-workspace.yaml+4-1
...@@ -23,6 +23,7 @@ allowBuilds:...@@ -23,6 +23,7 @@ allowBuilds:
23 "react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.10.tgz": true23 "react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.10.tgz": true
24 react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.9.tgz: set this to true or false24 react-native-enriched-markdown@file:apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.9.tgz: set this to true or false
25 sharp: true25 sharp: true
26 tsc-rs: true
26 utf-8-validate: false27 utf-8-validate: false
27 workerd: false28 workerd: false
2829
...@@ -40,7 +41,7 @@ catalog:...@@ -40,7 +41,7 @@ catalog:
40 "@effect/platform-node-shared": 4.0.241 "@effect/platform-node-shared": 4.0.2
41 "@effect/sql-pg": 4.0.242 "@effect/sql-pg": 4.0.2
42 "@effect/sql-sqlite-do": 4.0.243 "@effect/sql-sqlite-do": 4.0.2
43 "@effect/tsgo": 0.46.144 "@effect/tsgo": 0.51.1
44 "@effect/vitest": 4.0.245 "@effect/vitest": 4.0.2
45 "@electron-webauthn/macos": 1.3.146 "@electron-webauthn/macos": 1.3.1
46 "@legendapp/list": 3.3.547 "@legendapp/list": 3.3.5
...@@ -82,6 +83,8 @@ catalog:...@@ -82,6 +83,8 @@ catalog:
82 unified: 11.0.583 unified: 11.0.5
8384
84minimumReleaseAgeExclude:85minimumReleaseAgeExclude:
86 - tsc-rs
87 - "@tsc-rs/*"
85 - expo-glass-effect@58.0.388 - expo-glass-effect@58.0.3
86 - expo-blur@58.0.389 - expo-blur@58.0.3
87 - expo-audio@58.0.490 - expo-audio@58.0.4
scripts/package.json+1-1
...@@ -3,7 +3,7 @@...@@ -3,7 +3,7 @@
3 "private": true,3 "private": true,
4 "type": "module",4 "type": "module",
5 "scripts": {5 "scripts": {
6 "typecheck": "tsc --noEmit",6 "typecheck": "tsc-rs --noEmit",
7 "test": "vp test run --config ../vite.config.ts --dir ."7 "test": "vp test run --config ../vite.config.ts --dir ."
8 },8 },
9 "dependencies": {9 "dependencies": {
tsconfig.base.json+4
...@@ -28,6 +28,10 @@...@@ -28,6 +28,10 @@
28 "instanceOfSchema": "error",28 "instanceOfSchema": "error",
29 "deterministicKeys": "error",29 "deterministicKeys": "error",
30 "strictEffectProvide": "off",30 "strictEffectProvide": "off",
31 // We use Effect's unstable modules (http, sql) on purpose. These rules
32 // also make effect-tsgo 0.47+ report false TS2790 errors on `delete`.
33 "unstableApiUsage": "off",
34 "experimentalApiUsage": "off",
31 "missingEffectServiceDependency": "error",35 "missingEffectServiceDependency": "error",
32 "leakingRequirements": "error",36 "leakingRequirements": "error",
33 "globalErrorInEffectCatch": "error",37 "globalErrorInEffectCatch": "error",