diff --git a/.dockerignore b/.dockerignore index 23c9899b53..b9dcd93d22 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -**/node_modules +node_modules .pnp .pnp.js .pnpm-store/ @@ -10,12 +10,12 @@ coverage # next.js -**/.next -**/out -**/build +.next/ +out/ +build # node -**/dist +dist/ # misc .DS_Store @@ -26,12 +26,18 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local +!packages/database/.env + # turbo .turbo # nixos stuff .direnv -.vscode -.github -**/.turbo +Zone.Identifier +generated \ No newline at end of file diff --git a/.gitignore b/.gitignore index 036ab1cd7e..13b6dc1fdd 100644 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,5 @@ yarn-error.log* # nixos stuff .direnv -Zone.Identifier \ No newline at end of file +Zone.Identifier +generated \ No newline at end of file diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 9c00d58291..9bef9e90cc 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -7,7 +7,6 @@ COPY . . RUN pnpm install # Build the project -RUN pnpm dlx prisma generate RUN pnpm turbo run build --filter=web... CMD pnpm dlx prisma migrate deploy && node /app/apps/web/.next/standalone/apps/web/server.js \ No newline at end of file diff --git a/apps/web/app/api/auth/[...nextauth]/authOptions.ts b/apps/web/app/api/auth/[...nextauth]/authOptions.ts index 936efdfc70..c8e17c3eec 100644 --- a/apps/web/app/api/auth/[...nextauth]/authOptions.ts +++ b/apps/web/app/api/auth/[...nextauth]/authOptions.ts @@ -1,7 +1,7 @@ import { verifyPassword } from "@/lib/auth"; import { verifyToken } from "@/lib/jwt"; import { prisma } from "@formbricks/database"; -import { IdentityProvider } from "@prisma/client"; +import type { IdentityProvider } from "@formbricks/database/generated"; import type { NextAuthOptions } from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import GitHubProvider from "next-auth/providers/github"; diff --git a/apps/web/app/environments/[environmentId]/attributes/AttributeActivityTab.tsx b/apps/web/app/environments/[environmentId]/attributes/AttributeActivityTab.tsx index d1fdd99b7d..0f88e526b4 100644 --- a/apps/web/app/environments/[environmentId]/attributes/AttributeActivityTab.tsx +++ b/apps/web/app/environments/[environmentId]/attributes/AttributeActivityTab.tsx @@ -2,7 +2,7 @@ import { Label } from "@formbricks/ui/Label"; import { convertDateTimeStringShort } from "@formbricks/lib/time"; import { capitalizeFirstLetter } from "@/lib/utils"; import { TagIcon } from "@heroicons/react/24/solid"; -import type { AttributeClass } from "@prisma/client"; +import type { AttributeClass } from "@formbricks/database/generated"; interface EventActivityTabProps { attributeClass: AttributeClass; diff --git a/apps/web/app/environments/[environmentId]/attributes/AttributeDetailModal.tsx b/apps/web/app/environments/[environmentId]/attributes/AttributeDetailModal.tsx index b135ea5c8a..71c77932aa 100644 --- a/apps/web/app/environments/[environmentId]/attributes/AttributeDetailModal.tsx +++ b/apps/web/app/environments/[environmentId]/attributes/AttributeDetailModal.tsx @@ -1,6 +1,6 @@ import ModalWithTabs from "@/components/shared/ModalWithTabs"; import { TagIcon } from "@heroicons/react/24/solid"; -import type { AttributeClass } from "@prisma/client"; +import type { AttributeClass } from "@formbricks/database/generated"; import AttributeActivityTab from "./AttributeActivityTab"; import AttributeSettingsTab from "./AttributeSettingsTab"; diff --git a/apps/web/app/environments/[environmentId]/attributes/AttributeSettingsTab.tsx b/apps/web/app/environments/[environmentId]/attributes/AttributeSettingsTab.tsx index 449d4f71dd..a9b70d195a 100644 --- a/apps/web/app/environments/[environmentId]/attributes/AttributeSettingsTab.tsx +++ b/apps/web/app/environments/[environmentId]/attributes/AttributeSettingsTab.tsx @@ -3,7 +3,7 @@ import { Input } from "@formbricks/ui/Input"; import { Label } from "@formbricks/ui/Label"; import { useAttributeClasses } from "@/lib/attributeClasses/attributeClasses"; import { useAttributeClassMutation } from "@/lib/attributeClasses/mutateAttributeClasses"; -import type { AttributeClass } from "@prisma/client"; +import type { AttributeClass } from "@formbricks/database/generated"; import { useForm } from "react-hook-form"; interface AttributeSettingsTabProps { diff --git a/apps/web/app/environments/[environmentId]/events/EventDetailModal.tsx b/apps/web/app/environments/[environmentId]/events/EventDetailModal.tsx index 114b4395c0..57143d59aa 100644 --- a/apps/web/app/environments/[environmentId]/events/EventDetailModal.tsx +++ b/apps/web/app/environments/[environmentId]/events/EventDetailModal.tsx @@ -1,6 +1,6 @@ import ModalWithTabs from "@/components/shared/ModalWithTabs"; import { CodeBracketIcon, CursorArrowRaysIcon, SparklesIcon } from "@heroicons/react/24/solid"; -import type { EventClass } from "@prisma/client"; +import type { EventClass } from "@formbricks/database/generated"; import EventActivityTab from "./EventActivityTab"; import EventSettingsTab from "./EventSettingsTab"; diff --git a/apps/web/lib/populate.ts b/apps/web/lib/populate.ts index 145690e0f6..5f57fae2f6 100644 --- a/apps/web/lib/populate.ts +++ b/apps/web/lib/populate.ts @@ -1,4 +1,4 @@ -import { EventType } from "@prisma/client"; +import { EventType } from "@formbricks/database/generated"; export const populateEnvironment = { eventClasses: { create: [ diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 86d587e3f5..2adff6e713 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -2,17 +2,21 @@ const path = require("path"); const Dotenv = require("dotenv-webpack"); +const { PrismaPlugin } = require("@prisma/nextjs-monorepo-workaround-plugin"); const rootPath = path.join(__dirname, "..", ".."); const { createId } = require("@paralleldrive/cuid2"); const nextConfig = { - experimental: { - serverComponentsExternalPackages: ["@prisma/client"], - }, output: "standalone", - transpilePackages: ["@formbricks/database", "@formbricks/ee", "@formbricks/ui", "@formbricks/lib"], + transpilePackages: [ + "@formbricks/database", + "@formbricks/database/generated", + "@formbricks/ee", + "@formbricks/ui", + "@formbricks/lib", + ], images: { remotePatterns: [ { @@ -53,12 +57,15 @@ const nextConfig = { }, ]; }, - webpack: (config) => { + webpack: (config, { isServer }) => { config.plugins.push( new Dotenv({ path: path.resolve(rootPath, ".env"), }) ); + if (isServer) { + config.plugins = [...config.plugins, new PrismaPlugin()]; + } return config; }, env: { diff --git a/apps/web/package.json b/apps/web/package.json index 3fc2d8c15a..43674f14f9 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -10,6 +10,7 @@ "lint": "next lint" }, "dependencies": { + "@formbricks/database": "workspace:*", "@formbricks/ee": "workspace:*", "@formbricks/js": "workspace:*", "@formbricks/lib": "workspace:*", @@ -52,9 +53,9 @@ "typescript": "5.0.4" }, "devDependencies": { - "@formbricks/database": "workspace:*", "@formbricks/tsconfig": "workspace:*", "@formbricks/types": "workspace:*", + "@prisma/nextjs-monorepo-workaround-plugin": "^4.14.0", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/typography": "^0.5.9", "@types/bcryptjs": "^2.4.2", diff --git a/apps/web/pages/api/v1/environments/[environmentId]/product/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/product/index.ts index 47a83b3a0a..0a965c7e96 100644 --- a/apps/web/pages/api/v1/environments/[environmentId]/product/index.ts +++ b/apps/web/pages/api/v1/environments/[environmentId]/product/index.ts @@ -1,6 +1,6 @@ import { hasEnvironmentAccess } from "@/lib/api/apiHelper"; import { prisma } from "@formbricks/database"; -import { EnvironmentType } from "@prisma/client"; +import { EnvironmentType } from "@formbricks/database/generated"; import { populateEnvironment } from "@/lib/populate"; import type { NextApiRequest, NextApiResponse } from "next"; diff --git a/apps/web/pages/api/v1/environments/find-first.ts b/apps/web/pages/api/v1/environments/find-first.ts index f5fd31cf3f..bb3d0d1b30 100644 --- a/apps/web/pages/api/v1/environments/find-first.ts +++ b/apps/web/pages/api/v1/environments/find-first.ts @@ -2,7 +2,7 @@ import { getSessionUser } from "@/lib/api/apiHelper"; import { populateEnvironment } from "@/lib/populate"; import { prisma } from "@formbricks/database"; import type { NextApiRequest, NextApiResponse } from "next"; -import { EnvironmentType } from "@prisma/client"; +import { EnvironmentType } from "@formbricks/database/generated"; export default async function handle(req: NextApiRequest, res: NextApiResponse) { // Check Authentication diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index b3356566f0..4f10dbe903 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -6,7 +6,7 @@ "baseUrl": ".", "paths": { "@/*": ["./*"], - "@prisma/client/*": ["@formbricks/prisma/client/*"] + "@prisma/client/*": ["@formbricks/database/generated/client/*"] }, "plugins": [ { diff --git a/packages/database/client/index.d.ts b/packages/database/client/index.d.ts deleted file mode 100644 index 68b2c4b094..0000000000 --- a/packages/database/client/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "../../../node_modules/.prisma/client/index.d"; diff --git a/packages/database/client/index.ts b/packages/database/client/index.ts deleted file mode 100644 index b98f8c8fc6..0000000000 --- a/packages/database/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "../../../node_modules/.prisma/client"; diff --git a/packages/database/package.json b/packages/database/package.json index d0787c458f..5969100c82 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -3,34 +3,38 @@ "private": true, "version": "1.0.0", "license": "MIT", - "main": "index.ts", - "types": "index.d.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "files": [ - "dist/**" + "dist/**", + "generated" ], "scripts": { - "clean": "rimraf .turbo node_modules dist", + "clean": "rimraf .turbo node_modules dist generated", + "build": "tsup", + "dev": "tsup --watch", "db:migrate:deploy": "prisma migrate deploy", "db:migrate:dev": "prisma migrate dev", "db:migrate:vercel": "DATABASE_URL=\"$MIGRATE_DATABASE_URL\" prisma migrate deploy", "db:push": "prisma db push --accept-data-loss", "format": "prisma format", "generate": "prisma generate", - "lint": "eslint ./client --fix", + "lint": "eslint ./src --fix", "prebuild": "npm run generate", "predev": "npm run generate", "studio": "prisma studio" }, "dependencies": { - "@prisma/client": "^4.13.0" + "@prisma/client": "^4.14.0" }, "devDependencies": { "@formbricks/tsconfig": "workspace:*", "eslint": "^8.40.0", "eslint-config-formbricks": "workspace:*", - "prisma": "^4.13.0", + "prisma": "^4.14.0", "prisma-dbml-generator": "^0.10.0", "rimraf": "^5.0.0", + "tsup": "^6.7.0", "tsx": "^3.12.7", "typescript": "^5.0.4" } diff --git a/packages/database/prisma/schema.prisma b/packages/database/prisma/schema.prisma index a1dda724a2..6497a3ed0a 100644 --- a/packages/database/prisma/schema.prisma +++ b/packages/database/prisma/schema.prisma @@ -9,7 +9,7 @@ datasource db { generator client { provider = "prisma-client-js" previewFeatures = ["filteredRelationCount", "extendedWhereUnique"] - output = "../../../node_modules/.prisma/client" + output = "../generated" //provider = "prisma-dbml-generator" } diff --git a/packages/database/index.ts b/packages/database/src/index.ts similarity index 71% rename from packages/database/index.ts rename to packages/database/src/index.ts index b3391755eb..808273a92b 100644 --- a/packages/database/index.ts +++ b/packages/database/src/index.ts @@ -1,7 +1,7 @@ -import { PrismaClient } from "@prisma/client"; +import { PrismaClient } from "../generated"; declare global { - var prisma: PrismaClient | undefined; + var prisma: any; } export const prisma: PrismaClient = diff --git a/packages/database/tsup.config.ts b/packages/database/tsup.config.ts index 27be5a773f..7b2f1a9e2f 100644 --- a/packages/database/tsup.config.ts +++ b/packages/database/tsup.config.ts @@ -9,4 +9,5 @@ export default defineConfig({ format: ["cjs", "esm"], minify: isProduction, sourcemap: true, + external: [/generated/], }); diff --git a/packages/js/package.json b/packages/js/package.json index 943442e676..08260b457a 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -1,6 +1,6 @@ { "name": "@formbricks/js", - "version": "0.1.15", + "version": "0.1.16", "description": "Formbricks-js allows you to connect your app to Formbricks, display surveys and trigger events.", "keywords": [ "Formbricks", diff --git a/packages/types/surveys.ts b/packages/types/surveys.ts index c6c89412cb..bac236e739 100644 --- a/packages/types/surveys.ts +++ b/packages/types/surveys.ts @@ -1,4 +1,3 @@ -import type { Survey as PrismaSurvey } from "@prisma/client"; import { Question } from "./questions"; export interface ThankYouCard { @@ -6,11 +5,19 @@ export interface ThankYouCard { headline?: string; subheader?: string; } -export interface Survey extends Omit { +export interface Survey { + id: string; + createdAt: string; + updatedAt: string; + name: string; + type: "web" | "email" | "link" | "mobile"; + environmentId: string; + status: "draft" | "inProgress" | "archived" | "paused" | "completed"; + recontactDays: number | null; questions: Question[]; thankYouCard: ThankYouCard; triggers: string[]; numDisplays: number; responseRate: number; - displayOptions: "displayOnce" | "displayMultiple" | "respondMultiple"; + displayOption: "displayOnce" | "displayMultiple" | "respondMultiple"; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f197929af2..fa1ab1d186 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -183,6 +183,9 @@ importers: apps/web: dependencies: + '@formbricks/database': + specifier: workspace:* + version: link:../../packages/database '@formbricks/ee': specifier: workspace:* version: link:../../packages/ee @@ -304,15 +307,15 @@ importers: specifier: 5.0.4 version: 5.0.4 devDependencies: - '@formbricks/database': - specifier: workspace:* - version: link:../../packages/database '@formbricks/tsconfig': specifier: workspace:* version: link:../../packages/tsconfig '@formbricks/types': specifier: workspace:* version: link:../../packages/types + '@prisma/nextjs-monorepo-workaround-plugin': + specifier: ^4.14.0 + version: 4.14.0 '@tailwindcss/forms': specifier: ^0.5.3 version: 0.5.3(tailwindcss@3.3.2) @@ -350,8 +353,8 @@ importers: packages/database: dependencies: '@prisma/client': - specifier: ^4.13.0 - version: 4.13.0(prisma@4.13.0) + specifier: ^4.14.0 + version: 4.14.0(prisma@4.14.0) devDependencies: '@formbricks/tsconfig': specifier: workspace:* @@ -363,14 +366,17 @@ importers: specifier: workspace:* version: link:../eslint-config-formbricks prisma: - specifier: ^4.13.0 - version: 4.13.0 + specifier: ^4.14.0 + version: 4.14.0 prisma-dbml-generator: specifier: ^0.10.0 version: 0.10.0 rimraf: specifier: ^5.0.0 version: 5.0.0 + tsup: + specifier: ^6.7.0 + version: 6.7.0(typescript@5.0.4) tsx: specifier: ^3.12.7 version: 3.12.7 @@ -2382,6 +2388,15 @@ packages: get-tsconfig: 4.4.0 dev: true + /@esbuild/android-arm64@0.17.18: + resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.15.16: resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==} engines: {node: '>=12'} @@ -2391,6 +2406,87 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.17.18: + resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.18: + resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.18: + resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.18: + resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.18: + resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.18: + resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.18: + resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.18: + resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.18: + resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.15.16: resolution: {integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==} engines: {node: '>=12'} @@ -2400,6 +2496,114 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.17.18: + resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.18: + resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.18: + resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.18: + resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.18: + resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.18: + resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.18: + resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.18: + resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.18: + resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.18: + resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.18: + resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.18: + resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.2.0(eslint@8.40.0): resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3412,8 +3616,8 @@ packages: webpack: 4.46.0 dev: true - /@prisma/client@4.13.0(prisma@4.13.0): - resolution: {integrity: sha512-YaiiICcRB2hatxsbnfB66uWXjcRw3jsZdlAVxmx0cFcTc/Ad/sKdHCcWSnqyDX47vAewkjRFwiLwrOUjswVvmA==} + /@prisma/client@4.14.0(prisma@4.14.0): + resolution: {integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==} engines: {node: '>=14.17'} requiresBuild: true peerDependencies: @@ -3422,8 +3626,8 @@ packages: prisma: optional: true dependencies: - '@prisma/engines-version': 4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a - prisma: 4.13.0 + '@prisma/engines-version': 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c + prisma: 4.14.0 dev: false /@prisma/debug@4.6.1: @@ -3457,12 +3661,12 @@ packages: - supports-color dev: true - /@prisma/engines-version@4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a: - resolution: {integrity: sha512-fsQlbkhPJf08JOzKoyoD9atdUijuGBekwoOPZC3YOygXEml1MTtgXVpnUNchQlRSY82OQ6pSGQ9PxUe4arcSLQ==} + /@prisma/engines-version@4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c: + resolution: {integrity: sha512-3jum8/YSudeSN0zGW5qkpz+wAN2V/NYCQ+BPjvHYDfWatLWlQkqy99toX0GysDeaUoBIJg1vaz2yKqiA3CFcQw==} dev: false - /@prisma/engines@4.13.0: - resolution: {integrity: sha512-HrniowHRZXHuGT9XRgoXEaP2gJLXM5RMoItaY2PkjvuZ+iHc0Zjbm/302MB8YsPdWozAPHHn+jpFEcEn71OgPw==} + /@prisma/engines@4.14.0: + resolution: {integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==} requiresBuild: true /@prisma/engines@4.6.1: @@ -3566,6 +3770,10 @@ packages: - supports-color dev: true + /@prisma/nextjs-monorepo-workaround-plugin@4.14.0: + resolution: {integrity: sha512-mN3sr13ea8nGi2w1PqcDXb3p0MVbNQj2kgvrrzg3tdMG30UJoz8ov+AQbCh5IBv+mzpi4sP5McXy4+Zf30eU+A==} + dev: true + /@prisma/prisma-fmt-wasm@4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32: resolution: {integrity: sha512-hT+YRaH5NTZDYhLhSKMUdtY+i8sKkjjFwiDYhy6688G+H8oFklIwPNeApKH8Jw5bbtuH6onIzo1oivapOFJryg==} dev: true @@ -6334,6 +6542,16 @@ packages: semver: 7.5.0 dev: true + /bundle-require@4.0.1(esbuild@0.17.18): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.17.18 + load-tsconfig: 0.2.5 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -6350,6 +6568,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /cacache@12.0.4: resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} dependencies: @@ -8523,6 +8746,36 @@ packages: esbuild-windows-arm64: 0.15.16 dev: true + /esbuild@0.17.18: + resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.18 + '@esbuild/android-arm64': 0.17.18 + '@esbuild/android-x64': 0.17.18 + '@esbuild/darwin-arm64': 0.17.18 + '@esbuild/darwin-x64': 0.17.18 + '@esbuild/freebsd-arm64': 0.17.18 + '@esbuild/freebsd-x64': 0.17.18 + '@esbuild/linux-arm': 0.17.18 + '@esbuild/linux-arm64': 0.17.18 + '@esbuild/linux-ia32': 0.17.18 + '@esbuild/linux-loong64': 0.17.18 + '@esbuild/linux-mips64el': 0.17.18 + '@esbuild/linux-ppc64': 0.17.18 + '@esbuild/linux-riscv64': 0.17.18 + '@esbuild/linux-s390x': 0.17.18 + '@esbuild/linux-x64': 0.17.18 + '@esbuild/netbsd-x64': 0.17.18 + '@esbuild/openbsd-x64': 0.17.18 + '@esbuild/sunos-x64': 0.17.18 + '@esbuild/win32-arm64': 0.17.18 + '@esbuild/win32-ia32': 0.17.18 + '@esbuild/win32-x64': 0.17.18 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -11612,6 +11865,11 @@ packages: resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} dev: false + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-cookie@2.2.1: resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} dev: false @@ -11939,6 +12197,11 @@ packages: engines: {node: '>= 0.4'} dev: false + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -15218,13 +15481,13 @@ packages: - supports-color dev: true - /prisma@4.13.0: - resolution: {integrity: sha512-L9mqjnSmvWIRCYJ9mQkwCtj4+JDYYTdhoyo8hlsHNDXaZLh/b4hR0IoKIBbTKxZuyHQzLopb/+0Rvb69uGV7uA==} + /prisma@4.14.0: + resolution: {integrity: sha512-+5dMl1uxMQb4RepndY6AwR9xi1cDcaGFICu+ws6/Nmgt93mFPNj8tYxSfTdmfg+rkNrUId9rk/Ac2vTgLe/oXA==} engines: {node: '>=14.17'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 4.13.0 + '@prisma/engines': 4.14.0 /prismjs@1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} @@ -16267,6 +16530,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup@3.21.5: + resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /rrweb-snapshot@1.1.14: resolution: {integrity: sha512-eP5pirNjP5+GewQfcOQY4uBiDnpqxNRc65yKPW0eSoU1XamDfc4M8oqpXGMyUyvLyxFDB0q0+DChuxxiU2FXBQ==} dev: false @@ -17864,6 +18135,42 @@ packages: /tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tsup@6.7.0(typescript@5.0.4): + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.17.18) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.17.18 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4(postcss@8.4.23) + resolve-from: 5.0.0 + rollup: 3.21.5 + source-map: 0.8.0-beta.0 + sucrase: 3.32.0 + tree-kill: 1.2.2 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils@3.21.0(typescript@5.0.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'}