diff --git a/Dockerfile b/Dockerfile index 42284699a..810746d9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -98,6 +98,17 @@ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static # Next's standalone output must carry the externalized worker dependencies. # Prisma's pure-JS adapter stays bundled; only modules loaded through native # Node resolution belong in this runtime assertion. +# +# `pg` is a direct entry in `dependencies` for this line's sake, and it has to +# stay there. It used to sit in devDependencies and the assertion still passed, +# but only by coincidence: the version our own entry pinned happened to match +# the one @prisma/adapter-pg pulled in, so both names resolved to a single +# copy in the store and the file tracer packed it whole. Bumping the adapter to +# 7.10.0 moved its transitive pg to 8.23.0 while ours stayed at 8.22.0. The +# tracer then packed only the copy the adapter reached, the top-level link +# pointed at the other one, and this line failed with "Cannot find module +# '/app/node_modules/pg/lib/index.js'" on both architectures. Declaring the +# runtime requirement makes the two resolve to the same copy by construction. RUN node -e "require.resolve('pg-boss'); require.resolve('pg')" # @napi-rs/canvas (document PDF rasterization): Next's file tracer copies the diff --git a/package.json b/package.json index 1663dd05c..149df3902 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@napi-rs/canvas": "1.0.7", "@node-rs/argon2": "^2.1.0", "@parse/node-apn": "^8.1.0", - "@prisma/adapter-pg": "^7.9.1", + "@prisma/adapter-pg": "^7.10.0", "@prisma/client": "^7.8.0", "@simplewebauthn/browser": "^13.3.0", "@simplewebauthn/server": "^13.3.3", @@ -84,6 +84,7 @@ "nodemailer": "9.0.3", "otpauth": "^9.5.1", "p-limit": "^7.3.1", + "pg": "^8.23.0", "pg-boss": "^12.27.0", "prisma": "^7.8.0", "qrcode": "^1.5.4", @@ -127,7 +128,6 @@ "lefthook": "^2.1.10", "pdf-parse": "^2.4.5", "pdfjs-dist": "6.2.108", - "pg": "^8.22.0", "prettier": "^3.9.6", "prettier-plugin-tailwindcss": "^0.8.1", "shadcn": "^4.16.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bce8348aa..1e8326bb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,8 +53,8 @@ importers: specifier: ^8.1.0 version: 8.1.0(supports-color@7.2.0) '@prisma/adapter-pg': - specifier: ^7.9.1 - version: 7.9.1 + specifier: ^7.10.0 + version: 7.10.0 '@prisma/client': specifier: ^7.8.0 version: 7.8.0(prisma@7.8.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3))(typescript@6.0.3) @@ -118,6 +118,9 @@ importers: p-limit: specifier: ^7.3.1 version: 7.3.1 + pg: + specifier: ^8.23.0 + version: 8.23.0 pg-boss: specifier: ^12.27.0 version: 12.27.0 @@ -242,9 +245,6 @@ importers: pdfjs-dist: specifier: 6.2.108 version: 6.2.108 - pg: - specifier: ^8.22.0 - version: 8.22.0 prettier: specifier: ^3.9.6 version: 3.9.6 @@ -1918,8 +1918,8 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@prisma/adapter-pg@7.9.1': - resolution: {integrity: sha512-Ho2RK1KanQxLNSC0sR5bpiiVep10sWPLXCcxK+KXfI/Q69TMRbiafSvLPv3V9snimX72rMCqGlyJ4sBO4lKTAw==} + '@prisma/adapter-pg@7.10.0': + resolution: {integrity: sha512-N7nwSor0HO1Kz6xBv0TPAjAPysKK0fac6p4fVN3ensLOuzc/83Fgmln5k92eK/cvzqdkSR/2kkAqlbcdwVrwpw==} '@prisma/client-runtime-utils@7.8.0': resolution: {integrity: sha512-5NQZztQ0oY/ADFkmd9gPuweH5A1/CCY8YQPorLLO0Mu6a87mY5gsnDkzmFmIHs9NFaLnZojzgddFVN4RpKYrdw==} @@ -1939,20 +1939,20 @@ packages: '@prisma/config@7.8.0': resolution: {integrity: sha512-HFESzd9rx2ZQxlK+TL7tu1HPvCqrHiL6LCxYykI2c34mvaUuIVVl3lYuicJD/MNnzgPnyeBEMlK4WTomJCV5jw==} + '@prisma/debug@7.10.0': + resolution: {integrity: sha512-caygJKtltmRIgdJ3jRpkOr7yM4DW6zxo5uOmojKWFb3asnxWoRkQOwZmXBgD8FZp4htrX+nMpcWqDwzlQ1+Y4g==} + '@prisma/debug@7.2.0': resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} '@prisma/debug@7.8.0': resolution: {integrity: sha512-p+QZReysDUqXC+mk17q9a+Y/qzh4c2KYliDK30buYUyfrGeTGSyfmc0AIrJRhZJrLHhRiJa9Au/J72h3C+szvA==} - '@prisma/debug@7.9.1': - resolution: {integrity: sha512-/cpVZ4itxtcgB8GHBvZtcmuEjq+lWsLrRJxFMbwZrT1RIdtuKmUm7PPGo/wzfbYpBrk+9WmmBE8CHJw2rybKDQ==} - '@prisma/dev@0.24.3': resolution: {integrity: sha512-ffHlQuKXZiaDt9Go0OnCTdJZrHxK0k7omJKNV86/VjpsXu5EIHZLK0T7JSWgvNlJwh56kW9JFu9v0qJciFzepg==} - '@prisma/driver-adapter-utils@7.9.1': - resolution: {integrity: sha512-vmHehG7nn/heW32DXXpp13DxxAxVVe6n250oEt3dOL2E/4bt3olktKZN0mzSuxMMronyMSkbeW2uCOn3F4g8RQ==} + '@prisma/driver-adapter-utils@7.10.0': + resolution: {integrity: sha512-u8zkcRLlaryO652T4qavBg0HmzNW5tSKdsCn6hc1PhWAp/J6k0vrxLuUs+b9o+HcjsK7Dfa01o4OFSn0frauJA==} '@prisma/engines-version@7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a': resolution: {integrity: sha512-fJPQxCkLgA5EayWaW8eArgCvjJ+N+Kz3VyeNKMEeYiQC4alNkxRKFVAGxv/ZUzuJISKqdw+zGeDbS6mn6RCPOA==} @@ -5823,9 +5823,6 @@ packages: pg-protocol@1.13.0: resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} - pg-protocol@1.15.0: - resolution: {integrity: sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ==} - pg-protocol@1.16.0: resolution: {integrity: sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==} @@ -5833,15 +5830,6 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.22.0: - resolution: {integrity: sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==} - engines: {node: '>= 16.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - pg@8.23.0: resolution: {integrity: sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==} engines: {node: '>= 16.0.0'} @@ -8781,11 +8769,11 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@prisma/adapter-pg@7.9.1': + '@prisma/adapter-pg@7.10.0': dependencies: - '@prisma/driver-adapter-utils': 7.9.1 + '@prisma/driver-adapter-utils': 7.10.0 '@types/pg': 8.20.3 - pg: 8.22.0 + pg: 8.23.0 postgres-array: 3.0.4 transitivePeerDependencies: - pg-native @@ -8808,12 +8796,12 @@ snapshots: transitivePeerDependencies: - magicast + '@prisma/debug@7.10.0': {} + '@prisma/debug@7.2.0': {} '@prisma/debug@7.8.0': {} - '@prisma/debug@7.9.1': {} - '@prisma/dev@0.24.3(typescript@6.0.3)': dependencies: '@electric-sql/pglite': 0.4.1 @@ -8836,9 +8824,9 @@ snapshots: transitivePeerDependencies: - typescript - '@prisma/driver-adapter-utils@7.9.1': + '@prisma/driver-adapter-utils@7.10.0': dependencies: - '@prisma/debug': 7.9.1 + '@prisma/debug': 7.10.0 '@prisma/engines-version@7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a': {} @@ -10021,7 +10009,7 @@ snapshots: '@types/pg@8.20.3': dependencies: '@types/node': 26.1.1 - pg-protocol: 1.15.0 + pg-protocol: 1.16.0 pg-types: 2.2.0 '@types/qrcode@1.5.6': @@ -12866,18 +12854,12 @@ snapshots: pg-int8@1.0.1: {} - pg-pool@3.14.0(pg@8.22.0): - dependencies: - pg: 8.22.0 - pg-pool@3.14.0(pg@8.23.0): dependencies: pg: 8.23.0 pg-protocol@1.13.0: {} - pg-protocol@1.15.0: {} - pg-protocol@1.16.0: {} pg-types@2.2.0: @@ -12888,16 +12870,6 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.22.0: - dependencies: - pg-connection-string: 2.14.0 - pg-pool: 3.14.0(pg@8.22.0) - pg-protocol: 1.15.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.4.0 - pg@8.23.0: dependencies: pg-connection-string: 2.14.0