fix: align TypeScript versions to deduplicate @prisma/client in pnpm

Root cause: cf-webapp used typescript@~5.4.5 while common used
typescript@^5.9.3. Since @prisma/client has typescript as a peer
dep, pnpm created two separate instances. prisma generate wrote to
one, but Next.js resolved the other — causing "Cannot find module
'.prisma/client/default'" at build time.

Fix: upgrade cf-webapp to typescript@^5.9.3 to match common. This
deduplicates @prisma/client to a single pnpm instance.

Also fixes cf-api deploy: exclude node_modules from copyfiles glob
and use cp -rL to dereference pnpm symlinks.
This commit is contained in:
Kevin Turcios 2026-04-13 12:10:16 -05:00
parent b656bb1de8
commit c1b0076cb8
2 changed files with 32 additions and 121 deletions

View file

@ -96,7 +96,7 @@
"prettier": "^3.8.2",
"prisma": "^7.7.0",
"simple-git-hooks": "^2.9.0",
"typescript": "~5.4.5",
"typescript": "^5.9.3",
"vitest": "^4.1.4"
},
"optionalDependencies": {

View file

@ -200,7 +200,7 @@ importers:
version: 0.214.0(@opentelemetry/api@1.9.1)
'@prisma/client':
specifier: ^7.7.0
version: 7.7.0(prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.4.5))(typescript@5.4.5)
version: 7.7.0(prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3)
'@prisma/instrumentation':
specifier: ^7.6.0
version: 7.7.0(@opentelemetry/api@1.9.1)
@ -378,7 +378,7 @@ importers:
version: 9.39.4(jiti@1.21.7)
eslint-config-next:
specifier: ^16.2.3
version: 16.2.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
version: 16.2.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
eslint-config-prettier:
specifier: ^10.1.8
version: 10.1.8(eslint@9.39.4(jiti@1.21.7))
@ -396,13 +396,13 @@ importers:
version: 3.8.2
prisma:
specifier: ^7.7.0
version: 7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.4.5)
version: 7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)
simple-git-hooks:
specifier: ^2.9.0
version: 2.13.1
typescript:
specifier: ~5.4.5
version: 5.4.5
specifier: ^5.9.3
version: 5.9.3
vitest:
specifier: ^4.1.4
version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(jsdom@29.0.2(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.6.0)(jiti@1.21.7)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
@ -7328,11 +7328,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
typescript@5.4.5:
resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
engines: {node: '>=14.17'}
hasBin: true
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@ -9844,13 +9839,6 @@ snapshots:
'@prisma/client-runtime-utils@7.7.0': {}
'@prisma/client@7.7.0(prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.4.5))(typescript@5.4.5)':
dependencies:
'@prisma/client-runtime-utils': 7.7.0
optionalDependencies:
prisma: 7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.4.5)
typescript: 5.4.5
'@prisma/client@7.7.0(prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3)':
dependencies:
'@prisma/client-runtime-utils': 7.7.0
@ -9871,28 +9859,6 @@ snapshots:
'@prisma/debug@7.7.0': {}
'@prisma/dev@0.24.3(typescript@5.4.5)':
dependencies:
'@electric-sql/pglite': 0.4.1
'@electric-sql/pglite-socket': 0.1.1(@electric-sql/pglite@0.4.1)
'@electric-sql/pglite-tools': 0.3.1(@electric-sql/pglite@0.4.1)
'@hono/node-server': 1.19.14(hono@4.12.12)
'@prisma/get-platform': 7.2.0
'@prisma/query-plan-executor': 7.2.0
'@prisma/streams-local': 0.1.2
foreground-child: 3.3.1
get-port-please: 3.2.0
hono: 4.12.12
http-status-codes: 2.3.0
pathe: 2.0.3
proper-lockfile: 4.1.2
remeda: 2.33.4
std-env: 3.10.0
valibot: 1.2.0(typescript@5.4.5)
zeptomatch: 2.1.0
transitivePeerDependencies:
- typescript
'@prisma/dev@0.24.3(typescript@5.9.3)':
dependencies:
'@electric-sql/pglite': 0.4.1
@ -11054,19 +11020,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5))(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)':
'@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.58.1
'@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/type-utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.58.1
eslint: 9.39.4(jiti@1.21.7)
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.5.0(typescript@5.4.5)
typescript: 5.4.5
ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -11098,15 +11064,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)':
'@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.58.1
'@typescript-eslint/types': 8.58.1
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.4.5)
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.58.1
debug: 4.4.3
eslint: 9.39.4(jiti@1.21.7)
typescript: 5.4.5
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -11122,15 +11088,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/project-service@8.58.1(typescript@5.4.5)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.4.5)
'@typescript-eslint/types': 8.58.1
debug: 4.4.3
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
'@typescript-eslint/project-service@8.58.1(typescript@5.9.3)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3)
@ -11145,10 +11102,6 @@ snapshots:
'@typescript-eslint/types': 8.58.1
'@typescript-eslint/visitor-keys': 8.58.1
'@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.4.5)':
dependencies:
typescript: 5.4.5
'@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
@ -11165,15 +11118,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)':
'@typescript-eslint/type-utils@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.58.1
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.4.5)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
debug: 4.4.3
eslint: 9.39.4(jiti@1.21.7)
ts-api-utils: 2.5.0(typescript@5.4.5)
typescript: 5.4.5
ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -11191,21 +11144,6 @@ snapshots:
'@typescript-eslint/types@8.58.1': {}
'@typescript-eslint/typescript-estree@8.58.1(typescript@5.4.5)':
dependencies:
'@typescript-eslint/project-service': 8.58.1(typescript@5.4.5)
'@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.4.5)
'@typescript-eslint/types': 8.58.1
'@typescript-eslint/visitor-keys': 8.58.1
debug: 4.4.3
minimatch: 10.2.5
semver: 7.7.4
tinyglobby: 0.2.16
ts-api-utils: 2.5.0(typescript@5.4.5)
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.58.1(typescript@5.9.3)':
dependencies:
'@typescript-eslint/project-service': 8.58.1(typescript@5.9.3)
@ -11232,14 +11170,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)':
'@typescript-eslint/utils@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@1.21.7))
'@typescript-eslint/scope-manager': 8.58.1
'@typescript-eslint/types': 8.58.1
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.4.5)
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3)
eslint: 9.39.4(jiti@1.21.7)
typescript: 5.4.5
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -12398,7 +12336,7 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-config-next@16.2.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5):
eslint-config-next@16.2.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3):
dependencies:
'@next/eslint-plugin-next': 16.2.3
eslint: 9.39.4(jiti@1.21.7)
@ -12409,9 +12347,9 @@ snapshots:
eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@1.21.7))
eslint-plugin-react-hooks: 7.0.1(eslint@9.39.4(jiti@1.21.7))
globals: 16.4.0
typescript-eslint: 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
typescript-eslint: 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
optionalDependencies:
typescript: 5.4.5
typescript: 5.9.3
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-webpack
@ -15045,23 +14983,6 @@ snapshots:
clsx: 2.1.1
react: 19.2.5
prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.4.5):
dependencies:
'@prisma/config': 7.7.0
'@prisma/dev': 0.24.3(typescript@5.4.5)
'@prisma/engines': 7.7.0
'@prisma/studio-core': 0.27.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
mysql2: 3.15.3
postgres: 3.4.7
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
- magicast
- react
- react-dom
prisma@7.7.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3):
dependencies:
'@prisma/config': 7.7.0
@ -15993,10 +15914,6 @@ snapshots:
ts-algebra@2.0.0: {}
ts-api-utils@2.5.0(typescript@5.4.5):
dependencies:
typescript: 5.4.5
ts-api-utils@2.5.0(typescript@5.9.3):
dependencies:
typescript: 5.9.3
@ -16125,14 +16042,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
typescript-eslint@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5):
typescript-eslint@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5))(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.4.5)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.4.5)
'@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/parser': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3)
'@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)
eslint: 9.39.4(jiti@1.21.7)
typescript: 5.4.5
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -16147,8 +16064,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
typescript@5.4.5: {}
typescript@5.9.3: {}
uglify-js@3.19.3:
@ -16283,10 +16198,6 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
valibot@1.2.0(typescript@5.4.5):
optionalDependencies:
typescript: 5.4.5
valibot@1.2.0(typescript@5.9.3):
optionalDependencies:
typescript: 5.9.3