diff --git a/Dockerfile b/Dockerfile index 1e246d56..17a2ca90 100755 --- a/Dockerfile +++ b/Dockerfile @@ -46,6 +46,8 @@ COPY --from=builder /zipline/build ./build COPY --from=builder /zipline/mimes.json ./mimes.json COPY --from=builder /zipline/code.json ./code.json +RUN pnpm prisma generate + # clean RUN rm -rf /tmp/* /root/* diff --git a/package.json b/package.json index 92180ffe..b927183e 100755 --- a/package.json +++ b/package.json @@ -39,8 +39,11 @@ "@mantine/hooks": "^8.2.8", "@mantine/modals": "^8.2.8", "@mantine/notifications": "^8.2.8", - "@prisma/adapter-pg": "^6.15.0", - "@prisma/client": "^6.15.0", + "@prisma/adapter-pg": "6.13.0", + "@prisma/client": "6.13.0", + "@prisma/engines": "6.13.0", + "@prisma/internals": "6.13.0", + "@prisma/migrate": "6.13.0", "@smithy/node-http-handler": "^4.1.1", "@tabler/icons-react": "^3.34.1", "argon2": "^0.44.0", @@ -66,7 +69,7 @@ "ms": "^2.1.3", "multer": "2.0.2", "otplib": "^12.0.1", - "prisma": "^6.15.0", + "prisma": "6.13.0", "qrcode": "^1.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30201796..8a86776a 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,11 +63,20 @@ importers: specifier: ^8.2.8 version: 8.2.8(@mantine/core@8.2.8(@mantine/hooks@8.2.8(react@19.1.1))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mantine/hooks@8.2.8(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@prisma/adapter-pg': - specifier: ^6.15.0 - version: 6.15.0 + specifier: 6.13.0 + version: 6.13.0 '@prisma/client': - specifier: ^6.15.0 - version: 6.15.0(prisma@6.15.0(typescript@5.9.2))(typescript@5.9.2) + specifier: 6.13.0 + version: 6.13.0(prisma@6.13.0(typescript@5.9.2))(typescript@5.9.2) + '@prisma/engines': + specifier: 6.13.0 + version: 6.13.0 + '@prisma/internals': + specifier: 6.13.0 + version: 6.13.0(typescript@5.9.2) + '@prisma/migrate': + specifier: 6.13.0 + version: 6.13.0(@prisma/internals@6.13.0(typescript@5.9.2))(typescript@5.9.2) '@smithy/node-http-handler': specifier: ^4.1.1 version: 4.1.1 @@ -144,8 +153,8 @@ importers: specifier: ^12.0.1 version: 12.0.1 prisma: - specifier: ^6.15.0 - version: 6.15.0(typescript@5.9.2) + specifier: 6.13.0 + version: 6.13.0(typescript@5.9.2) qrcode: specifier: ^1.5.4 version: 1.5.4 @@ -271,6 +280,10 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/ni@0.21.12': + resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} + hasBin: true + '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -1351,11 +1364,23 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@prisma/adapter-pg@6.15.0': - resolution: {integrity: sha512-UDqysvOwrSLUDgSnLOKPmTvIrXhod5bMOBwb4GzSR/b6qqSO/SEb3Fq2ddGi1hZt6fAOSp+sXmdaQBy5Sakvkw==} + '@prisma/adapter-pg@6.13.0': + resolution: {integrity: sha512-9jAb5F5gFDlh2jSbRRcB2W8L06WZtQWXcPtRxvoUuXubaGzCrQ/HxizwxsIjcvDSDe5YprQA2oUMM61jfSaQIg==} - '@prisma/client@6.15.0': - resolution: {integrity: sha512-wR2LXUbOH4cL/WToatI/Y2c7uzni76oNFND7+23ypLllBmIS8e3ZHhO+nud9iXSXKFt1SoM3fTZvHawg63emZw==} + '@prisma/client-common@6.13.0': + resolution: {integrity: sha512-5erjeKo6jZvZr5j2G9AYrco8RoTDI/lyVqMAQKk/IH4cebop5emVrSKFBNlMbGwowC/0pak19mzVZQb8McSadQ==} + + '@prisma/client-generator-js@6.13.0': + resolution: {integrity: sha512-5OTjG8+RkVqr39wLrtZJZEcNHE+fuYU10qi4CgSOHO8GjQtPiR9dRcCTD210yvUUKzT28w/qaa7TwONLgRb6KA==} + + '@prisma/client-generator-registry@6.13.0': + resolution: {integrity: sha512-ulgJCLQfauUJGwD9UNdtay6XiEzq7Zqhi9wvjyeHS0KhR+Jib4Gfenqk7XL2bqwDW0mFqeClcIp8Ah4iaU3h5w==} + + '@prisma/client-generator-ts@6.13.0': + resolution: {integrity: sha512-U8WnsFUkOyaot2IOXQ4pqSrKrqSchIl/MDXUhvK2iOu7sTxHo0NeH3t6JQi2fzxtKRFuTDtiOlpRNlW4KfkRuA==} + + '@prisma/client@6.13.0': + resolution: {integrity: sha512-8m2+I3dQovkV8CkDMluiwEV1TxV9EXdT6xaCz39O6jYw7mkf5gwfmi+cL4LJsEPwz5tG7sreBwkRpEMJedGYUQ==} engines: {node: '>=18.18'} peerDependencies: prisma: '*' @@ -1366,26 +1391,60 @@ packages: typescript: optional: true - '@prisma/config@6.15.0': - resolution: {integrity: sha512-KMEoec9b2u6zX0EbSEx/dRpx1oNLjqJEBZYyK0S3TTIbZ7GEGoVyGyFRk4C72+A38cuPLbfQGQvgOD+gBErKlA==} + '@prisma/config@6.13.0': + resolution: {integrity: sha512-OYMM+pcrvj/NqNWCGESSxVG3O7kX6oWuGyvufTUNnDw740KIQvNyA4v0eILgkpuwsKIDU36beZCkUtIt0naTog==} - '@prisma/debug@6.15.0': - resolution: {integrity: sha512-y7cSeLuQmyt+A3hstAs6tsuAiVXSnw9T55ra77z0nbNkA8Lcq9rNcQg6PI00by/+WnE/aMRJ/W7sZWn2cgIy1g==} + '@prisma/debug@6.13.0': + resolution: {integrity: sha512-um+9pfKJW0ihmM83id9FXGi5qEbVJ0Vxi1Gm0xpYsjwUBnw6s2LdPBbrsG9QXRX46K4CLWCTNvskXBup4i9hlw==} - '@prisma/driver-adapter-utils@6.15.0': - resolution: {integrity: sha512-tzcMG1eEBM3IJ8TBHo4jGeoUaalctqGXbrvxIoZb8jSEtgR82IUhdVyHHLVTlT8MdrHovcQJJ3jfcQfJARRnaQ==} + '@prisma/dmmf@6.13.0': + resolution: {integrity: sha512-69qWP2ddIpI2L3VyQkwGjhtyj1CNXUJ0qZPLa1VmZ27h20rUXBPflLAel9EtOyct/GSTjSq8qjBbhW5ohrfbSw==} - '@prisma/engines-version@6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb': - resolution: {integrity: sha512-a/46aK5j6L3ePwilZYEgYDPrhBQ/n4gYjLxT5YncUTJJNRnTCVjPF86QdzUOLRdYjCLfhtZp9aum90W0J+trrg==} + '@prisma/driver-adapter-utils@6.13.0': + resolution: {integrity: sha512-72gQS/rz0KRV1bvi37OGu5PgMAzTQplFZuTo1kSb4hK7sm0PTvl7+V4NFHdwXEUecTq/+FnF9Ts9Ac+iKPnEow==} - '@prisma/engines@6.15.0': - resolution: {integrity: sha512-opITiR5ddFJ1N2iqa7mkRlohCZqVSsHhRcc29QXeldMljOf4FSellLT0J5goVb64EzRTKcIDeIsJBgmilNcKxA==} + '@prisma/engines-version@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': + resolution: {integrity: sha512-MpPyKSzBX7P/ZY9odp9TSegnS/yH3CSbchQE9f0yBg3l2QyN59I6vGXcoYcqKC9VTniS1s18AMmhyr1OWavjHg==} - '@prisma/fetch-engine@6.15.0': - resolution: {integrity: sha512-xcT5f6b+OWBq6vTUnRCc7qL+Im570CtwvgSj+0MTSGA1o9UDSKZ/WANvwtiRXdbYWECpyC3CukoG3A04VTAPHw==} + '@prisma/engines@6.13.0': + resolution: {integrity: sha512-D+1B79LFvtWA0KTt8ALekQ6A/glB9w10ETknH5Y9g1k2NYYQOQy93ffiuqLn3Pl6IPJG3EsK/YMROKEaq8KBrA==} - '@prisma/get-platform@6.15.0': - resolution: {integrity: sha512-Jbb+Xbxyp05NSR1x2epabetHiXvpO8tdN2YNoWoA/ZsbYyxxu/CO/ROBauIFuMXs3Ti+W7N7SJtWsHGaWte9Rg==} + '@prisma/fetch-engine@6.13.0': + resolution: {integrity: sha512-grmmq+4FeFKmaaytA8Ozc2+Tf3BC8xn/DVJos6LL022mfRlMZYjT3hZM0/xG7+5fO95zFG9CkDUs0m1S2rXs5Q==} + + '@prisma/generator-helper@6.13.0': + resolution: {integrity: sha512-6v5k9sGMhRDAnWxVfIo7QlewgVyOhr2NykyNh/PaH55g0LDswiTSYDfPPKyCPLxjDG0eA7FFX+gDyf94QkLT1A==} + + '@prisma/generator@6.13.0': + resolution: {integrity: sha512-vlV1qiEEb1w7D1J0h5/rz3ppgM/BRcJP5xz2QqHBlbjcAWzJjHkHsxeuC/OmkO4uHZXe9T2dGtf/nTw29UsBzA==} + + '@prisma/get-platform@6.13.0': + resolution: {integrity: sha512-Nii2pX50fY4QKKxQwm7/vvqT6Ku8yYJLZAFX4e2vzHwRdMqjugcOG5hOSLjxqoXb0cvOspV70TOhMzrw8kqAnw==} + + '@prisma/internals@6.13.0': + resolution: {integrity: sha512-bVvbtT3hPem+oPr0R7ssfsT+gzi+29wux90SGSS5bytNkRwz+Ndbxk/H4w1ErLwN5ekizm2Uk51J6rwlkajbkQ==} + peerDependencies: + typescript: '>=5.1.0' + peerDependenciesMeta: + typescript: + optional: true + + '@prisma/migrate@6.13.0': + resolution: {integrity: sha512-zb0SGdAgNTQSWynHzTXMQqSdM30mnalEysxaS54BTFB2Z0F2R9NKHCalL5W6lCElSskyeaujrzWISvqsKQEn1Q==} + peerDependencies: + '@prisma/internals': '*' + + '@prisma/prisma-schema-wasm@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': + resolution: {integrity: sha512-qGm3hbUD9lFWXVqY48v+82F0bWyJHSAFFTKssCzbEsIUDOofmy3d50M9U9fyyOoRrKMekj9YfNhcdThMkIaxxw==} + + '@prisma/schema-engine-wasm@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': + resolution: {integrity: sha512-GqtV354QSP6svheo1FYb87i/OXFw3QF8kX11MFRYTbsB3a4n+uyx9fo646yIASPQ9WPZJeFo02TARWUx69IV/A==} + + '@prisma/schema-files-loader@6.13.0': + resolution: {integrity: sha512-qalemg1t21AMa4JE6ZSgWn2bVJLV7SHYCJSnweur8CVwTKvZnNFlQMFJBHQsnvulvpm/Dvw3nBDebTL3Q04liw==} + + '@prisma/ts-builders@6.13.0': + resolution: {integrity: sha512-/8AiAvzzTxZI1PKM7dFb8kO6f4BB6eW5HI2e854ZzGS0hCiz8/ksQ6KhNWXv+isF0jsqqh1ChVdhsJSj1Odk1g==} '@rolldown/pluginutils@1.0.0-beta.34': resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} @@ -1911,6 +1970,9 @@ packages: '@types/node@24.3.0': resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/qrcode@1.5.5': resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} @@ -2071,6 +2133,9 @@ packages: append-field@1.0.0: resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argon2@0.44.0: resolution: {integrity: sha512-zHPGN3S55sihSQo0dBbK0A5qpi2R31z7HZDZnry3ifOyj8bZZnpZND2gpmhnRGO1V/d555RwBqIK5W4Mrmv3ig==} engines: {node: '>=16.17.0'} @@ -2267,6 +2332,10 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -2542,14 +2611,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - empathic@2.0.0: - resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} - engines: {node: '>=14'} - entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} @@ -2806,6 +2875,14 @@ packages: resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==} engines: {node: '>=20'} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2841,6 +2918,10 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2880,6 +2961,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} @@ -2920,6 +3004,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -2960,6 +3047,10 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -3005,6 +3096,14 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + index-to-position@1.1.0: + resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==} + engines: {node: '>=18'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3229,6 +3328,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -3240,6 +3342,10 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -3269,6 +3375,10 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3540,6 +3650,10 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -3606,6 +3720,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3628,9 +3746,17 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3729,10 +3855,18 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + plimit-lit@1.6.1: resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==} engines: {node: '>=12'} + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + pngjs@5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} @@ -3829,8 +3963,8 @@ packages: engines: {node: '>=14'} hasBin: true - prisma@6.15.0: - resolution: {integrity: sha512-E6RCgOt+kUVtjtZgLQDBJ6md2tDItLJNExwI0XJeBc1FKL+Vwb+ovxXxuok9r8oBgsOXBA33fGDuE/0qDdCWqQ==} + prisma@6.13.0: + resolution: {integrity: sha512-dfzORf0AbcEyyzxuv2lEwG8g+WRGF/qDQTpHf/6JoHsyF5MyzCEZwClVaEmw3WXcobgadosOboKUgQU0kFs9kw==} engines: {node: '>=18.18'} hasBin: true peerDependencies: @@ -3845,6 +3979,10 @@ packages: process-warning@5.0.0: resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -3978,6 +4116,14 @@ packages: resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -4195,6 +4341,9 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4216,6 +4365,18 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -4403,6 +4564,9 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-pattern@5.6.2: + resolution: {integrity: sha512-d4IxJUXROL5NCa3amvMg6VQW2HVtZYmUTPfvVtO7zJWGYLJ+mry9v2OmYm+z67aniQoQ8/yFNadiEwtNS9qQiw==} + tsc-alias@1.8.16: resolution: {integrity: sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g==} engines: {node: '>=16.20.2'} @@ -4491,6 +4655,10 @@ packages: undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -4509,6 +4677,10 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -4577,6 +4749,9 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -4772,6 +4947,8 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 + '@antfu/ni@0.21.12': {} + '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -6030,52 +6207,181 @@ snapshots: '@pkgr/core@0.2.9': {} - '@prisma/adapter-pg@6.15.0': + '@prisma/adapter-pg@6.13.0': dependencies: - '@prisma/driver-adapter-utils': 6.15.0 + '@prisma/driver-adapter-utils': 6.13.0 pg: 8.16.3 postgres-array: 3.0.4 transitivePeerDependencies: - pg-native - '@prisma/client@6.15.0(prisma@6.15.0(typescript@5.9.2))(typescript@5.9.2)': + '@prisma/client-common@6.13.0(typescript@5.9.2)': + dependencies: + '@prisma/dmmf': 6.13.0 + '@prisma/driver-adapter-utils': 6.13.0 + '@prisma/generator': 6.13.0 + '@prisma/internals': 6.13.0(typescript@5.9.2) + transitivePeerDependencies: + - magicast + - typescript + + '@prisma/client-generator-js@6.13.0(typescript@5.9.2)': + dependencies: + '@antfu/ni': 0.21.12 + '@prisma/client-common': 6.13.0(typescript@5.9.2) + '@prisma/debug': 6.13.0 + '@prisma/dmmf': 6.13.0 + '@prisma/engines-version': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/fetch-engine': 6.13.0 + '@prisma/generator': 6.13.0 + '@prisma/get-platform': 6.13.0 + '@prisma/internals': 6.13.0(typescript@5.9.2) + '@prisma/ts-builders': 6.13.0(typescript@5.9.2) + ci-info: 4.2.0 + env-paths: 2.2.1 + indent-string: 4.0.0 + klona: 2.0.6 + pkg-up: 3.1.0 + pluralize: 8.0.0 + ts-pattern: 5.6.2 + transitivePeerDependencies: + - magicast + - typescript + + '@prisma/client-generator-registry@6.13.0(typescript@5.9.2)': + dependencies: + '@prisma/client-generator-js': 6.13.0(typescript@5.9.2) + '@prisma/client-generator-ts': 6.13.0(typescript@5.9.2) + '@prisma/generator': 6.13.0 + '@prisma/internals': 6.13.0(typescript@5.9.2) + transitivePeerDependencies: + - magicast + - typescript + + '@prisma/client-generator-ts@6.13.0(typescript@5.9.2)': + dependencies: + '@antfu/ni': 0.21.12 + '@prisma/client-common': 6.13.0(typescript@5.9.2) + '@prisma/debug': 6.13.0 + '@prisma/dmmf': 6.13.0 + '@prisma/engines-version': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/fetch-engine': 6.13.0 + '@prisma/generator': 6.13.0 + '@prisma/get-platform': 6.13.0 + '@prisma/internals': 6.13.0(typescript@5.9.2) + '@prisma/ts-builders': 6.13.0(typescript@5.9.2) + ci-info: 4.2.0 + fast-glob: 3.3.3 + get-tsconfig: 4.10.0 + indent-string: 4.0.0 + klona: 2.0.6 + pkg-up: 3.1.0 + pluralize: 8.0.0 + ts-pattern: 5.6.2 + transitivePeerDependencies: + - magicast + - typescript + + '@prisma/client@6.13.0(prisma@6.13.0(typescript@5.9.2))(typescript@5.9.2)': optionalDependencies: - prisma: 6.15.0(typescript@5.9.2) + prisma: 6.13.0(typescript@5.9.2) typescript: 5.9.2 - '@prisma/config@6.15.0': + '@prisma/config@6.13.0': dependencies: c12: 3.1.0 deepmerge-ts: 7.1.5 effect: 3.16.12 - empathic: 2.0.0 + read-package-up: 11.0.0 transitivePeerDependencies: - magicast - '@prisma/debug@6.15.0': {} + '@prisma/debug@6.13.0': {} - '@prisma/driver-adapter-utils@6.15.0': + '@prisma/dmmf@6.13.0': {} + + '@prisma/driver-adapter-utils@6.13.0': dependencies: - '@prisma/debug': 6.15.0 + '@prisma/debug': 6.13.0 - '@prisma/engines-version@6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb': {} + '@prisma/engines-version@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': {} - '@prisma/engines@6.15.0': + '@prisma/engines@6.13.0': dependencies: - '@prisma/debug': 6.15.0 - '@prisma/engines-version': 6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb - '@prisma/fetch-engine': 6.15.0 - '@prisma/get-platform': 6.15.0 + '@prisma/debug': 6.13.0 + '@prisma/engines-version': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/fetch-engine': 6.13.0 + '@prisma/get-platform': 6.13.0 - '@prisma/fetch-engine@6.15.0': + '@prisma/fetch-engine@6.13.0': dependencies: - '@prisma/debug': 6.15.0 - '@prisma/engines-version': 6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb - '@prisma/get-platform': 6.15.0 + '@prisma/debug': 6.13.0 + '@prisma/engines-version': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/get-platform': 6.13.0 - '@prisma/get-platform@6.15.0': + '@prisma/generator-helper@6.13.0': dependencies: - '@prisma/debug': 6.15.0 + '@prisma/debug': 6.13.0 + '@prisma/dmmf': 6.13.0 + '@prisma/generator': 6.13.0 + + '@prisma/generator@6.13.0': {} + + '@prisma/get-platform@6.13.0': + dependencies: + '@prisma/debug': 6.13.0 + + '@prisma/internals@6.13.0(typescript@5.9.2)': + dependencies: + '@prisma/config': 6.13.0 + '@prisma/debug': 6.13.0 + '@prisma/dmmf': 6.13.0 + '@prisma/driver-adapter-utils': 6.13.0 + '@prisma/engines': 6.13.0 + '@prisma/fetch-engine': 6.13.0 + '@prisma/generator': 6.13.0 + '@prisma/generator-helper': 6.13.0 + '@prisma/get-platform': 6.13.0 + '@prisma/prisma-schema-wasm': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/schema-engine-wasm': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/schema-files-loader': 6.13.0 + arg: 5.0.2 + prompts: 2.4.2 + optionalDependencies: + typescript: 5.9.2 + transitivePeerDependencies: + - magicast + + '@prisma/migrate@6.13.0(@prisma/internals@6.13.0(typescript@5.9.2))(typescript@5.9.2)': + dependencies: + '@prisma/client-generator-registry': 6.13.0(typescript@5.9.2) + '@prisma/config': 6.13.0 + '@prisma/debug': 6.13.0 + '@prisma/driver-adapter-utils': 6.13.0 + '@prisma/engines-version': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + '@prisma/generator': 6.13.0 + '@prisma/get-platform': 6.13.0 + '@prisma/internals': 6.13.0(typescript@5.9.2) + prompts: 2.4.2 + transitivePeerDependencies: + - magicast + - typescript + + '@prisma/prisma-schema-wasm@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': {} + + '@prisma/schema-engine-wasm@6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd': {} + + '@prisma/schema-files-loader@6.13.0': + dependencies: + '@prisma/prisma-schema-wasm': 6.13.0-35.361e86d0ea4987e9f53a565309b3eed797a6bcbd + fs-extra: 11.3.0 + + '@prisma/ts-builders@6.13.0(typescript@5.9.2)': + dependencies: + '@prisma/internals': 6.13.0(typescript@5.9.2) + transitivePeerDependencies: + - magicast + - typescript '@rolldown/pluginutils@1.0.0-beta.34': {} @@ -6656,6 +6962,8 @@ snapshots: dependencies: undici-types: 7.10.0 + '@types/normalize-package-data@2.4.4': {} + '@types/qrcode@1.5.5': dependencies: '@types/node': 24.3.0 @@ -6846,6 +7154,8 @@ snapshots: append-field@1.0.0: {} + arg@5.0.2: {} + argon2@0.44.0: dependencies: '@phc/format': 1.0.0 @@ -7065,6 +7375,8 @@ snapshots: dependencies: readdirp: 4.1.2 + ci-info@4.2.0: {} + citty@0.1.6: dependencies: consola: 3.4.2 @@ -7306,10 +7618,10 @@ snapshots: emoji-regex@9.2.2: {} - empathic@2.0.0: {} - entities@6.0.1: {} + env-paths@2.2.1: {} + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -7720,6 +8032,12 @@ snapshots: fast-querystring: 1.1.2 safe-regex2: 5.0.0 + find-up-simple@1.0.1: {} + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -7759,6 +8077,12 @@ snapshots: forwarded@0.2.0: {} + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fsevents@2.3.3: optional: true @@ -7805,6 +8129,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -7862,6 +8190,8 @@ snapshots: gopd@1.2.0: {} + graceful-fs@4.2.11: {} + graphemer@1.4.0: {} has-bigints@1.1.0: {} @@ -7912,6 +8242,10 @@ snapshots: highlight.js@11.11.1: {} + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -7959,6 +8293,10 @@ snapshots: imurmurhash@0.1.4: {} + indent-string@4.0.0: {} + + index-to-position@1.1.0: {} + inherits@2.0.4: {} inline-style-parser@0.2.4: {} @@ -8197,6 +8535,12 @@ snapshots: json5@2.2.3: {} + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.9 @@ -8212,6 +8556,8 @@ snapshots: dependencies: json-buffer: 3.0.1 + kleur@3.0.3: {} + klona@2.0.6: {} language-subtag-registry@0.3.23: {} @@ -8237,6 +8583,11 @@ snapshots: load-tsconfig@0.2.5: {} + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -8704,6 +9055,12 @@ snapshots: node-releases@2.0.19: {} + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} nwsapi@2.2.21: {} @@ -8785,6 +9142,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -8811,10 +9172,18 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.27.1 + index-to-position: 1.1.0 + type-fest: 4.41.0 + parse5@7.3.0: dependencies: entities: 6.0.1 + path-exists@3.0.0: {} + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -8914,10 +9283,16 @@ snapshots: exsolve: 1.0.7 pathe: 2.0.3 + pkg-up@3.1.0: + dependencies: + find-up: 3.0.0 + plimit-lit@1.6.1: dependencies: queue-lit: 1.5.2 + pluralize@8.0.0: {} + pngjs@5.0.0: {} possible-typed-array-names@1.1.0: {} @@ -8989,10 +9364,10 @@ snapshots: prettier@3.6.2: {} - prisma@6.15.0(typescript@5.9.2): + prisma@6.13.0(typescript@5.9.2): dependencies: - '@prisma/config': 6.15.0 - '@prisma/engines': 6.15.0 + '@prisma/config': 6.13.0 + '@prisma/engines': 6.13.0 optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -9002,6 +9377,11 @@ snapshots: process-warning@5.0.0: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -9141,6 +9521,20 @@ snapshots: react@19.1.1: {} + read-package-up@11.0.0: + dependencies: + find-up-simple: 1.0.1 + read-pkg: 9.0.1 + type-fest: 4.41.0 + + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.41.0 + unicorn-magic: 0.1.0 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -9463,6 +9857,8 @@ snapshots: dependencies: is-arrayish: 0.3.2 + sisteransi@1.0.5: {} + slash@3.0.0: {} solid-js@1.9.9: @@ -9483,6 +9879,20 @@ snapshots: space-separated-tokens@2.0.2: {} + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.22 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + + spdx-license-ids@3.0.22: {} + split2@4.2.0: {} statuses@2.0.1: {} @@ -9687,6 +10097,8 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-pattern@5.6.2: {} + tsc-alias@1.8.16: dependencies: chokidar: 3.6.0 @@ -9806,6 +10218,8 @@ snapshots: undici-types@7.10.0: {} + unicorn-magic@0.1.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -9839,6 +10253,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universalify@2.0.1: {} + update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: browserslist: 4.25.4 @@ -9891,6 +10307,11 @@ snapshots: uuid@9.0.1: {} + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + vary@1.1.2: {} vfile-message@4.0.2: diff --git a/src/lib/db/migration/index.ts b/src/lib/db/migration/index.ts index aecc079c..1fa5ccb2 100755 --- a/src/lib/db/migration/index.ts +++ b/src/lib/db/migration/index.ts @@ -1,30 +1,57 @@ +import { Migrate } from '@prisma/migrate'; import { log } from '@/lib/logger'; -import { exec } from 'child_process'; +import { loadSchemaContext } from '@prisma/internals'; + +// @ts-ignore +import { ensureDatabaseExists } from '@prisma/migrate/dist/utils/ensureDatabaseExists'; -// TODO: don't run prisma cli export async function runMigrations() { + const schemaContext = await loadSchemaContext({ + schemaPathFromArg: './prisma/schema.prisma', + printLoadMessage: false, + }); + + const migrate = await Migrate.setup({ + schemaContext, + migrationsDirPath: './prisma/migrations', + }); + + const logger = log('migrations'); + logger.debug('running migrations...'); + try { - await new Promise((res, rej) => { - const proc = exec('pnpm prisma migrate deploy'); + logger.debug('ensuring database exists...'); - proc.stdout?.on('data', (data) => { - process.stdout.write(data); - }); - - proc.stderr?.on('data', (data) => { - process.stderr.write(data); - }); - - proc.on('close', (code) => { - if (code !== 0) { - rej(new Error('Migration process exited with code ' + code)); - } else { - res(true); - } - }); - }); + const dbCreated = await ensureDatabaseExists(schemaContext.primaryDatasource); + if (dbCreated) { + logger.info('database created'); + } } catch (e) { - log('db').error('Error running migrations: ' + e); + logger.error('failed to create database' + e); + logger.error('try creating the database manually and running the server again'); + + migrate.stop(); process.exit(1); } + + let migrationIds: string[]; + try { + logger.debug('applying migrations...'); + const { appliedMigrationNames } = await migrate.applyMigrations(); + migrationIds = appliedMigrationNames; + } catch (e) { + logger.error('failed to apply migrations' + e); + + migrate.stop(); + process.exit(1); + } finally { + migrate.stop(); + } + + if (migrationIds?.length === 0) { + logger.debug('no migrations applied'); + return; + } + + logger.info(`applied migrations: ${migrationIds.join(', ')}`); }