diff --git a/apps/hub/api/auth/[...nextauth].ts b/apps/hub/api/auth/[...nextauth].ts
new file mode 100644
index 00000000..0e9740fe
--- /dev/null
+++ b/apps/hub/api/auth/[...nextauth].ts
@@ -0,0 +1,3 @@
+import NextAuth from 'next-auth';
+
+export default NextAuth();
diff --git a/apps/hub/app/globals.css b/apps/hub/app/globals.css
index 6b717ad3..ee27bcf8 100644
--- a/apps/hub/app/globals.css
+++ b/apps/hub/app/globals.css
@@ -5,17 +5,4 @@
:root {
--background: #ffffff;
--foreground: #171717;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --background: #0a0a0a;
- --foreground: #ededed;
- }
-}
-
-body {
- color: var(--foreground);
- background: var(--background);
- font-family: Arial, Helvetica, sans-serif;
-}
+}
\ No newline at end of file
diff --git a/apps/hub/app/page.tsx b/apps/hub/app/page.tsx
index 9007252c..b648a9e7 100644
--- a/apps/hub/app/page.tsx
+++ b/apps/hub/app/page.tsx
@@ -1,101 +1,7 @@
-import Image from "next/image";
-
export default function Home() {
return (
-
-
-
-
- -
- Get started by editing{" "}
-
- app/page.tsx
-
- .
-
- - Save and see your changes instantly.
-
-
-
-
-
+
+
Hub
);
}
diff --git a/apps/hub/lib/auth.ts b/apps/hub/lib/auth.ts
new file mode 100644
index 00000000..a4fd8cb7
--- /dev/null
+++ b/apps/hub/lib/auth.ts
@@ -0,0 +1,15 @@
+import { AuthOptions } from 'next-auth';
+import { PrismaAdapter } from '@next-auth/prisma-adapter';
+import Email from 'next-auth/providers/email';
+import { prisma } from '@repo/db';
+
+export const options = {
+ providers: [
+ Email({
+ server: process.env.EMAIL_SERVER,
+ from: process.env.EMAIL_FROM,
+ }),
+ ],
+ secret: process.env.SECRET,
+ adapter: PrismaAdapter(prisma),
+} satisfies AuthOptions;
diff --git a/apps/hub/package.json b/apps/hub/package.json
index 98f2f9ad..126963a6 100644
--- a/apps/hub/package.json
+++ b/apps/hub/package.json
@@ -9,20 +9,22 @@
"lint": "next lint"
},
"dependencies": {
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
+ "@next-auth/prisma-adapter": "^1.0.7",
+ "@repo/ui": "*",
"next": "15.1.4",
- "@repo/ui": "*"
+ "next-auth": "^4.24.11",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
},
"devDependencies": {
- "typescript": "^5",
+ "@eslint/eslintrc": "^3",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
- "postcss": "^8",
- "tailwindcss": "^3.4.1",
"eslint": "^9",
"eslint-config-next": "15.1.4",
- "@eslint/eslintrc": "^3"
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5"
}
}
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index 1de06b04..fde3a1d0 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -4,15 +4,24 @@ version: '3.8'
services:
postgres:
image: postgres:13
- container_name: dev-postgres
+ container_name: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_USER: myuser
- POSTGRES_PASSWORD: mypassword
- POSTGRES_DB: mydb
+ POSTGRES_USER: persistant-data
+ POSTGRES_PASSWORD: persistant-data-pw
+ POSTGRES_DB: var
volumes:
- postgres-data:/var/lib/postgresql/data
-
+ pgadmin:
+ image: dpage/pgadmin4:latest
+ container_name: pgadmin
+ environment:
+ PGADMIN_DEFAULT_EMAIL: dev@var.de
+ PGADMIN_DEFAULT_PASSWORD: dev
+ ports:
+ - "8080:80"
+ depends_on:
+ - postgres
volumes:
postgres-data:
diff --git a/package-lock.json b/package-lock.json
index 56d3c930..cb108167 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -38,8 +38,10 @@
"apps/hub": {
"version": "0.1.0",
"dependencies": {
+ "@next-auth/prisma-adapter": "^1.0.7",
"@repo/ui": "*",
"next": "15.1.4",
+ "next-auth": "^4.24.11",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
@@ -102,6 +104,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/runtime-corejs3": {
"version": "7.26.0",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz",
@@ -868,6 +881,15 @@
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "node_modules/@next-auth/prisma-adapter": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.7.tgz",
+ "integrity": "sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==",
+ "peerDependencies": {
+ "@prisma/client": ">=2.26.0 || >=3",
+ "next-auth": "^4"
+ }
+ },
"node_modules/@next/env": {
"version": "15.1.4",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz",
@@ -1046,6 +1068,14 @@
"node": ">=12.4.0"
}
},
+ "node_modules/@panva/hkdf": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz",
+ "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -2283,6 +2313,14 @@
"upper-case": "^1.1.1"
}
},
+ "node_modules/cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/core-js-pure": {
"version": "3.40.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz",
@@ -4990,6 +5028,14 @@
"jiti": "bin/jiti.js"
}
},
+ "node_modules/jose": {
+ "version": "4.15.9",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
+ "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -5421,6 +5467,37 @@
}
}
},
+ "node_modules/next-auth": {
+ "version": "4.24.11",
+ "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.11.tgz",
+ "integrity": "sha512-pCFXzIDQX7xmHFs4KVH4luCjaCbuPRtZ9oBUjUhOk84mZ9WVPf94n87TxYI4rSRf9HmfHEF8Yep3JrYDVOo3Cw==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.13",
+ "@panva/hkdf": "^1.0.2",
+ "cookie": "^0.7.0",
+ "jose": "^4.15.5",
+ "oauth": "^0.9.15",
+ "openid-client": "^5.4.0",
+ "preact": "^10.6.3",
+ "preact-render-to-string": "^5.1.19",
+ "uuid": "^8.3.2"
+ },
+ "peerDependencies": {
+ "@auth/core": "0.34.2",
+ "next": "^12.2.5 || ^13 || ^14 || ^15",
+ "nodemailer": "^6.6.5",
+ "react": "^17.0.2 || ^18 || ^19",
+ "react-dom": "^17.0.2 || ^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "@auth/core": {
+ "optional": true
+ },
+ "nodemailer": {
+ "optional": true
+ }
+ }
+ },
"node_modules/no-case": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
@@ -5605,6 +5682,11 @@
"node": ">=8"
}
},
+ "node_modules/oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -5728,6 +5810,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/oidc-token-hash": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz",
+ "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==",
+ "engines": {
+ "node": "^10.13.0 || >=12.0.0"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -5752,6 +5842,39 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/openid-client": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz",
+ "integrity": "sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==",
+ "dependencies": {
+ "jose": "^4.15.9",
+ "lru-cache": "^6.0.0",
+ "object-hash": "^2.2.0",
+ "oidc-token-hash": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/openid-client/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/openid-client/node_modules/object-hash": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+ "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -6274,6 +6397,26 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "node_modules/preact": {
+ "version": "10.25.4",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz",
+ "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/preact"
+ }
+ },
+ "node_modules/preact-render-to-string": {
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
+ "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
+ "dependencies": {
+ "pretty-format": "^3.8.0"
+ },
+ "peerDependencies": {
+ "preact": ">=10"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -6298,6 +6441,11 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
+ "node_modules/pretty-format": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+ "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -6472,8 +6620,7 @@
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.4",
@@ -7927,6 +8074,14 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
@@ -8173,6 +8328,11 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/yaml": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
diff --git a/package.json b/package.json
index 12f163a2..9af44955 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
"scripts": {
"build": "turbo build",
"dev": "turbo dev",
+ "migrate": "turbo db:migrate",
"lint": "turbo lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\""
},
diff --git a/packages/database/generated/client/default.d.ts b/packages/database/generated/client/default.d.ts
new file mode 100644
index 00000000..bc20c6c1
--- /dev/null
+++ b/packages/database/generated/client/default.d.ts
@@ -0,0 +1 @@
+export * from "./index"
\ No newline at end of file
diff --git a/packages/database/generated/client/default.js b/packages/database/generated/client/default.js
new file mode 100644
index 00000000..fa52f0cd
--- /dev/null
+++ b/packages/database/generated/client/default.js
@@ -0,0 +1 @@
+module.exports = { ...require('.') }
\ No newline at end of file
diff --git a/packages/database/generated/client/edge.d.ts b/packages/database/generated/client/edge.d.ts
new file mode 100644
index 00000000..274b8fa6
--- /dev/null
+++ b/packages/database/generated/client/edge.d.ts
@@ -0,0 +1 @@
+export * from "./default"
\ No newline at end of file
diff --git a/packages/database/generated/client/edge.js b/packages/database/generated/client/edge.js
new file mode 100644
index 00000000..e48582ec
--- /dev/null
+++ b/packages/database/generated/client/edge.js
@@ -0,0 +1,227 @@
+
+Object.defineProperty(exports, "__esModule", { value: true });
+
+const {
+ PrismaClientKnownRequestError,
+ PrismaClientUnknownRequestError,
+ PrismaClientRustPanicError,
+ PrismaClientInitializationError,
+ PrismaClientValidationError,
+ getPrismaClient,
+ sqltag,
+ empty,
+ join,
+ raw,
+ skip,
+ Decimal,
+ Debug,
+ objectEnumValues,
+ makeStrictEnum,
+ Extensions,
+ warnOnce,
+ defineDmmfProperty,
+ Public,
+ getRuntime
+} = require('./runtime/edge.js')
+
+
+const Prisma = {}
+
+exports.Prisma = Prisma
+exports.$Enums = {}
+
+/**
+ * Prisma Client JS version: 6.2.1
+ * Query Engine version: 4123509d24aa4dede1e864b46351bf2790323b69
+ */
+Prisma.prismaVersion = {
+ client: "6.2.1",
+ engine: "4123509d24aa4dede1e864b46351bf2790323b69"
+}
+
+Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
+Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
+Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
+Prisma.PrismaClientInitializationError = PrismaClientInitializationError
+Prisma.PrismaClientValidationError = PrismaClientValidationError
+Prisma.Decimal = Decimal
+
+/**
+ * Re-export of sql-template-tag
+ */
+Prisma.sql = sqltag
+Prisma.empty = empty
+Prisma.join = join
+Prisma.raw = raw
+Prisma.validator = Public.validator
+
+/**
+* Extensions
+*/
+Prisma.getExtensionContext = Extensions.getExtensionContext
+Prisma.defineExtension = Extensions.defineExtension
+
+/**
+ * Shorthand utilities for JSON filtering
+ */
+Prisma.DbNull = objectEnumValues.instances.DbNull
+Prisma.JsonNull = objectEnumValues.instances.JsonNull
+Prisma.AnyNull = objectEnumValues.instances.AnyNull
+
+Prisma.NullTypes = {
+ DbNull: objectEnumValues.classes.DbNull,
+ JsonNull: objectEnumValues.classes.JsonNull,
+ AnyNull: objectEnumValues.classes.AnyNull
+}
+
+
+
+
+
+/**
+ * Enums
+ */
+exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
+ ReadUncommitted: 'ReadUncommitted',
+ ReadCommitted: 'ReadCommitted',
+ RepeatableRead: 'RepeatableRead',
+ Serializable: 'Serializable'
+});
+
+exports.Prisma.AccountScalarFieldEnum = {
+ id: 'id',
+ compoundId: 'compoundId',
+ userId: 'userId',
+ providerType: 'providerType',
+ providerId: 'providerId',
+ providerAccountId: 'providerAccountId',
+ refreshToken: 'refreshToken',
+ accessToken: 'accessToken',
+ accessTokenExpires: 'accessTokenExpires',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.SessionScalarFieldEnum = {
+ id: 'id',
+ userId: 'userId',
+ expires: 'expires',
+ sessionToken: 'sessionToken',
+ accessToken: 'accessToken',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.UserScalarFieldEnum = {
+ id: 'id',
+ name: 'name',
+ email: 'email',
+ emailVerified: 'emailVerified',
+ image: 'image',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.VerificationRequestScalarFieldEnum = {
+ id: 'id',
+ identifier: 'identifier',
+ token: 'token',
+ expires: 'expires',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.SortOrder = {
+ asc: 'asc',
+ desc: 'desc'
+};
+
+exports.Prisma.QueryMode = {
+ default: 'default',
+ insensitive: 'insensitive'
+};
+
+exports.Prisma.NullsOrder = {
+ first: 'first',
+ last: 'last'
+};
+
+
+exports.Prisma.ModelName = {
+ Account: 'Account',
+ Session: 'Session',
+ User: 'User',
+ VerificationRequest: 'VerificationRequest'
+};
+/**
+ * Create the Client
+ */
+const config = {
+ "generator": {
+ "name": "client",
+ "provider": {
+ "fromEnvVar": null,
+ "value": "prisma-client-js"
+ },
+ "output": {
+ "value": "E:\\Repositories\\var-monorepo\\packages\\database\\generated\\client",
+ "fromEnvVar": null
+ },
+ "config": {
+ "engineType": "library"
+ },
+ "binaryTargets": [
+ {
+ "fromEnvVar": null,
+ "value": "windows",
+ "native": true
+ }
+ ],
+ "previewFeatures": [],
+ "sourceFilePath": "E:\\Repositories\\var-monorepo\\packages\\database\\prisma\\schema.prisma",
+ "isCustomOutput": true
+ },
+ "relativeEnvPaths": {
+ "rootEnvPath": "../../.env",
+ "schemaEnvPath": "../../.env"
+ },
+ "relativePath": "../../prisma",
+ "clientVersion": "6.2.1",
+ "engineVersion": "4123509d24aa4dede1e864b46351bf2790323b69",
+ "datasourceNames": [
+ "db"
+ ],
+ "activeProvider": "postgresql",
+ "postinstall": false,
+ "inlineDatasources": {
+ "db": {
+ "url": {
+ "fromEnvVar": "DATABASE_URL",
+ "value": null
+ }
+ }
+ },
+ "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Account {\n id Int @id @default(autoincrement())\n compoundId String @unique @map(name: \"compound_id\")\n userId Int @map(name: \"user_id\")\n providerType String @map(name: \"provider_type\")\n providerId String @map(name: \"provider_id\")\n providerAccountId String @map(name: \"provider_account_id\")\n refreshToken String? @map(name: \"refresh_token\")\n accessToken String? @map(name: \"access_token\")\n accessTokenExpires DateTime? @map(name: \"access_token_expires\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@index([providerAccountId], name: \"providerAccountId\")\n @@index([providerId], name: \"providerId\")\n @@index([userId], name: \"userId\")\n @@map(name: \"accounts\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(name: \"user_id\")\n expires DateTime\n sessionToken String @unique @map(name: \"session_token\")\n accessToken String @unique @map(name: \"access_token\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"sessions\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n name String?\n email String? @unique\n emailVerified DateTime? @map(name: \"email_verified\")\n image String?\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"users\")\n}\n\nmodel VerificationRequest {\n id Int @id @default(autoincrement())\n identifier String\n token String @unique\n expires DateTime\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"verification_requests\")\n}\n",
+ "inlineSchemaHash": "4afa9d08ee6c5633f129620f90a6ddba1e7901ef2d5539ef66920811ec21996d",
+ "copyEngine": true
+}
+config.dirname = '/'
+
+config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"dbName\":\"accounts\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"compoundId\",\"dbName\":\"compound_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerType\",\"dbName\":\"provider_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerId\",\"dbName\":\"provider_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerAccountId\",\"dbName\":\"provider_account_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refreshToken\",\"dbName\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessTokenExpires\",\"dbName\":\"access_token_expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Session\":{\"dbName\":\"sessions\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessionToken\",\"dbName\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationRequest\":{\"dbName\":\"verification_requests\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
+defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
+config.engineWasm = undefined
+
+config.injectableEdgeEnv = () => ({
+ parsed: {
+ DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
+ }
+})
+
+if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
+ Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
+}
+
+const PrismaClient = getPrismaClient(config)
+exports.PrismaClient = PrismaClient
+Object.assign(exports, Prisma)
+
diff --git a/packages/database/generated/client/index-browser.js b/packages/database/generated/client/index-browser.js
new file mode 100644
index 00000000..54a91af6
--- /dev/null
+++ b/packages/database/generated/client/index-browser.js
@@ -0,0 +1,215 @@
+
+Object.defineProperty(exports, "__esModule", { value: true });
+
+const {
+ Decimal,
+ objectEnumValues,
+ makeStrictEnum,
+ Public,
+ getRuntime,
+ skip
+} = require('./runtime/index-browser.js')
+
+
+const Prisma = {}
+
+exports.Prisma = Prisma
+exports.$Enums = {}
+
+/**
+ * Prisma Client JS version: 6.2.1
+ * Query Engine version: 4123509d24aa4dede1e864b46351bf2790323b69
+ */
+Prisma.prismaVersion = {
+ client: "6.2.1",
+ engine: "4123509d24aa4dede1e864b46351bf2790323b69"
+}
+
+Prisma.PrismaClientKnownRequestError = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)};
+Prisma.PrismaClientUnknownRequestError = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.PrismaClientRustPanicError = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.PrismaClientInitializationError = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.PrismaClientValidationError = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.Decimal = Decimal
+
+/**
+ * Re-export of sql-template-tag
+ */
+Prisma.sql = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.empty = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.join = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.raw = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.validator = Public.validator
+
+/**
+* Extensions
+*/
+Prisma.getExtensionContext = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+Prisma.defineExtension = () => {
+ const runtimeName = getRuntime().prettyName;
+ throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
+In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
+)}
+
+/**
+ * Shorthand utilities for JSON filtering
+ */
+Prisma.DbNull = objectEnumValues.instances.DbNull
+Prisma.JsonNull = objectEnumValues.instances.JsonNull
+Prisma.AnyNull = objectEnumValues.instances.AnyNull
+
+Prisma.NullTypes = {
+ DbNull: objectEnumValues.classes.DbNull,
+ JsonNull: objectEnumValues.classes.JsonNull,
+ AnyNull: objectEnumValues.classes.AnyNull
+}
+
+
+
+/**
+ * Enums
+ */
+
+exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
+ ReadUncommitted: 'ReadUncommitted',
+ ReadCommitted: 'ReadCommitted',
+ RepeatableRead: 'RepeatableRead',
+ Serializable: 'Serializable'
+});
+
+exports.Prisma.AccountScalarFieldEnum = {
+ id: 'id',
+ compoundId: 'compoundId',
+ userId: 'userId',
+ providerType: 'providerType',
+ providerId: 'providerId',
+ providerAccountId: 'providerAccountId',
+ refreshToken: 'refreshToken',
+ accessToken: 'accessToken',
+ accessTokenExpires: 'accessTokenExpires',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.SessionScalarFieldEnum = {
+ id: 'id',
+ userId: 'userId',
+ expires: 'expires',
+ sessionToken: 'sessionToken',
+ accessToken: 'accessToken',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.UserScalarFieldEnum = {
+ id: 'id',
+ name: 'name',
+ email: 'email',
+ emailVerified: 'emailVerified',
+ image: 'image',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.VerificationRequestScalarFieldEnum = {
+ id: 'id',
+ identifier: 'identifier',
+ token: 'token',
+ expires: 'expires',
+ createdAt: 'createdAt',
+ updatedAt: 'updatedAt'
+};
+
+exports.Prisma.SortOrder = {
+ asc: 'asc',
+ desc: 'desc'
+};
+
+exports.Prisma.QueryMode = {
+ default: 'default',
+ insensitive: 'insensitive'
+};
+
+exports.Prisma.NullsOrder = {
+ first: 'first',
+ last: 'last'
+};
+
+
+exports.Prisma.ModelName = {
+ Account: 'Account',
+ Session: 'Session',
+ User: 'User',
+ VerificationRequest: 'VerificationRequest'
+};
+
+/**
+ * This is a stub Prisma Client that will error at runtime if called.
+ */
+class PrismaClient {
+ constructor() {
+ return new Proxy(this, {
+ get(target, prop) {
+ let message
+ const runtime = getRuntime()
+ if (runtime.isEdge) {
+ message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either:
+- Use Prisma Accelerate: https://pris.ly/d/accelerate
+- Use Driver Adapters: https://pris.ly/d/driver-adapters
+`;
+ } else {
+ message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).'
+ }
+
+ message += `
+If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report`
+
+ throw new Error(message)
+ }
+ })
+ }
+}
+
+exports.PrismaClient = PrismaClient
+
+Object.assign(exports, Prisma)
diff --git a/packages/database/generated/client/index.d.ts b/packages/database/generated/client/index.d.ts
new file mode 100644
index 00000000..c24868b0
--- /dev/null
+++ b/packages/database/generated/client/index.d.ts
@@ -0,0 +1,6590 @@
+
+/**
+ * Client
+**/
+
+import * as runtime from './runtime/library.js';
+import $Types = runtime.Types // general types
+import $Public = runtime.Types.Public
+import $Utils = runtime.Types.Utils
+import $Extensions = runtime.Types.Extensions
+import $Result = runtime.Types.Result
+
+export type PrismaPromise
= $Public.PrismaPromise
+
+
+/**
+ * Model Account
+ *
+ */
+export type Account = $Result.DefaultSelection
+/**
+ * Model Session
+ *
+ */
+export type Session = $Result.DefaultSelection
+/**
+ * Model User
+ *
+ */
+export type User = $Result.DefaultSelection
+/**
+ * Model VerificationRequest
+ *
+ */
+export type VerificationRequest = $Result.DefaultSelection
+
+/**
+ * ## Prisma Client ʲˢ
+ *
+ * Type-safe database client for TypeScript & Node.js
+ * @example
+ * ```
+ * const prisma = new PrismaClient()
+ * // Fetch zero or more Accounts
+ * const accounts = await prisma.account.findMany()
+ * ```
+ *
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
+ */
+export class PrismaClient<
+ ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
+ U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never,
+ ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs
+> {
+ [K: symbol]: { types: Prisma.TypeMap['other'] }
+
+ /**
+ * ## Prisma Client ʲˢ
+ *
+ * Type-safe database client for TypeScript & Node.js
+ * @example
+ * ```
+ * const prisma = new PrismaClient()
+ * // Fetch zero or more Accounts
+ * const accounts = await prisma.account.findMany()
+ * ```
+ *
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
+ */
+
+ constructor(optionsArg ?: Prisma.Subset);
+ $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): void;
+
+ /**
+ * Connect with the database
+ */
+ $connect(): $Utils.JsPromise;
+
+ /**
+ * Disconnect from the database
+ */
+ $disconnect(): $Utils.JsPromise;
+
+ /**
+ * Add a middleware
+ * @deprecated since 4.16.0. For new code, prefer client extensions instead.
+ * @see https://pris.ly/d/extensions
+ */
+ $use(cb: Prisma.Middleware): void
+
+/**
+ * Executes a prepared raw query and returns the number of affected rows.
+ * @example
+ * ```
+ * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
+ * ```
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
+ */
+ $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise;
+
+ /**
+ * Executes a raw query and returns the number of affected rows.
+ * Susceptible to SQL injections, see documentation.
+ * @example
+ * ```
+ * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
+ * ```
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
+ */
+ $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise;
+
+ /**
+ * Performs a prepared raw query and returns the `SELECT` data.
+ * @example
+ * ```
+ * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
+ * ```
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
+ */
+ $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise;
+
+ /**
+ * Performs a raw query and returns the `SELECT` data.
+ * Susceptible to SQL injections, see documentation.
+ * @example
+ * ```
+ * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
+ * ```
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
+ */
+ $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise;
+
+
+ /**
+ * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
+ * @example
+ * ```
+ * const [george, bob, alice] = await prisma.$transaction([
+ * prisma.user.create({ data: { name: 'George' } }),
+ * prisma.user.create({ data: { name: 'Bob' } }),
+ * prisma.user.create({ data: { name: 'Alice' } }),
+ * ])
+ * ```
+ *
+ * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
+ */
+ $transaction[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise>
+
+ $transaction(fn: (prisma: Omit) => $Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise
+
+
+ $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, $Utils.Call, ClientOptions>
+
+ /**
+ * `prisma.account`: Exposes CRUD operations for the **Account** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more Accounts
+ * const accounts = await prisma.account.findMany()
+ * ```
+ */
+ get account(): Prisma.AccountDelegate;
+
+ /**
+ * `prisma.session`: Exposes CRUD operations for the **Session** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more Sessions
+ * const sessions = await prisma.session.findMany()
+ * ```
+ */
+ get session(): Prisma.SessionDelegate;
+
+ /**
+ * `prisma.user`: Exposes CRUD operations for the **User** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more Users
+ * const users = await prisma.user.findMany()
+ * ```
+ */
+ get user(): Prisma.UserDelegate;
+
+ /**
+ * `prisma.verificationRequest`: Exposes CRUD operations for the **VerificationRequest** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more VerificationRequests
+ * const verificationRequests = await prisma.verificationRequest.findMany()
+ * ```
+ */
+ get verificationRequest(): Prisma.VerificationRequestDelegate;
+}
+
+export namespace Prisma {
+ export import DMMF = runtime.DMMF
+
+ export type PrismaPromise = $Public.PrismaPromise
+
+ /**
+ * Validator
+ */
+ export import validator = runtime.Public.validator
+
+ /**
+ * Prisma Errors
+ */
+ export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
+ export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
+ export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
+ export import PrismaClientInitializationError = runtime.PrismaClientInitializationError
+ export import PrismaClientValidationError = runtime.PrismaClientValidationError
+
+ /**
+ * Re-export of sql-template-tag
+ */
+ export import sql = runtime.sqltag
+ export import empty = runtime.empty
+ export import join = runtime.join
+ export import raw = runtime.raw
+ export import Sql = runtime.Sql
+
+
+
+ /**
+ * Decimal.js
+ */
+ export import Decimal = runtime.Decimal
+
+ export type DecimalJsLike = runtime.DecimalJsLike
+
+ /**
+ * Metrics
+ */
+ export type Metrics = runtime.Metrics
+ export type Metric = runtime.Metric
+ export type MetricHistogram = runtime.MetricHistogram
+ export type MetricHistogramBucket = runtime.MetricHistogramBucket
+
+ /**
+ * Extensions
+ */
+ export import Extension = $Extensions.UserArgs
+ export import getExtensionContext = runtime.Extensions.getExtensionContext
+ export import Args = $Public.Args
+ export import Payload = $Public.Payload
+ export import Result = $Public.Result
+ export import Exact = $Public.Exact
+
+ /**
+ * Prisma Client JS version: 6.2.1
+ * Query Engine version: 4123509d24aa4dede1e864b46351bf2790323b69
+ */
+ export type PrismaVersion = {
+ client: string
+ }
+
+ export const prismaVersion: PrismaVersion
+
+ /**
+ * Utility Types
+ */
+
+
+ export import JsonObject = runtime.JsonObject
+ export import JsonArray = runtime.JsonArray
+ export import JsonValue = runtime.JsonValue
+ export import InputJsonObject = runtime.InputJsonObject
+ export import InputJsonArray = runtime.InputJsonArray
+ export import InputJsonValue = runtime.InputJsonValue
+
+ /**
+ * Types of the values used to represent different kinds of `null` values when working with JSON fields.
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ namespace NullTypes {
+ /**
+ * Type of `Prisma.DbNull`.
+ *
+ * You cannot use other instances of this class. Please use the `Prisma.DbNull` value.
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ class DbNull {
+ private DbNull: never
+ private constructor()
+ }
+
+ /**
+ * Type of `Prisma.JsonNull`.
+ *
+ * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value.
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ class JsonNull {
+ private JsonNull: never
+ private constructor()
+ }
+
+ /**
+ * Type of `Prisma.AnyNull`.
+ *
+ * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value.
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ class AnyNull {
+ private AnyNull: never
+ private constructor()
+ }
+ }
+
+ /**
+ * Helper for filtering JSON entries that have `null` on the database (empty on the db)
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ export const DbNull: NullTypes.DbNull
+
+ /**
+ * Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ export const JsonNull: NullTypes.JsonNull
+
+ /**
+ * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
+ *
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
+ */
+ export const AnyNull: NullTypes.AnyNull
+
+ type SelectAndInclude = {
+ select: any
+ include: any
+ }
+
+ type SelectAndOmit = {
+ select: any
+ omit: any
+ }
+
+ /**
+ * Get the type of the value, that the Promise holds.
+ */
+ export type PromiseType> = T extends PromiseLike ? U : T;
+
+ /**
+ * Get the return type of a function which returns a Promise.
+ */
+ export type PromiseReturnType $Utils.JsPromise> = PromiseType>
+
+ /**
+ * From T, pick a set of properties whose keys are in the union K
+ */
+ type Prisma__Pick = {
+ [P in K]: T[P];
+ };
+
+
+ export type Enumerable = T | Array;
+
+ export type RequiredKeys = {
+ [K in keyof T]-?: {} extends Prisma__Pick ? never : K
+ }[keyof T]
+
+ export type TruthyKeys = keyof {
+ [K in keyof T as T[K] extends false | undefined | null ? never : K]: K
+ }
+
+ export type TrueKeys = TruthyKeys>>
+
+ /**
+ * Subset
+ * @desc From `T` pick properties that exist in `U`. Simple version of Intersection
+ */
+ export type Subset = {
+ [key in keyof T]: key extends keyof U ? T[key] : never;
+ };
+
+ /**
+ * SelectSubset
+ * @desc From `T` pick properties that exist in `U`. Simple version of Intersection.
+ * Additionally, it validates, if both select and include are present. If the case, it errors.
+ */
+ export type SelectSubset = {
+ [key in keyof T]: key extends keyof U ? T[key] : never
+ } &
+ (T extends SelectAndInclude
+ ? 'Please either choose `select` or `include`.'
+ : T extends SelectAndOmit
+ ? 'Please either choose `select` or `omit`.'
+ : {})
+
+ /**
+ * Subset + Intersection
+ * @desc From `T` pick properties that exist in `U` and intersect `K`
+ */
+ export type SubsetIntersection = {
+ [key in keyof T]: key extends keyof U ? T[key] : never
+ } &
+ K
+
+ type Without = { [P in Exclude]?: never };
+
+ /**
+ * XOR is needed to have a real mutually exclusive union type
+ * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types
+ */
+ type XOR =
+ T extends object ?
+ U extends object ?
+ (Without & U) | (Without & T)
+ : U : T
+
+
+ /**
+ * Is T a Record?
+ */
+ type IsObject = T extends Array
+ ? False
+ : T extends Date
+ ? False
+ : T extends Uint8Array
+ ? False
+ : T extends BigInt
+ ? False
+ : T extends object
+ ? True
+ : False
+
+
+ /**
+ * If it's T[], return T
+ */
+ export type UnEnumerate = T extends Array ? U : T
+
+ /**
+ * From ts-toolbelt
+ */
+
+ type __Either = Omit &
+ {
+ // Merge all but K
+ [P in K]: Prisma__Pick // With K possibilities
+ }[K]
+
+ type EitherStrict = Strict<__Either>
+
+ type EitherLoose = ComputeRaw<__Either>
+
+ type _Either<
+ O extends object,
+ K extends Key,
+ strict extends Boolean
+ > = {
+ 1: EitherStrict
+ 0: EitherLoose
+ }[strict]
+
+ type Either<
+ O extends object,
+ K extends Key,
+ strict extends Boolean = 1
+ > = O extends unknown ? _Either : never
+
+ export type Union = any
+
+ type PatchUndefined = {
+ [K in keyof O]: O[K] extends undefined ? At : O[K]
+ } & {}
+
+ /** Helper Types for "Merge" **/
+ export type IntersectOf = (
+ U extends unknown ? (k: U) => void : never
+ ) extends (k: infer I) => void
+ ? I
+ : never
+
+ export type Overwrite = {
+ [K in keyof O]: K extends keyof O1 ? O1[K] : O[K];
+ } & {};
+
+ type _Merge = IntersectOf;
+ }>>;
+
+ type Key = string | number | symbol;
+ type AtBasic = K extends keyof O ? O[K] : never;
+ type AtStrict = O[K & keyof O];
+ type AtLoose = O extends unknown ? AtStrict : never;
+ export type At = {
+ 1: AtStrict;
+ 0: AtLoose;
+ }[strict];
+
+ export type ComputeRaw = A extends Function ? A : {
+ [K in keyof A]: A[K];
+ } & {};
+
+ export type OptionalFlat = {
+ [K in keyof O]?: O[K];
+ } & {};
+
+ type _Record = {
+ [P in K]: T;
+ };
+
+ // cause typescript not to expand types and preserve names
+ type NoExpand = T extends unknown ? T : never;
+
+ // this type assumes the passed object is entirely optional
+ type AtLeast = NoExpand<
+ O extends unknown
+ ? | (K extends keyof O ? { [P in K]: O[P] } & O : O)
+ | {[P in keyof O as P extends K ? K : never]-?: O[P]} & O
+ : never>;
+
+ type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never;
+
+ export type Strict = ComputeRaw<_Strict>;
+ /** End Helper Types for "Merge" **/
+
+ export type Merge = ComputeRaw<_Merge>>;
+
+ /**
+ A [[Boolean]]
+ */
+ export type Boolean = True | False
+
+ // /**
+ // 1
+ // */
+ export type True = 1
+
+ /**
+ 0
+ */
+ export type False = 0
+
+ export type Not = {
+ 0: 1
+ 1: 0
+ }[B]
+
+ export type Extends = [A1] extends [never]
+ ? 0 // anything `never` is false
+ : A1 extends A2
+ ? 1
+ : 0
+
+ export type Has = Not<
+ Extends, U1>
+ >
+
+ export type Or = {
+ 0: {
+ 0: 0
+ 1: 1
+ }
+ 1: {
+ 0: 1
+ 1: 1
+ }
+ }[B1][B2]
+
+ export type Keys = U extends unknown ? keyof U : never
+
+ type Cast = A extends B ? A : B;
+
+ export const type: unique symbol;
+
+
+
+ /**
+ * Used by group by
+ */
+
+ export type GetScalarType = O extends object ? {
+ [P in keyof T]: P extends keyof O
+ ? O[P]
+ : never
+ } : never
+
+ type FieldPaths<
+ T,
+ U = Omit
+ > = IsObject extends True ? U : T
+
+ type GetHavingFields = {
+ [K in keyof T]: Or<
+ Or, Extends<'AND', K>>,
+ Extends<'NOT', K>
+ > extends True
+ ? // infer is only needed to not hit TS limit
+ // based on the brilliant idea of Pierre-Antoine Mills
+ // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437
+ T[K] extends infer TK
+ ? GetHavingFields extends object ? Merge> : never>
+ : never
+ : {} extends FieldPaths
+ ? never
+ : K
+ }[keyof T]
+
+ /**
+ * Convert tuple to union
+ */
+ type _TupleToUnion = T extends (infer E)[] ? E : never
+ type TupleToUnion = _TupleToUnion
+ type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T
+
+ /**
+ * Like `Pick`, but additionally can also accept an array of keys
+ */
+ type PickEnumerable | keyof T> = Prisma__Pick>
+
+ /**
+ * Exclude all keys with underscores
+ */
+ type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T
+
+
+ export type FieldRef = runtime.FieldRef
+
+ type FieldRefInputType = Model extends never ? never : FieldRef
+
+
+ export const ModelName: {
+ Account: 'Account',
+ Session: 'Session',
+ User: 'User',
+ VerificationRequest: 'VerificationRequest'
+ };
+
+ export type ModelName = (typeof ModelName)[keyof typeof ModelName]
+
+
+ export type Datasources = {
+ db?: Datasource
+ }
+
+ interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs, clientOptions: PrismaClientOptions }, $Utils.Record> {
+ returns: Prisma.TypeMap
+ }
+
+ export type TypeMap = {
+ meta: {
+ modelProps: "account" | "session" | "user" | "verificationRequest"
+ txIsolationLevel: Prisma.TransactionIsolationLevel
+ }
+ model: {
+ Account: {
+ payload: Prisma.$AccountPayload
+ fields: Prisma.AccountFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.AccountFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.AccountFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.AccountFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.AccountFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.AccountFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.AccountCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.AccountCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.AccountCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.AccountDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.AccountUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.AccountDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.AccountUpdateManyArgs
+ result: BatchPayload
+ }
+ updateManyAndReturn: {
+ args: Prisma.AccountUpdateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ upsert: {
+ args: Prisma.AccountUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.AccountAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.AccountGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.AccountCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
+ Session: {
+ payload: Prisma.$SessionPayload
+ fields: Prisma.SessionFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.SessionFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.SessionFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.SessionFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.SessionFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.SessionFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.SessionCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.SessionCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.SessionCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.SessionDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.SessionUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.SessionDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.SessionUpdateManyArgs
+ result: BatchPayload
+ }
+ updateManyAndReturn: {
+ args: Prisma.SessionUpdateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ upsert: {
+ args: Prisma.SessionUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.SessionAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.SessionGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.SessionCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
+ User: {
+ payload: Prisma.$UserPayload
+ fields: Prisma.UserFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.UserFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.UserFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.UserFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.UserFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.UserFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.UserCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.UserCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.UserCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.UserDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.UserUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.UserDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.UserUpdateManyArgs
+ result: BatchPayload
+ }
+ updateManyAndReturn: {
+ args: Prisma.UserUpdateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ upsert: {
+ args: Prisma.UserUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.UserAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.UserGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.UserCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
+ VerificationRequest: {
+ payload: Prisma.$VerificationRequestPayload
+ fields: Prisma.VerificationRequestFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.VerificationRequestFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.VerificationRequestFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.VerificationRequestFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.VerificationRequestFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.VerificationRequestFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.VerificationRequestCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.VerificationRequestCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.VerificationRequestCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.VerificationRequestDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.VerificationRequestUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.VerificationRequestDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.VerificationRequestUpdateManyArgs
+ result: BatchPayload
+ }
+ updateManyAndReturn: {
+ args: Prisma.VerificationRequestUpdateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ upsert: {
+ args: Prisma.VerificationRequestUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.VerificationRequestAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.VerificationRequestGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.VerificationRequestCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
+ }
+ } & {
+ other: {
+ payload: any
+ operations: {
+ $executeRaw: {
+ args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
+ result: any
+ }
+ $executeRawUnsafe: {
+ args: [query: string, ...values: any[]],
+ result: any
+ }
+ $queryRaw: {
+ args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
+ result: any
+ }
+ $queryRawUnsafe: {
+ args: [query: string, ...values: any[]],
+ result: any
+ }
+ }
+ }
+ }
+ export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs>
+ export type DefaultPrismaClient = PrismaClient
+ export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
+ export interface PrismaClientOptions {
+ /**
+ * Overwrites the datasource url from your schema.prisma file
+ */
+ datasources?: Datasources
+ /**
+ * Overwrites the datasource url from your schema.prisma file
+ */
+ datasourceUrl?: string
+ /**
+ * @default "colorless"
+ */
+ errorFormat?: ErrorFormat
+ /**
+ * @example
+ * ```
+ * // Defaults to stdout
+ * log: ['query', 'info', 'warn', 'error']
+ *
+ * // Emit as events
+ * log: [
+ * { emit: 'stdout', level: 'query' },
+ * { emit: 'stdout', level: 'info' },
+ * { emit: 'stdout', level: 'warn' }
+ * { emit: 'stdout', level: 'error' }
+ * ]
+ * ```
+ * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option).
+ */
+ log?: (LogLevel | LogDefinition)[]
+ /**
+ * The default values for transactionOptions
+ * maxWait ?= 2000
+ * timeout ?= 5000
+ */
+ transactionOptions?: {
+ maxWait?: number
+ timeout?: number
+ isolationLevel?: Prisma.TransactionIsolationLevel
+ }
+ /**
+ * Global configuration for omitting model fields by default.
+ *
+ * @example
+ * ```
+ * const prisma = new PrismaClient({
+ * omit: {
+ * user: {
+ * password: true
+ * }
+ * }
+ * })
+ * ```
+ */
+ omit?: Prisma.GlobalOmitConfig
+ }
+ export type GlobalOmitConfig = {
+ account?: AccountOmit
+ session?: SessionOmit
+ user?: UserOmit
+ verificationRequest?: VerificationRequestOmit
+ }
+
+ /* Types for Logging */
+ export type LogLevel = 'info' | 'query' | 'warn' | 'error'
+ export type LogDefinition = {
+ level: LogLevel
+ emit: 'stdout' | 'event'
+ }
+
+ export type GetLogType