{
- return this.prisma.post.delete(args);
+ async aggregate(args: Prisma.UserAggregateArgs) {
+ return this.collection.aggregate(args);
}
}
```
-Your `UsersRepository` and `PostsRepository` currently wrap the CRUD queries that are available in Prisma Client.
-In a real world application, the service would also be the place to add business logic to your application.
-For example, you could have a method called `updatePassword` inside the `UsersRepository` that would be responsible for updating the password of a user.
+It will be the same for all the models that you declare in the `schema.prisma`!
+
+### Ts.ED decorators usage in Prisma
+
+The generator parse prisma command to find extra Ts.ED decorators. You can use any `@tsed/schema` decorators from Ts.ED by
+adding a comment with the following format `/// @TsED.Decorator`. See example above:
+
+```groovy
+model User {
+ /// @TsED.Groups("!creation")
+ /// Comment
+ id Int @id @default(autoincrement())
+ createdAt DateTime @default(now())
+ /// @TsED.Email()
+ /// @TsED.Description("User email. This email must be unique!")
+ email String @unique
+}
+```
+
+Output:
+
+```typescript
+export class UserModel implements User {
+ @Property(Number)
+ @Integer()
+ @Required()
+ @Groups("!creation")
+ id: number;
+
+ @Property(String)
+ @Required()
+ @Email()
+ @Description("User email. This email must be unique!")
+ email: string;
+}
+```
## Create controllers
-Finally, you'll use the services you created in the previous sections to implement the different routes of your app.
+Finally, you'll use the repository you generated in the previous sections to implement the different routes of your app.
Now we have to create controllers to expose your business to our consumers. So create the following controllers in `src/controllers` directory:
@@ -397,9 +550,7 @@ Now we have to create controllers to expose your business to our consumers. So c
import {BodyParams, Controller, Get, Post} from "@tsed/common";
import {Inject} from "@tsed/di";
import {Groups, Returns, Summary} from "@tsed/schema";
-import {UserModel, UsersRepository} from "@tsedio/prisma";
-
-// import {UsersRepository} from "../services/UsersRepository";
+import {UserModel, UsersRepository} from "@tsed/prisma";
@Controller("/users")
export class UsersController {
@@ -430,9 +581,7 @@ import {BodyParams, Controller, Delete, Get, PathParams, Post, Put} from "@tsed/
import {Inject} from "@tsed/di";
import {Description, Groups, Name, Returns, Summary} from "@tsed/schema";
import {NotFound} from "@tsed/exceptions";
-import {PostModel, PostsRepository} from "@tsedio/prisma";
-
-// OR import {PostsRepository} from "../../services/PostsRepository";
+import {PostModel, PostsRepository} from "@tsed/prisma";
@Controller("/posts")
@Name("Posts")
@@ -512,9 +661,8 @@ export class PostsController {
```typescript
import {Controller, Get} from "@tsed/common";
import {Inject} from "@tsed/di";
-import {PostModel, PostsRepository} from "@tsedio/prisma";
+import {PostModel, PostsRepository} from "@tsed/prisma";
import {Returns, Summary} from "@tsed/schema";
-// import {PostsRepository} from "../services/PostsRepository";
@Controller("/feeds")
export class FeedsController {
@@ -537,7 +685,22 @@ export class FeedsController {
Now start the server and open the Swagger documentation to test your REST API!
+## Inject PrismaService
+
+`@tsed/prisma` package generate also the `PrismaService`. You can inject this service as following:
+
+```typescript
+import {Injectable, Inject} from "@tsed/di";
+import {PrismaService} from "@tsed/prisma";
+
+@Injectable()
+export class MyService {
+ @Inject()
+ protected prisma: PrismaService;
+}
+```
+
### Summary
In this tutorial, you learned how to use Prisma along with Ts.ED to implement a REST API.
-The controller implementing the routes of the API is calling a `PrismaService` which in turn uses Prisma Client to send queries to a database to fulfill the data needed by incoming requests.
+The controller implementing the routes of the API is calling our Repositories generated with the Prisma Client and uses the generated PrismaService to interact with the database.
diff --git a/packages/orm/prisma/.gitignore b/packages/orm/prisma/.gitignore
new file mode 100644
index 00000000000..43001c44500
--- /dev/null
+++ b/packages/orm/prisma/.gitignore
@@ -0,0 +1 @@
+test/prisma/generated
\ No newline at end of file
diff --git a/packages/orm/prisma/.npmignore b/packages/orm/prisma/.npmignore
new file mode 100644
index 00000000000..c960ffbd3e9
--- /dev/null
+++ b/packages/orm/prisma/.npmignore
@@ -0,0 +1,5 @@
+src
+test
+tsconfig.compile.json
+tsconfig.json
+jest.config.js
\ No newline at end of file
diff --git a/packages/orm/prisma/jest.config.js b/packages/orm/prisma/jest.config.js
new file mode 100644
index 00000000000..817a5efb7b2
--- /dev/null
+++ b/packages/orm/prisma/jest.config.js
@@ -0,0 +1,16 @@
+// For a detailed explanation regarding each configuration property, visit:
+// https://jestjs.io/docs/en/configuration.html
+// For a detailed explanation regarding each configuration property, visit:
+// https://jestjs.io/docs/en/configuration.html
+
+module.exports = {
+ ...require("@tsed/jest-config")(__dirname, "prisma"),
+ coverageThreshold: {
+ global: {
+ branches: 87.22,
+ functions: 92.42,
+ lines: 96.25,
+ statements: 92.42
+ }
+ }
+};
diff --git a/packages/orm/prisma/package.json b/packages/orm/prisma/package.json
new file mode 100644
index 00000000000..111e1deb386
--- /dev/null
+++ b/packages/orm/prisma/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "@tsed/prisma",
+ "version": "6.103.3",
+ "description": "Generate Ts.ED JsonSchema based on Prisma models",
+ "source": "./src/index.ts",
+ "main": "./lib/cjs/index.js",
+ "module": "./lib/esm/index.js",
+ "typings": "./lib/types/index.d.ts",
+ "exports": {
+ "types": "./lib/types/index.d.ts",
+ "import": "./lib/esm/index.js",
+ "require": "./lib/cjs/index.js",
+ "default": "./lib/esm/index.js"
+ },
+ "bin": {
+ "tsed-prisma": "lib/cjs/generator.js"
+ },
+ "scripts": {
+ "build": "rm -rf lib && yarn run build:esm && yarn run build:cjs && yarn run copy",
+ "build:cjs": "tsc --build tsconfig.compile.json",
+ "build:esm": "tsc --build tsconfig.compile.esm.json",
+ "test": "cross-env NODE_ENV=test yarn jest",
+ "copy": "cp scripts/backup-index.cjs.js lib/cjs/index.js && cp scripts/backup-index.esm.js lib/esm/index.js && cp scripts/backup-index.d.ts lib/types/index.d.ts",
+ "prepare": "cp scripts/backup-index.cjs.js lib/cjs/index.js && cp scripts/backup-index.esm.js lib/esm/index.js && cp scripts/backup-index.d.ts lib/types/index.d.ts",
+ "generate": "cd test && prisma -v && prisma generate"
+ },
+ "private": false,
+ "dependencies": {
+ "@prisma/generator-helper": "^3.10.0",
+ "@prisma/sdk": "^3.10.0",
+ "change-case": "^4.1.2",
+ "pluralize": "^8.0.0",
+ "ts-morph": "^12.0.0",
+ "tslib": "^2.3.1"
+ },
+ "devDependencies": {
+ "@prisma/client": "^3.10.0",
+ "@tsed/core": "6.103.3",
+ "@tsed/di": "6.103.3",
+ "@tsed/json-mapper": "6.103.3",
+ "@tsed/schema": "6.103.3",
+ "@types/change-case": "^2.3.1",
+ "@types/pluralize": "0.0.29",
+ "prisma": "^3.10.0"
+ },
+ "peerDependencies": {
+ "@prisma/client": "^2 || ^3",
+ "@tsed/core": "^6.103.3",
+ "@tsed/di": "^6.103.3",
+ "@tsed/json-mapper": "^6.103.3",
+ "@tsed/schema": "^6.103.3"
+ },
+ "keywords": [
+ "TypeScript",
+ "decorators",
+ "models",
+ "json schema",
+ "JsonSchema",
+ "class",
+ "classes",
+ "tsed",
+ "prisma"
+ ]
+}
diff --git a/packages/orm/prisma/readme.md b/packages/orm/prisma/readme.md
new file mode 100644
index 00000000000..6731bea0533
--- /dev/null
+++ b/packages/orm/prisma/readme.md
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
Ts.ED Prisma
+
+[](https://github.com/tsedio/tsed/actions/workflows/build.yml)
+[](https://github.com/semantic-release/semantic-release)
+[](https://github.com/prettier/prettier)
+[](https://opencollective.com/tsed)
+
+
+
+
+
+
+
+## Installation
+
+```sh
+npm i -D prisma
+npm i @tsed/prisma @prisma/client
+```
+
+## Configuration
+
+After installation, you need to update your `schema.prisma` file and then add a new generator section below the `client` one:
+
+```prisma
+generator client {
+ // ...
+}
+
+generator tsed {
+ provider = "@tsed/prisma"
+}
+```
+
+Then after running `npx prisma generate`, this will emit the generated Ts.ED classes and Enums to `@tsed/prisma/.schema` in `node_modules` folder.
+
+You can also configure the default output folder, e.g.:
+
+```prisma
+generator tsed {
+ provider = "@tsed/prisma"
+ output = "../prisma/generated/tsed"
+}
+```
+
+By default, when the output path contains `node_modules`, the generated code is transpiled - containing `*.js` and `*.d.ts` files that are ready to use (import) in your code.
+However, if you explicitly choose an other folder in `output` config, the generated code will be emitted as raw TS files which you can use and import as your other source code files.
+
+You can overwrite that by explicitly setting `emitTranspiledCode` config option:
+
+```prisma
+generator tsed {
+ provider = "@tsed/prisma"
+ output = "../prisma/generated/tsed"
+ emitTranspiledCode = true
+}
+```
+
+## Usage
+
+Given that you have this part of datamodel definitions:
+
+```groovy
+model User {
+ /// @TsED.Groups("!creation")
+ /// Comment
+ id Int @id @default(autoincrement())
+ createdAt DateTime @default(now())
+ /// @TsED.Email()
+ /// @TsED.Description("User email. This email must be unique!")
+ email String @unique
+ weight Float?
+ is18 Boolean?
+ name String?
+ successorId Int?
+ successor User? @relation("BlogOwnerHistory", fields: [successorId], references: [id])
+ predecessor User? @relation("BlogOwnerHistory")
+ role Role @default(USER)
+ posts Post[]
+ keywords String[]
+ biography Json
+
+ /// @TsED.Ignore(ctx.endpoint === true)
+ ignored String
+}
+
+model Post {
+ id Int @id @default(autoincrement())
+ user User? @relation(fields: [userId], references: [id])
+ userId Int?
+}
+
+enum Role {
+ USER
+ ADMIN
+}
+```
+
+it will generate the following UserModel:
+
+```typescript
+import {Integer, Required, Property, Groups, Format, Email, Description, Allow, Enum, CollectionOf} from "@tsed/schema";
+import {User} from "../client";
+import {Role} from "../enums";
+import {PostModel} from "./PostModel";
+
+export class UserModel implements User {
+ @Property(Number)
+ @Integer()
+ @Required()
+ @Groups("!creation")
+ id: number;
+
+ @Property(Date)
+ @Format("date-time")
+ @Required()
+ createdAt: Date;
+
+ @Property(String)
+ @Required()
+ @Email()
+ @Description("User email. This email must be unique!")
+ email: string;
+
+ @Property(Number)
+ @Allow(null)
+ weight: number | null;
+
+ @Property(Boolean)
+ @Allow(null)
+ is18: boolean | null;
+
+ @Property(String)
+ @Allow(null)
+ name: string | null;
+
+ @Property(Number)
+ @Integer()
+ @Allow(null)
+ successorId: number | null;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ predecessor: UserModel | null;
+
+ @Required()
+ @Enum(Role)
+ role: Role;
+
+ @CollectionOf(() => PostModel)
+ @Required()
+ posts: PostModel[];
+
+ @CollectionOf(String)
+ @Required()
+ keywords: string[];
+
+ @Property(Object)
+ @Required()
+ biography: any;
+
+ @Ignore((value: any, ctx: any) => ctx.endpoint === true)
+ ignored: string;
+}
+```
+
+And, the following repository:
+
+```typescript
+import {isArray} from "@tsed/core";
+import {deserialize} from "@tsed/json-mapper";
+import {Injectable, Inject} from "@tsed/di";
+import {PrismaService} from "../services/PrismaService";
+import {Prisma, User} from "../client";
+import {UserModel} from "../models";
+
+@Injectable()
+export class UsersRepository {
+ @Inject()
+ protected prisma: PrismaService;
+
+ get collection() {
+ return this.prisma.user;
+ }
+
+ get groupBy() {
+ return this.collection.groupBy.bind(this.collection);
+ }
+
+ protected deserialize(obj: null | User | User[]): T {
+ return deserialize(obj, {type: UserModel, collectionType: isArray(obj) ? Array : undefined});
+ }
+
+ async findUnique(args: Prisma.UserFindUniqueArgs): Promise {
+ const obj = await this.collection.findUnique(args);
+ return this.deserialize(obj);
+ }
+
+ async findFirst(args: Prisma.UserFindFirstArgs): Promise {
+ const obj = await this.collection.findFirst(args);
+ return this.deserialize(obj);
+ }
+
+ async findMany(args?: Prisma.UserFindManyArgs): Promise {
+ const obj = await this.collection.findMany(args);
+ return this.deserialize(obj);
+ }
+
+ async create(args: Prisma.UserCreateArgs): Promise {
+ const obj = await this.collection.create(args);
+ return this.deserialize(obj);
+ }
+
+ async update(args: Prisma.UserUpdateArgs): Promise {
+ const obj = await this.collection.update(args);
+ return this.deserialize(obj);
+ }
+
+ async upsert(args: Prisma.UserUpsertArgs): Promise {
+ const obj = await this.collection.upsert(args);
+ return this.deserialize(obj);
+ }
+
+ async delete(args: Prisma.UserDeleteArgs): Promise {
+ const obj = await this.collection.delete(args);
+ return this.deserialize(obj);
+ }
+
+ async deleteMany(args: Prisma.UserDeleteManyArgs) {
+ return this.collection.deleteMany(args);
+ }
+
+ async updateMany(args: Prisma.UserUpdateManyArgs) {
+ return this.collection.updateMany(args);
+ }
+
+ async aggregate(args: Prisma.UserAggregateArgs) {
+ return this.collection.aggregate(args);
+ }
+}
+```
+
+## Add Ts.ED decorator
+
+The generator parse prisma command to find extra Ts.ED decorators. You can use any `@tsed/schema` decorators from Ts.ED by
+adding a comment with the following format `/// @TsED.Decorator`. See example above:
+
+```prisma
+model User {
+ /// @TsED.Groups("!creation")
+ /// Comment
+ id Int @id @default(autoincrement())
+ createdAt DateTime @default(now())
+ /// @TsED.Email()
+ /// @TsED.Description("User email. This email must be unique!")
+ email String @unique
+ /// @TsED.Ignore(ctx.endpoint === true)
+ ignored String
+}
+```
+
+Output:
+
+```typescript
+export class UserModel implements User {
+ @Property(Number)
+ @Integer()
+ @Required()
+ @Groups("!creation")
+ id: number;
+
+ @Property(String)
+ @Required()
+ @Email()
+ @Description("User email. This email must be unique!")
+ email: string;
+
+ @TsED.Ignore((value: any, ctx: any) => ctx.endpoint === true)
+ ignored: string;
+}
+```
+
+## Contributors
+
+Please read [contributing guidelines here](https://tsed.io/CONTRIBUTING.html)
+
+
+
+## Backers
+
+Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/tsed#backer)]
+
+
+
+## Sponsors
+
+Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/tsed#sponsor)]
+
+## License
+
+The MIT License (MIT)
+
+Copyright (c) 2016 - 2021 Romain Lenzotti
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/orm/prisma/scripts/backup-index.cjs.js b/packages/orm/prisma/scripts/backup-index.cjs.js
new file mode 100644
index 00000000000..5b25a20da5c
--- /dev/null
+++ b/packages/orm/prisma/scripts/backup-index.cjs.js
@@ -0,0 +1,9 @@
+const tsed = require("../.schema");
+const path = require("path");
+
+module.exports = tsed;
+
+/**
+ * Annotation for ncc/zeit
+ */
+path.join(__dirname, "../.schema");
diff --git a/packages/orm/prisma/scripts/backup-index.d.ts b/packages/orm/prisma/scripts/backup-index.d.ts
new file mode 100644
index 00000000000..f4aa627148f
--- /dev/null
+++ b/packages/orm/prisma/scripts/backup-index.d.ts
@@ -0,0 +1 @@
+export * from "../.schema";
diff --git a/packages/orm/prisma/scripts/backup-index.esm.js b/packages/orm/prisma/scripts/backup-index.esm.js
new file mode 100644
index 00000000000..755d23c819e
--- /dev/null
+++ b/packages/orm/prisma/scripts/backup-index.esm.js
@@ -0,0 +1,7 @@
+import path from "path";
+export * from "../.schema";
+
+/**
+ * Annotation for ncc/zeit
+ */
+path.join(__dirname, "../.schema");
diff --git a/packages/orm/prisma/src/__mock__/createContextFixture.ts b/packages/orm/prisma/src/__mock__/createContextFixture.ts
new file mode 100644
index 00000000000..c05326d9658
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/createContextFixture.ts
@@ -0,0 +1,23 @@
+import {TransformContext} from "../generator/domain/TransformContext";
+
+export function createContextFixture(): TransformContext {
+ return {
+ modelsMap: new Map()
+ .set("User", {
+ name: "User",
+ fields: [{type: "Role"}]
+ })
+ .set("Role", {
+ name: "Role",
+ fields: [{type: "User"}, {type: "Transitive"}]
+ })
+ .set("Transitive", {
+ name: "Transitive",
+ fields: [{type: "String"}, {type: "User"}]
+ })
+ .set("Hello", {
+ name: "Hello",
+ fields: [{type: "String"}, {type: "User"}]
+ })
+ } as any;
+}
diff --git a/packages/orm/prisma/src/__mock__/createDmmfFieldFixture.ts b/packages/orm/prisma/src/__mock__/createDmmfFieldFixture.ts
new file mode 100644
index 00000000000..393d0b00092
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/createDmmfFieldFixture.ts
@@ -0,0 +1,31 @@
+import {DmmfField} from "../generator/domain/DmmfField";
+
+export interface FieldFixtureOptions {
+ kind: string;
+ name: string;
+ isRequired: boolean;
+ isNullable: boolean;
+ type: string;
+ isList: boolean;
+ documentation: string;
+ isInputType: boolean;
+}
+
+export function createDmmfFieldFixture(options: Partial = {}) {
+ return new DmmfField({
+ field: {
+ name: "user",
+ isRequired: false,
+ type: "User",
+ isList: false,
+ ...options
+ },
+ schemaArg: {
+ ...options
+ },
+ model: {
+ isInputType: options.isInputType,
+ addImportDeclaration: jest.fn()
+ }
+ });
+}
diff --git a/packages/orm/prisma/src/__mock__/createDmmfFixture.ts b/packages/orm/prisma/src/__mock__/createDmmfFixture.ts
new file mode 100644
index 00000000000..f7bf5b6144a
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/createDmmfFixture.ts
@@ -0,0 +1,3 @@
+export function createDmmfFixture() {
+ return require("./dmmf.json");
+}
diff --git a/packages/orm/prisma/src/__mock__/createDmmfModelFixture.ts b/packages/orm/prisma/src/__mock__/createDmmfModelFixture.ts
new file mode 100644
index 00000000000..86e98158a4b
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/createDmmfModelFixture.ts
@@ -0,0 +1,5 @@
+import {DmmfModel} from "../generator/domain/DmmfModel";
+
+export function createDmmfModelFixture() {
+ return new DmmfModel(require("./dmmfUserModel.json"));
+}
diff --git a/packages/orm/prisma/src/__mock__/createProjectFixture.ts b/packages/orm/prisma/src/__mock__/createProjectFixture.ts
new file mode 100644
index 00000000000..e3513026780
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/createProjectFixture.ts
@@ -0,0 +1,49 @@
+import {ModuleKind, Project, ScriptTarget} from "ts-morph";
+import {ensureDirSync, existsSync} from "fs-extra";
+import {dirname, join} from "path";
+import {readFileSync, writeFileSync} from "fs";
+
+const SNAPSHOT_DIR = `${__dirname}/../../test/snapshots`;
+
+export function createProjectFixture(dir = "/") {
+ const baseDir = join(SNAPSHOT_DIR, dir);
+ const project = new Project({
+ compilerOptions: {
+ target: ScriptTarget.ES2019,
+ module: ModuleKind.CommonJS,
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true,
+ esModuleInterop: true
+ }
+ });
+
+ return {
+ project,
+ baseDir,
+ render(file: string) {
+ const absolutePath = join(baseDir, file);
+ const sourceFile = project.getSourceFile(absolutePath);
+
+ if (!sourceFile) {
+ throw `File not found: ${file}`;
+ }
+
+ sourceFile.formatText({indentSize: 2});
+ const actualValue = sourceFile.getFullText();
+
+ if (!existsSync(absolutePath)) {
+ ensureDirSync(dirname(absolutePath));
+ writeFileSync(absolutePath, actualValue, {encoding: "utf8"});
+ }
+
+ const expectedValue = readFileSync(absolutePath, {encoding: "utf8"});
+
+ return {
+ ...expect(actualValue),
+ toEqualSnapshot() {
+ expect(actualValue).toEqual(expectedValue);
+ }
+ };
+ }
+ };
+}
diff --git a/packages/orm/prisma/src/__mock__/dmmf.json b/packages/orm/prisma/src/__mock__/dmmf.json
new file mode 100644
index 00000000000..262bb053a82
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/dmmf.json
@@ -0,0 +1,15185 @@
+{
+ "datamodel": {
+ "enums": [
+ {
+ "name": "Role",
+ "values": [
+ {
+ "name": "USER",
+ "dbName": null
+ },
+ {
+ "name": "ADMIN",
+ "dbName": null
+ }
+ ],
+ "dbName": null
+ }
+ ],
+ "models": [
+ {
+ "name": "User",
+ "isEmbedded": false,
+ "dbName": null,
+ "fields": [
+ {
+ "name": "id",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": true,
+ "isReadOnly": false,
+ "type": "Int",
+ "hasDefaultValue": true,
+ "default": {
+ "name": "autoincrement",
+ "args": []
+ },
+ "isGenerated": false,
+ "isUpdatedAt": false,
+ "documentation": "@TsED.Groups(\"!creation\")\nComment"
+ },
+ {
+ "name": "createdAt",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "DateTime",
+ "hasDefaultValue": true,
+ "default": {
+ "name": "now",
+ "args": []
+ },
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "email",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": true,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false,
+ "documentation": "@TsED.Email()\n@TsED.Description(\"User email. This email must be unique!\")"
+ },
+ {
+ "name": "weight",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Float",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "is18",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Boolean",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "name",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "successorId",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": true,
+ "type": "Int",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "successor",
+ "kind": "object",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "User",
+ "hasDefaultValue": false,
+ "relationName": "BlogOwnerHistory",
+ "relationFromFields": ["successorId"],
+ "relationToFields": ["id"],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "predecessor",
+ "kind": "object",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "User",
+ "hasDefaultValue": false,
+ "relationName": "BlogOwnerHistory",
+ "relationFromFields": [],
+ "relationToFields": [],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "role",
+ "kind": "enum",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Role",
+ "hasDefaultValue": true,
+ "default": "USER",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "posts",
+ "kind": "object",
+ "isList": true,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Post",
+ "hasDefaultValue": false,
+ "relationName": "PostToUser",
+ "relationFromFields": [],
+ "relationToFields": [],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "keywords",
+ "kind": "scalar",
+ "isList": true,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "biography",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Json",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ }
+ ],
+ "isGenerated": false,
+ "idFields": [],
+ "uniqueFields": [],
+ "uniqueIndexes": []
+ },
+ {
+ "name": "Post",
+ "isEmbedded": false,
+ "dbName": null,
+ "fields": [
+ {
+ "name": "id",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": true,
+ "isReadOnly": false,
+ "type": "Int",
+ "hasDefaultValue": true,
+ "default": {
+ "name": "autoincrement",
+ "args": []
+ },
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "user",
+ "kind": "object",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "User",
+ "hasDefaultValue": false,
+ "relationName": "PostToUser",
+ "relationFromFields": ["userId"],
+ "relationToFields": ["id"],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "userId",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": true,
+ "type": "Int",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ }
+ ],
+ "isGenerated": false,
+ "idFields": [],
+ "uniqueFields": [],
+ "uniqueIndexes": []
+ }
+ ]
+ },
+ "schema": {
+ "inputObjectTypes": {
+ "prisma": [
+ {
+ "name": "UserWhereInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "AND",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "OR",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "NOT",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "IntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "StringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "FloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "BoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "StringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "IntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "UserRelationFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "UserRelationFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "EnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostListRelationFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "StringNullableListFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "JsonFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserOrderByWithRelationInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 0
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByRelationAggregateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserWhereUniqueInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserOrderByInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 0
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserScalarWhereWithAggregatesInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "AND",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "OR",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "NOT",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "IntWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTimeWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "StringWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "FloatNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "BoolNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "StringNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "IntNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "EnumRoleWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "StringNullableListFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "JsonWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostWhereInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "AND",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "OR",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "NOT",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "IntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "user",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "UserRelationFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "IntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostOrderByWithRelationInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 0
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "user",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostWhereUniqueInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostOrderByInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 0
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostScalarWhereWithAggregatesInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "AND",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "OR",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "NOT",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "IntWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "IntNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedCreateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateManyInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateManykeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateManyMutationInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateManyInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "user",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUncheckedCreateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "user",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUncheckedUpdateInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateManyInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateManyMutationInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": []
+ },
+ {
+ "name": "PostUncheckedUpdateManyInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTimeFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "mode",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "QueryMode",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "FloatNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "BoolNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "mode",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "QueryMode",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserRelationFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "is",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "isNot",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EnumRoleFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostListRelationFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "every",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "some",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "none",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringNullableListFilter",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "has",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "hasEvery",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "hasSome",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "isEmpty",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "JsonFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostOrderByRelationAggregateInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "count",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "SortOrder",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTimeWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedDateTimeWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "mode",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "QueryMode",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "FloatNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedFloatNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "BoolNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedBoolNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "mode",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "QueryMode",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EnumRoleWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "NestedEnumRoleWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "JsonWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedJsonFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedJsonFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreatekeywordsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateNestedOneWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateNestedOneWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateNestedManyWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "createMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyUserInputEnvelope",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedCreateNestedOneWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUncheckedCreateNestedManyWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "createMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyUserInputEnvelope",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTimeFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "StringFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NullableFloatFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "increment",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "decrement",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "multiply",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "divide",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NullableBoolFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NullableStringFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EnumRoleFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdatekeywordsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "push",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateOneWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpsertWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateOneWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpsertWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateManyWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpsertWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpsertWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "createMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyUserInputEnvelope",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpdateWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "updateMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyWithWhereWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpdateManyWithWhereWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "deleteMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "increment",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "decrement",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "multiply",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "divide",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NullableIntFieldUpdateOperationsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "increment",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "decrement",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "multiply",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "divide",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateOneWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpsertWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUncheckedUpdateManyWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostCreateOrConnectWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpsertWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpsertWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "createMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyUserInputEnvelope",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "set",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpdateWithWhereUniqueWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "updateMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyWithWhereWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUpdateManyWithWhereWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "deleteMany",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateManykeywordsInput",
+ "constraints": {
+ "maxNumFields": 1,
+ "minNumFields": 1
+ },
+ "fields": [
+ {
+ "name": "set",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateNestedOneWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateOneWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "create",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connectOrCreate",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateOrConnectWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "upsert",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpsertWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "connect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "disconnect",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedIntFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedDateTimeFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedStringFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedFloatNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedBoolNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedStringNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedIntNullableFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedEnumRoleFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedIntWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedFloatFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedFloatFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedDateTimeWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedDateTimeWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedDateTimeFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedStringWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedFloatNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedFloatNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedBoolNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedBoolNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedBoolNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedStringNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "contains",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "startsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "endsWith",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedStringNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedStringNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedIntNullableWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": true
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "lte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "gte",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NestedIntNullableWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "avg",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedFloatNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "sum",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedEnumRoleWithAggregatesFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "in",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "notIn",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "NestedEnumRoleWithAggregatesFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedIntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "min",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "max",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "NestedEnumRoleFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NestedJsonFilter",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "equals",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "not",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedCreateWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateOrConnectWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedCreateWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedCreateNestedManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateOrConnectWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": []
+ },
+ {
+ "name": "PostUncheckedCreateWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateOrConnectWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateManyUserInputEnvelope",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "skipDuplicates",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpsertWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateWithoutPredecessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpsertWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateWithoutSuccessorInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "posts",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUncheckedUpdateManyWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpsertWithWhereUniqueWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateWithWhereUniqueWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateWithoutUserInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateManyWithWhereWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyMutationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateManyWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostScalarWhereInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "AND",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "OR",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "NOT",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostScalarWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "IntFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "userId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "IntNullableFilter",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedCreateWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedCreateNestedOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserCreateOrConnectWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpsertWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateWithoutPostsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUpdateWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "successor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutPredecessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "UserUncheckedUpdateWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "createdAt",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "DateTimeFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "email",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "StringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "weight",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableFloatFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "is18",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableBoolFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "name",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableStringFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "successorId",
+ "isRequired": false,
+ "isNullable": true,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "NullableIntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "Null",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "role",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ },
+ {
+ "type": "EnumRoleFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "biography",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "keywords",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdatekeywordsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "predecessor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUncheckedUpdateOneWithoutSuccessorInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostCreateManyUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUpdateWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": []
+ },
+ {
+ "name": "PostUncheckedUpdateWithoutUserInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PostUncheckedUpdateManyWithoutPostsInput",
+ "constraints": {
+ "maxNumFields": null,
+ "minNumFields": null
+ },
+ "fields": [
+ {
+ "name": "id",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ },
+ {
+ "type": "IntFieldUpdateOperationsInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "outputObjectTypes": {
+ "prisma": [
+ {
+ "name": "Query",
+ "fields": [
+ {
+ "name": "findFirstUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "findManyUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "aggregateUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "UserOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AggregateUser",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "groupByUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserOrderByInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "UserOrderByInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "by",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ },
+ {
+ "type": "UserScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "having",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "UserGroupByOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "findUniqueUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "findFirstPost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "findManyPost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "aggregatePost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AggregatePost",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "groupByPost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "by",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ },
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "having",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarWhereWithAggregatesInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "PostGroupByOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "findUniquePost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "Mutation",
+ "fields": [
+ {
+ "name": "createOneUser",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "upsertOneUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "createManyUser",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserCreateManyInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "skipDuplicates",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "deleteOneUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "updateOneUser",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "updateManyUser",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserUpdateManyMutationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "UserUncheckedUpdateManyInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "deleteManyUser",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "UserWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "createOnePost",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "upsertOnePost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "create",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedCreateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "update",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "createManyPost",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostCreateManyInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ }
+ ]
+ },
+ {
+ "name": "skipDuplicates",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "deleteOnePost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "updateOnePost",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "where",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "updateManyPost",
+ "args": [
+ {
+ "name": "data",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostUpdateManyMutationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ },
+ {
+ "type": "PostUncheckedUpdateManyInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "deleteManyPost",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "AffectedRowsOutput",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "executeRaw",
+ "args": [
+ {
+ "name": "query",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "parameters",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "queryRaw",
+ "args": [
+ {
+ "name": "query",
+ "isRequired": true,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "parameters",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ }
+ ],
+ "isNullable": false,
+ "outputType": {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "AggregateUser",
+ "fields": [
+ {
+ "name": "count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserCountAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "avg",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserAvgAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "sum",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserSumAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "min",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserMinAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "max",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserMaxAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserGroupByOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "keywords",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ },
+ {
+ "name": "biography",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserCountAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "avg",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserAvgAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "sum",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserSumAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "min",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserMinAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "max",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserMaxAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "AggregatePost",
+ "fields": [
+ {
+ "name": "count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostCountAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "avg",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostAvgAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "sum",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostSumAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "min",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostMinAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "max",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostMaxAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostGroupByOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostCountAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "avg",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostAvgAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "sum",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostSumAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "min",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostMinAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "max",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "PostMaxAggregateOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "AffectedRowsOutput",
+ "fields": [
+ {
+ "name": "count",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserCountOutputType",
+ "fields": [
+ {
+ "name": "posts",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserCountAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "keywords",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "biography",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "_all",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserAvgAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserSumAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserMinAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "UserMaxAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostCountAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "_all",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostAvgAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostSumAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostMinAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "PostMaxAggregateOutputType",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ }
+ ],
+ "model": [
+ {
+ "name": "User",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successor",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "predecessor",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "posts",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "keywords",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ },
+ {
+ "name": "biography",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "_count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserCountOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ {
+ "name": "Post",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "user",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "userId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "enumTypes": {
+ "prisma": [
+ {
+ "name": "UserScalarFieldEnum",
+ "values": ["id", "createdAt", "email", "weight", "is18", "name", "successorId", "role", "keywords", "biography"]
+ },
+ {
+ "name": "PostScalarFieldEnum",
+ "values": ["id", "userId"]
+ },
+ {
+ "name": "SortOrder",
+ "values": ["asc", "desc"]
+ },
+ {
+ "name": "QueryMode",
+ "values": ["default", "insensitive"]
+ }
+ ],
+ "model": [
+ {
+ "name": "Role",
+ "values": ["USER", "ADMIN"]
+ }
+ ]
+ }
+ },
+ "mappings": {
+ "modelOperations": [
+ {
+ "model": "User",
+ "aggregate": "aggregateUser",
+ "createMany": "createManyUser",
+ "createOne": "createOneUser",
+ "deleteMany": "deleteManyUser",
+ "deleteOne": "deleteOneUser",
+ "findFirst": "findFirstUser",
+ "findMany": "findManyUser",
+ "findUnique": "findUniqueUser",
+ "groupBy": "groupByUser",
+ "updateMany": "updateManyUser",
+ "updateOne": "updateOneUser",
+ "upsertOne": "upsertOneUser"
+ },
+ {
+ "model": "Post",
+ "aggregate": "aggregatePost",
+ "createMany": "createManyPost",
+ "createOne": "createOnePost",
+ "deleteMany": "deleteManyPost",
+ "deleteOne": "deleteOnePost",
+ "findFirst": "findFirstPost",
+ "findMany": "findManyPost",
+ "findUnique": "findUniquePost",
+ "groupBy": "groupByPost",
+ "updateMany": "updateManyPost",
+ "updateOne": "updateOnePost",
+ "upsertOne": "upsertOnePost"
+ }
+ ],
+ "otherOperations": {
+ "read": [],
+ "write": ["executeRaw", "queryRaw"]
+ }
+ }
+}
diff --git a/packages/orm/prisma/src/__mock__/dmmfUserModel.json b/packages/orm/prisma/src/__mock__/dmmfUserModel.json
new file mode 100644
index 00000000000..7f48691b14b
--- /dev/null
+++ b/packages/orm/prisma/src/__mock__/dmmfUserModel.json
@@ -0,0 +1,439 @@
+{
+ "model": {
+ "name": "User",
+ "isEmbedded": false,
+ "dbName": null,
+ "fields": [
+ {
+ "name": "id",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": true,
+ "isReadOnly": false,
+ "type": "Int",
+ "hasDefaultValue": true,
+ "default": {
+ "name": "autoincrement",
+ "args": []
+ },
+ "isGenerated": false,
+ "isUpdatedAt": false,
+ "documentation": "@TsED.Groups(\"!creation\")\nComment"
+ },
+ {
+ "name": "createdAt",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "DateTime",
+ "hasDefaultValue": true,
+ "default": {
+ "name": "now",
+ "args": []
+ },
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "email",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": true,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false,
+ "documentation": "@TsED.Email()\n@TsED.Description(\"User email. This email must be unique!\")"
+ },
+ {
+ "name": "weight",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Float",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "is18",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Boolean",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "name",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "successorId",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": true,
+ "type": "Int",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "successor",
+ "kind": "object",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "User",
+ "hasDefaultValue": false,
+ "relationName": "BlogOwnerHistory",
+ "relationFromFields": ["successorId"],
+ "relationToFields": ["id"],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "predecessor",
+ "kind": "object",
+ "isList": false,
+ "isRequired": false,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "User",
+ "hasDefaultValue": false,
+ "relationName": "BlogOwnerHistory",
+ "relationFromFields": [],
+ "relationToFields": [],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "role",
+ "kind": "enum",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Role",
+ "hasDefaultValue": true,
+ "default": "USER",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "posts",
+ "kind": "object",
+ "isList": true,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Post",
+ "hasDefaultValue": false,
+ "relationName": "PostToUser",
+ "relationFromFields": [],
+ "relationToFields": [],
+ "relationOnDelete": "NONE",
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "keywords",
+ "kind": "scalar",
+ "isList": true,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "String",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ },
+ {
+ "name": "biography",
+ "kind": "scalar",
+ "isList": false,
+ "isRequired": true,
+ "isUnique": false,
+ "isId": false,
+ "isReadOnly": false,
+ "type": "Json",
+ "hasDefaultValue": false,
+ "isGenerated": false,
+ "isUpdatedAt": false
+ }
+ ],
+ "isGenerated": false,
+ "idFields": [],
+ "uniqueFields": [],
+ "uniqueIndexes": []
+ },
+ "modelType": {
+ "name": "User",
+ "fields": [
+ {
+ "name": "id",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "createdAt",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "DateTime",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "email",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "weight",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Float",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "is18",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Boolean",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "name",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successorId",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "successor",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "predecessor",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "User",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "role",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Role",
+ "namespace": "model",
+ "location": "enumTypes",
+ "isList": false
+ }
+ },
+ {
+ "name": "posts",
+ "args": [
+ {
+ "name": "where",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "orderBy",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": true
+ },
+ {
+ "type": "PostOrderByWithRelationInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "cursor",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostWhereUniqueInput",
+ "namespace": "prisma",
+ "location": "inputObjectTypes",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "take",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "skip",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "Int",
+ "location": "scalar",
+ "isList": false
+ }
+ ]
+ },
+ {
+ "name": "distinct",
+ "isRequired": false,
+ "isNullable": false,
+ "inputTypes": [
+ {
+ "type": "PostScalarFieldEnum",
+ "namespace": "prisma",
+ "location": "enumTypes",
+ "isList": true
+ }
+ ]
+ }
+ ],
+ "isNullable": true,
+ "outputType": {
+ "type": "Post",
+ "namespace": "model",
+ "location": "outputObjectTypes",
+ "isList": true
+ }
+ },
+ {
+ "name": "keywords",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "String",
+ "location": "scalar",
+ "isList": true
+ }
+ },
+ {
+ "name": "biography",
+ "args": [],
+ "isNullable": false,
+ "outputType": {
+ "type": "Json",
+ "location": "scalar",
+ "isList": false
+ }
+ },
+ {
+ "name": "_count",
+ "args": [],
+ "isNullable": true,
+ "outputType": {
+ "type": "UserCountOutputType",
+ "namespace": "prisma",
+ "location": "outputObjectTypes",
+ "isList": false
+ }
+ }
+ ]
+ },
+ "isInputType": false
+}
diff --git a/packages/orm/prisma/src/cli/dev.ts b/packages/orm/prisma/src/cli/dev.ts
new file mode 100644
index 00000000000..c78e42f6f70
--- /dev/null
+++ b/packages/orm/prisma/src/cli/dev.ts
@@ -0,0 +1,10 @@
+#!/usr/bin/env node
+
+try {
+ require("tsconfig-paths/register");
+ require("ts-node/register/transpile-only");
+ require("./generator");
+} catch (er) {
+ console.log(er);
+ process.exit(-1);
+}
diff --git a/packages/orm/prisma/src/cli/generator.ts b/packages/orm/prisma/src/cli/generator.ts
new file mode 100644
index 00000000000..d9c1e6a713b
--- /dev/null
+++ b/packages/orm/prisma/src/cli/generator.ts
@@ -0,0 +1,12 @@
+import {generatorHandler} from "@prisma/generator-helper";
+import {generate} from "./prismaGenerator";
+import {join} from "path";
+
+generatorHandler({
+ onManifest: () => ({
+ defaultOutput: join(__dirname, "..", ".schema"),
+ prettyName: "Ts.ED integration",
+ requiresGenerators: ["prisma-client-js"]
+ }),
+ onGenerate: generate
+});
diff --git a/packages/orm/prisma/src/cli/prismaGenerator.ts b/packages/orm/prisma/src/cli/prismaGenerator.ts
new file mode 100644
index 00000000000..f57ad42bed0
--- /dev/null
+++ b/packages/orm/prisma/src/cli/prismaGenerator.ts
@@ -0,0 +1,32 @@
+import {GeneratorOptions} from "@prisma/generator-helper";
+import {parseEnvValue} from "@prisma/sdk";
+import {promises as asyncFs} from "fs";
+import {generateCode} from "../generator/generateCode";
+import removeDir from "../generator/utils/removeDir";
+import path from "path";
+
+function parseStringBoolean(stringBoolean: string | undefined) {
+ return Boolean(stringBoolean ? stringBoolean === "true" : undefined);
+}
+
+function toUnixPath(maybeWindowsPath: string) {
+ return maybeWindowsPath.split("\\").join("/");
+}
+
+export async function generate(options: GeneratorOptions) {
+ const outputDir = parseEnvValue(options.generator.output!);
+ await asyncFs.mkdir(outputDir, {recursive: true});
+ await removeDir(outputDir, true);
+
+ const generatorConfig = options.generator.config;
+ const prismaClientProvider = options.otherGenerators.find((it) => parseEnvValue(it.provider) === "prisma-client-js")!;
+ const prismaClientPath = parseEnvValue(prismaClientProvider.output!);
+
+ await generateCode(options.dmmf, {
+ emitTranspiledCode: parseStringBoolean(generatorConfig.emitTranspiledCode),
+ outputDirPath: outputDir,
+ prismaClientPath: prismaClientPath.includes("node_modules") ? "@prisma/client" : toUnixPath(path.relative(outputDir, prismaClientPath))
+ });
+
+ return "";
+}
diff --git a/packages/orm/prisma/src/generator.ts b/packages/orm/prisma/src/generator.ts
new file mode 100644
index 00000000000..10263298fc9
--- /dev/null
+++ b/packages/orm/prisma/src/generator.ts
@@ -0,0 +1,2 @@
+#!/usr/bin/env ts-node
+import "./cli/generator";
diff --git a/packages/orm/prisma/src/generator/domain/DmmfEnum.ts b/packages/orm/prisma/src/generator/domain/DmmfEnum.ts
new file mode 100644
index 00000000000..ede80fe79c1
--- /dev/null
+++ b/packages/orm/prisma/src/generator/domain/DmmfEnum.ts
@@ -0,0 +1,42 @@
+import {DMMF} from "@prisma/generator-helper";
+import {ImportDeclarationStructure, StructureKind} from "ts-morph";
+
+export class DmmfEnum {
+ readonly model: DMMF.DatamodelEnum;
+ readonly modelType: DMMF.SchemaEnum;
+
+ #imports = new Map();
+
+ constructor({model, modelType}: {model: DMMF.DatamodelEnum; modelType: DMMF.SchemaEnum}) {
+ this.model = model;
+ this.modelType = modelType;
+ }
+
+ get name() {
+ return this.model.name;
+ }
+
+ get values() {
+ return this.modelType.values;
+ }
+
+ static getEnums(dmmf: DMMF.Document, enumsMap: Map) {
+ const enums = dmmf.schema.enumTypes.model || [];
+
+ return enums.map(
+ (modelType) =>
+ new DmmfEnum({
+ modelType,
+ model: enumsMap.get(modelType.name) as unknown as DMMF.DatamodelEnum
+ })
+ );
+ }
+
+ static symbolName(name: string) {
+ return `${name}`;
+ }
+
+ toString() {
+ return DmmfEnum.symbolName(this.name);
+ }
+}
diff --git a/packages/orm/prisma/src/generator/domain/DmmfField.ts b/packages/orm/prisma/src/generator/domain/DmmfField.ts
new file mode 100644
index 00000000000..80f1755bd05
--- /dev/null
+++ b/packages/orm/prisma/src/generator/domain/DmmfField.ts
@@ -0,0 +1,51 @@
+import {DMMF} from "@prisma/generator-helper";
+import {parseDocumentationAttributes} from "../utils/parseDocumentationAttributes";
+import type {DmmfModel} from "./DmmfModel";
+
+export class DmmfField {
+ readonly model: DmmfModel;
+ readonly field: DMMF.Field;
+ readonly schemaArg: DMMF.SchemaArg;
+
+ constructor({field, schemaArg, model}: any) {
+ this.field = field;
+ this.model = model;
+ this.schemaArg = schemaArg;
+ }
+
+ get name() {
+ return this.field.name;
+ }
+
+ get isRequired() {
+ return this.field.isRequired;
+ }
+
+ get type() {
+ return this.field.type;
+ }
+
+ get isList() {
+ return this.field.isList;
+ }
+
+ get kind() {
+ return this.field.kind;
+ }
+
+ get isNullable() {
+ return this.schemaArg.isNullable;
+ }
+
+ get location(): "enumTypes" | "inputObjectTypes" | "scalar" {
+ return this.field.kind === "enum" ? "enumTypes" : this.field.kind === "object" ? "inputObjectTypes" : "scalar";
+ }
+
+ getAdditionalDecorators() {
+ return parseDocumentationAttributes(this.field.documentation);
+ }
+
+ toString() {
+ return this.name;
+ }
+}
diff --git a/packages/orm/prisma/src/generator/domain/DmmfModel.ts b/packages/orm/prisma/src/generator/domain/DmmfModel.ts
new file mode 100644
index 00000000000..c46841b7908
--- /dev/null
+++ b/packages/orm/prisma/src/generator/domain/DmmfModel.ts
@@ -0,0 +1,93 @@
+import {DMMF} from "@prisma/generator-helper";
+import {toMap} from "@tsed/core";
+import {ImportDeclarationStructure, StructureKind} from "ts-morph";
+import {DmmfField} from "./DmmfField";
+
+export class DmmfModel {
+ readonly isInputType: boolean;
+ readonly model: DMMF.Model;
+ readonly modelType: DMMF.InputType | DMMF.OutputType;
+ #imports = new Map();
+
+ constructor({isInputType, model, modelType}: any) {
+ this.model = model;
+ this.modelType = modelType;
+ this.isInputType = isInputType;
+ }
+
+ get name() {
+ return this.model.name;
+ }
+
+ get fields() {
+ const dataField = toMap(this.modelType.fields as any, "name");
+
+ return this.model.fields.map((field) => {
+ return new DmmfField({
+ model: this,
+ field,
+ schemaArg: dataField.get(field.name)
+ });
+ });
+ }
+
+ get importDeclarations() {
+ return [...this.#imports.values()];
+ }
+
+ static getModels(dmmf: DMMF.Document, modelsMap: Map) {
+ const inputObjectsTypes = dmmf.schema.inputObjectTypes.model || [];
+ const outputObjectTypes = dmmf.schema.outputObjectTypes.model || [];
+
+ const inputs = inputObjectsTypes.map(
+ (modelType) =>
+ new DmmfModel({
+ modelType,
+ model: modelsMap.get(modelType.name),
+ isInputType: true
+ })
+ );
+
+ const outputs = outputObjectTypes.map(
+ (modelType) =>
+ new DmmfModel({
+ modelType,
+ model: modelsMap.get(modelType.name),
+ isInputType: false
+ })
+ );
+
+ return [...inputs, ...outputs];
+ }
+
+ static symbolName(name: string) {
+ return `${name}Model`;
+ }
+
+ addImportDeclaration(moduleSpecifier: string, name: string, isDefault = false) {
+ if (!this.#imports.has(moduleSpecifier)) {
+ this.#imports.set(moduleSpecifier, {
+ kind: StructureKind.ImportDeclaration,
+ moduleSpecifier: moduleSpecifier,
+ namedImports: []
+ });
+ }
+
+ const moduleDeclaration = this.#imports.get(moduleSpecifier)!;
+
+ if (isDefault) {
+ moduleDeclaration.defaultImport = name;
+ } else {
+ const nameImports = moduleDeclaration.namedImports as any[];
+ if (!nameImports.includes(name)) {
+ nameImports.push(name);
+ }
+ }
+
+ return this;
+ }
+
+ toString() {
+ return DmmfModel.symbolName(this.name);
+ }
+}
diff --git a/packages/orm/prisma/src/generator/domain/ScalarTsTypes.ts b/packages/orm/prisma/src/generator/domain/ScalarTsTypes.ts
new file mode 100644
index 00000000000..ebb8d68ba02
--- /dev/null
+++ b/packages/orm/prisma/src/generator/domain/ScalarTsTypes.ts
@@ -0,0 +1,54 @@
+import {DecoratorStructure, StructureKind} from "ts-morph";
+
+export enum PrismaScalars {
+ String = "String",
+ Boolean = "Boolean",
+ Int = "Int",
+ Float = "Float",
+ BigInt = "BigInt",
+ Decimal = "Decimal",
+ DateTime = "DateTime",
+ Json = "Json",
+ Bytes = "Bytes"
+}
+
+export const ScalarTsTypes: Record = {
+ [PrismaScalars.String]: "string",
+ [PrismaScalars.Boolean]: "boolean",
+ [PrismaScalars.Int]: "number",
+ [PrismaScalars.Float]: "number",
+ [PrismaScalars.Decimal]: "number",
+ [PrismaScalars.BigInt]: "bigint",
+ [PrismaScalars.DateTime]: "Date",
+ [PrismaScalars.Json]: "any",
+ [PrismaScalars.Bytes]: "Buffer"
+};
+
+export const ScalarJsClasses: Record = {
+ [PrismaScalars.String]: "String",
+ [PrismaScalars.Boolean]: "Boolean",
+ [PrismaScalars.Int]: "Number",
+ [PrismaScalars.Float]: "Number",
+ [PrismaScalars.Decimal]: "Number",
+ [PrismaScalars.BigInt]: "BigInt",
+ [PrismaScalars.DateTime]: "Date",
+ [PrismaScalars.Json]: "Object",
+ [PrismaScalars.Bytes]: "Buffer"
+};
+
+export const ScalarDecorators: Record[]> = {
+ [PrismaScalars.String]: [],
+ [PrismaScalars.Boolean]: [],
+ [PrismaScalars.Int]: [
+ {
+ name: "Integer",
+ arguments: []
+ }
+ ],
+ [PrismaScalars.Float]: [],
+ [PrismaScalars.BigInt]: [],
+ [PrismaScalars.Decimal]: [],
+ [PrismaScalars.DateTime]: [{name: "Format", arguments: ['"date-time"']}],
+ [PrismaScalars.Json]: [],
+ [PrismaScalars.Bytes]: []
+};
diff --git a/packages/orm/prisma/src/generator/domain/TransformContext.ts b/packages/orm/prisma/src/generator/domain/TransformContext.ts
new file mode 100644
index 00000000000..c4625ddfe06
--- /dev/null
+++ b/packages/orm/prisma/src/generator/domain/TransformContext.ts
@@ -0,0 +1,7 @@
+import {DMMF} from "@prisma/generator-helper";
+import {SourceFile} from "ts-morph";
+
+export interface TransformContext {
+ dmmf: DMMF.Document;
+ modelsMap: Map;
+}
diff --git a/packages/orm/prisma/src/generator/generateCode.spec.ts b/packages/orm/prisma/src/generator/generateCode.spec.ts
new file mode 100644
index 00000000000..2068b71727e
--- /dev/null
+++ b/packages/orm/prisma/src/generator/generateCode.spec.ts
@@ -0,0 +1,16 @@
+import {generateCode} from "./generateCode";
+import {createProjectFixture} from "../__mock__/createProjectFixture";
+import {createDmmfFixture} from "../__mock__/createDmmfFixture";
+
+describe("generateCode", () => {
+ it("should generate all codes", async () => {
+ const {baseDir} = createProjectFixture("generate_code");
+ const dmmf = createDmmfFixture();
+
+ await generateCode(dmmf, {
+ emitTranspiledCode: false,
+ outputDirPath: baseDir,
+ prismaClientPath: "@prisma/client"
+ });
+ });
+});
diff --git a/packages/orm/prisma/src/generator/generateCode.ts b/packages/orm/prisma/src/generator/generateCode.ts
new file mode 100644
index 00000000000..15ed8778b0c
--- /dev/null
+++ b/packages/orm/prisma/src/generator/generateCode.ts
@@ -0,0 +1,51 @@
+import {DMMF} from "@prisma/generator-helper";
+import path from "path";
+import {CompilerOptions, ModuleKind, Project, ScriptTarget} from "ts-morph";
+import {generateEnums} from "./utils/generateEnums";
+import {generateModels} from "./utils/generateModels";
+import {generateClientIndex} from "./utils/generateClientIndex";
+import {generateInterfaces} from "./utils/generateInterfaces";
+import {generateIndex} from "./utils/generateIndex";
+import {generatePrismaService} from "./utils/generatePrismaService";
+import {generateRepositories} from "./utils/generateRepositories";
+import {saveProject} from "./utils/saveProject";
+
+const baseCompilerOptions: CompilerOptions = {
+ target: ScriptTarget.ES2019,
+ module: ModuleKind.CommonJS,
+ emitDecoratorMetadata: true,
+ experimentalDecorators: true,
+ esModuleInterop: true
+};
+
+export interface GenerateCodeOptions {
+ emitTranspiledCode: boolean;
+ outputDirPath: string;
+ prismaClientPath: string;
+}
+
+export async function generateCode(dmmf: DMMF.Document, options: GenerateCodeOptions) {
+ const baseDirPath = options.outputDirPath;
+ const emitTranspiledCode = options.emitTranspiledCode ? true : options.outputDirPath.includes("node_modules");
+
+ const project = new Project({
+ compilerOptions: {
+ ...baseCompilerOptions,
+ ...(emitTranspiledCode && {declaration: true})
+ }
+ });
+
+ const hasEnum = generateEnums(dmmf, project, baseDirPath);
+ generateModels(dmmf, project, baseDirPath);
+ generateInterfaces(project, baseDirPath);
+ generateClientIndex(project, baseDirPath, options);
+ generatePrismaService(project, baseDirPath);
+ generateRepositories(dmmf, project, baseDirPath);
+ generateIndex(project, baseDirPath, hasEnum);
+
+ if (emitTranspiledCode) {
+ await project.emit();
+ } else {
+ await saveProject(project);
+ }
+}
diff --git a/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.spec.ts b/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.spec.ts
new file mode 100644
index 00000000000..691094a5cac
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.spec.ts
@@ -0,0 +1,44 @@
+import {transformEnumsToEnums} from "./transformEnumsToEnums";
+import {DmmfEnum} from "../domain/DmmfEnum";
+
+describe("transformEnumsToEnums()", () => {
+ it("should transform Prisma Enum to a TS Enum", () => {
+ const enumModel = new DmmfEnum({
+ model: {
+ name: "Role",
+ values: [
+ {
+ name: "ADMIN",
+ dbName: "dbName"
+ },
+ {
+ name: "USER",
+ dbName: "dbName"
+ }
+ ]
+ },
+ modelType: {
+ name: "Role",
+ values: ["ADMIN", "USER"]
+ }
+ });
+
+ expect(transformEnumsToEnums(enumModel)).toEqual({
+ isExported: true,
+ kind: 7,
+ leadingTrivia: "\n",
+ members: [
+ {
+ name: "ADMIN",
+ value: "ADMIN"
+ },
+ {
+ name: "USER",
+ value: "USER"
+ }
+ ],
+ name: "Role",
+ trailingTrivia: "\n"
+ });
+ });
+});
diff --git a/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.ts b/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.ts
new file mode 100644
index 00000000000..da7f3bbad83
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformEnumsToEnums.ts
@@ -0,0 +1,20 @@
+import {EnumMemberStructure, OptionalKind, StatementStructures, StructureKind} from "ts-morph";
+import {DmmfEnum} from "../domain/DmmfEnum";
+
+export function transformEnumsToEnums(enumModel: DmmfEnum): StatementStructures {
+ const members: OptionalKind[] = enumModel.values.map((value) => {
+ return {
+ name: value,
+ value: value
+ };
+ });
+
+ return {
+ kind: StructureKind.Enum,
+ name: enumModel.toString(),
+ trailingTrivia: "\n",
+ leadingTrivia: "\n",
+ isExported: true,
+ members
+ };
+}
diff --git a/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.spec.ts b/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.spec.ts
new file mode 100644
index 00000000000..1785ad4b9d6
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.spec.ts
@@ -0,0 +1,222 @@
+import {createDmmfFieldFixture} from "../../__mock__/createDmmfFieldFixture";
+import {PrismaScalars} from "../domain/ScalarTsTypes";
+import {createContextFixture} from "../../__mock__/createContextFixture";
+import {transformFieldToDecorators} from "./transformFieldToDecorators";
+
+describe("transformFieldToDecorators()", () => {
+ it("should transform String to decorator", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ }
+ ]);
+ });
+
+ it("should transform String to string (Required)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ }
+ ]);
+ });
+
+ it("should transform String to string (Required + null)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true,
+ isNullable: true
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ },
+ {
+ arguments: ["null"],
+ kind: 6,
+ name: "Allow"
+ }
+ ]);
+ });
+
+ it("should transform String to string (Required + null + List)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true,
+ isNullable: true,
+ isList: true
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "CollectionOf"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ }
+ ]);
+ });
+
+ it("should transform Int to number", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.Int
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["Number"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Integer"
+ }
+ ]);
+ });
+
+ it("should transform DateTime to Date", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.DateTime
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["Date"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: ['"date-time"'],
+ kind: 6,
+ name: "Format"
+ }
+ ]);
+ });
+
+ it("should transform enumTypes to Date", () => {
+ const field = createDmmfFieldFixture({
+ kind: "enum",
+ type: "Role"
+ });
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["Role"],
+ kind: 6,
+ name: "Enum"
+ }
+ ]);
+ });
+
+ it("should transform User to User (self-ref)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "User"
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["() => UserModel"],
+ kind: 6,
+ name: "Property"
+ }
+ ]);
+ });
+
+ it("should transform User to User", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "Role"
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["() => RoleModel"],
+ kind: 6,
+ name: "Property"
+ }
+ ]);
+ });
+
+ it("should transform User to User (list)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "Role",
+ isList: true
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["() => RoleModel"],
+ kind: 6,
+ name: "CollectionOf"
+ }
+ ]);
+ });
+
+ it("should transform User to User, Groups", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "Role",
+ documentation: '// @TsED.Groups("expression")'
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ const ctx = createContextFixture();
+ expect(transformFieldToDecorators(field, ctx)).toEqual([
+ {
+ arguments: ["() => RoleModel"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: ['"expression"'],
+ kind: 6,
+ name: "Groups"
+ }
+ ]);
+ });
+});
diff --git a/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.ts b/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.ts
new file mode 100644
index 00000000000..c49d811f86c
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformFieldToDecorators.ts
@@ -0,0 +1,69 @@
+import {DecoratorStructure, StructureKind} from "ts-morph";
+import {DmmfField} from "../domain/DmmfField";
+import {DmmfModel} from "../domain/DmmfModel";
+import {ScalarDecorators, ScalarJsClasses} from "../domain/ScalarTsTypes";
+import {TransformContext} from "../domain/TransformContext";
+import {isCircularRef} from "../utils/isCircularRef";
+
+function createDecorator(name: string, args: string[]): DecoratorStructure {
+ return {
+ kind: StructureKind.Decorator,
+ name,
+ arguments: args
+ };
+}
+
+export function transformFieldToDecorators(field: DmmfField, ctx: TransformContext): DecoratorStructure[] {
+ const decorators: DecoratorStructure[] = [...(ScalarDecorators[field.type] || [])].map((obj) => {
+ field.model.addImportDeclaration("@tsed/schema", obj.name);
+
+ return {
+ kind: StructureKind.Decorator,
+ ...obj
+ };
+ });
+
+ if (field.isRequired) {
+ field.model.addImportDeclaration("@tsed/schema", "Required");
+ decorators.push(createDecorator("Required", []));
+ }
+
+ if (field.location === "enumTypes") {
+ field.model.addImportDeclaration("@tsed/schema", "Enum");
+ decorators.push(createDecorator("Enum", [field.type]));
+ }
+
+ if (field.isNullable && !field.isList) {
+ field.model.addImportDeclaration("@tsed/schema", "Allow");
+ decorators.push(createDecorator("Allow", ["null"]));
+ }
+
+ if (field.isList && field.location !== "enumTypes") {
+ let classType = ScalarJsClasses[field.type] || DmmfModel.symbolName(field.type);
+
+ if (isCircularRef(field.model.name, field.type, ctx)) {
+ classType = `() => ${classType}`;
+ }
+
+ field.model.addImportDeclaration("@tsed/schema", "CollectionOf");
+ decorators.unshift(createDecorator("CollectionOf", [classType]));
+ }
+
+ if (field.location !== "enumTypes" && !field.isList) {
+ let classType = ScalarJsClasses[field.type] || DmmfModel.symbolName(field.type);
+
+ if (isCircularRef(field.model.name, field.type, ctx)) {
+ classType = `() => ${classType}`;
+ }
+
+ field.model.addImportDeclaration("@tsed/schema", "Property");
+ decorators.unshift(createDecorator("Property", [classType]));
+ }
+
+ field.getAdditionalDecorators().forEach((item) => {
+ field.model.addImportDeclaration("@tsed/schema", item.name);
+ decorators.push(createDecorator(item.name, item.arguments));
+ });
+
+ return decorators;
+}
diff --git a/packages/orm/prisma/src/generator/transform/transformFieldToProperty.ts b/packages/orm/prisma/src/generator/transform/transformFieldToProperty.ts
new file mode 100644
index 00000000000..c2c69131782
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformFieldToProperty.ts
@@ -0,0 +1,15 @@
+import {PropertyDeclarationStructure, StructureKind} from "ts-morph";
+import {DmmfField} from "../domain/DmmfField";
+import {TransformContext} from "../domain/TransformContext";
+import {transformFieldToDecorators} from "./transformFieldToDecorators";
+import {transformScalarToType} from "./transformScalarToType";
+
+export function transformFieldToProperty(field: DmmfField, ctx: TransformContext): PropertyDeclarationStructure {
+ return {
+ kind: StructureKind.Property,
+ name: field.name,
+ trailingTrivia: "\n",
+ type: transformScalarToType(field),
+ decorators: transformFieldToDecorators(field, ctx)
+ };
+}
diff --git a/packages/orm/prisma/src/generator/transform/transformModelToClass.spec.ts b/packages/orm/prisma/src/generator/transform/transformModelToClass.spec.ts
new file mode 100644
index 00000000000..8ca67ce9051
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformModelToClass.spec.ts
@@ -0,0 +1,495 @@
+import {transformModelToClass} from "./transformModelToClass";
+import {DmmfModel} from "../domain/DmmfModel";
+import {createContextFixture} from "../../__mock__/createContextFixture";
+import {createDmmfModelFixture} from "../../__mock__/createDmmfModelFixture";
+
+describe("transformModelToClass()", () => {
+ it("should transform Prisma model to a TS Model (InputType)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "id",
+ isRequired: false,
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "id",
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ }
+ ],
+ kind: 30,
+ name: "id",
+ trailingTrivia: "\n",
+ type: "string | undefined"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (InputType + required)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "id",
+ isRequired: true,
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "id",
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ }
+ ],
+ kind: 30,
+ name: "id",
+ trailingTrivia: "\n",
+ type: "string"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (OutputType)", () => {
+ const model = new DmmfModel({
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "id",
+ isRequired: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "id",
+ isNullable: true,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ isInputType: false
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: ["null"],
+ kind: 6,
+ name: "Allow"
+ }
+ ],
+ kind: 30,
+ name: "id",
+ trailingTrivia: "\n",
+ type: "string | null"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (OutputType + required)", () => {
+ const model = new DmmfModel({
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "id",
+ isRequired: true,
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "id",
+ isNullable: false,
+ type: "String",
+ isList: false,
+ location: ""
+ }
+ ]
+ },
+ isInputType: false
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "Property"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ }
+ ],
+ kind: 30,
+ name: "id",
+ trailingTrivia: "\n",
+ type: "string"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (List)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "ids",
+ isRequired: false,
+ type: "String",
+ isList: true,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "ids",
+ isNullable: false,
+ type: "String",
+ location: ""
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "CollectionOf"
+ }
+ ],
+ kind: 30,
+ name: "ids",
+ trailingTrivia: "\n",
+ type: "string[] | undefined"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (List + required)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "ids",
+ isRequired: true,
+ type: "String",
+ isList: true,
+ location: ""
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "ids",
+ isNullable: false,
+ type: "String",
+ location: ""
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: ["String"],
+ kind: 6,
+ name: "CollectionOf"
+ },
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ }
+ ],
+ kind: 30,
+ name: "ids",
+ trailingTrivia: "\n",
+ type: "string[]"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (Enum)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "role",
+ isRequired: true,
+ type: "Role",
+ isList: false,
+ kind: "enum"
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "role",
+ isNullable: false,
+ type: "Role"
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ },
+ {
+ arguments: ["Role"],
+ kind: 6,
+ name: "Enum"
+ }
+ ],
+ kind: 30,
+ name: "role",
+ trailingTrivia: "\n",
+ type: "Role"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model (List + Enum)", () => {
+ const model = new DmmfModel({
+ isInputType: true,
+ model: {
+ name: "User",
+ fields: [
+ {
+ name: "role",
+ isRequired: true,
+ type: "Role",
+ isList: true,
+ kind: "enum"
+ }
+ ]
+ },
+ modelType: {
+ name: "user",
+ fields: [
+ {
+ name: "role",
+ isNullable: false,
+ type: "Role"
+ }
+ ]
+ }
+ });
+
+ const ctx = createContextFixture();
+
+ expect(transformModelToClass(model, ctx)).toEqual({
+ implements: ["User"],
+ isExported: true,
+ kind: 1,
+ leadingTrivia: "\n",
+ name: "UserModel",
+ properties: [
+ {
+ decorators: [
+ {
+ arguments: [],
+ kind: 6,
+ name: "Required"
+ },
+ {
+ arguments: ["Role"],
+ kind: 6,
+ name: "Enum"
+ }
+ ],
+ kind: 30,
+ name: "role",
+ trailingTrivia: "\n",
+ type: "Role[]"
+ }
+ ],
+ trailingTrivia: "\n"
+ });
+ });
+ it("should transform Prisma model to a TS Model and exclude fields with immediate relation", () => {
+ const model = createDmmfModelFixture();
+ const ctx = createContextFixture();
+ const output: any = transformModelToClass(model, ctx);
+
+ expect(output.properties.map((p: any) => p.name)).toEqual([
+ "id",
+ "createdAt",
+ "email",
+ "weight",
+ "is18",
+ "name",
+ "successorId",
+ "successor",
+ "predecessor",
+ "role",
+ "posts",
+ "keywords",
+ "biography"
+ ]);
+ });
+});
diff --git a/packages/orm/prisma/src/generator/transform/transformModelToClass.ts b/packages/orm/prisma/src/generator/transform/transformModelToClass.ts
new file mode 100644
index 00000000000..4b2b0a1e345
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformModelToClass.ts
@@ -0,0 +1,18 @@
+import {StatementStructures, StructureKind} from "ts-morph";
+import {DmmfModel} from "../domain/DmmfModel";
+import {TransformContext} from "../domain/TransformContext";
+import {transformFieldToProperty} from "./transformFieldToProperty";
+
+export function transformModelToClass(model: DmmfModel, ctx: TransformContext): StatementStructures {
+ model.addImportDeclaration("../client", model.name);
+
+ return {
+ kind: StructureKind.Class,
+ name: model.toString(),
+ trailingTrivia: "\n",
+ leadingTrivia: "\n",
+ isExported: true,
+ implements: [model.name],
+ properties: model.fields.map((field) => transformFieldToProperty(field, ctx))
+ };
+}
diff --git a/packages/orm/prisma/src/generator/transform/transformScalarToType.spec.ts b/packages/orm/prisma/src/generator/transform/transformScalarToType.spec.ts
new file mode 100644
index 00000000000..cc1cd608b58
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformScalarToType.spec.ts
@@ -0,0 +1,100 @@
+import {transformScalarToType} from "./transformScalarToType";
+import {createDmmfFieldFixture} from "../../__mock__/createDmmfFieldFixture";
+import {PrismaScalars} from "../domain/ScalarTsTypes";
+
+describe("transformScalarToType()", () => {
+ it("should transform String to string", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String
+ });
+ expect(transformScalarToType(field)).toEqual("string | null");
+ });
+
+ it("should transform String to string (isInputType)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isInputType: true
+ });
+
+ expect(transformScalarToType(field)).toEqual("string | undefined");
+ });
+
+ it("should transform String to string (Required)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true
+ });
+ expect(transformScalarToType(field)).toEqual("string");
+ });
+
+ it("should transform String to string (Required + null)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true,
+ isNullable: true
+ });
+ expect(transformScalarToType(field)).toEqual("string | null");
+ });
+
+ it("should transform String to string (Required + null + List)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.String,
+ isRequired: true,
+ isNullable: true,
+ isList: true
+ });
+ expect(transformScalarToType(field)).toEqual("string[]");
+ });
+
+ it("should transform Int to number", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.Int
+ });
+ expect(transformScalarToType(field)).toEqual("number | null");
+ });
+
+ it("should transform DateTime to Date", () => {
+ const field = createDmmfFieldFixture({
+ kind: "scalar",
+ type: PrismaScalars.DateTime
+ });
+ expect(transformScalarToType(field)).toEqual("Date | null");
+ });
+
+ it("should transform enumTypes to Date", () => {
+ const field = createDmmfFieldFixture({
+ kind: "enum",
+ type: "Role"
+ });
+ expect(transformScalarToType(field)).toEqual("Role | null");
+ expect(field.model.addImportDeclaration).toHaveBeenCalledWith("../enums", "Role");
+ });
+
+ it("should transform User to User (self-ref)", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "User"
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ expect(transformScalarToType(field)).toEqual("UserModel | null");
+ expect(field.model.addImportDeclaration).not.toHaveBeenCalled();
+ });
+
+ it("should transform User to User", () => {
+ const field = createDmmfFieldFixture({
+ kind: "object",
+ type: "Role"
+ });
+ // @ts-ignore
+ field.model.name = "User";
+ expect(transformScalarToType(field)).toEqual("RoleModel | null");
+ expect(field.model.addImportDeclaration).toHaveBeenCalledWith("./RoleModel", "RoleModel");
+ });
+});
diff --git a/packages/orm/prisma/src/generator/transform/transformScalarToType.ts b/packages/orm/prisma/src/generator/transform/transformScalarToType.ts
new file mode 100644
index 00000000000..6b9f6ace5df
--- /dev/null
+++ b/packages/orm/prisma/src/generator/transform/transformScalarToType.ts
@@ -0,0 +1,43 @@
+import {DmmfField} from "../domain/DmmfField";
+import {DmmfModel} from "../domain/DmmfModel";
+import {ScalarTsTypes} from "../domain/ScalarTsTypes";
+import {DmmfEnum} from "../domain/DmmfEnum";
+
+export function transformScalarToType(field: DmmfField) {
+ const {isRequired, isNullable, type, isList, location, model} = field;
+ let TSType: string = type;
+
+ switch (location) {
+ case "scalar":
+ TSType = ScalarTsTypes[field.type];
+ break;
+ case "enumTypes":
+ TSType = DmmfEnum.symbolName(type);
+ field.model.addImportDeclaration(`../enums`, DmmfEnum.symbolName(field.type));
+ break;
+ case "inputObjectTypes":
+ TSType = DmmfModel.symbolName(type);
+
+ if (field.model.name !== field.type) {
+ field.model.addImportDeclaration(`./${DmmfModel.symbolName(field.type)}`, DmmfModel.symbolName(field.type));
+ }
+
+ break;
+ }
+
+ if (isList) {
+ TSType += "[]";
+ }
+
+ if (!isRequired) {
+ if (model.isInputType) {
+ TSType += " | undefined";
+ } else {
+ TSType += " | null";
+ }
+ } else if (isNullable && !isList) {
+ TSType += " | null";
+ }
+
+ return TSType;
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateClientIndex.ts b/packages/orm/prisma/src/generator/utils/generateClientIndex.ts
new file mode 100644
index 00000000000..7203fc6d704
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateClientIndex.ts
@@ -0,0 +1,12 @@
+import {Project} from "ts-morph";
+import path from "path";
+import {GenerateCodeOptions} from "../generateCode";
+
+export function generateClientIndex(project: Project, baseDirPath: string, options: GenerateCodeOptions) {
+ const directory = project.createDirectory(path.resolve(baseDirPath, "client"));
+ const indexFile = directory.createSourceFile("index.ts", undefined, {overwrite: true});
+
+ indexFile.addExportDeclarations([
+ {moduleSpecifier: options.prismaClientPath.includes("@prisma/client") ? options.prismaClientPath : `../${options.prismaClientPath}`}
+ ]);
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateDocuments.ts b/packages/orm/prisma/src/generator/utils/generateDocuments.ts
new file mode 100644
index 00000000000..6c58bfb1001
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateDocuments.ts
@@ -0,0 +1,20 @@
+import {Directory, SourceFile, StatementStructures} from "ts-morph";
+
+export function generateDocuments(
+ documents: any[],
+ directory: Directory,
+ transform: (document: T, sourceFile: SourceFile) => StatementStructures
+): string[] {
+ return documents.map((document) => {
+ const sourceFile = directory.createSourceFile(`${document.toString()}.ts`, undefined, {overwrite: true});
+ const statements = transform(document, sourceFile);
+
+ if (document.importDeclarations) {
+ sourceFile.addImportDeclarations(document.importDeclarations);
+ }
+
+ sourceFile.addStatements([statements]);
+
+ return document.toString();
+ });
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateEnums.spec.ts b/packages/orm/prisma/src/generator/utils/generateEnums.spec.ts
new file mode 100644
index 00000000000..973575e2b5d
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateEnums.spec.ts
@@ -0,0 +1,15 @@
+import {createProjectFixture} from "../../__mock__/createProjectFixture";
+import {generateModels} from "./generateModels";
+import {createDmmfFixture} from "../../__mock__/createDmmfFixture";
+import {generateEnums} from "./generateEnums";
+
+describe("generateEnums", () => {
+ it("should generate filese", () => {
+ const {project, render, baseDir} = createProjectFixture("generate_enums");
+ const dmmf = createDmmfFixture();
+
+ generateEnums(dmmf, project, baseDir);
+
+ render("/enums/Role.ts").toEqualSnapshot();
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/generateEnums.ts b/packages/orm/prisma/src/generator/utils/generateEnums.ts
new file mode 100644
index 00000000000..acfa7dedfc9
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateEnums.ts
@@ -0,0 +1,24 @@
+import {DMMF} from "@prisma/generator-helper";
+import {Project} from "ts-morph";
+import {toMap} from "@tsed/core";
+import {DmmfEnum} from "../domain/DmmfEnum";
+import path from "path";
+import {generateDocuments} from "./generateDocuments";
+import {transformEnumsToEnums} from "../transform/transformEnumsToEnums";
+import {generateOutputsBarrelFile} from "./generateOutputsBarrelFile";
+
+export function generateEnums(dmmf: DMMF.Document, project: Project, baseDirPath: string): boolean {
+ const enumsMap = toMap(dmmf.datamodel.enums, "name");
+ const enums = DmmfEnum.getEnums(dmmf, enumsMap);
+ const enumsDirPath = path.resolve(baseDirPath, "enums");
+ const enumsDirectory = project.createDirectory(enumsDirPath);
+ const enumsIndex = enumsDirectory.createSourceFile(`index.ts`, undefined, {overwrite: true});
+
+ const exportedEnums = generateDocuments(enums, enumsDirectory, (document) => transformEnumsToEnums(document));
+
+ if (enums.length) {
+ return !!generateOutputsBarrelFile(enumsIndex, exportedEnums);
+ }
+
+ return false;
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateIndex.ts b/packages/orm/prisma/src/generator/utils/generateIndex.ts
new file mode 100644
index 00000000000..608d08a96e9
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateIndex.ts
@@ -0,0 +1,26 @@
+import {Project} from "ts-morph";
+import path from "path";
+
+export function generateIndex(project: Project, baseDirPath: string, hasEnum: boolean) {
+ const indexFile = path.resolve(baseDirPath, "index.ts");
+
+ project.createSourceFile(indexFile, undefined, {overwrite: true}).addExportDeclarations(
+ [
+ {
+ moduleSpecifier: "./interfaces"
+ },
+ hasEnum && {
+ moduleSpecifier: "./enums"
+ },
+ {
+ moduleSpecifier: "./models"
+ },
+ {
+ moduleSpecifier: "./services/PrismaService"
+ },
+ {
+ moduleSpecifier: "./repositories"
+ }
+ ].filter(Boolean) as any[]
+ );
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateInterfaces.ts b/packages/orm/prisma/src/generator/utils/generateInterfaces.ts
new file mode 100644
index 00000000000..bf13bec0d55
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateInterfaces.ts
@@ -0,0 +1,31 @@
+import {ModuleDeclarationKind, Project, StructureKind} from "ts-morph";
+import path from "path";
+
+export function generateInterfaces(project: Project, baseDirPath: string) {
+ const directory = project.createDirectory(path.resolve(baseDirPath, "interfaces"));
+ const indexFile = directory.createSourceFile("index.ts", undefined, {overwrite: true});
+
+ indexFile.addImportDeclaration({
+ kind: StructureKind.ImportDeclaration,
+ moduleSpecifier: "../client",
+ namedImports: ["Prisma"]
+ });
+
+ indexFile
+ .addModule({
+ name: "",
+ hasDeclareKeyword: true,
+ declarationKind: ModuleDeclarationKind.Global
+ })
+ .addModule({
+ name: "TsED"
+ })
+ .addInterface({
+ name: "Configuration"
+ })
+ .addProperty({
+ name: "prisma",
+ hasQuestionToken: true,
+ type: "Prisma.PrismaClientOptions"
+ });
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateModels.spec.ts b/packages/orm/prisma/src/generator/utils/generateModels.spec.ts
new file mode 100644
index 00000000000..247c5d8fba9
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateModels.spec.ts
@@ -0,0 +1,15 @@
+import {createProjectFixture} from "../../__mock__/createProjectFixture";
+import {generateModels} from "./generateModels";
+import {createDmmfFixture} from "../../__mock__/createDmmfFixture";
+
+describe("generateModels", () => {
+ it("should generate models", () => {
+ const {project, render, baseDir} = createProjectFixture("generate_models");
+ const dmmf = createDmmfFixture();
+
+ generateModels(dmmf, project, baseDir);
+
+ render("/models/UserModel.ts").toEqualSnapshot();
+ render("/models/PostModel.ts").toEqualSnapshot();
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/generateModels.ts b/packages/orm/prisma/src/generator/utils/generateModels.ts
new file mode 100644
index 00000000000..f5270f0ba07
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateModels.ts
@@ -0,0 +1,25 @@
+import {DMMF} from "@prisma/generator-helper";
+import {Project} from "ts-morph";
+import {toMap} from "@tsed/core";
+import path from "path";
+import {DmmfModel} from "../domain/DmmfModel";
+import {generateDocuments} from "./generateDocuments";
+import {transformModelToClass} from "../transform/transformModelToClass";
+import {generateOutputsBarrelFile} from "./generateOutputsBarrelFile";
+
+export function generateModels(dmmf: DMMF.Document, project: Project, baseDirPath: string) {
+ const modelsMap = toMap(dmmf.datamodel.models, "name");
+ const models = DmmfModel.getModels(dmmf, modelsMap);
+ const modelsDirPath = path.resolve(baseDirPath, "models");
+ const modelsDirectory = project.createDirectory(modelsDirPath);
+ const modelsIndex = modelsDirectory.createSourceFile(`index.ts`, undefined, {overwrite: true});
+
+ const exportedModels = generateDocuments(models, modelsDirectory, (model, sourceFile) => {
+ return transformModelToClass(model, {
+ dmmf,
+ modelsMap
+ });
+ });
+
+ generateOutputsBarrelFile(modelsIndex, exportedModels);
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateOutputsBarrelFile.ts b/packages/orm/prisma/src/generator/utils/generateOutputsBarrelFile.ts
new file mode 100644
index 00000000000..6f3b2452b9c
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateOutputsBarrelFile.ts
@@ -0,0 +1,12 @@
+import {ExportDeclarationStructure, OptionalKind, SourceFile} from "ts-morph";
+
+export function generateOutputsBarrelFile(sourceFile: SourceFile, outputTypeNames: string[]) {
+ sourceFile.addExportDeclarations(
+ outputTypeNames.sort().map>((outputTypeName) => ({
+ moduleSpecifier: `./${outputTypeName}`,
+ namedExports: [outputTypeName]
+ }))
+ );
+
+ return sourceFile;
+}
diff --git a/packages/orm/prisma/src/generator/utils/generatePrismaService.spec.ts b/packages/orm/prisma/src/generator/utils/generatePrismaService.spec.ts
new file mode 100644
index 00000000000..5599fe570ca
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generatePrismaService.spec.ts
@@ -0,0 +1,12 @@
+import {generatePrismaService} from "./generatePrismaService";
+import {createProjectFixture} from "../../__mock__/createProjectFixture";
+
+describe("generatePrismaService", () => {
+ it("should generate prisma service", () => {
+ const {project, render, baseDir} = createProjectFixture("generate_prisma_service");
+
+ generatePrismaService(project, baseDir);
+
+ render("/services/PrismaService.ts").toEqualSnapshot();
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/generatePrismaService.ts b/packages/orm/prisma/src/generator/utils/generatePrismaService.ts
new file mode 100644
index 00000000000..d91780b609f
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generatePrismaService.ts
@@ -0,0 +1,88 @@
+import {Project, Scope} from "ts-morph";
+import path from "path";
+
+export function generatePrismaService(project: Project, baseDirPath: string) {
+ const directory = project.createDirectory(path.resolve(baseDirPath, "services"));
+ const prismaServiceFile = directory.createSourceFile("PrismaService.ts", "", {overwrite: true});
+
+ prismaServiceFile.addImportDeclarations([
+ {
+ moduleSpecifier: "@tsed/di",
+ namedImports: ["Inject", "Injectable", "Configuration", "OnInit", "OnDestroy"]
+ },
+ {
+ moduleSpecifier: "@tsed/logger",
+ namedImports: ["Logger"]
+ },
+ {
+ moduleSpecifier: "../client",
+ namedImports: ["PrismaClient"]
+ }
+ ]);
+
+ const prismaService = prismaServiceFile.addClass({
+ name: "PrismaService",
+ isExported: true,
+ decorators: [
+ {
+ name: "Injectable",
+ arguments: []
+ }
+ ],
+ extends: "PrismaClient",
+ implements: ["OnInit", "OnDestroy"]
+ });
+
+ prismaService.addProperty({
+ name: "logger",
+ scope: Scope.Protected,
+ type: "Logger",
+ decorators: [
+ {
+ name: "Inject",
+ arguments: []
+ }
+ ]
+ });
+
+ prismaService
+ .addConstructor({
+ parameters: [
+ {
+ name: "settings",
+ type: "Configuration",
+ decorators: [
+ {
+ name: "Configuration",
+ arguments: []
+ }
+ ]
+ }
+ ]
+ })
+ .setBodyText("super(settings.get('prisma'));");
+
+ prismaService
+ .addMethod({
+ name: "$onInit",
+ isAsync: true,
+ returnType: "Promise"
+ })
+ .setBodyText(
+ `this.logger.info("Connection to prisma database");
+ await this.$connect();`
+ );
+
+ prismaService
+ .addMethod({
+ name: "$onDestroy",
+ isAsync: true,
+ returnType: "Promise"
+ })
+ .setBodyText(
+ `this.logger.info("Disconnection from prisma database");
+ await this.$disconnect();`
+ );
+
+ return prismaService;
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateRepositories.ts b/packages/orm/prisma/src/generator/utils/generateRepositories.ts
new file mode 100644
index 00000000000..89769b28d0c
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateRepositories.ts
@@ -0,0 +1,201 @@
+import {DMMF} from "@prisma/generator-helper";
+import {ClassDeclaration, Project, Scope} from "ts-morph";
+import {toMap} from "@tsed/core";
+import path from "path";
+import {DmmfModel} from "../domain/DmmfModel";
+import {generateOutputsBarrelFile} from "./generateOutputsBarrelFile";
+import pluralize from "pluralize";
+import {pascalCase, camelCase} from "change-case";
+
+interface MethodOptions {
+ repository: ClassDeclaration;
+ name: string;
+ model: string;
+ returnType?: string | undefined;
+ hasQuestionToken?: boolean;
+}
+
+function addDelegatedMethod({name, hasQuestionToken, repository, model, returnType}: MethodOptions) {
+ const method = repository.addMethod({
+ name: name,
+ isAsync: true,
+ returnType: returnType ? `Promise<${returnType}>` : undefined,
+ parameters: [
+ {
+ name: "args",
+ type: `Prisma.${model}${pascalCase(name)}Args`,
+ hasQuestionToken
+ }
+ ]
+ });
+
+ if (returnType) {
+ method.setBodyText(`const obj = await this.collection.${name}(args);
+ return this.deserialize<${returnType}>(obj);`);
+ } else {
+ method.setBodyText(`return this.collection.${name}(args)`);
+ }
+}
+
+export function generateRepositories(dmmf: DMMF.Document, project: Project, baseDirPath: string) {
+ const modelsMap = toMap(dmmf.datamodel.models, "name");
+ const models = DmmfModel.getModels(dmmf, modelsMap);
+ const repoDirPath = path.resolve(baseDirPath, "repositories");
+ const repoDirectory = project.createDirectory(repoDirPath);
+ const repositoriesIndex = repoDirectory.createSourceFile(`index.ts`, undefined, {overwrite: true});
+
+ const exportedModels = models.map((model) => {
+ const name = `${pluralize(model.name)}Repository`;
+ const modelName = model.toString();
+ const sourceFile = repoDirectory.createSourceFile(`${name}.ts`, undefined, {overwrite: true});
+
+ sourceFile.addImportDeclarations([
+ {
+ moduleSpecifier: "@tsed/core",
+ namedImports: ["isArray"]
+ },
+ {
+ moduleSpecifier: "@tsed/json-mapper",
+ namedImports: ["deserialize"]
+ },
+ {
+ moduleSpecifier: "@tsed/di",
+ namedImports: ["Injectable", "Inject"]
+ },
+ {
+ moduleSpecifier: "../services/PrismaService",
+ namedImports: ["PrismaService"]
+ },
+ {
+ moduleSpecifier: "../client",
+ namedImports: ["Prisma", model.name]
+ },
+ {
+ moduleSpecifier: "../models",
+ namedImports: [model.toString()]
+ }
+ ]);
+
+ const repository = sourceFile.addClass({
+ name,
+ isExported: true,
+ decorators: [
+ {
+ name: "Injectable",
+ arguments: []
+ }
+ ]
+ });
+
+ repository.addProperty({
+ name: "prisma",
+ type: "PrismaService",
+ scope: Scope.Protected,
+ decorators: [
+ {
+ name: "Inject",
+ arguments: []
+ }
+ ]
+ });
+
+ repository
+ .addGetAccessor({
+ name: "collection"
+ })
+ .setBodyText(`return this.prisma.${camelCase(model.name)}`);
+
+ repository
+ .addGetAccessor({
+ name: "groupBy"
+ })
+ .setBodyText(`return this.collection.groupBy.bind(this.collection)`);
+
+ repository
+ .addMethod({
+ name: "deserialize",
+ scope: Scope.Protected,
+ returnType: "T",
+ parameters: [
+ {
+ name: "obj",
+ type: `null | ${model.name} | ${model.name}[]`
+ }
+ ],
+ typeParameters: ["T"]
+ })
+ .setBodyText(`return deserialize(obj, {type: ${modelName}, collectionType: isArray(obj) ? Array : undefined})`);
+
+ addDelegatedMethod({
+ repository,
+ name: "findUnique",
+ model: model.name,
+ returnType: `${modelName} | null`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "findFirst",
+ model: model.name,
+ returnType: `${modelName} | null`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "findMany",
+ model: model.name,
+ returnType: `${modelName}[]`,
+ hasQuestionToken: true
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "create",
+ model: model.name,
+ returnType: `${modelName}`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "update",
+ model: model.name,
+ returnType: `${modelName}`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "upsert",
+ model: model.name,
+ returnType: `${modelName}`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "delete",
+ model: model.name,
+ returnType: `${modelName}`
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "deleteMany",
+ model: model.name
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "updateMany",
+ model: model.name
+ });
+
+ addDelegatedMethod({
+ repository,
+ name: "aggregate",
+ model: model.name
+ });
+
+ return name;
+ });
+
+ generateOutputsBarrelFile(repositoriesIndex, exportedModels);
+}
diff --git a/packages/orm/prisma/src/generator/utils/generateRespositories.spec.ts b/packages/orm/prisma/src/generator/utils/generateRespositories.spec.ts
new file mode 100644
index 00000000000..34477b92cd9
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/generateRespositories.spec.ts
@@ -0,0 +1,22 @@
+import {createProjectFixture} from "../../__mock__/createProjectFixture";
+import {createDmmfFixture} from "../../__mock__/createDmmfFixture";
+import {generateRepositories} from "./generateRepositories";
+
+describe("generateRepositories", () => {
+ it("should generate repositories", () => {
+ const {project, render, baseDir} = createProjectFixture("generate_repositories");
+ const dmmf = createDmmfFixture();
+
+ generateRepositories(dmmf, project, baseDir);
+
+ const userRepo = render("/repositories/UsersRepository.ts");
+
+ userRepo.not.toContain("Post");
+ userRepo.toEqualSnapshot();
+
+ const postsRepository = render("/repositories/PostsRepository.ts");
+
+ postsRepository.not.toContain("User");
+ postsRepository.toEqualSnapshot();
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/isCircularRef.spec.ts b/packages/orm/prisma/src/generator/utils/isCircularRef.spec.ts
new file mode 100644
index 00000000000..d5b2faa7df0
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/isCircularRef.spec.ts
@@ -0,0 +1,22 @@
+import {isCircularRef} from "./isCircularRef";
+import {createContextFixture} from "../../__mock__/createContextFixture";
+
+const ctx = createContextFixture();
+
+describe("isCircularRef()", () => {
+ it("should return true (self-ref)", () => {
+ expect(isCircularRef("User", "User", ctx)).toEqual(true);
+ });
+ it("should return true (circular-ref)", () => {
+ expect(isCircularRef("User", "Role", ctx)).toEqual(true);
+ });
+ it("should return true (transitive ref)", () => {
+ expect(isCircularRef("User", "Transitive", ctx)).toEqual(true);
+ });
+ it("should return false", () => {
+ expect(isCircularRef("User", "Other", ctx)).toEqual(false);
+ });
+ it("should return false (transitive)", () => {
+ expect(isCircularRef("User", "Hello", ctx)).toEqual(false);
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/isCircularRef.ts b/packages/orm/prisma/src/generator/utils/isCircularRef.ts
new file mode 100644
index 00000000000..1bc51707c6c
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/isCircularRef.ts
@@ -0,0 +1,31 @@
+import {TransformContext} from "../domain/TransformContext";
+import {DMMF} from "@prisma/generator-helper";
+
+export function isCircularRef(modelName: string, fieldType: string, ctx: TransformContext): boolean {
+ if (modelName === fieldType) {
+ return true;
+ }
+
+ const relation1 = ctx.modelsMap.get(modelName);
+ const relation2 = ctx.modelsMap.get(fieldType);
+
+ return Boolean(relation1 && relation2 && hasModelInFields(relation1, fieldType, ctx) && hasModelInFields(relation2, modelName, ctx));
+}
+
+function hasModelInFields(model: DMMF.Model, relation: string, ctx: TransformContext, inspected: string[] = []): boolean {
+ return !!model.fields.find((field) => {
+ if (field.type === relation) {
+ return true;
+ }
+
+ if (!inspected.includes(field.type)) {
+ const nextModel = ctx.modelsMap.get(field.type);
+
+ if (nextModel) {
+ return hasModelInFields(nextModel, relation, ctx, [...inspected, field.type]);
+ }
+ }
+
+ return false;
+ });
+}
diff --git a/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.spec.ts b/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.spec.ts
new file mode 100644
index 00000000000..7de9e340ab5
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.spec.ts
@@ -0,0 +1,53 @@
+import {parseDocumentationAttributes} from "./parseDocumentationAttributes";
+
+describe("parseDocumentationAttributes", () => {
+ it("should parse @TsED.Email()", () => {
+ expect(parseDocumentationAttributes("/// @TsED.Email()")).toEqual([
+ {
+ arguments: [],
+ content: "@TsED.Email()",
+ name: "Email"
+ }
+ ]);
+ });
+
+ it("should parse @TsED.Ignore(endpoint = true)", () => {
+ expect(parseDocumentationAttributes("/// @TsED.Ignore(ctx.endpoint === true)")).toEqual([
+ {
+ arguments: ["(value: any, ctx: any) => ctx.endpoint === true"],
+ content: "@TsED.Ignore(ctx.endpoint === true)",
+ name: "Ignore"
+ }
+ ]);
+ });
+
+ it('should parse @TsED.Groups("!creation")', () => {
+ expect(parseDocumentationAttributes('/// @TsED.Groups("!creation")')).toEqual([
+ {
+ arguments: ['"!creation"'],
+ content: '@TsED.Groups("!creation")',
+ name: "Groups"
+ }
+ ]);
+ });
+ it('should parse @TsED.Groups(type: "test")', () => {
+ expect(parseDocumentationAttributes('/// @TsED.Groups(type: "test")')).toEqual([
+ {
+ arguments: [
+ {
+ type: "test"
+ }
+ ],
+ content: '@TsED.Groups(type: "test")',
+ name: "Groups"
+ }
+ ]);
+ });
+ it("should ignore other comments", () => {
+ expect(parseDocumentationAttributes("/// comments")).toEqual([]);
+ });
+
+ it("should ignore undefined comment", () => {
+ expect(parseDocumentationAttributes(undefined)).toEqual([]);
+ });
+});
diff --git a/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.ts b/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.ts
new file mode 100644
index 00000000000..898b8434a74
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/parseDocumentationAttributes.ts
@@ -0,0 +1,64 @@
+export const attributeRegex = /(@TsED\.)+([A-z])+(\()(.*)(\))+/;
+export const attributeNameRegex = /(?:\.)+([A-Za-z])+(?:\()+/;
+export const attributeArgsRegex = /(?:\()+([A-Za-z])+\:+(.+)+(?:\))+/;
+export const argsRegex = /(?:\()+((.+))+(?:\))+/;
+
+export function parseDocumentationAttributes(documentation: string | undefined): {name: string; content: string; arguments: string[]}[] {
+ if (!documentation) {
+ return [];
+ }
+
+ return documentation
+ .split("\n")
+ .map((current) => {
+ const attribute = current.match(attributeRegex)?.[0];
+
+ if (!attribute) {
+ return;
+ }
+
+ const attributeName = current.match(attributeNameRegex)?.[0]?.slice(1, -1);
+ const rawAttributeArgs = attribute.match(attributeArgsRegex)?.[0]?.slice(1, -1);
+ const args: any[] = [];
+
+ if (rawAttributeArgs) {
+ const splitRawArgsArray = rawAttributeArgs.split(",").map((it) => it.trim());
+ const parsedAttributeArgs =
+ splitRawArgsArray &&
+ (Object.fromEntries(
+ splitRawArgsArray.map((it) => {
+ const [key, value] = it.split(": ");
+ return [key, JSON.parse(value)];
+ })
+ ) as Partial);
+
+ args.push(parsedAttributeArgs);
+ } else {
+ const inputs = attribute
+ .match(argsRegex)?.[0]
+ ?.slice(1, -1)
+ ?.split(",")
+ .map((it) => it.trim());
+
+ args.push(...(inputs || []));
+ }
+
+ return {
+ name: attributeName,
+ content: attribute,
+ arguments: args
+ };
+ })
+ .map((options) => {
+ if (options?.name === "Ignore") {
+ const args = options.arguments.join(" && ");
+
+ return {
+ ...options,
+ arguments: [`(value: any, ctx: any) => ${args}`]
+ };
+ }
+ return options;
+ })
+ .filter(Boolean) as any[];
+}
diff --git a/packages/orm/prisma/src/generator/utils/removeDir.ts b/packages/orm/prisma/src/generator/utils/removeDir.ts
new file mode 100644
index 00000000000..b61540793d0
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/removeDir.ts
@@ -0,0 +1,15 @@
+import path from "path";
+import {promises as fs} from "fs";
+
+export default async function removeDir(dirPath: string, onlyContent: boolean) {
+ const dirEntries = await fs.readdir(dirPath, {withFileTypes: true});
+ await Promise.all(
+ dirEntries.map(async (dirEntry) => {
+ const fullPath = path.join(dirPath, dirEntry.name);
+ return dirEntry.isDirectory() ? await removeDir(fullPath, false) : await fs.unlink(fullPath);
+ })
+ );
+ if (!onlyContent) {
+ await fs.rmdir(dirPath);
+ }
+}
diff --git a/packages/orm/prisma/src/generator/utils/saveProject.ts b/packages/orm/prisma/src/generator/utils/saveProject.ts
new file mode 100644
index 00000000000..3b5ebdff910
--- /dev/null
+++ b/packages/orm/prisma/src/generator/utils/saveProject.ts
@@ -0,0 +1,8 @@
+import {Project} from "ts-morph";
+
+export async function saveProject(project: Project) {
+ for (const file of project.getSourceFiles()) {
+ file.formatText({indentSize: 2});
+ }
+ await project.save();
+}
diff --git a/packages/orm/prisma/src/index.ts b/packages/orm/prisma/src/index.ts
new file mode 100644
index 00000000000..e84bb53f889
--- /dev/null
+++ b/packages/orm/prisma/src/index.ts
@@ -0,0 +1 @@
+export * from "./generator";
diff --git a/packages/orm/prisma/test/package-lock.json b/packages/orm/prisma/test/package-lock.json
new file mode 100644
index 00000000000..c9f3a033a41
--- /dev/null
+++ b/packages/orm/prisma/test/package-lock.json
@@ -0,0 +1,35 @@
+{
+ "name": "@tsed/prisma-test",
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "@prisma/client": {
+ "version": "2.22.1",
+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-2.22.1.tgz",
+ "integrity": "sha512-JQjbsY6QSfFiovXHEp5WeJHa5p2CuR1ZFPAeYXmUsOAQOaMCrhgQmKAL6w2Q3SRA7ALqPjrKywN9/QfBc4Kp1A==",
+ "requires": {
+ "@prisma/engines-version": "2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c"
+ }
+ },
+ "@prisma/engines": {
+ "version": "2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c",
+ "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c.tgz",
+ "integrity": "sha512-KmWdogrsfsSLYvfqY3cS3QcDGzaEFklE+T6dNJf+k/KPQum4A29IwDalafMwh5cMN8ivZobUbowNSwWJrMT08Q==",
+ "dev": true
+ },
+ "@prisma/engines-version": {
+ "version": "2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c",
+ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c.tgz",
+ "integrity": "sha512-OkkVwk6iTzTbwwl8JIKAENyxmh4TFORal55QMKQzrHEY8UzbD0M90mQnmziz3PAopQUZgTFFMlaPAq1WNrLMtA=="
+ },
+ "prisma": {
+ "version": "2.22.1",
+ "resolved": "https://registry.npmjs.org/prisma/-/prisma-2.22.1.tgz",
+ "integrity": "sha512-hwvCM3zyxgSda/+/p+GW7nz93jRebtMU01wAG7YVVnl0OKU+dpw1wPvPFmQRldkZHk8fTCleYmjc24WaSdVPZQ==",
+ "dev": true,
+ "requires": {
+ "@prisma/engines": "2.22.0-21.60cc71d884972ab4e897f0277c4b84383dddaf6c"
+ }
+ }
+ }
+}
diff --git a/packages/orm/prisma/test/package.json b/packages/orm/prisma/test/package.json
new file mode 100644
index 00000000000..a045c45ad51
--- /dev/null
+++ b/packages/orm/prisma/test/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@tsed/prisma-test",
+ "devDependencies": {
+ "prisma": "^3.10.0"
+ },
+ "dependencies": {
+ "@prisma/client": "^3.10.0"
+ }
+}
diff --git a/packages/orm/prisma/test/prisma/schema.prisma b/packages/orm/prisma/test/prisma/schema.prisma
new file mode 100644
index 00000000000..e08dadb001e
--- /dev/null
+++ b/packages/orm/prisma/test/prisma/schema.prisma
@@ -0,0 +1,51 @@
+
+datasource db {
+ provider = "postgresql"
+ url = env("DATABASE_URL")
+}
+
+generator client {
+ provider = "prisma-client-js"
+ binaryTargets = ["native", "windows", "debian-openssl-1.1.x"]
+ output = "../prisma/generated/client"
+ previewFeatures = ["orderByRelation", "napi", "selectRelationCount"]
+}
+
+generator tsed {
+ provider = "node ../src/cli/dev.ts"
+ output = "../prisma/generated/tsed"
+ emitDMMF = true
+}
+
+model User {
+ /// @TsED.Groups("!creation")
+ /// Comment
+ id Int @id @default(autoincrement())
+ createdAt DateTime @default(now())
+ /// @TsED.Email()
+ /// @TsED.Description("User email. This email must be unique!")
+ email String @unique
+ weight Float?
+ is18 Boolean?
+ name String?
+ successorId Int?
+ successor User? @relation("BlogOwnerHistory", fields: [successorId], references: [id])
+ predecessor User? @relation("BlogOwnerHistory")
+ role Role @default(USER)
+ posts Post[]
+ keywords String[]
+ biography Json
+ /// @TsED.Ignore(ctx.endpoint === true)
+ ignored String
+}
+
+model Post {
+ id Int @id @default(autoincrement())
+ user User? @relation(fields: [userId], references: [id])
+ userId Int?
+}
+
+enum Role {
+ USER
+ ADMIN
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_code/client/index.ts b/packages/orm/prisma/test/snapshots/generate_code/client/index.ts
new file mode 100644
index 00000000000..fcab163dab9
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/client/index.ts
@@ -0,0 +1 @@
+export * from "@prisma/client";
diff --git a/packages/orm/prisma/test/snapshots/generate_code/enums/Role.ts b/packages/orm/prisma/test/snapshots/generate_code/enums/Role.ts
new file mode 100644
index 00000000000..f1909355ca9
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/enums/Role.ts
@@ -0,0 +1,5 @@
+
+export enum Role {
+ USER = "USER",
+ ADMIN = "ADMIN"
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_code/enums/index.ts b/packages/orm/prisma/test/snapshots/generate_code/enums/index.ts
new file mode 100644
index 00000000000..a6b89e5435d
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/enums/index.ts
@@ -0,0 +1 @@
+export { Role } from "./Role";
diff --git a/packages/orm/prisma/test/snapshots/generate_code/index.ts b/packages/orm/prisma/test/snapshots/generate_code/index.ts
new file mode 100644
index 00000000000..d3f117a9af6
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/index.ts
@@ -0,0 +1,5 @@
+export * from "./interfaces";
+export * from "./enums";
+export * from "./models";
+export * from "./services/PrismaService";
+export * from "./repositories";
diff --git a/packages/orm/prisma/test/snapshots/generate_code/interfaces/index.ts b/packages/orm/prisma/test/snapshots/generate_code/interfaces/index.ts
new file mode 100644
index 00000000000..d144776d1e4
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/interfaces/index.ts
@@ -0,0 +1,9 @@
+import { Prisma } from "../client";
+
+declare global {
+ namespace TsED {
+ interface Configuration {
+ prisma?: Prisma.PrismaClientOptions;
+ }
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_code/models/PostModel.ts b/packages/orm/prisma/test/snapshots/generate_code/models/PostModel.ts
new file mode 100644
index 00000000000..0174b3721a8
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/models/PostModel.ts
@@ -0,0 +1,20 @@
+import { Post } from "../client";
+import { Integer, Required, Property, Allow } from "@tsed/schema";
+import { UserModel } from "./UserModel";
+
+export class PostModel implements Post {
+ @Property(Number)
+ @Integer()
+ @Required()
+ id: number;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ user: UserModel | null;
+
+ @Property(Number)
+ @Integer()
+ @Allow(null)
+ userId: number | null;
+}
+
diff --git a/packages/orm/prisma/test/snapshots/generate_code/models/UserModel.ts b/packages/orm/prisma/test/snapshots/generate_code/models/UserModel.ts
new file mode 100644
index 00000000000..d83929c2582
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/models/UserModel.ts
@@ -0,0 +1,65 @@
+import { User } from "../client";
+import { Integer, Required, Property, Groups, Format, Email, Description, Allow, Enum, CollectionOf } from "@tsed/schema";
+import { Role } from "../enums";
+import { PostModel } from "./PostModel";
+
+export class UserModel implements User {
+ @Property(Number)
+ @Integer()
+ @Required()
+ @Groups("!creation")
+ id: number;
+
+ @Property(Date)
+ @Format("date-time")
+ @Required()
+ createdAt: Date;
+
+ @Property(String)
+ @Required()
+ @Email()
+ @Description("User email. This email must be unique!")
+ email: string;
+
+ @Property(Number)
+ @Allow(null)
+ weight: number | null;
+
+ @Property(Boolean)
+ @Allow(null)
+ is18: boolean | null;
+
+ @Property(String)
+ @Allow(null)
+ name: string | null;
+
+ @Property(Number)
+ @Integer()
+ @Allow(null)
+ successorId: number | null;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ successor: UserModel | null;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ predecessor: UserModel | null;
+
+ @Required()
+ @Enum(Role)
+ role: Role;
+
+ @CollectionOf(() => PostModel)
+ @Required()
+ posts: PostModel[];
+
+ @CollectionOf(String)
+ @Required()
+ keywords: string[];
+
+ @Property(Object)
+ @Required()
+ biography: any;
+}
+
diff --git a/packages/orm/prisma/test/snapshots/generate_code/models/index.ts b/packages/orm/prisma/test/snapshots/generate_code/models/index.ts
new file mode 100644
index 00000000000..3090a3fa09f
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/models/index.ts
@@ -0,0 +1,2 @@
+export { PostModel } from "./PostModel";
+export { UserModel } from "./UserModel";
diff --git a/packages/orm/prisma/test/snapshots/generate_code/repositories/PostsRepository.ts b/packages/orm/prisma/test/snapshots/generate_code/repositories/PostsRepository.ts
new file mode 100644
index 00000000000..f992bd0bfc8
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/repositories/PostsRepository.ts
@@ -0,0 +1,71 @@
+import { isArray } from "@tsed/core";
+import { deserialize } from "@tsed/json-mapper";
+import { Injectable, Inject } from "@tsed/di";
+import { PrismaService } from "../services/PrismaService";
+import { Prisma, Post } from "../client";
+import { PostModel } from "../models";
+
+@Injectable()
+export class PostsRepository {
+ @Inject()
+ protected prisma: PrismaService;
+
+ get collection() {
+ return this.prisma.post
+ }
+
+ get groupBy() {
+ return this.collection.groupBy.bind(this.collection)
+ }
+
+ protected deserialize(obj: null | Post | Post[]): T {
+ return deserialize(obj, { type: PostModel, collectionType: isArray(obj) ? Array : undefined })
+ }
+
+ async findUnique(args: Prisma.PostFindUniqueArgs): Promise {
+ const obj = await this.collection.findUnique(args);
+ return this.deserialize(obj);
+ }
+
+ async findFirst(args: Prisma.PostFindFirstArgs): Promise {
+ const obj = await this.collection.findFirst(args);
+ return this.deserialize(obj);
+ }
+
+ async findMany(args?: Prisma.PostFindManyArgs): Promise {
+ const obj = await this.collection.findMany(args);
+ return this.deserialize(obj);
+ }
+
+ async create(args: Prisma.PostCreateArgs): Promise {
+ const obj = await this.collection.create(args);
+ return this.deserialize(obj);
+ }
+
+ async update(args: Prisma.PostUpdateArgs): Promise {
+ const obj = await this.collection.update(args);
+ return this.deserialize(obj);
+ }
+
+ async upsert(args: Prisma.PostUpsertArgs): Promise {
+ const obj = await this.collection.upsert(args);
+ return this.deserialize(obj);
+ }
+
+ async delete(args: Prisma.PostDeleteArgs): Promise {
+ const obj = await this.collection.delete(args);
+ return this.deserialize(obj);
+ }
+
+ async deleteMany(args: Prisma.PostDeleteManyArgs) {
+ return this.collection.deleteMany(args)
+ }
+
+ async updateMany(args: Prisma.PostUpdateManyArgs) {
+ return this.collection.updateMany(args)
+ }
+
+ async aggregate(args: Prisma.PostAggregateArgs) {
+ return this.collection.aggregate(args)
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_code/repositories/UsersRepository.ts b/packages/orm/prisma/test/snapshots/generate_code/repositories/UsersRepository.ts
new file mode 100644
index 00000000000..0d2a02468bb
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/repositories/UsersRepository.ts
@@ -0,0 +1,71 @@
+import { isArray } from "@tsed/core";
+import { deserialize } from "@tsed/json-mapper";
+import { Injectable, Inject } from "@tsed/di";
+import { PrismaService } from "../services/PrismaService";
+import { Prisma, User } from "../client";
+import { UserModel } from "../models";
+
+@Injectable()
+export class UsersRepository {
+ @Inject()
+ protected prisma: PrismaService;
+
+ get collection() {
+ return this.prisma.user
+ }
+
+ get groupBy() {
+ return this.collection.groupBy.bind(this.collection)
+ }
+
+ protected deserialize(obj: null | User | User[]): T {
+ return deserialize(obj, { type: UserModel, collectionType: isArray(obj) ? Array : undefined })
+ }
+
+ async findUnique(args: Prisma.UserFindUniqueArgs): Promise {
+ const obj = await this.collection.findUnique(args);
+ return this.deserialize(obj);
+ }
+
+ async findFirst(args: Prisma.UserFindFirstArgs): Promise {
+ const obj = await this.collection.findFirst(args);
+ return this.deserialize(obj);
+ }
+
+ async findMany(args?: Prisma.UserFindManyArgs): Promise {
+ const obj = await this.collection.findMany(args);
+ return this.deserialize(obj);
+ }
+
+ async create(args: Prisma.UserCreateArgs): Promise {
+ const obj = await this.collection.create(args);
+ return this.deserialize(obj);
+ }
+
+ async update(args: Prisma.UserUpdateArgs): Promise {
+ const obj = await this.collection.update(args);
+ return this.deserialize(obj);
+ }
+
+ async upsert(args: Prisma.UserUpsertArgs): Promise {
+ const obj = await this.collection.upsert(args);
+ return this.deserialize(obj);
+ }
+
+ async delete(args: Prisma.UserDeleteArgs): Promise {
+ const obj = await this.collection.delete(args);
+ return this.deserialize(obj);
+ }
+
+ async deleteMany(args: Prisma.UserDeleteManyArgs) {
+ return this.collection.deleteMany(args)
+ }
+
+ async updateMany(args: Prisma.UserUpdateManyArgs) {
+ return this.collection.updateMany(args)
+ }
+
+ async aggregate(args: Prisma.UserAggregateArgs) {
+ return this.collection.aggregate(args)
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_code/repositories/index.ts b/packages/orm/prisma/test/snapshots/generate_code/repositories/index.ts
new file mode 100644
index 00000000000..9a5bbdda0f3
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/repositories/index.ts
@@ -0,0 +1,2 @@
+export { PostsRepository } from "./PostsRepository";
+export { UsersRepository } from "./UsersRepository";
diff --git a/packages/orm/prisma/test/snapshots/generate_code/services/PrismaService.ts b/packages/orm/prisma/test/snapshots/generate_code/services/PrismaService.ts
new file mode 100644
index 00000000000..439315012b5
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_code/services/PrismaService.ts
@@ -0,0 +1,23 @@
+import { Inject, Injectable, Configuration, OnInit, OnDestroy } from "@tsed/di";
+import { Logger } from "@tsed/logger";
+import { PrismaClient } from "../client";
+
+@Injectable()
+export class PrismaService extends PrismaClient implements OnInit, OnDestroy {
+ @Inject()
+ protected logger: Logger;
+
+ constructor(@Configuration() settings: Configuration) {
+ super(settings.get('prisma'));
+ }
+
+ async $onInit(): Promise {
+ this.logger.info("Connection to prisma database");
+ await this.$connect();
+ }
+
+ async $onDestroy(): Promise {
+ this.logger.info("Disconnection from prisma database");
+ await this.$disconnect();
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_enums/enums/Role.ts b/packages/orm/prisma/test/snapshots/generate_enums/enums/Role.ts
new file mode 100644
index 00000000000..f1909355ca9
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_enums/enums/Role.ts
@@ -0,0 +1,5 @@
+
+export enum Role {
+ USER = "USER",
+ ADMIN = "ADMIN"
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_models/models/PostModel.ts b/packages/orm/prisma/test/snapshots/generate_models/models/PostModel.ts
new file mode 100644
index 00000000000..0174b3721a8
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_models/models/PostModel.ts
@@ -0,0 +1,20 @@
+import { Post } from "../client";
+import { Integer, Required, Property, Allow } from "@tsed/schema";
+import { UserModel } from "./UserModel";
+
+export class PostModel implements Post {
+ @Property(Number)
+ @Integer()
+ @Required()
+ id: number;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ user: UserModel | null;
+
+ @Property(Number)
+ @Integer()
+ @Allow(null)
+ userId: number | null;
+}
+
diff --git a/packages/orm/prisma/test/snapshots/generate_models/models/UserModel.ts b/packages/orm/prisma/test/snapshots/generate_models/models/UserModel.ts
new file mode 100644
index 00000000000..d83929c2582
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_models/models/UserModel.ts
@@ -0,0 +1,65 @@
+import { User } from "../client";
+import { Integer, Required, Property, Groups, Format, Email, Description, Allow, Enum, CollectionOf } from "@tsed/schema";
+import { Role } from "../enums";
+import { PostModel } from "./PostModel";
+
+export class UserModel implements User {
+ @Property(Number)
+ @Integer()
+ @Required()
+ @Groups("!creation")
+ id: number;
+
+ @Property(Date)
+ @Format("date-time")
+ @Required()
+ createdAt: Date;
+
+ @Property(String)
+ @Required()
+ @Email()
+ @Description("User email. This email must be unique!")
+ email: string;
+
+ @Property(Number)
+ @Allow(null)
+ weight: number | null;
+
+ @Property(Boolean)
+ @Allow(null)
+ is18: boolean | null;
+
+ @Property(String)
+ @Allow(null)
+ name: string | null;
+
+ @Property(Number)
+ @Integer()
+ @Allow(null)
+ successorId: number | null;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ successor: UserModel | null;
+
+ @Property(() => UserModel)
+ @Allow(null)
+ predecessor: UserModel | null;
+
+ @Required()
+ @Enum(Role)
+ role: Role;
+
+ @CollectionOf(() => PostModel)
+ @Required()
+ posts: PostModel[];
+
+ @CollectionOf(String)
+ @Required()
+ keywords: string[];
+
+ @Property(Object)
+ @Required()
+ biography: any;
+}
+
diff --git a/packages/orm/prisma/test/snapshots/generate_prisma_service/services/PrismaService.ts b/packages/orm/prisma/test/snapshots/generate_prisma_service/services/PrismaService.ts
new file mode 100644
index 00000000000..439315012b5
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_prisma_service/services/PrismaService.ts
@@ -0,0 +1,23 @@
+import { Inject, Injectable, Configuration, OnInit, OnDestroy } from "@tsed/di";
+import { Logger } from "@tsed/logger";
+import { PrismaClient } from "../client";
+
+@Injectable()
+export class PrismaService extends PrismaClient implements OnInit, OnDestroy {
+ @Inject()
+ protected logger: Logger;
+
+ constructor(@Configuration() settings: Configuration) {
+ super(settings.get('prisma'));
+ }
+
+ async $onInit(): Promise {
+ this.logger.info("Connection to prisma database");
+ await this.$connect();
+ }
+
+ async $onDestroy(): Promise {
+ this.logger.info("Disconnection from prisma database");
+ await this.$disconnect();
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_repositories/repositories/PostsRepository.ts b/packages/orm/prisma/test/snapshots/generate_repositories/repositories/PostsRepository.ts
new file mode 100644
index 00000000000..f992bd0bfc8
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_repositories/repositories/PostsRepository.ts
@@ -0,0 +1,71 @@
+import { isArray } from "@tsed/core";
+import { deserialize } from "@tsed/json-mapper";
+import { Injectable, Inject } from "@tsed/di";
+import { PrismaService } from "../services/PrismaService";
+import { Prisma, Post } from "../client";
+import { PostModel } from "../models";
+
+@Injectable()
+export class PostsRepository {
+ @Inject()
+ protected prisma: PrismaService;
+
+ get collection() {
+ return this.prisma.post
+ }
+
+ get groupBy() {
+ return this.collection.groupBy.bind(this.collection)
+ }
+
+ protected deserialize(obj: null | Post | Post[]): T {
+ return deserialize(obj, { type: PostModel, collectionType: isArray(obj) ? Array : undefined })
+ }
+
+ async findUnique(args: Prisma.PostFindUniqueArgs): Promise {
+ const obj = await this.collection.findUnique(args);
+ return this.deserialize(obj);
+ }
+
+ async findFirst(args: Prisma.PostFindFirstArgs): Promise {
+ const obj = await this.collection.findFirst(args);
+ return this.deserialize(obj);
+ }
+
+ async findMany(args?: Prisma.PostFindManyArgs): Promise {
+ const obj = await this.collection.findMany(args);
+ return this.deserialize(obj);
+ }
+
+ async create(args: Prisma.PostCreateArgs): Promise {
+ const obj = await this.collection.create(args);
+ return this.deserialize(obj);
+ }
+
+ async update(args: Prisma.PostUpdateArgs): Promise {
+ const obj = await this.collection.update(args);
+ return this.deserialize(obj);
+ }
+
+ async upsert(args: Prisma.PostUpsertArgs): Promise {
+ const obj = await this.collection.upsert(args);
+ return this.deserialize(obj);
+ }
+
+ async delete(args: Prisma.PostDeleteArgs): Promise {
+ const obj = await this.collection.delete(args);
+ return this.deserialize(obj);
+ }
+
+ async deleteMany(args: Prisma.PostDeleteManyArgs) {
+ return this.collection.deleteMany(args)
+ }
+
+ async updateMany(args: Prisma.PostUpdateManyArgs) {
+ return this.collection.updateMany(args)
+ }
+
+ async aggregate(args: Prisma.PostAggregateArgs) {
+ return this.collection.aggregate(args)
+ }
+}
diff --git a/packages/orm/prisma/test/snapshots/generate_repositories/repositories/UsersRepository.ts b/packages/orm/prisma/test/snapshots/generate_repositories/repositories/UsersRepository.ts
new file mode 100644
index 00000000000..0d2a02468bb
--- /dev/null
+++ b/packages/orm/prisma/test/snapshots/generate_repositories/repositories/UsersRepository.ts
@@ -0,0 +1,71 @@
+import { isArray } from "@tsed/core";
+import { deserialize } from "@tsed/json-mapper";
+import { Injectable, Inject } from "@tsed/di";
+import { PrismaService } from "../services/PrismaService";
+import { Prisma, User } from "../client";
+import { UserModel } from "../models";
+
+@Injectable()
+export class UsersRepository {
+ @Inject()
+ protected prisma: PrismaService;
+
+ get collection() {
+ return this.prisma.user
+ }
+
+ get groupBy() {
+ return this.collection.groupBy.bind(this.collection)
+ }
+
+ protected deserialize(obj: null | User | User[]): T {
+ return deserialize(obj, { type: UserModel, collectionType: isArray(obj) ? Array : undefined })
+ }
+
+ async findUnique(args: Prisma.UserFindUniqueArgs): Promise {
+ const obj = await this.collection.findUnique(args);
+ return this.deserialize(obj);
+ }
+
+ async findFirst(args: Prisma.UserFindFirstArgs): Promise {
+ const obj = await this.collection.findFirst(args);
+ return this.deserialize(obj);
+ }
+
+ async findMany(args?: Prisma.UserFindManyArgs): Promise {
+ const obj = await this.collection.findMany(args);
+ return this.deserialize(obj);
+ }
+
+ async create(args: Prisma.UserCreateArgs): Promise {
+ const obj = await this.collection.create(args);
+ return this.deserialize(obj);
+ }
+
+ async update(args: Prisma.UserUpdateArgs): Promise {
+ const obj = await this.collection.update(args);
+ return this.deserialize(obj);
+ }
+
+ async upsert(args: Prisma.UserUpsertArgs): Promise {
+ const obj = await this.collection.upsert(args);
+ return this.deserialize(obj);
+ }
+
+ async delete(args: Prisma.UserDeleteArgs): Promise {
+ const obj = await this.collection.delete(args);
+ return this.deserialize(obj);
+ }
+
+ async deleteMany(args: Prisma.UserDeleteManyArgs) {
+ return this.collection.deleteMany(args)
+ }
+
+ async updateMany(args: Prisma.UserUpdateManyArgs) {
+ return this.collection.updateMany(args)
+ }
+
+ async aggregate(args: Prisma.UserAggregateArgs) {
+ return this.collection.aggregate(args)
+ }
+}
diff --git a/packages/orm/prisma/tsconfig.compile.esm.json b/packages/orm/prisma/tsconfig.compile.esm.json
new file mode 100644
index 00000000000..4d797e85361
--- /dev/null
+++ b/packages/orm/prisma/tsconfig.compile.esm.json
@@ -0,0 +1,25 @@
+{
+ "extends": "./tsconfig.compile.json",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "module": "ES2020",
+ "rootDir": "src",
+ "outDir": "./lib/esm",
+ "declaration": true,
+ "declarationDir": "./lib/types"
+ },
+ "include": ["src"],
+ "exclude": [
+ "node_modules",
+ "test",
+ "lib",
+ "benchmark",
+ "coverage",
+ "spec",
+ "**/*.benchmark.ts",
+ "**/*.spec.ts",
+ "keys",
+ "jest.config.js",
+ "scripts"
+ ]
+}
diff --git a/packages/orm/prisma/tsconfig.compile.json b/packages/orm/prisma/tsconfig.compile.json
new file mode 100644
index 00000000000..0af62b2e55b
--- /dev/null
+++ b/packages/orm/prisma/tsconfig.compile.json
@@ -0,0 +1,22 @@
+{
+ "extends": "../../../tsconfig.compile.json",
+ "compilerOptions": {
+ "rootDir": "src",
+ "outDir": "lib/cjs",
+ "declaration": false
+ },
+ "include": ["src"],
+ "exclude": [
+ "node_modules",
+ "test",
+ "lib",
+ "benchmark",
+ "coverage",
+ "spec",
+ "**/*.benchmark.ts",
+ "**/*.spec.ts",
+ "keys",
+ "jest.config.js",
+ "scripts"
+ ]
+}
diff --git a/tools/jest/jest.config.js b/tools/jest/jest.config.js
index 00db94be1bb..9c77bc7c68f 100644
--- a/tools/jest/jest.config.js
+++ b/tools/jest/jest.config.js
@@ -37,6 +37,7 @@ module.exports = (rootDir) => ({
"^@tsed/objection$": fixPath(join(packageDir, "orm/objection/src")),
"^@tsed/typeorm$": fixPath(join(packageDir, "orm/typeorm/src")),
"^@tsed/mikro-orm": fixPath(join(packageDir, "orm/mikro-orm/src")),
+ "^@tsed/prisma": fixPath(join(packageDir, "orm/prisma/src")),
"^@tsed/adapters$": fixPath(join(packageDir, "orm/adapters/src")),
"^@tsed/mongoose$": fixPath(join(packageDir, "orm/mongoose/src")),
"^@tsed/adapters-redis$": fixPath(join(packageDir, "orm/adapters-redis/src")),
diff --git a/yarn.lock b/yarn.lock
index b00a8356187..08af3f09fdd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3205,6 +3205,144 @@
resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6"
integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==
+"@prisma/client@^3.10.0":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-3.10.0.tgz#4782fe6f1b0e43c2a11a75ad4bb1098599d1dfb1"
+ integrity sha512-6P4sV7WFuODSfSoSEzCH1qfmWMrCUBk1LIIuTbQf6m1LI/IOpLN4lnqGDmgiBGprEzuWobnGLfe9YsXLn0inrg==
+ dependencies:
+ "@prisma/engines-version" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+
+"@prisma/debug@3.10.0":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-3.10.0.tgz#7ba5be41b60f48b7822685437c588c8d178f30d7"
+ integrity sha512-rPf9EhhQ82bxuVz3lRkHSWyJTBluyDH1RSvzmiEZorpxxdqZSFxlk1gGxIEuu+T9dAhY1dtCq4E679SSycGHUQ==
+ dependencies:
+ "@types/debug" "4.1.7"
+ ms "2.1.3"
+ strip-ansi "6.0.1"
+
+"@prisma/debug@3.9.2":
+ version "3.9.2"
+ resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-3.9.2.tgz#803e97da04c606e16467daf2b43a17be97204511"
+ integrity sha512-zi+GYWvhhXXxXffRAaHK0cJO3/nR44kp85+x7OH8YxV6Q7PvSfIhhUClgbbD8x9YaZI/lle0RvN2OC2DN4JV+A==
+ dependencies:
+ "@types/debug" "4.1.7"
+ ms "2.1.3"
+ strip-ansi "6.0.1"
+
+"@prisma/engine-core@3.10.0":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@prisma/engine-core/-/engine-core-3.10.0.tgz#89ce39d23fb2a318421d728b8c21f3d390d24206"
+ integrity sha512-w4enlE6cubPNVunD6HV3dAJ6V0ylxCGFp+d6bO9ecyv/Gc+5IGozK8mUBiwyTn4BemAmSLoqlLFA5sK/D5Tl6g==
+ dependencies:
+ "@prisma/debug" "3.10.0"
+ "@prisma/engines" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ "@prisma/generator-helper" "3.10.0"
+ "@prisma/get-platform" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ chalk "4.1.2"
+ execa "5.1.1"
+ get-stream "6.0.1"
+ indent-string "4.0.0"
+ new-github-issue-url "0.2.1"
+ p-retry "4.6.1"
+ strip-ansi "6.0.1"
+ terminal-link "2.1.1"
+ undici "3.3.6"
+
+"@prisma/engines-version@3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86":
+ version "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86.tgz#82750856fa637dd89b8f095d2dcc6ac0631231c6"
+ integrity sha512-cVYs5gyQH/qyut24hUvDznCfPrWiNMKNfPb9WmEoiU6ihlkscIbCfkmuKTtspVLWRdl0LqjYEC7vfnPv17HWhw==
+
+"@prisma/engines@3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86":
+ version "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86.tgz#2964113729a78b8b21e186b5592affd1fde73c16"
+ integrity sha512-LjRssaWu9w2SrXitofnutRIyURI7l0veQYIALz7uY4shygM9nMcK3omXcObRm7TAcw3Z+9ytfK1B+ySOsOesxQ==
+
+"@prisma/fetch-engine@3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86":
+ version "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86.tgz#e5916ad745d1f97ddce8b9160ac8437aa8865c09"
+ integrity sha512-mMPJns4thnaDzD8IItuSbUQUaAXpHPCZRCUF5cOzyRcmbn9F8oqMY1Mffma4+5ESezSgCcqzC7TJy0a3G5dB0w==
+ dependencies:
+ "@prisma/debug" "3.9.2"
+ "@prisma/get-platform" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ chalk "4.1.2"
+ execa "5.1.1"
+ find-cache-dir "3.3.2"
+ hasha "5.2.2"
+ http-proxy-agent "5.0.0"
+ https-proxy-agent "5.0.0"
+ make-dir "3.1.0"
+ node-fetch "2.6.7"
+ p-filter "2.1.0"
+ p-map "4.0.0"
+ p-retry "4.6.1"
+ progress "2.0.3"
+ rimraf "3.0.2"
+ temp-dir "2.0.0"
+ tempy "1.0.1"
+
+"@prisma/generator-helper@3.10.0", "@prisma/generator-helper@^3.2.1":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-3.10.0.tgz#312e0adbd8f5ea2d22726d4c53cc4b59941917e4"
+ integrity sha512-toG70HvYEMmpuSeiMI5XMGGRED2t4JqjgEcfpi6JklNFrO9H8xsPaCY6y6elQqlkk3zN8ABosy0+J6qiQUj57g==
+ dependencies:
+ "@prisma/debug" "3.10.0"
+ "@types/cross-spawn" "6.0.2"
+ chalk "4.1.2"
+ cross-spawn "7.0.3"
+
+"@prisma/get-platform@3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86":
+ version "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86.tgz#2a89e762061aaa92189321442f46cde902c949c8"
+ integrity sha512-CWyiI8RNzG5u0jlShUCcxTffSn1qbXmZtCbcIq41VTd2SDzx5KZj+yARCnIDazIrY1k2GltaqjzYTLfjZ6Ju0A==
+ dependencies:
+ "@prisma/debug" "3.9.2"
+
+"@prisma/sdk@^3.2.1":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@prisma/sdk/-/sdk-3.10.0.tgz#0f9a851c3138cc8378aa95a74c6f56b370537d4e"
+ integrity sha512-mNibKhgpWALYliePkuvDM0/J03pQk8MOfic26r+G43v2TJzjeyLwrYNo/WuDuC1pchqConZU0t1m76GyYJEAlQ==
+ dependencies:
+ "@prisma/debug" "3.10.0"
+ "@prisma/engine-core" "3.10.0"
+ "@prisma/engines" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ "@prisma/fetch-engine" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ "@prisma/generator-helper" "3.10.0"
+ "@prisma/get-platform" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+ "@timsuchanek/copy" "1.4.5"
+ archiver "5.3.0"
+ arg "5.0.1"
+ chalk "4.1.2"
+ checkpoint-client "1.1.21"
+ cli-truncate "2.1.0"
+ dotenv "16.0.0"
+ escape-string-regexp "4.0.0"
+ execa "5.1.1"
+ find-up "5.0.0"
+ fs-jetpack "4.3.1"
+ global-dirs "3.0.0"
+ globby "11.1.0"
+ has-yarn "2.1.0"
+ is-ci "3.0.1"
+ make-dir "3.1.0"
+ node-fetch "2.6.7"
+ p-map "4.0.0"
+ read-pkg-up "7.0.1"
+ replace-string "3.1.0"
+ resolve "1.22.0"
+ rimraf "3.0.2"
+ shell-quote "1.7.3"
+ string-width "4.2.3"
+ strip-ansi "6.0.1"
+ strip-indent "3.0.0"
+ tar "6.1.11"
+ temp-dir "2.0.0"
+ temp-write "4.0.0"
+ tempy "1.0.1"
+ terminal-link "2.1.1"
+ tmp "0.2.1"
+
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
@@ -3466,11 +3604,41 @@
resolved "https://registry.yarnpkg.com/@tediousjs/connection-string/-/connection-string-0.3.0.tgz#23f7af793a365cc3b6a149ec1320f1e28c4242ff"
integrity sha512-d/keJiNKfpHo+GmSB8QcsAwBx8h+V1UbdozA5TD+eSLXprNY53JAYub47J9evsSKWDdNG5uVj0FiMozLKuzowQ==
+"@timsuchanek/copy@1.4.5":
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/@timsuchanek/copy/-/copy-1.4.5.tgz#8e9658c056e24e1928a88bed45f9eac6a72b7c40"
+ integrity sha512-N4+2/DvfwzQqHYL/scq07fv8yXbZc6RyUxKJoE8Clm14JpLOf9yNI4VB4D6RsV3h9zgzZ4loJUydHKM7pp3blw==
+ dependencies:
+ "@timsuchanek/sleep-promise" "^8.0.1"
+ commander "^2.19.0"
+ mkdirp "^1.0.4"
+ prettysize "^2.0.0"
+
+"@timsuchanek/sleep-promise@^8.0.1":
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/@timsuchanek/sleep-promise/-/sleep-promise-8.0.1.tgz#81c0754b345138a519b51c2059771eb5f9b97818"
+ integrity sha512-cxHYbrXfnCWsklydIHSw5GCMHUPqpJ/enxWSyVHNOgNe61sit/+aOXTTI+VOdWkvVaJsI2vsB9N4+YDNITawOQ==
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+"@tootallnate/once@2":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
+"@ts-morph/common@~0.11.1":
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e"
+ integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==
+ dependencies:
+ fast-glob "^3.2.7"
+ minimatch "^3.0.4"
+ mkdirp "^1.0.4"
+ path-browserify "^1.0.1"
+
"@tsconfig/node10@^1.0.7":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9"
@@ -3709,6 +3877,13 @@
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.12.tgz#6160ae454cd89dae05adc3bb97997f488b608201"
integrity sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==
+"@types/change-case@^2.3.1":
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/@types/change-case/-/change-case-2.3.1.tgz#dbaf4efb63ad8586ab8819179a790904ccb6a837"
+ integrity sha1-269O+2OthYariBkXmnkJBMy2qDc=
+ dependencies:
+ change-case "*"
+
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -3778,6 +3953,20 @@
resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080"
integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==
+"@types/cross-spawn@6.0.2":
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.2.tgz#168309de311cd30a2b8ae720de6475c2fbf33ac7"
+ integrity sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/debug@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
+ integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
+ dependencies:
+ "@types/ms" "*"
+
"@types/ejs@3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.0.tgz#ab8109208106b5e764e5a6c92b2ba1c625b73020"
@@ -4138,6 +4327,11 @@
"@types/bson" "*"
"@types/node" "*"
+"@types/ms@*":
+ version "0.7.31"
+ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
+ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
+
"@types/multer@^1.4.3":
version "1.4.4"
resolved "https://registry.yarnpkg.com/@types/multer/-/multer-1.4.4.tgz#bb5d9abc410da82726ceca74008bb81813349a88"
@@ -4246,6 +4440,11 @@
dependencies:
"@types/express" "*"
+"@types/pluralize@0.0.29":
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c"
+ integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA==
+
"@types/prettier@^2.1.5":
version "2.3.2"
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3"
@@ -5240,6 +5439,35 @@ aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
+archiver-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2"
+ integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
+ dependencies:
+ glob "^7.1.4"
+ graceful-fs "^4.2.0"
+ lazystream "^1.0.0"
+ lodash.defaults "^4.2.0"
+ lodash.difference "^4.5.0"
+ lodash.flatten "^4.4.0"
+ lodash.isplainobject "^4.0.6"
+ lodash.union "^4.6.0"
+ normalize-path "^3.0.0"
+ readable-stream "^2.0.0"
+
+archiver@5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba"
+ integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==
+ dependencies:
+ archiver-utils "^2.1.0"
+ async "^3.2.0"
+ buffer-crc32 "^0.2.1"
+ readable-stream "^3.6.0"
+ readdir-glob "^1.0.0"
+ tar-stream "^2.2.0"
+ zip-stream "^4.1.0"
+
archy@^1.0.0, archy@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
@@ -5253,6 +5481,11 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
+arg@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
+ integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
+
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -6027,7 +6260,7 @@ bson@^4.5.4:
dependencies:
buffer "^5.6.0"
-buffer-crc32@~0.2.3:
+buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
@@ -6429,6 +6662,14 @@ chalk@4.1.1, chalk@^4.0.0, chalk@^4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -6454,7 +6695,7 @@ chance@^1.1.7:
resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.7.tgz#e99dde5ac16681af787b5ba94c8277c090d6cfe8"
integrity sha512-bua/2cZEfzS6qPm0vi3JEvGNbriDLcMj9lKxCQOjUcCJRcyjA7umP0zZm6bKWWlBN04vA0L99QGH/CZQawr0eg==
-change-case@4.1.2:
+change-case@*, change-case@4.1.2, change-case@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12"
integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==
@@ -6487,6 +6728,19 @@ check-error@^1.0.2:
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
+checkpoint-client@1.1.21:
+ version "1.1.21"
+ resolved "https://registry.yarnpkg.com/checkpoint-client/-/checkpoint-client-1.1.21.tgz#47751b82748088b42d8baa2108d6219c6bc9ff59"
+ integrity sha512-bcrcnJncn6uGhj06IIsWvUBPyJWK1ZezDbLCJ//IQEYXkUobhGvOOBlHe9K5x0ZMkAZGinPB4T+lTUmFz/acWQ==
+ dependencies:
+ ci-info "3.3.0"
+ env-paths "2.2.1"
+ fast-write-atomic "0.2.1"
+ make-dir "3.1.0"
+ ms "2.1.3"
+ node-fetch "2.6.7"
+ uuid "8.3.2"
+
cheerio@0.20.0:
version "0.20.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.20.0.tgz#5c710f2bab95653272842ba01c6ea61b3545ec35"
@@ -6561,6 +6815,11 @@ chownr@^2.0.0:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+ci-info@3.3.0, ci-info@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
+ integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
+
ci-info@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
@@ -6576,11 +6835,6 @@ ci-info@^3.1.1:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"
integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
-ci-info@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
- integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
-
cidr-regex@^2.0.10:
version "2.0.10"
resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d"
@@ -6683,6 +6937,14 @@ cli-table@^0.3.1:
dependencies:
colors "1.0.3"
+cli-truncate@2.1.0, cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ dependencies:
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
+
cli-truncate@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
@@ -6691,14 +6953,6 @@ cli-truncate@^0.2.1:
slice-ansi "0.0.4"
string-width "^1.0.1"
-cli-truncate@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
- integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
- dependencies:
- slice-ansi "^3.0.0"
- string-width "^4.2.0"
-
cli-truncate@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
@@ -6823,6 +7077,11 @@ coa@^2.0.2:
chalk "^2.4.1"
q "^1.1.2"
+code-block-writer@^10.1.1:
+ version "10.1.1"
+ resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f"
+ integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==
+
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@@ -6984,6 +7243,16 @@ component-emitter@^1.2.1, component-emitter@^1.3.0, component-emitter@~1.3.0:
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+compress-commons@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d"
+ integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==
+ dependencies:
+ buffer-crc32 "^0.2.13"
+ crc32-stream "^4.0.2"
+ normalize-path "^3.0.0"
+ readable-stream "^3.6.0"
+
compressible@^2.0.0, compressible@~2.0.16:
version "2.0.18"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@@ -7470,6 +7739,22 @@ coveralls@3.1.0:
minimist "^1.2.5"
request "^2.88.2"
+crc-32@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.1.tgz#436d2bcaad27bcb6bd073a2587139d3024a16460"
+ integrity sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==
+ dependencies:
+ exit-on-epipe "~1.0.1"
+ printj "~1.3.1"
+
+crc32-stream@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
+ integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
+ dependencies:
+ crc-32 "^1.2.0"
+ readable-stream "^3.4.0"
+
crc@^3.4.4:
version "3.8.0"
resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
@@ -7504,6 +7789,15 @@ cross-env@7.0.2:
dependencies:
cross-spawn "^7.0.1"
+cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
cross-spawn@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@@ -7524,15 +7818,6 @@ cross-spawn@^6.0.0:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
crossvent@1.5.5:
version "1.5.5"
resolved "https://registry.yarnpkg.com/crossvent/-/crossvent-1.5.5.tgz#ad20878e4921e9be73d9d6976f8b2ecd0f71a0b1"
@@ -8074,6 +8359,20 @@ degenerator@^1.0.4:
escodegen "1.x.x"
esprima "3.x.x"
+del@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952"
+ integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
+ dependencies:
+ globby "^11.0.1"
+ graceful-fs "^4.2.4"
+ is-glob "^4.0.1"
+ is-path-cwd "^2.2.0"
+ is-path-inside "^3.0.2"
+ p-map "^4.0.0"
+ rimraf "^3.0.2"
+ slash "^3.0.0"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -8337,6 +8636,11 @@ dot-prop@^6.0.1:
dependencies:
is-obj "^2.0.0"
+dotenv@16.0.0:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411"
+ integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==
+
dotenv@8.2.0, dotenv@^8.2.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
@@ -8560,6 +8864,11 @@ env-ci@^5.0.0:
execa "^4.0.0"
java-properties "^1.0.0"
+env-paths@2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
env-paths@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
@@ -9105,6 +9414,21 @@ execa@4.0.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
+execa@5.1.1, execa@^5.0.0, execa@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@@ -9146,20 +9470,10 @@ execa@^4.0.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
-execa@^5.0.0, execa@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
+exit-on-epipe@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
+ integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
exit@^0.1.2:
version "0.1.2"
@@ -9385,7 +9699,7 @@ fast-glob@^3.1.1:
micromatch "^4.0.2"
picomatch "^2.2.1"
-fast-glob@^3.2.9:
+fast-glob@^3.2.7, fast-glob@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
@@ -9438,6 +9752,11 @@ fast-safe-stringify@2.0.7, fast-safe-stringify@^2.0.7:
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
+fast-write-atomic@0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede"
+ integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==
+
fastify-cors@5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/fastify-cors/-/fastify-cors-5.2.0.tgz#a92af64d9b7df1cd736c90ecd894a7b23c0cd75a"
@@ -9662,19 +9981,19 @@ finalhandler@~1.1.2:
statuses "~1.5.0"
unpipe "~1.0.0"
-find-cache-dir@^3.2.0, find-cache-dir@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
- integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+find-cache-dir@3.3.2, find-cache-dir@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+ integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
dependencies:
commondir "^1.0.1"
make-dir "^3.0.2"
pkg-dir "^4.1.0"
-find-cache-dir@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
- integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+find-cache-dir@^3.2.0, find-cache-dir@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
dependencies:
commondir "^1.0.1"
make-dir "^3.0.2"
@@ -10113,6 +10432,14 @@ fs-extra@^7.0.1:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-jetpack@4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-4.3.1.tgz#cdfd4b64e6bfdec7c7dc55c76b39efaa7853bb20"
+ integrity sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ==
+ dependencies:
+ minimatch "^3.0.2"
+ rimraf "^2.6.3"
+
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -10318,6 +10645,11 @@ get-stdin@^4.0.1:
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
+get-stream@6.0.1, get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
@@ -10337,11 +10669,6 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
-get-stream@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
get-uri@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a"
@@ -10504,6 +10831,13 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl
once "^1.3.0"
path-is-absolute "^1.0.0"
+global-dirs@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+ integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
+ dependencies:
+ ini "2.0.0"
+
global-dirs@^0.1.0, global-dirs@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -10545,6 +10879,18 @@ globby@*, globby@11.0.3, globby@^11.0.0, globby@^11.0.2:
merge2 "^1.3.0"
slash "^3.0.0"
+globby@11.1.0, globby@^11.0.1, globby@^11.0.4:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.2.9"
+ ignore "^5.2.0"
+ merge2 "^1.4.1"
+ slash "^3.0.0"
+
globby@8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
@@ -10558,18 +10904,6 @@ globby@8.0.2:
pify "^3.0.0"
slash "^1.0.0"
-globby@^11.0.4:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
- integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
- dependencies:
- array-union "^2.1.0"
- dir-glob "^3.0.1"
- fast-glob "^3.2.9"
- ignore "^5.2.0"
- merge2 "^1.4.1"
- slash "^3.0.0"
-
globby@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
@@ -10827,7 +11161,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has-yarn@^2.1.0:
+has-yarn@2.1.0, has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
@@ -10839,6 +11173,14 @@ has@^1.0.0, has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+hasha@5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1"
+ integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==
+ dependencies:
+ is-stream "^2.0.0"
+ type-fest "^0.8.0"
+
hasha@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c"
@@ -11005,6 +11347,15 @@ http-errors@~1.6.2:
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
+http-proxy-agent@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
+
http-proxy-agent@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
@@ -11039,6 +11390,14 @@ http2-wrapper@^1.0.0-beta.5.2:
quick-lru "^5.1.1"
resolve-alpn "^1.0.0"
+https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+ integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
https-proxy-agent@^2.2.3:
version "2.2.4"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
@@ -11055,14 +11414,6 @@ https-proxy-agent@^3.0.0:
agent-base "^4.3.0"
debug "^3.1.0"
-https-proxy-agent@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
- integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
- dependencies:
- agent-base "6"
- debug "4"
-
human-interval@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/human-interval/-/human-interval-2.0.1.tgz#655baf606c7067bb26042dcae14ec777b099af15"
@@ -11267,6 +11618,11 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+indent-string@4.0.0, indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
@@ -11279,11 +11635,6 @@ indent-string@^3.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
-indent-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
- integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -11327,6 +11678,11 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@@ -11558,6 +11914,13 @@ is-callable@^1.2.3:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
+is-ci@3.0.1, is-ci@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
+ integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
+ dependencies:
+ ci-info "^3.2.0"
+
is-ci@^1.0.10:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
@@ -11579,13 +11942,6 @@ is-ci@^3.0.0:
dependencies:
ci-info "^3.1.1"
-is-ci@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
- integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
- dependencies:
- ci-info "^3.2.0"
-
is-cidr@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.1.tgz#e92ef121bdec2782271a77ce487a8b8df3718ab7"
@@ -11617,7 +11973,7 @@ is-core-module@^2.2.0:
dependencies:
has "^1.0.3"
-is-core-module@^2.8.0:
+is-core-module@^2.8.0, is-core-module@^2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
@@ -11831,6 +12187,11 @@ is-observable@^1.1.0:
dependencies:
symbol-observable "^1.1.0"
+is-path-cwd@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+ integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
@@ -11838,6 +12199,11 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
+is-path-inside@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@@ -13128,6 +13494,13 @@ lazy-property@~1.0.0:
resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147"
integrity sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=
+lazystream@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
+ integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
+ dependencies:
+ readable-stream "^2.0.5"
+
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -13652,6 +14025,11 @@ lodash.defaults@^4.2.0:
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
+lodash.difference@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
+ integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
+
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
@@ -13788,7 +14166,7 @@ lodash.toarray@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
-lodash.union@~4.6.0:
+lodash.union@^4.6.0, lodash.union@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
@@ -13974,6 +14352,13 @@ mailgun-js@^0.22.0:
proxy-agent "^3.0.3"
tsscmp "^1.0.6"
+make-dir@3.1.0, make-dir@^3.0.0, make-dir@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -13989,13 +14374,6 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.0, make-dir@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
- integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
- dependencies:
- semver "^6.0.0"
-
make-error@1.x, make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
@@ -14418,6 +14796,13 @@ minimatch@3.0.4, minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
+minimatch@^3.0.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
minimist-options@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
@@ -14788,6 +15173,11 @@ ms@2.1.2, ms@^2.0.0, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ms@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
msal@^1.0.2:
version "1.4.12"
resolved "https://registry.yarnpkg.com/msal/-/msal-1.4.12.tgz#a7da09623c99c2dd652823768401935fe996e32e"
@@ -14979,6 +15369,11 @@ new-find-package-json@^1.1.0:
debug "^4.3.2"
tslib "^2.3.0"
+new-github-issue-url@0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz#e17be1f665a92de465926603e44b9f8685630c1d"
+ integrity sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==
+
next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
@@ -15041,6 +15436,13 @@ node-fetch-npm@^2.0.2:
json-parse-better-errors "^1.0.0"
safe-buffer "^5.1.1"
+node-fetch@2.6.7, node-fetch@^2.6.7:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+ integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ dependencies:
+ whatwg-url "^5.0.0"
+
node-fetch@^2.6.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0"
@@ -15051,13 +15453,6 @@ node-fetch@^2.6.1, node-fetch@~2.6.1:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
-node-fetch@^2.6.7:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
- dependencies:
- whatwg-url "^5.0.0"
-
node-gyp@3.x:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
@@ -15945,7 +16340,7 @@ p-each-series@^2.1.0:
resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==
-p-filter@^2.0.0:
+p-filter@2.1.0, p-filter@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c"
integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==
@@ -16016,6 +16411,13 @@ p-map-series@^2.1.0:
resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2"
integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==
+p-map@4.0.0, p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
p-map@^2.0.0, p-map@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
@@ -16028,13 +16430,6 @@ p-map@^3.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-map@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
- integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
- dependencies:
- aggregate-error "^3.0.0"
-
p-pipe@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e"
@@ -16053,6 +16448,14 @@ p-reduce@^2.0.0, p-reduce@^2.1.0:
resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
+p-retry@4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c"
+ integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==
+ dependencies:
+ "@types/retry" "^0.12.0"
+ retry "^0.13.1"
+
p-retry@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d"
@@ -16377,6 +16780,11 @@ passport@0.4.1:
passport-strategy "1.x.x"
pause "0.0.1"
+path-browserify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+ integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
path-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
@@ -16646,6 +17054,11 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
dependencies:
find-up "^4.0.0"
+pluralize@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
+ integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
+
popper.js@^1.0.2:
version "1.16.1"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
@@ -17087,6 +17500,23 @@ pretty-format@^27.0.0, pretty-format@^27.2.0, pretty-format@^27.5.1:
ansi-styles "^5.0.0"
react-is "^17.0.1"
+prettysize@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-2.0.0.tgz#902c02480d865d9cc0813011c9feb4fa02ce6996"
+ integrity sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg==
+
+printj@~1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/printj/-/printj-1.3.1.tgz#9af6b1d55647a1587ac44f4c1654a4b95b8e12cb"
+ integrity sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==
+
+prisma@^3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.10.0.tgz#872d87afbeb1cbcaa77c3d6a63c125e0d704b04d"
+ integrity sha512-dAld12vtwdz9Rz01nOjmnXe+vHana5PSog8t0XGgLemKsUVsaupYpr74AHaS3s78SaTS5s2HOghnJF+jn91ZrA==
+ dependencies:
+ "@prisma/engines" "3.10.0-50.73e60b76d394f8d37d8ebd1f8918c79029f0db86"
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -17104,7 +17534,7 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
-progress@^2.0.0, progress@^2.0.3:
+progress@2.0.3, progress@^2.0.0, progress@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -17504,6 +17934,15 @@ read-pkg-up@7.0.0:
read-pkg "^5.2.0"
type-fest "^0.8.1"
+read-pkg-up@7.0.1, read-pkg-up@^7.0.0, read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+ dependencies:
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
+
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@@ -17528,15 +17967,6 @@ read-pkg-up@^3.0.0:
find-up "^2.0.0"
read-pkg "^3.0.0"
-read-pkg-up@^7.0.0, read-pkg-up@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
- integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
- dependencies:
- find-up "^4.1.0"
- read-pkg "^5.2.0"
- type-fest "^0.8.1"
-
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -17590,7 +18020,7 @@ read@1, read@1.0.x, read@~1.0.1, read@~1.0.7:
dependencies:
mute-stream "~0.0.4"
-"readable-stream@1 || 2", readable-stream@2, readable-stream@2.3.7, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@2, readable-stream@2.3.7, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -17632,6 +18062,13 @@ readable-stream@1.1.x, readable-stream@~1.1.10:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readdir-glob@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4"
+ integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==
+ dependencies:
+ minimatch "^3.0.4"
+
readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
@@ -17859,6 +18296,11 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
+replace-string@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/replace-string/-/replace-string-3.1.0.tgz#77a087d88580fbac59851237891aa4b0e283db72"
+ integrity sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==
+
request-promise-core@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
@@ -17999,6 +18441,15 @@ resolve@1.17.0, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.3.2:
dependencies:
path-parse "^1.0.6"
+resolve@1.22.0:
+ version "1.22.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+ integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+ dependencies:
+ is-core-module "^2.8.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
resolve@^1.1.6:
version "1.21.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f"
@@ -18081,6 +18532,11 @@ retry@^0.10.0:
resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
+retry@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+ integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -18120,7 +18576,7 @@ rimraf@2.6.3:
dependencies:
glob "^7.1.3"
-rimraf@^3.0.0, rimraf@^3.0.2:
+rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -18550,6 +19006,11 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+shell-quote@1.7.3:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
+ integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
+
shelljs@^0.8.3:
version "0.8.5"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
@@ -19217,6 +19678,15 @@ string-similarity@^4.0.1:
resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b"
integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==
+string-width@4.2.3, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@@ -19252,15 +19722,6 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
-string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
string-width@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3"
@@ -19342,6 +19803,13 @@ stringify-package@^1.0.0, stringify-package@^1.0.1:
resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85"
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
+strip-ansi@6.0.1, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -19370,13 +19838,6 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
-strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
@@ -19411,6 +19872,13 @@ strip-final-newline@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-indent@3.0.0, strip-indent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+ integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+ dependencies:
+ min-indent "^1.0.0"
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
@@ -19418,13 +19886,6 @@ strip-indent@^1.0.1:
dependencies:
get-stdin "^4.0.1"
-strip-indent@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
- integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
- dependencies:
- min-indent "^1.0.0"
-
strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -19644,6 +20105,29 @@ tar-stream@^2.1.4:
inherits "^2.0.3"
readable-stream "^3.1.1"
+tar-stream@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
+tar@6.1.11:
+ version "6.1.11"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+ integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
tar@^2.0.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
@@ -19724,17 +20208,17 @@ tedious@^6.7.0:
readable-stream "^3.4.0"
sprintf-js "^1.1.2"
+temp-dir@2.0.0, temp-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
+ integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
+
temp-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
-temp-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
- integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
-
-temp-write@^4.0.0:
+temp-write@4.0.0, temp-write@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320"
integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==
@@ -19745,6 +20229,17 @@ temp-write@^4.0.0:
temp-dir "^1.0.0"
uuid "^3.3.2"
+tempy@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de"
+ integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==
+ dependencies:
+ del "^6.0.0"
+ is-stream "^2.0.0"
+ temp-dir "^2.0.0"
+ type-fest "^0.16.0"
+ unique-string "^2.0.0"
+
tempy@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.5.0.tgz#2785c89df39fcc4d1714fc554813225e1581d70b"
@@ -19762,7 +20257,7 @@ term-size@^1.2.0:
dependencies:
execa "^0.7.0"
-terminal-link@^2.0.0:
+terminal-link@2.1.1, terminal-link@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
@@ -19906,6 +20401,13 @@ tiny-relative-date@^1.3.0:
resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07"
integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==
+tmp@0.2.1, tmp@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
+ integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+ dependencies:
+ rimraf "^3.0.0"
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -19913,13 +20415,6 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmp@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
- integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
- dependencies:
- rimraf "^3.0.0"
-
tmpl@1.0.x:
version "1.0.5"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
@@ -20087,6 +20582,14 @@ ts-mockito@^2.6.1:
dependencies:
lodash "^4.17.5"
+ts-morph@^12.0.0:
+ version "12.2.0"
+ resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.2.0.tgz#3332319cecd44aff0b7b410f1fe39637499b1a1b"
+ integrity sha512-WHXLtFDcIRwoqaiu0elAoZ/AmI+SwwDafnPKjgJmdwJ2gRVO0jMKBt88rV2liT/c6MTsXyuWbGFiHe9MRddWJw==
+ dependencies:
+ "@ts-morph/common" "~0.11.1"
+ code-block-writer "^10.1.1"
+
ts-node@^10.2.1:
version "10.2.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5"
@@ -20242,6 +20745,11 @@ type-fest@^0.13.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+type-fest@^0.16.0:
+ version "0.16.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
+ integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
+
type-fest@^0.18.0:
version "0.18.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
@@ -20380,6 +20888,11 @@ unbox-primitive@^1.0.1:
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz#dd7c23a195db34267186044649870ff1bab5929e"
integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==
+undici@3.3.6:
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-3.3.6.tgz#06d3b97b7eeff46bce6f8a71079c09f64dd59dc1"
+ integrity sha512-/j3YTZ5AobMB4ZrTY72mzM54uFUX32v0R/JRW9G2vOyF1uSKYAx+WT8dMsAcRS13TOFISv094TxIyWYk+WEPsA==
+
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -21414,3 +21927,12 @@ zen-observable@^0.8.0:
version "0.8.15"
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==
+
+zip-stream@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
+ integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
+ dependencies:
+ archiver-utils "^2.1.0"
+ compress-commons "^4.1.0"
+ readable-stream "^3.6.0"