diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 575a5f377f..ef5064efb5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2408,6 +2408,9 @@ importers: prisma: specifier: 6.14.0 version: 6.14.0(typescript@5.5.4) + prisma-generator-ts-enums: + specifier: ^1.1.0 + version: 1.1.0(prisma@6.14.0) trigger.dev: specifier: workspace:* version: link:../../packages/cli-v3 @@ -10893,6 +10896,20 @@ packages: resolution: {integrity: sha512-prENLjPislFvRWDHNgXmg9yzixQYsFPVQGtDv5zIMs4pV2KPdNc5pCiZ3n77hAinvqGJVafASa+eU4TfpVphdA==} dev: false + /@prisma/client@4.9.0(prisma@6.14.0): + resolution: {integrity: sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==} + engines: {node: '>=14.17'} + requiresBuild: true + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + dependencies: + '@prisma/engines-version': 4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5 + prisma: 6.14.0(typescript@5.5.4) + dev: true + /@prisma/client@6.14.0(prisma@6.14.0)(typescript@5.5.4): resolution: {integrity: sha512-8E/Nk3eL5g7RQIg/LUj1ICyDmhD053STjxrPxUtCRybs2s/2sOEcx9NpITuAOPn07HEpWBfhAVe1T/HYWXUPOw==} engines: {node: '>=18.18'} @@ -11001,6 +11018,16 @@ packages: transitivePeerDependencies: - magicast + /@prisma/debug@4.16.2: + resolution: {integrity: sha512-7L7WbG0qNNZYgLpsVB8rCHCXEyHFyIycRlRDNwkVfjQmACC2OW6AWCYCbfdjQhkF/t7+S3njj8wAWAocSs+Brw==} + dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /@prisma/debug@6.14.0: resolution: {integrity: sha512-j4Lf+y+5QIJgQD4sJWSbkOD7geKx9CakaLp/TyTy/UDu9Wo0awvWCBH/BAxTHUaCpIl9USA5VS/KJhDqKJSwug==} @@ -11025,6 +11052,10 @@ packages: '@prisma/debug': 6.20.0-integration-next.8 dev: false + /@prisma/engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5: + resolution: {integrity: sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==} + dev: true + /@prisma/engines-version@6.14.0-25.717184b7b35ea05dfa71a3236b7af656013e1e49: resolution: {integrity: sha512-EgN9ODJpiX45yvwcngoStp3uQPJ3l+AEVoQ6dMMO2QvmwIlnxfApzKmJQExzdo7/hqQANrz5txHJdGYHzOnGHA==} @@ -11101,6 +11132,17 @@ packages: '@prisma/engines-version': 6.20.0-11.next-80ee0a44bf5668992b0c909c946a755b86b56c95 '@prisma/get-platform': 6.20.0-integration-next.8 + /@prisma/generator-helper@4.16.2: + resolution: {integrity: sha512-bMOH7y73Ui7gpQrioFeavMQA+Tf8ksaVf8Nhs9rQNzuSg8SSV6E9baczob0L5KGZTSgYoqnrRxuo03kVJYrnIg==} + dependencies: + '@prisma/debug': 4.16.2 + '@types/cross-spawn': 6.0.2 + cross-spawn: 7.0.3 + kleur: 4.1.5 + transitivePeerDependencies: + - supports-color + dev: true + /@prisma/get-platform@6.14.0: resolution: {integrity: sha512-7VjuxKNwjnBhKfqPpMeWiHEa2sVjYzmHdl1slW6STuUCe9QnOY0OY1ljGSvz6wpG4U8DfbDqkG1yofd/1GINww==} dependencies: @@ -19557,6 +19599,12 @@ packages: dependencies: '@types/node': 20.14.14 + /@types/cross-spawn@6.0.2: + resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} + dependencies: + '@types/node': 20.14.14 + dev: true + /@types/d3-array@3.0.8: resolution: {integrity: sha512-2xAVyAUgaXHX9fubjcCbGAUOqYfRJN1em1EKR2HfzWBpObZhwfnZKvofTN4TplMqJdFQao61I+NVSai/vnBvDQ==} dev: false @@ -19747,6 +19795,12 @@ packages: '@types/ms': 0.7.31 dev: true + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + dependencies: + '@types/ms': 0.7.31 + dev: true + /@types/decimal.js@7.4.3: resolution: {integrity: sha512-7MpxcJPHqQ637FCZwJLtJMaDZkcD/iyUxj0m8A+m06slFeqRiK9QtgEyuocWNRbEtCrOZOEbZPTSSR88hMZVsg==} deprecated: This is a stub types definition. decimal.js provides its own type definitions, so you do not need this installed. @@ -26597,6 +26651,16 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + dev: true + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -29853,6 +29917,13 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} @@ -29914,7 +29985,6 @@ packages: /minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} - dev: false /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} @@ -32155,6 +32225,18 @@ packages: react: 18.2.0 dev: false + /prisma-generator-ts-enums@1.1.0(prisma@6.14.0): + resolution: {integrity: sha512-l0LuL8KJNMnYQpOd9bmy0kx+Hwxq75Da7N+aJimpau0S0odgide+DKJiSwYtu5JtgJGWzoyUPmx0MO4u/KDiBQ==} + dependencies: + '@prisma/client': 4.9.0(prisma@6.14.0) + '@prisma/generator-helper': 4.16.2 + prettier: 2.8.8 + rimraf: 4.4.1 + transitivePeerDependencies: + - prisma + - supports-color + dev: true + /prisma@6.14.0(typescript@5.5.4): resolution: {integrity: sha512-QEuCwxu+Uq9BffFw7in8In+WfbSUN0ewnaSUKloLkbJd42w6EyFckux4M0f7VwwHlM3A8ssaz4OyniCXlsn0WA==} engines: {node: '>=18.18'} @@ -33756,6 +33838,14 @@ packages: dependencies: glob: 7.2.3 + /rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 9.3.5 + dev: true + /rimraf@5.0.7: resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} engines: {node: '>=14.18'} diff --git a/references/prisma-6/package.json b/references/prisma-6/package.json index b46902f5fe..2e272859d1 100644 --- a/references/prisma-6/package.json +++ b/references/prisma-6/package.json @@ -3,13 +3,14 @@ "private": true, "type": "module", "devDependencies": { - "trigger.dev": "workspace:*", - "prisma": "6.14.0" + "prisma": "6.14.0", + "prisma-generator-ts-enums": "^1.1.0", + "trigger.dev": "workspace:*" }, "dependencies": { + "@prisma/client": "6.14.0", "@trigger.dev/build": "workspace:*", - "@trigger.dev/sdk": "workspace:*", - "@prisma/client": "6.14.0" + "@trigger.dev/sdk": "workspace:*" }, "scripts": { "dev": "trigger dev", diff --git a/references/prisma-6/prisma/migrations/20251121153959_add_user_role/migration.sql b/references/prisma-6/prisma/migrations/20251121153959_add_user_role/migration.sql new file mode 100644 index 0000000000..09f6b79371 --- /dev/null +++ b/references/prisma-6/prisma/migrations/20251121153959_add_user_role/migration.sql @@ -0,0 +1,5 @@ +-- CreateEnum +CREATE TYPE "public"."UserRole" AS ENUM ('ADMIN', 'USER'); + +-- AlterTable +ALTER TABLE "public"."User" ADD COLUMN "role" "public"."UserRole" NOT NULL DEFAULT 'USER'; diff --git a/references/prisma-6/prisma/schema.prisma b/references/prisma-6/prisma/schema.prisma index 724a9ebc00..4999af52c1 100644 --- a/references/prisma-6/prisma/schema.prisma +++ b/references/prisma-6/prisma/schema.prisma @@ -15,12 +15,24 @@ datasource db { directUrl = env("DATABASE_URL_UNPOOLED") } +generator enum { + provider = "node node_modules/prisma-generator-ts-enums" // specify the path to this generator here + output = "../src/types/enums.ts" // optionally, you can specify an output filename here -- default is ./types/enums.d.ts +} + model User { id String @id @default(cuid()) email String @unique name String? avatarUrl String? + role UserRole @default(USER) + createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } + +enum UserRole { + ADMIN + USER +} diff --git a/references/prisma-6/src/types/enums.ts b/references/prisma-6/src/types/enums.ts new file mode 100644 index 0000000000..dfac04536b --- /dev/null +++ b/references/prisma-6/src/types/enums.ts @@ -0,0 +1,4 @@ +export enum UserRole { + ADMIN = 'ADMIN', + USER = 'USER', +} diff --git a/references/prisma-6/trigger.config.ts b/references/prisma-6/trigger.config.ts index 07d91101d2..a9255abf57 100644 --- a/references/prisma-6/trigger.config.ts +++ b/references/prisma-6/trigger.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from "@trigger.dev/sdk"; import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; +import { additionalPackages } from "@trigger.dev/build/extensions/core"; export default defineConfig({ project: process.env.TRIGGER_PROJECT_REF!, @@ -18,6 +19,9 @@ export default defineConfig({ machine: "small-1x", build: { extensions: [ + additionalPackages({ + packages: ["prisma-generator-ts-enums@1.1.0"], + }), prismaExtension({ mode: "legacy", schema: "prisma/schema.prisma",