commit 621e15dd02113c799b741a93d553adae4b66b9af Author: ahasani194 Date: Thu Dec 4 21:05:57 2025 +0330 feat: implement inventory, product brand, product category, product info, product, role, store, user, and vendor modules with CRUD operations - Added Create and Update DTOs for Inventory, Product Brand, Product Category, Product Info, Product, Role, Store, User, and Vendor. - Implemented InventoriesController, ProductBrandsController, ProductCategoriesController, ProductInfoController, ProductsController, RolesController, StoresController, UsersController, and VendorsController with respective CRUD endpoints. - Developed InventoriesService, ProductBrandsService, ProductCategoriesService, ProductInfoService, ProductsService, RolesService, StoresService, UsersService, and VendorsService to handle business logic. - Created PrismaModule and PrismaService for database interactions using Prisma with MariaDB adapter. - Configured application with Swagger for API documentation and added global interceptors for logging and response mapping. - Established e2e testing setup with Jest for the application. diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7cd591f --- /dev/null +++ b/.eslintignore @@ -0,0 +1,8 @@ +dist +node_modules +coverage +.env +.vscode +.DS_Store +.idea +*.log diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78cff21 --- /dev/null +++ b/.gitignore @@ -0,0 +1,58 @@ +# compiled output +/dist +/node_modules +/build + +# Logs +logs +*.log +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# OS +.DS_Store + +# Tests +/coverage +/.nyc_output + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# temp directory +.temp +.tmp + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +/generated/prisma diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..5651180 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +node_modules +dist +coverage +.prisma +.env +.vscode +.DS_Store +.idea +*.log diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..8cc38fa --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "arrowParens": "avoid", + "bracketSpacing": true, + "plugins": ["prettier-plugin-prisma"], + "printWidth": 90, + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7cdc69f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + // Prettier for TS and JS + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + // Prisma formatting + "[prisma]": { + "editor.defaultFormatter": "Prisma.prisma", + "editor.formatOnSave": true + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "editor.formatOnSave": true +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..d30c946 --- /dev/null +++ b/README.md @@ -0,0 +1,98 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Discord +Backers on Open Collective +Sponsors on Open Collective + Donate us + Support us + Follow us on Twitter +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Project setup + +```bash +$ pnpm install +``` + +## Compile and run the project + +```bash +# development +$ pnpm run start + +# watch mode +$ pnpm run start:dev + +# production mode +$ pnpm run start:prod +``` + +## Run tests + +```bash +# unit tests +$ pnpm run test + +# e2e tests +$ pnpm run test:e2e + +# test coverage +$ pnpm run test:cov +``` + +## Deployment + +When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information. + +If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps: + +```bash +$ pnpm install -g @nestjs/mau +$ mau deploy +``` + +With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure. + +## Resources + +Check out a few resources that may come in handy when working with NestJS: + +- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework. +- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy). +- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/). +- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks. +- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com). +- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com). +- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs). +- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com). + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE). diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..97910d4 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,37 @@ +// eslint.config.js +import js from '@eslint/js'; +import nestPlugin from '@nestjs/eslint-plugin'; +import prettier from 'eslint-config-prettier'; +import eslintPluginPrettier from 'eslint-plugin-prettier'; +import tseslint from 'typescript-eslint'; + +export default [ + js.configs.recommended, + + ...tseslint.configs.recommended, + + { + files: ['**/*.ts'], + plugins: { + '@nestjs': nestPlugin, + prettier: eslintPluginPrettier, + }, + rules: { + ...nestPlugin.configs.recommended.rules, + + // Prettier errors inside ESLint + 'prettier/prettier': 'error', + + // NestJS & TS recommended rule overrides + '@typescript-eslint/no-unused-vars': [ + 'error', + { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, + ], + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'warn', + }, + }, + + // Disable formatting rules that conflict with Prettier + prettier, +]; diff --git a/nest-cli.json b/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8663c73 --- /dev/null +++ b/package.json @@ -0,0 +1,77 @@ +{ + "author": "", + "dependencies": { + "@nestjs/common": "^11.0.1", + "@nestjs/core": "^11.0.1", + "@nestjs/platform-express": "^11.0.1", + "@nestjs/swagger": "^11.2.3", + "@prisma/adapter-mariadb": "^7.1.0", + "@prisma/client": "^7.1.0", + "dotenv": "^17.2.3", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.1" + }, + "description": "", + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@nestjs/cli": "^11.0.0", + "@nestjs/schematics": "^11.0.0", + "@nestjs/testing": "^11.0.1", + "@types/express": "^5.0.0", + "@types/jest": "^30.0.0", + "@types/node": "^22.10.7", + "@types/supertest": "^6.0.2", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2", + "globals": "^16.0.0", + "jest": "^30.0.0", + "prettier": "^3.4.2", + "prettier-plugin-prisma": "^5.0.0", + "prisma": "^7.1.0", + "source-map-support": "^0.5.21", + "supertest": "^7.0.0", + "ts-jest": "^29.2.5", + "ts-loader": "^9.5.2", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.3", + "typescript-eslint": "^8.20.0" + }, + "jest": { + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testEnvironment": "node", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } + }, + "license": "UNLICENSED", + "name": "api", + "private": true, + "scripts": { + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "start": "nest start", + "start:debug": "nest start --debug --watch", + "start:dev": "nest start --watch", + "start:prod": "node dist/main", + "test": "jest", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json", + "test:watch": "jest --watch" + }, + "version": "0.0.1" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0c2334b --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7001 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@nestjs/common': + specifier: ^11.0.1 + version: 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': + specifier: ^11.0.1 + version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/platform-express': + specifier: ^11.0.1 + version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + '@nestjs/swagger': + specifier: ^11.2.3 + version: 11.2.3(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2) + '@prisma/adapter-mariadb': + specifier: ^7.1.0 + version: 7.1.0 + '@prisma/client': + specifier: ^7.1.0 + version: 7.1.0(prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3))(typescript@5.9.3) + dotenv: + specifier: ^17.2.3 + version: 17.2.3 + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 + rxjs: + specifier: ^7.8.1 + version: 7.8.2 + devDependencies: + '@eslint/eslintrc': + specifier: ^3.2.0 + version: 3.3.3 + '@eslint/js': + specifier: ^9.18.0 + version: 9.39.1 + '@nestjs/cli': + specifier: ^11.0.0 + version: 11.0.14(@types/node@22.19.1) + '@nestjs/schematics': + specifier: ^11.0.0 + version: 11.0.9(chokidar@4.0.3)(typescript@5.9.3) + '@nestjs/testing': + specifier: ^11.0.1 + version: 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9) + '@types/express': + specifier: ^5.0.0 + version: 5.0.6 + '@types/jest': + specifier: ^30.0.0 + version: 30.0.0 + '@types/node': + specifier: ^22.10.7 + version: 22.19.1 + '@types/supertest': + specifier: ^6.0.2 + version: 6.0.3 + eslint: + specifier: ^9.18.0 + version: 9.39.1(jiti@2.6.1) + eslint-config-prettier: + specifier: ^10.0.1 + version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-prettier: + specifier: ^5.2.2 + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) + globals: + specifier: ^16.0.0 + version: 16.5.0 + jest: + specifier: ^30.0.0 + version: 30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + prettier: + specifier: ^3.4.2 + version: 3.7.4 + prettier-plugin-prisma: + specifier: ^5.0.0 + version: 5.0.0(prettier@3.7.4) + prisma: + specifier: ^7.1.0 + version: 7.1.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) + source-map-support: + specifier: ^0.5.21 + version: 0.5.21 + supertest: + specifier: ^7.0.0 + version: 7.1.4 + ts-jest: + specifier: ^29.2.5 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)))(typescript@5.9.3) + ts-loader: + specifier: ^9.5.2 + version: 9.5.4(typescript@5.9.3)(webpack@5.103.0) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@22.19.1)(typescript@5.9.3) + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.20.0 + version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + +packages: + + '@angular-devkit/core@19.2.17': + resolution: {integrity: sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/core@19.2.19': + resolution: {integrity: sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/schematics-cli@19.2.19': + resolution: {integrity: sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + + '@angular-devkit/schematics@19.2.17': + resolution: {integrity: sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-devkit/schematics@19.2.19': + resolution: {integrity: sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@borewit/text-codec@0.1.1': + resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + + '@chevrotain/cst-dts-gen@10.5.0': + resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==} + + '@chevrotain/gast@10.5.0': + resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==} + + '@chevrotain/types@10.5.0': + resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==} + + '@chevrotain/utils@10.5.0': + resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@electric-sql/pglite-socket@0.0.6': + resolution: {integrity: sha512-6RjmgzphIHIBA4NrMGJsjNWK4pu+bCWJlEWlwcxFTVY3WT86dFpKwbZaGWZV6C5Rd7sCk1Z0CI76QEfukLAUXw==} + hasBin: true + peerDependencies: + '@electric-sql/pglite': 0.3.2 + + '@electric-sql/pglite-tools@0.2.7': + resolution: {integrity: sha512-9dAccClqxx4cZB+Ar9B+FZ5WgxDc/Xvl9DPrTWv+dYTf0YNubLzi4wHHRGRGhrJv15XwnyKcGOZAP1VXSneSUg==} + peerDependencies: + '@electric-sql/pglite': 0.3.2 + + '@electric-sql/pglite@0.3.2': + resolution: {integrity: sha512-zfWWa+V2ViDCY/cmUfRqeWY1yLto+EpxjXnZzenB1TyxsTiXaTWeZFIZw6mac52BsuQm0RjCnisjBtdBaXOI6w==} + + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@hono/node-server@1.19.6': + resolution: {integrity: sha512-Shz/KjlIeAhfiuE93NDKVdZ7HdBVLQAfdbaXEaoAVO3ic9ibRSLGIQGkcBbFyuLr+7/1D5ZCINM8B+6IvXeMtw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.3.2': + resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@30.2.0': + resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/core@30.2.0': + resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect-utils@30.2.0': + resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect@30.2.0': + resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/globals@30.2.0': + resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.2.0': + resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/snapshot-utils@30.2.0': + resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-result@30.2.0': + resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-sequencer@30.2.0': + resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@lukeed/csprng@1.1.0': + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} + engines: {node: '>=8'} + + '@microsoft/tsdoc@0.16.0': + resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} + + '@mrleebo/prisma-ast@0.12.1': + resolution: {integrity: sha512-JwqeCQ1U3fvccttHZq7Tk0m/TMC6WcFAQZdukypW3AzlJYKYTGNVd1ANU2GuhKnv4UQuOFj3oAl0LLG/gxFN1w==} + engines: {node: '>=16'} + + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + + '@nestjs/cli@11.0.14': + resolution: {integrity: sha512-YwP03zb5VETTwelXU+AIzMVbEZKk/uxJL+z9pw0mdG9ogAtqZ6/mpmIM4nEq/NU8D0a7CBRLcMYUmWW/55pfqw==} + engines: {node: '>= 20.11'} + hasBin: true + peerDependencies: + '@swc/cli': ^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 + '@swc/core': ^1.3.62 + peerDependenciesMeta: + '@swc/cli': + optional: true + '@swc/core': + optional: true + + '@nestjs/common@11.1.9': + resolution: {integrity: sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ==} + peerDependencies: + class-transformer: '>=0.4.1' + class-validator: '>=0.13.2' + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + + '@nestjs/core@11.1.9': + resolution: {integrity: sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw==} + engines: {node: '>= 20'} + peerDependencies: + '@nestjs/common': ^11.0.0 + '@nestjs/microservices': ^11.0.0 + '@nestjs/platform-express': ^11.0.0 + '@nestjs/websockets': ^11.0.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + + '@nestjs/mapped-types@2.1.0': + resolution: {integrity: sha512-W+n+rM69XsFdwORF11UqJahn4J3xi4g/ZEOlJNL6KoW5ygWSmBB2p0S2BZ4FQeS/NDH72e6xIcu35SfJnE8bXw==} + peerDependencies: + '@nestjs/common': ^10.0.0 || ^11.0.0 + class-transformer: ^0.4.0 || ^0.5.0 + class-validator: ^0.13.0 || ^0.14.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + + '@nestjs/platform-express@11.1.9': + resolution: {integrity: sha512-GVd3+0lO0mJq2m1kl9hDDnVrX3Nd4oH3oDfklz0pZEVEVS0KVSp63ufHq2Lu9cyPdSBuelJr9iPm2QQ1yX+Kmw==} + peerDependencies: + '@nestjs/common': ^11.0.0 + '@nestjs/core': ^11.0.0 + + '@nestjs/schematics@11.0.9': + resolution: {integrity: sha512-0NfPbPlEaGwIT8/TCThxLzrlz3yzDNkfRNpbL7FiplKq3w4qXpJg0JYwqgMEJnLQZm3L/L/5XjoyfJHUO3qX9g==} + peerDependencies: + typescript: '>=4.8.2' + + '@nestjs/swagger@11.2.3': + resolution: {integrity: sha512-a0xFfjeqk69uHIUpP8u0ryn4cKuHdra2Ug96L858i0N200Hxho+n3j+TlQXyOF4EstLSGjTfxI1Xb2E1lUxeNg==} + peerDependencies: + '@fastify/static': ^8.0.0 + '@nestjs/common': ^11.0.1 + '@nestjs/core': ^11.0.1 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 || ^0.2.0 + peerDependenciesMeta: + '@fastify/static': + optional: true + class-transformer: + optional: true + class-validator: + optional: true + + '@nestjs/testing@11.1.9': + resolution: {integrity: sha512-UFxerBDdb0RUNxQNj25pvkvNE7/vxKhXYWBt3QuwBFnYISzRIzhVlyIqLfoV5YI3zV0m0Nn4QAn1KM0zzwfEng==} + peerDependencies: + '@nestjs/common': ^11.0.0 + '@nestjs/core': ^11.0.0 + '@nestjs/microservices': ^11.0.0 + '@nestjs/platform-express': ^11.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@nuxt/opencollective@0.4.1': + resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} + engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} + hasBin: true + + '@paralleldrive/cuid2@2.3.1': + resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@prisma/adapter-mariadb@7.1.0': + resolution: {integrity: sha512-my5vKT6J4zRi5nNmLxosMafdQCk7tZgQHZ11mfaeFKh8xrJSEjFn0TFa1py8khHvFMvnadKUWdctjPpoJuxSBQ==} + + '@prisma/client-runtime-utils@7.1.0': + resolution: {integrity: sha512-39xmeBrNTN40FzF34aJMjfX1PowVCqoT3UKUWBBSP3aXV05NRqGBC3x2wCDs96ti6ZgdiVzqnRDHtbzU8X+lPQ==} + + '@prisma/client@7.1.0': + resolution: {integrity: sha512-qf7GPYHmS/xybNiSOpzv9wBo+UwqfL2PeyX+08v+KVHDI0AlSCQIh5bBySkH3alu06NX9wy98JEnckhMHoMFfA==} + engines: {node: ^20.19 || ^22.12 || >=24.0} + peerDependencies: + prisma: '*' + typescript: '>=5.4.0' + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true + + '@prisma/config@7.1.0': + resolution: {integrity: sha512-Uz+I43Wn1RYNHtuYtOhOnUcNMWp2Pd3GUDDKs37xlHptCGpzEG3MRR9L+8Y2ISMsMI24z/Ni+ww6OB/OO8M0sQ==} + + '@prisma/debug@6.8.2': + resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==} + + '@prisma/debug@7.1.0': + resolution: {integrity: sha512-pPAckG6etgAsEBusmZiFwM9bldLSNkn++YuC4jCTJACdK5hLOVnOzX7eSL2FgaU6Gomd6wIw21snUX2dYroMZQ==} + + '@prisma/dev@0.15.0': + resolution: {integrity: sha512-KhWaipnFlS/fWEs6I6Oqjcy2S08vKGmxJ5LexqUl/3Ve0EgLUsZwdKF0MvqPM5F5ttw8GtfZarjM5y7VLwv9Ow==} + + '@prisma/driver-adapter-utils@7.1.0': + resolution: {integrity: sha512-AlVLzeXkw81+47MvQ9M8DvTiHkRfJ8xzklTbYjpskb0cTTDVHboTI/OVwT6Wcep/bNvfLKJYO0nylBiM5rxgww==} + + '@prisma/engines-version@7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba': + resolution: {integrity: sha512-qZUevUh+yPhGT28rDQnV8V2kLnFjirzhVD67elRPIJHRsUV/mkII10HSrJrhK/U2GYgAxXR2VEREtq7AsfS8qw==} + + '@prisma/engines@7.1.0': + resolution: {integrity: sha512-KQlraOybdHAzVv45KWKJzpR9mJLkib7/TyApQpqrsL7FUHfgjIcy8jrVGt3iNfG6/GDDl+LNlJ84JSQwIfdzxA==} + + '@prisma/fetch-engine@7.1.0': + resolution: {integrity: sha512-GZYF5Q8kweXWGfn87hTu17kw7x1DgnehgKoE4Zg1BmHYF3y1Uu0QRY/qtSE4veH3g+LW8f9HKqA0tARG66bxxQ==} + + '@prisma/get-platform@6.8.2': + resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==} + + '@prisma/get-platform@7.1.0': + resolution: {integrity: sha512-lq8hMdjKiZftuT5SssYB3EtQj8+YjL24/ZTLflQqzFquArKxBcyp6Xrblto+4lzIKJqnpOjfMiBjMvl7YuD7+Q==} + + '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': + resolution: {integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==} + + '@prisma/query-plan-executor@6.18.0': + resolution: {integrity: sha512-jZ8cfzFgL0jReE1R10gT8JLHtQxjWYLiQ//wHmVYZ2rVkFHoh0DT8IXsxcKcFlfKN7ak7k6j0XMNn2xVNyr5cA==} + + '@prisma/studio-core@0.8.2': + resolution: {integrity: sha512-/iAEWEUpTja+7gVMu1LtR2pPlvDmveAwMHdTWbDeGlT7yiv0ZTCPpmeAGdq/Y9aJ9Zj1cEGBXGRbmmNPj022PQ==} + peerDependencies: + '@types/react': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + + '@scarf/scarf@1.4.0': + resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} + + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@tokenizer/inflate@0.3.1': + resolution: {integrity: sha512-4oeoZEBQdLdt5WmP/hx1KZ6D3/Oid/0cUb2nk4F0pTDAWy+KCH3/EnAkZF/bvckWo8I33EqBm01lIPgmgc8rCA==} + engines: {node: '>=18'} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cookiejar@2.1.5': + resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/express-serve-static-core@5.1.0': + resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/methods@1.1.4': + resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} + + '@types/node@22.19.1': + resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} + + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react@19.2.7': + resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/superagent@8.1.9': + resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} + + '@types/supertest@6.0.3': + resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@typescript-eslint/eslint-plugin@8.48.1': + resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.48.1 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.48.1': + resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.48.1': + resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.48.1': + resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.48.1': + resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.48.1': + resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.48.1': + resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.48.1': + resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.48.1': + resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.48.1': + resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + append-field@1.0.0: + resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} + + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.9.0: + resolution: {integrity: sha512-Mh++g+2LPfzZToywfE1BUzvZbfOY52Nil0rn9H1CPC5DJ7fX+Vir7nToBeoiSbB1zTNeGYbELEvJESujgGrzXw==} + hasBin: true + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@2.2.1: + resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} + engines: {node: '>=18'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + c12@3.1.0: + resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001759: + resolution: {integrity: sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + + chevrotain@10.5.0: + resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + cjs-module-lexer@2.1.1: + resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + comment-json@4.4.1: + resolution: {integrity: sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==} + engines: {node: '>= 6'} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + engines: {node: '>=18'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge-ts@7.1.5: + resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} + engines: {node: '>=16.0.0'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + effect@3.18.4: + resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==} + + electron-to-chromium@1.5.264: + resolution: {integrity: sha512-1tEf0nLgltC3iy9wtlYDlQDc5Rg9lEKVjEmIHJ21rI9OcqkvD45K1oyNIRA4rR1z3LgJ7KeGzEBojVcV6m4qjA==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.5.4: + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} + engines: {node: '>= 0.8.0'} + + expect@30.2.0: + resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + fast-check@3.23.2: + resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-type@21.1.0: + resolution: {integrity: sha512-boU4EHmP3JXkwDo4uhyBhTt5pPstxB6eEXKJBu2yu2l7aAMMm7QQYQEzssJmKReZYrFdFOJS8koVo6bXIBGDqA==} + engines: {node: '>=20'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@9.1.0: + resolution: {integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==} + engines: {node: '>=14.21.3'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.11.0 + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + formidable@3.5.4: + resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} + engines: {node: '>=14.0.0'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-monkey@1.1.0: + resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + giget@2.0.0: + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} + hasBin: true + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + hasBin: true + + glob@13.0.0: + resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} + engines: {node: 20 || >=22} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + grammex@3.1.12: + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hono@4.10.6: + resolution: {integrity: sha512-BIdolzGpDO9MQ4nu3AUuDwHZZ+KViNm+EZ75Ae55eMXMqLVhDFqEMXxtUe9Qh8hjL+pIna/frs2j6Y2yD5Ua/g==} + engines: {node: '>=16.9.0'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + iterare@1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} + engines: {node: '>=6'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jest-changed-files@30.2.0: + resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-circus@30.2.0: + resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-cli@30.2.0: + resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@30.2.0: + resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true + + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-each@30.2.0: + resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-environment-node@30.2.0: + resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-leak-detector@30.2.0: + resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-resolve-dependencies@30.2.0: + resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-resolve@30.2.0: + resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-runner@30.2.0: + resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-runtime@30.2.0: + resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-snapshot@30.2.0: + resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-validate@30.2.0: + resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-watcher@30.2.0: + resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest@30.2.0: + resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-esm@1.0.3: + resolution: {integrity: sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==} + engines: {node: '>=13.2.0'} + + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + engines: {node: '>=6.11.5'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lru.min@1.1.3: + resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + mariadb@3.4.5: + resolution: {integrity: sha512-gThTYkhIS5rRqkVr+Y0cIdzr+GRqJ9sA2Q34e0yzmyhMCwyApf3OKAC1jnF23aSlIOqJuyaUFUcj7O1qZslmmQ==} + engines: {node: '>= 14'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multer@2.0.2: + resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==} + engines: {node: '>= 10.16.0'} + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + mysql2@3.15.3: + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} + engines: {node: '>= 8.0'} + + named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} + engines: {node: '>=12.0.0'} + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + + node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nypm@0.6.2: + resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postgres@3.4.7: + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} + engines: {node: '>=12'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier-plugin-prisma@5.0.0: + resolution: {integrity: sha512-jTJV04D9+yF7ziOOMs7CJe4ijgAH7DEGjt0SAWAToGNRy1H6BEhvcKA2UQH6gC6KVW5zeeOSAvsoiDDTt9oKXg==} + engines: {node: '>=14', npm: '>=8'} + peerDependencies: + prettier: '>=2 || >=3' + + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + prisma@7.1.0: + resolution: {integrity: sha512-dy/3urE4JjhdiW5b09pGjVhGI7kPESK2VlCDrCqeYK5m5SslAtG5FCGnZWP7E8Sdg+Ow1wV2mhJH5RTFL5gEsw==} + engines: {node: ^20.19 || ^22.12 || >=24.0} + hasBin: true + peerDependencies: + better-sqlite3: '>=9.0.0' + typescript: '>=5.4.0' + peerDependenciesMeta: + better-sqlite3: + optional: true + typescript: + optional: true + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + react-dom@19.2.1: + resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} + peerDependencies: + react: ^19.2.1 + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react@19.2.1: + resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + + regexp-to-ast@0.5.0: + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + + remeda@2.21.3: + resolution: {integrity: sha512-XXrZdLA10oEOQhLLzEJEiFFSKi21REGAkHdImIb4rt/XXy8ORGXh5HCcpUOsElfPNDb+X6TA/+wkh+p2KffYmg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strtok3@10.3.4: + resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} + engines: {node: '>=18'} + + superagent@10.2.3: + resolution: {integrity: sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==} + engines: {node: '>=14.18.0'} + + supertest@7.1.4: + resolution: {integrity: sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==} + engines: {node: '>=14.18.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + swagger-ui-dist@5.30.2: + resolution: {integrity: sha512-HWCg1DTNE/Nmapt+0m2EPXFwNKNeKK4PwMjkwveN/zn1cV2Kxi9SURd+m0SpdcSgWEK/O64sf8bzXdtUhigtHA==} + + symbol-observable@4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} + engines: {node: '>=0.10'} + + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + token-types@6.1.1: + resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} + engines: {node: '>=14.16'} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-jest@29.4.6: + resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 + esbuild: '*' + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + jest-util: + optional: true + + ts-loader@9.5.4: + resolution: {integrity: sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tsconfig-paths-webpack-plugin@4.2.0: + resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} + engines: {node: '>=10.13.0'} + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript-eslint@8.48.1: + resolution: {integrity: sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + uid@2.0.2: + resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} + engines: {node: '>=8'} + + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + update-browserslist-db@1.2.1: + resolution: {integrity: sha512-R9NcHbbZ45RoWfTdhn1J9SS7zxNvlddv4YRrHTUaFdtjbmfncfedB45EC9IaqJQ97iAR1GZgOfyRQO+ExIF6EQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + engines: {node: '>=10.13.0'} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webpack-node-externals@3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} + + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} + + webpack@5.103.0: + resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + zeptomatch@2.0.2: + resolution: {integrity: sha512-H33jtSKf8Ijtb5BW6wua3G5DhnFjbFML36eFu+VdOoVY4HD9e7ggjqdM6639B+L87rjnR6Y+XeRzBXZdy52B/g==} + +snapshots: + + '@angular-devkit/core@19.2.17(chokidar@4.0.3)': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + jsonc-parser: 3.3.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + + '@angular-devkit/core@19.2.19(chokidar@4.0.3)': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + jsonc-parser: 3.3.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + + '@angular-devkit/schematics-cli@19.2.19(@types/node@22.19.1)(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.19(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.19(chokidar@4.0.3) + '@inquirer/prompts': 7.3.2(@types/node@22.19.1) + ansi-colors: 4.1.3 + symbol-observable: 4.0.0 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@types/node' + - chokidar + + '@angular-devkit/schematics@19.2.17(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/schematics@19.2.19(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.19(chokidar@4.0.3) + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.5': {} + + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@borewit/text-codec@0.1.1': {} + + '@chevrotain/cst-dts-gen@10.5.0': + dependencies: + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/gast@10.5.0': + dependencies: + '@chevrotain/types': 10.5.0 + lodash: 4.17.21 + + '@chevrotain/types@10.5.0': {} + + '@chevrotain/utils@10.5.0': {} + + '@colors/colors@1.5.0': + optional: true + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@electric-sql/pglite-socket@0.0.6(@electric-sql/pglite@0.3.2)': + dependencies: + '@electric-sql/pglite': 0.3.2 + + '@electric-sql/pglite-tools@0.2.7(@electric-sql/pglite@0.3.2)': + dependencies: + '@electric-sql/pglite': 0.3.2 + + '@electric-sql/pglite@0.3.2': {} + + '@emnapi/core@1.7.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': + dependencies: + eslint: 9.39.1(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.1': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@hono/node-server@1.19.6(hono@4.10.6)': + dependencies: + hono: 4.10.6 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@22.19.1)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.1) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/confirm@5.1.21(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/core@10.3.2(@types/node@22.19.1)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.1) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/editor@4.2.23(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/external-editor': 1.0.3(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/expand@4.0.23(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/external-editor@1.0.3(@types/node@22.19.1)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.0 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/number@3.0.23(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/password@4.0.23(@types/node@22.19.1)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/prompts@7.10.1(@types/node@22.19.1)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.19.1) + '@inquirer/confirm': 5.1.21(@types/node@22.19.1) + '@inquirer/editor': 4.2.23(@types/node@22.19.1) + '@inquirer/expand': 4.0.23(@types/node@22.19.1) + '@inquirer/input': 4.3.1(@types/node@22.19.1) + '@inquirer/number': 3.0.23(@types/node@22.19.1) + '@inquirer/password': 4.0.23(@types/node@22.19.1) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.1) + '@inquirer/search': 3.2.2(@types/node@22.19.1) + '@inquirer/select': 4.4.2(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/prompts@7.3.2(@types/node@22.19.1)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.19.1) + '@inquirer/confirm': 5.1.21(@types/node@22.19.1) + '@inquirer/editor': 4.2.23(@types/node@22.19.1) + '@inquirer/expand': 4.0.23(@types/node@22.19.1) + '@inquirer/input': 4.3.1(@types/node@22.19.1) + '@inquirer/number': 3.0.23(@types/node@22.19.1) + '@inquirer/password': 4.0.23(@types/node@22.19.1) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.1) + '@inquirer/search': 3.2.2(@types/node@22.19.1) + '@inquirer/select': 4.4.2(@types/node@22.19.1) + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/rawlist@4.1.11(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/type': 3.0.10(@types/node@22.19.1) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/search@3.2.2(@types/node@22.19.1)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.1) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/select@4.4.2(@types/node@22.19.1)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.1) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.1 + + '@inquirer/type@3.0.10(@types/node@22.19.1)': + optionalDependencies: + '@types/node': 22.19.1 + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + chalk: 4.1.2 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + + '@jest/core@30.2.0(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3))': + dependencies: + '@jest/console': 30.2.0 + '@jest/pattern': 30.0.1 + '@jest/reporters': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 4.3.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + transitivePeerDependencies: + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + '@jest/diff-sequences@30.0.1': {} + + '@jest/environment@30.2.0': + dependencies: + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + jest-mock: 30.2.0 + + '@jest/expect-utils@30.2.0': + dependencies: + '@jest/get-type': 30.1.0 + + '@jest/expect@30.2.0': + dependencies: + expect: 30.2.0 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 22.19.1 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + '@jest/get-type@30.1.0': {} + + '@jest/globals@30.2.0': + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 + transitivePeerDependencies: + - supports-color + + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 22.19.1 + jest-regex-util: 30.0.1 + + '@jest/reporters@30.2.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 22.19.1 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit-x: 0.2.2 + glob: 10.5.0 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 + slash: 3.0.0 + string-length: 4.0.2 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.41 + + '@jest/snapshot-utils@30.2.0': + dependencies: + '@jest/types': 30.2.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.0.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@30.2.0': + dependencies: + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@30.2.0': + dependencies: + '@jest/test-result': 30.2.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + slash: 3.0.0 + + '@jest/transform@30.2.0': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.19.1 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@lukeed/csprng@1.1.0': {} + + '@microsoft/tsdoc@0.16.0': {} + + '@mrleebo/prisma-ast@0.12.1': + dependencies: + chevrotain: 10.5.0 + lilconfig: 2.1.0 + + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nestjs/cli@11.0.14(@types/node@22.19.1)': + dependencies: + '@angular-devkit/core': 19.2.19(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.19(chokidar@4.0.3) + '@angular-devkit/schematics-cli': 19.2.19(@types/node@22.19.1)(chokidar@4.0.3) + '@inquirer/prompts': 7.10.1(@types/node@22.19.1) + '@nestjs/schematics': 11.0.9(chokidar@4.0.3)(typescript@5.9.3) + ansis: 4.2.0 + chokidar: 4.0.3 + cli-table3: 0.6.5 + commander: 4.1.1 + fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.103.0) + glob: 13.0.0 + node-emoji: 1.11.0 + ora: 5.4.1 + tsconfig-paths: 4.2.0 + tsconfig-paths-webpack-plugin: 4.2.0 + typescript: 5.9.3 + webpack: 5.103.0 + webpack-node-externals: 3.0.0 + transitivePeerDependencies: + - '@types/node' + - esbuild + - uglify-js + - webpack-cli + + '@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2)': + dependencies: + file-type: 21.1.0 + iterare: 1.2.1 + load-esm: 1.0.3 + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + tslib: 2.8.1 + uid: 2.0.2 + transitivePeerDependencies: + - supports-color + + '@nestjs/core@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2)': + dependencies: + '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nuxt/opencollective': 0.4.1 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + path-to-regexp: 8.3.0 + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + tslib: 2.8.1 + uid: 2.0.2 + optionalDependencies: + '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + + '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(reflect-metadata@0.2.2)': + dependencies: + '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + reflect-metadata: 0.2.2 + + '@nestjs/platform-express@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)': + dependencies: + '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + cors: 2.8.5 + express: 5.1.0 + multer: 2.0.2 + path-to-regexp: 8.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@nestjs/schematics@11.0.9(chokidar@4.0.3)(typescript@5.9.3)': + dependencies: + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.17(chokidar@4.0.3) + comment-json: 4.4.1 + jsonc-parser: 3.3.1 + pluralize: 8.0.0 + typescript: 5.9.3 + transitivePeerDependencies: + - chokidar + + '@nestjs/swagger@11.2.3(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(reflect-metadata@0.2.2)': + dependencies: + '@microsoft/tsdoc': 0.16.0 + '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(reflect-metadata@0.2.2) + js-yaml: 4.1.1 + lodash: 4.17.21 + path-to-regexp: 8.3.0 + reflect-metadata: 0.2.2 + swagger-ui-dist: 5.30.2 + + '@nestjs/testing@11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9)(@nestjs/platform-express@11.1.9)': + dependencies: + '@nestjs/common': 11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@11.1.9)(reflect-metadata@0.2.2)(rxjs@7.8.2) + tslib: 2.8.1 + optionalDependencies: + '@nestjs/platform-express': 11.1.9(@nestjs/common@11.1.9(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.9) + + '@noble/hashes@1.8.0': {} + + '@nuxt/opencollective@0.4.1': + dependencies: + consola: 3.4.2 + + '@paralleldrive/cuid2@2.3.1': + dependencies: + '@noble/hashes': 1.8.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.9': {} + + '@prisma/adapter-mariadb@7.1.0': + dependencies: + '@prisma/driver-adapter-utils': 7.1.0 + mariadb: 3.4.5 + + '@prisma/client-runtime-utils@7.1.0': {} + + '@prisma/client@7.1.0(prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3))(typescript@5.9.3)': + dependencies: + '@prisma/client-runtime-utils': 7.1.0 + optionalDependencies: + prisma: 7.1.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) + typescript: 5.9.3 + + '@prisma/config@7.1.0': + dependencies: + c12: 3.1.0 + deepmerge-ts: 7.1.5 + effect: 3.18.4 + empathic: 2.0.0 + transitivePeerDependencies: + - magicast + + '@prisma/debug@6.8.2': {} + + '@prisma/debug@7.1.0': {} + + '@prisma/dev@0.15.0(typescript@5.9.3)': + dependencies: + '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite-socket': 0.0.6(@electric-sql/pglite@0.3.2) + '@electric-sql/pglite-tools': 0.2.7(@electric-sql/pglite@0.3.2) + '@hono/node-server': 1.19.6(hono@4.10.6) + '@mrleebo/prisma-ast': 0.12.1 + '@prisma/get-platform': 6.8.2 + '@prisma/query-plan-executor': 6.18.0 + foreground-child: 3.3.1 + get-port-please: 3.1.2 + hono: 4.10.6 + http-status-codes: 2.3.0 + pathe: 2.0.3 + proper-lockfile: 4.1.2 + remeda: 2.21.3 + std-env: 3.9.0 + valibot: 1.2.0(typescript@5.9.3) + zeptomatch: 2.0.2 + transitivePeerDependencies: + - typescript + + '@prisma/driver-adapter-utils@7.1.0': + dependencies: + '@prisma/debug': 7.1.0 + + '@prisma/engines-version@7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba': {} + + '@prisma/engines@7.1.0': + dependencies: + '@prisma/debug': 7.1.0 + '@prisma/engines-version': 7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba + '@prisma/fetch-engine': 7.1.0 + '@prisma/get-platform': 7.1.0 + + '@prisma/fetch-engine@7.1.0': + dependencies: + '@prisma/debug': 7.1.0 + '@prisma/engines-version': 7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba + '@prisma/get-platform': 7.1.0 + + '@prisma/get-platform@6.8.2': + dependencies: + '@prisma/debug': 6.8.2 + + '@prisma/get-platform@7.1.0': + dependencies: + '@prisma/debug': 7.1.0 + + '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': {} + + '@prisma/query-plan-executor@6.18.0': {} + + '@prisma/studio-core@0.8.2(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@types/react': 19.2.7 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + + '@scarf/scarf@1.4.0': {} + + '@sinclair/typebox@0.34.41': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@13.0.5': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@standard-schema/spec@1.0.0': {} + + '@tokenizer/inflate@0.3.1': + dependencies: + debug: 4.4.3 + fflate: 0.8.2 + token-types: 6.1.1 + transitivePeerDependencies: + - supports-color + + '@tokenizer/token@0.3.0': {} + + '@tsconfig/node10@1.0.12': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.19.1 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.19.1 + + '@types/cookiejar@2.1.5': {} + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.8': {} + + '@types/express-serve-static-core@5.1.0': + dependencies: + '@types/node': 22.19.1 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 5.1.0 + '@types/serve-static': 2.2.0 + + '@types/geojson@7946.0.16': {} + + '@types/http-errors@2.0.5': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/jest@30.0.0': + dependencies: + expect: 30.2.0 + pretty-format: 30.2.0 + + '@types/json-schema@7.0.15': {} + + '@types/methods@1.1.4': {} + + '@types/node@22.19.1': + dependencies: + undici-types: 6.21.0 + + '@types/node@24.10.1': + dependencies: + undici-types: 7.16.0 + + '@types/qs@6.14.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/react@19.2.7': + dependencies: + csstype: 3.2.3 + + '@types/send@1.2.1': + dependencies: + '@types/node': 22.19.1 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 22.19.1 + + '@types/stack-utils@2.0.3': {} + + '@types/superagent@8.1.9': + dependencies: + '@types/cookiejar': 2.1.5 + '@types/methods': 1.1.4 + '@types/node': 22.19.1 + form-data: 4.0.5 + + '@types/supertest@6.0.3': + dependencies: + '@types/methods': 1.1.4 + '@types/superagent': 8.1.9 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/type-utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 + eslint: 9.39.1(jiti@2.6.1) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 + debug: 4.4.3 + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.48.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.48.1': + dependencies: + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 + + '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.1(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.48.1': {} + + '@typescript-eslint/typescript-estree@8.48.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.48.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 + debug: 4.4.3 + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.48.1': + dependencies: + '@typescript-eslint/types': 8.48.1 + eslint-visitor-keys: 4.2.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 + + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.3: {} + + ansis@4.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + append-field@1.0.0: {} + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-timsort@1.0.3: {} + + asap@2.0.6: {} + + asynckit@0.4.0: {} + + aws-ssl-profiles@1.1.2: {} + + babel-jest@30.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@30.2.0: + dependencies: + '@types/babel__core': 7.20.5 + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-jest@30.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.9.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + body-parser@2.2.1: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.0 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.0 + caniuse-lite: 1.0.30001759 + electron-to-chromium: 1.5.264 + node-releases: 2.0.27 + update-browserslist-db: 1.2.1(browserslist@4.28.1) + + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + bytes@3.1.2: {} + + c12@3.1.0: + dependencies: + chokidar: 4.0.3 + confbox: 0.2.2 + defu: 6.1.4 + dotenv: 16.6.1 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001759: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chardet@2.1.1: {} + + chevrotain@10.5.0: + dependencies: + '@chevrotain/cst-dts-gen': 10.5.0 + '@chevrotain/gast': 10.5.0 + '@chevrotain/types': 10.5.0 + '@chevrotain/utils': 10.5.0 + lodash: 4.17.21 + regexp-to-ast: 0.5.0 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chrome-trace-event@1.0.4: {} + + ci-info@4.3.1: {} + + citty@0.1.6: + dependencies: + consola: 3.4.2 + + cjs-module-lexer@2.1.1: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + co@4.6.0: {} + + collect-v8-coverage@1.0.3: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + commander@4.1.1: {} + + comment-json@4.4.1: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + + component-emitter@1.3.1: {} + + concat-map@0.0.1: {} + + concat-stream@2.0.0: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + + confbox@0.2.2: {} + + consola@3.4.2: {} + + content-disposition@1.0.1: {} + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + + cookiejar@2.1.4: {} + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@8.3.6(typescript@5.9.3): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.1.1 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.9.3 + + create-require@1.1.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + dedent@1.7.0: {} + + deep-is@0.1.4: {} + + deepmerge-ts@7.1.5: {} + + deepmerge@4.3.1: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + denque@2.1.0: {} + + depd@2.0.0: {} + + destr@2.0.5: {} + + detect-newline@3.1.0: {} + + dezalgo@1.0.4: + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + + diff@4.0.2: {} + + dotenv@16.6.1: {} + + dotenv@17.2.3: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + effect@3.18.4: + dependencies: + '@standard-schema/spec': 1.0.0 + fast-check: 3.23.2 + + electron-to-chromium@1.5.264: {} + + emittery@0.13.1: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + empathic@2.0.0: {} + + encodeurl@2.0.0: {} + + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)): + dependencies: + eslint: 9.39.1(jiti@2.6.1) + + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4): + dependencies: + eslint: 9.39.1(jiti@2.6.1) + prettier: 3.7.4 + prettier-linter-helpers: 1.0.0 + synckit: 0.11.11 + optionalDependencies: + '@types/eslint': 9.6.1 + eslint-config-prettier: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.1(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + events@3.3.0: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit-x@0.2.2: {} + + expect@30.2.0: + dependencies: + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.1 + content-disposition: 1.0.1 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + exsolve@1.0.8: {} + + fast-check@3.23.2: + dependencies: + pure-rand: 6.1.0 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-safe-stringify@2.1.1: {} + + fast-uri@3.1.0: {} + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fflate@0.8.2: {} + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-type@21.1.0: + dependencies: + '@tokenizer/inflate': 0.3.1 + strtok3: 10.3.4 + token-types: 6.1.1 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.103.0): + dependencies: + '@babel/code-frame': 7.27.1 + chalk: 4.1.2 + chokidar: 4.0.3 + cosmiconfig: 8.3.6(typescript@5.9.3) + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.3 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.3.0 + semver: 7.7.3 + tapable: 2.3.0 + typescript: 5.9.3 + webpack: 5.103.0 + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + formidable@3.5.4: + dependencies: + '@paralleldrive/cuid2': 2.3.1 + dezalgo: 1.0.4 + once: 1.4.0 + + forwarded@0.2.0: {} + + fresh@2.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fs-monkey@1.1.0: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-package-type@0.1.0: {} + + get-port-please@3.1.2: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@6.0.1: {} + + giget@2.0.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.4 + node-fetch-native: 1.6.7 + nypm: 0.6.2 + pathe: 2.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@13.0.0: + dependencies: + minimatch: 10.1.1 + minipass: 7.1.2 + path-scurry: 2.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@14.0.0: {} + + globals@16.5.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + grammex@3.1.12: {} + + graphemer@1.4.0: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hono@4.10.6: {} + + html-escaper@2.0.2: {} + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-status-codes@2.3.0: {} + + human-signals@2.1.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ipaddr.js@1.9.1: {} + + is-arrayish@0.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-interactive@1.0.0: {} + + is-number@7.0.0: {} + + is-promise@4.0.0: {} + + is-property@1.0.2: {} + + is-stream@2.0.1: {} + + is-unicode-supported@0.1.0: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + iterare@1.2.1: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jest-changed-files@30.2.0: + dependencies: + execa: 5.1.1 + jest-util: 30.2.0 + p-limit: 3.1.0 + + jest-circus@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.0 + is-generator-fn: 2.1.0 + jest-each: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + p-limit: 3.1.0 + pretty-format: 30.2.0 + pure-rand: 7.0.1 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)): + dependencies: + '@jest/core': 30.2.0(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest-config@30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.28.5 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.19.1 + ts-node: 10.9.2(@types/node@22.19.1)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@30.2.0: + dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.2.0 + + jest-docblock@30.2.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + jest-util: 30.2.0 + pretty-format: 30.2.0 + + jest-environment-node@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + + jest-haste-map@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + jest-worker: 30.2.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + pretty-format: 30.2.0 + + jest-matcher-utils@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.2.0 + pretty-format: 30.2.0 + + jest-message-util@30.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 30.2.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + jest-util: 30.2.0 + + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): + optionalDependencies: + jest-resolve: 30.2.0 + + jest-regex-util@30.0.1: {} + + jest-resolve-dependencies@30.2.0: + dependencies: + jest-regex-util: 30.0.1 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@30.2.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 + slash: 3.0.0 + unrs-resolver: 1.11.1 + + jest-runner@30.2.0: + dependencies: + '@jest/console': 30.2.0 + '@jest/environment': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + chalk: 4.1.2 + emittery: 0.13.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-haste-map: 30.2.0 + jest-leak-detector: 30.2.0 + jest-message-util: 30.2.0 + jest-resolve: 30.2.0 + jest-runtime: 30.2.0 + jest-util: 30.2.0 + jest-watcher: 30.2.0 + jest-worker: 30.2.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/globals': 30.2.0 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + chalk: 4.1.2 + cjs-module-lexer: 2.1.1 + collect-v8-coverage: 1.0.3 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@30.2.0: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + expect: 30.2.0 + graceful-fs: 4.2.11 + jest-diff: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + pretty-format: 30.2.0 + semver: 7.7.3 + synckit: 0.11.11 + transitivePeerDependencies: + - supports-color + + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + chalk: 4.1.2 + ci-info: 4.3.1 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + + jest-validate@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + camelcase: 6.3.0 + chalk: 4.1.2 + leven: 3.1.0 + pretty-format: 30.2.0 + + jest-watcher@30.2.0: + dependencies: + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.19.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.2.0 + string-length: 4.0.2 + + jest-worker@27.5.1: + dependencies: + '@types/node': 22.19.1 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest-worker@30.2.0: + dependencies: + '@types/node': 22.19.1 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.2.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)): + dependencies: + '@jest/core': 30.2.0(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jiti@2.6.1: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lines-and-columns@1.2.4: {} + + load-esm@1.0.3: {} + + loader-runner@4.3.1: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.memoize@4.1.2: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + long@5.3.2: {} + + lru-cache@10.4.3: {} + + lru-cache@11.2.4: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@7.18.3: {} + + lru.min@1.1.3: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + make-error@1.3.6: {} + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + mariadb@3.4.5: + dependencies: + '@types/geojson': 7946.0.16 + '@types/node': 24.10.1 + denque: 2.1.0 + iconv-lite: 0.6.3 + lru-cache: 10.4.3 + + math-intrinsics@1.1.0: {} + + media-typer@0.3.0: {} + + media-typer@1.1.0: {} + + memfs@3.5.3: + dependencies: + fs-monkey: 1.1.0 + + merge-descriptors@2.0.0: {} + + merge-stream@2.0.0: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@2.6.0: {} + + mimic-fn@2.1.0: {} + + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + ms@2.1.3: {} + + multer@2.0.2: + dependencies: + append-field: 1.0.0 + busboy: 1.6.0 + concat-stream: 2.0.0 + mkdirp: 0.5.6 + object-assign: 4.1.1 + type-is: 1.6.18 + xtend: 4.0.2 + + mute-stream@2.0.0: {} + + mysql2@3.15.3: + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.0 + long: 5.3.2 + lru.min: 1.1.3 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + + named-placeholders@1.1.3: + dependencies: + lru-cache: 7.18.3 + + napi-postinstall@0.3.4: {} + + natural-compare@1.4.0: {} + + negotiator@1.0.0: {} + + neo-async@2.6.2: {} + + node-abort-controller@3.1.1: {} + + node-emoji@1.11.0: + dependencies: + lodash: 4.17.21 + + node-fetch-native@1.6.7: {} + + node-int64@0.4.0: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nypm@0.6.2: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + pathe: 2.0.3 + pkg-types: 2.3.0 + tinyexec: 1.0.2 + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + ohash@2.0.11: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parseurl@1.3.3: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 + + path-to-regexp@8.3.0: {} + + path-type@4.0.0: {} + + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + picomatch@4.0.3: {} + + pirates@4.0.7: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.8 + pathe: 2.0.3 + + pluralize@8.0.0: {} + + postgres@3.4.7: {} + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-prisma@5.0.0(prettier@3.7.4): + dependencies: + '@prisma/prisma-schema-wasm': 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 + prettier: 3.7.4 + + prettier@3.7.4: {} + + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3): + dependencies: + '@prisma/config': 7.1.0 + '@prisma/dev': 0.15.0(typescript@5.9.3) + '@prisma/engines': 7.1.0 + '@prisma/studio-core': 0.8.2(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + mysql2: 3.15.3 + postgres: 3.4.7 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@types/react' + - magicast + - react + - react-dom + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + pure-rand@7.0.1: {} + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.0 + unpipe: 1.0.0 + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.5 + + react-dom@19.2.1(react@19.2.1): + dependencies: + react: 19.2.1 + scheduler: 0.27.0 + + react-is@18.3.1: {} + + react@19.2.1: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@4.1.2: {} + + reflect-metadata@0.2.2: {} + + regexp-to-ast@0.5.0: {} + + remeda@2.21.3: + dependencies: + type-fest: 4.41.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + retry@0.12.0: {} + + router@2.2.0: + dependencies: + debug: 4.4.3 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.3.0 + transitivePeerDependencies: + - supports-color + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + scheduler@0.27.0: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + semver@6.3.1: {} + + semver@7.7.3: {} + + send@1.2.0: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + seq-queue@0.0.5: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + source-map@0.7.6: {} + + sprintf-js@1.0.3: {} + + sqlstring@2.3.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + statuses@2.0.2: {} + + std-env@3.9.0: {} + + streamsearch@1.1.0: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-bom@3.0.0: {} + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + strtok3@10.3.4: + dependencies: + '@tokenizer/token': 0.3.0 + + superagent@10.2.3: + dependencies: + component-emitter: 1.3.1 + cookiejar: 2.1.4 + debug: 4.4.3 + fast-safe-stringify: 2.1.1 + form-data: 4.0.5 + formidable: 3.5.4 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.14.0 + transitivePeerDependencies: + - supports-color + + supertest@7.1.4: + dependencies: + methods: 1.1.2 + superagent: 10.2.3 + transitivePeerDependencies: + - supports-color + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + swagger-ui-dist@5.30.2: + dependencies: + '@scarf/scarf': 1.4.0 + + symbol-observable@4.0.0: {} + + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + + tapable@2.3.0: {} + + terser-webpack-plugin@5.3.14(webpack@5.103.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + terser: 5.44.1 + webpack: 5.103.0 + + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + token-types@6.1.1: + dependencies: + '@borewit/text-codec': 0.1.1 + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + + ts-api-utils@2.1.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)))(typescript@5.9.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.8 + jest: 30.2.0(@types/node@22.19.1)(ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3)) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.28.5 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + jest-util: 30.2.0 + + ts-loader@9.5.4(typescript@5.9.3)(webpack@5.103.0): + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.18.3 + micromatch: 4.0.8 + semver: 7.7.3 + source-map: 0.7.6 + typescript: 5.9.3 + webpack: 5.103.0 + + ts-node@10.9.2(@types/node@22.19.1)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.19.1 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfig-paths-webpack-plugin@4.2.0: + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.18.3 + tapable: 2.3.0 + tsconfig-paths: 4.2.0 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-fest@4.41.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + + typedarray@0.0.6: {} + + typescript-eslint@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + uglify-js@3.19.3: + optional: true + + uid@2.0.2: + dependencies: + '@lukeed/csprng': 1.1.0 + + uint8array-extras@1.5.0: {} + + undici-types@6.21.0: {} + + undici-types@7.16.0: {} + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + update-browserslist-db@1.2.1(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + v8-compile-cache-lib@3.0.1: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + valibot@1.2.0(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + vary@1.1.2: {} + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + watchpack@2.4.4: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + webpack-node-externals@3.0.0: {} + + webpack-sources@3.3.3: {} + + webpack@5.103.0: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.14(webpack@5.103.0) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + yoctocolors-cjs@2.1.3: {} + + zeptomatch@2.0.2: + dependencies: + grammex: 3.1.12 diff --git a/prisma.config.js b/prisma.config.js new file mode 100644 index 0000000..18b38c2 --- /dev/null +++ b/prisma.config.js @@ -0,0 +1,13 @@ +// This file was generated by Prisma and assumes you have installed the following: +// npm install --save-dev prisma dotenv +import "dotenv/config"; +import { defineConfig, env } from "prisma/config"; +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + path: "prisma/migrations", + }, + datasource: { + url: env("DATABASE_URL"), + }, +}); diff --git a/prisma.config.ts b/prisma.config.ts new file mode 100644 index 0000000..9c5e959 --- /dev/null +++ b/prisma.config.ts @@ -0,0 +1,14 @@ +// This file was generated by Prisma and assumes you have installed the following: +// npm install --save-dev prisma dotenv +import "dotenv/config"; +import { defineConfig, env } from "prisma/config"; + +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + path: "prisma/migrations", + }, + datasource: { + url: env("DATABASE_URL"), + }, +}); diff --git a/prisma/migrations/20251204133211_init/migration.sql b/prisma/migrations/20251204133211_init/migration.sql new file mode 100644 index 0000000..1087c92 --- /dev/null +++ b/prisma/migrations/20251204133211_init/migration.sql @@ -0,0 +1,172 @@ +-- CreateTable +CREATE TABLE `Users` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `mobileNumber` CHAR(11) NOT NULL, + `password` VARCHAR(191) NOT NULL, + `firstName` VARCHAR(191) NOT NULL, + `lastName` VARCHAR(191) NOT NULL, + `roleId` INTEGER NOT NULL, + + UNIQUE INDEX `Users_mobileNumber_key`(`mobileNumber`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Roles` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(100) NOT NULL, + `description` TEXT NULL, + `permissions` JSON NULL, + `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updatedAt` TIMESTAMP(0) NOT NULL, + `deletedAt` TIMESTAMP(0) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Products` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `description` TEXT NULL, + `sku` VARCHAR(100) NULL, + `barcode` VARCHAR(100) NULL, + `imageUrl` VARCHAR(255) NULL, + `attachmentId` BIGINT UNSIGNED NULL, + `unit` VARCHAR(10) NOT NULL, + `discount` DECIMAL(10, 2) NOT NULL DEFAULT 0.00, + `quantity` DECIMAL(10, 2) NOT NULL DEFAULT 0.00, + `alertQuantity` DECIMAL(10, 2) NOT NULL DEFAULT 5.00, + `isActive` BOOLEAN NOT NULL DEFAULT true, + `isFeatured` BOOLEAN NOT NULL DEFAULT false, + `createdAt` TIMESTAMP(0) NULL, + `updatedAt` TIMESTAMP(0) NULL, + `deletedAt` TIMESTAMP(0) NULL, + `productInfoId` INTEGER NOT NULL, + + UNIQUE INDEX `products_sku_unique`(`sku`), + UNIQUE INDEX `products_barcode_unique`(`barcode`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Product_info` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `description` TEXT NULL, + `productType` VARCHAR(50) NULL DEFAULT 'simple', + `metaData` JSON NULL, + `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updatedAt` TIMESTAMP(0) NOT NULL, + `deletedAt` TIMESTAMP(0) NULL, + `brandId` INTEGER NULL, + `categoryId` INTEGER NULL, + `vendorId` INTEGER NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Product_brands` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(100) NOT NULL, + `description` TEXT NULL, + `imageUrl` VARCHAR(255) NULL, + `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updatedAt` TIMESTAMP(0) NOT NULL, + `deletedAt` TIMESTAMP(0) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Product_categories` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(100) NOT NULL, + `description` TEXT NULL, + `imageUrl` VARCHAR(255) NULL, + `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updatedAt` TIMESTAMP(0) NOT NULL, + `deletedAt` TIMESTAMP(0) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Vendors` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `firstName` VARCHAR(255) NOT NULL, + `lastName` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NULL, + `mobileNumber` CHAR(11) NOT NULL, + `address` TEXT NULL, + `city` VARCHAR(100) NULL, + `state` VARCHAR(100) NULL, + `country` VARCHAR(100) NULL, + `isActive` BOOLEAN NOT NULL DEFAULT true, + `createdAt` TIMESTAMP(0) NULL, + `updatedAt` TIMESTAMP(0) NULL, + `deletedAt` TIMESTAMP(0) NULL, + + UNIQUE INDEX `Vendors_mobileNumber_key`(`mobileNumber`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Customers` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `firstName` VARCHAR(255) NOT NULL, + `lastName` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NULL, + `mobileNumber` CHAR(11) NOT NULL, + `address` TEXT NULL, + `city` VARCHAR(100) NULL, + `state` VARCHAR(100) NULL, + `country` VARCHAR(100) NULL, + `isActive` BOOLEAN NOT NULL DEFAULT true, + `createdAt` TIMESTAMP(0) NULL, + `updatedAt` TIMESTAMP(0) NULL, + `deletedAt` TIMESTAMP(0) NULL, + + UNIQUE INDEX `Customers_mobileNumber_key`(`mobileNumber`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Inventories` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `location` VARCHAR(255) NULL, + `isActive` BOOLEAN NOT NULL DEFAULT true, + `createdAt` TIMESTAMP(0) NOT NULL, + `updatedAt` TIMESTAMP(0) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Stores` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `location` VARCHAR(255) NULL, + `isActive` BOOLEAN NOT NULL DEFAULT true, + `createdAt` TIMESTAMP(0) NOT NULL, + `updatedAt` TIMESTAMP(0) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `Users` ADD CONSTRAINT `Users_roleId_fkey` FOREIGN KEY (`roleId`) REFERENCES `Roles`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION; + +-- AddForeignKey +ALTER TABLE `Products` ADD CONSTRAINT `Products_productInfoId_fkey` FOREIGN KEY (`productInfoId`) REFERENCES `Product_info`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION; + +-- AddForeignKey +ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_brandId_fkey` FOREIGN KEY (`brandId`) REFERENCES `Product_brands`(`id`) ON DELETE SET NULL ON UPDATE NO ACTION; + +-- AddForeignKey +ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_categoryId_fkey` FOREIGN KEY (`categoryId`) REFERENCES `Product_categories`(`id`) ON DELETE SET NULL ON UPDATE NO ACTION; + +-- AddForeignKey +ALTER TABLE `Product_info` ADD CONSTRAINT `Product_info_vendorId_fkey` FOREIGN KEY (`vendorId`) REFERENCES `Vendors`(`id`) ON DELETE RESTRICT ON UPDATE NO ACTION; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..592fc0b --- /dev/null +++ b/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "mysql" diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..94bafdf --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,181 @@ +datasource db { + provider = "mysql" +} + +generator client { + provider = "prisma-client" + output = "../src/generated/prisma" + moduleFormat = "cjs" +} + +model User { + id Int @id @default(autoincrement()) + mobileNumber String @unique @db.Char(11) + password String + firstName String + lastName String + + roleId Int + role Role @relation("User_Role", fields: [roleId], references: [id], onUpdate: NoAction) + + @@map("Users") +} + +model Role { + id Int @id @default(autoincrement()) + name String @db.VarChar(100) + description String? @db.Text + permissions Json? + createdAt DateTime @default(now()) @db.Timestamp(0) + updatedAt DateTime @updatedAt @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + users User[] @relation("User_Role") + + @@map("Roles") +} + +model Product { + id Int @id @default(autoincrement()) + name String @db.VarChar(255) + description String? @db.Text + sku String? @unique(map: "products_sku_unique") @db.VarChar(100) + barcode String? @unique(map: "products_barcode_unique") @db.VarChar(100) + imageUrl String? @db.VarChar(255) + attachmentId BigInt? @db.UnsignedBigInt + unit String @db.VarChar(10) + discount Decimal @default(0.00) @db.Decimal(10, 2) + quantity Decimal @default(0.00) @db.Decimal(10, 2) + alertQuantity Decimal @default(5.00) @db.Decimal(10, 2) + isActive Boolean @default(true) + isFeatured Boolean @default(false) + createdAt DateTime? @db.Timestamp(0) + updatedAt DateTime? @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + productInfo ProductInfo @relation("Product_ProductInfo", fields: [productInfoId], references: [id], onUpdate: NoAction) + productInfoId Int + // is_stock_managed Boolean @default(true) + // created_by Int? + // collection_product collection_product[] + // product_batches product_batches[] + // product_stocks product_stocks[] + // attachments attachments? @relation(fields: [attachment_id], references: [id], onUpdate: NoAction, map: "products_attachment_id_foreign") + // purchase_items purchase_items[] + // sale_items sale_items[] + + // @@index([attachment_id], map: "products_attachment_id_foreign") + @@map("Products") +} + +model ProductInfo { + id Int @id @default(autoincrement()) + name String @db.VarChar(255) + description String? @db.Text + productType String? @default("simple") @db.VarChar(50) + metaData Json? + createdAt DateTime @default(now()) @db.Timestamp(0) + updatedAt DateTime @updatedAt @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + products Product[] @relation("Product_ProductInfo") + + brand ProductBrand? @relation("ProductInfo_Brand", fields: [brandId], references: [id], onUpdate: NoAction) + brandId Int? + + category ProductCategory? @relation("ProductInfo_Category", fields: [categoryId], references: [id], onUpdate: NoAction) + categoryId Int? + + vendor Vendor @relation("ProductInfo_Vendor", fields: [vendorId], references: [id], onUpdate: NoAction) + vendorId Int + + @@map("Product_info") +} + +model ProductBrand { + id Int @id @default(autoincrement()) + name String @db.VarChar(100) + description String? @db.Text + imageUrl String? @db.VarChar(255) + createdAt DateTime @default(now()) @db.Timestamp(0) + updatedAt DateTime @updatedAt @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + productInfo ProductInfo[] @relation("ProductInfo_Brand") + + @@map("Product_brands") +} + +model ProductCategory { + id Int @id @default(autoincrement()) + name String @db.VarChar(100) + description String? @db.Text + imageUrl String? @db.VarChar(255) + createdAt DateTime @default(now()) @db.Timestamp(0) + updatedAt DateTime @updatedAt @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + productInfo ProductInfo[] @relation("ProductInfo_Category") + + @@map("Product_categories") +} + +model Vendor { + id Int @id @default(autoincrement()) + firstName String @db.VarChar(255) + lastName String @db.VarChar(255) + email String? @db.VarChar(255) + mobileNumber String @unique @db.Char(11) + address String? @db.Text + city String? @db.VarChar(100) + state String? @db.VarChar(100) + country String? @db.VarChar(100) + isActive Boolean @default(true) + createdAt DateTime? @db.Timestamp(0) + updatedAt DateTime? @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + productInfo ProductInfo[] @relation("ProductInfo_Vendor") + + @@map("Vendors") +} + +model Customer { + id Int @id @default(autoincrement()) + firstName String @db.VarChar(255) + lastName String @db.VarChar(255) + email String? @db.VarChar(255) + mobileNumber String @unique @db.Char(11) + address String? @db.Text + city String? @db.VarChar(100) + state String? @db.VarChar(100) + country String? @db.VarChar(100) + isActive Boolean @default(true) + createdAt DateTime? @db.Timestamp(0) + updatedAt DateTime? @db.Timestamp(0) + deletedAt DateTime? @db.Timestamp(0) + + @@map("Customers") +} + +model Inventory { + id Int @id @default(autoincrement()) + name String @db.VarChar(255) + location String? @db.VarChar(255) + isActive Boolean @default(true) + createdAt DateTime @db.Timestamp(0) + updatedAt DateTime @db.Timestamp(0) + + @@map("Inventories") +} + +model Store { + id Int @id @default(autoincrement()) + name String @db.VarChar(255) + location String? @db.VarChar(255) + isActive Boolean @default(true) + createdAt DateTime @db.Timestamp(0) + updatedAt DateTime @db.Timestamp(0) + + @@map("Stores") +} diff --git a/src/app.controller.spec.ts b/src/app.controller.spec.ts new file mode 100644 index 0000000..d22f389 --- /dev/null +++ b/src/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello World!"', () => { + expect(appController.getHello()).toBe('Hello World!'); + }); + }); +}); diff --git a/src/app.controller.ts b/src/app.controller.ts new file mode 100644 index 0000000..cce879e --- /dev/null +++ b/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/src/app.module.ts b/src/app.module.ts new file mode 100644 index 0000000..12d2f8a --- /dev/null +++ b/src/app.module.ts @@ -0,0 +1,33 @@ +import { Module } from '@nestjs/common' +import { AppController } from './app.controller' +import { AppService } from './app.service' +import { CustomersModule } from './customers/customers.module' +import { InventoriesModule } from './inventories/inventories.module' +import { PrismaModule } from './prisma/prisma.module' +import { ProductBrandsModule } from './product-brands/product-brands.module' +import { ProductCategoriesModule } from './product-categories/product-categories.module' +import { ProductInfoModule } from './product-info/product-info.module' +import { ProductsModule } from './products/products.module' +import { RolesModule } from './roles/roles.module' +import { StoresModule } from './stores/stores.module' +import { UsersModule } from './users/users.module' +import { VendorsModule } from './vendors/vendors.module' + +@Module({ + imports: [ + PrismaModule, + UsersModule, + RolesModule, + ProductsModule, + ProductInfoModule, + ProductBrandsModule, + ProductCategoriesModule, + VendorsModule, + CustomersModule, + InventoriesModule, + StoresModule, + ], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/src/app.service.ts b/src/app.service.ts new file mode 100644 index 0000000..927d7cc --- /dev/null +++ b/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Hello World!'; + } +} diff --git a/src/common/interceptors/logging.interceptor.ts b/src/common/interceptors/logging.interceptor.ts new file mode 100644 index 0000000..f8e2a9f --- /dev/null +++ b/src/common/interceptors/logging.interceptor.ts @@ -0,0 +1,32 @@ +import { + CallHandler, + ExecutionContext, + Injectable, + NestInterceptor, +} from '@nestjs/common' +import { Observable, tap } from 'rxjs' + +@Injectable() +export class LoggingInterceptor implements NestInterceptor { + intercept(context: ExecutionContext, next: CallHandler): Observable { + const req = context.switchToHttp().getRequest() + const method = req?.method ?? 'UNKNOWN' + const url = req?.url ?? 'UNKNOWN' + const now = Date.now() + + console.log(`[Request] ${method} ${url}`) + + return next.handle().pipe( + tap({ + next: () => { + const ms = Date.now() - now + console.log(`[Response] ${method} ${url} - ${ms}ms`) + }, + error: err => { + const ms = Date.now() - now + console.error(`[Error] ${method} ${url} - ${ms}ms`, err?.message ?? err) + }, + }), + ) + } +} diff --git a/src/common/interceptors/response-mapping.interceptor.ts b/src/common/interceptors/response-mapping.interceptor.ts new file mode 100644 index 0000000..4844e6a --- /dev/null +++ b/src/common/interceptors/response-mapping.interceptor.ts @@ -0,0 +1,126 @@ +import { + CallHandler, + ExecutionContext, + Injectable, + NestInterceptor, +} from '@nestjs/common' +import { Observable } from 'rxjs' +import { map } from 'rxjs/operators' + +/** + * ResponseMappingInterceptor + * + * Wraps successful handler results in a consistent response envelope. + * Example output: + * { + * statusCode: 200, + * timestamp: '2025-12-04T19:00:00.000Z', + * path: '/api/v1/users', + * data: { ... } + * } + */ +@Injectable() +export class ResponseMappingInterceptor implements NestInterceptor { + intercept(context: ExecutionContext, next: CallHandler): Observable { + const http = context.switchToHttp() + const response = http.getResponse() + const request = http.getRequest() + + return next.handle().pipe( + map(data => { + const statusCode = response?.statusCode ?? 200 + + // Normalize list/paginated responses into { data, meta } + let payload = data + let meta: any = undefined + + // Case: plain array -> treat as list + if (Array.isArray(data)) { + payload = data + meta = { + totalRecords: data.length, + totalPages: 1, + page: 1, + perPage: data.length, + } + } else if (data && typeof data === 'object') { + // Common pagination shapes + // 1) { items: [...], total: N, page, perPage } + if ( + Array.isArray((data as any).items) && + typeof (data as any).total === 'number' + ) { + const items = (data as any).items + const total = (data as any).total + const perPage = (data as any).perPage ?? (data as any).limit ?? items.length + const page = (data as any).page ?? 1 + payload = items + meta = { + totalRecords: total, + totalPages: Math.max(1, Math.ceil(total / perPage)), + page, + perPage, + } + // 2) Sequelize-like: { rows: [...], count: N } + } else if ( + Array.isArray((data as any).rows) && + typeof (data as any).count === 'number' + ) { + const items = (data as any).rows + const total = (data as any).count + const perPage = (data as any).limit ?? (data as any).perPage ?? items.length + const page = (data as any).page ?? 1 + payload = items + meta = { + totalRecords: total, + totalPages: Math.max(1, Math.ceil(total / perPage)), + page, + perPage, + } + // 3) { data: [...], total, page, perPage } + } else if ( + Array.isArray((data as any).data) && + typeof (data as any).total === 'number' + ) { + const items = (data as any).data + const total = (data as any).total + const perPage = (data as any).perPage ?? (data as any).limit ?? items.length + const page = (data as any).page ?? 1 + payload = items + meta = { + totalRecords: total, + totalPages: Math.max(1, Math.ceil(total / perPage)), + page, + perPage, + } + // 4) fallback: object contains items array and optional total + } else if (Array.isArray((data as any).items)) { + const items = (data as any).items + const total = + typeof (data as any).total === 'number' ? (data as any).total : items.length + const perPage = (data as any).perPage ?? (data as any).limit ?? items.length + const page = (data as any).page ?? 1 + payload = items + meta = { + totalRecords: total, + totalPages: Math.max(1, Math.ceil(total / perPage)), + page, + perPage, + } + } + } + + const envelope: any = { + statusCode, + timestamp: new Date().toISOString(), + path: request?.url ?? '', + data: payload, + } + + if (meta) envelope.meta = meta + + return envelope + }), + ) + } +} diff --git a/src/customers/customers.controller.ts b/src/customers/customers.controller.ts new file mode 100644 index 0000000..22d42db --- /dev/null +++ b/src/customers/customers.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CustomersService } from './customers.service' +import { CreateCustomerDto } from './dto/create-customer.dto' +import { UpdateCustomerDto } from './dto/update-customer.dto' + +@Controller('customers') +export class CustomersController { + constructor(private readonly customersService: CustomersService) {} + + @Post() + create(@Body() dto: CreateCustomerDto) { + return this.customersService.create(dto) + } + + @Get() + findAll() { + return this.customersService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.customersService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateCustomerDto) { + return this.customersService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.customersService.remove(Number(id)) + } +} diff --git a/src/customers/customers.module.ts b/src/customers/customers.module.ts new file mode 100644 index 0000000..5157900 --- /dev/null +++ b/src/customers/customers.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { CustomersController } from './customers.controller' +import { CustomersService } from './customers.service' + +@Module({ + imports: [PrismaModule], + controllers: [CustomersController], + providers: [CustomersService], +}) +export class CustomersModule {} diff --git a/src/customers/customers.service.ts b/src/customers/customers.service.ts new file mode 100644 index 0000000..f8b01ed --- /dev/null +++ b/src/customers/customers.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class CustomersService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.customer.create({ data }) + } + + findAll() { + return this.prisma.customer.findMany() + } + + findOne(id: number) { + return this.prisma.customer.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.customer.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.customer.delete({ where: { id } }) + } +} diff --git a/src/customers/dto/create-customer.dto.ts b/src/customers/dto/create-customer.dto.ts new file mode 100644 index 0000000..d671d24 --- /dev/null +++ b/src/customers/dto/create-customer.dto.ts @@ -0,0 +1,10 @@ +export class CreateCustomerDto { + firstName: string + lastName: string + email?: string + mobileNumber?: string + address?: string + city?: string + state?: string + country?: string +} diff --git a/src/customers/dto/update-customer.dto.ts b/src/customers/dto/update-customer.dto.ts new file mode 100644 index 0000000..ee1d43f --- /dev/null +++ b/src/customers/dto/update-customer.dto.ts @@ -0,0 +1,11 @@ +export class UpdateCustomerDto { + firstName?: string + lastName?: string + email?: string + mobileNumber?: string + address?: string + city?: string + state?: string + country?: string + isActive?: boolean +} diff --git a/src/generated/prisma/browser.ts b/src/generated/prisma/browser.ts new file mode 100644 index 0000000..01d113b --- /dev/null +++ b/src/generated/prisma/browser.ts @@ -0,0 +1,69 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma-related types and utilities in a browser. + * Use it to get access to models, enums, and input types. + * + * This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only. + * See `client.ts` for the standard, server-side entry point. + * + * 🟢 You can import this file directly. + */ + +import * as Prisma from './internal/prismaNamespaceBrowser.js' +export { Prisma } +export * as $Enums from './enums.js' +export * from './enums.js'; +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model Role + * + */ +export type Role = Prisma.RoleModel +/** + * Model Product + * + */ +export type Product = Prisma.ProductModel +/** + * Model ProductInfo + * + */ +export type ProductInfo = Prisma.ProductInfoModel +/** + * Model ProductBrand + * + */ +export type ProductBrand = Prisma.ProductBrandModel +/** + * Model ProductCategory + * + */ +export type ProductCategory = Prisma.ProductCategoryModel +/** + * Model Vendor + * + */ +export type Vendor = Prisma.VendorModel +/** + * Model Customer + * + */ +export type Customer = Prisma.CustomerModel +/** + * Model Inventory + * + */ +export type Inventory = Prisma.InventoryModel +/** + * Model Store + * + */ +export type Store = Prisma.StoreModel diff --git a/src/generated/prisma/client.ts b/src/generated/prisma/client.ts new file mode 100644 index 0000000..e89383c --- /dev/null +++ b/src/generated/prisma/client.ts @@ -0,0 +1,89 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types. + * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead. + * + * 🟢 You can import this file directly. + */ + +import * as process from 'node:process' +import * as path from 'node:path' + +import * as runtime from "@prisma/client/runtime/client" +import * as $Enums from "./enums.js" +import * as $Class from "./internal/class.js" +import * as Prisma from "./internal/prismaNamespace.js" + +export * as $Enums from './enums.js' +export * from "./enums.js" +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ +export const PrismaClient = $Class.getPrismaClientClass() +export type PrismaClient = $Class.PrismaClient +export { Prisma } + +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model Role + * + */ +export type Role = Prisma.RoleModel +/** + * Model Product + * + */ +export type Product = Prisma.ProductModel +/** + * Model ProductInfo + * + */ +export type ProductInfo = Prisma.ProductInfoModel +/** + * Model ProductBrand + * + */ +export type ProductBrand = Prisma.ProductBrandModel +/** + * Model ProductCategory + * + */ +export type ProductCategory = Prisma.ProductCategoryModel +/** + * Model Vendor + * + */ +export type Vendor = Prisma.VendorModel +/** + * Model Customer + * + */ +export type Customer = Prisma.CustomerModel +/** + * Model Inventory + * + */ +export type Inventory = Prisma.InventoryModel +/** + * Model Store + * + */ +export type Store = Prisma.StoreModel diff --git a/src/generated/prisma/commonInputTypes.ts b/src/generated/prisma/commonInputTypes.ts new file mode 100644 index 0000000..1269737 --- /dev/null +++ b/src/generated/prisma/commonInputTypes.ts @@ -0,0 +1,593 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports various common sort, input & filter types that are not directly linked to a particular model. + * + * 🟢 You can import this file directly. + */ + +import type * as runtime from "@prisma/client/runtime/client" +import * as $Enums from "./enums.js" +import type * as Prisma from "./internal/prismaNamespace.js" + + +export type IntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntFilter<$PrismaModel> | number +} + +export type StringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +export type IntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedIntFilter<$PrismaModel> + _max?: Prisma.NestedIntFilter<$PrismaModel> +} + +export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$PrismaModel> +} + +export type StringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null +} + +export type JsonNullableFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonNullableFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter +} + +export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string +} + +export type DateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null +} + +export type SortOrderInput = { + sort: Prisma.SortOrder + nulls?: Prisma.NullsOrder +} + +export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedStringNullableFilter<$PrismaModel> + _max?: Prisma.NestedStringNullableFilter<$PrismaModel> +} + +export type JsonNullableWithAggregatesFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedJsonNullableFilter<$PrismaModel> + _max?: Prisma.NestedJsonNullableFilter<$PrismaModel> +} + +export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeFilter<$PrismaModel> +} + +export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> +} + +export type BigIntNullableFilter<$PrismaModel = never> = { + equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> | null + in?: bigint[] | number[] | null + notIn?: bigint[] | number[] | null + lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + not?: Prisma.NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null +} + +export type DecimalFilter<$PrismaModel = never> = { + equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string +} + +export type BoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean +} + +export type BigIntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> | null + in?: bigint[] | number[] | null + notIn?: bigint[] | number[] | null + lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + not?: Prisma.NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> + _sum?: Prisma.NestedBigIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedBigIntNullableFilter<$PrismaModel> + _max?: Prisma.NestedBigIntNullableFilter<$PrismaModel> +} + +export type DecimalWithAggregatesFilter<$PrismaModel = never> = { + equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + not?: Prisma.NestedDecimalWithAggregatesFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedDecimalFilter<$PrismaModel> + _sum?: Prisma.NestedDecimalFilter<$PrismaModel> + _min?: Prisma.NestedDecimalFilter<$PrismaModel> + _max?: Prisma.NestedDecimalFilter<$PrismaModel> +} + +export type BoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedBoolFilter<$PrismaModel> + _max?: Prisma.NestedBoolFilter<$PrismaModel> +} + +export type IntNullableFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null +} + +export type IntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> + _sum?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedIntNullableFilter<$PrismaModel> + _max?: Prisma.NestedIntNullableFilter<$PrismaModel> +} + +export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntFilter<$PrismaModel> | number +} + +export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedFloatFilter<$PrismaModel> + _sum?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedIntFilter<$PrismaModel> + _max?: Prisma.NestedIntFilter<$PrismaModel> +} + +export type NestedFloatFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> + in?: number[] + notIn?: number[] + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + not?: Prisma.NestedFloatFilter<$PrismaModel> | number +} + +export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> + in?: string[] + notIn?: string[] + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$PrismaModel> +} + +export type NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null +} + +export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string +} + +export type NestedDateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null +} + +export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null + in?: string[] | null + notIn?: string[] | null + lt?: string | Prisma.StringFieldRefInput<$PrismaModel> + lte?: string | Prisma.StringFieldRefInput<$PrismaModel> + gt?: string | Prisma.StringFieldRefInput<$PrismaModel> + gte?: string | Prisma.StringFieldRefInput<$PrismaModel> + contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel> + search?: string + not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedStringNullableFilter<$PrismaModel> + _max?: Prisma.NestedStringNullableFilter<$PrismaModel> +} + +export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null +} + +export type NestedJsonNullableFilter<$PrismaModel = never> = +| Prisma.PatchUndefined< + Prisma.Either>, Exclude>, 'path'>>, + Required> + > +| Prisma.OptionalFlat>, 'path'>> + +export type NestedJsonNullableFilterBase<$PrismaModel = never> = { + equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter + path?: string + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel> + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel> + array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null + lt?: runtime.InputJsonValue + lte?: runtime.InputJsonValue + gt?: runtime.InputJsonValue + gte?: runtime.InputJsonValue + not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter +} + +export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] + notIn?: Date[] | string[] + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeFilter<$PrismaModel> +} + +export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> +} + +export type NestedBigIntNullableFilter<$PrismaModel = never> = { + equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> | null + in?: bigint[] | number[] | null + notIn?: bigint[] | number[] | null + lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + not?: Prisma.NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null +} + +export type NestedDecimalFilter<$PrismaModel = never> = { + equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string +} + +export type NestedBoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean +} + +export type NestedBigIntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> | null + in?: bigint[] | number[] | null + notIn?: bigint[] | number[] | null + lt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + lte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gt?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + gte?: bigint | number | Prisma.BigIntFieldRefInput<$PrismaModel> + not?: Prisma.NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> + _sum?: Prisma.NestedBigIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedBigIntNullableFilter<$PrismaModel> + _max?: Prisma.NestedBigIntNullableFilter<$PrismaModel> +} + +export type NestedFloatNullableFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel> + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel> + not?: Prisma.NestedFloatNullableFilter<$PrismaModel> | number | null +} + +export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = { + equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] + lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> + not?: Prisma.NestedDecimalWithAggregatesFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _avg?: Prisma.NestedDecimalFilter<$PrismaModel> + _sum?: Prisma.NestedDecimalFilter<$PrismaModel> + _min?: Prisma.NestedDecimalFilter<$PrismaModel> + _max?: Prisma.NestedDecimalFilter<$PrismaModel> +} + +export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedBoolFilter<$PrismaModel> + _max?: Prisma.NestedBoolFilter<$PrismaModel> +} + +export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null + in?: number[] | null + notIn?: number[] | null + lt?: number | Prisma.IntFieldRefInput<$PrismaModel> + lte?: number | Prisma.IntFieldRefInput<$PrismaModel> + gt?: number | Prisma.IntFieldRefInput<$PrismaModel> + gte?: number | Prisma.IntFieldRefInput<$PrismaModel> + not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _avg?: Prisma.NestedFloatNullableFilter<$PrismaModel> + _sum?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedIntNullableFilter<$PrismaModel> + _max?: Prisma.NestedIntNullableFilter<$PrismaModel> +} + + diff --git a/src/generated/prisma/enums.ts b/src/generated/prisma/enums.ts new file mode 100644 index 0000000..043572d --- /dev/null +++ b/src/generated/prisma/enums.ts @@ -0,0 +1,15 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* +* This file exports all enum related types from the schema. +* +* 🟢 You can import this file directly. +*/ + + + +// This file is empty because there are no enums in the schema. +export {} diff --git a/src/generated/prisma/internal/class.ts b/src/generated/prisma/internal/class.ts new file mode 100644 index 0000000..8cfef93 --- /dev/null +++ b/src/generated/prisma/internal/class.ts @@ -0,0 +1,280 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * Please import the `PrismaClient` class from the `client.ts` file instead. + */ + +import * as runtime from "@prisma/client/runtime/client" +import type * as Prisma from "./prismaNamespace.js" + + +const config: runtime.GetPrismaClientConfig = { + "previewFeatures": [], + "clientVersion": "7.1.0", + "engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba", + "activeProvider": "mysql", + "inlineSchema": "datasource db {\n provider = \"mysql\"\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n moduleFormat = \"cjs\"\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n mobileNumber String @unique @db.Char(11)\n password String\n firstName String\n lastName String\n\n roleId Int\n role Role @relation(\"User_Role\", fields: [roleId], references: [id], onUpdate: NoAction)\n\n @@map(\"Users\")\n}\n\nmodel Role {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n description String? @db.Text\n permissions Json?\n createdAt DateTime @default(now()) @db.Timestamp(0)\n updatedAt DateTime @updatedAt @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n users User[] @relation(\"User_Role\")\n\n @@map(\"Roles\")\n}\n\nmodel Product {\n id Int @id @default(autoincrement())\n name String @db.VarChar(255)\n description String? @db.Text\n sku String? @unique(map: \"products_sku_unique\") @db.VarChar(100)\n barcode String? @unique(map: \"products_barcode_unique\") @db.VarChar(100)\n imageUrl String? @db.VarChar(255)\n attachmentId BigInt? @db.UnsignedBigInt\n unit String @db.VarChar(10)\n discount Decimal @default(0.00) @db.Decimal(10, 2)\n quantity Decimal @default(0.00) @db.Decimal(10, 2)\n alertQuantity Decimal @default(5.00) @db.Decimal(10, 2)\n isActive Boolean @default(true)\n isFeatured Boolean @default(false)\n createdAt DateTime? @db.Timestamp(0)\n updatedAt DateTime? @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n productInfo ProductInfo @relation(\"Product_ProductInfo\", fields: [productInfoId], references: [id], onUpdate: NoAction)\n productInfoId Int\n // is_stock_managed Boolean @default(true)\n // created_by Int?\n // collection_product collection_product[]\n // product_batches product_batches[]\n // product_stocks product_stocks[]\n // attachments attachments? @relation(fields: [attachment_id], references: [id], onUpdate: NoAction, map: \"products_attachment_id_foreign\")\n // purchase_items purchase_items[]\n // sale_items sale_items[]\n\n // @@index([attachment_id], map: \"products_attachment_id_foreign\")\n @@map(\"Products\")\n}\n\nmodel ProductInfo {\n id Int @id @default(autoincrement())\n name String @db.VarChar(255)\n description String? @db.Text\n productType String? @default(\"simple\") @db.VarChar(50)\n metaData Json?\n createdAt DateTime @default(now()) @db.Timestamp(0)\n updatedAt DateTime @updatedAt @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n products Product[] @relation(\"Product_ProductInfo\")\n\n brand ProductBrand? @relation(\"ProductInfo_Brand\", fields: [brandId], references: [id], onUpdate: NoAction)\n brandId Int?\n\n category ProductCategory? @relation(\"ProductInfo_Category\", fields: [categoryId], references: [id], onUpdate: NoAction)\n categoryId Int?\n\n vendor Vendor @relation(\"ProductInfo_Vendor\", fields: [vendorId], references: [id], onUpdate: NoAction)\n vendorId Int\n\n @@map(\"Product_info\")\n}\n\nmodel ProductBrand {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n description String? @db.Text\n imageUrl String? @db.VarChar(255)\n createdAt DateTime @default(now()) @db.Timestamp(0)\n updatedAt DateTime @updatedAt @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n productInfo ProductInfo[] @relation(\"ProductInfo_Brand\")\n\n @@map(\"Product_brands\")\n}\n\nmodel ProductCategory {\n id Int @id @default(autoincrement())\n name String @db.VarChar(100)\n description String? @db.Text\n imageUrl String? @db.VarChar(255)\n createdAt DateTime @default(now()) @db.Timestamp(0)\n updatedAt DateTime @updatedAt @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n productInfo ProductInfo[] @relation(\"ProductInfo_Category\")\n\n @@map(\"Product_categories\")\n}\n\nmodel Vendor {\n id Int @id @default(autoincrement())\n firstName String @db.VarChar(255)\n lastName String @db.VarChar(255)\n email String? @db.VarChar(255)\n mobileNumber String @unique @db.Char(11)\n address String? @db.Text\n city String? @db.VarChar(100)\n state String? @db.VarChar(100)\n country String? @db.VarChar(100)\n isActive Boolean @default(true)\n createdAt DateTime? @db.Timestamp(0)\n updatedAt DateTime? @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n productInfo ProductInfo[] @relation(\"ProductInfo_Vendor\")\n\n @@map(\"Vendors\")\n}\n\nmodel Customer {\n id Int @id @default(autoincrement())\n firstName String @db.VarChar(255)\n lastName String @db.VarChar(255)\n email String? @db.VarChar(255)\n mobileNumber String @unique @db.Char(11)\n address String? @db.Text\n city String? @db.VarChar(100)\n state String? @db.VarChar(100)\n country String? @db.VarChar(100)\n isActive Boolean @default(true)\n createdAt DateTime? @db.Timestamp(0)\n updatedAt DateTime? @db.Timestamp(0)\n deletedAt DateTime? @db.Timestamp(0)\n\n @@map(\"Customers\")\n}\n\nmodel Inventory {\n id Int @id @default(autoincrement())\n name String @db.VarChar(255)\n location String? @db.VarChar(255)\n isActive Boolean @default(true)\n createdAt DateTime @db.Timestamp(0)\n updatedAt DateTime @db.Timestamp(0)\n\n @@map(\"Inventories\")\n}\n\nmodel Store {\n id Int @id @default(autoincrement())\n name String @db.VarChar(255)\n location String? @db.VarChar(255)\n isActive Boolean @default(true)\n createdAt DateTime @db.Timestamp(0)\n updatedAt DateTime @db.Timestamp(0)\n\n @@map(\"Stores\")\n}\n", + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + } +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mobileNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"roleId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role\",\"kind\":\"object\",\"type\":\"Role\",\"relationName\":\"User_Role\"}],\"dbName\":\"Users\"},\"Role\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permissions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"User_Role\"}],\"dbName\":\"Roles\"},\"Product\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imageUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachmentId\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"discount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"alertQuantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"isFeatured\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"productInfo\",\"kind\":\"object\",\"type\":\"ProductInfo\",\"relationName\":\"Product_ProductInfo\"},{\"name\":\"productInfoId\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"Products\"},\"ProductInfo\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"productType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metaData\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"products\",\"kind\":\"object\",\"type\":\"Product\",\"relationName\":\"Product_ProductInfo\"},{\"name\":\"brand\",\"kind\":\"object\",\"type\":\"ProductBrand\",\"relationName\":\"ProductInfo_Brand\"},{\"name\":\"brandId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"ProductCategory\",\"relationName\":\"ProductInfo_Category\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"vendor\",\"kind\":\"object\",\"type\":\"Vendor\",\"relationName\":\"ProductInfo_Vendor\"},{\"name\":\"vendorId\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"Product_info\"},\"ProductBrand\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imageUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"productInfo\",\"kind\":\"object\",\"type\":\"ProductInfo\",\"relationName\":\"ProductInfo_Brand\"}],\"dbName\":\"Product_brands\"},\"ProductCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imageUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"productInfo\",\"kind\":\"object\",\"type\":\"ProductInfo\",\"relationName\":\"ProductInfo_Category\"}],\"dbName\":\"Product_categories\"},\"Vendor\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobileNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"productInfo\",\"kind\":\"object\",\"type\":\"ProductInfo\",\"relationName\":\"ProductInfo_Vendor\"}],\"dbName\":\"Vendors\"},\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobileNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"Customers\"},\"Inventory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"Inventories\"},\"Store\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"Stores\"}},\"enums\":{},\"types\":{}}") + +async function decodeBase64AsWasm(wasmBase64: string): Promise { + const { Buffer } = await import('node:buffer') + const wasmArray = Buffer.from(wasmBase64, 'base64') + return new WebAssembly.Module(wasmArray) +} + +config.compilerWasm = { + getRuntime: async () => await import("@prisma/client/runtime/query_compiler_bg.mysql.js"), + + getQueryCompilerWasmModule: async () => { + const { wasm } = await import("@prisma/client/runtime/query_compiler_bg.mysql.wasm-base64.js") + return await decodeBase64AsWasm(wasm) + } +} + + + +export type LogOptions = + 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never + +export interface PrismaClientConstructor { + /** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ + + new < + Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + LogOpts extends LogOptions = LogOptions, + OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'], + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs + >(options: Prisma.Subset ): PrismaClient +} + +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ + +export interface PrismaClient< + in LogOpts extends Prisma.LogLevel = never, + in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined, + in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> { + [K: symbol]: { types: Prisma.TypeMap['other'] } + + $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient; + + /** + * Connect with the database + */ + $connect(): runtime.Types.Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): runtime.Types.Utils.JsPromise; + +/** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise> + + $transaction(fn: (prisma: Omit) => runtime.Types.Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise + + $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs, runtime.Types.Utils.Call, { + extArgs: ExtArgs + }>> + + /** + * `prisma.user`: Exposes CRUD operations for the **User** model. + * Example usage: + * ```ts + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + */ + get user(): Prisma.UserDelegate; + + /** + * `prisma.role`: Exposes CRUD operations for the **Role** model. + * Example usage: + * ```ts + * // Fetch zero or more Roles + * const roles = await prisma.role.findMany() + * ``` + */ + get role(): Prisma.RoleDelegate; + + /** + * `prisma.product`: Exposes CRUD operations for the **Product** model. + * Example usage: + * ```ts + * // Fetch zero or more Products + * const products = await prisma.product.findMany() + * ``` + */ + get product(): Prisma.ProductDelegate; + + /** + * `prisma.productInfo`: Exposes CRUD operations for the **ProductInfo** model. + * Example usage: + * ```ts + * // Fetch zero or more ProductInfos + * const productInfos = await prisma.productInfo.findMany() + * ``` + */ + get productInfo(): Prisma.ProductInfoDelegate; + + /** + * `prisma.productBrand`: Exposes CRUD operations for the **ProductBrand** model. + * Example usage: + * ```ts + * // Fetch zero or more ProductBrands + * const productBrands = await prisma.productBrand.findMany() + * ``` + */ + get productBrand(): Prisma.ProductBrandDelegate; + + /** + * `prisma.productCategory`: Exposes CRUD operations for the **ProductCategory** model. + * Example usage: + * ```ts + * // Fetch zero or more ProductCategories + * const productCategories = await prisma.productCategory.findMany() + * ``` + */ + get productCategory(): Prisma.ProductCategoryDelegate; + + /** + * `prisma.vendor`: Exposes CRUD operations for the **Vendor** model. + * Example usage: + * ```ts + * // Fetch zero or more Vendors + * const vendors = await prisma.vendor.findMany() + * ``` + */ + get vendor(): Prisma.VendorDelegate; + + /** + * `prisma.customer`: Exposes CRUD operations for the **Customer** model. + * Example usage: + * ```ts + * // Fetch zero or more Customers + * const customers = await prisma.customer.findMany() + * ``` + */ + get customer(): Prisma.CustomerDelegate; + + /** + * `prisma.inventory`: Exposes CRUD operations for the **Inventory** model. + * Example usage: + * ```ts + * // Fetch zero or more Inventories + * const inventories = await prisma.inventory.findMany() + * ``` + */ + get inventory(): Prisma.InventoryDelegate; + + /** + * `prisma.store`: Exposes CRUD operations for the **Store** model. + * Example usage: + * ```ts + * // Fetch zero or more Stores + * const stores = await prisma.store.findMany() + * ``` + */ + get store(): Prisma.StoreDelegate; +} + +export function getPrismaClientClass(): PrismaClientConstructor { + return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor +} diff --git a/src/generated/prisma/internal/prismaNamespace.ts b/src/generated/prisma/internal/prismaNamespace.ts new file mode 100644 index 0000000..6f6756e --- /dev/null +++ b/src/generated/prisma/internal/prismaNamespace.ts @@ -0,0 +1,1645 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from "@prisma/client/runtime/client" +import type * as Prisma from "../models.js" +import { type PrismaClient } from "./class.js" + +export type * from '../models.js' + +export type DMMF = typeof runtime.DMMF + +export type PrismaPromise = runtime.Types.Public.PrismaPromise + +/** + * Prisma Errors + */ + +export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError +export type PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError + +export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError +export type PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError + +export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError +export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError + +export const PrismaClientInitializationError = runtime.PrismaClientInitializationError +export type PrismaClientInitializationError = runtime.PrismaClientInitializationError + +export const PrismaClientValidationError = runtime.PrismaClientValidationError +export type PrismaClientValidationError = runtime.PrismaClientValidationError + +/** + * Re-export of sql-template-tag + */ +export const sql = runtime.sqltag +export const empty = runtime.empty +export const join = runtime.join +export const raw = runtime.raw +export const Sql = runtime.Sql +export type Sql = runtime.Sql + + + +/** + * Decimal.js + */ +export const Decimal = runtime.Decimal +export type Decimal = runtime.Decimal + +export type DecimalJsLike = runtime.DecimalJsLike + +/** +* Extensions +*/ +export type Extension = runtime.Types.Extensions.UserArgs +export const getExtensionContext = runtime.Extensions.getExtensionContext +export type Args = runtime.Types.Public.Args +export type Payload = runtime.Types.Public.Payload +export type Result = runtime.Types.Public.Result +export type Exact = runtime.Types.Public.Exact + +export type PrismaVersion = { + client: string + engine: string +} + +/** + * Prisma Client JS version: 7.1.0 + * Query Engine version: ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba + */ +export const prismaVersion: PrismaVersion = { + client: "7.1.0", + engine: "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba" +} + +/** + * Utility Types + */ + +export type Bytes = runtime.Bytes +export type JsonObject = runtime.JsonObject +export type JsonArray = runtime.JsonArray +export type JsonValue = runtime.JsonValue +export type InputJsonObject = runtime.InputJsonObject +export type InputJsonArray = runtime.InputJsonArray +export type InputJsonValue = runtime.InputJsonValue + + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull), + JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull), + AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull), +} +/** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const DbNull = runtime.DbNull + +/** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const JsonNull = runtime.JsonNull + +/** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const AnyNull = runtime.AnyNull + + +type SelectAndInclude = { + select: any + include: any +} + +type SelectAndOmit = { + select: any + omit: any +} + +/** + * From T, pick a set of properties whose keys are in the union K + */ +type Prisma__Pick = { + [P in K]: T[P]; +}; + +export type Enumerable = T | Array; + +/** + * Subset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection + */ +export type Subset = { + [key in keyof T]: key extends keyof U ? T[key] : never; +}; + +/** + * SelectSubset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. + * Additionally, it validates, if both select and include are present. If the case, it errors. + */ +export type SelectSubset = { + [key in keyof T]: key extends keyof U ? T[key] : never +} & + (T extends SelectAndInclude + ? 'Please either choose `select` or `include`.' + : T extends SelectAndOmit + ? 'Please either choose `select` or `omit`.' + : {}) + +/** + * Subset + Intersection + * @desc From `T` pick properties that exist in `U` and intersect `K` + */ +export type SubsetIntersection = { + [key in keyof T]: key extends keyof U ? T[key] : never +} & + K + +type Without = { [P in Exclude]?: never }; + +/** + * XOR is needed to have a real mutually exclusive union type + * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types + */ +export type XOR = + T extends object ? + U extends object ? + (Without & U) | (Without & T) + : U : T + + +/** + * Is T a Record? + */ +type IsObject = T extends Array +? False +: T extends Date +? False +: T extends Uint8Array +? False +: T extends BigInt +? False +: T extends object +? True +: False + + +/** + * If it's T[], return T + */ +export type UnEnumerate = T extends Array ? U : T + +/** + * From ts-toolbelt + */ + +type __Either = Omit & + { + // Merge all but K + [P in K]: Prisma__Pick // With K possibilities + }[K] + +type EitherStrict = Strict<__Either> + +type EitherLoose = ComputeRaw<__Either> + +type _Either< + O extends object, + K extends Key, + strict extends Boolean +> = { + 1: EitherStrict + 0: EitherLoose +}[strict] + +export type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 +> = O extends unknown ? _Either : never + +export type Union = any + +export type PatchUndefined = { + [K in keyof O]: O[K] extends undefined ? At : O[K] +} & {} + +/** Helper Types for "Merge" **/ +export type IntersectOf = ( + U extends unknown ? (k: U) => void : never +) extends (k: infer I) => void + ? I + : never + +export type Overwrite = { + [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; +} & {}; + +type _Merge = IntersectOf; +}>>; + +type Key = string | number | symbol; +type AtStrict = O[K & keyof O]; +type AtLoose = O extends unknown ? AtStrict : never; +export type At = { + 1: AtStrict; + 0: AtLoose; +}[strict]; + +export type ComputeRaw = A extends Function ? A : { + [K in keyof A]: A[K]; +} & {}; + +export type OptionalFlat = { + [K in keyof O]?: O[K]; +} & {}; + +type _Record = { + [P in K]: T; +}; + +// cause typescript not to expand types and preserve names +type NoExpand = T extends unknown ? T : never; + +// this type assumes the passed object is entirely optional +export type AtLeast = NoExpand< + O extends unknown + ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) + | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O + : never>; + +type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never; + +export type Strict = ComputeRaw<_Strict>; +/** End Helper Types for "Merge" **/ + +export type Merge = ComputeRaw<_Merge>>; + +export type Boolean = True | False + +export type True = 1 + +export type False = 0 + +export type Not = { + 0: 1 + 1: 0 +}[B] + +export type Extends = [A1] extends [never] + ? 0 // anything `never` is false + : A1 extends A2 + ? 1 + : 0 + +export type Has = Not< + Extends, U1> +> + +export type Or = { + 0: { + 0: 0 + 1: 1 + } + 1: { + 0: 1 + 1: 1 + } +}[B1][B2] + +export type Keys = U extends unknown ? keyof U : never + +export type GetScalarType = O extends object ? { + [P in keyof T]: P extends keyof O + ? O[P] + : never +} : never + +type FieldPaths< + T, + U = Omit +> = IsObject extends True ? U : T + +export type GetHavingFields = { + [K in keyof T]: Or< + Or, Extends<'AND', K>>, + Extends<'NOT', K> + > extends True + ? // infer is only needed to not hit TS limit + // based on the brilliant idea of Pierre-Antoine Mills + // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 + T[K] extends infer TK + ? GetHavingFields extends object ? Merge> : never> + : never + : {} extends FieldPaths + ? never + : K +}[keyof T] + +/** + * Convert tuple to union + */ +type _TupleToUnion = T extends (infer E)[] ? E : never +type TupleToUnion = _TupleToUnion +export type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T + +/** + * Like `Pick`, but additionally can also accept an array of keys + */ +export type PickEnumerable | keyof T> = Prisma__Pick> + +/** + * Exclude all keys with underscores + */ +export type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T + + +export type FieldRef = runtime.FieldRef + +type FieldRefInputType = Model extends never ? never : FieldRef + + +export const ModelName = { + User: 'User', + Role: 'Role', + Product: 'Product', + ProductInfo: 'ProductInfo', + ProductBrand: 'ProductBrand', + ProductCategory: 'ProductCategory', + Vendor: 'Vendor', + Customer: 'Customer', + Inventory: 'Inventory', + Store: 'Store' +} as const + +export type ModelName = (typeof ModelName)[keyof typeof ModelName] + + + +export interface TypeMapCb extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record> { + returns: TypeMap +} + +export type TypeMap = { + globalOmitOptions: { + omit: GlobalOmitOptions + } + meta: { + modelProps: "user" | "role" | "product" | "productInfo" | "productBrand" | "productCategory" | "vendor" | "customer" | "inventory" | "store" + txIsolationLevel: TransactionIsolationLevel + } + model: { + User: { + payload: Prisma.$UserPayload + fields: Prisma.UserFieldRefs + operations: { + findUnique: { + args: Prisma.UserFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.UserCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.UserCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.UserDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.UserUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.UserGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.UserCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Role: { + payload: Prisma.$RolePayload + fields: Prisma.RoleFieldRefs + operations: { + findUnique: { + args: Prisma.RoleFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.RoleFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.RoleFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.RoleFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.RoleFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.RoleCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.RoleCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.RoleDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.RoleUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.RoleDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.RoleUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.RoleUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.RoleAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.RoleGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.RoleCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Product: { + payload: Prisma.$ProductPayload + fields: Prisma.ProductFieldRefs + operations: { + findUnique: { + args: Prisma.ProductFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ProductFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ProductFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ProductFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ProductFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ProductCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ProductCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ProductDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ProductUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ProductDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ProductUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ProductUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ProductAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ProductGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ProductCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + ProductInfo: { + payload: Prisma.$ProductInfoPayload + fields: Prisma.ProductInfoFieldRefs + operations: { + findUnique: { + args: Prisma.ProductInfoFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ProductInfoFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ProductInfoFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ProductInfoFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ProductInfoFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ProductInfoCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ProductInfoCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ProductInfoDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ProductInfoUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ProductInfoDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ProductInfoUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ProductInfoUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ProductInfoAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ProductInfoGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ProductInfoCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + ProductBrand: { + payload: Prisma.$ProductBrandPayload + fields: Prisma.ProductBrandFieldRefs + operations: { + findUnique: { + args: Prisma.ProductBrandFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ProductBrandFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ProductBrandFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ProductBrandFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ProductBrandFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ProductBrandCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ProductBrandCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ProductBrandDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ProductBrandUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ProductBrandDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ProductBrandUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ProductBrandUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ProductBrandAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ProductBrandGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ProductBrandCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + ProductCategory: { + payload: Prisma.$ProductCategoryPayload + fields: Prisma.ProductCategoryFieldRefs + operations: { + findUnique: { + args: Prisma.ProductCategoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ProductCategoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ProductCategoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ProductCategoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ProductCategoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ProductCategoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ProductCategoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.ProductCategoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ProductCategoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ProductCategoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ProductCategoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ProductCategoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ProductCategoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ProductCategoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ProductCategoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Vendor: { + payload: Prisma.$VendorPayload + fields: Prisma.VendorFieldRefs + operations: { + findUnique: { + args: Prisma.VendorFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.VendorFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.VendorFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.VendorFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.VendorFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.VendorCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.VendorCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.VendorDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.VendorUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.VendorDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.VendorUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.VendorUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.VendorAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.VendorGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.VendorCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Customer: { + payload: Prisma.$CustomerPayload + fields: Prisma.CustomerFieldRefs + operations: { + findUnique: { + args: Prisma.CustomerFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.CustomerFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.CustomerFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.CustomerFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.CustomerFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.CustomerCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.CustomerCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.CustomerDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.CustomerUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.CustomerDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.CustomerUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.CustomerUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.CustomerAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.CustomerGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.CustomerCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Inventory: { + payload: Prisma.$InventoryPayload + fields: Prisma.InventoryFieldRefs + operations: { + findUnique: { + args: Prisma.InventoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.InventoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.InventoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.InventoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.InventoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.InventoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.InventoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.InventoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.InventoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.InventoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.InventoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.InventoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.InventoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.InventoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.InventoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Store: { + payload: Prisma.$StorePayload + fields: Prisma.StoreFieldRefs + operations: { + findUnique: { + args: Prisma.StoreFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.StoreFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.StoreFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.StoreFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.StoreFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.StoreCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.StoreCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.StoreDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.StoreUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.StoreDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.StoreUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.StoreUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.StoreAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.StoreGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.StoreCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + } +} & { + other: { + payload: any + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]], + result: any + } + $executeRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + $queryRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]], + result: any + } + $queryRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + } + } +} + +/** + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +} as const) + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + mobileNumber: 'mobileNumber', + password: 'password', + firstName: 'firstName', + lastName: 'lastName', + roleId: 'roleId' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const RoleScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + permissions: 'permissions', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type RoleScalarFieldEnum = (typeof RoleScalarFieldEnum)[keyof typeof RoleScalarFieldEnum] + + +export const ProductScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + sku: 'sku', + barcode: 'barcode', + imageUrl: 'imageUrl', + attachmentId: 'attachmentId', + unit: 'unit', + discount: 'discount', + quantity: 'quantity', + alertQuantity: 'alertQuantity', + isActive: 'isActive', + isFeatured: 'isFeatured', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt', + productInfoId: 'productInfoId' +} as const + +export type ProductScalarFieldEnum = (typeof ProductScalarFieldEnum)[keyof typeof ProductScalarFieldEnum] + + +export const ProductInfoScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + productType: 'productType', + metaData: 'metaData', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt', + brandId: 'brandId', + categoryId: 'categoryId', + vendorId: 'vendorId' +} as const + +export type ProductInfoScalarFieldEnum = (typeof ProductInfoScalarFieldEnum)[keyof typeof ProductInfoScalarFieldEnum] + + +export const ProductBrandScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + imageUrl: 'imageUrl', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type ProductBrandScalarFieldEnum = (typeof ProductBrandScalarFieldEnum)[keyof typeof ProductBrandScalarFieldEnum] + + +export const ProductCategoryScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + imageUrl: 'imageUrl', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type ProductCategoryScalarFieldEnum = (typeof ProductCategoryScalarFieldEnum)[keyof typeof ProductCategoryScalarFieldEnum] + + +export const VendorScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type VendorScalarFieldEnum = (typeof VendorScalarFieldEnum)[keyof typeof VendorScalarFieldEnum] + + +export const CustomerScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum] + + +export const InventoryScalarFieldEnum = { + id: 'id', + name: 'name', + location: 'location', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type InventoryScalarFieldEnum = (typeof InventoryScalarFieldEnum)[keyof typeof InventoryScalarFieldEnum] + + +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name', + location: 'location', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type StoreScalarFieldEnum = (typeof StoreScalarFieldEnum)[keyof typeof StoreScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullableJsonNullValueInput = { + DbNull: DbNull, + JsonNull: JsonNull +} as const + +export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput] + + +export const UserOrderByRelevanceFieldEnum = { + mobileNumber: 'mobileNumber', + password: 'password', + firstName: 'firstName', + lastName: 'lastName' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + +export const RoleOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description' +} as const + +export type RoleOrderByRelevanceFieldEnum = (typeof RoleOrderByRelevanceFieldEnum)[keyof typeof RoleOrderByRelevanceFieldEnum] + + +export const ProductOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + sku: 'sku', + barcode: 'barcode', + imageUrl: 'imageUrl', + unit: 'unit' +} as const + +export type ProductOrderByRelevanceFieldEnum = (typeof ProductOrderByRelevanceFieldEnum)[keyof typeof ProductOrderByRelevanceFieldEnum] + + +export const ProductInfoOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + productType: 'productType' +} as const + +export type ProductInfoOrderByRelevanceFieldEnum = (typeof ProductInfoOrderByRelevanceFieldEnum)[keyof typeof ProductInfoOrderByRelevanceFieldEnum] + + +export const ProductBrandOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + imageUrl: 'imageUrl' +} as const + +export type ProductBrandOrderByRelevanceFieldEnum = (typeof ProductBrandOrderByRelevanceFieldEnum)[keyof typeof ProductBrandOrderByRelevanceFieldEnum] + + +export const ProductCategoryOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + imageUrl: 'imageUrl' +} as const + +export type ProductCategoryOrderByRelevanceFieldEnum = (typeof ProductCategoryOrderByRelevanceFieldEnum)[keyof typeof ProductCategoryOrderByRelevanceFieldEnum] + + +export const VendorOrderByRelevanceFieldEnum = { + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country' +} as const + +export type VendorOrderByRelevanceFieldEnum = (typeof VendorOrderByRelevanceFieldEnum)[keyof typeof VendorOrderByRelevanceFieldEnum] + + +export const CustomerOrderByRelevanceFieldEnum = { + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country' +} as const + +export type CustomerOrderByRelevanceFieldEnum = (typeof CustomerOrderByRelevanceFieldEnum)[keyof typeof CustomerOrderByRelevanceFieldEnum] + + +export const InventoryOrderByRelevanceFieldEnum = { + name: 'name', + location: 'location' +} as const + +export type InventoryOrderByRelevanceFieldEnum = (typeof InventoryOrderByRelevanceFieldEnum)[keyof typeof InventoryOrderByRelevanceFieldEnum] + + +export const StoreOrderByRelevanceFieldEnum = { + name: 'name', + location: 'location' +} as const + +export type StoreOrderByRelevanceFieldEnum = (typeof StoreOrderByRelevanceFieldEnum)[keyof typeof StoreOrderByRelevanceFieldEnum] + + + +/** + * Field references + */ + + +/** + * Reference to a field of type 'Int' + */ +export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + +/** + * Reference to a field of type 'String' + */ +export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + +/** + * Reference to a field of type 'Json' + */ +export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'> + + + +/** + * Reference to a field of type 'QueryMode' + */ +export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'> + + + +/** + * Reference to a field of type 'DateTime' + */ +export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> + + + +/** + * Reference to a field of type 'BigInt' + */ +export type BigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt'> + + + +/** + * Reference to a field of type 'Decimal' + */ +export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal'> + + + +/** + * Reference to a field of type 'Boolean' + */ +export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'> + + + +/** + * Reference to a field of type 'Float' + */ +export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'> + + +/** + * Batch Payload for updateMany & deleteMany & createMany + */ +export type BatchPayload = { + count: number +} + +export const defineExtension = runtime.Extensions.defineExtension as unknown as runtime.Types.Extensions.ExtendsHook<"define", TypeMapCb, runtime.Types.Extensions.DefaultArgs> +export type DefaultPrismaClient = PrismaClient +export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' +export type PrismaClientOptions = ({ + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-pg`. + */ + adapter: runtime.SqlDriverAdapterFactory + accelerateUrl?: never +} | { + /** + * Prisma Accelerate URL allowing the client to connect through Accelerate instead of a direct database. + */ + accelerateUrl: string + adapter?: never +}) & { + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat + /** + * @example + * ``` + * // Shorthand for `emit: 'stdout'` + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events only + * log: [ + * { emit: 'event', level: 'query' }, + * { emit: 'event', level: 'info' }, + * { emit: 'event', level: 'warn' } + * { emit: 'event', level: 'error' } + * ] + * + * / Emit as events and log to stdout + * og: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * + * ``` + * Read more in our [docs](https://pris.ly/d/logging). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: TransactionIsolationLevel + } + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: GlobalOmitConfig + /** + * SQL commenter plugins that add metadata to SQL queries as comments. + * Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/ + * + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter, + * comments: [ + * traceContext(), + * queryInsights(), + * ], + * }) + * ``` + */ + comments?: runtime.SqlCommenterPlugin[] +} +export type GlobalOmitConfig = { + user?: Prisma.UserOmit + role?: Prisma.RoleOmit + product?: Prisma.ProductOmit + productInfo?: Prisma.ProductInfoOmit + productBrand?: Prisma.ProductBrandOmit + productCategory?: Prisma.ProductCategoryOmit + vendor?: Prisma.VendorOmit + customer?: Prisma.CustomerOmit + inventory?: Prisma.InventoryOmit + store?: Prisma.StoreOmit +} + +/* Types for Logging */ +export type LogLevel = 'info' | 'query' | 'warn' | 'error' +export type LogDefinition = { + level: LogLevel + emit: 'stdout' | 'event' +} + +export type CheckIsLogLevel = T extends LogLevel ? T : never; + +export type GetLogType = CheckIsLogLevel< + T extends LogDefinition ? T['level'] : T +>; + +export type GetEvents = T extends Array + ? GetLogType + : never; + +export type QueryEvent = { + timestamp: Date + query: string + params: string + duration: number + target: string +} + +export type LogEvent = { + timestamp: Date + message: string + target: string +} +/* End Types for Logging */ + + +export type PrismaAction = + | 'findUnique' + | 'findUniqueOrThrow' + | 'findMany' + | 'findFirst' + | 'findFirstOrThrow' + | 'create' + | 'createMany' + | 'createManyAndReturn' + | 'update' + | 'updateMany' + | 'updateManyAndReturn' + | 'upsert' + | 'delete' + | 'deleteMany' + | 'executeRaw' + | 'queryRaw' + | 'aggregate' + | 'count' + | 'runCommandRaw' + | 'findRaw' + | 'groupBy' + +/** + * `PrismaClient` proxy available in interactive transactions. + */ +export type TransactionClient = Omit + diff --git a/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/src/generated/prisma/internal/prismaNamespaceBrowser.ts new file mode 100644 index 0000000..71ace19 --- /dev/null +++ b/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -0,0 +1,375 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from "@prisma/client/runtime/index-browser" + +export type * from '../models.js' +export type * from './prismaNamespace.js' + +export const Decimal = runtime.Decimal + + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull), + JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull), + AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull), +} +/** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const DbNull = runtime.DbNull + +/** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const JsonNull = runtime.JsonNull + +/** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const AnyNull = runtime.AnyNull + + +export const ModelName = { + User: 'User', + Role: 'Role', + Product: 'Product', + ProductInfo: 'ProductInfo', + ProductBrand: 'ProductBrand', + ProductCategory: 'ProductCategory', + Vendor: 'Vendor', + Customer: 'Customer', + Inventory: 'Inventory', + Store: 'Store' +} as const + +export type ModelName = (typeof ModelName)[keyof typeof ModelName] + +/* + * Enums + */ + +export const TransactionIsolationLevel = { + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +} as const + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + mobileNumber: 'mobileNumber', + password: 'password', + firstName: 'firstName', + lastName: 'lastName', + roleId: 'roleId' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const RoleScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + permissions: 'permissions', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type RoleScalarFieldEnum = (typeof RoleScalarFieldEnum)[keyof typeof RoleScalarFieldEnum] + + +export const ProductScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + sku: 'sku', + barcode: 'barcode', + imageUrl: 'imageUrl', + attachmentId: 'attachmentId', + unit: 'unit', + discount: 'discount', + quantity: 'quantity', + alertQuantity: 'alertQuantity', + isActive: 'isActive', + isFeatured: 'isFeatured', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt', + productInfoId: 'productInfoId' +} as const + +export type ProductScalarFieldEnum = (typeof ProductScalarFieldEnum)[keyof typeof ProductScalarFieldEnum] + + +export const ProductInfoScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + productType: 'productType', + metaData: 'metaData', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt', + brandId: 'brandId', + categoryId: 'categoryId', + vendorId: 'vendorId' +} as const + +export type ProductInfoScalarFieldEnum = (typeof ProductInfoScalarFieldEnum)[keyof typeof ProductInfoScalarFieldEnum] + + +export const ProductBrandScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + imageUrl: 'imageUrl', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type ProductBrandScalarFieldEnum = (typeof ProductBrandScalarFieldEnum)[keyof typeof ProductBrandScalarFieldEnum] + + +export const ProductCategoryScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + imageUrl: 'imageUrl', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type ProductCategoryScalarFieldEnum = (typeof ProductCategoryScalarFieldEnum)[keyof typeof ProductCategoryScalarFieldEnum] + + +export const VendorScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type VendorScalarFieldEnum = (typeof VendorScalarFieldEnum)[keyof typeof VendorScalarFieldEnum] + + +export const CustomerScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + deletedAt: 'deletedAt' +} as const + +export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum] + + +export const InventoryScalarFieldEnum = { + id: 'id', + name: 'name', + location: 'location', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type InventoryScalarFieldEnum = (typeof InventoryScalarFieldEnum)[keyof typeof InventoryScalarFieldEnum] + + +export const StoreScalarFieldEnum = { + id: 'id', + name: 'name', + location: 'location', + isActive: 'isActive', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type StoreScalarFieldEnum = (typeof StoreScalarFieldEnum)[keyof typeof StoreScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullableJsonNullValueInput = { + DbNull: 'DbNull', + JsonNull: 'JsonNull' +} as const + +export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput] + + +export const UserOrderByRelevanceFieldEnum = { + mobileNumber: 'mobileNumber', + password: 'password', + firstName: 'firstName', + lastName: 'lastName' +} as const + +export type UserOrderByRelevanceFieldEnum = (typeof UserOrderByRelevanceFieldEnum)[keyof typeof UserOrderByRelevanceFieldEnum] + + +export const JsonNullValueFilter = { + DbNull: 'DbNull', + JsonNull: 'JsonNull', + AnyNull: 'AnyNull' +} as const + +export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive' +} as const + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + +export const RoleOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description' +} as const + +export type RoleOrderByRelevanceFieldEnum = (typeof RoleOrderByRelevanceFieldEnum)[keyof typeof RoleOrderByRelevanceFieldEnum] + + +export const ProductOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + sku: 'sku', + barcode: 'barcode', + imageUrl: 'imageUrl', + unit: 'unit' +} as const + +export type ProductOrderByRelevanceFieldEnum = (typeof ProductOrderByRelevanceFieldEnum)[keyof typeof ProductOrderByRelevanceFieldEnum] + + +export const ProductInfoOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + productType: 'productType' +} as const + +export type ProductInfoOrderByRelevanceFieldEnum = (typeof ProductInfoOrderByRelevanceFieldEnum)[keyof typeof ProductInfoOrderByRelevanceFieldEnum] + + +export const ProductBrandOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + imageUrl: 'imageUrl' +} as const + +export type ProductBrandOrderByRelevanceFieldEnum = (typeof ProductBrandOrderByRelevanceFieldEnum)[keyof typeof ProductBrandOrderByRelevanceFieldEnum] + + +export const ProductCategoryOrderByRelevanceFieldEnum = { + name: 'name', + description: 'description', + imageUrl: 'imageUrl' +} as const + +export type ProductCategoryOrderByRelevanceFieldEnum = (typeof ProductCategoryOrderByRelevanceFieldEnum)[keyof typeof ProductCategoryOrderByRelevanceFieldEnum] + + +export const VendorOrderByRelevanceFieldEnum = { + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country' +} as const + +export type VendorOrderByRelevanceFieldEnum = (typeof VendorOrderByRelevanceFieldEnum)[keyof typeof VendorOrderByRelevanceFieldEnum] + + +export const CustomerOrderByRelevanceFieldEnum = { + firstName: 'firstName', + lastName: 'lastName', + email: 'email', + mobileNumber: 'mobileNumber', + address: 'address', + city: 'city', + state: 'state', + country: 'country' +} as const + +export type CustomerOrderByRelevanceFieldEnum = (typeof CustomerOrderByRelevanceFieldEnum)[keyof typeof CustomerOrderByRelevanceFieldEnum] + + +export const InventoryOrderByRelevanceFieldEnum = { + name: 'name', + location: 'location' +} as const + +export type InventoryOrderByRelevanceFieldEnum = (typeof InventoryOrderByRelevanceFieldEnum)[keyof typeof InventoryOrderByRelevanceFieldEnum] + + +export const StoreOrderByRelevanceFieldEnum = { + name: 'name', + location: 'location' +} as const + +export type StoreOrderByRelevanceFieldEnum = (typeof StoreOrderByRelevanceFieldEnum)[keyof typeof StoreOrderByRelevanceFieldEnum] + diff --git a/src/generated/prisma/models.ts b/src/generated/prisma/models.ts new file mode 100644 index 0000000..704ba28 --- /dev/null +++ b/src/generated/prisma/models.ts @@ -0,0 +1,21 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This is a barrel export file for all models and their related types. + * + * 🟢 You can import this file directly. + */ +export type * from './models/User.js' +export type * from './models/Role.js' +export type * from './models/Product.js' +export type * from './models/ProductInfo.js' +export type * from './models/ProductBrand.js' +export type * from './models/ProductCategory.js' +export type * from './models/Vendor.js' +export type * from './models/Customer.js' +export type * from './models/Inventory.js' +export type * from './models/Store.js' +export type * from './commonInputTypes.js' \ No newline at end of file diff --git a/src/generated/prisma/models/Customer.ts b/src/generated/prisma/models/Customer.ts new file mode 100644 index 0000000..683525a --- /dev/null +++ b/src/generated/prisma/models/Customer.ts @@ -0,0 +1,1287 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Customer` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Customer + * + */ +export type CustomerModel = runtime.Types.Result.DefaultSelection + +export type AggregateCustomer = { + _count: CustomerCountAggregateOutputType | null + _avg: CustomerAvgAggregateOutputType | null + _sum: CustomerSumAggregateOutputType | null + _min: CustomerMinAggregateOutputType | null + _max: CustomerMaxAggregateOutputType | null +} + +export type CustomerAvgAggregateOutputType = { + id: number | null +} + +export type CustomerSumAggregateOutputType = { + id: number | null +} + +export type CustomerMinAggregateOutputType = { + id: number | null + firstName: string | null + lastName: string | null + email: string | null + mobileNumber: string | null + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type CustomerMaxAggregateOutputType = { + id: number | null + firstName: string | null + lastName: string | null + email: string | null + mobileNumber: string | null + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type CustomerCountAggregateOutputType = { + id: number + firstName: number + lastName: number + email: number + mobileNumber: number + address: number + city: number + state: number + country: number + isActive: number + createdAt: number + updatedAt: number + deletedAt: number + _all: number +} + + +export type CustomerAvgAggregateInputType = { + id?: true +} + +export type CustomerSumAggregateInputType = { + id?: true +} + +export type CustomerMinAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type CustomerMaxAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type CustomerCountAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + _all?: true +} + +export type CustomerAggregateArgs = { + /** + * Filter which Customer to aggregate. + */ + where?: Prisma.CustomerWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Customers to fetch. + */ + orderBy?: Prisma.CustomerOrderByWithRelationInput | Prisma.CustomerOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.CustomerWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Customers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Customers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Customers + **/ + _count?: true | CustomerCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: CustomerAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: CustomerSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: CustomerMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: CustomerMaxAggregateInputType +} + +export type GetCustomerAggregateType = { + [P in keyof T & keyof AggregateCustomer]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type CustomerGroupByArgs = { + where?: Prisma.CustomerWhereInput + orderBy?: Prisma.CustomerOrderByWithAggregationInput | Prisma.CustomerOrderByWithAggregationInput[] + by: Prisma.CustomerScalarFieldEnum[] | Prisma.CustomerScalarFieldEnum + having?: Prisma.CustomerScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: CustomerCountAggregateInputType | true + _avg?: CustomerAvgAggregateInputType + _sum?: CustomerSumAggregateInputType + _min?: CustomerMinAggregateInputType + _max?: CustomerMaxAggregateInputType +} + +export type CustomerGroupByOutputType = { + id: number + firstName: string + lastName: string + email: string | null + mobileNumber: string + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + _count: CustomerCountAggregateOutputType | null + _avg: CustomerAvgAggregateOutputType | null + _sum: CustomerSumAggregateOutputType | null + _min: CustomerMinAggregateOutputType | null + _max: CustomerMaxAggregateOutputType | null +} + +type GetCustomerGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof CustomerGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type CustomerWhereInput = { + AND?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] + OR?: Prisma.CustomerWhereInput[] + NOT?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] + id?: Prisma.IntFilter<"Customer"> | number + firstName?: Prisma.StringFilter<"Customer"> | string + lastName?: Prisma.StringFilter<"Customer"> | string + email?: Prisma.StringNullableFilter<"Customer"> | string | null + mobileNumber?: Prisma.StringFilter<"Customer"> | string + address?: Prisma.StringNullableFilter<"Customer"> | string | null + city?: Prisma.StringNullableFilter<"Customer"> | string | null + state?: Prisma.StringNullableFilter<"Customer"> | string | null + country?: Prisma.StringNullableFilter<"Customer"> | string | null + isActive?: Prisma.BoolFilter<"Customer"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null +} + +export type CustomerOrderByWithRelationInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + state?: Prisma.SortOrderInput | Prisma.SortOrder + country?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _relevance?: Prisma.CustomerOrderByRelevanceInput +} + +export type CustomerWhereUniqueInput = Prisma.AtLeast<{ + id?: number + mobileNumber?: string + AND?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] + OR?: Prisma.CustomerWhereInput[] + NOT?: Prisma.CustomerWhereInput | Prisma.CustomerWhereInput[] + firstName?: Prisma.StringFilter<"Customer"> | string + lastName?: Prisma.StringFilter<"Customer"> | string + email?: Prisma.StringNullableFilter<"Customer"> | string | null + address?: Prisma.StringNullableFilter<"Customer"> | string | null + city?: Prisma.StringNullableFilter<"Customer"> | string | null + state?: Prisma.StringNullableFilter<"Customer"> | string | null + country?: Prisma.StringNullableFilter<"Customer"> | string | null + isActive?: Prisma.BoolFilter<"Customer"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Customer"> | Date | string | null +}, "id" | "mobileNumber"> + +export type CustomerOrderByWithAggregationInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + state?: Prisma.SortOrderInput | Prisma.SortOrder + country?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.CustomerCountOrderByAggregateInput + _avg?: Prisma.CustomerAvgOrderByAggregateInput + _max?: Prisma.CustomerMaxOrderByAggregateInput + _min?: Prisma.CustomerMinOrderByAggregateInput + _sum?: Prisma.CustomerSumOrderByAggregateInput +} + +export type CustomerScalarWhereWithAggregatesInput = { + AND?: Prisma.CustomerScalarWhereWithAggregatesInput | Prisma.CustomerScalarWhereWithAggregatesInput[] + OR?: Prisma.CustomerScalarWhereWithAggregatesInput[] + NOT?: Prisma.CustomerScalarWhereWithAggregatesInput | Prisma.CustomerScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Customer"> | number + firstName?: Prisma.StringWithAggregatesFilter<"Customer"> | string + lastName?: Prisma.StringWithAggregatesFilter<"Customer"> | string + email?: Prisma.StringNullableWithAggregatesFilter<"Customer"> | string | null + mobileNumber?: Prisma.StringWithAggregatesFilter<"Customer"> | string + address?: Prisma.StringNullableWithAggregatesFilter<"Customer"> | string | null + city?: Prisma.StringNullableWithAggregatesFilter<"Customer"> | string | null + state?: Prisma.StringNullableWithAggregatesFilter<"Customer"> | string | null + country?: Prisma.StringNullableWithAggregatesFilter<"Customer"> | string | null + isActive?: Prisma.BoolWithAggregatesFilter<"Customer"> | boolean + createdAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Customer"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Customer"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Customer"> | Date | string | null +} + +export type CustomerCreateInput = { + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type CustomerUncheckedCreateInput = { + id?: number + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type CustomerUpdateInput = { + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type CustomerUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type CustomerCreateManyInput = { + id?: number + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type CustomerUpdateManyMutationInput = { + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type CustomerUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type CustomerOrderByRelevanceInput = { + fields: Prisma.CustomerOrderByRelevanceFieldEnum | Prisma.CustomerOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type CustomerCountOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type CustomerAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type CustomerMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type CustomerMinOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type CustomerSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type CustomerSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + firstName?: boolean + lastName?: boolean + email?: boolean + mobileNumber?: boolean + address?: boolean + city?: boolean + state?: boolean + country?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +}, ExtArgs["result"]["customer"]> + + + +export type CustomerSelectScalar = { + id?: boolean + firstName?: boolean + lastName?: boolean + email?: boolean + mobileNumber?: boolean + address?: boolean + city?: boolean + state?: boolean + country?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +} + +export type CustomerOmit = runtime.Types.Extensions.GetOmit<"id" | "firstName" | "lastName" | "email" | "mobileNumber" | "address" | "city" | "state" | "country" | "isActive" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["customer"]> + +export type $CustomerPayload = { + name: "Customer" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + firstName: string + lastName: string + email: string | null + mobileNumber: string + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + }, ExtArgs["result"]["customer"]> + composites: {} +} + +export type CustomerGetPayload = runtime.Types.Result.GetResult + +export type CustomerCountArgs = + Omit & { + select?: CustomerCountAggregateInputType | true + } + +export interface CustomerDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Customer'], meta: { name: 'Customer' } } + /** + * Find zero or one Customer that matches the filter. + * @param {CustomerFindUniqueArgs} args - Arguments to find a Customer + * @example + * // Get one Customer + * const customer = await prisma.customer.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Customer that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {CustomerFindUniqueOrThrowArgs} args - Arguments to find a Customer + * @example + * // Get one Customer + * const customer = await prisma.customer.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Customer that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerFindFirstArgs} args - Arguments to find a Customer + * @example + * // Get one Customer + * const customer = await prisma.customer.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Customer that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerFindFirstOrThrowArgs} args - Arguments to find a Customer + * @example + * // Get one Customer + * const customer = await prisma.customer.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Customers that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Customers + * const customers = await prisma.customer.findMany() + * + * // Get first 10 Customers + * const customers = await prisma.customer.findMany({ take: 10 }) + * + * // Only select the `id` + * const customerWithIdOnly = await prisma.customer.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Customer. + * @param {CustomerCreateArgs} args - Arguments to create a Customer. + * @example + * // Create one Customer + * const Customer = await prisma.customer.create({ + * data: { + * // ... data to create a Customer + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Customers. + * @param {CustomerCreateManyArgs} args - Arguments to create many Customers. + * @example + * // Create many Customers + * const customer = await prisma.customer.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Customer. + * @param {CustomerDeleteArgs} args - Arguments to delete one Customer. + * @example + * // Delete one Customer + * const Customer = await prisma.customer.delete({ + * where: { + * // ... filter to delete one Customer + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Customer. + * @param {CustomerUpdateArgs} args - Arguments to update one Customer. + * @example + * // Update one Customer + * const customer = await prisma.customer.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Customers. + * @param {CustomerDeleteManyArgs} args - Arguments to filter Customers to delete. + * @example + * // Delete a few Customers + * const { count } = await prisma.customer.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Customers. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Customers + * const customer = await prisma.customer.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Customer. + * @param {CustomerUpsertArgs} args - Arguments to update or create a Customer. + * @example + * // Update or create a Customer + * const customer = await prisma.customer.upsert({ + * create: { + * // ... data to create a Customer + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Customer we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__CustomerClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Customers. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerCountArgs} args - Arguments to filter Customers to count. + * @example + * // Count the number of Customers + * const count = await prisma.customer.count({ + * where: { + * // ... the filter for the Customers we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Customer. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Customer. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CustomerGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends CustomerGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: CustomerGroupByArgs['orderBy'] } + : { orderBy?: CustomerGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetCustomerGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Customer model + */ +readonly fields: CustomerFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Customer. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__CustomerClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Customer model + */ +export interface CustomerFieldRefs { + readonly id: Prisma.FieldRef<"Customer", 'Int'> + readonly firstName: Prisma.FieldRef<"Customer", 'String'> + readonly lastName: Prisma.FieldRef<"Customer", 'String'> + readonly email: Prisma.FieldRef<"Customer", 'String'> + readonly mobileNumber: Prisma.FieldRef<"Customer", 'String'> + readonly address: Prisma.FieldRef<"Customer", 'String'> + readonly city: Prisma.FieldRef<"Customer", 'String'> + readonly state: Prisma.FieldRef<"Customer", 'String'> + readonly country: Prisma.FieldRef<"Customer", 'String'> + readonly isActive: Prisma.FieldRef<"Customer", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Customer", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Customer", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"Customer", 'DateTime'> +} + + +// Custom InputTypes +/** + * Customer findUnique + */ +export type CustomerFindUniqueArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter, which Customer to fetch. + */ + where: Prisma.CustomerWhereUniqueInput +} + +/** + * Customer findUniqueOrThrow + */ +export type CustomerFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter, which Customer to fetch. + */ + where: Prisma.CustomerWhereUniqueInput +} + +/** + * Customer findFirst + */ +export type CustomerFindFirstArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter, which Customer to fetch. + */ + where?: Prisma.CustomerWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Customers to fetch. + */ + orderBy?: Prisma.CustomerOrderByWithRelationInput | Prisma.CustomerOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Customers. + */ + cursor?: Prisma.CustomerWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Customers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Customers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Customers. + */ + distinct?: Prisma.CustomerScalarFieldEnum | Prisma.CustomerScalarFieldEnum[] +} + +/** + * Customer findFirstOrThrow + */ +export type CustomerFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter, which Customer to fetch. + */ + where?: Prisma.CustomerWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Customers to fetch. + */ + orderBy?: Prisma.CustomerOrderByWithRelationInput | Prisma.CustomerOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Customers. + */ + cursor?: Prisma.CustomerWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Customers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Customers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Customers. + */ + distinct?: Prisma.CustomerScalarFieldEnum | Prisma.CustomerScalarFieldEnum[] +} + +/** + * Customer findMany + */ +export type CustomerFindManyArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter, which Customers to fetch. + */ + where?: Prisma.CustomerWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Customers to fetch. + */ + orderBy?: Prisma.CustomerOrderByWithRelationInput | Prisma.CustomerOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Customers. + */ + cursor?: Prisma.CustomerWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Customers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Customers. + */ + skip?: number + distinct?: Prisma.CustomerScalarFieldEnum | Prisma.CustomerScalarFieldEnum[] +} + +/** + * Customer create + */ +export type CustomerCreateArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * The data needed to create a Customer. + */ + data: Prisma.XOR +} + +/** + * Customer createMany + */ +export type CustomerCreateManyArgs = { + /** + * The data used to create many Customers. + */ + data: Prisma.CustomerCreateManyInput | Prisma.CustomerCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Customer update + */ +export type CustomerUpdateArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * The data needed to update a Customer. + */ + data: Prisma.XOR + /** + * Choose, which Customer to update. + */ + where: Prisma.CustomerWhereUniqueInput +} + +/** + * Customer updateMany + */ +export type CustomerUpdateManyArgs = { + /** + * The data used to update Customers. + */ + data: Prisma.XOR + /** + * Filter which Customers to update + */ + where?: Prisma.CustomerWhereInput + /** + * Limit how many Customers to update. + */ + limit?: number +} + +/** + * Customer upsert + */ +export type CustomerUpsertArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * The filter to search for the Customer to update in case it exists. + */ + where: Prisma.CustomerWhereUniqueInput + /** + * In case the Customer found by the `where` argument doesn't exist, create a new Customer with this data. + */ + create: Prisma.XOR + /** + * In case the Customer was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Customer delete + */ +export type CustomerDeleteArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null + /** + * Filter which Customer to delete. + */ + where: Prisma.CustomerWhereUniqueInput +} + +/** + * Customer deleteMany + */ +export type CustomerDeleteManyArgs = { + /** + * Filter which Customers to delete + */ + where?: Prisma.CustomerWhereInput + /** + * Limit how many Customers to delete. + */ + limit?: number +} + +/** + * Customer without action + */ +export type CustomerDefaultArgs = { + /** + * Select specific fields to fetch from the Customer + */ + select?: Prisma.CustomerSelect | null + /** + * Omit specific fields from the Customer + */ + omit?: Prisma.CustomerOmit | null +} diff --git a/src/generated/prisma/models/Inventory.ts b/src/generated/prisma/models/Inventory.ts new file mode 100644 index 0000000..9ffc5fc --- /dev/null +++ b/src/generated/prisma/models/Inventory.ts @@ -0,0 +1,1105 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Inventory` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Inventory + * + */ +export type InventoryModel = runtime.Types.Result.DefaultSelection + +export type AggregateInventory = { + _count: InventoryCountAggregateOutputType | null + _avg: InventoryAvgAggregateOutputType | null + _sum: InventorySumAggregateOutputType | null + _min: InventoryMinAggregateOutputType | null + _max: InventoryMaxAggregateOutputType | null +} + +export type InventoryAvgAggregateOutputType = { + id: number | null +} + +export type InventorySumAggregateOutputType = { + id: number | null +} + +export type InventoryMinAggregateOutputType = { + id: number | null + name: string | null + location: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type InventoryMaxAggregateOutputType = { + id: number | null + name: string | null + location: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type InventoryCountAggregateOutputType = { + id: number + name: number + location: number + isActive: number + createdAt: number + updatedAt: number + _all: number +} + + +export type InventoryAvgAggregateInputType = { + id?: true +} + +export type InventorySumAggregateInputType = { + id?: true +} + +export type InventoryMinAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true +} + +export type InventoryMaxAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true +} + +export type InventoryCountAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type InventoryAggregateArgs = { + /** + * Filter which Inventory to aggregate. + */ + where?: Prisma.InventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Inventories to fetch. + */ + orderBy?: Prisma.InventoryOrderByWithRelationInput | Prisma.InventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.InventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Inventories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Inventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Inventories + **/ + _count?: true | InventoryCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: InventoryAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: InventorySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: InventoryMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: InventoryMaxAggregateInputType +} + +export type GetInventoryAggregateType = { + [P in keyof T & keyof AggregateInventory]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type InventoryGroupByArgs = { + where?: Prisma.InventoryWhereInput + orderBy?: Prisma.InventoryOrderByWithAggregationInput | Prisma.InventoryOrderByWithAggregationInput[] + by: Prisma.InventoryScalarFieldEnum[] | Prisma.InventoryScalarFieldEnum + having?: Prisma.InventoryScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: InventoryCountAggregateInputType | true + _avg?: InventoryAvgAggregateInputType + _sum?: InventorySumAggregateInputType + _min?: InventoryMinAggregateInputType + _max?: InventoryMaxAggregateInputType +} + +export type InventoryGroupByOutputType = { + id: number + name: string + location: string | null + isActive: boolean + createdAt: Date + updatedAt: Date + _count: InventoryCountAggregateOutputType | null + _avg: InventoryAvgAggregateOutputType | null + _sum: InventorySumAggregateOutputType | null + _min: InventoryMinAggregateOutputType | null + _max: InventoryMaxAggregateOutputType | null +} + +type GetInventoryGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof InventoryGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type InventoryWhereInput = { + AND?: Prisma.InventoryWhereInput | Prisma.InventoryWhereInput[] + OR?: Prisma.InventoryWhereInput[] + NOT?: Prisma.InventoryWhereInput | Prisma.InventoryWhereInput[] + id?: Prisma.IntFilter<"Inventory"> | number + name?: Prisma.StringFilter<"Inventory"> | string + location?: Prisma.StringNullableFilter<"Inventory"> | string | null + isActive?: Prisma.BoolFilter<"Inventory"> | boolean + createdAt?: Prisma.DateTimeFilter<"Inventory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Inventory"> | Date | string +} + +export type InventoryOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.InventoryOrderByRelevanceInput +} + +export type InventoryWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.InventoryWhereInput | Prisma.InventoryWhereInput[] + OR?: Prisma.InventoryWhereInput[] + NOT?: Prisma.InventoryWhereInput | Prisma.InventoryWhereInput[] + name?: Prisma.StringFilter<"Inventory"> | string + location?: Prisma.StringNullableFilter<"Inventory"> | string | null + isActive?: Prisma.BoolFilter<"Inventory"> | boolean + createdAt?: Prisma.DateTimeFilter<"Inventory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Inventory"> | Date | string +}, "id"> + +export type InventoryOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.InventoryCountOrderByAggregateInput + _avg?: Prisma.InventoryAvgOrderByAggregateInput + _max?: Prisma.InventoryMaxOrderByAggregateInput + _min?: Prisma.InventoryMinOrderByAggregateInput + _sum?: Prisma.InventorySumOrderByAggregateInput +} + +export type InventoryScalarWhereWithAggregatesInput = { + AND?: Prisma.InventoryScalarWhereWithAggregatesInput | Prisma.InventoryScalarWhereWithAggregatesInput[] + OR?: Prisma.InventoryScalarWhereWithAggregatesInput[] + NOT?: Prisma.InventoryScalarWhereWithAggregatesInput | Prisma.InventoryScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Inventory"> | number + name?: Prisma.StringWithAggregatesFilter<"Inventory"> | string + location?: Prisma.StringNullableWithAggregatesFilter<"Inventory"> | string | null + isActive?: Prisma.BoolWithAggregatesFilter<"Inventory"> | boolean + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Inventory"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Inventory"> | Date | string +} + +export type InventoryCreateInput = { + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type InventoryUncheckedCreateInput = { + id?: number + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type InventoryUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type InventoryUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type InventoryCreateManyInput = { + id?: number + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type InventoryUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type InventoryUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type InventoryOrderByRelevanceInput = { + fields: Prisma.InventoryOrderByRelevanceFieldEnum | Prisma.InventoryOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type InventoryCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type InventoryAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type InventoryMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type InventoryMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type InventorySumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type InventorySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + location?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["inventory"]> + + + +export type InventorySelectScalar = { + id?: boolean + name?: boolean + location?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type InventoryOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "location" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["inventory"]> + +export type $InventoryPayload = { + name: "Inventory" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + location: string | null + isActive: boolean + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["inventory"]> + composites: {} +} + +export type InventoryGetPayload = runtime.Types.Result.GetResult + +export type InventoryCountArgs = + Omit & { + select?: InventoryCountAggregateInputType | true + } + +export interface InventoryDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Inventory'], meta: { name: 'Inventory' } } + /** + * Find zero or one Inventory that matches the filter. + * @param {InventoryFindUniqueArgs} args - Arguments to find a Inventory + * @example + * // Get one Inventory + * const inventory = await prisma.inventory.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Inventory that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {InventoryFindUniqueOrThrowArgs} args - Arguments to find a Inventory + * @example + * // Get one Inventory + * const inventory = await prisma.inventory.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Inventory that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryFindFirstArgs} args - Arguments to find a Inventory + * @example + * // Get one Inventory + * const inventory = await prisma.inventory.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Inventory that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryFindFirstOrThrowArgs} args - Arguments to find a Inventory + * @example + * // Get one Inventory + * const inventory = await prisma.inventory.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Inventories that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Inventories + * const inventories = await prisma.inventory.findMany() + * + * // Get first 10 Inventories + * const inventories = await prisma.inventory.findMany({ take: 10 }) + * + * // Only select the `id` + * const inventoryWithIdOnly = await prisma.inventory.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Inventory. + * @param {InventoryCreateArgs} args - Arguments to create a Inventory. + * @example + * // Create one Inventory + * const Inventory = await prisma.inventory.create({ + * data: { + * // ... data to create a Inventory + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Inventories. + * @param {InventoryCreateManyArgs} args - Arguments to create many Inventories. + * @example + * // Create many Inventories + * const inventory = await prisma.inventory.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Inventory. + * @param {InventoryDeleteArgs} args - Arguments to delete one Inventory. + * @example + * // Delete one Inventory + * const Inventory = await prisma.inventory.delete({ + * where: { + * // ... filter to delete one Inventory + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Inventory. + * @param {InventoryUpdateArgs} args - Arguments to update one Inventory. + * @example + * // Update one Inventory + * const inventory = await prisma.inventory.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Inventories. + * @param {InventoryDeleteManyArgs} args - Arguments to filter Inventories to delete. + * @example + * // Delete a few Inventories + * const { count } = await prisma.inventory.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Inventories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Inventories + * const inventory = await prisma.inventory.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Inventory. + * @param {InventoryUpsertArgs} args - Arguments to update or create a Inventory. + * @example + * // Update or create a Inventory + * const inventory = await prisma.inventory.upsert({ + * create: { + * // ... data to create a Inventory + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Inventory we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__InventoryClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Inventories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryCountArgs} args - Arguments to filter Inventories to count. + * @example + * // Count the number of Inventories + * const count = await prisma.inventory.count({ + * where: { + * // ... the filter for the Inventories we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Inventory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Inventory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {InventoryGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends InventoryGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: InventoryGroupByArgs['orderBy'] } + : { orderBy?: InventoryGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetInventoryGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Inventory model + */ +readonly fields: InventoryFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Inventory. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__InventoryClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Inventory model + */ +export interface InventoryFieldRefs { + readonly id: Prisma.FieldRef<"Inventory", 'Int'> + readonly name: Prisma.FieldRef<"Inventory", 'String'> + readonly location: Prisma.FieldRef<"Inventory", 'String'> + readonly isActive: Prisma.FieldRef<"Inventory", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Inventory", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Inventory", 'DateTime'> +} + + +// Custom InputTypes +/** + * Inventory findUnique + */ +export type InventoryFindUniqueArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter, which Inventory to fetch. + */ + where: Prisma.InventoryWhereUniqueInput +} + +/** + * Inventory findUniqueOrThrow + */ +export type InventoryFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter, which Inventory to fetch. + */ + where: Prisma.InventoryWhereUniqueInput +} + +/** + * Inventory findFirst + */ +export type InventoryFindFirstArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter, which Inventory to fetch. + */ + where?: Prisma.InventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Inventories to fetch. + */ + orderBy?: Prisma.InventoryOrderByWithRelationInput | Prisma.InventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Inventories. + */ + cursor?: Prisma.InventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Inventories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Inventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Inventories. + */ + distinct?: Prisma.InventoryScalarFieldEnum | Prisma.InventoryScalarFieldEnum[] +} + +/** + * Inventory findFirstOrThrow + */ +export type InventoryFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter, which Inventory to fetch. + */ + where?: Prisma.InventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Inventories to fetch. + */ + orderBy?: Prisma.InventoryOrderByWithRelationInput | Prisma.InventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Inventories. + */ + cursor?: Prisma.InventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Inventories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Inventories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Inventories. + */ + distinct?: Prisma.InventoryScalarFieldEnum | Prisma.InventoryScalarFieldEnum[] +} + +/** + * Inventory findMany + */ +export type InventoryFindManyArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter, which Inventories to fetch. + */ + where?: Prisma.InventoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Inventories to fetch. + */ + orderBy?: Prisma.InventoryOrderByWithRelationInput | Prisma.InventoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Inventories. + */ + cursor?: Prisma.InventoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Inventories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Inventories. + */ + skip?: number + distinct?: Prisma.InventoryScalarFieldEnum | Prisma.InventoryScalarFieldEnum[] +} + +/** + * Inventory create + */ +export type InventoryCreateArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * The data needed to create a Inventory. + */ + data: Prisma.XOR +} + +/** + * Inventory createMany + */ +export type InventoryCreateManyArgs = { + /** + * The data used to create many Inventories. + */ + data: Prisma.InventoryCreateManyInput | Prisma.InventoryCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Inventory update + */ +export type InventoryUpdateArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * The data needed to update a Inventory. + */ + data: Prisma.XOR + /** + * Choose, which Inventory to update. + */ + where: Prisma.InventoryWhereUniqueInput +} + +/** + * Inventory updateMany + */ +export type InventoryUpdateManyArgs = { + /** + * The data used to update Inventories. + */ + data: Prisma.XOR + /** + * Filter which Inventories to update + */ + where?: Prisma.InventoryWhereInput + /** + * Limit how many Inventories to update. + */ + limit?: number +} + +/** + * Inventory upsert + */ +export type InventoryUpsertArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * The filter to search for the Inventory to update in case it exists. + */ + where: Prisma.InventoryWhereUniqueInput + /** + * In case the Inventory found by the `where` argument doesn't exist, create a new Inventory with this data. + */ + create: Prisma.XOR + /** + * In case the Inventory was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Inventory delete + */ +export type InventoryDeleteArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null + /** + * Filter which Inventory to delete. + */ + where: Prisma.InventoryWhereUniqueInput +} + +/** + * Inventory deleteMany + */ +export type InventoryDeleteManyArgs = { + /** + * Filter which Inventories to delete + */ + where?: Prisma.InventoryWhereInput + /** + * Limit how many Inventories to delete. + */ + limit?: number +} + +/** + * Inventory without action + */ +export type InventoryDefaultArgs = { + /** + * Select specific fields to fetch from the Inventory + */ + select?: Prisma.InventorySelect | null + /** + * Omit specific fields from the Inventory + */ + omit?: Prisma.InventoryOmit | null +} diff --git a/src/generated/prisma/models/Product.ts b/src/generated/prisma/models/Product.ts new file mode 100644 index 0000000..9d348b2 --- /dev/null +++ b/src/generated/prisma/models/Product.ts @@ -0,0 +1,1703 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Product` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Product + * + */ +export type ProductModel = runtime.Types.Result.DefaultSelection + +export type AggregateProduct = { + _count: ProductCountAggregateOutputType | null + _avg: ProductAvgAggregateOutputType | null + _sum: ProductSumAggregateOutputType | null + _min: ProductMinAggregateOutputType | null + _max: ProductMaxAggregateOutputType | null +} + +export type ProductAvgAggregateOutputType = { + id: number | null + attachmentId: number | null + discount: runtime.Decimal | null + quantity: runtime.Decimal | null + alertQuantity: runtime.Decimal | null + productInfoId: number | null +} + +export type ProductSumAggregateOutputType = { + id: number | null + attachmentId: bigint | null + discount: runtime.Decimal | null + quantity: runtime.Decimal | null + alertQuantity: runtime.Decimal | null + productInfoId: number | null +} + +export type ProductMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + sku: string | null + barcode: string | null + imageUrl: string | null + attachmentId: bigint | null + unit: string | null + discount: runtime.Decimal | null + quantity: runtime.Decimal | null + alertQuantity: runtime.Decimal | null + isActive: boolean | null + isFeatured: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + productInfoId: number | null +} + +export type ProductMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + sku: string | null + barcode: string | null + imageUrl: string | null + attachmentId: bigint | null + unit: string | null + discount: runtime.Decimal | null + quantity: runtime.Decimal | null + alertQuantity: runtime.Decimal | null + isActive: boolean | null + isFeatured: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + productInfoId: number | null +} + +export type ProductCountAggregateOutputType = { + id: number + name: number + description: number + sku: number + barcode: number + imageUrl: number + attachmentId: number + unit: number + discount: number + quantity: number + alertQuantity: number + isActive: number + isFeatured: number + createdAt: number + updatedAt: number + deletedAt: number + productInfoId: number + _all: number +} + + +export type ProductAvgAggregateInputType = { + id?: true + attachmentId?: true + discount?: true + quantity?: true + alertQuantity?: true + productInfoId?: true +} + +export type ProductSumAggregateInputType = { + id?: true + attachmentId?: true + discount?: true + quantity?: true + alertQuantity?: true + productInfoId?: true +} + +export type ProductMinAggregateInputType = { + id?: true + name?: true + description?: true + sku?: true + barcode?: true + imageUrl?: true + attachmentId?: true + unit?: true + discount?: true + quantity?: true + alertQuantity?: true + isActive?: true + isFeatured?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + productInfoId?: true +} + +export type ProductMaxAggregateInputType = { + id?: true + name?: true + description?: true + sku?: true + barcode?: true + imageUrl?: true + attachmentId?: true + unit?: true + discount?: true + quantity?: true + alertQuantity?: true + isActive?: true + isFeatured?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + productInfoId?: true +} + +export type ProductCountAggregateInputType = { + id?: true + name?: true + description?: true + sku?: true + barcode?: true + imageUrl?: true + attachmentId?: true + unit?: true + discount?: true + quantity?: true + alertQuantity?: true + isActive?: true + isFeatured?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + productInfoId?: true + _all?: true +} + +export type ProductAggregateArgs = { + /** + * Filter which Product to aggregate. + */ + where?: Prisma.ProductWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Products to fetch. + */ + orderBy?: Prisma.ProductOrderByWithRelationInput | Prisma.ProductOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ProductWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Products from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Products. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Products + **/ + _count?: true | ProductCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: ProductAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: ProductSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ProductMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ProductMaxAggregateInputType +} + +export type GetProductAggregateType = { + [P in keyof T & keyof AggregateProduct]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ProductGroupByArgs = { + where?: Prisma.ProductWhereInput + orderBy?: Prisma.ProductOrderByWithAggregationInput | Prisma.ProductOrderByWithAggregationInput[] + by: Prisma.ProductScalarFieldEnum[] | Prisma.ProductScalarFieldEnum + having?: Prisma.ProductScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ProductCountAggregateInputType | true + _avg?: ProductAvgAggregateInputType + _sum?: ProductSumAggregateInputType + _min?: ProductMinAggregateInputType + _max?: ProductMaxAggregateInputType +} + +export type ProductGroupByOutputType = { + id: number + name: string + description: string | null + sku: string | null + barcode: string | null + imageUrl: string | null + attachmentId: bigint | null + unit: string + discount: runtime.Decimal + quantity: runtime.Decimal + alertQuantity: runtime.Decimal + isActive: boolean + isFeatured: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + productInfoId: number + _count: ProductCountAggregateOutputType | null + _avg: ProductAvgAggregateOutputType | null + _sum: ProductSumAggregateOutputType | null + _min: ProductMinAggregateOutputType | null + _max: ProductMaxAggregateOutputType | null +} + +type GetProductGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ProductGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ProductWhereInput = { + AND?: Prisma.ProductWhereInput | Prisma.ProductWhereInput[] + OR?: Prisma.ProductWhereInput[] + NOT?: Prisma.ProductWhereInput | Prisma.ProductWhereInput[] + id?: Prisma.IntFilter<"Product"> | number + name?: Prisma.StringFilter<"Product"> | string + description?: Prisma.StringNullableFilter<"Product"> | string | null + sku?: Prisma.StringNullableFilter<"Product"> | string | null + barcode?: Prisma.StringNullableFilter<"Product"> | string | null + imageUrl?: Prisma.StringNullableFilter<"Product"> | string | null + attachmentId?: Prisma.BigIntNullableFilter<"Product"> | bigint | number | null + unit?: Prisma.StringFilter<"Product"> | string + discount?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFilter<"Product"> | boolean + isFeatured?: Prisma.BoolFilter<"Product"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + productInfoId?: Prisma.IntFilter<"Product"> | number + productInfo?: Prisma.XOR +} + +export type ProductOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + sku?: Prisma.SortOrderInput | Prisma.SortOrder + barcode?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + attachmentId?: Prisma.SortOrderInput | Prisma.SortOrder + unit?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + isActive?: Prisma.SortOrder + isFeatured?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + productInfoId?: Prisma.SortOrder + productInfo?: Prisma.ProductInfoOrderByWithRelationInput + _relevance?: Prisma.ProductOrderByRelevanceInput +} + +export type ProductWhereUniqueInput = Prisma.AtLeast<{ + id?: number + sku?: string + barcode?: string + AND?: Prisma.ProductWhereInput | Prisma.ProductWhereInput[] + OR?: Prisma.ProductWhereInput[] + NOT?: Prisma.ProductWhereInput | Prisma.ProductWhereInput[] + name?: Prisma.StringFilter<"Product"> | string + description?: Prisma.StringNullableFilter<"Product"> | string | null + imageUrl?: Prisma.StringNullableFilter<"Product"> | string | null + attachmentId?: Prisma.BigIntNullableFilter<"Product"> | bigint | number | null + unit?: Prisma.StringFilter<"Product"> | string + discount?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFilter<"Product"> | boolean + isFeatured?: Prisma.BoolFilter<"Product"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + productInfoId?: Prisma.IntFilter<"Product"> | number + productInfo?: Prisma.XOR +}, "id" | "sku" | "barcode"> + +export type ProductOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + sku?: Prisma.SortOrderInput | Prisma.SortOrder + barcode?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + attachmentId?: Prisma.SortOrderInput | Prisma.SortOrder + unit?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + isActive?: Prisma.SortOrder + isFeatured?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + productInfoId?: Prisma.SortOrder + _count?: Prisma.ProductCountOrderByAggregateInput + _avg?: Prisma.ProductAvgOrderByAggregateInput + _max?: Prisma.ProductMaxOrderByAggregateInput + _min?: Prisma.ProductMinOrderByAggregateInput + _sum?: Prisma.ProductSumOrderByAggregateInput +} + +export type ProductScalarWhereWithAggregatesInput = { + AND?: Prisma.ProductScalarWhereWithAggregatesInput | Prisma.ProductScalarWhereWithAggregatesInput[] + OR?: Prisma.ProductScalarWhereWithAggregatesInput[] + NOT?: Prisma.ProductScalarWhereWithAggregatesInput | Prisma.ProductScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Product"> | number + name?: Prisma.StringWithAggregatesFilter<"Product"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"Product"> | string | null + sku?: Prisma.StringNullableWithAggregatesFilter<"Product"> | string | null + barcode?: Prisma.StringNullableWithAggregatesFilter<"Product"> | string | null + imageUrl?: Prisma.StringNullableWithAggregatesFilter<"Product"> | string | null + attachmentId?: Prisma.BigIntNullableWithAggregatesFilter<"Product"> | bigint | number | null + unit?: Prisma.StringWithAggregatesFilter<"Product"> | string + discount?: Prisma.DecimalWithAggregatesFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalWithAggregatesFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalWithAggregatesFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolWithAggregatesFilter<"Product"> | boolean + isFeatured?: Prisma.BoolWithAggregatesFilter<"Product"> | boolean + createdAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Product"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Product"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Product"> | Date | string | null + productInfoId?: Prisma.IntWithAggregatesFilter<"Product"> | number +} + +export type ProductCreateInput = { + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null + productInfo: Prisma.ProductInfoCreateNestedOneWithoutProductsInput +} + +export type ProductUncheckedCreateInput = { + id?: number + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null + productInfoId: number +} + +export type ProductUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUpdateOneRequiredWithoutProductsNestedInput +} + +export type ProductUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfoId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductCreateManyInput = { + id?: number + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null + productInfoId: number +} + +export type ProductUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfoId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductOrderByRelevanceInput = { + fields: Prisma.ProductOrderByRelevanceFieldEnum | Prisma.ProductOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ProductCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + sku?: Prisma.SortOrder + barcode?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + attachmentId?: Prisma.SortOrder + unit?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + isActive?: Prisma.SortOrder + isFeatured?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + productInfoId?: Prisma.SortOrder +} + +export type ProductAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + attachmentId?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + productInfoId?: Prisma.SortOrder +} + +export type ProductMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + sku?: Prisma.SortOrder + barcode?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + attachmentId?: Prisma.SortOrder + unit?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + isActive?: Prisma.SortOrder + isFeatured?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + productInfoId?: Prisma.SortOrder +} + +export type ProductMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + sku?: Prisma.SortOrder + barcode?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + attachmentId?: Prisma.SortOrder + unit?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + isActive?: Prisma.SortOrder + isFeatured?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + productInfoId?: Prisma.SortOrder +} + +export type ProductSumOrderByAggregateInput = { + id?: Prisma.SortOrder + attachmentId?: Prisma.SortOrder + discount?: Prisma.SortOrder + quantity?: Prisma.SortOrder + alertQuantity?: Prisma.SortOrder + productInfoId?: Prisma.SortOrder +} + +export type ProductListRelationFilter = { + every?: Prisma.ProductWhereInput + some?: Prisma.ProductWhereInput + none?: Prisma.ProductWhereInput +} + +export type ProductOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type NullableBigIntFieldUpdateOperationsInput = { + set?: bigint | number | null + increment?: bigint | number + decrement?: bigint | number + multiply?: bigint | number + divide?: bigint | number +} + +export type DecimalFieldUpdateOperationsInput = { + set?: runtime.Decimal | runtime.DecimalJsLike | number | string + increment?: runtime.Decimal | runtime.DecimalJsLike | number | string + decrement?: runtime.Decimal | runtime.DecimalJsLike | number | string + multiply?: runtime.Decimal | runtime.DecimalJsLike | number | string + divide?: runtime.Decimal | runtime.DecimalJsLike | number | string +} + +export type BoolFieldUpdateOperationsInput = { + set?: boolean +} + +export type ProductCreateNestedManyWithoutProductInfoInput = { + create?: Prisma.XOR | Prisma.ProductCreateWithoutProductInfoInput[] | Prisma.ProductUncheckedCreateWithoutProductInfoInput[] + connectOrCreate?: Prisma.ProductCreateOrConnectWithoutProductInfoInput | Prisma.ProductCreateOrConnectWithoutProductInfoInput[] + createMany?: Prisma.ProductCreateManyProductInfoInputEnvelope + connect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] +} + +export type ProductUncheckedCreateNestedManyWithoutProductInfoInput = { + create?: Prisma.XOR | Prisma.ProductCreateWithoutProductInfoInput[] | Prisma.ProductUncheckedCreateWithoutProductInfoInput[] + connectOrCreate?: Prisma.ProductCreateOrConnectWithoutProductInfoInput | Prisma.ProductCreateOrConnectWithoutProductInfoInput[] + createMany?: Prisma.ProductCreateManyProductInfoInputEnvelope + connect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] +} + +export type ProductUpdateManyWithoutProductInfoNestedInput = { + create?: Prisma.XOR | Prisma.ProductCreateWithoutProductInfoInput[] | Prisma.ProductUncheckedCreateWithoutProductInfoInput[] + connectOrCreate?: Prisma.ProductCreateOrConnectWithoutProductInfoInput | Prisma.ProductCreateOrConnectWithoutProductInfoInput[] + upsert?: Prisma.ProductUpsertWithWhereUniqueWithoutProductInfoInput | Prisma.ProductUpsertWithWhereUniqueWithoutProductInfoInput[] + createMany?: Prisma.ProductCreateManyProductInfoInputEnvelope + set?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + disconnect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + delete?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + connect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + update?: Prisma.ProductUpdateWithWhereUniqueWithoutProductInfoInput | Prisma.ProductUpdateWithWhereUniqueWithoutProductInfoInput[] + updateMany?: Prisma.ProductUpdateManyWithWhereWithoutProductInfoInput | Prisma.ProductUpdateManyWithWhereWithoutProductInfoInput[] + deleteMany?: Prisma.ProductScalarWhereInput | Prisma.ProductScalarWhereInput[] +} + +export type ProductUncheckedUpdateManyWithoutProductInfoNestedInput = { + create?: Prisma.XOR | Prisma.ProductCreateWithoutProductInfoInput[] | Prisma.ProductUncheckedCreateWithoutProductInfoInput[] + connectOrCreate?: Prisma.ProductCreateOrConnectWithoutProductInfoInput | Prisma.ProductCreateOrConnectWithoutProductInfoInput[] + upsert?: Prisma.ProductUpsertWithWhereUniqueWithoutProductInfoInput | Prisma.ProductUpsertWithWhereUniqueWithoutProductInfoInput[] + createMany?: Prisma.ProductCreateManyProductInfoInputEnvelope + set?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + disconnect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + delete?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + connect?: Prisma.ProductWhereUniqueInput | Prisma.ProductWhereUniqueInput[] + update?: Prisma.ProductUpdateWithWhereUniqueWithoutProductInfoInput | Prisma.ProductUpdateWithWhereUniqueWithoutProductInfoInput[] + updateMany?: Prisma.ProductUpdateManyWithWhereWithoutProductInfoInput | Prisma.ProductUpdateManyWithWhereWithoutProductInfoInput[] + deleteMany?: Prisma.ProductScalarWhereInput | Prisma.ProductScalarWhereInput[] +} + +export type ProductCreateWithoutProductInfoInput = { + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type ProductUncheckedCreateWithoutProductInfoInput = { + id?: number + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type ProductCreateOrConnectWithoutProductInfoInput = { + where: Prisma.ProductWhereUniqueInput + create: Prisma.XOR +} + +export type ProductCreateManyProductInfoInputEnvelope = { + data: Prisma.ProductCreateManyProductInfoInput | Prisma.ProductCreateManyProductInfoInput[] + skipDuplicates?: boolean +} + +export type ProductUpsertWithWhereUniqueWithoutProductInfoInput = { + where: Prisma.ProductWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ProductUpdateWithWhereUniqueWithoutProductInfoInput = { + where: Prisma.ProductWhereUniqueInput + data: Prisma.XOR +} + +export type ProductUpdateManyWithWhereWithoutProductInfoInput = { + where: Prisma.ProductScalarWhereInput + data: Prisma.XOR +} + +export type ProductScalarWhereInput = { + AND?: Prisma.ProductScalarWhereInput | Prisma.ProductScalarWhereInput[] + OR?: Prisma.ProductScalarWhereInput[] + NOT?: Prisma.ProductScalarWhereInput | Prisma.ProductScalarWhereInput[] + id?: Prisma.IntFilter<"Product"> | number + name?: Prisma.StringFilter<"Product"> | string + description?: Prisma.StringNullableFilter<"Product"> | string | null + sku?: Prisma.StringNullableFilter<"Product"> | string | null + barcode?: Prisma.StringNullableFilter<"Product"> | string | null + imageUrl?: Prisma.StringNullableFilter<"Product"> | string | null + attachmentId?: Prisma.BigIntNullableFilter<"Product"> | bigint | number | null + unit?: Prisma.StringFilter<"Product"> | string + discount?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFilter<"Product"> | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFilter<"Product"> | boolean + isFeatured?: Prisma.BoolFilter<"Product"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Product"> | Date | string | null + productInfoId?: Prisma.IntFilter<"Product"> | number +} + +export type ProductCreateManyProductInfoInput = { + id?: number + name: string + description?: string | null + sku?: string | null + barcode?: string | null + imageUrl?: string | null + attachmentId?: bigint | number | null + unit: string + discount?: runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: boolean + isFeatured?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type ProductUpdateWithoutProductInfoInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductUncheckedUpdateWithoutProductInfoInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductUncheckedUpdateManyWithoutProductInfoInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + attachmentId?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null + unit?: Prisma.StringFieldUpdateOperationsInput | string + discount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + alertQuantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + isFeatured?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + + + +export type ProductSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + sku?: boolean + barcode?: boolean + imageUrl?: boolean + attachmentId?: boolean + unit?: boolean + discount?: boolean + quantity?: boolean + alertQuantity?: boolean + isActive?: boolean + isFeatured?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + productInfoId?: boolean + productInfo?: boolean | Prisma.ProductInfoDefaultArgs +}, ExtArgs["result"]["product"]> + + + +export type ProductSelectScalar = { + id?: boolean + name?: boolean + description?: boolean + sku?: boolean + barcode?: boolean + imageUrl?: boolean + attachmentId?: boolean + unit?: boolean + discount?: boolean + quantity?: boolean + alertQuantity?: boolean + isActive?: boolean + isFeatured?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + productInfoId?: boolean +} + +export type ProductOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "sku" | "barcode" | "imageUrl" | "attachmentId" | "unit" | "discount" | "quantity" | "alertQuantity" | "isActive" | "isFeatured" | "createdAt" | "updatedAt" | "deletedAt" | "productInfoId", ExtArgs["result"]["product"]> +export type ProductInclude = { + productInfo?: boolean | Prisma.ProductInfoDefaultArgs +} + +export type $ProductPayload = { + name: "Product" + objects: { + productInfo: Prisma.$ProductInfoPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string | null + sku: string | null + barcode: string | null + imageUrl: string | null + attachmentId: bigint | null + unit: string + discount: runtime.Decimal + quantity: runtime.Decimal + alertQuantity: runtime.Decimal + isActive: boolean + isFeatured: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + productInfoId: number + }, ExtArgs["result"]["product"]> + composites: {} +} + +export type ProductGetPayload = runtime.Types.Result.GetResult + +export type ProductCountArgs = + Omit & { + select?: ProductCountAggregateInputType | true + } + +export interface ProductDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Product'], meta: { name: 'Product' } } + /** + * Find zero or one Product that matches the filter. + * @param {ProductFindUniqueArgs} args - Arguments to find a Product + * @example + * // Get one Product + * const product = await prisma.product.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Product that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ProductFindUniqueOrThrowArgs} args - Arguments to find a Product + * @example + * // Get one Product + * const product = await prisma.product.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Product that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductFindFirstArgs} args - Arguments to find a Product + * @example + * // Get one Product + * const product = await prisma.product.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Product that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductFindFirstOrThrowArgs} args - Arguments to find a Product + * @example + * // Get one Product + * const product = await prisma.product.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Products that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Products + * const products = await prisma.product.findMany() + * + * // Get first 10 Products + * const products = await prisma.product.findMany({ take: 10 }) + * + * // Only select the `id` + * const productWithIdOnly = await prisma.product.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Product. + * @param {ProductCreateArgs} args - Arguments to create a Product. + * @example + * // Create one Product + * const Product = await prisma.product.create({ + * data: { + * // ... data to create a Product + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Products. + * @param {ProductCreateManyArgs} args - Arguments to create many Products. + * @example + * // Create many Products + * const product = await prisma.product.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Product. + * @param {ProductDeleteArgs} args - Arguments to delete one Product. + * @example + * // Delete one Product + * const Product = await prisma.product.delete({ + * where: { + * // ... filter to delete one Product + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Product. + * @param {ProductUpdateArgs} args - Arguments to update one Product. + * @example + * // Update one Product + * const product = await prisma.product.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Products. + * @param {ProductDeleteManyArgs} args - Arguments to filter Products to delete. + * @example + * // Delete a few Products + * const { count } = await prisma.product.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Products. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Products + * const product = await prisma.product.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Product. + * @param {ProductUpsertArgs} args - Arguments to update or create a Product. + * @example + * // Update or create a Product + * const product = await prisma.product.upsert({ + * create: { + * // ... data to create a Product + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Product we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ProductClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Products. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCountArgs} args - Arguments to filter Products to count. + * @example + * // Count the number of Products + * const count = await prisma.product.count({ + * where: { + * // ... the filter for the Products we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Product. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Product. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ProductGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ProductGroupByArgs['orderBy'] } + : { orderBy?: ProductGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetProductGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Product model + */ +readonly fields: ProductFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Product. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ProductClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + productInfo = {}>(args?: Prisma.Subset>): Prisma.Prisma__ProductInfoClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Product model + */ +export interface ProductFieldRefs { + readonly id: Prisma.FieldRef<"Product", 'Int'> + readonly name: Prisma.FieldRef<"Product", 'String'> + readonly description: Prisma.FieldRef<"Product", 'String'> + readonly sku: Prisma.FieldRef<"Product", 'String'> + readonly barcode: Prisma.FieldRef<"Product", 'String'> + readonly imageUrl: Prisma.FieldRef<"Product", 'String'> + readonly attachmentId: Prisma.FieldRef<"Product", 'BigInt'> + readonly unit: Prisma.FieldRef<"Product", 'String'> + readonly discount: Prisma.FieldRef<"Product", 'Decimal'> + readonly quantity: Prisma.FieldRef<"Product", 'Decimal'> + readonly alertQuantity: Prisma.FieldRef<"Product", 'Decimal'> + readonly isActive: Prisma.FieldRef<"Product", 'Boolean'> + readonly isFeatured: Prisma.FieldRef<"Product", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Product", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Product", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"Product", 'DateTime'> + readonly productInfoId: Prisma.FieldRef<"Product", 'Int'> +} + + +// Custom InputTypes +/** + * Product findUnique + */ +export type ProductFindUniqueArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter, which Product to fetch. + */ + where: Prisma.ProductWhereUniqueInput +} + +/** + * Product findUniqueOrThrow + */ +export type ProductFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter, which Product to fetch. + */ + where: Prisma.ProductWhereUniqueInput +} + +/** + * Product findFirst + */ +export type ProductFindFirstArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter, which Product to fetch. + */ + where?: Prisma.ProductWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Products to fetch. + */ + orderBy?: Prisma.ProductOrderByWithRelationInput | Prisma.ProductOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Products. + */ + cursor?: Prisma.ProductWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Products from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Products. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Products. + */ + distinct?: Prisma.ProductScalarFieldEnum | Prisma.ProductScalarFieldEnum[] +} + +/** + * Product findFirstOrThrow + */ +export type ProductFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter, which Product to fetch. + */ + where?: Prisma.ProductWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Products to fetch. + */ + orderBy?: Prisma.ProductOrderByWithRelationInput | Prisma.ProductOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Products. + */ + cursor?: Prisma.ProductWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Products from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Products. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Products. + */ + distinct?: Prisma.ProductScalarFieldEnum | Prisma.ProductScalarFieldEnum[] +} + +/** + * Product findMany + */ +export type ProductFindManyArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter, which Products to fetch. + */ + where?: Prisma.ProductWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Products to fetch. + */ + orderBy?: Prisma.ProductOrderByWithRelationInput | Prisma.ProductOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Products. + */ + cursor?: Prisma.ProductWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Products from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Products. + */ + skip?: number + distinct?: Prisma.ProductScalarFieldEnum | Prisma.ProductScalarFieldEnum[] +} + +/** + * Product create + */ +export type ProductCreateArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * The data needed to create a Product. + */ + data: Prisma.XOR +} + +/** + * Product createMany + */ +export type ProductCreateManyArgs = { + /** + * The data used to create many Products. + */ + data: Prisma.ProductCreateManyInput | Prisma.ProductCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Product update + */ +export type ProductUpdateArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * The data needed to update a Product. + */ + data: Prisma.XOR + /** + * Choose, which Product to update. + */ + where: Prisma.ProductWhereUniqueInput +} + +/** + * Product updateMany + */ +export type ProductUpdateManyArgs = { + /** + * The data used to update Products. + */ + data: Prisma.XOR + /** + * Filter which Products to update + */ + where?: Prisma.ProductWhereInput + /** + * Limit how many Products to update. + */ + limit?: number +} + +/** + * Product upsert + */ +export type ProductUpsertArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * The filter to search for the Product to update in case it exists. + */ + where: Prisma.ProductWhereUniqueInput + /** + * In case the Product found by the `where` argument doesn't exist, create a new Product with this data. + */ + create: Prisma.XOR + /** + * In case the Product was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Product delete + */ +export type ProductDeleteArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + /** + * Filter which Product to delete. + */ + where: Prisma.ProductWhereUniqueInput +} + +/** + * Product deleteMany + */ +export type ProductDeleteManyArgs = { + /** + * Filter which Products to delete + */ + where?: Prisma.ProductWhereInput + /** + * Limit how many Products to delete. + */ + limit?: number +} + +/** + * Product without action + */ +export type ProductDefaultArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null +} diff --git a/src/generated/prisma/models/ProductBrand.ts b/src/generated/prisma/models/ProductBrand.ts new file mode 100644 index 0000000..c9d76ae --- /dev/null +++ b/src/generated/prisma/models/ProductBrand.ts @@ -0,0 +1,1315 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `ProductBrand` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model ProductBrand + * + */ +export type ProductBrandModel = runtime.Types.Result.DefaultSelection + +export type AggregateProductBrand = { + _count: ProductBrandCountAggregateOutputType | null + _avg: ProductBrandAvgAggregateOutputType | null + _sum: ProductBrandSumAggregateOutputType | null + _min: ProductBrandMinAggregateOutputType | null + _max: ProductBrandMaxAggregateOutputType | null +} + +export type ProductBrandAvgAggregateOutputType = { + id: number | null +} + +export type ProductBrandSumAggregateOutputType = { + id: number | null +} + +export type ProductBrandMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + imageUrl: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type ProductBrandMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + imageUrl: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type ProductBrandCountAggregateOutputType = { + id: number + name: number + description: number + imageUrl: number + createdAt: number + updatedAt: number + deletedAt: number + _all: number +} + + +export type ProductBrandAvgAggregateInputType = { + id?: true +} + +export type ProductBrandSumAggregateInputType = { + id?: true +} + +export type ProductBrandMinAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type ProductBrandMaxAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type ProductBrandCountAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + _all?: true +} + +export type ProductBrandAggregateArgs = { + /** + * Filter which ProductBrand to aggregate. + */ + where?: Prisma.ProductBrandWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductBrands to fetch. + */ + orderBy?: Prisma.ProductBrandOrderByWithRelationInput | Prisma.ProductBrandOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ProductBrandWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductBrands from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductBrands. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ProductBrands + **/ + _count?: true | ProductBrandCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: ProductBrandAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: ProductBrandSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ProductBrandMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ProductBrandMaxAggregateInputType +} + +export type GetProductBrandAggregateType = { + [P in keyof T & keyof AggregateProductBrand]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ProductBrandGroupByArgs = { + where?: Prisma.ProductBrandWhereInput + orderBy?: Prisma.ProductBrandOrderByWithAggregationInput | Prisma.ProductBrandOrderByWithAggregationInput[] + by: Prisma.ProductBrandScalarFieldEnum[] | Prisma.ProductBrandScalarFieldEnum + having?: Prisma.ProductBrandScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ProductBrandCountAggregateInputType | true + _avg?: ProductBrandAvgAggregateInputType + _sum?: ProductBrandSumAggregateInputType + _min?: ProductBrandMinAggregateInputType + _max?: ProductBrandMaxAggregateInputType +} + +export type ProductBrandGroupByOutputType = { + id: number + name: string + description: string | null + imageUrl: string | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + _count: ProductBrandCountAggregateOutputType | null + _avg: ProductBrandAvgAggregateOutputType | null + _sum: ProductBrandSumAggregateOutputType | null + _min: ProductBrandMinAggregateOutputType | null + _max: ProductBrandMaxAggregateOutputType | null +} + +type GetProductBrandGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ProductBrandGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ProductBrandWhereInput = { + AND?: Prisma.ProductBrandWhereInput | Prisma.ProductBrandWhereInput[] + OR?: Prisma.ProductBrandWhereInput[] + NOT?: Prisma.ProductBrandWhereInput | Prisma.ProductBrandWhereInput[] + id?: Prisma.IntFilter<"ProductBrand"> | number + name?: Prisma.StringFilter<"ProductBrand"> | string + description?: Prisma.StringNullableFilter<"ProductBrand"> | string | null + imageUrl?: Prisma.StringNullableFilter<"ProductBrand"> | string | null + createdAt?: Prisma.DateTimeFilter<"ProductBrand"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductBrand"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductBrand"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +} + +export type ProductBrandOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + productInfo?: Prisma.ProductInfoOrderByRelationAggregateInput + _relevance?: Prisma.ProductBrandOrderByRelevanceInput +} + +export type ProductBrandWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.ProductBrandWhereInput | Prisma.ProductBrandWhereInput[] + OR?: Prisma.ProductBrandWhereInput[] + NOT?: Prisma.ProductBrandWhereInput | Prisma.ProductBrandWhereInput[] + name?: Prisma.StringFilter<"ProductBrand"> | string + description?: Prisma.StringNullableFilter<"ProductBrand"> | string | null + imageUrl?: Prisma.StringNullableFilter<"ProductBrand"> | string | null + createdAt?: Prisma.DateTimeFilter<"ProductBrand"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductBrand"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductBrand"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +}, "id"> + +export type ProductBrandOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.ProductBrandCountOrderByAggregateInput + _avg?: Prisma.ProductBrandAvgOrderByAggregateInput + _max?: Prisma.ProductBrandMaxOrderByAggregateInput + _min?: Prisma.ProductBrandMinOrderByAggregateInput + _sum?: Prisma.ProductBrandSumOrderByAggregateInput +} + +export type ProductBrandScalarWhereWithAggregatesInput = { + AND?: Prisma.ProductBrandScalarWhereWithAggregatesInput | Prisma.ProductBrandScalarWhereWithAggregatesInput[] + OR?: Prisma.ProductBrandScalarWhereWithAggregatesInput[] + NOT?: Prisma.ProductBrandScalarWhereWithAggregatesInput | Prisma.ProductBrandScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"ProductBrand"> | number + name?: Prisma.StringWithAggregatesFilter<"ProductBrand"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"ProductBrand"> | string | null + imageUrl?: Prisma.StringNullableWithAggregatesFilter<"ProductBrand"> | string | null + createdAt?: Prisma.DateTimeWithAggregatesFilter<"ProductBrand"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"ProductBrand"> | Date | string + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"ProductBrand"> | Date | string | null +} + +export type ProductBrandCreateInput = { + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoCreateNestedManyWithoutBrandInput +} + +export type ProductBrandUncheckedCreateInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoUncheckedCreateNestedManyWithoutBrandInput +} + +export type ProductBrandUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUpdateManyWithoutBrandNestedInput +} + +export type ProductBrandUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUncheckedUpdateManyWithoutBrandNestedInput +} + +export type ProductBrandCreateManyInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductBrandUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductBrandUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductBrandNullableScalarRelationFilter = { + is?: Prisma.ProductBrandWhereInput | null + isNot?: Prisma.ProductBrandWhereInput | null +} + +export type ProductBrandOrderByRelevanceInput = { + fields: Prisma.ProductBrandOrderByRelevanceFieldEnum | Prisma.ProductBrandOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ProductBrandCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductBrandAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type ProductBrandMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductBrandMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductBrandSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type ProductBrandCreateNestedOneWithoutProductInfoInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductBrandCreateOrConnectWithoutProductInfoInput + connect?: Prisma.ProductBrandWhereUniqueInput +} + +export type ProductBrandUpdateOneWithoutProductInfoNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductBrandCreateOrConnectWithoutProductInfoInput + upsert?: Prisma.ProductBrandUpsertWithoutProductInfoInput + disconnect?: Prisma.ProductBrandWhereInput | boolean + delete?: Prisma.ProductBrandWhereInput | boolean + connect?: Prisma.ProductBrandWhereUniqueInput + update?: Prisma.XOR, Prisma.ProductBrandUncheckedUpdateWithoutProductInfoInput> +} + +export type ProductBrandCreateWithoutProductInfoInput = { + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductBrandUncheckedCreateWithoutProductInfoInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductBrandCreateOrConnectWithoutProductInfoInput = { + where: Prisma.ProductBrandWhereUniqueInput + create: Prisma.XOR +} + +export type ProductBrandUpsertWithoutProductInfoInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.ProductBrandWhereInput +} + +export type ProductBrandUpdateToOneWithWhereWithoutProductInfoInput = { + where?: Prisma.ProductBrandWhereInput + data: Prisma.XOR +} + +export type ProductBrandUpdateWithoutProductInfoInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductBrandUncheckedUpdateWithoutProductInfoInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + + +/** + * Count Type ProductBrandCountOutputType + */ + +export type ProductBrandCountOutputType = { + productInfo: number +} + +export type ProductBrandCountOutputTypeSelect = { + productInfo?: boolean | ProductBrandCountOutputTypeCountProductInfoArgs +} + +/** + * ProductBrandCountOutputType without action + */ +export type ProductBrandCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the ProductBrandCountOutputType + */ + select?: Prisma.ProductBrandCountOutputTypeSelect | null +} + +/** + * ProductBrandCountOutputType without action + */ +export type ProductBrandCountOutputTypeCountProductInfoArgs = { + where?: Prisma.ProductInfoWhereInput +} + + +export type ProductBrandSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + imageUrl?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + productInfo?: boolean | Prisma.ProductBrand$productInfoArgs + _count?: boolean | Prisma.ProductBrandCountOutputTypeDefaultArgs +}, ExtArgs["result"]["productBrand"]> + + + +export type ProductBrandSelectScalar = { + id?: boolean + name?: boolean + description?: boolean + imageUrl?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +} + +export type ProductBrandOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "imageUrl" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["productBrand"]> +export type ProductBrandInclude = { + productInfo?: boolean | Prisma.ProductBrand$productInfoArgs + _count?: boolean | Prisma.ProductBrandCountOutputTypeDefaultArgs +} + +export type $ProductBrandPayload = { + name: "ProductBrand" + objects: { + productInfo: Prisma.$ProductInfoPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string | null + imageUrl: string | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + }, ExtArgs["result"]["productBrand"]> + composites: {} +} + +export type ProductBrandGetPayload = runtime.Types.Result.GetResult + +export type ProductBrandCountArgs = + Omit & { + select?: ProductBrandCountAggregateInputType | true + } + +export interface ProductBrandDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ProductBrand'], meta: { name: 'ProductBrand' } } + /** + * Find zero or one ProductBrand that matches the filter. + * @param {ProductBrandFindUniqueArgs} args - Arguments to find a ProductBrand + * @example + * // Get one ProductBrand + * const productBrand = await prisma.productBrand.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one ProductBrand that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ProductBrandFindUniqueOrThrowArgs} args - Arguments to find a ProductBrand + * @example + * // Get one ProductBrand + * const productBrand = await prisma.productBrand.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductBrand that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandFindFirstArgs} args - Arguments to find a ProductBrand + * @example + * // Get one ProductBrand + * const productBrand = await prisma.productBrand.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductBrand that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandFindFirstOrThrowArgs} args - Arguments to find a ProductBrand + * @example + * // Get one ProductBrand + * const productBrand = await prisma.productBrand.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more ProductBrands that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ProductBrands + * const productBrands = await prisma.productBrand.findMany() + * + * // Get first 10 ProductBrands + * const productBrands = await prisma.productBrand.findMany({ take: 10 }) + * + * // Only select the `id` + * const productBrandWithIdOnly = await prisma.productBrand.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a ProductBrand. + * @param {ProductBrandCreateArgs} args - Arguments to create a ProductBrand. + * @example + * // Create one ProductBrand + * const ProductBrand = await prisma.productBrand.create({ + * data: { + * // ... data to create a ProductBrand + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many ProductBrands. + * @param {ProductBrandCreateManyArgs} args - Arguments to create many ProductBrands. + * @example + * // Create many ProductBrands + * const productBrand = await prisma.productBrand.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a ProductBrand. + * @param {ProductBrandDeleteArgs} args - Arguments to delete one ProductBrand. + * @example + * // Delete one ProductBrand + * const ProductBrand = await prisma.productBrand.delete({ + * where: { + * // ... filter to delete one ProductBrand + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one ProductBrand. + * @param {ProductBrandUpdateArgs} args - Arguments to update one ProductBrand. + * @example + * // Update one ProductBrand + * const productBrand = await prisma.productBrand.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more ProductBrands. + * @param {ProductBrandDeleteManyArgs} args - Arguments to filter ProductBrands to delete. + * @example + * // Delete a few ProductBrands + * const { count } = await prisma.productBrand.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ProductBrands. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ProductBrands + * const productBrand = await prisma.productBrand.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ProductBrand. + * @param {ProductBrandUpsertArgs} args - Arguments to update or create a ProductBrand. + * @example + * // Update or create a ProductBrand + * const productBrand = await prisma.productBrand.upsert({ + * create: { + * // ... data to create a ProductBrand + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ProductBrand we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ProductBrandClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of ProductBrands. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandCountArgs} args - Arguments to filter ProductBrands to count. + * @example + * // Count the number of ProductBrands + * const count = await prisma.productBrand.count({ + * where: { + * // ... the filter for the ProductBrands we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ProductBrand. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by ProductBrand. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductBrandGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ProductBrandGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ProductBrandGroupByArgs['orderBy'] } + : { orderBy?: ProductBrandGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetProductBrandGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the ProductBrand model + */ +readonly fields: ProductBrandFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for ProductBrand. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ProductBrandClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + productInfo = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the ProductBrand model + */ +export interface ProductBrandFieldRefs { + readonly id: Prisma.FieldRef<"ProductBrand", 'Int'> + readonly name: Prisma.FieldRef<"ProductBrand", 'String'> + readonly description: Prisma.FieldRef<"ProductBrand", 'String'> + readonly imageUrl: Prisma.FieldRef<"ProductBrand", 'String'> + readonly createdAt: Prisma.FieldRef<"ProductBrand", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"ProductBrand", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"ProductBrand", 'DateTime'> +} + + +// Custom InputTypes +/** + * ProductBrand findUnique + */ +export type ProductBrandFindUniqueArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter, which ProductBrand to fetch. + */ + where: Prisma.ProductBrandWhereUniqueInput +} + +/** + * ProductBrand findUniqueOrThrow + */ +export type ProductBrandFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter, which ProductBrand to fetch. + */ + where: Prisma.ProductBrandWhereUniqueInput +} + +/** + * ProductBrand findFirst + */ +export type ProductBrandFindFirstArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter, which ProductBrand to fetch. + */ + where?: Prisma.ProductBrandWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductBrands to fetch. + */ + orderBy?: Prisma.ProductBrandOrderByWithRelationInput | Prisma.ProductBrandOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductBrands. + */ + cursor?: Prisma.ProductBrandWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductBrands from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductBrands. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductBrands. + */ + distinct?: Prisma.ProductBrandScalarFieldEnum | Prisma.ProductBrandScalarFieldEnum[] +} + +/** + * ProductBrand findFirstOrThrow + */ +export type ProductBrandFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter, which ProductBrand to fetch. + */ + where?: Prisma.ProductBrandWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductBrands to fetch. + */ + orderBy?: Prisma.ProductBrandOrderByWithRelationInput | Prisma.ProductBrandOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductBrands. + */ + cursor?: Prisma.ProductBrandWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductBrands from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductBrands. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductBrands. + */ + distinct?: Prisma.ProductBrandScalarFieldEnum | Prisma.ProductBrandScalarFieldEnum[] +} + +/** + * ProductBrand findMany + */ +export type ProductBrandFindManyArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter, which ProductBrands to fetch. + */ + where?: Prisma.ProductBrandWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductBrands to fetch. + */ + orderBy?: Prisma.ProductBrandOrderByWithRelationInput | Prisma.ProductBrandOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ProductBrands. + */ + cursor?: Prisma.ProductBrandWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductBrands from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductBrands. + */ + skip?: number + distinct?: Prisma.ProductBrandScalarFieldEnum | Prisma.ProductBrandScalarFieldEnum[] +} + +/** + * ProductBrand create + */ +export type ProductBrandCreateArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * The data needed to create a ProductBrand. + */ + data: Prisma.XOR +} + +/** + * ProductBrand createMany + */ +export type ProductBrandCreateManyArgs = { + /** + * The data used to create many ProductBrands. + */ + data: Prisma.ProductBrandCreateManyInput | Prisma.ProductBrandCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * ProductBrand update + */ +export type ProductBrandUpdateArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * The data needed to update a ProductBrand. + */ + data: Prisma.XOR + /** + * Choose, which ProductBrand to update. + */ + where: Prisma.ProductBrandWhereUniqueInput +} + +/** + * ProductBrand updateMany + */ +export type ProductBrandUpdateManyArgs = { + /** + * The data used to update ProductBrands. + */ + data: Prisma.XOR + /** + * Filter which ProductBrands to update + */ + where?: Prisma.ProductBrandWhereInput + /** + * Limit how many ProductBrands to update. + */ + limit?: number +} + +/** + * ProductBrand upsert + */ +export type ProductBrandUpsertArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * The filter to search for the ProductBrand to update in case it exists. + */ + where: Prisma.ProductBrandWhereUniqueInput + /** + * In case the ProductBrand found by the `where` argument doesn't exist, create a new ProductBrand with this data. + */ + create: Prisma.XOR + /** + * In case the ProductBrand was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * ProductBrand delete + */ +export type ProductBrandDeleteArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + /** + * Filter which ProductBrand to delete. + */ + where: Prisma.ProductBrandWhereUniqueInput +} + +/** + * ProductBrand deleteMany + */ +export type ProductBrandDeleteManyArgs = { + /** + * Filter which ProductBrands to delete + */ + where?: Prisma.ProductBrandWhereInput + /** + * Limit how many ProductBrands to delete. + */ + limit?: number +} + +/** + * ProductBrand.productInfo + */ +export type ProductBrand$productInfoArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + where?: Prisma.ProductInfoWhereInput + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + cursor?: Prisma.ProductInfoWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * ProductBrand without action + */ +export type ProductBrandDefaultArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null +} diff --git a/src/generated/prisma/models/ProductCategory.ts b/src/generated/prisma/models/ProductCategory.ts new file mode 100644 index 0000000..70c1075 --- /dev/null +++ b/src/generated/prisma/models/ProductCategory.ts @@ -0,0 +1,1315 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `ProductCategory` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model ProductCategory + * + */ +export type ProductCategoryModel = runtime.Types.Result.DefaultSelection + +export type AggregateProductCategory = { + _count: ProductCategoryCountAggregateOutputType | null + _avg: ProductCategoryAvgAggregateOutputType | null + _sum: ProductCategorySumAggregateOutputType | null + _min: ProductCategoryMinAggregateOutputType | null + _max: ProductCategoryMaxAggregateOutputType | null +} + +export type ProductCategoryAvgAggregateOutputType = { + id: number | null +} + +export type ProductCategorySumAggregateOutputType = { + id: number | null +} + +export type ProductCategoryMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + imageUrl: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type ProductCategoryMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + imageUrl: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type ProductCategoryCountAggregateOutputType = { + id: number + name: number + description: number + imageUrl: number + createdAt: number + updatedAt: number + deletedAt: number + _all: number +} + + +export type ProductCategoryAvgAggregateInputType = { + id?: true +} + +export type ProductCategorySumAggregateInputType = { + id?: true +} + +export type ProductCategoryMinAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type ProductCategoryMaxAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type ProductCategoryCountAggregateInputType = { + id?: true + name?: true + description?: true + imageUrl?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + _all?: true +} + +export type ProductCategoryAggregateArgs = { + /** + * Filter which ProductCategory to aggregate. + */ + where?: Prisma.ProductCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductCategories to fetch. + */ + orderBy?: Prisma.ProductCategoryOrderByWithRelationInput | Prisma.ProductCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ProductCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductCategories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ProductCategories + **/ + _count?: true | ProductCategoryCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: ProductCategoryAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: ProductCategorySumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ProductCategoryMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ProductCategoryMaxAggregateInputType +} + +export type GetProductCategoryAggregateType = { + [P in keyof T & keyof AggregateProductCategory]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ProductCategoryGroupByArgs = { + where?: Prisma.ProductCategoryWhereInput + orderBy?: Prisma.ProductCategoryOrderByWithAggregationInput | Prisma.ProductCategoryOrderByWithAggregationInput[] + by: Prisma.ProductCategoryScalarFieldEnum[] | Prisma.ProductCategoryScalarFieldEnum + having?: Prisma.ProductCategoryScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ProductCategoryCountAggregateInputType | true + _avg?: ProductCategoryAvgAggregateInputType + _sum?: ProductCategorySumAggregateInputType + _min?: ProductCategoryMinAggregateInputType + _max?: ProductCategoryMaxAggregateInputType +} + +export type ProductCategoryGroupByOutputType = { + id: number + name: string + description: string | null + imageUrl: string | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + _count: ProductCategoryCountAggregateOutputType | null + _avg: ProductCategoryAvgAggregateOutputType | null + _sum: ProductCategorySumAggregateOutputType | null + _min: ProductCategoryMinAggregateOutputType | null + _max: ProductCategoryMaxAggregateOutputType | null +} + +type GetProductCategoryGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ProductCategoryGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ProductCategoryWhereInput = { + AND?: Prisma.ProductCategoryWhereInput | Prisma.ProductCategoryWhereInput[] + OR?: Prisma.ProductCategoryWhereInput[] + NOT?: Prisma.ProductCategoryWhereInput | Prisma.ProductCategoryWhereInput[] + id?: Prisma.IntFilter<"ProductCategory"> | number + name?: Prisma.StringFilter<"ProductCategory"> | string + description?: Prisma.StringNullableFilter<"ProductCategory"> | string | null + imageUrl?: Prisma.StringNullableFilter<"ProductCategory"> | string | null + createdAt?: Prisma.DateTimeFilter<"ProductCategory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductCategory"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductCategory"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +} + +export type ProductCategoryOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + productInfo?: Prisma.ProductInfoOrderByRelationAggregateInput + _relevance?: Prisma.ProductCategoryOrderByRelevanceInput +} + +export type ProductCategoryWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.ProductCategoryWhereInput | Prisma.ProductCategoryWhereInput[] + OR?: Prisma.ProductCategoryWhereInput[] + NOT?: Prisma.ProductCategoryWhereInput | Prisma.ProductCategoryWhereInput[] + name?: Prisma.StringFilter<"ProductCategory"> | string + description?: Prisma.StringNullableFilter<"ProductCategory"> | string | null + imageUrl?: Prisma.StringNullableFilter<"ProductCategory"> | string | null + createdAt?: Prisma.DateTimeFilter<"ProductCategory"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductCategory"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductCategory"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +}, "id"> + +export type ProductCategoryOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + imageUrl?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.ProductCategoryCountOrderByAggregateInput + _avg?: Prisma.ProductCategoryAvgOrderByAggregateInput + _max?: Prisma.ProductCategoryMaxOrderByAggregateInput + _min?: Prisma.ProductCategoryMinOrderByAggregateInput + _sum?: Prisma.ProductCategorySumOrderByAggregateInput +} + +export type ProductCategoryScalarWhereWithAggregatesInput = { + AND?: Prisma.ProductCategoryScalarWhereWithAggregatesInput | Prisma.ProductCategoryScalarWhereWithAggregatesInput[] + OR?: Prisma.ProductCategoryScalarWhereWithAggregatesInput[] + NOT?: Prisma.ProductCategoryScalarWhereWithAggregatesInput | Prisma.ProductCategoryScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"ProductCategory"> | number + name?: Prisma.StringWithAggregatesFilter<"ProductCategory"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"ProductCategory"> | string | null + imageUrl?: Prisma.StringNullableWithAggregatesFilter<"ProductCategory"> | string | null + createdAt?: Prisma.DateTimeWithAggregatesFilter<"ProductCategory"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"ProductCategory"> | Date | string + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"ProductCategory"> | Date | string | null +} + +export type ProductCategoryCreateInput = { + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoCreateNestedManyWithoutCategoryInput +} + +export type ProductCategoryUncheckedCreateInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoUncheckedCreateNestedManyWithoutCategoryInput +} + +export type ProductCategoryUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUpdateManyWithoutCategoryNestedInput +} + +export type ProductCategoryUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUncheckedUpdateManyWithoutCategoryNestedInput +} + +export type ProductCategoryCreateManyInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductCategoryUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductCategoryUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductCategoryNullableScalarRelationFilter = { + is?: Prisma.ProductCategoryWhereInput | null + isNot?: Prisma.ProductCategoryWhereInput | null +} + +export type ProductCategoryOrderByRelevanceInput = { + fields: Prisma.ProductCategoryOrderByRelevanceFieldEnum | Prisma.ProductCategoryOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ProductCategoryCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductCategoryAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type ProductCategoryMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductCategoryMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + imageUrl?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type ProductCategorySumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type ProductCategoryCreateNestedOneWithoutProductInfoInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductCategoryCreateOrConnectWithoutProductInfoInput + connect?: Prisma.ProductCategoryWhereUniqueInput +} + +export type ProductCategoryUpdateOneWithoutProductInfoNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductCategoryCreateOrConnectWithoutProductInfoInput + upsert?: Prisma.ProductCategoryUpsertWithoutProductInfoInput + disconnect?: Prisma.ProductCategoryWhereInput | boolean + delete?: Prisma.ProductCategoryWhereInput | boolean + connect?: Prisma.ProductCategoryWhereUniqueInput + update?: Prisma.XOR, Prisma.ProductCategoryUncheckedUpdateWithoutProductInfoInput> +} + +export type ProductCategoryCreateWithoutProductInfoInput = { + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductCategoryUncheckedCreateWithoutProductInfoInput = { + id?: number + name: string + description?: string | null + imageUrl?: string | null + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type ProductCategoryCreateOrConnectWithoutProductInfoInput = { + where: Prisma.ProductCategoryWhereUniqueInput + create: Prisma.XOR +} + +export type ProductCategoryUpsertWithoutProductInfoInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.ProductCategoryWhereInput +} + +export type ProductCategoryUpdateToOneWithWhereWithoutProductInfoInput = { + where?: Prisma.ProductCategoryWhereInput + data: Prisma.XOR +} + +export type ProductCategoryUpdateWithoutProductInfoInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductCategoryUncheckedUpdateWithoutProductInfoInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + imageUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + + +/** + * Count Type ProductCategoryCountOutputType + */ + +export type ProductCategoryCountOutputType = { + productInfo: number +} + +export type ProductCategoryCountOutputTypeSelect = { + productInfo?: boolean | ProductCategoryCountOutputTypeCountProductInfoArgs +} + +/** + * ProductCategoryCountOutputType without action + */ +export type ProductCategoryCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the ProductCategoryCountOutputType + */ + select?: Prisma.ProductCategoryCountOutputTypeSelect | null +} + +/** + * ProductCategoryCountOutputType without action + */ +export type ProductCategoryCountOutputTypeCountProductInfoArgs = { + where?: Prisma.ProductInfoWhereInput +} + + +export type ProductCategorySelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + imageUrl?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + productInfo?: boolean | Prisma.ProductCategory$productInfoArgs + _count?: boolean | Prisma.ProductCategoryCountOutputTypeDefaultArgs +}, ExtArgs["result"]["productCategory"]> + + + +export type ProductCategorySelectScalar = { + id?: boolean + name?: boolean + description?: boolean + imageUrl?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +} + +export type ProductCategoryOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "imageUrl" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["productCategory"]> +export type ProductCategoryInclude = { + productInfo?: boolean | Prisma.ProductCategory$productInfoArgs + _count?: boolean | Prisma.ProductCategoryCountOutputTypeDefaultArgs +} + +export type $ProductCategoryPayload = { + name: "ProductCategory" + objects: { + productInfo: Prisma.$ProductInfoPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string | null + imageUrl: string | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + }, ExtArgs["result"]["productCategory"]> + composites: {} +} + +export type ProductCategoryGetPayload = runtime.Types.Result.GetResult + +export type ProductCategoryCountArgs = + Omit & { + select?: ProductCategoryCountAggregateInputType | true + } + +export interface ProductCategoryDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ProductCategory'], meta: { name: 'ProductCategory' } } + /** + * Find zero or one ProductCategory that matches the filter. + * @param {ProductCategoryFindUniqueArgs} args - Arguments to find a ProductCategory + * @example + * // Get one ProductCategory + * const productCategory = await prisma.productCategory.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one ProductCategory that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ProductCategoryFindUniqueOrThrowArgs} args - Arguments to find a ProductCategory + * @example + * // Get one ProductCategory + * const productCategory = await prisma.productCategory.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductCategory that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryFindFirstArgs} args - Arguments to find a ProductCategory + * @example + * // Get one ProductCategory + * const productCategory = await prisma.productCategory.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductCategory that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryFindFirstOrThrowArgs} args - Arguments to find a ProductCategory + * @example + * // Get one ProductCategory + * const productCategory = await prisma.productCategory.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more ProductCategories that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ProductCategories + * const productCategories = await prisma.productCategory.findMany() + * + * // Get first 10 ProductCategories + * const productCategories = await prisma.productCategory.findMany({ take: 10 }) + * + * // Only select the `id` + * const productCategoryWithIdOnly = await prisma.productCategory.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a ProductCategory. + * @param {ProductCategoryCreateArgs} args - Arguments to create a ProductCategory. + * @example + * // Create one ProductCategory + * const ProductCategory = await prisma.productCategory.create({ + * data: { + * // ... data to create a ProductCategory + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many ProductCategories. + * @param {ProductCategoryCreateManyArgs} args - Arguments to create many ProductCategories. + * @example + * // Create many ProductCategories + * const productCategory = await prisma.productCategory.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a ProductCategory. + * @param {ProductCategoryDeleteArgs} args - Arguments to delete one ProductCategory. + * @example + * // Delete one ProductCategory + * const ProductCategory = await prisma.productCategory.delete({ + * where: { + * // ... filter to delete one ProductCategory + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one ProductCategory. + * @param {ProductCategoryUpdateArgs} args - Arguments to update one ProductCategory. + * @example + * // Update one ProductCategory + * const productCategory = await prisma.productCategory.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more ProductCategories. + * @param {ProductCategoryDeleteManyArgs} args - Arguments to filter ProductCategories to delete. + * @example + * // Delete a few ProductCategories + * const { count } = await prisma.productCategory.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ProductCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ProductCategories + * const productCategory = await prisma.productCategory.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ProductCategory. + * @param {ProductCategoryUpsertArgs} args - Arguments to update or create a ProductCategory. + * @example + * // Update or create a ProductCategory + * const productCategory = await prisma.productCategory.upsert({ + * create: { + * // ... data to create a ProductCategory + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ProductCategory we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ProductCategoryClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of ProductCategories. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryCountArgs} args - Arguments to filter ProductCategories to count. + * @example + * // Count the number of ProductCategories + * const count = await prisma.productCategory.count({ + * where: { + * // ... the filter for the ProductCategories we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ProductCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by ProductCategory. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductCategoryGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ProductCategoryGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ProductCategoryGroupByArgs['orderBy'] } + : { orderBy?: ProductCategoryGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetProductCategoryGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the ProductCategory model + */ +readonly fields: ProductCategoryFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for ProductCategory. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ProductCategoryClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + productInfo = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the ProductCategory model + */ +export interface ProductCategoryFieldRefs { + readonly id: Prisma.FieldRef<"ProductCategory", 'Int'> + readonly name: Prisma.FieldRef<"ProductCategory", 'String'> + readonly description: Prisma.FieldRef<"ProductCategory", 'String'> + readonly imageUrl: Prisma.FieldRef<"ProductCategory", 'String'> + readonly createdAt: Prisma.FieldRef<"ProductCategory", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"ProductCategory", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"ProductCategory", 'DateTime'> +} + + +// Custom InputTypes +/** + * ProductCategory findUnique + */ +export type ProductCategoryFindUniqueArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter, which ProductCategory to fetch. + */ + where: Prisma.ProductCategoryWhereUniqueInput +} + +/** + * ProductCategory findUniqueOrThrow + */ +export type ProductCategoryFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter, which ProductCategory to fetch. + */ + where: Prisma.ProductCategoryWhereUniqueInput +} + +/** + * ProductCategory findFirst + */ +export type ProductCategoryFindFirstArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter, which ProductCategory to fetch. + */ + where?: Prisma.ProductCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductCategories to fetch. + */ + orderBy?: Prisma.ProductCategoryOrderByWithRelationInput | Prisma.ProductCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductCategories. + */ + cursor?: Prisma.ProductCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductCategories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductCategories. + */ + distinct?: Prisma.ProductCategoryScalarFieldEnum | Prisma.ProductCategoryScalarFieldEnum[] +} + +/** + * ProductCategory findFirstOrThrow + */ +export type ProductCategoryFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter, which ProductCategory to fetch. + */ + where?: Prisma.ProductCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductCategories to fetch. + */ + orderBy?: Prisma.ProductCategoryOrderByWithRelationInput | Prisma.ProductCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductCategories. + */ + cursor?: Prisma.ProductCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductCategories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductCategories. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductCategories. + */ + distinct?: Prisma.ProductCategoryScalarFieldEnum | Prisma.ProductCategoryScalarFieldEnum[] +} + +/** + * ProductCategory findMany + */ +export type ProductCategoryFindManyArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter, which ProductCategories to fetch. + */ + where?: Prisma.ProductCategoryWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductCategories to fetch. + */ + orderBy?: Prisma.ProductCategoryOrderByWithRelationInput | Prisma.ProductCategoryOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ProductCategories. + */ + cursor?: Prisma.ProductCategoryWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductCategories from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductCategories. + */ + skip?: number + distinct?: Prisma.ProductCategoryScalarFieldEnum | Prisma.ProductCategoryScalarFieldEnum[] +} + +/** + * ProductCategory create + */ +export type ProductCategoryCreateArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * The data needed to create a ProductCategory. + */ + data: Prisma.XOR +} + +/** + * ProductCategory createMany + */ +export type ProductCategoryCreateManyArgs = { + /** + * The data used to create many ProductCategories. + */ + data: Prisma.ProductCategoryCreateManyInput | Prisma.ProductCategoryCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * ProductCategory update + */ +export type ProductCategoryUpdateArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * The data needed to update a ProductCategory. + */ + data: Prisma.XOR + /** + * Choose, which ProductCategory to update. + */ + where: Prisma.ProductCategoryWhereUniqueInput +} + +/** + * ProductCategory updateMany + */ +export type ProductCategoryUpdateManyArgs = { + /** + * The data used to update ProductCategories. + */ + data: Prisma.XOR + /** + * Filter which ProductCategories to update + */ + where?: Prisma.ProductCategoryWhereInput + /** + * Limit how many ProductCategories to update. + */ + limit?: number +} + +/** + * ProductCategory upsert + */ +export type ProductCategoryUpsertArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * The filter to search for the ProductCategory to update in case it exists. + */ + where: Prisma.ProductCategoryWhereUniqueInput + /** + * In case the ProductCategory found by the `where` argument doesn't exist, create a new ProductCategory with this data. + */ + create: Prisma.XOR + /** + * In case the ProductCategory was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * ProductCategory delete + */ +export type ProductCategoryDeleteArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + /** + * Filter which ProductCategory to delete. + */ + where: Prisma.ProductCategoryWhereUniqueInput +} + +/** + * ProductCategory deleteMany + */ +export type ProductCategoryDeleteManyArgs = { + /** + * Filter which ProductCategories to delete + */ + where?: Prisma.ProductCategoryWhereInput + /** + * Limit how many ProductCategories to delete. + */ + limit?: number +} + +/** + * ProductCategory.productInfo + */ +export type ProductCategory$productInfoArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + where?: Prisma.ProductInfoWhereInput + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + cursor?: Prisma.ProductInfoWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * ProductCategory without action + */ +export type ProductCategoryDefaultArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null +} diff --git a/src/generated/prisma/models/ProductInfo.ts b/src/generated/prisma/models/ProductInfo.ts new file mode 100644 index 0000000..00f8c11 --- /dev/null +++ b/src/generated/prisma/models/ProductInfo.ts @@ -0,0 +1,1980 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `ProductInfo` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model ProductInfo + * + */ +export type ProductInfoModel = runtime.Types.Result.DefaultSelection + +export type AggregateProductInfo = { + _count: ProductInfoCountAggregateOutputType | null + _avg: ProductInfoAvgAggregateOutputType | null + _sum: ProductInfoSumAggregateOutputType | null + _min: ProductInfoMinAggregateOutputType | null + _max: ProductInfoMaxAggregateOutputType | null +} + +export type ProductInfoAvgAggregateOutputType = { + id: number | null + brandId: number | null + categoryId: number | null + vendorId: number | null +} + +export type ProductInfoSumAggregateOutputType = { + id: number | null + brandId: number | null + categoryId: number | null + vendorId: number | null +} + +export type ProductInfoMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + productType: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + brandId: number | null + categoryId: number | null + vendorId: number | null +} + +export type ProductInfoMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + productType: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + brandId: number | null + categoryId: number | null + vendorId: number | null +} + +export type ProductInfoCountAggregateOutputType = { + id: number + name: number + description: number + productType: number + metaData: number + createdAt: number + updatedAt: number + deletedAt: number + brandId: number + categoryId: number + vendorId: number + _all: number +} + + +export type ProductInfoAvgAggregateInputType = { + id?: true + brandId?: true + categoryId?: true + vendorId?: true +} + +export type ProductInfoSumAggregateInputType = { + id?: true + brandId?: true + categoryId?: true + vendorId?: true +} + +export type ProductInfoMinAggregateInputType = { + id?: true + name?: true + description?: true + productType?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + brandId?: true + categoryId?: true + vendorId?: true +} + +export type ProductInfoMaxAggregateInputType = { + id?: true + name?: true + description?: true + productType?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + brandId?: true + categoryId?: true + vendorId?: true +} + +export type ProductInfoCountAggregateInputType = { + id?: true + name?: true + description?: true + productType?: true + metaData?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + brandId?: true + categoryId?: true + vendorId?: true + _all?: true +} + +export type ProductInfoAggregateArgs = { + /** + * Filter which ProductInfo to aggregate. + */ + where?: Prisma.ProductInfoWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductInfos to fetch. + */ + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ProductInfoWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductInfos from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductInfos. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ProductInfos + **/ + _count?: true | ProductInfoCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: ProductInfoAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: ProductInfoSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ProductInfoMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ProductInfoMaxAggregateInputType +} + +export type GetProductInfoAggregateType = { + [P in keyof T & keyof AggregateProductInfo]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ProductInfoGroupByArgs = { + where?: Prisma.ProductInfoWhereInput + orderBy?: Prisma.ProductInfoOrderByWithAggregationInput | Prisma.ProductInfoOrderByWithAggregationInput[] + by: Prisma.ProductInfoScalarFieldEnum[] | Prisma.ProductInfoScalarFieldEnum + having?: Prisma.ProductInfoScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ProductInfoCountAggregateInputType | true + _avg?: ProductInfoAvgAggregateInputType + _sum?: ProductInfoSumAggregateInputType + _min?: ProductInfoMinAggregateInputType + _max?: ProductInfoMaxAggregateInputType +} + +export type ProductInfoGroupByOutputType = { + id: number + name: string + description: string | null + productType: string | null + metaData: runtime.JsonValue | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + brandId: number | null + categoryId: number | null + vendorId: number + _count: ProductInfoCountAggregateOutputType | null + _avg: ProductInfoAvgAggregateOutputType | null + _sum: ProductInfoSumAggregateOutputType | null + _min: ProductInfoMinAggregateOutputType | null + _max: ProductInfoMaxAggregateOutputType | null +} + +type GetProductInfoGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ProductInfoGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ProductInfoWhereInput = { + AND?: Prisma.ProductInfoWhereInput | Prisma.ProductInfoWhereInput[] + OR?: Prisma.ProductInfoWhereInput[] + NOT?: Prisma.ProductInfoWhereInput | Prisma.ProductInfoWhereInput[] + id?: Prisma.IntFilter<"ProductInfo"> | number + name?: Prisma.StringFilter<"ProductInfo"> | string + description?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + productType?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + metaData?: Prisma.JsonNullableFilter<"ProductInfo"> + createdAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductInfo"> | Date | string | null + brandId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + categoryId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + vendorId?: Prisma.IntFilter<"ProductInfo"> | number + products?: Prisma.ProductListRelationFilter + brand?: Prisma.XOR | null + category?: Prisma.XOR | null + vendor?: Prisma.XOR +} + +export type ProductInfoOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + productType?: Prisma.SortOrderInput | Prisma.SortOrder + metaData?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + brandId?: Prisma.SortOrderInput | Prisma.SortOrder + categoryId?: Prisma.SortOrderInput | Prisma.SortOrder + vendorId?: Prisma.SortOrder + products?: Prisma.ProductOrderByRelationAggregateInput + brand?: Prisma.ProductBrandOrderByWithRelationInput + category?: Prisma.ProductCategoryOrderByWithRelationInput + vendor?: Prisma.VendorOrderByWithRelationInput + _relevance?: Prisma.ProductInfoOrderByRelevanceInput +} + +export type ProductInfoWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.ProductInfoWhereInput | Prisma.ProductInfoWhereInput[] + OR?: Prisma.ProductInfoWhereInput[] + NOT?: Prisma.ProductInfoWhereInput | Prisma.ProductInfoWhereInput[] + name?: Prisma.StringFilter<"ProductInfo"> | string + description?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + productType?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + metaData?: Prisma.JsonNullableFilter<"ProductInfo"> + createdAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductInfo"> | Date | string | null + brandId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + categoryId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + vendorId?: Prisma.IntFilter<"ProductInfo"> | number + products?: Prisma.ProductListRelationFilter + brand?: Prisma.XOR | null + category?: Prisma.XOR | null + vendor?: Prisma.XOR +}, "id"> + +export type ProductInfoOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + productType?: Prisma.SortOrderInput | Prisma.SortOrder + metaData?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + brandId?: Prisma.SortOrderInput | Prisma.SortOrder + categoryId?: Prisma.SortOrderInput | Prisma.SortOrder + vendorId?: Prisma.SortOrder + _count?: Prisma.ProductInfoCountOrderByAggregateInput + _avg?: Prisma.ProductInfoAvgOrderByAggregateInput + _max?: Prisma.ProductInfoMaxOrderByAggregateInput + _min?: Prisma.ProductInfoMinOrderByAggregateInput + _sum?: Prisma.ProductInfoSumOrderByAggregateInput +} + +export type ProductInfoScalarWhereWithAggregatesInput = { + AND?: Prisma.ProductInfoScalarWhereWithAggregatesInput | Prisma.ProductInfoScalarWhereWithAggregatesInput[] + OR?: Prisma.ProductInfoScalarWhereWithAggregatesInput[] + NOT?: Prisma.ProductInfoScalarWhereWithAggregatesInput | Prisma.ProductInfoScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"ProductInfo"> | number + name?: Prisma.StringWithAggregatesFilter<"ProductInfo"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"ProductInfo"> | string | null + productType?: Prisma.StringNullableWithAggregatesFilter<"ProductInfo"> | string | null + metaData?: Prisma.JsonNullableWithAggregatesFilter<"ProductInfo"> + createdAt?: Prisma.DateTimeWithAggregatesFilter<"ProductInfo"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"ProductInfo"> | Date | string + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"ProductInfo"> | Date | string | null + brandId?: Prisma.IntNullableWithAggregatesFilter<"ProductInfo"> | number | null + categoryId?: Prisma.IntNullableWithAggregatesFilter<"ProductInfo"> | number | null + vendorId?: Prisma.IntWithAggregatesFilter<"ProductInfo"> | number +} + +export type ProductInfoCreateInput = { + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + products?: Prisma.ProductCreateNestedManyWithoutProductInfoInput + brand?: Prisma.ProductBrandCreateNestedOneWithoutProductInfoInput + category?: Prisma.ProductCategoryCreateNestedOneWithoutProductInfoInput + vendor: Prisma.VendorCreateNestedOneWithoutProductInfoInput +} + +export type ProductInfoUncheckedCreateInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + categoryId?: number | null + vendorId: number + products?: Prisma.ProductUncheckedCreateNestedManyWithoutProductInfoInput +} + +export type ProductInfoUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + products?: Prisma.ProductUpdateManyWithoutProductInfoNestedInput + brand?: Prisma.ProductBrandUpdateOneWithoutProductInfoNestedInput + category?: Prisma.ProductCategoryUpdateOneWithoutProductInfoNestedInput + vendor?: Prisma.VendorUpdateOneRequiredWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number + products?: Prisma.ProductUncheckedUpdateManyWithoutProductInfoNestedInput +} + +export type ProductInfoCreateManyInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + categoryId?: number | null + vendorId: number +} + +export type ProductInfoUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type ProductInfoUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductInfoScalarRelationFilter = { + is?: Prisma.ProductInfoWhereInput + isNot?: Prisma.ProductInfoWhereInput +} + +export type ProductInfoOrderByRelevanceInput = { + fields: Prisma.ProductInfoOrderByRelevanceFieldEnum | Prisma.ProductInfoOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type ProductInfoCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + productType?: Prisma.SortOrder + metaData?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + brandId?: Prisma.SortOrder + categoryId?: Prisma.SortOrder + vendorId?: Prisma.SortOrder +} + +export type ProductInfoAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + brandId?: Prisma.SortOrder + categoryId?: Prisma.SortOrder + vendorId?: Prisma.SortOrder +} + +export type ProductInfoMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + productType?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + brandId?: Prisma.SortOrder + categoryId?: Prisma.SortOrder + vendorId?: Prisma.SortOrder +} + +export type ProductInfoMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + productType?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder + brandId?: Prisma.SortOrder + categoryId?: Prisma.SortOrder + vendorId?: Prisma.SortOrder +} + +export type ProductInfoSumOrderByAggregateInput = { + id?: Prisma.SortOrder + brandId?: Prisma.SortOrder + categoryId?: Prisma.SortOrder + vendorId?: Prisma.SortOrder +} + +export type ProductInfoListRelationFilter = { + every?: Prisma.ProductInfoWhereInput + some?: Prisma.ProductInfoWhereInput + none?: Prisma.ProductInfoWhereInput +} + +export type ProductInfoOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type ProductInfoCreateNestedOneWithoutProductsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutProductsInput + connect?: Prisma.ProductInfoWhereUniqueInput +} + +export type ProductInfoUpdateOneRequiredWithoutProductsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutProductsInput + upsert?: Prisma.ProductInfoUpsertWithoutProductsInput + connect?: Prisma.ProductInfoWhereUniqueInput + update?: Prisma.XOR, Prisma.ProductInfoUncheckedUpdateWithoutProductsInput> +} + +export type NullableIntFieldUpdateOperationsInput = { + set?: number | null + increment?: number + decrement?: number + multiply?: number + divide?: number +} + +export type ProductInfoCreateNestedManyWithoutBrandInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutBrandInput[] | Prisma.ProductInfoUncheckedCreateWithoutBrandInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutBrandInput | Prisma.ProductInfoCreateOrConnectWithoutBrandInput[] + createMany?: Prisma.ProductInfoCreateManyBrandInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUncheckedCreateNestedManyWithoutBrandInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutBrandInput[] | Prisma.ProductInfoUncheckedCreateWithoutBrandInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutBrandInput | Prisma.ProductInfoCreateOrConnectWithoutBrandInput[] + createMany?: Prisma.ProductInfoCreateManyBrandInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUpdateManyWithoutBrandNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutBrandInput[] | Prisma.ProductInfoUncheckedCreateWithoutBrandInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutBrandInput | Prisma.ProductInfoCreateOrConnectWithoutBrandInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutBrandInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutBrandInput[] + createMany?: Prisma.ProductInfoCreateManyBrandInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutBrandInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutBrandInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutBrandInput | Prisma.ProductInfoUpdateManyWithWhereWithoutBrandInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoUncheckedUpdateManyWithoutBrandNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutBrandInput[] | Prisma.ProductInfoUncheckedCreateWithoutBrandInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutBrandInput | Prisma.ProductInfoCreateOrConnectWithoutBrandInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutBrandInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutBrandInput[] + createMany?: Prisma.ProductInfoCreateManyBrandInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutBrandInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutBrandInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutBrandInput | Prisma.ProductInfoUpdateManyWithWhereWithoutBrandInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoCreateNestedManyWithoutCategoryInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutCategoryInput[] | Prisma.ProductInfoUncheckedCreateWithoutCategoryInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutCategoryInput | Prisma.ProductInfoCreateOrConnectWithoutCategoryInput[] + createMany?: Prisma.ProductInfoCreateManyCategoryInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUncheckedCreateNestedManyWithoutCategoryInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutCategoryInput[] | Prisma.ProductInfoUncheckedCreateWithoutCategoryInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutCategoryInput | Prisma.ProductInfoCreateOrConnectWithoutCategoryInput[] + createMany?: Prisma.ProductInfoCreateManyCategoryInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUpdateManyWithoutCategoryNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutCategoryInput[] | Prisma.ProductInfoUncheckedCreateWithoutCategoryInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutCategoryInput | Prisma.ProductInfoCreateOrConnectWithoutCategoryInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutCategoryInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutCategoryInput[] + createMany?: Prisma.ProductInfoCreateManyCategoryInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutCategoryInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutCategoryInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutCategoryInput | Prisma.ProductInfoUpdateManyWithWhereWithoutCategoryInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoUncheckedUpdateManyWithoutCategoryNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutCategoryInput[] | Prisma.ProductInfoUncheckedCreateWithoutCategoryInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutCategoryInput | Prisma.ProductInfoCreateOrConnectWithoutCategoryInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutCategoryInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutCategoryInput[] + createMany?: Prisma.ProductInfoCreateManyCategoryInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutCategoryInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutCategoryInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutCategoryInput | Prisma.ProductInfoUpdateManyWithWhereWithoutCategoryInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoCreateNestedManyWithoutVendorInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutVendorInput[] | Prisma.ProductInfoUncheckedCreateWithoutVendorInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutVendorInput | Prisma.ProductInfoCreateOrConnectWithoutVendorInput[] + createMany?: Prisma.ProductInfoCreateManyVendorInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUncheckedCreateNestedManyWithoutVendorInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutVendorInput[] | Prisma.ProductInfoUncheckedCreateWithoutVendorInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutVendorInput | Prisma.ProductInfoCreateOrConnectWithoutVendorInput[] + createMany?: Prisma.ProductInfoCreateManyVendorInputEnvelope + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] +} + +export type ProductInfoUpdateManyWithoutVendorNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutVendorInput[] | Prisma.ProductInfoUncheckedCreateWithoutVendorInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutVendorInput | Prisma.ProductInfoCreateOrConnectWithoutVendorInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutVendorInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutVendorInput[] + createMany?: Prisma.ProductInfoCreateManyVendorInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutVendorInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutVendorInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutVendorInput | Prisma.ProductInfoUpdateManyWithWhereWithoutVendorInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoUncheckedUpdateManyWithoutVendorNestedInput = { + create?: Prisma.XOR | Prisma.ProductInfoCreateWithoutVendorInput[] | Prisma.ProductInfoUncheckedCreateWithoutVendorInput[] + connectOrCreate?: Prisma.ProductInfoCreateOrConnectWithoutVendorInput | Prisma.ProductInfoCreateOrConnectWithoutVendorInput[] + upsert?: Prisma.ProductInfoUpsertWithWhereUniqueWithoutVendorInput | Prisma.ProductInfoUpsertWithWhereUniqueWithoutVendorInput[] + createMany?: Prisma.ProductInfoCreateManyVendorInputEnvelope + set?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + disconnect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + delete?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + connect?: Prisma.ProductInfoWhereUniqueInput | Prisma.ProductInfoWhereUniqueInput[] + update?: Prisma.ProductInfoUpdateWithWhereUniqueWithoutVendorInput | Prisma.ProductInfoUpdateWithWhereUniqueWithoutVendorInput[] + updateMany?: Prisma.ProductInfoUpdateManyWithWhereWithoutVendorInput | Prisma.ProductInfoUpdateManyWithWhereWithoutVendorInput[] + deleteMany?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] +} + +export type ProductInfoCreateWithoutProductsInput = { + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brand?: Prisma.ProductBrandCreateNestedOneWithoutProductInfoInput + category?: Prisma.ProductCategoryCreateNestedOneWithoutProductInfoInput + vendor: Prisma.VendorCreateNestedOneWithoutProductInfoInput +} + +export type ProductInfoUncheckedCreateWithoutProductsInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + categoryId?: number | null + vendorId: number +} + +export type ProductInfoCreateOrConnectWithoutProductsInput = { + where: Prisma.ProductInfoWhereUniqueInput + create: Prisma.XOR +} + +export type ProductInfoUpsertWithoutProductsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.ProductInfoWhereInput +} + +export type ProductInfoUpdateToOneWithWhereWithoutProductsInput = { + where?: Prisma.ProductInfoWhereInput + data: Prisma.XOR +} + +export type ProductInfoUpdateWithoutProductsInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brand?: Prisma.ProductBrandUpdateOneWithoutProductInfoNestedInput + category?: Prisma.ProductCategoryUpdateOneWithoutProductInfoNestedInput + vendor?: Prisma.VendorUpdateOneRequiredWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateWithoutProductsInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductInfoCreateWithoutBrandInput = { + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + products?: Prisma.ProductCreateNestedManyWithoutProductInfoInput + category?: Prisma.ProductCategoryCreateNestedOneWithoutProductInfoInput + vendor: Prisma.VendorCreateNestedOneWithoutProductInfoInput +} + +export type ProductInfoUncheckedCreateWithoutBrandInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + categoryId?: number | null + vendorId: number + products?: Prisma.ProductUncheckedCreateNestedManyWithoutProductInfoInput +} + +export type ProductInfoCreateOrConnectWithoutBrandInput = { + where: Prisma.ProductInfoWhereUniqueInput + create: Prisma.XOR +} + +export type ProductInfoCreateManyBrandInputEnvelope = { + data: Prisma.ProductInfoCreateManyBrandInput | Prisma.ProductInfoCreateManyBrandInput[] + skipDuplicates?: boolean +} + +export type ProductInfoUpsertWithWhereUniqueWithoutBrandInput = { + where: Prisma.ProductInfoWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ProductInfoUpdateWithWhereUniqueWithoutBrandInput = { + where: Prisma.ProductInfoWhereUniqueInput + data: Prisma.XOR +} + +export type ProductInfoUpdateManyWithWhereWithoutBrandInput = { + where: Prisma.ProductInfoScalarWhereInput + data: Prisma.XOR +} + +export type ProductInfoScalarWhereInput = { + AND?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] + OR?: Prisma.ProductInfoScalarWhereInput[] + NOT?: Prisma.ProductInfoScalarWhereInput | Prisma.ProductInfoScalarWhereInput[] + id?: Prisma.IntFilter<"ProductInfo"> | number + name?: Prisma.StringFilter<"ProductInfo"> | string + description?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + productType?: Prisma.StringNullableFilter<"ProductInfo"> | string | null + metaData?: Prisma.JsonNullableFilter<"ProductInfo"> + createdAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"ProductInfo"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"ProductInfo"> | Date | string | null + brandId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + categoryId?: Prisma.IntNullableFilter<"ProductInfo"> | number | null + vendorId?: Prisma.IntFilter<"ProductInfo"> | number +} + +export type ProductInfoCreateWithoutCategoryInput = { + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + products?: Prisma.ProductCreateNestedManyWithoutProductInfoInput + brand?: Prisma.ProductBrandCreateNestedOneWithoutProductInfoInput + vendor: Prisma.VendorCreateNestedOneWithoutProductInfoInput +} + +export type ProductInfoUncheckedCreateWithoutCategoryInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + vendorId: number + products?: Prisma.ProductUncheckedCreateNestedManyWithoutProductInfoInput +} + +export type ProductInfoCreateOrConnectWithoutCategoryInput = { + where: Prisma.ProductInfoWhereUniqueInput + create: Prisma.XOR +} + +export type ProductInfoCreateManyCategoryInputEnvelope = { + data: Prisma.ProductInfoCreateManyCategoryInput | Prisma.ProductInfoCreateManyCategoryInput[] + skipDuplicates?: boolean +} + +export type ProductInfoUpsertWithWhereUniqueWithoutCategoryInput = { + where: Prisma.ProductInfoWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ProductInfoUpdateWithWhereUniqueWithoutCategoryInput = { + where: Prisma.ProductInfoWhereUniqueInput + data: Prisma.XOR +} + +export type ProductInfoUpdateManyWithWhereWithoutCategoryInput = { + where: Prisma.ProductInfoScalarWhereInput + data: Prisma.XOR +} + +export type ProductInfoCreateWithoutVendorInput = { + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + products?: Prisma.ProductCreateNestedManyWithoutProductInfoInput + brand?: Prisma.ProductBrandCreateNestedOneWithoutProductInfoInput + category?: Prisma.ProductCategoryCreateNestedOneWithoutProductInfoInput +} + +export type ProductInfoUncheckedCreateWithoutVendorInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + categoryId?: number | null + products?: Prisma.ProductUncheckedCreateNestedManyWithoutProductInfoInput +} + +export type ProductInfoCreateOrConnectWithoutVendorInput = { + where: Prisma.ProductInfoWhereUniqueInput + create: Prisma.XOR +} + +export type ProductInfoCreateManyVendorInputEnvelope = { + data: Prisma.ProductInfoCreateManyVendorInput | Prisma.ProductInfoCreateManyVendorInput[] + skipDuplicates?: boolean +} + +export type ProductInfoUpsertWithWhereUniqueWithoutVendorInput = { + where: Prisma.ProductInfoWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type ProductInfoUpdateWithWhereUniqueWithoutVendorInput = { + where: Prisma.ProductInfoWhereUniqueInput + data: Prisma.XOR +} + +export type ProductInfoUpdateManyWithWhereWithoutVendorInput = { + where: Prisma.ProductInfoScalarWhereInput + data: Prisma.XOR +} + +export type ProductInfoCreateManyBrandInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + categoryId?: number | null + vendorId: number +} + +export type ProductInfoUpdateWithoutBrandInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + products?: Prisma.ProductUpdateManyWithoutProductInfoNestedInput + category?: Prisma.ProductCategoryUpdateOneWithoutProductInfoNestedInput + vendor?: Prisma.VendorUpdateOneRequiredWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateWithoutBrandInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number + products?: Prisma.ProductUncheckedUpdateManyWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateManyWithoutBrandInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductInfoCreateManyCategoryInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + vendorId: number +} + +export type ProductInfoUpdateWithoutCategoryInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + products?: Prisma.ProductUpdateManyWithoutProductInfoNestedInput + brand?: Prisma.ProductBrandUpdateOneWithoutProductInfoNestedInput + vendor?: Prisma.VendorUpdateOneRequiredWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateWithoutCategoryInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number + products?: Prisma.ProductUncheckedUpdateManyWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateManyWithoutCategoryInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + vendorId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type ProductInfoCreateManyVendorInput = { + id?: number + name: string + description?: string | null + productType?: string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + brandId?: number | null + categoryId?: number | null +} + +export type ProductInfoUpdateWithoutVendorInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + products?: Prisma.ProductUpdateManyWithoutProductInfoNestedInput + brand?: Prisma.ProductBrandUpdateOneWithoutProductInfoNestedInput + category?: Prisma.ProductCategoryUpdateOneWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateWithoutVendorInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + products?: Prisma.ProductUncheckedUpdateManyWithoutProductInfoNestedInput +} + +export type ProductInfoUncheckedUpdateManyWithoutVendorInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + productType?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + metaData?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + brandId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + categoryId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null +} + + +/** + * Count Type ProductInfoCountOutputType + */ + +export type ProductInfoCountOutputType = { + products: number +} + +export type ProductInfoCountOutputTypeSelect = { + products?: boolean | ProductInfoCountOutputTypeCountProductsArgs +} + +/** + * ProductInfoCountOutputType without action + */ +export type ProductInfoCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the ProductInfoCountOutputType + */ + select?: Prisma.ProductInfoCountOutputTypeSelect | null +} + +/** + * ProductInfoCountOutputType without action + */ +export type ProductInfoCountOutputTypeCountProductsArgs = { + where?: Prisma.ProductWhereInput +} + + +export type ProductInfoSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + productType?: boolean + metaData?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + brandId?: boolean + categoryId?: boolean + vendorId?: boolean + products?: boolean | Prisma.ProductInfo$productsArgs + brand?: boolean | Prisma.ProductInfo$brandArgs + category?: boolean | Prisma.ProductInfo$categoryArgs + vendor?: boolean | Prisma.VendorDefaultArgs + _count?: boolean | Prisma.ProductInfoCountOutputTypeDefaultArgs +}, ExtArgs["result"]["productInfo"]> + + + +export type ProductInfoSelectScalar = { + id?: boolean + name?: boolean + description?: boolean + productType?: boolean + metaData?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + brandId?: boolean + categoryId?: boolean + vendorId?: boolean +} + +export type ProductInfoOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "productType" | "metaData" | "createdAt" | "updatedAt" | "deletedAt" | "brandId" | "categoryId" | "vendorId", ExtArgs["result"]["productInfo"]> +export type ProductInfoInclude = { + products?: boolean | Prisma.ProductInfo$productsArgs + brand?: boolean | Prisma.ProductInfo$brandArgs + category?: boolean | Prisma.ProductInfo$categoryArgs + vendor?: boolean | Prisma.VendorDefaultArgs + _count?: boolean | Prisma.ProductInfoCountOutputTypeDefaultArgs +} + +export type $ProductInfoPayload = { + name: "ProductInfo" + objects: { + products: Prisma.$ProductPayload[] + brand: Prisma.$ProductBrandPayload | null + category: Prisma.$ProductCategoryPayload | null + vendor: Prisma.$VendorPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string | null + productType: string | null + metaData: runtime.JsonValue | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + brandId: number | null + categoryId: number | null + vendorId: number + }, ExtArgs["result"]["productInfo"]> + composites: {} +} + +export type ProductInfoGetPayload = runtime.Types.Result.GetResult + +export type ProductInfoCountArgs = + Omit & { + select?: ProductInfoCountAggregateInputType | true + } + +export interface ProductInfoDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ProductInfo'], meta: { name: 'ProductInfo' } } + /** + * Find zero or one ProductInfo that matches the filter. + * @param {ProductInfoFindUniqueArgs} args - Arguments to find a ProductInfo + * @example + * // Get one ProductInfo + * const productInfo = await prisma.productInfo.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one ProductInfo that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ProductInfoFindUniqueOrThrowArgs} args - Arguments to find a ProductInfo + * @example + * // Get one ProductInfo + * const productInfo = await prisma.productInfo.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductInfo that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoFindFirstArgs} args - Arguments to find a ProductInfo + * @example + * // Get one ProductInfo + * const productInfo = await prisma.productInfo.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first ProductInfo that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoFindFirstOrThrowArgs} args - Arguments to find a ProductInfo + * @example + * // Get one ProductInfo + * const productInfo = await prisma.productInfo.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more ProductInfos that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ProductInfos + * const productInfos = await prisma.productInfo.findMany() + * + * // Get first 10 ProductInfos + * const productInfos = await prisma.productInfo.findMany({ take: 10 }) + * + * // Only select the `id` + * const productInfoWithIdOnly = await prisma.productInfo.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a ProductInfo. + * @param {ProductInfoCreateArgs} args - Arguments to create a ProductInfo. + * @example + * // Create one ProductInfo + * const ProductInfo = await prisma.productInfo.create({ + * data: { + * // ... data to create a ProductInfo + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many ProductInfos. + * @param {ProductInfoCreateManyArgs} args - Arguments to create many ProductInfos. + * @example + * // Create many ProductInfos + * const productInfo = await prisma.productInfo.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a ProductInfo. + * @param {ProductInfoDeleteArgs} args - Arguments to delete one ProductInfo. + * @example + * // Delete one ProductInfo + * const ProductInfo = await prisma.productInfo.delete({ + * where: { + * // ... filter to delete one ProductInfo + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one ProductInfo. + * @param {ProductInfoUpdateArgs} args - Arguments to update one ProductInfo. + * @example + * // Update one ProductInfo + * const productInfo = await prisma.productInfo.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more ProductInfos. + * @param {ProductInfoDeleteManyArgs} args - Arguments to filter ProductInfos to delete. + * @example + * // Delete a few ProductInfos + * const { count } = await prisma.productInfo.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ProductInfos. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ProductInfos + * const productInfo = await prisma.productInfo.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ProductInfo. + * @param {ProductInfoUpsertArgs} args - Arguments to update or create a ProductInfo. + * @example + * // Update or create a ProductInfo + * const productInfo = await prisma.productInfo.upsert({ + * create: { + * // ... data to create a ProductInfo + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ProductInfo we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ProductInfoClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of ProductInfos. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoCountArgs} args - Arguments to filter ProductInfos to count. + * @example + * // Count the number of ProductInfos + * const count = await prisma.productInfo.count({ + * where: { + * // ... the filter for the ProductInfos we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ProductInfo. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by ProductInfo. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ProductInfoGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ProductInfoGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ProductInfoGroupByArgs['orderBy'] } + : { orderBy?: ProductInfoGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetProductInfoGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the ProductInfo model + */ +readonly fields: ProductInfoFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for ProductInfo. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__ProductInfoClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + products = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + brand = {}>(args?: Prisma.Subset>): Prisma.Prisma__ProductBrandClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + category = {}>(args?: Prisma.Subset>): Prisma.Prisma__ProductCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + vendor = {}>(args?: Prisma.Subset>): Prisma.Prisma__VendorClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the ProductInfo model + */ +export interface ProductInfoFieldRefs { + readonly id: Prisma.FieldRef<"ProductInfo", 'Int'> + readonly name: Prisma.FieldRef<"ProductInfo", 'String'> + readonly description: Prisma.FieldRef<"ProductInfo", 'String'> + readonly productType: Prisma.FieldRef<"ProductInfo", 'String'> + readonly metaData: Prisma.FieldRef<"ProductInfo", 'Json'> + readonly createdAt: Prisma.FieldRef<"ProductInfo", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"ProductInfo", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"ProductInfo", 'DateTime'> + readonly brandId: Prisma.FieldRef<"ProductInfo", 'Int'> + readonly categoryId: Prisma.FieldRef<"ProductInfo", 'Int'> + readonly vendorId: Prisma.FieldRef<"ProductInfo", 'Int'> +} + + +// Custom InputTypes +/** + * ProductInfo findUnique + */ +export type ProductInfoFindUniqueArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter, which ProductInfo to fetch. + */ + where: Prisma.ProductInfoWhereUniqueInput +} + +/** + * ProductInfo findUniqueOrThrow + */ +export type ProductInfoFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter, which ProductInfo to fetch. + */ + where: Prisma.ProductInfoWhereUniqueInput +} + +/** + * ProductInfo findFirst + */ +export type ProductInfoFindFirstArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter, which ProductInfo to fetch. + */ + where?: Prisma.ProductInfoWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductInfos to fetch. + */ + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductInfos. + */ + cursor?: Prisma.ProductInfoWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductInfos from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductInfos. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductInfos. + */ + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * ProductInfo findFirstOrThrow + */ +export type ProductInfoFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter, which ProductInfo to fetch. + */ + where?: Prisma.ProductInfoWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductInfos to fetch. + */ + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ProductInfos. + */ + cursor?: Prisma.ProductInfoWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductInfos from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductInfos. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ProductInfos. + */ + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * ProductInfo findMany + */ +export type ProductInfoFindManyArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter, which ProductInfos to fetch. + */ + where?: Prisma.ProductInfoWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ProductInfos to fetch. + */ + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ProductInfos. + */ + cursor?: Prisma.ProductInfoWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ProductInfos from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ProductInfos. + */ + skip?: number + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * ProductInfo create + */ +export type ProductInfoCreateArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * The data needed to create a ProductInfo. + */ + data: Prisma.XOR +} + +/** + * ProductInfo createMany + */ +export type ProductInfoCreateManyArgs = { + /** + * The data used to create many ProductInfos. + */ + data: Prisma.ProductInfoCreateManyInput | Prisma.ProductInfoCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * ProductInfo update + */ +export type ProductInfoUpdateArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * The data needed to update a ProductInfo. + */ + data: Prisma.XOR + /** + * Choose, which ProductInfo to update. + */ + where: Prisma.ProductInfoWhereUniqueInput +} + +/** + * ProductInfo updateMany + */ +export type ProductInfoUpdateManyArgs = { + /** + * The data used to update ProductInfos. + */ + data: Prisma.XOR + /** + * Filter which ProductInfos to update + */ + where?: Prisma.ProductInfoWhereInput + /** + * Limit how many ProductInfos to update. + */ + limit?: number +} + +/** + * ProductInfo upsert + */ +export type ProductInfoUpsertArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * The filter to search for the ProductInfo to update in case it exists. + */ + where: Prisma.ProductInfoWhereUniqueInput + /** + * In case the ProductInfo found by the `where` argument doesn't exist, create a new ProductInfo with this data. + */ + create: Prisma.XOR + /** + * In case the ProductInfo was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * ProductInfo delete + */ +export type ProductInfoDeleteArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + /** + * Filter which ProductInfo to delete. + */ + where: Prisma.ProductInfoWhereUniqueInput +} + +/** + * ProductInfo deleteMany + */ +export type ProductInfoDeleteManyArgs = { + /** + * Filter which ProductInfos to delete + */ + where?: Prisma.ProductInfoWhereInput + /** + * Limit how many ProductInfos to delete. + */ + limit?: number +} + +/** + * ProductInfo.products + */ +export type ProductInfo$productsArgs = { + /** + * Select specific fields to fetch from the Product + */ + select?: Prisma.ProductSelect | null + /** + * Omit specific fields from the Product + */ + omit?: Prisma.ProductOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInclude | null + where?: Prisma.ProductWhereInput + orderBy?: Prisma.ProductOrderByWithRelationInput | Prisma.ProductOrderByWithRelationInput[] + cursor?: Prisma.ProductWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ProductScalarFieldEnum | Prisma.ProductScalarFieldEnum[] +} + +/** + * ProductInfo.brand + */ +export type ProductInfo$brandArgs = { + /** + * Select specific fields to fetch from the ProductBrand + */ + select?: Prisma.ProductBrandSelect | null + /** + * Omit specific fields from the ProductBrand + */ + omit?: Prisma.ProductBrandOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductBrandInclude | null + where?: Prisma.ProductBrandWhereInput +} + +/** + * ProductInfo.category + */ +export type ProductInfo$categoryArgs = { + /** + * Select specific fields to fetch from the ProductCategory + */ + select?: Prisma.ProductCategorySelect | null + /** + * Omit specific fields from the ProductCategory + */ + omit?: Prisma.ProductCategoryOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductCategoryInclude | null + where?: Prisma.ProductCategoryWhereInput +} + +/** + * ProductInfo without action + */ +export type ProductInfoDefaultArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null +} diff --git a/src/generated/prisma/models/Role.ts b/src/generated/prisma/models/Role.ts new file mode 100644 index 0000000..be3c7ec --- /dev/null +++ b/src/generated/prisma/models/Role.ts @@ -0,0 +1,1319 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Role` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Role + * + */ +export type RoleModel = runtime.Types.Result.DefaultSelection + +export type AggregateRole = { + _count: RoleCountAggregateOutputType | null + _avg: RoleAvgAggregateOutputType | null + _sum: RoleSumAggregateOutputType | null + _min: RoleMinAggregateOutputType | null + _max: RoleMaxAggregateOutputType | null +} + +export type RoleAvgAggregateOutputType = { + id: number | null +} + +export type RoleSumAggregateOutputType = { + id: number | null +} + +export type RoleMinAggregateOutputType = { + id: number | null + name: string | null + description: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type RoleMaxAggregateOutputType = { + id: number | null + name: string | null + description: string | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type RoleCountAggregateOutputType = { + id: number + name: number + description: number + permissions: number + createdAt: number + updatedAt: number + deletedAt: number + _all: number +} + + +export type RoleAvgAggregateInputType = { + id?: true +} + +export type RoleSumAggregateInputType = { + id?: true +} + +export type RoleMinAggregateInputType = { + id?: true + name?: true + description?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type RoleMaxAggregateInputType = { + id?: true + name?: true + description?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type RoleCountAggregateInputType = { + id?: true + name?: true + description?: true + permissions?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + _all?: true +} + +export type RoleAggregateArgs = { + /** + * Filter which Role to aggregate. + */ + where?: Prisma.RoleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Roles to fetch. + */ + orderBy?: Prisma.RoleOrderByWithRelationInput | Prisma.RoleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.RoleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Roles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Roles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Roles + **/ + _count?: true | RoleCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: RoleAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: RoleSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: RoleMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: RoleMaxAggregateInputType +} + +export type GetRoleAggregateType = { + [P in keyof T & keyof AggregateRole]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type RoleGroupByArgs = { + where?: Prisma.RoleWhereInput + orderBy?: Prisma.RoleOrderByWithAggregationInput | Prisma.RoleOrderByWithAggregationInput[] + by: Prisma.RoleScalarFieldEnum[] | Prisma.RoleScalarFieldEnum + having?: Prisma.RoleScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: RoleCountAggregateInputType | true + _avg?: RoleAvgAggregateInputType + _sum?: RoleSumAggregateInputType + _min?: RoleMinAggregateInputType + _max?: RoleMaxAggregateInputType +} + +export type RoleGroupByOutputType = { + id: number + name: string + description: string | null + permissions: runtime.JsonValue | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + _count: RoleCountAggregateOutputType | null + _avg: RoleAvgAggregateOutputType | null + _sum: RoleSumAggregateOutputType | null + _min: RoleMinAggregateOutputType | null + _max: RoleMaxAggregateOutputType | null +} + +type GetRoleGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof RoleGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type RoleWhereInput = { + AND?: Prisma.RoleWhereInput | Prisma.RoleWhereInput[] + OR?: Prisma.RoleWhereInput[] + NOT?: Prisma.RoleWhereInput | Prisma.RoleWhereInput[] + id?: Prisma.IntFilter<"Role"> | number + name?: Prisma.StringFilter<"Role"> | string + description?: Prisma.StringNullableFilter<"Role"> | string | null + permissions?: Prisma.JsonNullableFilter<"Role"> + createdAt?: Prisma.DateTimeFilter<"Role"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Role"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"Role"> | Date | string | null + users?: Prisma.UserListRelationFilter +} + +export type RoleOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + permissions?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + users?: Prisma.UserOrderByRelationAggregateInput + _relevance?: Prisma.RoleOrderByRelevanceInput +} + +export type RoleWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.RoleWhereInput | Prisma.RoleWhereInput[] + OR?: Prisma.RoleWhereInput[] + NOT?: Prisma.RoleWhereInput | Prisma.RoleWhereInput[] + name?: Prisma.StringFilter<"Role"> | string + description?: Prisma.StringNullableFilter<"Role"> | string | null + permissions?: Prisma.JsonNullableFilter<"Role"> + createdAt?: Prisma.DateTimeFilter<"Role"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Role"> | Date | string + deletedAt?: Prisma.DateTimeNullableFilter<"Role"> | Date | string | null + users?: Prisma.UserListRelationFilter +}, "id"> + +export type RoleOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + permissions?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.RoleCountOrderByAggregateInput + _avg?: Prisma.RoleAvgOrderByAggregateInput + _max?: Prisma.RoleMaxOrderByAggregateInput + _min?: Prisma.RoleMinOrderByAggregateInput + _sum?: Prisma.RoleSumOrderByAggregateInput +} + +export type RoleScalarWhereWithAggregatesInput = { + AND?: Prisma.RoleScalarWhereWithAggregatesInput | Prisma.RoleScalarWhereWithAggregatesInput[] + OR?: Prisma.RoleScalarWhereWithAggregatesInput[] + NOT?: Prisma.RoleScalarWhereWithAggregatesInput | Prisma.RoleScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Role"> | number + name?: Prisma.StringWithAggregatesFilter<"Role"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"Role"> | string | null + permissions?: Prisma.JsonNullableWithAggregatesFilter<"Role"> + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Role"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Role"> | Date | string + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Role"> | Date | string | null +} + +export type RoleCreateInput = { + name: string + description?: string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + users?: Prisma.UserCreateNestedManyWithoutRoleInput +} + +export type RoleUncheckedCreateInput = { + id?: number + name: string + description?: string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null + users?: Prisma.UserUncheckedCreateNestedManyWithoutRoleInput +} + +export type RoleUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + users?: Prisma.UserUpdateManyWithoutRoleNestedInput +} + +export type RoleUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + users?: Prisma.UserUncheckedUpdateManyWithoutRoleNestedInput +} + +export type RoleCreateManyInput = { + id?: number + name: string + description?: string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type RoleUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type RoleUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type RoleScalarRelationFilter = { + is?: Prisma.RoleWhereInput + isNot?: Prisma.RoleWhereInput +} + +export type RoleOrderByRelevanceInput = { + fields: Prisma.RoleOrderByRelevanceFieldEnum | Prisma.RoleOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type RoleCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + permissions?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type RoleAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type RoleMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type RoleMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + description?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type RoleSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type RoleCreateNestedOneWithoutUsersInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.RoleCreateOrConnectWithoutUsersInput + connect?: Prisma.RoleWhereUniqueInput +} + +export type RoleUpdateOneRequiredWithoutUsersNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.RoleCreateOrConnectWithoutUsersInput + upsert?: Prisma.RoleUpsertWithoutUsersInput + connect?: Prisma.RoleWhereUniqueInput + update?: Prisma.XOR, Prisma.RoleUncheckedUpdateWithoutUsersInput> +} + +export type NullableStringFieldUpdateOperationsInput = { + set?: string | null +} + +export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string +} + +export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null +} + +export type RoleCreateWithoutUsersInput = { + name: string + description?: string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type RoleUncheckedCreateWithoutUsersInput = { + id?: number + name: string + description?: string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Date | string + updatedAt?: Date | string + deletedAt?: Date | string | null +} + +export type RoleCreateOrConnectWithoutUsersInput = { + where: Prisma.RoleWhereUniqueInput + create: Prisma.XOR +} + +export type RoleUpsertWithoutUsersInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.RoleWhereInput +} + +export type RoleUpdateToOneWithWhereWithoutUsersInput = { + where?: Prisma.RoleWhereInput + data: Prisma.XOR +} + +export type RoleUpdateWithoutUsersInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type RoleUncheckedUpdateWithoutUsersInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + permissions?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + + +/** + * Count Type RoleCountOutputType + */ + +export type RoleCountOutputType = { + users: number +} + +export type RoleCountOutputTypeSelect = { + users?: boolean | RoleCountOutputTypeCountUsersArgs +} + +/** + * RoleCountOutputType without action + */ +export type RoleCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the RoleCountOutputType + */ + select?: Prisma.RoleCountOutputTypeSelect | null +} + +/** + * RoleCountOutputType without action + */ +export type RoleCountOutputTypeCountUsersArgs = { + where?: Prisma.UserWhereInput +} + + +export type RoleSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + description?: boolean + permissions?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + users?: boolean | Prisma.Role$usersArgs + _count?: boolean | Prisma.RoleCountOutputTypeDefaultArgs +}, ExtArgs["result"]["role"]> + + + +export type RoleSelectScalar = { + id?: boolean + name?: boolean + description?: boolean + permissions?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +} + +export type RoleOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "permissions" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["role"]> +export type RoleInclude = { + users?: boolean | Prisma.Role$usersArgs + _count?: boolean | Prisma.RoleCountOutputTypeDefaultArgs +} + +export type $RolePayload = { + name: "Role" + objects: { + users: Prisma.$UserPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + description: string | null + permissions: runtime.JsonValue | null + createdAt: Date + updatedAt: Date + deletedAt: Date | null + }, ExtArgs["result"]["role"]> + composites: {} +} + +export type RoleGetPayload = runtime.Types.Result.GetResult + +export type RoleCountArgs = + Omit & { + select?: RoleCountAggregateInputType | true + } + +export interface RoleDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Role'], meta: { name: 'Role' } } + /** + * Find zero or one Role that matches the filter. + * @param {RoleFindUniqueArgs} args - Arguments to find a Role + * @example + * // Get one Role + * const role = await prisma.role.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Role that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {RoleFindUniqueOrThrowArgs} args - Arguments to find a Role + * @example + * // Get one Role + * const role = await prisma.role.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Role that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleFindFirstArgs} args - Arguments to find a Role + * @example + * // Get one Role + * const role = await prisma.role.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Role that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleFindFirstOrThrowArgs} args - Arguments to find a Role + * @example + * // Get one Role + * const role = await prisma.role.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Roles that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Roles + * const roles = await prisma.role.findMany() + * + * // Get first 10 Roles + * const roles = await prisma.role.findMany({ take: 10 }) + * + * // Only select the `id` + * const roleWithIdOnly = await prisma.role.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Role. + * @param {RoleCreateArgs} args - Arguments to create a Role. + * @example + * // Create one Role + * const Role = await prisma.role.create({ + * data: { + * // ... data to create a Role + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Roles. + * @param {RoleCreateManyArgs} args - Arguments to create many Roles. + * @example + * // Create many Roles + * const role = await prisma.role.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Role. + * @param {RoleDeleteArgs} args - Arguments to delete one Role. + * @example + * // Delete one Role + * const Role = await prisma.role.delete({ + * where: { + * // ... filter to delete one Role + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Role. + * @param {RoleUpdateArgs} args - Arguments to update one Role. + * @example + * // Update one Role + * const role = await prisma.role.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Roles. + * @param {RoleDeleteManyArgs} args - Arguments to filter Roles to delete. + * @example + * // Delete a few Roles + * const { count } = await prisma.role.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Roles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Roles + * const role = await prisma.role.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Role. + * @param {RoleUpsertArgs} args - Arguments to update or create a Role. + * @example + * // Update or create a Role + * const role = await prisma.role.upsert({ + * create: { + * // ... data to create a Role + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Role we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__RoleClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Roles. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleCountArgs} args - Arguments to filter Roles to count. + * @example + * // Count the number of Roles + * const count = await prisma.role.count({ + * where: { + * // ... the filter for the Roles we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Role. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Role. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RoleGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends RoleGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: RoleGroupByArgs['orderBy'] } + : { orderBy?: RoleGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetRoleGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Role model + */ +readonly fields: RoleFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Role. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__RoleClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + users = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Role model + */ +export interface RoleFieldRefs { + readonly id: Prisma.FieldRef<"Role", 'Int'> + readonly name: Prisma.FieldRef<"Role", 'String'> + readonly description: Prisma.FieldRef<"Role", 'String'> + readonly permissions: Prisma.FieldRef<"Role", 'Json'> + readonly createdAt: Prisma.FieldRef<"Role", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Role", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"Role", 'DateTime'> +} + + +// Custom InputTypes +/** + * Role findUnique + */ +export type RoleFindUniqueArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter, which Role to fetch. + */ + where: Prisma.RoleWhereUniqueInput +} + +/** + * Role findUniqueOrThrow + */ +export type RoleFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter, which Role to fetch. + */ + where: Prisma.RoleWhereUniqueInput +} + +/** + * Role findFirst + */ +export type RoleFindFirstArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter, which Role to fetch. + */ + where?: Prisma.RoleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Roles to fetch. + */ + orderBy?: Prisma.RoleOrderByWithRelationInput | Prisma.RoleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Roles. + */ + cursor?: Prisma.RoleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Roles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Roles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Roles. + */ + distinct?: Prisma.RoleScalarFieldEnum | Prisma.RoleScalarFieldEnum[] +} + +/** + * Role findFirstOrThrow + */ +export type RoleFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter, which Role to fetch. + */ + where?: Prisma.RoleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Roles to fetch. + */ + orderBy?: Prisma.RoleOrderByWithRelationInput | Prisma.RoleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Roles. + */ + cursor?: Prisma.RoleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Roles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Roles. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Roles. + */ + distinct?: Prisma.RoleScalarFieldEnum | Prisma.RoleScalarFieldEnum[] +} + +/** + * Role findMany + */ +export type RoleFindManyArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter, which Roles to fetch. + */ + where?: Prisma.RoleWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Roles to fetch. + */ + orderBy?: Prisma.RoleOrderByWithRelationInput | Prisma.RoleOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Roles. + */ + cursor?: Prisma.RoleWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Roles from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Roles. + */ + skip?: number + distinct?: Prisma.RoleScalarFieldEnum | Prisma.RoleScalarFieldEnum[] +} + +/** + * Role create + */ +export type RoleCreateArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * The data needed to create a Role. + */ + data: Prisma.XOR +} + +/** + * Role createMany + */ +export type RoleCreateManyArgs = { + /** + * The data used to create many Roles. + */ + data: Prisma.RoleCreateManyInput | Prisma.RoleCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Role update + */ +export type RoleUpdateArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * The data needed to update a Role. + */ + data: Prisma.XOR + /** + * Choose, which Role to update. + */ + where: Prisma.RoleWhereUniqueInput +} + +/** + * Role updateMany + */ +export type RoleUpdateManyArgs = { + /** + * The data used to update Roles. + */ + data: Prisma.XOR + /** + * Filter which Roles to update + */ + where?: Prisma.RoleWhereInput + /** + * Limit how many Roles to update. + */ + limit?: number +} + +/** + * Role upsert + */ +export type RoleUpsertArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * The filter to search for the Role to update in case it exists. + */ + where: Prisma.RoleWhereUniqueInput + /** + * In case the Role found by the `where` argument doesn't exist, create a new Role with this data. + */ + create: Prisma.XOR + /** + * In case the Role was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Role delete + */ +export type RoleDeleteArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null + /** + * Filter which Role to delete. + */ + where: Prisma.RoleWhereUniqueInput +} + +/** + * Role deleteMany + */ +export type RoleDeleteManyArgs = { + /** + * Filter which Roles to delete + */ + where?: Prisma.RoleWhereInput + /** + * Limit how many Roles to delete. + */ + limit?: number +} + +/** + * Role.users + */ +export type Role$usersArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + where?: Prisma.UserWhereInput + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + cursor?: Prisma.UserWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * Role without action + */ +export type RoleDefaultArgs = { + /** + * Select specific fields to fetch from the Role + */ + select?: Prisma.RoleSelect | null + /** + * Omit specific fields from the Role + */ + omit?: Prisma.RoleOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RoleInclude | null +} diff --git a/src/generated/prisma/models/Store.ts b/src/generated/prisma/models/Store.ts new file mode 100644 index 0000000..7d2224a --- /dev/null +++ b/src/generated/prisma/models/Store.ts @@ -0,0 +1,1105 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Store` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Store + * + */ +export type StoreModel = runtime.Types.Result.DefaultSelection + +export type AggregateStore = { + _count: StoreCountAggregateOutputType | null + _avg: StoreAvgAggregateOutputType | null + _sum: StoreSumAggregateOutputType | null + _min: StoreMinAggregateOutputType | null + _max: StoreMaxAggregateOutputType | null +} + +export type StoreAvgAggregateOutputType = { + id: number | null +} + +export type StoreSumAggregateOutputType = { + id: number | null +} + +export type StoreMinAggregateOutputType = { + id: number | null + name: string | null + location: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type StoreMaxAggregateOutputType = { + id: number | null + name: string | null + location: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type StoreCountAggregateOutputType = { + id: number + name: number + location: number + isActive: number + createdAt: number + updatedAt: number + _all: number +} + + +export type StoreAvgAggregateInputType = { + id?: true +} + +export type StoreSumAggregateInputType = { + id?: true +} + +export type StoreMinAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true +} + +export type StoreMaxAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true +} + +export type StoreCountAggregateInputType = { + id?: true + name?: true + location?: true + isActive?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type StoreAggregateArgs = { + /** + * Filter which Store to aggregate. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Stores + **/ + _count?: true | StoreCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: StoreAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: StoreSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: StoreMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: StoreMaxAggregateInputType +} + +export type GetStoreAggregateType = { + [P in keyof T & keyof AggregateStore]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type StoreGroupByArgs = { + where?: Prisma.StoreWhereInput + orderBy?: Prisma.StoreOrderByWithAggregationInput | Prisma.StoreOrderByWithAggregationInput[] + by: Prisma.StoreScalarFieldEnum[] | Prisma.StoreScalarFieldEnum + having?: Prisma.StoreScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: StoreCountAggregateInputType | true + _avg?: StoreAvgAggregateInputType + _sum?: StoreSumAggregateInputType + _min?: StoreMinAggregateInputType + _max?: StoreMaxAggregateInputType +} + +export type StoreGroupByOutputType = { + id: number + name: string + location: string | null + isActive: boolean + createdAt: Date + updatedAt: Date + _count: StoreCountAggregateOutputType | null + _avg: StoreAvgAggregateOutputType | null + _sum: StoreSumAggregateOutputType | null + _min: StoreMinAggregateOutputType | null + _max: StoreMaxAggregateOutputType | null +} + +type GetStoreGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof StoreGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type StoreWhereInput = { + AND?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + OR?: Prisma.StoreWhereInput[] + NOT?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + id?: Prisma.IntFilter<"Store"> | number + name?: Prisma.StringFilter<"Store"> | string + location?: Prisma.StringNullableFilter<"Store"> | string | null + isActive?: Prisma.BoolFilter<"Store"> | boolean + createdAt?: Prisma.DateTimeFilter<"Store"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Store"> | Date | string +} + +export type StoreOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _relevance?: Prisma.StoreOrderByRelevanceInput +} + +export type StoreWhereUniqueInput = Prisma.AtLeast<{ + id?: number + AND?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + OR?: Prisma.StoreWhereInput[] + NOT?: Prisma.StoreWhereInput | Prisma.StoreWhereInput[] + name?: Prisma.StringFilter<"Store"> | string + location?: Prisma.StringNullableFilter<"Store"> | string | null + isActive?: Prisma.BoolFilter<"Store"> | boolean + createdAt?: Prisma.DateTimeFilter<"Store"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Store"> | Date | string +}, "id"> + +export type StoreOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.StoreCountOrderByAggregateInput + _avg?: Prisma.StoreAvgOrderByAggregateInput + _max?: Prisma.StoreMaxOrderByAggregateInput + _min?: Prisma.StoreMinOrderByAggregateInput + _sum?: Prisma.StoreSumOrderByAggregateInput +} + +export type StoreScalarWhereWithAggregatesInput = { + AND?: Prisma.StoreScalarWhereWithAggregatesInput | Prisma.StoreScalarWhereWithAggregatesInput[] + OR?: Prisma.StoreScalarWhereWithAggregatesInput[] + NOT?: Prisma.StoreScalarWhereWithAggregatesInput | Prisma.StoreScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Store"> | number + name?: Prisma.StringWithAggregatesFilter<"Store"> | string + location?: Prisma.StringNullableWithAggregatesFilter<"Store"> | string | null + isActive?: Prisma.BoolWithAggregatesFilter<"Store"> | boolean + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Store"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Store"> | Date | string +} + +export type StoreCreateInput = { + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type StoreUncheckedCreateInput = { + id?: number + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type StoreUpdateInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StoreUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StoreCreateManyInput = { + id?: number + name: string + location?: string | null + isActive?: boolean + createdAt: Date | string + updatedAt: Date | string +} + +export type StoreUpdateManyMutationInput = { + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StoreUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + name?: Prisma.StringFieldUpdateOperationsInput | string + location?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StoreOrderByRelevanceInput = { + fields: Prisma.StoreOrderByRelevanceFieldEnum | Prisma.StoreOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type StoreCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StoreAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type StoreMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StoreMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + location?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type StoreSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + + + +export type StoreSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + location?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["store"]> + + + +export type StoreSelectScalar = { + id?: boolean + name?: boolean + location?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type StoreOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "location" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["store"]> + +export type $StorePayload = { + name: "Store" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + name: string + location: string | null + isActive: boolean + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["store"]> + composites: {} +} + +export type StoreGetPayload = runtime.Types.Result.GetResult + +export type StoreCountArgs = + Omit & { + select?: StoreCountAggregateInputType | true + } + +export interface StoreDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Store'], meta: { name: 'Store' } } + /** + * Find zero or one Store that matches the filter. + * @param {StoreFindUniqueArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Store that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {StoreFindUniqueOrThrowArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Store that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreFindFirstArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Store that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreFindFirstOrThrowArgs} args - Arguments to find a Store + * @example + * // Get one Store + * const store = await prisma.store.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Stores that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Stores + * const stores = await prisma.store.findMany() + * + * // Get first 10 Stores + * const stores = await prisma.store.findMany({ take: 10 }) + * + * // Only select the `id` + * const storeWithIdOnly = await prisma.store.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Store. + * @param {StoreCreateArgs} args - Arguments to create a Store. + * @example + * // Create one Store + * const Store = await prisma.store.create({ + * data: { + * // ... data to create a Store + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Stores. + * @param {StoreCreateManyArgs} args - Arguments to create many Stores. + * @example + * // Create many Stores + * const store = await prisma.store.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Store. + * @param {StoreDeleteArgs} args - Arguments to delete one Store. + * @example + * // Delete one Store + * const Store = await prisma.store.delete({ + * where: { + * // ... filter to delete one Store + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Store. + * @param {StoreUpdateArgs} args - Arguments to update one Store. + * @example + * // Update one Store + * const store = await prisma.store.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Stores. + * @param {StoreDeleteManyArgs} args - Arguments to filter Stores to delete. + * @example + * // Delete a few Stores + * const { count } = await prisma.store.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Stores. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Stores + * const store = await prisma.store.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Store. + * @param {StoreUpsertArgs} args - Arguments to update or create a Store. + * @example + * // Update or create a Store + * const store = await prisma.store.upsert({ + * create: { + * // ... data to create a Store + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Store we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__StoreClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Stores. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreCountArgs} args - Arguments to filter Stores to count. + * @example + * // Count the number of Stores + * const count = await prisma.store.count({ + * where: { + * // ... the filter for the Stores we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Store. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Store. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StoreGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends StoreGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: StoreGroupByArgs['orderBy'] } + : { orderBy?: StoreGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetStoreGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Store model + */ +readonly fields: StoreFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Store. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__StoreClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Store model + */ +export interface StoreFieldRefs { + readonly id: Prisma.FieldRef<"Store", 'Int'> + readonly name: Prisma.FieldRef<"Store", 'String'> + readonly location: Prisma.FieldRef<"Store", 'String'> + readonly isActive: Prisma.FieldRef<"Store", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Store", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Store", 'DateTime'> +} + + +// Custom InputTypes +/** + * Store findUnique + */ +export type StoreFindUniqueArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter, which Store to fetch. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store findUniqueOrThrow + */ +export type StoreFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter, which Store to fetch. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store findFirst + */ +export type StoreFindFirstArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter, which Store to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stores. + */ + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store findFirstOrThrow + */ +export type StoreFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter, which Store to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stores. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stores. + */ + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store findMany + */ +export type StoreFindManyArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter, which Stores to fetch. + */ + where?: Prisma.StoreWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stores to fetch. + */ + orderBy?: Prisma.StoreOrderByWithRelationInput | Prisma.StoreOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Stores. + */ + cursor?: Prisma.StoreWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stores from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stores. + */ + skip?: number + distinct?: Prisma.StoreScalarFieldEnum | Prisma.StoreScalarFieldEnum[] +} + +/** + * Store create + */ +export type StoreCreateArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * The data needed to create a Store. + */ + data: Prisma.XOR +} + +/** + * Store createMany + */ +export type StoreCreateManyArgs = { + /** + * The data used to create many Stores. + */ + data: Prisma.StoreCreateManyInput | Prisma.StoreCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Store update + */ +export type StoreUpdateArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * The data needed to update a Store. + */ + data: Prisma.XOR + /** + * Choose, which Store to update. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store updateMany + */ +export type StoreUpdateManyArgs = { + /** + * The data used to update Stores. + */ + data: Prisma.XOR + /** + * Filter which Stores to update + */ + where?: Prisma.StoreWhereInput + /** + * Limit how many Stores to update. + */ + limit?: number +} + +/** + * Store upsert + */ +export type StoreUpsertArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * The filter to search for the Store to update in case it exists. + */ + where: Prisma.StoreWhereUniqueInput + /** + * In case the Store found by the `where` argument doesn't exist, create a new Store with this data. + */ + create: Prisma.XOR + /** + * In case the Store was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Store delete + */ +export type StoreDeleteArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null + /** + * Filter which Store to delete. + */ + where: Prisma.StoreWhereUniqueInput +} + +/** + * Store deleteMany + */ +export type StoreDeleteManyArgs = { + /** + * Filter which Stores to delete + */ + where?: Prisma.StoreWhereInput + /** + * Limit how many Stores to delete. + */ + limit?: number +} + +/** + * Store without action + */ +export type StoreDefaultArgs = { + /** + * Select specific fields to fetch from the Store + */ + select?: Prisma.StoreSelect | null + /** + * Omit specific fields from the Store + */ + omit?: Prisma.StoreOmit | null +} diff --git a/src/generated/prisma/models/User.ts b/src/generated/prisma/models/User.ts new file mode 100644 index 0000000..7885044 --- /dev/null +++ b/src/generated/prisma/models/User.ts @@ -0,0 +1,1308 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `User` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model User + * + */ +export type UserModel = runtime.Types.Result.DefaultSelection + +export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _avg: UserAvgAggregateOutputType | null + _sum: UserSumAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +export type UserAvgAggregateOutputType = { + id: number | null + roleId: number | null +} + +export type UserSumAggregateOutputType = { + id: number | null + roleId: number | null +} + +export type UserMinAggregateOutputType = { + id: number | null + mobileNumber: string | null + password: string | null + firstName: string | null + lastName: string | null + roleId: number | null +} + +export type UserMaxAggregateOutputType = { + id: number | null + mobileNumber: string | null + password: string | null + firstName: string | null + lastName: string | null + roleId: number | null +} + +export type UserCountAggregateOutputType = { + id: number + mobileNumber: number + password: number + firstName: number + lastName: number + roleId: number + _all: number +} + + +export type UserAvgAggregateInputType = { + id?: true + roleId?: true +} + +export type UserSumAggregateInputType = { + id?: true + roleId?: true +} + +export type UserMinAggregateInputType = { + id?: true + mobileNumber?: true + password?: true + firstName?: true + lastName?: true + roleId?: true +} + +export type UserMaxAggregateInputType = { + id?: true + mobileNumber?: true + password?: true + firstName?: true + lastName?: true + roleId?: true +} + +export type UserCountAggregateInputType = { + id?: true + mobileNumber?: true + password?: true + firstName?: true + lastName?: true + roleId?: true + _all?: true +} + +export type UserAggregateArgs = { + /** + * Filter which User to aggregate. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Users + **/ + _count?: true | UserCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: UserAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: UserSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMaxAggregateInputType +} + +export type GetUserAggregateType = { + [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type UserGroupByArgs = { + where?: Prisma.UserWhereInput + orderBy?: Prisma.UserOrderByWithAggregationInput | Prisma.UserOrderByWithAggregationInput[] + by: Prisma.UserScalarFieldEnum[] | Prisma.UserScalarFieldEnum + having?: Prisma.UserScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserCountAggregateInputType | true + _avg?: UserAvgAggregateInputType + _sum?: UserSumAggregateInputType + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType +} + +export type UserGroupByOutputType = { + id: number + mobileNumber: string + password: string + firstName: string + lastName: string + roleId: number + _count: UserCountAggregateOutputType | null + _avg: UserAvgAggregateOutputType | null + _sum: UserSumAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +type GetUserGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type UserWhereInput = { + AND?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + OR?: Prisma.UserWhereInput[] + NOT?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + id?: Prisma.IntFilter<"User"> | number + mobileNumber?: Prisma.StringFilter<"User"> | string + password?: Prisma.StringFilter<"User"> | string + firstName?: Prisma.StringFilter<"User"> | string + lastName?: Prisma.StringFilter<"User"> | string + roleId?: Prisma.IntFilter<"User"> | number + role?: Prisma.XOR +} + +export type UserOrderByWithRelationInput = { + id?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + password?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + roleId?: Prisma.SortOrder + role?: Prisma.RoleOrderByWithRelationInput + _relevance?: Prisma.UserOrderByRelevanceInput +} + +export type UserWhereUniqueInput = Prisma.AtLeast<{ + id?: number + mobileNumber?: string + AND?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + OR?: Prisma.UserWhereInput[] + NOT?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + password?: Prisma.StringFilter<"User"> | string + firstName?: Prisma.StringFilter<"User"> | string + lastName?: Prisma.StringFilter<"User"> | string + roleId?: Prisma.IntFilter<"User"> | number + role?: Prisma.XOR +}, "id" | "mobileNumber"> + +export type UserOrderByWithAggregationInput = { + id?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + password?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + roleId?: Prisma.SortOrder + _count?: Prisma.UserCountOrderByAggregateInput + _avg?: Prisma.UserAvgOrderByAggregateInput + _max?: Prisma.UserMaxOrderByAggregateInput + _min?: Prisma.UserMinOrderByAggregateInput + _sum?: Prisma.UserSumOrderByAggregateInput +} + +export type UserScalarWhereWithAggregatesInput = { + AND?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + OR?: Prisma.UserScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"User"> | number + mobileNumber?: Prisma.StringWithAggregatesFilter<"User"> | string + password?: Prisma.StringWithAggregatesFilter<"User"> | string + firstName?: Prisma.StringWithAggregatesFilter<"User"> | string + lastName?: Prisma.StringWithAggregatesFilter<"User"> | string + roleId?: Prisma.IntWithAggregatesFilter<"User"> | number +} + +export type UserCreateInput = { + mobileNumber: string + password: string + firstName: string + lastName: string + role: Prisma.RoleCreateNestedOneWithoutUsersInput +} + +export type UserUncheckedCreateInput = { + id?: number + mobileNumber: string + password: string + firstName: string + lastName: string + roleId: number +} + +export type UserUpdateInput = { + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.RoleUpdateOneRequiredWithoutUsersNestedInput +} + +export type UserUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + roleId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserCreateManyInput = { + id?: number + mobileNumber: string + password: string + firstName: string + lastName: string + roleId: number +} + +export type UserUpdateManyMutationInput = { + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + roleId?: Prisma.IntFieldUpdateOperationsInput | number +} + +export type UserOrderByRelevanceInput = { + fields: Prisma.UserOrderByRelevanceFieldEnum | Prisma.UserOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type UserCountOrderByAggregateInput = { + id?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + password?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + roleId?: Prisma.SortOrder +} + +export type UserAvgOrderByAggregateInput = { + id?: Prisma.SortOrder + roleId?: Prisma.SortOrder +} + +export type UserMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + password?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + roleId?: Prisma.SortOrder +} + +export type UserMinOrderByAggregateInput = { + id?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + password?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + roleId?: Prisma.SortOrder +} + +export type UserSumOrderByAggregateInput = { + id?: Prisma.SortOrder + roleId?: Prisma.SortOrder +} + +export type UserListRelationFilter = { + every?: Prisma.UserWhereInput + some?: Prisma.UserWhereInput + none?: Prisma.UserWhereInput +} + +export type UserOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type StringFieldUpdateOperationsInput = { + set?: string +} + +export type IntFieldUpdateOperationsInput = { + set?: number + increment?: number + decrement?: number + multiply?: number + divide?: number +} + +export type UserCreateNestedManyWithoutRoleInput = { + create?: Prisma.XOR | Prisma.UserCreateWithoutRoleInput[] | Prisma.UserUncheckedCreateWithoutRoleInput[] + connectOrCreate?: Prisma.UserCreateOrConnectWithoutRoleInput | Prisma.UserCreateOrConnectWithoutRoleInput[] + createMany?: Prisma.UserCreateManyRoleInputEnvelope + connect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] +} + +export type UserUncheckedCreateNestedManyWithoutRoleInput = { + create?: Prisma.XOR | Prisma.UserCreateWithoutRoleInput[] | Prisma.UserUncheckedCreateWithoutRoleInput[] + connectOrCreate?: Prisma.UserCreateOrConnectWithoutRoleInput | Prisma.UserCreateOrConnectWithoutRoleInput[] + createMany?: Prisma.UserCreateManyRoleInputEnvelope + connect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] +} + +export type UserUpdateManyWithoutRoleNestedInput = { + create?: Prisma.XOR | Prisma.UserCreateWithoutRoleInput[] | Prisma.UserUncheckedCreateWithoutRoleInput[] + connectOrCreate?: Prisma.UserCreateOrConnectWithoutRoleInput | Prisma.UserCreateOrConnectWithoutRoleInput[] + upsert?: Prisma.UserUpsertWithWhereUniqueWithoutRoleInput | Prisma.UserUpsertWithWhereUniqueWithoutRoleInput[] + createMany?: Prisma.UserCreateManyRoleInputEnvelope + set?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + disconnect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + delete?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + connect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + update?: Prisma.UserUpdateWithWhereUniqueWithoutRoleInput | Prisma.UserUpdateWithWhereUniqueWithoutRoleInput[] + updateMany?: Prisma.UserUpdateManyWithWhereWithoutRoleInput | Prisma.UserUpdateManyWithWhereWithoutRoleInput[] + deleteMany?: Prisma.UserScalarWhereInput | Prisma.UserScalarWhereInput[] +} + +export type UserUncheckedUpdateManyWithoutRoleNestedInput = { + create?: Prisma.XOR | Prisma.UserCreateWithoutRoleInput[] | Prisma.UserUncheckedCreateWithoutRoleInput[] + connectOrCreate?: Prisma.UserCreateOrConnectWithoutRoleInput | Prisma.UserCreateOrConnectWithoutRoleInput[] + upsert?: Prisma.UserUpsertWithWhereUniqueWithoutRoleInput | Prisma.UserUpsertWithWhereUniqueWithoutRoleInput[] + createMany?: Prisma.UserCreateManyRoleInputEnvelope + set?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + disconnect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + delete?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + connect?: Prisma.UserWhereUniqueInput | Prisma.UserWhereUniqueInput[] + update?: Prisma.UserUpdateWithWhereUniqueWithoutRoleInput | Prisma.UserUpdateWithWhereUniqueWithoutRoleInput[] + updateMany?: Prisma.UserUpdateManyWithWhereWithoutRoleInput | Prisma.UserUpdateManyWithWhereWithoutRoleInput[] + deleteMany?: Prisma.UserScalarWhereInput | Prisma.UserScalarWhereInput[] +} + +export type UserCreateWithoutRoleInput = { + mobileNumber: string + password: string + firstName: string + lastName: string +} + +export type UserUncheckedCreateWithoutRoleInput = { + id?: number + mobileNumber: string + password: string + firstName: string + lastName: string +} + +export type UserCreateOrConnectWithoutRoleInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserCreateManyRoleInputEnvelope = { + data: Prisma.UserCreateManyRoleInput | Prisma.UserCreateManyRoleInput[] + skipDuplicates?: boolean +} + +export type UserUpsertWithWhereUniqueWithoutRoleInput = { + where: Prisma.UserWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type UserUpdateWithWhereUniqueWithoutRoleInput = { + where: Prisma.UserWhereUniqueInput + data: Prisma.XOR +} + +export type UserUpdateManyWithWhereWithoutRoleInput = { + where: Prisma.UserScalarWhereInput + data: Prisma.XOR +} + +export type UserScalarWhereInput = { + AND?: Prisma.UserScalarWhereInput | Prisma.UserScalarWhereInput[] + OR?: Prisma.UserScalarWhereInput[] + NOT?: Prisma.UserScalarWhereInput | Prisma.UserScalarWhereInput[] + id?: Prisma.IntFilter<"User"> | number + mobileNumber?: Prisma.StringFilter<"User"> | string + password?: Prisma.StringFilter<"User"> | string + firstName?: Prisma.StringFilter<"User"> | string + lastName?: Prisma.StringFilter<"User"> | string + roleId?: Prisma.IntFilter<"User"> | number +} + +export type UserCreateManyRoleInput = { + id?: number + mobileNumber: string + password: string + firstName: string + lastName: string +} + +export type UserUpdateWithoutRoleInput = { + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserUncheckedUpdateWithoutRoleInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string +} + +export type UserUncheckedUpdateManyWithoutRoleInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string +} + + + +export type UserSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + mobileNumber?: boolean + password?: boolean + firstName?: boolean + lastName?: boolean + roleId?: boolean + role?: boolean | Prisma.RoleDefaultArgs +}, ExtArgs["result"]["user"]> + + + +export type UserSelectScalar = { + id?: boolean + mobileNumber?: boolean + password?: boolean + firstName?: boolean + lastName?: boolean + roleId?: boolean +} + +export type UserOmit = runtime.Types.Extensions.GetOmit<"id" | "mobileNumber" | "password" | "firstName" | "lastName" | "roleId", ExtArgs["result"]["user"]> +export type UserInclude = { + role?: boolean | Prisma.RoleDefaultArgs +} + +export type $UserPayload = { + name: "User" + objects: { + role: Prisma.$RolePayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + mobileNumber: string + password: string + firstName: string + lastName: string + roleId: number + }, ExtArgs["result"]["user"]> + composites: {} +} + +export type UserGetPayload = runtime.Types.Result.GetResult + +export type UserCountArgs = + Omit & { + select?: UserCountAggregateInputType | true + } + +export interface UserDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } + /** + * Find zero or one User that matches the filter. + * @param {UserFindUniqueArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one User that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first User that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Users that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Users + * const users = await prisma.user.findMany() + * + * // Get first 10 Users + * const users = await prisma.user.findMany({ take: 10 }) + * + * // Only select the `id` + * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a User. + * @param {UserCreateArgs} args - Arguments to create a User. + * @example + * // Create one User + * const User = await prisma.user.create({ + * data: { + * // ... data to create a User + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Users. + * @param {UserCreateManyArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a User. + * @param {UserDeleteArgs} args - Arguments to delete one User. + * @example + * // Delete one User + * const User = await prisma.user.delete({ + * where: { + * // ... filter to delete one User + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one User. + * @param {UserUpdateArgs} args - Arguments to update one User. + * @example + * // Update one User + * const user = await prisma.user.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Users. + * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. + * @example + * // Delete a few Users + * const { count } = await prisma.user.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Users + * const user = await prisma.user.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one User. + * @param {UserUpsertArgs} args - Arguments to update or create a User. + * @example + * // Update or create a User + * const user = await prisma.user.upsert({ + * create: { + * // ... data to create a User + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the User we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__UserClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserCountArgs} args - Arguments to filter Users to count. + * @example + * // Count the number of Users + * const count = await prisma.user.count({ + * where: { + * // ... the filter for the Users we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: UserGroupByArgs['orderBy'] } + : { orderBy?: UserGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the User model + */ +readonly fields: UserFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for User. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__UserClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + role = {}>(args?: Prisma.Subset>): Prisma.Prisma__RoleClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the User model + */ +export interface UserFieldRefs { + readonly id: Prisma.FieldRef<"User", 'Int'> + readonly mobileNumber: Prisma.FieldRef<"User", 'String'> + readonly password: Prisma.FieldRef<"User", 'String'> + readonly firstName: Prisma.FieldRef<"User", 'String'> + readonly lastName: Prisma.FieldRef<"User", 'String'> + readonly roleId: Prisma.FieldRef<"User", 'Int'> +} + + +// Custom InputTypes +/** + * User findUnique + */ +export type UserFindUniqueArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter, which User to fetch. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User findUniqueOrThrow + */ +export type UserFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter, which User to fetch. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User findFirst + */ +export type UserFindFirstArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User findFirstOrThrow + */ +export type UserFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User findMany + */ +export type UserFindManyArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter, which Users to fetch. + */ + where?: Prisma.UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: Prisma.UserOrderByWithRelationInput | Prisma.UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Users. + */ + cursor?: Prisma.UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + distinct?: Prisma.UserScalarFieldEnum | Prisma.UserScalarFieldEnum[] +} + +/** + * User create + */ +export type UserCreateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * The data needed to create a User. + */ + data: Prisma.XOR +} + +/** + * User createMany + */ +export type UserCreateManyArgs = { + /** + * The data used to create many Users. + */ + data: Prisma.UserCreateManyInput | Prisma.UserCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * User update + */ +export type UserUpdateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * The data needed to update a User. + */ + data: Prisma.XOR + /** + * Choose, which User to update. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User updateMany + */ +export type UserUpdateManyArgs = { + /** + * The data used to update Users. + */ + data: Prisma.XOR + /** + * Filter which Users to update + */ + where?: Prisma.UserWhereInput + /** + * Limit how many Users to update. + */ + limit?: number +} + +/** + * User upsert + */ +export type UserUpsertArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * The filter to search for the User to update in case it exists. + */ + where: Prisma.UserWhereUniqueInput + /** + * In case the User found by the `where` argument doesn't exist, create a new User with this data. + */ + create: Prisma.XOR + /** + * In case the User was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * User delete + */ +export type UserDeleteArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null + /** + * Filter which User to delete. + */ + where: Prisma.UserWhereUniqueInput +} + +/** + * User deleteMany + */ +export type UserDeleteManyArgs = { + /** + * Filter which Users to delete + */ + where?: Prisma.UserWhereInput + /** + * Limit how many Users to delete. + */ + limit?: number +} + +/** + * User without action + */ +export type UserDefaultArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelect | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null +} diff --git a/src/generated/prisma/models/Vendor.ts b/src/generated/prisma/models/Vendor.ts new file mode 100644 index 0000000..ea51d6d --- /dev/null +++ b/src/generated/prisma/models/Vendor.ts @@ -0,0 +1,1493 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Vendor` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model Vendor + * + */ +export type VendorModel = runtime.Types.Result.DefaultSelection + +export type AggregateVendor = { + _count: VendorCountAggregateOutputType | null + _avg: VendorAvgAggregateOutputType | null + _sum: VendorSumAggregateOutputType | null + _min: VendorMinAggregateOutputType | null + _max: VendorMaxAggregateOutputType | null +} + +export type VendorAvgAggregateOutputType = { + id: number | null +} + +export type VendorSumAggregateOutputType = { + id: number | null +} + +export type VendorMinAggregateOutputType = { + id: number | null + firstName: string | null + lastName: string | null + email: string | null + mobileNumber: string | null + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type VendorMaxAggregateOutputType = { + id: number | null + firstName: string | null + lastName: string | null + email: string | null + mobileNumber: string | null + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean | null + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null +} + +export type VendorCountAggregateOutputType = { + id: number + firstName: number + lastName: number + email: number + mobileNumber: number + address: number + city: number + state: number + country: number + isActive: number + createdAt: number + updatedAt: number + deletedAt: number + _all: number +} + + +export type VendorAvgAggregateInputType = { + id?: true +} + +export type VendorSumAggregateInputType = { + id?: true +} + +export type VendorMinAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type VendorMaxAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true +} + +export type VendorCountAggregateInputType = { + id?: true + firstName?: true + lastName?: true + email?: true + mobileNumber?: true + address?: true + city?: true + state?: true + country?: true + isActive?: true + createdAt?: true + updatedAt?: true + deletedAt?: true + _all?: true +} + +export type VendorAggregateArgs = { + /** + * Filter which Vendor to aggregate. + */ + where?: Prisma.VendorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Vendors to fetch. + */ + orderBy?: Prisma.VendorOrderByWithRelationInput | Prisma.VendorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.VendorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Vendors from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Vendors. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Vendors + **/ + _count?: true | VendorCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: VendorAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: VendorSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: VendorMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: VendorMaxAggregateInputType +} + +export type GetVendorAggregateType = { + [P in keyof T & keyof AggregateVendor]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type VendorGroupByArgs = { + where?: Prisma.VendorWhereInput + orderBy?: Prisma.VendorOrderByWithAggregationInput | Prisma.VendorOrderByWithAggregationInput[] + by: Prisma.VendorScalarFieldEnum[] | Prisma.VendorScalarFieldEnum + having?: Prisma.VendorScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: VendorCountAggregateInputType | true + _avg?: VendorAvgAggregateInputType + _sum?: VendorSumAggregateInputType + _min?: VendorMinAggregateInputType + _max?: VendorMaxAggregateInputType +} + +export type VendorGroupByOutputType = { + id: number + firstName: string + lastName: string + email: string | null + mobileNumber: string + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + _count: VendorCountAggregateOutputType | null + _avg: VendorAvgAggregateOutputType | null + _sum: VendorSumAggregateOutputType | null + _min: VendorMinAggregateOutputType | null + _max: VendorMaxAggregateOutputType | null +} + +type GetVendorGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof VendorGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type VendorWhereInput = { + AND?: Prisma.VendorWhereInput | Prisma.VendorWhereInput[] + OR?: Prisma.VendorWhereInput[] + NOT?: Prisma.VendorWhereInput | Prisma.VendorWhereInput[] + id?: Prisma.IntFilter<"Vendor"> | number + firstName?: Prisma.StringFilter<"Vendor"> | string + lastName?: Prisma.StringFilter<"Vendor"> | string + email?: Prisma.StringNullableFilter<"Vendor"> | string | null + mobileNumber?: Prisma.StringFilter<"Vendor"> | string + address?: Prisma.StringNullableFilter<"Vendor"> | string | null + city?: Prisma.StringNullableFilter<"Vendor"> | string | null + state?: Prisma.StringNullableFilter<"Vendor"> | string | null + country?: Prisma.StringNullableFilter<"Vendor"> | string | null + isActive?: Prisma.BoolFilter<"Vendor"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +} + +export type VendorOrderByWithRelationInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + state?: Prisma.SortOrderInput | Prisma.SortOrder + country?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + productInfo?: Prisma.ProductInfoOrderByRelationAggregateInput + _relevance?: Prisma.VendorOrderByRelevanceInput +} + +export type VendorWhereUniqueInput = Prisma.AtLeast<{ + id?: number + mobileNumber?: string + AND?: Prisma.VendorWhereInput | Prisma.VendorWhereInput[] + OR?: Prisma.VendorWhereInput[] + NOT?: Prisma.VendorWhereInput | Prisma.VendorWhereInput[] + firstName?: Prisma.StringFilter<"Vendor"> | string + lastName?: Prisma.StringFilter<"Vendor"> | string + email?: Prisma.StringNullableFilter<"Vendor"> | string | null + address?: Prisma.StringNullableFilter<"Vendor"> | string | null + city?: Prisma.StringNullableFilter<"Vendor"> | string | null + state?: Prisma.StringNullableFilter<"Vendor"> | string | null + country?: Prisma.StringNullableFilter<"Vendor"> | string | null + isActive?: Prisma.BoolFilter<"Vendor"> | boolean + createdAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableFilter<"Vendor"> | Date | string | null + productInfo?: Prisma.ProductInfoListRelationFilter +}, "id" | "mobileNumber"> + +export type VendorOrderByWithAggregationInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrderInput | Prisma.SortOrder + city?: Prisma.SortOrderInput | Prisma.SortOrder + state?: Prisma.SortOrderInput | Prisma.SortOrder + country?: Prisma.SortOrderInput | Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrderInput | Prisma.SortOrder + updatedAt?: Prisma.SortOrderInput | Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.VendorCountOrderByAggregateInput + _avg?: Prisma.VendorAvgOrderByAggregateInput + _max?: Prisma.VendorMaxOrderByAggregateInput + _min?: Prisma.VendorMinOrderByAggregateInput + _sum?: Prisma.VendorSumOrderByAggregateInput +} + +export type VendorScalarWhereWithAggregatesInput = { + AND?: Prisma.VendorScalarWhereWithAggregatesInput | Prisma.VendorScalarWhereWithAggregatesInput[] + OR?: Prisma.VendorScalarWhereWithAggregatesInput[] + NOT?: Prisma.VendorScalarWhereWithAggregatesInput | Prisma.VendorScalarWhereWithAggregatesInput[] + id?: Prisma.IntWithAggregatesFilter<"Vendor"> | number + firstName?: Prisma.StringWithAggregatesFilter<"Vendor"> | string + lastName?: Prisma.StringWithAggregatesFilter<"Vendor"> | string + email?: Prisma.StringNullableWithAggregatesFilter<"Vendor"> | string | null + mobileNumber?: Prisma.StringWithAggregatesFilter<"Vendor"> | string + address?: Prisma.StringNullableWithAggregatesFilter<"Vendor"> | string | null + city?: Prisma.StringNullableWithAggregatesFilter<"Vendor"> | string | null + state?: Prisma.StringNullableWithAggregatesFilter<"Vendor"> | string | null + country?: Prisma.StringNullableWithAggregatesFilter<"Vendor"> | string | null + isActive?: Prisma.BoolWithAggregatesFilter<"Vendor"> | boolean + createdAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Vendor"> | Date | string | null + updatedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Vendor"> | Date | string | null + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Vendor"> | Date | string | null +} + +export type VendorCreateInput = { + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoCreateNestedManyWithoutVendorInput +} + +export type VendorUncheckedCreateInput = { + id?: number + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null + productInfo?: Prisma.ProductInfoUncheckedCreateNestedManyWithoutVendorInput +} + +export type VendorUpdateInput = { + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUpdateManyWithoutVendorNestedInput +} + +export type VendorUncheckedUpdateInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + productInfo?: Prisma.ProductInfoUncheckedUpdateManyWithoutVendorNestedInput +} + +export type VendorCreateManyInput = { + id?: number + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type VendorUpdateManyMutationInput = { + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type VendorUncheckedUpdateManyInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type VendorScalarRelationFilter = { + is?: Prisma.VendorWhereInput + isNot?: Prisma.VendorWhereInput +} + +export type VendorOrderByRelevanceInput = { + fields: Prisma.VendorOrderByRelevanceFieldEnum | Prisma.VendorOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type VendorCountOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type VendorAvgOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type VendorMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type VendorMinOrderByAggregateInput = { + id?: Prisma.SortOrder + firstName?: Prisma.SortOrder + lastName?: Prisma.SortOrder + email?: Prisma.SortOrder + mobileNumber?: Prisma.SortOrder + address?: Prisma.SortOrder + city?: Prisma.SortOrder + state?: Prisma.SortOrder + country?: Prisma.SortOrder + isActive?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder +} + +export type VendorSumOrderByAggregateInput = { + id?: Prisma.SortOrder +} + +export type VendorCreateNestedOneWithoutProductInfoInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.VendorCreateOrConnectWithoutProductInfoInput + connect?: Prisma.VendorWhereUniqueInput +} + +export type VendorUpdateOneRequiredWithoutProductInfoNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.VendorCreateOrConnectWithoutProductInfoInput + upsert?: Prisma.VendorUpsertWithoutProductInfoInput + connect?: Prisma.VendorWhereUniqueInput + update?: Prisma.XOR, Prisma.VendorUncheckedUpdateWithoutProductInfoInput> +} + +export type VendorCreateWithoutProductInfoInput = { + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type VendorUncheckedCreateWithoutProductInfoInput = { + id?: number + firstName: string + lastName: string + email?: string | null + mobileNumber: string + address?: string | null + city?: string | null + state?: string | null + country?: string | null + isActive?: boolean + createdAt?: Date | string | null + updatedAt?: Date | string | null + deletedAt?: Date | string | null +} + +export type VendorCreateOrConnectWithoutProductInfoInput = { + where: Prisma.VendorWhereUniqueInput + create: Prisma.XOR +} + +export type VendorUpsertWithoutProductInfoInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.VendorWhereInput +} + +export type VendorUpdateToOneWithWhereWithoutProductInfoInput = { + where?: Prisma.VendorWhereInput + data: Prisma.XOR +} + +export type VendorUpdateWithoutProductInfoInput = { + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + +export type VendorUncheckedUpdateWithoutProductInfoInput = { + id?: Prisma.IntFieldUpdateOperationsInput | number + firstName?: Prisma.StringFieldUpdateOperationsInput | string + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + mobileNumber?: Prisma.StringFieldUpdateOperationsInput | string + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + city?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + country?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isActive?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + updatedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null +} + + +/** + * Count Type VendorCountOutputType + */ + +export type VendorCountOutputType = { + productInfo: number +} + +export type VendorCountOutputTypeSelect = { + productInfo?: boolean | VendorCountOutputTypeCountProductInfoArgs +} + +/** + * VendorCountOutputType without action + */ +export type VendorCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the VendorCountOutputType + */ + select?: Prisma.VendorCountOutputTypeSelect | null +} + +/** + * VendorCountOutputType without action + */ +export type VendorCountOutputTypeCountProductInfoArgs = { + where?: Prisma.ProductInfoWhereInput +} + + +export type VendorSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + firstName?: boolean + lastName?: boolean + email?: boolean + mobileNumber?: boolean + address?: boolean + city?: boolean + state?: boolean + country?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean + productInfo?: boolean | Prisma.Vendor$productInfoArgs + _count?: boolean | Prisma.VendorCountOutputTypeDefaultArgs +}, ExtArgs["result"]["vendor"]> + + + +export type VendorSelectScalar = { + id?: boolean + firstName?: boolean + lastName?: boolean + email?: boolean + mobileNumber?: boolean + address?: boolean + city?: boolean + state?: boolean + country?: boolean + isActive?: boolean + createdAt?: boolean + updatedAt?: boolean + deletedAt?: boolean +} + +export type VendorOmit = runtime.Types.Extensions.GetOmit<"id" | "firstName" | "lastName" | "email" | "mobileNumber" | "address" | "city" | "state" | "country" | "isActive" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["vendor"]> +export type VendorInclude = { + productInfo?: boolean | Prisma.Vendor$productInfoArgs + _count?: boolean | Prisma.VendorCountOutputTypeDefaultArgs +} + +export type $VendorPayload = { + name: "Vendor" + objects: { + productInfo: Prisma.$ProductInfoPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: number + firstName: string + lastName: string + email: string | null + mobileNumber: string + address: string | null + city: string | null + state: string | null + country: string | null + isActive: boolean + createdAt: Date | null + updatedAt: Date | null + deletedAt: Date | null + }, ExtArgs["result"]["vendor"]> + composites: {} +} + +export type VendorGetPayload = runtime.Types.Result.GetResult + +export type VendorCountArgs = + Omit & { + select?: VendorCountAggregateInputType | true + } + +export interface VendorDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Vendor'], meta: { name: 'Vendor' } } + /** + * Find zero or one Vendor that matches the filter. + * @param {VendorFindUniqueArgs} args - Arguments to find a Vendor + * @example + * // Get one Vendor + * const vendor = await prisma.vendor.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Vendor that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {VendorFindUniqueOrThrowArgs} args - Arguments to find a Vendor + * @example + * // Get one Vendor + * const vendor = await prisma.vendor.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Vendor that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorFindFirstArgs} args - Arguments to find a Vendor + * @example + * // Get one Vendor + * const vendor = await prisma.vendor.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Vendor that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorFindFirstOrThrowArgs} args - Arguments to find a Vendor + * @example + * // Get one Vendor + * const vendor = await prisma.vendor.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Vendors that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Vendors + * const vendors = await prisma.vendor.findMany() + * + * // Get first 10 Vendors + * const vendors = await prisma.vendor.findMany({ take: 10 }) + * + * // Only select the `id` + * const vendorWithIdOnly = await prisma.vendor.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Vendor. + * @param {VendorCreateArgs} args - Arguments to create a Vendor. + * @example + * // Create one Vendor + * const Vendor = await prisma.vendor.create({ + * data: { + * // ... data to create a Vendor + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Vendors. + * @param {VendorCreateManyArgs} args - Arguments to create many Vendors. + * @example + * // Create many Vendors + * const vendor = await prisma.vendor.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a Vendor. + * @param {VendorDeleteArgs} args - Arguments to delete one Vendor. + * @example + * // Delete one Vendor + * const Vendor = await prisma.vendor.delete({ + * where: { + * // ... filter to delete one Vendor + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Vendor. + * @param {VendorUpdateArgs} args - Arguments to update one Vendor. + * @example + * // Update one Vendor + * const vendor = await prisma.vendor.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Vendors. + * @param {VendorDeleteManyArgs} args - Arguments to filter Vendors to delete. + * @example + * // Delete a few Vendors + * const { count } = await prisma.vendor.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Vendors. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Vendors + * const vendor = await prisma.vendor.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Vendor. + * @param {VendorUpsertArgs} args - Arguments to update or create a Vendor. + * @example + * // Update or create a Vendor + * const vendor = await prisma.vendor.upsert({ + * create: { + * // ... data to create a Vendor + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Vendor we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__VendorClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Vendors. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorCountArgs} args - Arguments to filter Vendors to count. + * @example + * // Count the number of Vendors + * const count = await prisma.vendor.count({ + * where: { + * // ... the filter for the Vendors we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Vendor. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by Vendor. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VendorGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends VendorGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: VendorGroupByArgs['orderBy'] } + : { orderBy?: VendorGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetVendorGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Vendor model + */ +readonly fields: VendorFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Vendor. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__VendorClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + productInfo = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the Vendor model + */ +export interface VendorFieldRefs { + readonly id: Prisma.FieldRef<"Vendor", 'Int'> + readonly firstName: Prisma.FieldRef<"Vendor", 'String'> + readonly lastName: Prisma.FieldRef<"Vendor", 'String'> + readonly email: Prisma.FieldRef<"Vendor", 'String'> + readonly mobileNumber: Prisma.FieldRef<"Vendor", 'String'> + readonly address: Prisma.FieldRef<"Vendor", 'String'> + readonly city: Prisma.FieldRef<"Vendor", 'String'> + readonly state: Prisma.FieldRef<"Vendor", 'String'> + readonly country: Prisma.FieldRef<"Vendor", 'String'> + readonly isActive: Prisma.FieldRef<"Vendor", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Vendor", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Vendor", 'DateTime'> + readonly deletedAt: Prisma.FieldRef<"Vendor", 'DateTime'> +} + + +// Custom InputTypes +/** + * Vendor findUnique + */ +export type VendorFindUniqueArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter, which Vendor to fetch. + */ + where: Prisma.VendorWhereUniqueInput +} + +/** + * Vendor findUniqueOrThrow + */ +export type VendorFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter, which Vendor to fetch. + */ + where: Prisma.VendorWhereUniqueInput +} + +/** + * Vendor findFirst + */ +export type VendorFindFirstArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter, which Vendor to fetch. + */ + where?: Prisma.VendorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Vendors to fetch. + */ + orderBy?: Prisma.VendorOrderByWithRelationInput | Prisma.VendorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Vendors. + */ + cursor?: Prisma.VendorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Vendors from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Vendors. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Vendors. + */ + distinct?: Prisma.VendorScalarFieldEnum | Prisma.VendorScalarFieldEnum[] +} + +/** + * Vendor findFirstOrThrow + */ +export type VendorFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter, which Vendor to fetch. + */ + where?: Prisma.VendorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Vendors to fetch. + */ + orderBy?: Prisma.VendorOrderByWithRelationInput | Prisma.VendorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Vendors. + */ + cursor?: Prisma.VendorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Vendors from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Vendors. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Vendors. + */ + distinct?: Prisma.VendorScalarFieldEnum | Prisma.VendorScalarFieldEnum[] +} + +/** + * Vendor findMany + */ +export type VendorFindManyArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter, which Vendors to fetch. + */ + where?: Prisma.VendorWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Vendors to fetch. + */ + orderBy?: Prisma.VendorOrderByWithRelationInput | Prisma.VendorOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Vendors. + */ + cursor?: Prisma.VendorWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Vendors from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Vendors. + */ + skip?: number + distinct?: Prisma.VendorScalarFieldEnum | Prisma.VendorScalarFieldEnum[] +} + +/** + * Vendor create + */ +export type VendorCreateArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * The data needed to create a Vendor. + */ + data: Prisma.XOR +} + +/** + * Vendor createMany + */ +export type VendorCreateManyArgs = { + /** + * The data used to create many Vendors. + */ + data: Prisma.VendorCreateManyInput | Prisma.VendorCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * Vendor update + */ +export type VendorUpdateArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * The data needed to update a Vendor. + */ + data: Prisma.XOR + /** + * Choose, which Vendor to update. + */ + where: Prisma.VendorWhereUniqueInput +} + +/** + * Vendor updateMany + */ +export type VendorUpdateManyArgs = { + /** + * The data used to update Vendors. + */ + data: Prisma.XOR + /** + * Filter which Vendors to update + */ + where?: Prisma.VendorWhereInput + /** + * Limit how many Vendors to update. + */ + limit?: number +} + +/** + * Vendor upsert + */ +export type VendorUpsertArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * The filter to search for the Vendor to update in case it exists. + */ + where: Prisma.VendorWhereUniqueInput + /** + * In case the Vendor found by the `where` argument doesn't exist, create a new Vendor with this data. + */ + create: Prisma.XOR + /** + * In case the Vendor was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Vendor delete + */ +export type VendorDeleteArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null + /** + * Filter which Vendor to delete. + */ + where: Prisma.VendorWhereUniqueInput +} + +/** + * Vendor deleteMany + */ +export type VendorDeleteManyArgs = { + /** + * Filter which Vendors to delete + */ + where?: Prisma.VendorWhereInput + /** + * Limit how many Vendors to delete. + */ + limit?: number +} + +/** + * Vendor.productInfo + */ +export type Vendor$productInfoArgs = { + /** + * Select specific fields to fetch from the ProductInfo + */ + select?: Prisma.ProductInfoSelect | null + /** + * Omit specific fields from the ProductInfo + */ + omit?: Prisma.ProductInfoOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.ProductInfoInclude | null + where?: Prisma.ProductInfoWhereInput + orderBy?: Prisma.ProductInfoOrderByWithRelationInput | Prisma.ProductInfoOrderByWithRelationInput[] + cursor?: Prisma.ProductInfoWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.ProductInfoScalarFieldEnum | Prisma.ProductInfoScalarFieldEnum[] +} + +/** + * Vendor without action + */ +export type VendorDefaultArgs = { + /** + * Select specific fields to fetch from the Vendor + */ + select?: Prisma.VendorSelect | null + /** + * Omit specific fields from the Vendor + */ + omit?: Prisma.VendorOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.VendorInclude | null +} diff --git a/src/inventories/dto/create-inventory.dto.ts b/src/inventories/dto/create-inventory.dto.ts new file mode 100644 index 0000000..1d2c503 --- /dev/null +++ b/src/inventories/dto/create-inventory.dto.ts @@ -0,0 +1,4 @@ +export class CreateInventoryDto { + name: string + location?: string +} diff --git a/src/inventories/dto/update-inventory.dto.ts b/src/inventories/dto/update-inventory.dto.ts new file mode 100644 index 0000000..95fa459 --- /dev/null +++ b/src/inventories/dto/update-inventory.dto.ts @@ -0,0 +1,5 @@ +export class UpdateInventoryDto { + name?: string + location?: string + isActive?: boolean +} diff --git a/src/inventories/inventories.controller.ts b/src/inventories/inventories.controller.ts new file mode 100644 index 0000000..d6286fc --- /dev/null +++ b/src/inventories/inventories.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateInventoryDto } from './dto/create-inventory.dto' +import { UpdateInventoryDto } from './dto/update-inventory.dto' +import { InventoriesService } from './inventories.service' + +@Controller('inventories') +export class InventoriesController { + constructor(private readonly inventoriesService: InventoriesService) {} + + @Post() + create(@Body() dto: CreateInventoryDto) { + return this.inventoriesService.create(dto) + } + + @Get() + findAll() { + return this.inventoriesService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.inventoriesService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateInventoryDto) { + return this.inventoriesService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.inventoriesService.remove(Number(id)) + } +} diff --git a/src/inventories/inventories.module.ts b/src/inventories/inventories.module.ts new file mode 100644 index 0000000..eb4f81a --- /dev/null +++ b/src/inventories/inventories.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { InventoriesController } from './inventories.controller' +import { InventoriesService } from './inventories.service' + +@Module({ + imports: [PrismaModule], + controllers: [InventoriesController], + providers: [InventoriesService], +}) +export class InventoriesModule {} diff --git a/src/inventories/inventories.service.ts b/src/inventories/inventories.service.ts new file mode 100644 index 0000000..8f16899 --- /dev/null +++ b/src/inventories/inventories.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class InventoriesService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.inventory.create({ data }) + } + + findAll() { + return this.prisma.inventory.findMany() + } + + findOne(id: number) { + return this.prisma.inventory.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.inventory.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.inventory.delete({ where: { id } }) + } +} diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts new file mode 100644 index 0000000..c81541c --- /dev/null +++ b/src/lib/prisma.ts @@ -0,0 +1,17 @@ +import { PrismaMariaDb } from '@prisma/adapter-mariadb' +// import 'dotenv/config' +import { PrismaClient } from '../generated/prisma/client' + +console.log('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') +console.log(process.env.DATABASE_HOST) + +const adapter = new PrismaMariaDb({ + host: process.env.DATABASE_HOST, + user: process.env.DATABASE_USER, + password: process.env.DATABASE_PASSWORD, + database: process.env.DATABASE_NAME, + connectionLimit: 5, +}) +const prisma = new PrismaClient({ adapter }) + +export { prisma } diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..210bb9e --- /dev/null +++ b/src/main.ts @@ -0,0 +1,32 @@ +import { VersioningType } from '@nestjs/common' +import { NestFactory } from '@nestjs/core' +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger' +import { AppModule } from './app.module' +import { LoggingInterceptor } from './common/interceptors/logging.interceptor' +import { ResponseMappingInterceptor } from './common/interceptors/response-mapping.interceptor' + +async function bootstrap() { + const app = await NestFactory.create(AppModule) + + const config = new DocumentBuilder() + .setTitle('Pos') + .setDescription('The Pos API description') + .setVersion('1.0') + .addTag('pos') + .build() + const documentFactory = () => SwaggerModule.createDocument(app, config) + SwaggerModule.setup('swagger', app, documentFactory) + + // Set API prefix and enable URI versioning so all routes live under /api/v1/* + app.setGlobalPrefix('api') + app.enableVersioning({ + type: VersioningType.URI, + defaultVersion: '1', + }) + + // Register global logging and response mapping interceptors + app.useGlobalInterceptors(new LoggingInterceptor(), new ResponseMappingInterceptor()) + + await app.listen(process.env.PORT ?? 3000) +} +bootstrap() diff --git a/src/prisma/prisma-config.service.ts b/src/prisma/prisma-config.service.ts new file mode 100644 index 0000000..3d944ef --- /dev/null +++ b/src/prisma/prisma-config.service.ts @@ -0,0 +1,65 @@ +/** + * Prisma 7 config helper. + * + * Purpose: centralize PrismaClient options for Nest and tests. + * This reads environment variables (e.g. PRISMA_ACCELERATE_URL, PRISMA_CLIENT_LOG) + * and returns a valid options object to pass to `new PrismaClient(options)`. + * + * Keep this file small and dependency-free so it can be used in scripts. + */ + +const pkg = require('@prisma/adapter-mariadb') + +export function getPrismaOptions(): any { + const options: any = {} + + // Logging: allow configuring via PRISMA_CLIENT_LOG (comma separated levels) + // default to query/info/warn/error during development + const envLog = process.env.PRISMA_CLIENT_LOG + if (envLog && envLog.trim() !== '') { + const levels = envLog + .split(',') + .map(s => s.trim()) + .filter(Boolean) + options.log = levels.map((level: string) => ({ emit: 'stdout', level })) + } else { + options.log = [ + { emit: 'stdout', level: 'query' }, + { emit: 'stdout', level: 'info' }, + { emit: 'stdout', level: 'warn' }, + { emit: 'stdout', level: 'error' }, + ] + } + + // Prisma Accelerate: only add when provided and non-empty (Prisma 7 validation requires non-empty string) + const accel = process.env.PRISMA_ACCELERATE_URL + if (accel && accel.trim() !== '') { + options.accelerateUrl = accel + } + + try { + // dynamic require so this file doesn't hard-depend on adapters at compile time + // eslint-disable-next-line @typescript-eslint/no-var-requires + if (pkg) { + // Try common export patterns: default function, module function, or factory named createAdapter/getAdapter + if (typeof pkg === 'function') { + options.adapter = pkg() + } else if (pkg.default && typeof pkg.default === 'function') { + options.adapter = pkg.default() + } else if (pkg.createAdapter && typeof pkg.createAdapter === 'function') { + options.adapter = pkg.createAdapter() + } else if (pkg.getAdapter && typeof pkg.getAdapter === 'function') { + options.adapter = pkg.getAdapter() + } + } + } catch (e) { + // package not found or failed to initialize; try next candidate + } + + // Error format (optional) + if (process.env.PRISMA_ERROR_FORMAT) { + options.errorFormat = process.env.PRISMA_ERROR_FORMAT as any + } + + return options +} diff --git a/src/prisma/prisma.module.ts b/src/prisma/prisma.module.ts new file mode 100644 index 0000000..4501415 --- /dev/null +++ b/src/prisma/prisma.module.ts @@ -0,0 +1,9 @@ +import { Global, Module } from '@nestjs/common' +import { PrismaService } from './prisma.service' + +@Global() +@Module({ + providers: [PrismaService], + exports: [PrismaService], +}) +export class PrismaModule {} diff --git a/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts new file mode 100644 index 0000000..960599e --- /dev/null +++ b/src/prisma/prisma.service.ts @@ -0,0 +1,33 @@ +import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common' +import { PrismaMariaDb } from '@prisma/adapter-mariadb' +import 'dotenv/config' +import { env } from 'prisma/config' +import { PrismaClient } from '../generated/prisma/client' + +@Injectable() +export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy { + constructor() { + const adapter = new PrismaMariaDb({ + host: env('DATABASE_HOST'), + user: env('DATABASE_USER'), + password: env('DATABASE_PASSWORD'), + database: env('DATABASE_NAME'), + connectionLimit: 5, + }) + super({ adapter }) + } + + async onModuleInit() { + await this.$connect() + } + + async onModuleDestroy() { + await this.$disconnect() + } + + // async enableShutdownHooks(app: any) { + // this.$on('beforeExit', async () => { + // await app.close() + // }) + // } +} diff --git a/src/product-brands/dto/create-product-brand.dto.ts b/src/product-brands/dto/create-product-brand.dto.ts new file mode 100644 index 0000000..f0e54be --- /dev/null +++ b/src/product-brands/dto/create-product-brand.dto.ts @@ -0,0 +1,5 @@ +export class CreateProductBrandDto { + name: string + description?: string + imageUrl?: string +} diff --git a/src/product-brands/dto/update-product-brand.dto.ts b/src/product-brands/dto/update-product-brand.dto.ts new file mode 100644 index 0000000..daa10e2 --- /dev/null +++ b/src/product-brands/dto/update-product-brand.dto.ts @@ -0,0 +1,5 @@ +export class UpdateProductBrandDto { + name?: string + description?: string + imageUrl?: string +} diff --git a/src/product-brands/product-brands.controller.ts b/src/product-brands/product-brands.controller.ts new file mode 100644 index 0000000..7c327e1 --- /dev/null +++ b/src/product-brands/product-brands.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateProductBrandDto } from './dto/create-product-brand.dto' +import { UpdateProductBrandDto } from './dto/update-product-brand.dto' +import { ProductBrandsService } from './product-brands.service' + +@Controller('product-brands') +export class ProductBrandsController { + constructor(private readonly productBrandsService: ProductBrandsService) {} + + @Post() + create(@Body() dto: CreateProductBrandDto) { + return this.productBrandsService.create(dto) + } + + @Get() + findAll() { + return this.productBrandsService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.productBrandsService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateProductBrandDto) { + return this.productBrandsService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.productBrandsService.remove(Number(id)) + } +} diff --git a/src/product-brands/product-brands.module.ts b/src/product-brands/product-brands.module.ts new file mode 100644 index 0000000..c379e44 --- /dev/null +++ b/src/product-brands/product-brands.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { ProductBrandsController } from './product-brands.controller' +import { ProductBrandsService } from './product-brands.service' + +@Module({ + imports: [PrismaModule], + controllers: [ProductBrandsController], + providers: [ProductBrandsService], +}) +export class ProductBrandsModule {} diff --git a/src/product-brands/product-brands.service.ts b/src/product-brands/product-brands.service.ts new file mode 100644 index 0000000..5ca5fe8 --- /dev/null +++ b/src/product-brands/product-brands.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class ProductBrandsService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.productBrand.create({ data }) + } + + findAll() { + return this.prisma.productBrand.findMany() + } + + findOne(id: number) { + return this.prisma.productBrand.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.productBrand.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.productBrand.delete({ where: { id } }) + } +} diff --git a/src/product-categories/dto/create-product-category.dto.ts b/src/product-categories/dto/create-product-category.dto.ts new file mode 100644 index 0000000..4c38945 --- /dev/null +++ b/src/product-categories/dto/create-product-category.dto.ts @@ -0,0 +1,5 @@ +export class CreateProductCategoryDto { + name: string + description?: string + imageUrl?: string +} diff --git a/src/product-categories/dto/update-product-category.dto.ts b/src/product-categories/dto/update-product-category.dto.ts new file mode 100644 index 0000000..0c10549 --- /dev/null +++ b/src/product-categories/dto/update-product-category.dto.ts @@ -0,0 +1,5 @@ +export class UpdateProductCategoryDto { + name?: string + description?: string + imageUrl?: string +} diff --git a/src/product-categories/product-categories.controller.ts b/src/product-categories/product-categories.controller.ts new file mode 100644 index 0000000..d6e0d69 --- /dev/null +++ b/src/product-categories/product-categories.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateProductCategoryDto } from './dto/create-product-category.dto' +import { UpdateProductCategoryDto } from './dto/update-product-category.dto' +import { ProductCategoriesService } from './product-categories.service' + +@Controller('product-categories') +export class ProductCategoriesController { + constructor(private readonly productCategoriesService: ProductCategoriesService) {} + + @Post() + create(@Body() dto: CreateProductCategoryDto) { + return this.productCategoriesService.create(dto) + } + + @Get() + findAll() { + return this.productCategoriesService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.productCategoriesService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateProductCategoryDto) { + return this.productCategoriesService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.productCategoriesService.remove(Number(id)) + } +} diff --git a/src/product-categories/product-categories.module.ts b/src/product-categories/product-categories.module.ts new file mode 100644 index 0000000..2c6f7bd --- /dev/null +++ b/src/product-categories/product-categories.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { ProductCategoriesController } from './product-categories.controller' +import { ProductCategoriesService } from './product-categories.service' + +@Module({ + imports: [PrismaModule], + controllers: [ProductCategoriesController], + providers: [ProductCategoriesService], +}) +export class ProductCategoriesModule {} diff --git a/src/product-categories/product-categories.service.ts b/src/product-categories/product-categories.service.ts new file mode 100644 index 0000000..f237afd --- /dev/null +++ b/src/product-categories/product-categories.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class ProductCategoriesService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.productCategory.create({ data }) + } + + findAll() { + return this.prisma.productCategory.findMany() + } + + findOne(id: number) { + return this.prisma.productCategory.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.productCategory.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.productCategory.delete({ where: { id } }) + } +} diff --git a/src/product-info/dto/create-product-info.dto.ts b/src/product-info/dto/create-product-info.dto.ts new file mode 100644 index 0000000..ed9c9a6 --- /dev/null +++ b/src/product-info/dto/create-product-info.dto.ts @@ -0,0 +1,9 @@ +export class CreateProductInfoDto { + name: string + description?: string + productType?: string + metaData?: any + brandId?: number + categoryId?: number + vendorId: number +} diff --git a/src/product-info/dto/update-product-info.dto.ts b/src/product-info/dto/update-product-info.dto.ts new file mode 100644 index 0000000..aba1449 --- /dev/null +++ b/src/product-info/dto/update-product-info.dto.ts @@ -0,0 +1,9 @@ +export class UpdateProductInfoDto { + name?: string + description?: string + productType?: string + metaData?: any + brandId?: number + categoryId?: number + vendorId?: number +} diff --git a/src/product-info/product-info.controller.ts b/src/product-info/product-info.controller.ts new file mode 100644 index 0000000..a67d81a --- /dev/null +++ b/src/product-info/product-info.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateProductInfoDto } from './dto/create-product-info.dto' +import { UpdateProductInfoDto } from './dto/update-product-info.dto' +import { ProductInfoService } from './product-info.service' + +@Controller('product-info') +export class ProductInfoController { + constructor(private readonly productInfoService: ProductInfoService) {} + + @Post() + create(@Body() dto: CreateProductInfoDto) { + return this.productInfoService.create(dto) + } + + @Get() + findAll() { + return this.productInfoService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.productInfoService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateProductInfoDto) { + return this.productInfoService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.productInfoService.remove(Number(id)) + } +} diff --git a/src/product-info/product-info.module.ts b/src/product-info/product-info.module.ts new file mode 100644 index 0000000..d4fa458 --- /dev/null +++ b/src/product-info/product-info.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { ProductInfoController } from './product-info.controller' +import { ProductInfoService } from './product-info.service' + +@Module({ + imports: [PrismaModule], + controllers: [ProductInfoController], + providers: [ProductInfoService], +}) +export class ProductInfoModule {} diff --git a/src/product-info/product-info.service.ts b/src/product-info/product-info.service.ts new file mode 100644 index 0000000..b8fdd3f --- /dev/null +++ b/src/product-info/product-info.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class ProductInfoService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.productInfo.create({ data }) + } + + findAll() { + return this.prisma.productInfo.findMany() + } + + findOne(id: number) { + return this.prisma.productInfo.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.productInfo.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.productInfo.delete({ where: { id } }) + } +} diff --git a/src/products/dto/create-product.dto.ts b/src/products/dto/create-product.dto.ts new file mode 100644 index 0000000..6480c56 --- /dev/null +++ b/src/products/dto/create-product.dto.ts @@ -0,0 +1,15 @@ +export class CreateProductDto { + name: string + description?: string + sku?: string + barcode?: string + imageUrl?: string + attachmentId?: number + unit: string + discount?: number + quantity?: number + alertQuantity?: number + isActive?: boolean + isFeatured?: boolean + productInfoId: number +} diff --git a/src/products/dto/update-product.dto.ts b/src/products/dto/update-product.dto.ts new file mode 100644 index 0000000..f128e09 --- /dev/null +++ b/src/products/dto/update-product.dto.ts @@ -0,0 +1,15 @@ +export class UpdateProductDto { + name?: string + description?: string + sku?: string + barcode?: string + imageUrl?: string + attachmentId?: number + unit?: string + discount?: number + quantity?: number + alertQuantity?: number + isActive?: boolean + isFeatured?: boolean + productInfoId?: number +} diff --git a/src/products/products.controller.ts b/src/products/products.controller.ts new file mode 100644 index 0000000..c2354e6 --- /dev/null +++ b/src/products/products.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateProductDto } from './dto/create-product.dto' +import { UpdateProductDto } from './dto/update-product.dto' +import { ProductsService } from './products.service' + +@Controller('products') +export class ProductsController { + constructor(private readonly productsService: ProductsService) {} + + @Post() + create(@Body() dto: CreateProductDto) { + return this.productsService.create(dto) + } + + @Get() + findAll() { + return this.productsService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.productsService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateProductDto) { + return this.productsService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.productsService.remove(Number(id)) + } +} diff --git a/src/products/products.module.ts b/src/products/products.module.ts new file mode 100644 index 0000000..80ae502 --- /dev/null +++ b/src/products/products.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { ProductsController } from './products.controller' +import { ProductsService } from './products.service' + +@Module({ + imports: [PrismaModule], + controllers: [ProductsController], + providers: [ProductsService], +}) +export class ProductsModule {} diff --git a/src/products/products.service.ts b/src/products/products.service.ts new file mode 100644 index 0000000..f29f881 --- /dev/null +++ b/src/products/products.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class ProductsService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.product.create({ data }) + } + + findAll() { + return this.prisma.product.findMany() + } + + findOne(id: number) { + return this.prisma.product.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.product.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.product.delete({ where: { id } }) + } +} diff --git a/src/roles/dto/create-role.dto.ts b/src/roles/dto/create-role.dto.ts new file mode 100644 index 0000000..03a711f --- /dev/null +++ b/src/roles/dto/create-role.dto.ts @@ -0,0 +1,5 @@ +export class CreateRoleDto { + name: string + description?: string + permissions?: any +} diff --git a/src/roles/dto/update-role.dto.ts b/src/roles/dto/update-role.dto.ts new file mode 100644 index 0000000..84bce47 --- /dev/null +++ b/src/roles/dto/update-role.dto.ts @@ -0,0 +1,5 @@ +export class UpdateRoleDto { + name?: string + description?: string + permissions?: any +} diff --git a/src/roles/roles.controller.ts b/src/roles/roles.controller.ts new file mode 100644 index 0000000..5feca69 --- /dev/null +++ b/src/roles/roles.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateRoleDto } from './dto/create-role.dto' +import { UpdateRoleDto } from './dto/update-role.dto' +import { RolesService } from './roles.service' + +@Controller('roles') +export class RolesController { + constructor(private readonly rolesService: RolesService) {} + + @Post() + create(@Body() dto: CreateRoleDto) { + return this.rolesService.create(dto) + } + + @Get() + findAll() { + return this.rolesService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.rolesService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateRoleDto) { + return this.rolesService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.rolesService.remove(Number(id)) + } +} diff --git a/src/roles/roles.module.ts b/src/roles/roles.module.ts new file mode 100644 index 0000000..e21a078 --- /dev/null +++ b/src/roles/roles.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { RolesController } from './roles.controller' +import { RolesService } from './roles.service' + +@Module({ + imports: [PrismaModule], + controllers: [RolesController], + providers: [RolesService], +}) +export class RolesModule {} diff --git a/src/roles/roles.service.ts b/src/roles/roles.service.ts new file mode 100644 index 0000000..017fc60 --- /dev/null +++ b/src/roles/roles.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class RolesService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.role.create({ data }) + } + + findAll() { + return this.prisma.role.findMany() + } + + findOne(id: number) { + return this.prisma.role.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.role.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.role.delete({ where: { id } }) + } +} diff --git a/src/stores/dto/create-store.dto.ts b/src/stores/dto/create-store.dto.ts new file mode 100644 index 0000000..fb7133d --- /dev/null +++ b/src/stores/dto/create-store.dto.ts @@ -0,0 +1,4 @@ +export class CreateStoreDto { + name: string + location?: string +} diff --git a/src/stores/dto/update-store.dto.ts b/src/stores/dto/update-store.dto.ts new file mode 100644 index 0000000..45f8455 --- /dev/null +++ b/src/stores/dto/update-store.dto.ts @@ -0,0 +1,5 @@ +export class UpdateStoreDto { + name?: string + location?: string + isActive?: boolean +} diff --git a/src/stores/stores.controller.ts b/src/stores/stores.controller.ts new file mode 100644 index 0000000..f3d76b6 --- /dev/null +++ b/src/stores/stores.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateStoreDto } from './dto/create-store.dto' +import { UpdateStoreDto } from './dto/update-store.dto' +import { StoresService } from './stores.service' + +@Controller('stores') +export class StoresController { + constructor(private readonly storesService: StoresService) {} + + @Post() + create(@Body() dto: CreateStoreDto) { + return this.storesService.create(dto) + } + + @Get() + findAll() { + return this.storesService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.storesService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateStoreDto) { + return this.storesService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.storesService.remove(Number(id)) + } +} diff --git a/src/stores/stores.module.ts b/src/stores/stores.module.ts new file mode 100644 index 0000000..159fae7 --- /dev/null +++ b/src/stores/stores.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { StoresController } from './stores.controller' +import { StoresService } from './stores.service' + +@Module({ + imports: [PrismaModule], + controllers: [StoresController], + providers: [StoresService], +}) +export class StoresModule {} diff --git a/src/stores/stores.service.ts b/src/stores/stores.service.ts new file mode 100644 index 0000000..8a18dc8 --- /dev/null +++ b/src/stores/stores.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class StoresService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.store.create({ data }) + } + + findAll() { + return this.prisma.store.findMany() + } + + findOne(id: number) { + return this.prisma.store.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.store.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.store.delete({ where: { id } }) + } +} diff --git a/src/users/dto/create-user.dto.ts b/src/users/dto/create-user.dto.ts new file mode 100644 index 0000000..45f076f --- /dev/null +++ b/src/users/dto/create-user.dto.ts @@ -0,0 +1,7 @@ +export class CreateUserDto { + mobileNumber: string + password: string + firstName: string + lastName: string + roleId: number +} diff --git a/src/users/dto/update-user.dto.ts b/src/users/dto/update-user.dto.ts new file mode 100644 index 0000000..5f8c6bc --- /dev/null +++ b/src/users/dto/update-user.dto.ts @@ -0,0 +1,8 @@ +export class UpdateUserDto { + mobileNumber?: string + password?: string + firstName?: string + lastName?: string + roleId?: number + isActive?: boolean +} diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts new file mode 100644 index 0000000..00a81dc --- /dev/null +++ b/src/users/users.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateUserDto } from './dto/create-user.dto' +import { UpdateUserDto } from './dto/update-user.dto' +import { UsersService } from './users.service' + +@Controller('users') +export class UsersController { + constructor(private readonly usersService: UsersService) {} + + @Post() + create(@Body() dto: CreateUserDto) { + return this.usersService.create(dto) + } + + @Get() + findAll() { + return this.usersService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.usersService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateUserDto) { + return this.usersService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.usersService.remove(Number(id)) + } +} diff --git a/src/users/users.module.ts b/src/users/users.module.ts new file mode 100644 index 0000000..bc27de9 --- /dev/null +++ b/src/users/users.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { UsersController } from './users.controller' +import { UsersService } from './users.service' + +@Module({ + imports: [PrismaModule], + controllers: [UsersController], + providers: [UsersService], +}) +export class UsersModule {} diff --git a/src/users/users.service.ts b/src/users/users.service.ts new file mode 100644 index 0000000..3de7fa6 --- /dev/null +++ b/src/users/users.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class UsersService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.user.create({ data }) + } + + findAll() { + return this.prisma.user.findMany() + } + + findOne(id: number) { + return this.prisma.user.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.user.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.user.delete({ where: { id } }) + } +} diff --git a/src/vendors/dto/create-vendor.dto.ts b/src/vendors/dto/create-vendor.dto.ts new file mode 100644 index 0000000..4685856 --- /dev/null +++ b/src/vendors/dto/create-vendor.dto.ts @@ -0,0 +1,10 @@ +export class CreateVendorDto { + firstName: string + lastName: string + email?: string + mobileNumber?: string + address?: string + city?: string + state?: string + country?: string +} diff --git a/src/vendors/dto/update-vendor.dto.ts b/src/vendors/dto/update-vendor.dto.ts new file mode 100644 index 0000000..9f00b6d --- /dev/null +++ b/src/vendors/dto/update-vendor.dto.ts @@ -0,0 +1,11 @@ +export class UpdateVendorDto { + firstName?: string + lastName?: string + email?: string + mobileNumber?: string + address?: string + city?: string + state?: string + country?: string + isActive?: boolean +} diff --git a/src/vendors/vendors.controller.ts b/src/vendors/vendors.controller.ts new file mode 100644 index 0000000..cfcd4e4 --- /dev/null +++ b/src/vendors/vendors.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common' +import { CreateVendorDto } from './dto/create-vendor.dto' +import { UpdateVendorDto } from './dto/update-vendor.dto' +import { VendorsService } from './vendors.service' + +@Controller('vendors') +export class VendorsController { + constructor(private readonly vendorsService: VendorsService) {} + + @Post() + create(@Body() dto: CreateVendorDto) { + return this.vendorsService.create(dto) + } + + @Get() + findAll() { + return this.vendorsService.findAll() + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.vendorsService.findOne(Number(id)) + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateVendorDto) { + return this.vendorsService.update(Number(id), dto) + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.vendorsService.remove(Number(id)) + } +} diff --git a/src/vendors/vendors.module.ts b/src/vendors/vendors.module.ts new file mode 100644 index 0000000..c8f0313 --- /dev/null +++ b/src/vendors/vendors.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common' +import { PrismaModule } from '../prisma/prisma.module' +import { VendorsController } from './vendors.controller' +import { VendorsService } from './vendors.service' + +@Module({ + imports: [PrismaModule], + controllers: [VendorsController], + providers: [VendorsService], +}) +export class VendorsModule {} diff --git a/src/vendors/vendors.service.ts b/src/vendors/vendors.service.ts new file mode 100644 index 0000000..f902e04 --- /dev/null +++ b/src/vendors/vendors.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@nestjs/common' +import { PrismaService } from '../prisma/prisma.service' + +@Injectable() +export class VendorsService { + constructor(private prisma: PrismaService) {} + + create(data: any) { + return this.prisma.vendor.create({ data }) + } + + findAll() { + return this.prisma.vendor.findMany() + } + + findOne(id: number) { + return this.prisma.vendor.findUnique({ where: { id } }) + } + + update(id: number, data: any) { + return this.prisma.vendor.update({ where: { id }, data }) + } + + remove(id: number) { + return this.prisma.vendor.delete({ where: { id } }) + } +} diff --git a/test/app.e2e-spec.ts b/test/app.e2e-spec.ts new file mode 100644 index 0000000..36852c5 --- /dev/null +++ b/test/app.e2e-spec.ts @@ -0,0 +1,25 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import request from 'supertest'; +import { App } from 'supertest/types'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/test/jest-e2e.json b/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e034888 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "declaration": true, + "emitDecoratorMetadata": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "isolatedModules": true, + "module": "nodenext", + "moduleResolution": "nodenext", + "noFallthroughCasesInSwitch": false, + "noImplicitAny": false, + "outDir": "./dist", + "removeComments": true, + "resolvePackageJsonExports": true, + "skipLibCheck": true, + "sourceMap": true, + "strictBindCallApply": false, + "strictNullChecks": true, + "target": "ES2023" + } +}