diff --git a/.changeset/unlucky-ghosts-do.md b/.changeset/unlucky-ghosts-do.md new file mode 100644 index 0000000000..38982f7e1e --- /dev/null +++ b/.changeset/unlucky-ghosts-do.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/build": minor +--- + +Support Prisma's official multi-file schema structure diff --git a/docs/config/extensions/prismaExtension.mdx b/docs/config/extensions/prismaExtension.mdx index 73bc94b16a..fad83a29ef 100644 --- a/docs/config/extensions/prismaExtension.mdx +++ b/docs/config/extensions/prismaExtension.mdx @@ -10,8 +10,7 @@ If you are using Prisma, you should use the prisma build extension. - Generates the Prisma client during the deploy process - Optionally will migrate the database during the deploy process - Support for TypedSQL and multiple schema files -- You can use `prismaSchemaFolder` to specify just the directory containing your schema file, instead of the full path -- You can add the extension twice if you have multiple separate schemas in the same project (example below) +- You can set the schema to be a folder to use Prisma's multi-file schema feature (example [below](#multiple-schemas)) You can use it for a simple Prisma setup like this: @@ -141,17 +140,32 @@ These environment variables are only used during the build process and are not e ### Multiple schemas -If you have multiple separate schemas in the same project you can add the extension multiple times: +Prisma supports splitting your schema into multiple files. To use this, set `schema` to be the folder that contains your root schema (e.g. `schema.prisma`). -```ts -prismaExtension({ - schema: 'prisma/schema/main.prisma', - version: '6.2.0', - migrate: false, -}), +For example, if your root schema is located at `./prisma/schema.prisma`, you would set the `schema` option to `prisma`: + + + +```ts trigger.config.ts prismaExtension({ - schema: 'prisma/schema/secondary.prisma', - version: '6.2.0', + schema: 'prisma', + version: '6.7.0', migrate: false, }), ``` + +```shell Example structure +./prisma +├── migrations +├── models +│ ├── posts.prisma +│ ├── users.prisma +│ └── ... other `.prisma` files +└── schema.prisma +``` + + + + + To use this feature you must be using `prisma@6.7.0` or higher. Their official documentation can be found [here](https://www.prisma.io/docs/orm/prisma-schema/overview/location#multi-file-prisma-schema). + diff --git a/packages/build/src/extensions/prisma.ts b/packages/build/src/extensions/prisma.ts index b67adc7efc..967d1301b2 100644 --- a/packages/build/src/extensions/prisma.ts +++ b/packages/build/src/extensions/prisma.ts @@ -1,6 +1,7 @@ import { BuildManifest, BuildTarget } from "@trigger.dev/core/v3"; import { binaryForRuntime, BuildContext, BuildExtension } from "@trigger.dev/core/v3/build"; import assert from "node:assert"; +import { glob } from 'tinyglobby'; import { existsSync } from "node:fs"; import { cp, readdir } from "node:fs/promises"; import { dirname, join, resolve } from "node:path"; @@ -112,11 +113,18 @@ export class PrismaExtension implements BuildExtension { context.logger.debug(`PrismaExtension is generating the Prisma client for version ${version}`); - const usingSchemaFolder = dirname(this._resolvedSchemaPath).endsWith("schema"); + // Multi-file schemas can be used by specifying a directory instead of a file. https://www.prisma.io/docs/orm/prisma-schema/overview/location#multi-file-prisma-schema + const usingSchemaFolder = !this._resolvedSchemaPath.endsWith(".prisma"); + + context.logger.debug(`Using schema folder: ${usingSchemaFolder}`); const commands: string[] = []; - let prismaDir: string | undefined; + const prismaSourceDir = usingSchemaFolder + ? this._resolvedSchemaPath + : dirname(this._resolvedSchemaPath); + + const prismaDestinationDir = join(manifest.outputPath, "prisma"); const generatorFlags: string[] = []; @@ -127,14 +135,10 @@ export class PrismaExtension implements BuildExtension { if (this.options.typedSql) { generatorFlags.push(`--sql`); - const prismaDir = usingSchemaFolder - ? dirname(dirname(this._resolvedSchemaPath)) - : dirname(this._resolvedSchemaPath); - context.logger.debug(`Using typedSql`); // Find all the files prisma/sql/*.sql - const sqlFiles = await readdir(join(prismaDir, "sql")).then((files) => + const sqlFiles = await readdir(join(prismaSourceDir, "sql")).then((files) => files.filter((file) => file.endsWith(".sql")) ); @@ -142,11 +146,11 @@ export class PrismaExtension implements BuildExtension { sqlFiles, }); - const sqlDestinationPath = join(manifest.outputPath, "prisma", "sql"); + const sqlDestinationPath = join(prismaDestinationDir, "sql"); for (const file of sqlFiles) { const destination = join(sqlDestinationPath, file); - const source = join(prismaDir, "sql", file); + const source = join(prismaSourceDir, "sql", file); context.logger.debug(`Copying the sql from ${source} to ${destination}`); @@ -155,28 +159,20 @@ export class PrismaExtension implements BuildExtension { } if (usingSchemaFolder) { - const schemaDir = dirname(this._resolvedSchemaPath); - - prismaDir = dirname(schemaDir); - - context.logger.debug(`Using the schema folder: ${schemaDir}`); + context.logger.debug(`Using the schema folder: ${this._resolvedSchemaPath}`); // Find all the files in schemaDir that end with .prisma (excluding the schema.prisma file) - const prismaFiles = await readdir(schemaDir).then((files) => - files.filter((file) => file.endsWith(".prisma")) - ); + const prismaFiles = await glob(["**/*.prisma"], { + cwd: this._resolvedSchemaPath + }) context.logger.debug(`Found prisma files in the schema folder`, { prismaFiles, }); - const schemaDestinationPath = join(manifest.outputPath, "prisma", "schema"); - - const allPrismaFiles = [...prismaFiles]; - - for (const file of allPrismaFiles) { - const destination = join(schemaDestinationPath, file); - const source = join(schemaDir, file); + for (const file of prismaFiles) { + const destination = join(prismaDestinationDir, file); + const source = join(this._resolvedSchemaPath, file); context.logger.debug(`Copying the prisma schema from ${source} to ${destination}`); @@ -186,15 +182,14 @@ export class PrismaExtension implements BuildExtension { commands.push( `${binaryForRuntime( manifest.runtime - )} node_modules/prisma/build/index.js generate ${generatorFlags.join(" ")}` // Don't add the --schema flag or this will fail + )} node_modules/prisma/build/index.js generate --schema ./prisma ${generatorFlags.join(" ")}` ); } else { - prismaDir = dirname(this._resolvedSchemaPath); // Now we need to add a layer that: // Copies the prisma schema to the build outputPath // Adds the `prisma` CLI dependency to the dependencies // Adds the `prisma generate` command, which generates the Prisma client - const schemaDestinationPath = join(manifest.outputPath, "prisma", "schema.prisma"); + const schemaDestinationPath = join(prismaDestinationDir, "schema.prisma"); // Copy the prisma schema to the build output path context.logger.debug( `Copying the prisma schema from ${this._resolvedSchemaPath} to ${schemaDestinationPath}` @@ -215,8 +210,8 @@ export class PrismaExtension implements BuildExtension { if (this.options.migrate) { // Copy the migrations directory to the build output path - const migrationsDir = join(prismaDir, "migrations"); - const migrationsDestinationPath = join(manifest.outputPath, "prisma", "migrations"); + const migrationsDir = join(prismaSourceDir, "migrations"); + const migrationsDestinationPath = join(prismaDestinationDir, "migrations"); context.logger.debug( `Copying the prisma migrations from ${migrationsDir} to ${migrationsDestinationPath}` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cefaca153..40ea0ec9c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,7 +55,7 @@ importers: version: 3.1.4(vitest@3.1.4) autoprefixer: specifier: ^10.4.12 - version: 10.4.13(postcss@8.5.3) + version: 10.4.13(postcss@8.5.4) eslint-plugin-turbo: specifier: ^2.0.4 version: 2.0.5(eslint@8.31.0) @@ -380,7 +380,7 @@ importers: version: 8.3.0(socket.io-adapter@2.5.4) '@splinetool/react-spline': specifier: ^2.2.6 - version: 2.2.6(@splinetool/runtime@1.9.87)(react-dom@18.2.0)(react@18.2.0) + version: 2.2.6(@splinetool/runtime@1.9.98)(react-dom@18.2.0)(react@18.2.0) '@tabler/icons-react': specifier: ^2.39.0 version: 2.47.0(react@18.2.0) @@ -419,7 +419,7 @@ importers: version: 8.6.6 '@uiw/react-codemirror': specifier: ^4.19.5 - version: 4.19.5(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.4.0)(@codemirror/language@6.3.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.7.2)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) + version: 4.19.5(@babel/runtime@7.27.4)(@codemirror/autocomplete@6.4.0)(@codemirror/language@6.3.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.7.2)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) '@unkey/cache': specifier: ^1.5.0 version: 1.5.0 @@ -786,10 +786,10 @@ importers: version: 5.59.6(eslint@8.31.0)(typescript@5.5.4) autoprefixer: specifier: ^10.4.13 - version: 10.4.13(postcss@8.5.3) + version: 10.4.13(postcss@8.5.4) css-loader: specifier: ^6.10.0 - version: 6.10.0(webpack@5.99.7) + version: 6.10.0(webpack@5.99.9) datepicker: specifier: link:@types/@react-aria/datepicker version: link:@types/@react-aria/datepicker @@ -819,10 +819,10 @@ importers: version: 4.1.5 postcss-import: specifier: ^16.0.1 - version: 16.0.1(postcss@8.5.3) + version: 16.0.1(postcss@8.5.4) postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.5.3)(typescript@5.5.4)(webpack@5.99.7) + version: 8.1.1(postcss@8.5.4)(typescript@5.5.4)(webpack@5.99.9) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -837,7 +837,7 @@ importers: version: 3.0.2 style-loader: specifier: ^3.3.4 - version: 3.3.4(webpack@5.99.7) + version: 3.3.4(webpack@5.99.9) supertest: specifier: ^7.0.0 version: 7.0.0 @@ -1510,7 +1510,7 @@ importers: version: 4.0.14 ai: specifier: ^3.4.33 - version: 3.4.33(react@18.3.1)(svelte@5.28.2)(vue@3.5.13)(zod@3.23.8) + version: 3.4.33(react@18.3.1)(svelte@5.33.12)(vue@3.5.16)(zod@3.23.8) defu: specifier: ^6.1.4 version: 6.1.4 @@ -1639,7 +1639,7 @@ importers: version: 6.0.1 tsup: specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(tsx@4.17.0)(typescript@5.5.4) + version: 8.4.0(postcss@8.5.4)(tsx@4.17.0)(typescript@5.5.4) tsx: specifier: 4.17.0 version: 4.17.0 @@ -2158,7 +2158,7 @@ importers: version: 0.3.0 '@effect/schema': specifier: ^0.75.5 - version: 0.75.5(effect@3.14.14) + version: 0.75.5(effect@3.16.3) '@infisical/sdk': specifier: ^2.3.5 version: 2.3.5 @@ -2166,14 +2166,14 @@ importers: specifier: 1.4.1 version: 1.4.1 '@prisma/client': - specifier: 5.19.0 - version: 5.19.0(prisma@5.19.0) + specifier: 6.8.2 + version: 6.8.2(prisma@6.8.2)(typescript@5.5.4) '@react-email/components': specifier: 0.0.24 - version: 0.0.24(react-dom@18.3.1)(react@19.0.0-rc.0) + version: 0.0.24(react-dom@18.2.0)(react@19.0.0-rc.0) '@react-email/render': specifier: 1.0.1 - version: 1.0.1(react-dom@18.3.1)(react@19.0.0-rc.0) + version: 1.0.1(react-dom@18.2.0)(react@19.0.0-rc.0) '@sentry/esbuild-plugin': specifier: ^2.22.2 version: 2.22.2 @@ -2200,7 +2200,7 @@ importers: version: 0.14.0(@sinclair/typebox@0.33.17) ai: specifier: ^3.3.24 - version: 3.3.24(openai@4.56.0)(react@19.0.0-rc.0)(svelte@5.28.2)(vue@3.5.13)(zod@3.23.8) + version: 3.3.24(openai@4.56.0)(react@19.0.0-rc.0)(svelte@5.33.12)(vue@3.5.16)(zod@3.23.8) arktype: specifier: 2.0.0-rc.17 version: 2.0.0-rc.17 @@ -2251,7 +2251,7 @@ importers: version: 19.0.0-rc.0 react-email: specifier: ^3.0.1 - version: 3.0.1(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.3.1)(react@19.0.0-rc.0) + version: 3.0.1(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.2.0)(react@19.0.0-rc.0) reflect-metadata: specifier: ^0.1.13 version: 0.1.14 @@ -2359,8 +2359,8 @@ importers: specifier: ^0.19.11 version: 0.19.11 prisma: - specifier: 5.19.0 - version: 5.19.0 + specifier: 6.8.2 + version: 6.8.2(typescript@5.5.4) prisma-kysely: specifier: ^1.8.0 version: 1.8.0 @@ -2646,7 +2646,7 @@ packages: - zod dev: true - /@ai-sdk/svelte@0.0.45(svelte@5.28.2)(zod@3.23.8): + /@ai-sdk/svelte@0.0.45(svelte@5.33.12)(zod@3.23.8): resolution: {integrity: sha512-w5Sdl0ArFIM3Fp8BbH4TUvlrS84WP/jN/wC1+fghMOXd7ceVO3Yhs9r71wTqndhgkLC7LAEX9Ll7ZEPfW9WBDA==} engines: {node: '>=18'} peerDependencies: @@ -2657,13 +2657,13 @@ packages: dependencies: '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) - sswr: 2.1.0(svelte@5.28.2) - svelte: 5.28.2 + sswr: 2.1.0(svelte@5.33.12) + svelte: 5.33.12 transitivePeerDependencies: - zod dev: false - /@ai-sdk/svelte@0.0.57(svelte@5.28.2)(zod@3.23.8): + /@ai-sdk/svelte@0.0.57(svelte@5.33.12)(zod@3.23.8): resolution: {integrity: sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==} engines: {node: '>=18'} peerDependencies: @@ -2674,8 +2674,8 @@ packages: dependencies: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - sswr: 2.1.0(svelte@5.28.2) - svelte: 5.28.2 + sswr: 2.1.0(svelte@5.33.12) + svelte: 5.33.12 transitivePeerDependencies: - zod dev: true @@ -2740,7 +2740,7 @@ packages: zod: 3.23.8 zod-to-json-schema: 3.24.5(zod@3.23.8) - /@ai-sdk/vue@0.0.45(vue@3.5.13)(zod@3.23.8): + /@ai-sdk/vue@0.0.45(vue@3.5.16)(zod@3.23.8): resolution: {integrity: sha512-bqeoWZqk88TQmfoPgnFUKkrvhOIcOcSH5LMPgzZ8XwDqz5tHHrMHzpPfHCj7XyYn4ROTFK/2kKdC/ta6Ko0fMw==} engines: {node: '>=18'} peerDependencies: @@ -2751,13 +2751,13 @@ packages: dependencies: '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) - swrv: 1.0.4(vue@3.5.13) - vue: 3.5.13(typescript@5.5.4) + swrv: 1.0.4(vue@3.5.16) + vue: 3.5.16(typescript@5.5.4) transitivePeerDependencies: - zod dev: false - /@ai-sdk/vue@0.0.59(vue@3.5.13)(zod@3.23.8): + /@ai-sdk/vue@0.0.59(vue@3.5.16)(zod@3.23.8): resolution: {integrity: sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==} engines: {node: '>=18'} peerDependencies: @@ -2768,8 +2768,8 @@ packages: dependencies: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - swrv: 1.0.4(vue@3.5.13) - vue: 3.5.13(typescript@5.5.4) + swrv: 1.0.4(vue@3.5.16) + vue: 3.5.16(typescript@5.5.4) transitivePeerDependencies: - zod dev: true @@ -4131,6 +4131,10 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.27.1: + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} @@ -4139,6 +4143,10 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.27.1: + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -4221,6 +4229,13 @@ packages: dependencies: '@babel/types': 7.27.0 + /@babel/parser@7.27.4: + resolution: {integrity: sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.27.3 + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.22.17): resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} engines: {node: '>=6.9.0'} @@ -4382,6 +4397,11 @@ packages: dependencies: regenerator-runtime: 0.14.1 + /@babel/runtime@7.27.4: + resolution: {integrity: sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -4480,6 +4500,13 @@ packages: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + /@babel/types@7.27.3: + resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + /@balena/dockerignore@1.0.2: resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} @@ -4822,7 +4849,7 @@ packages: dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 '@lezer/common': 1.2.3 dev: false @@ -4868,7 +4895,7 @@ packages: dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 '@lezer/common': 1.2.3 dev: false @@ -4895,7 +4922,7 @@ packages: resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==} dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -4925,7 +4952,7 @@ packages: resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 crelt: 1.0.6 dev: false @@ -4937,11 +4964,11 @@ packages: crelt: 1.0.5 dev: false - /@codemirror/search@6.5.10: - resolution: {integrity: sha512-RMdPdmsrUf53pb2VwflKGHEe1XVM07hI7vV2ntgw1dmqhimpatSJKva4VA9h4TLUDOD4EIF02201oZurpnEFsg==} + /@codemirror/search@6.5.11: + resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 crelt: 1.0.6 dev: false @@ -4960,14 +4987,15 @@ packages: dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 '@lezer/highlight': 1.2.1 dev: false - /@codemirror/view@6.36.6: - resolution: {integrity: sha512-uxugGLet+Nzp0Jcit8Hn3LypM8ioMLKTsdf8FRoT3HWvZtb9GhaWMe0Cc15rz90Ljab4YFJiAulmIVB74OY0IQ==} + /@codemirror/view@6.37.1: + resolution: {integrity: sha512-Qy4CAUwngy/VQkEz0XzMKVRcckQuqLYWKqVpDDDghBe5FSXSqfVrJn49nw3ePZHxRUz4nRmb05Lgi+9csWo4eg==} dependencies: '@codemirror/state': 6.5.2 + crelt: 1.0.6 style-mod: 4.1.2 w3c-keyname: 2.2.8 dev: false @@ -5192,25 +5220,25 @@ packages: fast-check: 3.22.0 dev: false - /@effect/schema@0.75.5(effect@3.14.14): + /@effect/schema@0.75.5(effect@3.16.3): resolution: {integrity: sha512-TQInulTVCuF+9EIbJpyLP6dvxbQJMphrnRqgexm/Ze39rSjfhJuufF7XvU3SxTgg3HnL7B/kpORTJbHhlE6thw==} peerDependencies: effect: ^3.9.2 dependencies: - effect: 3.14.14 + effect: 3.16.3 fast-check: 3.22.0 dev: false /@electric-sql/client@0.4.0: resolution: {integrity: sha512-YVYSqHitqVIDC1RBTfmHMfAfqDNAKMK9/AFVTDFQQxN3Q85dIQS49zThAuJVecYiuYRJvTiqf40c4n39jZSNrQ==} optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.40.1 + '@rollup/rollup-darwin-arm64': 4.41.1 dev: false /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: - '@rollup/rollup-darwin-arm64': 4.40.1 + '@rollup/rollup-darwin-arm64': 4.41.1 dev: false /@electric-sql/react@0.3.5(react@18.2.0): @@ -9639,8 +9667,8 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@prisma/client@5.19.0(prisma@5.19.0): - resolution: {integrity: sha512-CzOpau+q1kEWQyoQMvlnXIHqPvwmWbh48xZ4n8KWbAql0p8PC0BIgSTYW5ncxXa4JSEff0tcoxSZB874wDstdg==} + /@prisma/client@5.4.1(prisma@5.4.1): + resolution: {integrity: sha512-xyD0DJ3gRNfLbPsC+YfMBBuLJtZKQfy1OD2qU/PZg+HKrr7SO+09174LMeTlWP0YF2wca9LxtVd4HnAiB5ketQ==} engines: {node: '>=16.13'} requiresBuild: true peerDependencies: @@ -9649,25 +9677,31 @@ packages: prisma: optional: true dependencies: - prisma: 5.19.0 + '@prisma/engines-version': 5.4.1-1.2f302df92bd8945e20ad4595a73def5b96afa54f + prisma: 5.4.1 dev: false - /@prisma/client@5.4.1(prisma@5.4.1): - resolution: {integrity: sha512-xyD0DJ3gRNfLbPsC+YfMBBuLJtZKQfy1OD2qU/PZg+HKrr7SO+09174LMeTlWP0YF2wca9LxtVd4HnAiB5ketQ==} - engines: {node: '>=16.13'} + /@prisma/client@6.8.2(prisma@6.8.2)(typescript@5.5.4): + resolution: {integrity: sha512-5II+vbyzv4si6Yunwgkj0qT/iY0zyspttoDrL3R4BYgLdp42/d2C8xdi9vqkrYtKt9H32oFIukvyw3Koz5JoDg==} + engines: {node: '>=18.18'} requiresBuild: true peerDependencies: prisma: '*' + typescript: '>=5.1.0' peerDependenciesMeta: prisma: optional: true + typescript: + optional: true dependencies: - '@prisma/engines-version': 5.4.1-1.2f302df92bd8945e20ad4595a73def5b96afa54f - prisma: 5.4.1 + prisma: 6.8.2(typescript@5.5.4) + typescript: 5.5.4 dev: false - /@prisma/debug@5.19.0: - resolution: {integrity: sha512-+b/G0ubAZlrS+JSiDhXnYV5DF/aTJ3pinktkiV/L4TtLRLZO6SVGyFELgxBsicCTWJ2ZMu5vEV/jTtYCdjFTRA==} + /@prisma/config@6.8.2: + resolution: {integrity: sha512-ZJY1fF4qRBPdLQ/60wxNtX+eu89c3AkYEcP7L3jkp0IPXCNphCYxikTg55kPJLDOG6P0X+QG5tCv6CmsBRZWFQ==} + dependencies: + jiti: 2.4.2 /@prisma/debug@5.3.1: resolution: {integrity: sha512-eYrxqslEKf+wpMFIIHgbcNYuZBXUdiJLA85Or3TwOhgPIN1ZoXT9CwJph3ynW8H1Xg0LkdYLwVmuULCwiMoU5A==} @@ -9679,21 +9713,15 @@ packages: - supports-color dev: true - /@prisma/engines-version@5.19.0-31.5fe21811a6ba0b952a3bc71400666511fe3b902f: - resolution: {integrity: sha512-GimI9aZIFy/yvvR11KfXRn3pliFn1QAkdebVlsXlnoh5uk0YhLblVmeYiHfsu+wDA7BeKqYT4sFfzg8mutzuWw==} + /@prisma/debug@6.8.2: + resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==} /@prisma/engines-version@5.4.1-1.2f302df92bd8945e20ad4595a73def5b96afa54f: resolution: {integrity: sha512-+nUQM/y8C+1GG5Ioeqcu6itFslCfxvQSAUVSMC9XM2G2Fcq0F4Afnp6m0pXF6X6iUBWen7jZBPmM9Qlq4Nr3/A==} dev: false - /@prisma/engines@5.19.0: - resolution: {integrity: sha512-UtW+0m4HYoRSSR3LoDGKF3Ud4BSMWYlLEt4slTnuP1mI+vrV3zaDoiAPmejdAT76vCN5UqnWURbkXxf66nSylQ==} - requiresBuild: true - dependencies: - '@prisma/debug': 5.19.0 - '@prisma/engines-version': 5.19.0-31.5fe21811a6ba0b952a3bc71400666511fe3b902f - '@prisma/fetch-engine': 5.19.0 - '@prisma/get-platform': 5.19.0 + /@prisma/engines-version@6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e: + resolution: {integrity: sha512-Rkik9lMyHpFNGaLpPF3H5q5TQTkm/aE7DsGM5m92FZTvWQsvmi6Va8On3pWvqLHOt5aPUvFb/FeZTmphI4CPiQ==} /@prisma/engines@5.3.1: resolution: {integrity: sha512-6QkILNyfeeN67BNEPEtkgh3Xo2tm6D7V+UhrkBbRHqKw9CTaz/vvTP/ROwYSP/3JT2MtIutZm/EnhxUiuOPVDA==} @@ -9704,12 +9732,14 @@ packages: resolution: {integrity: sha512-vJTdY4la/5V3N7SFvWRmSMUh4mIQnyb/MNoDjzVbh9iLmEC+uEykj/1GPviVsorvfz7DbYSQC4RiwmlEpTEvGA==} requiresBuild: true - /@prisma/fetch-engine@5.19.0: - resolution: {integrity: sha512-oOiPNtmJX0cP/ebu7BBEouJvCw8T84/MFD/Hf2zlqjxkK4ojl38bB9i9J5LAxotL6WlYVThKdxc7HqoWnPOhqQ==} + /@prisma/engines@6.8.2: + resolution: {integrity: sha512-XqAJ//LXjqYRQ1RRabs79KOY4+v6gZOGzbcwDQl0D6n9WBKjV7qdrbd042CwSK0v0lM9MSHsbcFnU2Yn7z8Zlw==} + requiresBuild: true dependencies: - '@prisma/debug': 5.19.0 - '@prisma/engines-version': 5.19.0-31.5fe21811a6ba0b952a3bc71400666511fe3b902f - '@prisma/get-platform': 5.19.0 + '@prisma/debug': 6.8.2 + '@prisma/engines-version': 6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e + '@prisma/fetch-engine': 6.8.2 + '@prisma/get-platform': 6.8.2 /@prisma/fetch-engine@5.3.1: resolution: {integrity: sha512-w1yk1YiK8N82Pobdq58b85l6e8akyrkxuzwV9DoiUTRf3gpsuhJJesHc4Yi0WzUC9/3znizl1UfCsI6dhkj3Vw==} @@ -9736,6 +9766,13 @@ packages: - supports-color dev: true + /@prisma/fetch-engine@6.8.2: + resolution: {integrity: sha512-lCvikWOgaLOfqXGacEKSNeenvj0n3qR5QvZUOmPE2e1Eh8cMYSobxonCg9rqM6FSdTfbpqp9xwhSAOYfNqSW0g==} + dependencies: + '@prisma/debug': 6.8.2 + '@prisma/engines-version': 6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e + '@prisma/get-platform': 6.8.2 + /@prisma/generator-helper@5.3.1: resolution: {integrity: sha512-zrYS0iHLgPlOJjYnd5KvVMMvSS+ktOL39EwooS5EnyvfzwfzxlKCeOUgxTfiKYs0WUWqzEvyNAYtramYgSknsQ==} dependencies: @@ -9747,11 +9784,6 @@ packages: - supports-color dev: true - /@prisma/get-platform@5.19.0: - resolution: {integrity: sha512-s9DWkZKnuP4Y8uy6yZfvqQ/9X3/+2KYf3IZUVZz5OstJdGBJrBlbmIuMl81917wp5TuK/1k2TpHNCEdpYLPKmg==} - dependencies: - '@prisma/debug': 5.19.0 - /@prisma/get-platform@5.3.1: resolution: {integrity: sha512-3IiZY2BUjKnAuZ0569zppZE6/rZbVAM09//c2nvPbbkGG9MqrirA8fbhhF7tfVmhyVfdmVCHnf/ujWPHJ8B46Q==} dependencies: @@ -9769,6 +9801,11 @@ packages: - supports-color dev: true + /@prisma/get-platform@6.8.2: + resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==} + dependencies: + '@prisma/debug': 6.8.2 + /@prisma/instrumentation@5.11.0: resolution: {integrity: sha512-ou4nvDpNEY6+t3Dn9juOTz6tK33D0Y4XXkEZ2uPd8KH6Mqmc+4LYOOm470DP7noj7dyJjuGiM+wpPk//HKrcDg==} dependencies: @@ -13824,7 +13861,7 @@ packages: - '@types/react' dev: false - /@react-email/components@0.0.24(react-dom@18.3.1)(react@19.0.0-rc.0): + /@react-email/components@0.0.24(react-dom@18.2.0)(react@19.0.0-rc.0): resolution: {integrity: sha512-/DNmfTREaT59UFdkHoIK3BewJ214LfRxmduiil3m7POj+gougkItANu1+BMmgbUATxjf7jH1WoBxo9x/rhFEFw==} engines: {node: '>=18.0.0'} peerDependencies: @@ -13845,7 +13882,7 @@ packages: '@react-email/link': 0.0.10(react@19.0.0-rc.0) '@react-email/markdown': 0.0.12(react@19.0.0-rc.0) '@react-email/preview': 0.0.11(react@19.0.0-rc.0) - '@react-email/render': 1.0.1(react-dom@18.3.1)(react@19.0.0-rc.0) + '@react-email/render': 1.0.1(react-dom@18.2.0)(react@19.0.0-rc.0) '@react-email/row': 0.0.10(react@19.0.0-rc.0) '@react-email/section': 0.0.14(react@19.0.0-rc.0) '@react-email/tailwind': 0.1.0(react@19.0.0-rc.0) @@ -14151,7 +14188,7 @@ packages: react-dom: 18.2.0(react@18.3.1) dev: false - /@react-email/render@1.0.1(react-dom@18.3.1)(react@19.0.0-rc.0): + /@react-email/render@1.0.1(react-dom@18.2.0)(react@19.0.0-rc.0): resolution: {integrity: sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA==} engines: {node: '>=18.0.0'} peerDependencies: @@ -14161,7 +14198,7 @@ packages: html-to-text: 9.0.5 js-beautify: 1.15.1 react: 19.0.0-rc.0 - react-dom: 18.3.1(react@19.0.0-rc.0) + react-dom: 18.2.0(react@19.0.0-rc.0) react-promise-suspense: 0.3.4 dev: false @@ -15660,8 +15697,8 @@ packages: dev: true optional: true - /@rollup/rollup-darwin-arm64@4.40.1: - resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==} + /@rollup/rollup-darwin-arm64@4.41.1: + resolution: {integrity: sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -16757,22 +16794,22 @@ packages: - supports-color dev: false - /@splinetool/react-spline@2.2.6(@splinetool/runtime@1.9.87)(react-dom@18.2.0)(react@18.2.0): + /@splinetool/react-spline@2.2.6(@splinetool/runtime@1.9.98)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-y9L2VEbnC6FNZZu8XMmWM9YTTTWal6kJVfP05Amf0QqDNzCSumKsJxZyGUODvuCmiAvy0PfIfEsiVKnSxvhsDw==} peerDependencies: '@splinetool/runtime': '*' react: '>=17.0.0' react-dom: '>=17.0.0' dependencies: - '@splinetool/runtime': 1.9.87 + '@splinetool/runtime': 1.9.98 lodash.debounce: 4.0.8 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-merge-refs: 2.1.1 dev: false - /@splinetool/runtime@1.9.87: - resolution: {integrity: sha512-qEwhQSuN/J3Hw+c5vbprj/SzbMOHNxfjMX+L/dLLLVsjxnnofOfIwT89dMoLu9PCMeGxrc2yqbZ/pw/L3wYoGw==} + /@splinetool/runtime@1.9.98: + resolution: {integrity: sha512-mfueR1yWJokZUUJzvXv5Qf/FVYHkRQb3yW4/fspIC/zkLlDKpVDLArm3/D/4dK0SG0vgEsFhlOZG55ZtnBB86g==} dependencies: on-change: 4.0.2 semver-compare: 1.0.0 @@ -18294,7 +18331,7 @@ packages: '@codemirror/view': 6.7.2 dev: false - /@uiw/react-codemirror@4.19.5(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.4.0)(@codemirror/language@6.3.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.7.2)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): + /@uiw/react-codemirror@4.19.5(@babel/runtime@7.27.4)(@codemirror/autocomplete@6.4.0)(@codemirror/language@6.3.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.7.2)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ZCHh8d7beXbF8/t7F1+yHht6A9Y6CdKeOkZq4A09lxJEnyTQrj1FMf2zvfaqc7K23KNjkTCtSlbqKKbVDgrWaw==} peerDependencies: '@babel/runtime': '>=7.11.0' @@ -18305,7 +18342,7 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.4 '@codemirror/commands': 6.1.3 '@codemirror/state': 6.2.0 '@codemirror/theme-one-dark': 6.1.2 @@ -18540,70 +18577,70 @@ packages: tinyrainbow: 2.0.0 dev: true - /@vue/compiler-core@3.5.13: - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + /@vue/compiler-core@3.5.16: + resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} dependencies: - '@babel/parser': 7.27.0 - '@vue/shared': 3.5.13 + '@babel/parser': 7.27.4 + '@vue/shared': 3.5.16 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - /@vue/compiler-dom@3.5.13: - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + /@vue/compiler-dom@3.5.16: + resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-core': 3.5.16 + '@vue/shared': 3.5.16 - /@vue/compiler-sfc@3.5.13: - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + /@vue/compiler-sfc@3.5.16: + resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} dependencies: - '@babel/parser': 7.27.0 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 + '@babel/parser': 7.27.4 + '@vue/compiler-core': 3.5.16 + '@vue/compiler-dom': 3.5.16 + '@vue/compiler-ssr': 3.5.16 + '@vue/shared': 3.5.16 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.3 + postcss: 8.5.4 source-map-js: 1.2.1 - /@vue/compiler-ssr@3.5.13: - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + /@vue/compiler-ssr@3.5.16: + resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.16 + '@vue/shared': 3.5.16 - /@vue/reactivity@3.5.13: - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + /@vue/reactivity@3.5.16: + resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==} dependencies: - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.16 - /@vue/runtime-core@3.5.13: - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + /@vue/runtime-core@3.5.16: + resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==} dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.16 + '@vue/shared': 3.5.16 - /@vue/runtime-dom@3.5.13: - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + /@vue/runtime-dom@3.5.16: + resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==} dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.16 + '@vue/runtime-core': 3.5.16 + '@vue/shared': 3.5.16 csstype: 3.1.3 - /@vue/server-renderer@3.5.13(vue@3.5.13): - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + /@vue/server-renderer@3.5.16(vue@3.5.16): + resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==} peerDependencies: - vue: 3.5.13 + vue: 3.5.16 dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.16 + '@vue/shared': 3.5.16 + vue: 3.5.16(typescript@5.5.4) - /@vue/shared@3.5.13: - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + /@vue/shared@3.5.16: + resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} /@web3-storage/multipart-parser@1.0.0: resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} @@ -19040,7 +19077,7 @@ packages: resolution: {integrity: sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==} dev: true - /ai@3.3.24(openai@4.56.0)(react@19.0.0-rc.0)(svelte@5.28.2)(vue@3.5.13)(zod@3.23.8): + /ai@3.3.24(openai@4.56.0)(react@19.0.0-rc.0)(svelte@5.33.12)(vue@3.5.16)(zod@3.23.8): resolution: {integrity: sha512-hhyczvEdCQeeEMWBWP4Af8k1YIzsheC+dHv6lAsti8NBiOnySFhnjS1sTiIrLyuCgciHXoFYLhlA2+/3AtBLAQ==} engines: {node: '>=18'} peerDependencies: @@ -19065,9 +19102,9 @@ packages: '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) '@ai-sdk/react': 0.0.53(react@19.0.0-rc.0)(zod@3.23.8) '@ai-sdk/solid': 0.0.43(zod@3.23.8) - '@ai-sdk/svelte': 0.0.45(svelte@5.28.2)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.45(svelte@5.33.12)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) - '@ai-sdk/vue': 0.0.45(vue@3.5.13)(zod@3.23.8) + '@ai-sdk/vue': 0.0.45(vue@3.5.16)(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -19076,7 +19113,7 @@ packages: openai: 4.56.0(zod@3.23.8) react: 19.0.0-rc.0 secure-json-parse: 2.7.0 - svelte: 5.28.2 + svelte: 5.33.12 zod: 3.23.8 zod-to-json-schema: 3.23.2(zod@3.23.8) transitivePeerDependencies: @@ -19084,7 +19121,7 @@ packages: - vue dev: false - /ai@3.4.33(react@18.3.1)(svelte@5.28.2)(vue@3.5.13)(zod@3.23.8): + /ai@3.4.33(react@18.3.1)(svelte@5.33.12)(vue@3.5.16)(zod@3.23.8): resolution: {integrity: sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==} engines: {node: '>=18'} peerDependencies: @@ -19109,16 +19146,16 @@ packages: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8) '@ai-sdk/solid': 0.0.54(zod@3.23.8) - '@ai-sdk/svelte': 0.0.57(svelte@5.28.2)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.57(svelte@5.33.12)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - '@ai-sdk/vue': 0.0.59(vue@3.5.13)(zod@3.23.8) + '@ai-sdk/vue': 0.0.59(vue@3.5.16)(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 jsondiffpatch: 0.6.0 react: 18.3.1 secure-json-parse: 2.7.0 - svelte: 5.28.2 + svelte: 5.33.12 zod: 3.23.8 zod-to-json-schema: 3.24.3(zod@3.23.8) transitivePeerDependencies: @@ -19314,7 +19351,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.union: 4.6.0 normalize-path: 3.0.0 - readable-stream: 2.3.7 + readable-stream: 2.3.8 dev: true /archiver-utils@3.0.4: @@ -19330,7 +19367,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.union: 4.6.0 normalize-path: 3.0.0 - readable-stream: 3.6.0 + readable-stream: 3.6.2 dev: true /archiver-utils@5.0.2: @@ -19343,7 +19380,7 @@ packages: lazystream: 1.0.1 lodash: 4.17.21 normalize-path: 3.0.0 - readable-stream: 4.5.2 + readable-stream: 4.7.0 dev: true /archiver@5.3.2: @@ -19353,7 +19390,7 @@ packages: archiver-utils: 2.1.0 async: 3.2.6 buffer-crc32: 0.2.13 - readable-stream: 3.6.0 + readable-stream: 3.6.2 readdir-glob: 1.1.3 tar-stream: 2.2.0 zip-stream: 4.1.1 @@ -19366,7 +19403,7 @@ packages: archiver-utils: 5.0.2 async: 3.2.6 buffer-crc32: 1.0.0 - readable-stream: 4.5.2 + readable-stream: 4.7.0 readdir-glob: 1.1.3 tar-stream: 3.1.7 zip-stream: 6.0.1 @@ -19379,7 +19416,7 @@ packages: requiresBuild: true dependencies: delegates: 1.0.0 - readable-stream: 3.6.0 + readable-stream: 3.6.2 dev: false optional: true @@ -19616,7 +19653,7 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /autoprefixer@10.4.13(postcss@8.5.3): + /autoprefixer@10.4.13(postcss@8.5.4): resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -19628,7 +19665,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 dev: true @@ -19746,8 +19783,8 @@ packages: dev: false optional: true - /bare-fs@4.1.4: - resolution: {integrity: sha512-r8+26Voz8dGX3AYpJdFb1ZPaUSM8XOLCZvy+YGpRTmwPHIxA7Z3Jov/oMPtV7hfRQbOnH8qGlLTzQAbgtdNN0Q==} + /bare-fs@4.1.5: + resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} engines: {bare: '>=1.16.0'} requiresBuild: true peerDependencies: @@ -19879,7 +19916,7 @@ packages: dependencies: buffer: 5.7.1 inherits: 2.0.4 - readable-stream: 3.6.0 + readable-stream: 3.6.2 /blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} @@ -19986,6 +20023,17 @@ packages: node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) + /browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001720 + electron-to-chromium: 1.5.161 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.0) + dev: true + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -20244,6 +20292,10 @@ packages: /caniuse-lite@1.0.30001707: resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} + /caniuse-lite@1.0.30001720: + resolution: {integrity: sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==} + dev: true + /canvas@3.1.0: resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==} engines: {node: ^18.12.0 || >= 20.9.0} @@ -20603,9 +20655,9 @@ packages: '@codemirror/commands': 6.8.1 '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 - '@codemirror/search': 6.5.10 + '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 + '@codemirror/view': 6.37.1 dev: false /color-convert@1.9.3: @@ -20715,7 +20767,7 @@ packages: buffer-crc32: 0.2.13 crc32-stream: 4.0.3 normalize-path: 3.0.0 - readable-stream: 3.6.0 + readable-stream: 3.6.2 dev: true /compress-commons@6.0.2: @@ -20726,7 +20778,7 @@ packages: crc32-stream: 6.0.0 is-stream: 2.0.1 normalize-path: 3.0.0 - readable-stream: 4.5.2 + readable-stream: 4.7.0 dev: true /compressible@2.0.18: @@ -20950,7 +21002,7 @@ packages: engines: {node: '>= 10'} dependencies: crc-32: 1.2.2 - readable-stream: 3.6.0 + readable-stream: 3.6.2 dev: true /crc32-stream@6.0.0: @@ -20958,7 +21010,7 @@ packages: engines: {node: '>= 14'} dependencies: crc-32: 1.2.2 - readable-stream: 4.5.2 + readable-stream: 4.7.0 dev: true /create-require@1.1.1: @@ -21037,7 +21089,7 @@ packages: hyphenate-style-name: 1.0.4 dev: false - /css-loader@6.10.0(webpack@5.99.7): + /css-loader@6.10.0(webpack@5.99.9): resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -21057,7 +21109,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.35) postcss-value-parser: 4.2.0 semver: 7.6.3 - webpack: 5.99.7(@swc/core@1.3.26)(esbuild@0.15.18) + webpack: 5.99.9(@swc/core@1.3.26)(esbuild@0.15.18) dev: true /css-tree@1.1.3: @@ -21742,7 +21794,7 @@ packages: dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 - readable-stream: 2.3.7 + readable-stream: 2.3.8 stream-shift: 1.0.1 dev: true @@ -21788,8 +21840,8 @@ packages: fast-check: 3.22.0 dev: false - /effect@3.14.14: - resolution: {integrity: sha512-Dbt9MAZHqM1UAip41RrZnypzLa/hJJGHXIVS9MbgU0L+UoJTFXToWIwWmHY/OcaQVNlf/1YxpMrD3xtxoDP/qw==} + /effect@3.16.3: + resolution: {integrity: sha512-SWndb1UavNWvet1+hnkU4qp3EHtnmDKhUeP14eB+7vf/2nCFlM77/oIjdDeZctveibNjE65P9H/sBBmF0NTy/w==} dependencies: '@standard-schema/spec': 1.0.0 fast-check: 3.23.2 @@ -21807,6 +21859,10 @@ packages: resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} dev: false + /electron-to-chromium@1.5.161: + resolution: {integrity: sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==} + dev: true + /electron-to-chromium@1.5.98: resolution: {integrity: sha512-bI/LbtRBxU2GzK7KK5xxFd2y9Lf9XguHooPYbcXWy6wUoT8NMnffsvRhPmSeUHLSDKAEtKuTaEtK4Ms15zkIEA==} @@ -24822,6 +24878,7 @@ packages: /ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + requiresBuild: true dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 @@ -25290,10 +25347,14 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + /jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + dev: false + /jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true - dev: true /joi@17.7.0: resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==} @@ -25376,6 +25437,7 @@ packages: /jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + requiresBuild: true dev: false /jsep@1.4.0: @@ -25573,7 +25635,7 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} dependencies: - readable-stream: 2.3.7 + readable-stream: 2.3.8 dev: true /leac@0.6.0: @@ -27276,7 +27338,7 @@ packages: acorn: 8.14.1 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.1 + ufo: 1.5.4 dev: false /module-details-from-path@1.0.3: @@ -27400,6 +27462,11 @@ packages: stylis: 4.3.0 dev: false + /nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -27556,7 +27623,7 @@ packages: - babel-plugin-macros dev: false - /next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.3.1)(react@19.0.0-rc.0): + /next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.2.0)(react@19.0.0-rc.0): resolution: {integrity: sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==} engines: {node: '>=18.17.0'} hasBin: true @@ -27583,7 +27650,7 @@ packages: graceful-fs: 4.2.11 postcss: 8.4.31 react: 19.0.0-rc.0 - react-dom: 18.3.1(react@19.0.0-rc.0) + react-dom: 18.2.0(react@19.0.0-rc.0) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@19.0.0-rc.0) optionalDependencies: '@next/swc-darwin-arm64': 14.2.3 @@ -27977,7 +28044,7 @@ packages: hasBin: true dependencies: citty: 0.1.6 - consola: 3.4.2 + consola: 3.2.3 execa: 8.0.1 pathe: 1.1.2 pkg-types: 1.1.3 @@ -28997,13 +29064,13 @@ packages: read-cache: 1.0.0 resolve: 1.22.8 - /postcss-import@16.0.1(postcss@8.5.3): + /postcss-import@16.0.1(postcss@8.5.4): resolution: {integrity: sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==} engines: {node: '>=18.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.4 @@ -29060,7 +29127,7 @@ packages: ts-node: 10.9.1(@swc/core@1.3.26)(@types/node@20.14.14)(typescript@5.5.4) yaml: 2.7.1 - /postcss-load-config@6.0.1(postcss@8.5.3)(tsx@4.17.0): + /postcss-load-config@6.0.1(postcss@8.5.4)(tsx@4.17.0): resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} peerDependencies: @@ -29079,11 +29146,11 @@ packages: optional: true dependencies: lilconfig: 3.1.3 - postcss: 8.5.3 + postcss: 8.5.4 tsx: 4.17.0 dev: true - /postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.5.4)(webpack@5.99.7): + /postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.5.4)(webpack@5.99.9): resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -29098,9 +29165,9 @@ packages: dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.0 - postcss: 8.5.3 + postcss: 8.5.4 semver: 7.6.3 - webpack: 5.99.7(@swc/core@1.3.26)(esbuild@0.15.18) + webpack: 5.99.9(@swc/core@1.3.26)(esbuild@0.15.18) transitivePeerDependencies: - typescript dev: true @@ -29310,6 +29377,14 @@ packages: picocolors: 1.1.1 source-map-js: 1.2.1 + /postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -29527,23 +29602,28 @@ packages: - supports-color dev: true - /prisma@5.19.0: - resolution: {integrity: sha512-Pu7lUKpVyTx8cVwM26dYh8NdvMOkMnJXzE8L6cikFuR4JwyMU5NKofQkWyxJKlTT4fNjmcnibTvklV8oVMrn+g==} + /prisma@5.4.1: + resolution: {integrity: sha512-op9PmU8Bcw5dNAas82wBYTG0yHnpq9/O3bhxbDBrNzwZTwBqsVCxxYRLf6wHNh9HVaDGhgjjHlu1+BcW8qdnBg==} engines: {node: '>=16.13'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 5.19.0 - optionalDependencies: - fsevents: 2.3.3 + '@prisma/engines': 5.4.1 - /prisma@5.4.1: - resolution: {integrity: sha512-op9PmU8Bcw5dNAas82wBYTG0yHnpq9/O3bhxbDBrNzwZTwBqsVCxxYRLf6wHNh9HVaDGhgjjHlu1+BcW8qdnBg==} - engines: {node: '>=16.13'} + /prisma@6.8.2(typescript@5.5.4): + resolution: {integrity: sha512-JNricTXQxzDtRS7lCGGOB4g5DJ91eg3nozdubXze3LpcMl1oWwcFddrj++Up3jnRE6X/3gB/xz3V+ecBk/eEGA==} + engines: {node: '>=18.18'} hasBin: true requiresBuild: true + peerDependencies: + typescript: '>=5.1.0' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@prisma/engines': 5.4.1 + '@prisma/config': 6.8.2 + '@prisma/engines': 6.8.2 + typescript: 5.5.4 /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} @@ -29998,14 +30078,14 @@ packages: scheduler: 0.23.0 dev: false - /react-dom@18.3.1(react@19.0.0-rc.0): - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + /react-dom@18.2.0(react@19.0.0-rc.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: - react: ^18.3.1 + react: ^18.2.0 dependencies: loose-envify: 1.4.0 react: 19.0.0-rc.0 - scheduler: 0.23.2 + scheduler: 0.23.0 dev: false /react-dom@19.0.0(react@19.0.0): @@ -30089,7 +30169,7 @@ packages: - webpack-cli dev: false - /react-email@3.0.1(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.3.1)(react@19.0.0-rc.0): + /react-email@3.0.1(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.2.0)(react@19.0.0-rc.0): resolution: {integrity: sha512-G4Bkx2ULIScy/0Z8nnWywHt0W1iTkaYCdh9rWNuQ3eVZ6B3ttTUDE9uUy3VNQ8dtQbmG0cpt8+XmImw7mMBW6Q==} engines: {node: '>=18.0.0'} hasBin: true @@ -30104,7 +30184,7 @@ packages: glob: 10.3.4 log-symbols: 4.1.0 mime-types: 2.1.35 - next: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.3.1)(react@19.0.0-rc.0) + next: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.4.1)(@playwright/test@1.37.0)(react-dom@18.2.0)(react@19.0.0-rc.0) normalize-path: 3.0.0 ora: 5.4.1 socket.io: 4.7.5 @@ -30507,8 +30587,8 @@ packages: pify: 4.0.1 strip-bom: 3.0.0 - /readable-stream@2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -30527,8 +30607,16 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 @@ -30875,7 +30963,7 @@ packages: resolution: {integrity: sha512-EY+rK1YR5bKHcM9pd6WyaIbv6m2aRIvHfHDh51j/LahlHTLKemTYXF6ptif2sLa+YospupAsIoxw8Ndt5nI3vg==} engines: {git: '>=2.11.0', node: '>=18.0.0', npm: '>=7.19.0', yarn: '>=1.7.0'} optionalDependencies: - readable-stream: 4.5.2 + readable-stream: 4.7.0 dev: false /request@2.88.2: @@ -31220,12 +31308,6 @@ packages: dependencies: loose-envify: 1.4.0 - /scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - dependencies: - loose-envify: 1.4.0 - dev: false - /scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} dev: false @@ -31677,6 +31759,7 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + requiresBuild: true dev: false /smartwrap@2.0.2: @@ -31928,6 +32011,7 @@ packages: /sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + requiresBuild: true dev: false /sqids@0.3.0: @@ -32010,12 +32094,12 @@ packages: dev: false optional: true - /sswr@2.1.0(svelte@5.28.2): + /sswr@2.1.0(svelte@5.33.12): resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 dependencies: - svelte: 5.28.2 + svelte: 5.33.12 swrev: 4.0.0 /stack-generator@2.0.10: @@ -32284,13 +32368,13 @@ packages: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: false - /style-loader@3.3.4(webpack@5.99.7): + /style-loader@3.3.4(webpack@5.99.9): resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.99.7(@swc/core@1.3.26)(esbuild@0.15.18) + webpack: 5.99.9(@swc/core@1.3.26)(esbuild@0.15.18) dev: true /style-mod@4.0.0: @@ -32476,8 +32560,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte@5.28.2: - resolution: {integrity: sha512-FbWBxgWOpQfhKvoGJv/TFwzqb4EhJbwCD17dB0tEpQiw1XyUEKZJtgm4nA4xq3LLsMo7hu5UY/BOFmroAxKTMg==} + /svelte@5.33.12: + resolution: {integrity: sha512-llNfGM0zePN8k2K63uLE2PwdeNa5DsBlbaXyjWzXtJF+EyOuaAgzVHnWzNAzOiyv9FZgFQfXK0LDDmaLSf1RJA==} engines: {node: '>=18'} dependencies: '@ampproject/remapping': 2.3.0 @@ -32527,12 +32611,12 @@ packages: /swrev@4.0.0: resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} - /swrv@1.0.4(vue@3.5.13): + /swrv@1.0.4(vue@3.5.16): resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} peerDependencies: vue: '>=3.2.26 < 4' dependencies: - vue: 3.5.13(typescript@5.5.4) + vue: 3.5.16(typescript@5.5.4) /sync-content@2.0.1: resolution: {integrity: sha512-NI1mo514yFhr8pV/5Etvgh+pSBUIpoAKoiBIUwALVlQQNAwb40bTw8hhPFaip/dvv0GhpHVOq0vq8iY02ppLTg==} @@ -32653,7 +32737,7 @@ packages: fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.6 + jiti: 1.21.7 lilconfig: 2.1.0 micromatch: 4.0.8 normalize-path: 3.0.0 @@ -32709,6 +32793,11 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + /tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + engines: {node: '>=6'} + dev: true + /tar-fs@2.0.1: resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} dependencies: @@ -32751,7 +32840,7 @@ packages: pump: 3.0.0 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.1.4 + bare-fs: 4.1.5 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -32765,7 +32854,7 @@ packages: end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 - readable-stream: 3.6.0 + readable-stream: 3.6.2 /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -32844,7 +32933,7 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser-webpack-plugin@5.3.14(@swc/core@1.3.26)(esbuild@0.15.18)(webpack@5.99.7): + /terser-webpack-plugin@5.3.14(@swc/core@1.3.26)(esbuild@0.15.18)(webpack@5.99.9): resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -32866,8 +32955,8 @@ packages: jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.39.0 - webpack: 5.99.7(@swc/core@1.3.26)(esbuild@0.15.18) + terser: 5.40.0 + webpack: 5.99.9(@swc/core@1.3.26)(esbuild@0.15.18) dev: true /terser-webpack-plugin@5.3.7(@swc/core@1.3.101)(esbuild@0.19.11)(webpack@5.88.2): @@ -32907,8 +32996,8 @@ packages: source-map-support: 0.5.21 dev: false - /terser@5.39.0: - resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} + /terser@5.40.0: + resolution: {integrity: sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -32981,7 +33070,7 @@ packages: /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: - readable-stream: 2.3.7 + readable-stream: 2.3.8 xtend: 4.0.2 dev: true @@ -33387,7 +33476,7 @@ packages: /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - /tsup@8.4.0(postcss@8.5.3)(tsx@4.17.0)(typescript@5.5.4): + /tsup@8.4.0(postcss@8.5.4)(tsx@4.17.0)(typescript@5.5.4): resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} engines: {node: '>=18'} hasBin: true @@ -33414,8 +33503,8 @@ packages: esbuild: 0.25.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-load-config: 6.0.1(postcss@8.5.3)(tsx@4.17.0) + postcss: 8.5.4 + postcss-load-config: 6.0.1(postcss@8.5.4)(tsx@4.17.0) resolve-from: 5.0.0 rollup: 4.36.0 source-map: 0.8.0-beta.0 @@ -34090,6 +34179,17 @@ packages: escalade: 3.2.0 picocolors: 1.1.1 + /update-browserslist-db@1.1.3(browserslist@4.25.0): + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.25.0 + escalade: 3.2.0 + picocolors: 1.1.1 + dev: true + /uploadthing@7.1.0(next@14.2.21)(tailwindcss@3.4.1): resolution: {integrity: sha512-l1bRHs+q/YLx3XwBav98t4Bl1wLWaskhPEwopxtYgiRrxX5nW3uUuSP0RJ9eKwx0+6ZhHWxHDvShf7ZLledqmQ==} engines: {node: '>=18.13.0'} @@ -34634,19 +34734,19 @@ packages: - terser dev: true - /vue@3.5.13(typescript@5.5.4): - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + /vue@3.5.16(typescript@5.5.4): + resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13) - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.16 + '@vue/compiler-sfc': 3.5.16 + '@vue/runtime-dom': 3.5.16 + '@vue/server-renderer': 3.5.16(vue@3.5.16) + '@vue/shared': 3.5.16 typescript: 5.5.4 /w3c-keyname@2.2.6: @@ -34676,8 +34776,8 @@ packages: graceful-fs: 4.2.11 dev: false - /watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + /watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -34738,6 +34838,12 @@ packages: /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + dev: false + + /webpack-sources@3.3.0: + resolution: {integrity: sha512-77R0RDmJfj9dyv5p3bM5pOHa+X8/ZkO9c7kpDstigkC4nIDobadsfSGCwB4bKhMVxqAok8tajaoR8rirM7+VFQ==} + engines: {node: '>=10.13.0'} + dev: true /webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} @@ -34783,8 +34889,8 @@ packages: - uglify-js dev: false - /webpack@5.99.7(@swc/core@1.3.26)(esbuild@0.15.18): - resolution: {integrity: sha512-CNqKBRMQjwcmKR0idID5va1qlhrqVUKpovi+Ec79ksW8ux7iS1+A6VqzfZXgVYCFRKl7XL5ap3ZoMpwBJxcg0w==} + /webpack@5.99.9(@swc/core@1.3.26)(esbuild@0.15.18): + resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -34800,7 +34906,7 @@ packages: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.1 - browserslist: 4.24.4 + browserslist: 4.25.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 es-module-lexer: 1.7.0 @@ -34813,10 +34919,10 @@ packages: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(@swc/core@1.3.26)(esbuild@0.15.18)(webpack@5.99.7) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(@swc/core@1.3.26)(esbuild@0.15.18)(webpack@5.99.9) + watchpack: 2.4.4 + webpack-sources: 3.3.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -35254,7 +35360,7 @@ packages: dependencies: archiver-utils: 3.0.4 compress-commons: 4.1.2 - readable-stream: 3.6.0 + readable-stream: 3.6.2 dev: true /zip-stream@6.0.1: @@ -35263,7 +35369,7 @@ packages: dependencies: archiver-utils: 5.0.2 compress-commons: 6.0.2 - readable-stream: 4.5.2 + readable-stream: 4.7.0 dev: true /zod-error@1.5.0: diff --git a/references/v3-catalog/package.json b/references/v3-catalog/package.json index 5b2315fe67..7e845fe335 100644 --- a/references/v3-catalog/package.json +++ b/references/v3-catalog/package.json @@ -20,7 +20,7 @@ "@effect/schema": "^0.75.5", "@infisical/sdk": "^2.3.5", "@opentelemetry/api": "1.4.1", - "@prisma/client": "5.19.0", + "@prisma/client": "6.8.2", "@react-email/components": "0.0.24", "@react-email/render": "1.0.1", "@sentry/esbuild-plugin": "^2.22.2", @@ -87,7 +87,7 @@ "@types/fluent-ffmpeg": "^2.1.26", "@types/react": "^18.3.1", "esbuild": "^0.19.11", - "prisma": "5.19.0", + "prisma": "6.8.2", "prisma-kysely": "^1.8.0", "trigger.dev": "workspace:*", "ts-node": "^10.9.2", diff --git a/references/v3-catalog/prisma/schema/post.prisma b/references/v3-catalog/prisma/models/post.prisma similarity index 100% rename from references/v3-catalog/prisma/schema/post.prisma rename to references/v3-catalog/prisma/models/post.prisma diff --git a/references/v3-catalog/prisma/schema/user.prisma b/references/v3-catalog/prisma/models/user.prisma similarity index 100% rename from references/v3-catalog/prisma/schema/user.prisma rename to references/v3-catalog/prisma/models/user.prisma diff --git a/references/v3-catalog/prisma/schema/schema.prisma b/references/v3-catalog/prisma/schema.prisma similarity index 91% rename from references/v3-catalog/prisma/schema/schema.prisma rename to references/v3-catalog/prisma/schema.prisma index 0834802c1f..5a1fc9638a 100644 --- a/references/v3-catalog/prisma/schema/schema.prisma +++ b/references/v3-catalog/prisma/schema.prisma @@ -6,7 +6,7 @@ generator client { provider = "prisma-client-js" - previewFeatures = ["prismaSchemaFolder", "typedSql"] + previewFeatures = ["typedSql"] } datasource db { diff --git a/references/v3-catalog/trigger.config.ts b/references/v3-catalog/trigger.config.ts index 62698d14fb..cb45459b87 100644 --- a/references/v3-catalog/trigger.config.ts +++ b/references/v3-catalog/trigger.config.ts @@ -42,7 +42,7 @@ export default defineConfig({ emitDecoratorMetadata(), audioWaveform(), prismaExtension({ - schema: "prisma/schema/schema.prisma", + schema: "prisma", migrate: true, directUrlEnvVarName: "DATABASE_URL_UNPOOLED", clientGenerator: "client",