diff --git a/Dockerfile b/Dockerfile index 68ce2f3..5003fb4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,7 +50,7 @@ RUN pnpm install prisma@6.11.1 # init prisma to download all required files RUN pnpm prisma init -COPY --from=build-system /app/package.json ./ +COPY --from=build-system /app/prisma.config.ts ./ COPY --from=build-system /app/.output ./app COPY --from=build-system /app/prisma ./prisma COPY --from=build-system /app/build ./startup diff --git a/package.json b/package.json index 54c02f0..e811eb3 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "nuxt-security": "2.2.0", "pino": "^9.7.0", "pino-pretty": "^13.0.0", - "prisma": "^6.11.1", + "prisma": "6.11.1", "sanitize-filename": "^1.6.3", "semver": "^7.7.1", "stream-mime-type": "^2.0.0", @@ -87,8 +87,5 @@ "vue3-carousel": "^0.16.0" } }, - "prisma": { - "schema": "./prisma" - }, "packageManager": "pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a085607..4bd24c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 9.5.6(@vue/compiler-dom@3.5.22)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.46.2)(vue@3.5.22(typescript@5.8.3)) '@prisma/client': specifier: ^6.11.1 - version: 6.12.0(prisma@6.12.0(typescript@5.8.3))(typescript@5.8.3) + version: 6.12.0(prisma@6.11.1(typescript@5.8.3))(typescript@5.8.3) '@tailwindcss/vite': specifier: ^4.0.6 version: 4.1.11(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)) @@ -93,8 +93,8 @@ importers: specifier: ^13.0.0 version: 13.0.0 prisma: - specifier: ^6.11.1 - version: 6.12.0(typescript@5.8.3) + specifier: 6.11.1 + version: 6.11.1(typescript@5.8.3) sanitize-filename: specifier: ^1.6.3 version: 1.6.3 @@ -1458,11 +1458,11 @@ packages: typescript: optional: true - '@prisma/config@6.12.0': - resolution: {integrity: sha512-HovZWzhWEMedHxmjefQBRZa40P81N7/+74khKFz9e1AFjakcIQdXgMWKgt20HaACzY+d1LRBC+L4tiz71t9fkg==} + '@prisma/config@6.11.1': + resolution: {integrity: sha512-z6rCTQN741wxDq82cpdzx2uVykpnQIXalLhrWQSR0jlBVOxCIkz3HZnd8ern3uYTcWKfB3IpVAF7K2FU8t/8AQ==} - '@prisma/debug@6.12.0': - resolution: {integrity: sha512-plbz6z72orcqr0eeio7zgUrZj5EudZUpAeWkFTA/DDdXEj28YHDXuiakvR6S7sD6tZi+jiwQEJAPeV6J6m/tEQ==} + '@prisma/debug@6.11.1': + resolution: {integrity: sha512-lWRb/YSWu8l4Yum1UXfGLtqFzZkVS2ygkWYpgkbgMHn9XJlMITIgeMvJyX5GepChzhmxuSuiq/MY/kGFweOpGw==} '@prisma/debug@6.13.0': resolution: {integrity: sha512-um+9pfKJW0ihmM83id9FXGi5qEbVJ0Vxi1Gm0xpYsjwUBnw6s2LdPBbrsG9QXRX46K4CLWCTNvskXBup4i9hlw==} @@ -1470,14 +1470,14 @@ packages: '@prisma/dmmf@6.13.0': resolution: {integrity: sha512-69qWP2ddIpI2L3VyQkwGjhtyj1CNXUJ0qZPLa1VmZ27h20rUXBPflLAel9EtOyct/GSTjSq8qjBbhW5ohrfbSw==} - '@prisma/engines-version@6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc': - resolution: {integrity: sha512-70vhecxBJlRr06VfahDzk9ow4k1HIaSfVUT3X0/kZoHCMl9zbabut4gEXAyzJZxaCGi5igAA7SyyfBI//mmkbQ==} + '@prisma/engines-version@6.11.1-1.f40f79ec31188888a2e33acda0ecc8fd10a853a9': + resolution: {integrity: sha512-swFJTOOg4tHyOM1zB/pHb3MeH0i6t7jFKn5l+ZsB23d9AQACuIRo9MouvuKGvnDogzkcjbWnXi/NvOZ0+n5Jfw==} - '@prisma/engines@6.12.0': - resolution: {integrity: sha512-4BRZZUaAuB4p0XhTauxelvFs7IllhPmNLvmla0bO1nkECs8n/o1pUvAVbQ/VOrZR5DnF4HED0PrGai+rIOVePA==} + '@prisma/engines@6.11.1': + resolution: {integrity: sha512-6eKEcV6V8W2eZAUwX2xTktxqPM4vnx3sxz3SDtpZwjHKpC6lhOtc4vtAtFUuf5+eEqBk+dbJ9Dcaj6uQU+FNNg==} - '@prisma/fetch-engine@6.12.0': - resolution: {integrity: sha512-EamoiwrK46rpWaEbLX9aqKDPOd8IyLnZAkiYXFNuq0YsU0Z8K09/rH8S7feOWAVJ3xzeSgcEJtBlVDrajM9Sag==} + '@prisma/fetch-engine@6.11.1': + resolution: {integrity: sha512-NBYzmkXTkj9+LxNPRSndaAeALOL1Gr3tjvgRYNqruIPlZ6/ixLeuE/5boYOewant58tnaYFZ5Ne0jFBPfGXHpQ==} '@prisma/generator-helper@6.13.0': resolution: {integrity: sha512-6v5k9sGMhRDAnWxVfIo7QlewgVyOhr2NykyNh/PaH55g0LDswiTSYDfPPKyCPLxjDG0eA7FFX+gDyf94QkLT1A==} @@ -1485,8 +1485,8 @@ packages: '@prisma/generator@6.13.0': resolution: {integrity: sha512-vlV1qiEEb1w7D1J0h5/rz3ppgM/BRcJP5xz2QqHBlbjcAWzJjHkHsxeuC/OmkO4uHZXe9T2dGtf/nTw29UsBzA==} - '@prisma/get-platform@6.12.0': - resolution: {integrity: sha512-nRerTGhTlgyvcBlyWgt8OLNIV7QgJS2XYXMJD1hysorMCuLAjuDDuoxmVt7C2nLxbuxbWPp7OuFRHC23HqD9dA==} + '@prisma/get-platform@6.11.1': + resolution: {integrity: sha512-b2Z8oV2gwvdCkFemBTFd0x4lsL4O2jLSx8lB7D+XqoFALOQZPa7eAPE1NU0Mj1V8gPHRxIsHnyUNtw2i92psUw==} '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} @@ -4732,8 +4732,8 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - prisma@6.12.0: - resolution: {integrity: sha512-pmV7NEqQej9WjizN6RSNIwf7Y+jeh9mY1JEX2WjGxJi4YZWexClhde1yz/FuvAM+cTwzchcMytu2m4I6wPkIzg==} + prisma@6.11.1: + resolution: {integrity: sha512-VzJToRlV0s9Vu2bfqHiRJw73hZNCG/AyJeX+kopbu4GATTjTUdEWUteO3p4BLYoHpMS4o8pD3v6tF44BHNZI1w==} engines: {node: '>=18.18'} hasBin: true peerDependencies: @@ -7392,35 +7392,35 @@ snapshots: '@poppinss/exception@1.2.2': {} - '@prisma/client@6.12.0(prisma@6.12.0(typescript@5.8.3))(typescript@5.8.3)': + '@prisma/client@6.12.0(prisma@6.11.1(typescript@5.8.3))(typescript@5.8.3)': optionalDependencies: - prisma: 6.12.0(typescript@5.8.3) + prisma: 6.11.1(typescript@5.8.3) typescript: 5.8.3 - '@prisma/config@6.12.0': + '@prisma/config@6.11.1': dependencies: jiti: 2.4.2 - '@prisma/debug@6.12.0': {} + '@prisma/debug@6.11.1': {} '@prisma/debug@6.13.0': {} '@prisma/dmmf@6.13.0': {} - '@prisma/engines-version@6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc': {} + '@prisma/engines-version@6.11.1-1.f40f79ec31188888a2e33acda0ecc8fd10a853a9': {} - '@prisma/engines@6.12.0': + '@prisma/engines@6.11.1': dependencies: - '@prisma/debug': 6.12.0 - '@prisma/engines-version': 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc - '@prisma/fetch-engine': 6.12.0 - '@prisma/get-platform': 6.12.0 + '@prisma/debug': 6.11.1 + '@prisma/engines-version': 6.11.1-1.f40f79ec31188888a2e33acda0ecc8fd10a853a9 + '@prisma/fetch-engine': 6.11.1 + '@prisma/get-platform': 6.11.1 - '@prisma/fetch-engine@6.12.0': + '@prisma/fetch-engine@6.11.1': dependencies: - '@prisma/debug': 6.12.0 - '@prisma/engines-version': 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc - '@prisma/get-platform': 6.12.0 + '@prisma/debug': 6.11.1 + '@prisma/engines-version': 6.11.1-1.f40f79ec31188888a2e33acda0ecc8fd10a853a9 + '@prisma/get-platform': 6.11.1 '@prisma/generator-helper@6.13.0': dependencies: @@ -7430,9 +7430,9 @@ snapshots: '@prisma/generator@6.13.0': {} - '@prisma/get-platform@6.12.0': + '@prisma/get-platform@6.11.1': dependencies: - '@prisma/debug': 6.12.0 + '@prisma/debug': 6.11.1 '@rolldown/pluginutils@1.0.0-beta.29': {} @@ -11103,10 +11103,10 @@ snapshots: pretty-bytes@6.1.1: {} - prisma@6.12.0(typescript@5.8.3): + prisma@6.11.1(typescript@5.8.3): dependencies: - '@prisma/config': 6.12.0 - '@prisma/engines': 6.12.0 + '@prisma/config': 6.11.1 + '@prisma/engines': 6.11.1 optionalDependencies: typescript: 5.8.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c98ca1f..03e0036 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,10 @@ +onlyBuiltDependencies: + - '@prisma/client' + - '@prisma/engines' + - '@tailwindcss/oxide' + - esbuild + - prisma + overrides: droplet: link:../../.local/share/pnpm/global/5/node_modules/@drop-oss/droplet diff --git a/prisma.config.ts b/prisma.config.ts new file mode 100644 index 0000000..faa4cff --- /dev/null +++ b/prisma.config.ts @@ -0,0 +1,7 @@ +import type { PrismaConfig } from "prisma"; +import path from "node:path"; + +export default { + schema: path.join("prisma"), + earlyAccess: true, +} satisfies PrismaConfig; diff --git a/server/internal/utils/files.ts b/server/internal/utils/files.ts index 5fc9681..21b3ee8 100644 --- a/server/internal/utils/files.ts +++ b/server/internal/utils/files.ts @@ -1,5 +1,5 @@ -import fs from "fs"; -import nodePath from "path"; +import fs from "node:fs"; +import nodePath from "node:path"; export function fsStats(folderPath: string) { const stats = fs.statfsSync(folderPath);