diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..aa2a653 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/.trae/documents/hlae_site_plan.md b/.trae/documents/hlae_site_plan.md index fb5873c..1d8230d 100644 --- a/.trae/documents/hlae_site_plan.md +++ b/.trae/documents/hlae_site_plan.md @@ -4,101 +4,87 @@ ## 1. 项目初始化与依赖配置 -* [ ] **检查与安装依赖** +- [ ] **检查与安装依赖** + - [ ] Web 端安装 `swr`, `zustand`。 - * [ ] Web 端安装 `swr`, `zustand`。 + - [ ] 确认 `backend` 和 `web` 的 workspace 关联,确保类型共享。 - * [ ] 确认 `backend` 和 `web` 的 workspace 关联,确保类型共享。 +- [ ] **类型安全配置 (Eden)** + - [ ] 在 Backend 导出 `App` 类型。 -* [ ] **类型安全配置 (Eden)** + - [ ] 在 Web 端正确引入 `App` 类型以实现端到端类型安全。 - * [ ] 在 Backend 导出 `App` 类型。 +- [ ] **环境变量配置** + - [ ] 配置 Backend `.env` (数据库路径, Auth Secret 等)。 - * [ ] 在 Web 端正确引入 `App` 类型以实现端到端类型安全。 - -* [ ] **环境变量配置** - - * [ ] 配置 Backend `.env` (数据库路径, Auth Secret 等)。 - - * [ ] 配置 Web `.env` (API 地址等)。 + - [ ] 配置 Web `.env` (API 地址等)。 ## 2. 数据库与后端基础 -* [ ] **Prisma Schema 设计** +- [ ] **Prisma Schema 设计** + - [ ] 完善 `User` 模型 (适配 better-auth)。 - * [ ] 完善 `User` 模型 (适配 better-auth)。 + - [ ] 设计 `Resource` (资源/传送门) 模型:包含标题、描述、链接、图标/图片、分类等字段。 - * [ ] 设计 `Resource` (资源/传送门) 模型:包含标题、描述、链接、图标/图片、分类等字段。 + - [ ] 设计 `Post` (帖子) 模型:包含标题、内容、作者、发布时间等。 - * [ ] 设计 `Post` (帖子) 模型:包含标题、内容、作者、发布时间等。 + - [ ] 执行 `bun prisma migrate dev` 生成数据库表。 - * [ ] 执行 `bun prisma migrate dev` 生成数据库表。 +- [ ] **后端核心功能** + - [ ] **Auth**: 集成 `better-auth`,实现注册、登录、注销、获取当前用户接口。 -* [ ] **后端核心功能** + - [ ] **Resources**: 实现资源的增删改查 (CRUD) 接口。 - * [ ] **Auth**: 集成 `better-auth`,实现注册、登录、注销、获取当前用户接口。 + - [ ] **Posts**: 实现帖子的增删改查接口。 - * [ ] **Resources**: 实现资源的增删改查 (CRUD) 接口。 - - * [ ] **Posts**: 实现帖子的增删改查接口。 - - * [ ] **API 导出**: 确保所有路由都挂载到主 App 实例。 + - [ ] **API 导出**: 确保所有路由都挂载到主 App 实例。 ## 3. 前端基础架构 (Web) -* [ ] **HeroUI v3 配置** +- [ ] **HeroUI v3 配置** + - [ ] 确保 `tailwind.css` 和 `HeroUI` 样式正确加载。 - * [ ] 确保 `tailwind.css` 和 `HeroUI` 样式正确加载。 + - [ ] 配置全局 Theme (亮/暗色)。 - * [ ] 配置全局 Theme (亮/暗色)。 +- [ ] **状态管理 & 数据请求** + - [ ] 封装 `useClient` 或类似 Hook,结合 `eden` 和 `swr` 进行数据请求。 -* [ ] **状态管理 & 数据请求** + - [ ] 使用 `zustand` 管理全局状态 (如当前用户信息、UI状态)。 - * [ ] 封装 `useClient` 或类似 Hook,结合 `eden` 和 `swr` 进行数据请求。 - - * [ ] 使用 `zustand` 管理全局状态 (如当前用户信息、UI状态)。 - -* [ ] **路由配置** - - * [ ] 使用 `react-router` 配置页面路由 (首页、登录、注册、资源页、帖子页、管理页)。 +- [ ] **路由配置** + - [ ] 使用 `react-router` 配置页面路由 (首页、登录、注册、资源页、帖子页、管理页)。 ## 4. 功能模块实现 -* [ ] **认证模块 (Auth)** +- [ ] **认证模块 (Auth)** + - [ ] 实现登录页面 (Login Page)。 - * [ ] 实现登录页面 (Login Page)。 + - [ ] 实现注册页面 (Register Page)。 - * [ ] 实现注册页面 (Register Page)。 + - [ ] 实现受保护路由 (Protected Routes)。 - * [ ] 实现受保护路由 (Protected Routes)。 +- [ ] **资源/传送门模块 (Resources/Teleport)** + - [ ] **展示**: 使用 HeroUI `Card` 组件展示资源列表。 -* [ ] **资源/传送门模块 (Resources/Teleport)** + - [ ] **编辑**: 实现“在线编辑”功能 (管理员或特定用户权限),支持添加/修改/删除资源卡片。 - * [ ] **展示**: 使用 HeroUI `Card` 组件展示资源列表。 +- [ ] **帖子模块 (Posts)** + - [ ] **列表**: 展示帖子列表。 - * [ ] **编辑**: 实现“在线编辑”功能 (管理员或特定用户权限),支持添加/修改/删除资源卡片。 + - [ ] **详情**: 展示帖子详情。 -* [ ] **帖子模块 (Posts)** - - * [ ] **列表**: 展示帖子列表。 - - * [ ] **详情**: 展示帖子详情。 - - * [ ] **发布**: 实现发帖编辑器和发布功能。 + - [ ] **发布**: 实现发帖编辑器和发布功能。 ## 5. 测试与优化 -* [ ] **功能测试** +- [ ] **功能测试** + - [ ] 测试完整的注册/登录流程。 - * [ ] 测试完整的注册/登录流程。 + - [ ] 测试资源的增删改查。 - * [ ] 测试资源的增删改查。 + - [ ] 测试发帖功能。 - * [ ] 测试发帖功能。 - -* [ ] **UI/UX 优化** - - * [ ] 响应式布局调整。 - - * [ ] Loading 状态和错误处理。 +- [ ] **UI/UX 优化** + - [ ] 响应式布局调整。 + - [ ] Loading 状态和错误处理。 diff --git a/backend/dev.db b/backend/dev.db new file mode 100644 index 0000000..e69de29 diff --git a/backend/package.json b/backend/package.json index b091ba6..cc5a4e8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -9,17 +9,24 @@ "start": "NODE_ENV=production bun src/index.ts", "start:dist": "bun run dist/server", "build": "bun build --compile --minify-whitespace --minify-syntax --target bun --outfile dist/server src/index.ts", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "typecheck": "bun --bun tsc --noEmit" }, "dependencies": { - "elysia": "^1.0.0", - "prisma": "^5.0.0", - "@prisma/client": "^5.0.0", - "better-auth": "^0.7.0", "@elysiajs/cors": "^1.0.0", - "@elysiajs/eden": "^1.0.0" + "@elysiajs/eden": "^1.0.0", + "@libsql/client": "^0.17.0", + "@prisma/adapter-libsql": "^7.4.2", + "@prisma/client": "^7.4.2", + "better-auth": "^1.5.4", + "dotenv": "^17.3.1", + "elysia": "^1.0.0", + "prisma": "^7.4.2" }, "devDependencies": { - "@types/bun": "latest" + "@prisma/config": "^7.4.2", + "@types/bun": "latest", + "eslint": "^10.0.3" } -} \ No newline at end of file +} diff --git a/backend/prisma.config.ts b/backend/prisma.config.ts new file mode 100644 index 0000000..75494e8 --- /dev/null +++ b/backend/prisma.config.ts @@ -0,0 +1,12 @@ +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") || "file:./dev.db", + }, +}); diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index 5cde346..3643a3b 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -2,12 +2,14 @@ // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { - provider = "prisma-client-js" + provider = "prisma-client" + output = "../src/generated/prisma" + engineType = "client" + runtime = "bun" } datasource db { provider = "sqlite" - url = "file:./dev.db" } model User { diff --git a/backend/src/auth.ts b/backend/src/auth.ts index 1e96693..c08810d 100644 --- a/backend/src/auth.ts +++ b/backend/src/auth.ts @@ -1,10 +1,10 @@ -import { betterAuth } from 'better-auth'; -import { prismaAdapter } from 'better-auth/adapters/prisma'; -import { prisma } from './prisma'; +import { betterAuth } from 'better-auth' +import { prismaAdapter } from 'better-auth/adapters/prisma' +import { prisma } from './prisma' export const auth = betterAuth({ database: prismaAdapter(prisma, { - provider: 'sqlite' + provider: 'sqlite', }), basePath: '/api/auth', emailAndPassword: { @@ -14,7 +14,9 @@ export const auth = betterAuth({ github: { clientId: process.env.GITHUB_CLIENT_ID || 'dummy', clientSecret: process.env.GITHUB_CLIENT_SECRET || 'dummy', - enabled: !!(process.env.GITHUB_CLIENT_ID && process.env.GITHUB_CLIENT_SECRET), + enabled: !!( + process.env.GITHUB_CLIENT_ID && process.env.GITHUB_CLIENT_SECRET + ), }, }, -}); \ No newline at end of file +}) diff --git a/backend/src/generated/prisma/browser.ts b/backend/src/generated/prisma/browser.ts new file mode 100644 index 0000000..3866038 --- /dev/null +++ b/backend/src/generated/prisma/browser.ts @@ -0,0 +1,54 @@ + +/* !!! 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.ts' +export { Prisma } +export * as $Enums from './enums.ts' +export * from './enums.ts'; +/** + * Model User + * + */ +export type User = Prisma.UserModel +/** + * Model Account + * + */ +export type Account = Prisma.AccountModel +/** + * Model Session + * + */ +export type Session = Prisma.SessionModel +/** + * Model Post + * + */ +export type Post = Prisma.PostModel +/** + * Model Resource + * + */ +export type Resource = Prisma.ResourceModel +/** + * Model Comment + * + */ +export type Comment = Prisma.CommentModel +/** + * Model VerificationToken + * + */ +export type VerificationToken = Prisma.VerificationTokenModel diff --git a/backend/src/generated/prisma/client.ts b/backend/src/generated/prisma/client.ts new file mode 100644 index 0000000..a3ada44 --- /dev/null +++ b/backend/src/generated/prisma/client.ts @@ -0,0 +1,78 @@ + +/* !!! 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 { fileURLToPath } from 'node:url' +globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url)) + +import * as runtime from "@prisma/client/runtime/client" +import * as $Enums from "./enums.ts" +import * as $Class from "./internal/class.ts" +import * as Prisma from "./internal/prismaNamespace.ts" + +export * as $Enums from './enums.ts' +export * from "./enums.ts" +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // 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 Account + * + */ +export type Account = Prisma.AccountModel +/** + * Model Session + * + */ +export type Session = Prisma.SessionModel +/** + * Model Post + * + */ +export type Post = Prisma.PostModel +/** + * Model Resource + * + */ +export type Resource = Prisma.ResourceModel +/** + * Model Comment + * + */ +export type Comment = Prisma.CommentModel +/** + * Model VerificationToken + * + */ +export type VerificationToken = Prisma.VerificationTokenModel diff --git a/backend/src/generated/prisma/commonInputTypes.ts b/backend/src/generated/prisma/commonInputTypes.ts new file mode 100644 index 0000000..29fa0b5 --- /dev/null +++ b/backend/src/generated/prisma/commonInputTypes.ts @@ -0,0 +1,348 @@ + +/* !!! 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.ts" +import type * as Prisma from "./internal/prismaNamespace.ts" + + +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> + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +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> + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null +} + +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 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 SortOrderInput = { + sort: Prisma.SortOrder + nulls?: Prisma.NullsOrder +} + +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> + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$PrismaModel> +} + +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> + not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedStringNullableFilter<$PrismaModel> + _max?: Prisma.NestedStringNullableFilter<$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 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 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 BoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean +} + +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 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> + not?: Prisma.NestedStringFilter<$PrismaModel> | string +} + +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> + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null +} + +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 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 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> + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedStringFilter<$PrismaModel> + _max?: Prisma.NestedStringFilter<$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 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> + 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 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 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 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> +} + +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 NestedBoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean +} + +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> +} + + diff --git a/backend/src/generated/prisma/enums.ts b/backend/src/generated/prisma/enums.ts new file mode 100644 index 0000000..043572d --- /dev/null +++ b/backend/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/backend/src/generated/prisma/internal/class.ts b/backend/src/generated/prisma/internal/class.ts new file mode 100644 index 0000000..f43a415 --- /dev/null +++ b/backend/src/generated/prisma/internal/class.ts @@ -0,0 +1,264 @@ + +/* !!! 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.ts" + + +const config: runtime.GetPrismaClientConfig = { + "previewFeatures": [], + "clientVersion": "7.4.2", + "engineVersion": "94a226be1cf2967af2541cca5529f0f7ba866919", + "activeProvider": "sqlite", + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n engineType = \"client\"\n runtime = \"bun\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified DateTime?\n phone String? @unique\n phoneVerified DateTime?\n image String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n accounts Account[]\n sessions Session[]\n posts Post[]\n comments Comment[]\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n type String\n provider String\n providerAccountId String @map(\"provider_account_id\")\n refresh_token String?\n access_token String?\n expires_at Int?\n token_type String?\n scope String?\n id_token String?\n session_state String?\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"accounts\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"sessions\")\n}\n\nmodel Post {\n id String @id @default(cuid())\n title String\n content String\n userId String @map(\"user_id\")\n published Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n comments Comment[]\n\n @@map(\"posts\")\n}\n\nmodel Resource {\n id String @id @default(cuid())\n title String\n description String?\n url String\n icon String?\n category String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"resources\")\n}\n\nmodel Comment {\n id String @id @default(cuid())\n content String\n userId String @map(\"user_id\")\n postId String @map(\"post_id\")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n post Post @relation(fields: [postId], references: [id], onDelete: Cascade)\n\n @@map(\"comments\")\n}\n\nmodel VerificationToken {\n identifier String\n token String @unique\n expires DateTime\n\n @@unique([identifier, token])\n @@map(\"verification_tokens\")\n}\n", + "runtimeDataModel": { + "models": {}, + "enums": {}, + "types": {} + }, + "parameterizationSchema": { + "strings": [], + "graph": "" + } +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneVerified\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"posts\",\"kind\":\"object\",\"type\":\"Post\",\"relationName\":\"PostToUser\"},{\"name\":\"comments\",\"kind\":\"object\",\"type\":\"Comment\",\"relationName\":\"CommentToUser\"}],\"dbName\":null},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"accounts\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"Post\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"published\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PostToUser\"},{\"name\":\"comments\",\"kind\":\"object\",\"type\":\"Comment\",\"relationName\":\"CommentToPost\"}],\"dbName\":\"posts\"},\"Resource\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icon\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"resources\"},\"Comment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"postId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"post_id\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CommentToUser\"},{\"name\":\"post\",\"kind\":\"object\",\"type\":\"Post\",\"relationName\":\"CommentToPost\"}],\"dbName\":\"comments\"},\"VerificationToken\":{\"fields\":[{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"verification_tokens\"}},\"enums\":{},\"types\":{}}") +config.parameterizationSchema = { + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"accounts\",\"sessions\",\"post\",\"comments\",\"_count\",\"posts\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"_avg\",\"_sum\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"Post.findUnique\",\"Post.findUniqueOrThrow\",\"Post.findFirst\",\"Post.findFirstOrThrow\",\"Post.findMany\",\"Post.createOne\",\"Post.createMany\",\"Post.createManyAndReturn\",\"Post.updateOne\",\"Post.updateMany\",\"Post.updateManyAndReturn\",\"Post.upsertOne\",\"Post.deleteOne\",\"Post.deleteMany\",\"Post.groupBy\",\"Post.aggregate\",\"Resource.findUnique\",\"Resource.findUniqueOrThrow\",\"Resource.findFirst\",\"Resource.findFirstOrThrow\",\"Resource.findMany\",\"Resource.createOne\",\"Resource.createMany\",\"Resource.createManyAndReturn\",\"Resource.updateOne\",\"Resource.updateMany\",\"Resource.updateManyAndReturn\",\"Resource.upsertOne\",\"Resource.deleteOne\",\"Resource.deleteMany\",\"Resource.groupBy\",\"Resource.aggregate\",\"Comment.findUnique\",\"Comment.findUniqueOrThrow\",\"Comment.findFirst\",\"Comment.findFirstOrThrow\",\"Comment.findMany\",\"Comment.createOne\",\"Comment.createMany\",\"Comment.createManyAndReturn\",\"Comment.updateOne\",\"Comment.updateMany\",\"Comment.updateManyAndReturn\",\"Comment.upsertOne\",\"Comment.deleteOne\",\"Comment.deleteMany\",\"Comment.groupBy\",\"Comment.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"AND\",\"OR\",\"NOT\",\"identifier\",\"token\",\"expires\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"identifier_token\",\"id\",\"content\",\"userId\",\"postId\",\"createdAt\",\"updatedAt\",\"title\",\"description\",\"url\",\"icon\",\"category\",\"published\",\"sessionToken\",\"type\",\"provider\",\"providerAccountId\",\"refresh_token\",\"access_token\",\"expires_at\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"name\",\"email\",\"emailVerified\",\"phone\",\"phoneVerified\",\"image\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "-AI9cBAEAADdAQAgBQAA3gEAIAcAAOABACAJAADfAQAgggEAANsBADCDAQAAGgAQhAEAANsBADCUAQEAAAABmAFAAMQBACGZAUAAxAEAIasBAQDNAQAhrAEBAAAAAa0BQADcAQAhrgEBAAAAAa8BQADcAQAhsAEBAM0BACEBAAAAAQAgEAMAAOIBACCCAQAA6AEAMIMBAAADABCEAQAA6AEAMJQBAQDDAQAhlgEBAMMBACGhAQEAwwEAIaIBAQDDAQAhowEBAMMBACGkAQEAzQEAIaUBAQDNAQAhpgECAOkBACGnAQEAzQEAIagBAQDNAQAhqQEBAM0BACGqAQEAzQEAIQgDAADZAgAgpAEAAPYBACClAQAA9gEAIKYBAAD2AQAgpwEAAPYBACCoAQAA9gEAIKkBAAD2AQAgqgEAAPYBACARAwAA4gEAIIIBAADoAQAwgwEAAAMAEIQBAADoAQAwlAEBAAAAAZYBAQDDAQAhoQEBAMMBACGiAQEAwwEAIaMBAQDDAQAhpAEBAM0BACGlAQEAzQEAIaYBAgDpAQAhpwEBAM0BACGoAQEAzQEAIakBAQDNAQAhqgEBAM0BACG0AQAA5wEAIAMAAAADACABAAAEADACAAAFACAIAwAA4gEAIIIBAADmAQAwgwEAAAcAEIQBAADmAQAwhwFAAMQBACGUAQEAwwEAIZYBAQDDAQAhoAEBAMMBACEBAwAA2QIAIAgDAADiAQAgggEAAOYBADCDAQAABwAQhAEAAOYBADCHAUAAxAEAIZQBAQAAAAGWAQEAwwEAIaABAQAAAAEDAAAABwAgAQAACAAwAgAACQAgDAMAAOIBACAHAADgAQAgggEAAOQBADCDAQAACwAQhAEAAOQBADCUAQEAwwEAIZUBAQDDAQAhlgEBAMMBACGYAUAAxAEAIZkBQADEAQAhmgEBAMMBACGfASAA5QEAIQIDAADZAgAgBwAA2AIAIAwDAADiAQAgBwAA4AEAIIIBAADkAQAwgwEAAAsAEIQBAADkAQAwlAEBAAAAAZUBAQDDAQAhlgEBAMMBACGYAUAAxAEAIZkBQADEAQAhmgEBAMMBACGfASAA5QEAIQMAAAALACABAAAMADACAAANACALAwAA4gEAIAYAAOMBACCCAQAA4QEAMIMBAAAPABCEAQAA4QEAMJQBAQDDAQAhlQEBAMMBACGWAQEAwwEAIZcBAQDDAQAhmAFAAMQBACGZAUAAxAEAIQIDAADZAgAgBgAA2gIAIAsDAADiAQAgBgAA4wEAIIIBAADhAQAwgwEAAA8AEIQBAADhAQAwlAEBAAAAAZUBAQDDAQAhlgEBAMMBACGXAQEAwwEAIZgBQADEAQAhmQFAAMQBACEDAAAADwAgAQAAEAAwAgAAEQAgAQAAAA8AIAMAAAAPACABAAAQADACAAARACABAAAAAwAgAQAAAAcAIAEAAAALACABAAAADwAgAQAAAAEAIBAEAADdAQAgBQAA3gEAIAcAAOABACAJAADfAQAgggEAANsBADCDAQAAGgAQhAEAANsBADCUAQEAwwEAIZgBQADEAQAhmQFAAMQBACGrAQEAzQEAIawBAQDNAQAhrQFAANwBACGuAQEAzQEAIa8BQADcAQAhsAEBAM0BACEKBAAA1QIAIAUAANYCACAHAADYAgAgCQAA1wIAIKsBAAD2AQAgrAEAAPYBACCtAQAA9gEAIK4BAAD2AQAgrwEAAPYBACCwAQAA9gEAIAMAAAAaACABAAAbADACAAABACADAAAAGgAgAQAAGwAwAgAAAQAgAwAAABoAIAEAABsAMAIAAAEAIA0EAADRAgAgBQAA0gIAIAcAANQCACAJAADTAgAglAEBAAAAAZgBQAAAAAGZAUAAAAABqwEBAAAAAawBAQAAAAGtAUAAAAABrgEBAAAAAa8BQAAAAAGwAQEAAAABAQ8AAB8AIAmUAQEAAAABmAFAAAAAAZkBQAAAAAGrAQEAAAABrAEBAAAAAa0BQAAAAAGuAQEAAAABrwFAAAAAAbABAQAAAAEBDwAAIQAwAQ8AACEAMA0EAACgAgAgBQAAoQIAIAcAAKMCACAJAACiAgAglAEBAO0BACGYAUAA7gEAIZkBQADuAQAhqwEBAPoBACGsAQEA-gEAIa0BQACfAgAhrgEBAPoBACGvAUAAnwIAIbABAQD6AQAhAgAAAAEAIA8AACQAIAmUAQEA7QEAIZgBQADuAQAhmQFAAO4BACGrAQEA-gEAIawBAQD6AQAhrQFAAJ8CACGuAQEA-gEAIa8BQACfAgAhsAEBAPoBACECAAAAGgAgDwAAJgAgAgAAABoAIA8AACYAIAMAAAABACAWAAAfACAXAAAkACABAAAAAQAgAQAAABoAIAkIAACcAgAgHAAAngIAIB0AAJ0CACCrAQAA9gEAIKwBAAD2AQAgrQEAAPYBACCuAQAA9gEAIK8BAAD2AQAgsAEAAPYBACAMggEAANcBADCDAQAALQAQhAEAANcBADCUAQEAuwEAIZgBQAC8AQAhmQFAALwBACGrAQEAyAEAIawBAQDIAQAhrQFAANgBACGuAQEAyAEAIa8BQADYAQAhsAEBAMgBACEDAAAAGgAgAQAALAAwGwAALQAgAwAAABoAIAEAABsAMAIAAAEAIAEAAAAFACABAAAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgDQMAAJsCACCUAQEAAAABlgEBAAAAAaEBAQAAAAGiAQEAAAABowEBAAAAAaQBAQAAAAGlAQEAAAABpgECAAAAAacBAQAAAAGoAQEAAAABqQEBAAAAAaoBAQAAAAEBDwAANQAgDJQBAQAAAAGWAQEAAAABoQEBAAAAAaIBAQAAAAGjAQEAAAABpAEBAAAAAaUBAQAAAAGmAQIAAAABpwEBAAAAAagBAQAAAAGpAQEAAAABqgEBAAAAAQEPAAA3ADABDwAANwAwDQMAAJoCACCUAQEA7QEAIZYBAQDtAQAhoQEBAO0BACGiAQEA7QEAIaMBAQDtAQAhpAEBAPoBACGlAQEA-gEAIaYBAgCZAgAhpwEBAPoBACGoAQEA-gEAIakBAQD6AQAhqgEBAPoBACECAAAABQAgDwAAOgAgDJQBAQDtAQAhlgEBAO0BACGhAQEA7QEAIaIBAQDtAQAhowEBAO0BACGkAQEA-gEAIaUBAQD6AQAhpgECAJkCACGnAQEA-gEAIagBAQD6AQAhqQEBAPoBACGqAQEA-gEAIQIAAAADACAPAAA8ACACAAAAAwAgDwAAPAAgAwAAAAUAIBYAADUAIBcAADoAIAEAAAAFACABAAAAAwAgDAgAAJQCACAcAACXAgAgHQAAlgIAIC4AAJUCACAvAACYAgAgpAEAAPYBACClAQAA9gEAIKYBAAD2AQAgpwEAAPYBACCoAQAA9gEAIKkBAAD2AQAgqgEAAPYBACAPggEAANMBADCDAQAAQwAQhAEAANMBADCUAQEAuwEAIZYBAQC7AQAhoQEBALsBACGiAQEAuwEAIaMBAQC7AQAhpAEBAMgBACGlAQEAyAEAIaYBAgDUAQAhpwEBAMgBACGoAQEAyAEAIakBAQDIAQAhqgEBAMgBACEDAAAAAwAgAQAAQgAwGwAAQwAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgBQMAAJMCACCHAUAAAAABlAEBAAAAAZYBAQAAAAGgAQEAAAABAQ8AAEsAIASHAUAAAAABlAEBAAAAAZYBAQAAAAGgAQEAAAABAQ8AAE0AMAEPAABNADAFAwAAkgIAIIcBQADuAQAhlAEBAO0BACGWAQEA7QEAIaABAQDtAQAhAgAAAAkAIA8AAFAAIASHAUAA7gEAIZQBAQDtAQAhlgEBAO0BACGgAQEA7QEAIQIAAAAHACAPAABSACACAAAABwAgDwAAUgAgAwAAAAkAIBYAAEsAIBcAAFAAIAEAAAAJACABAAAABwAgAwgAAI8CACAcAACRAgAgHQAAkAIAIAeCAQAA0gEAMIMBAABZABCEAQAA0gEAMIcBQAC8AQAhlAEBALsBACGWAQEAuwEAIaABAQC7AQAhAwAAAAcAIAEAAFgAMBsAAFkAIAMAAAAHACABAAAIADACAAAJACABAAAADQAgAQAAAA0AIAMAAAALACABAAAMADACAAANACADAAAACwAgAQAADAAwAgAADQAgAwAAAAsAIAEAAAwAMAIAAA0AIAkDAACNAgAgBwAAjgIAIJQBAQAAAAGVAQEAAAABlgEBAAAAAZgBQAAAAAGZAUAAAAABmgEBAAAAAZ8BIAAAAAEBDwAAYQAgB5QBAQAAAAGVAQEAAAABlgEBAAAAAZgBQAAAAAGZAUAAAAABmgEBAAAAAZ8BIAAAAAEBDwAAYwAwAQ8AAGMAMAkDAAD_AQAgBwAAgAIAIJQBAQDtAQAhlQEBAO0BACGWAQEA7QEAIZgBQADuAQAhmQFAAO4BACGaAQEA7QEAIZ8BIAD-AQAhAgAAAA0AIA8AAGYAIAeUAQEA7QEAIZUBAQDtAQAhlgEBAO0BACGYAUAA7gEAIZkBQADuAQAhmgEBAO0BACGfASAA_gEAIQIAAAALACAPAABoACACAAAACwAgDwAAaAAgAwAAAA0AIBYAAGEAIBcAAGYAIAEAAAANACABAAAACwAgAwgAAPsBACAcAAD9AQAgHQAA_AEAIAqCAQAAzgEAMIMBAABvABCEAQAAzgEAMJQBAQC7AQAhlQEBALsBACGWAQEAuwEAIZgBQAC8AQAhmQFAALwBACGaAQEAuwEAIZ8BIADPAQAhAwAAAAsAIAEAAG4AMBsAAG8AIAMAAAALACABAAAMADACAAANACALggEAAMwBADCDAQAAdQAQhAEAAMwBADCUAQEAAAABmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhmwEBAM0BACGcAQEAwwEAIZ0BAQDNAQAhngEBAM0BACEBAAAAcgAgAQAAAHIAIAuCAQAAzAEAMIMBAAB1ABCEAQAAzAEAMJQBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhmwEBAM0BACGcAQEAwwEAIZ0BAQDNAQAhngEBAM0BACEDmwEAAPYBACCdAQAA9gEAIJ4BAAD2AQAgAwAAAHUAIAEAAHYAMAIAAHIAIAMAAAB1ACABAAB2ADACAAByACADAAAAdQAgAQAAdgAwAgAAcgAgCJQBAQAAAAGYAUAAAAABmQFAAAAAAZoBAQAAAAGbAQEAAAABnAEBAAAAAZ0BAQAAAAGeAQEAAAABAQ8AAHoAIAiUAQEAAAABmAFAAAAAAZkBQAAAAAGaAQEAAAABmwEBAAAAAZwBAQAAAAGdAQEAAAABngEBAAAAAQEPAAB8ADABDwAAfAAwCJQBAQDtAQAhmAFAAO4BACGZAUAA7gEAIZoBAQDtAQAhmwEBAPoBACGcAQEA7QEAIZ0BAQD6AQAhngEBAPoBACECAAAAcgAgDwAAfwAgCJQBAQDtAQAhmAFAAO4BACGZAUAA7gEAIZoBAQDtAQAhmwEBAPoBACGcAQEA7QEAIZ0BAQD6AQAhngEBAPoBACECAAAAdQAgDwAAgQEAIAIAAAB1ACAPAACBAQAgAwAAAHIAIBYAAHoAIBcAAH8AIAEAAAByACABAAAAdQAgBggAAPcBACAcAAD5AQAgHQAA-AEAIJsBAAD2AQAgnQEAAPYBACCeAQAA9gEAIAuCAQAAxwEAMIMBAACIAQAQhAEAAMcBADCUAQEAuwEAIZgBQAC8AQAhmQFAALwBACGaAQEAuwEAIZsBAQDIAQAhnAEBALsBACGdAQEAyAEAIZ4BAQDIAQAhAwAAAHUAIAEAAIcBADAbAACIAQAgAwAAAHUAIAEAAHYAMAIAAHIAIAEAAAARACABAAAAEQAgAwAAAA8AIAEAABAAMAIAABEAIAMAAAAPACABAAAQADACAAARACADAAAADwAgAQAAEAAwAgAAEQAgCAMAAPQBACAGAAD1AQAglAEBAAAAAZUBAQAAAAGWAQEAAAABlwEBAAAAAZgBQAAAAAGZAUAAAAABAQ8AAJABACAGlAEBAAAAAZUBAQAAAAGWAQEAAAABlwEBAAAAAZgBQAAAAAGZAUAAAAABAQ8AAJIBADABDwAAkgEAMAgDAADyAQAgBgAA8wEAIJQBAQDtAQAhlQEBAO0BACGWAQEA7QEAIZcBAQDtAQAhmAFAAO4BACGZAUAA7gEAIQIAAAARACAPAACVAQAgBpQBAQDtAQAhlQEBAO0BACGWAQEA7QEAIZcBAQDtAQAhmAFAAO4BACGZAUAA7gEAIQIAAAAPACAPAACXAQAgAgAAAA8AIA8AAJcBACADAAAAEQAgFgAAkAEAIBcAAJUBACABAAAAEQAgAQAAAA8AIAMIAADvAQAgHAAA8QEAIB0AAPABACAJggEAAMYBADCDAQAAngEAEIQBAADGAQAwlAEBALsBACGVAQEAuwEAIZYBAQC7AQAhlwEBALsBACGYAUAAvAEAIZkBQAC8AQAhAwAAAA8AIAEAAJ0BADAbAACeAQAgAwAAAA8AIAEAABAAMAIAABEAIAeCAQAAwgEAMIMBAACkAQAQhAEAAMIBADCFAQEAwwEAIYYBAQAAAAGHAUAAxAEAIZMBAADFAQAgAQAAAKEBACABAAAAoQEAIAaCAQAAwgEAMIMBAACkAQAQhAEAAMIBADCFAQEAwwEAIYYBAQDDAQAhhwFAAMQBACEAAwAAAKQBACABAAClAQAwAgAAoQEAIAMAAACkAQAgAQAApQEAMAIAAKEBACADAAAApAEAIAEAAKUBADACAAChAQAgA4UBAQAAAAGGAQEAAAABhwFAAAAAAQEPAACpAQAgA4UBAQAAAAGGAQEAAAABhwFAAAAAAQEPAACrAQAwAQ8AAKsBADADhQEBAO0BACGGAQEA7QEAIYcBQADuAQAhAgAAAKEBACAPAACuAQAgA4UBAQDtAQAhhgEBAO0BACGHAUAA7gEAIQIAAACkAQAgDwAAsAEAIAIAAACkAQAgDwAAsAEAIAMAAAChAQAgFgAAqQEAIBcAAK4BACABAAAAoQEAIAEAAACkAQAgAwgAAOoBACAcAADsAQAgHQAA6wEAIAaCAQAAugEAMIMBAAC3AQAQhAEAALoBADCFAQEAuwEAIYYBAQC7AQAhhwFAALwBACEDAAAApAEAIAEAALYBADAbAAC3AQAgAwAAAKQBACABAAClAQAwAgAAoQEAIAaCAQAAugEAMIMBAAC3AQAQhAEAALoBADCFAQEAuwEAIYYBAQC7AQAhhwFAALwBACEOCAAAvgEAIBwAAMEBACAdAADBAQAgiAEBAAAAAYkBAQAAAASKAQEAAAAEiwEBAAAAAYwBAQAAAAGNAQEAAAABjgEBAAAAAY8BAQDAAQAhkAEBAAAAAZEBAQAAAAGSAQEAAAABCwgAAL4BACAcAAC_AQAgHQAAvwEAIIgBQAAAAAGJAUAAAAAEigFAAAAABIsBQAAAAAGMAUAAAAABjQFAAAAAAY4BQAAAAAGPAUAAvQEAIQsIAAC-AQAgHAAAvwEAIB0AAL8BACCIAUAAAAABiQFAAAAABIoBQAAAAASLAUAAAAABjAFAAAAAAY0BQAAAAAGOAUAAAAABjwFAAL0BACEIiAECAAAAAYkBAgAAAASKAQIAAAAEiwECAAAAAYwBAgAAAAGNAQIAAAABjgECAAAAAY8BAgC-AQAhCIgBQAAAAAGJAUAAAAAEigFAAAAABIsBQAAAAAGMAUAAAAABjQFAAAAAAY4BQAAAAAGPAUAAvwEAIQ4IAAC-AQAgHAAAwQEAIB0AAMEBACCIAQEAAAABiQEBAAAABIoBAQAAAASLAQEAAAABjAEBAAAAAY0BAQAAAAGOAQEAAAABjwEBAMABACGQAQEAAAABkQEBAAAAAZIBAQAAAAELiAEBAAAAAYkBAQAAAASKAQEAAAAEiwEBAAAAAYwBAQAAAAGNAQEAAAABjgEBAAAAAY8BAQDBAQAhkAEBAAAAAZEBAQAAAAGSAQEAAAABBoIBAADCAQAwgwEAAKQBABCEAQAAwgEAMIUBAQDDAQAhhgEBAMMBACGHAUAAxAEAIQuIAQEAAAABiQEBAAAABIoBAQAAAASLAQEAAAABjAEBAAAAAY0BAQAAAAGOAQEAAAABjwEBAMEBACGQAQEAAAABkQEBAAAAAZIBAQAAAAEIiAFAAAAAAYkBQAAAAASKAUAAAAAEiwFAAAAAAYwBQAAAAAGNAUAAAAABjgFAAAAAAY8BQAC_AQAhAoUBAQAAAAGGAQEAAAABCYIBAADGAQAwgwEAAJ4BABCEAQAAxgEAMJQBAQC7AQAhlQEBALsBACGWAQEAuwEAIZcBAQC7AQAhmAFAALwBACGZAUAAvAEAIQuCAQAAxwEAMIMBAACIAQAQhAEAAMcBADCUAQEAuwEAIZgBQAC8AQAhmQFAALwBACGaAQEAuwEAIZsBAQDIAQAhnAEBALsBACGdAQEAyAEAIZ4BAQDIAQAhDggAAMoBACAcAADLAQAgHQAAywEAIIgBAQAAAAGJAQEAAAAFigEBAAAABYsBAQAAAAGMAQEAAAABjQEBAAAAAY4BAQAAAAGPAQEAyQEAIZABAQAAAAGRAQEAAAABkgEBAAAAAQ4IAADKAQAgHAAAywEAIB0AAMsBACCIAQEAAAABiQEBAAAABYoBAQAAAAWLAQEAAAABjAEBAAAAAY0BAQAAAAGOAQEAAAABjwEBAMkBACGQAQEAAAABkQEBAAAAAZIBAQAAAAEIiAECAAAAAYkBAgAAAAWKAQIAAAAFiwECAAAAAYwBAgAAAAGNAQIAAAABjgECAAAAAY8BAgDKAQAhC4gBAQAAAAGJAQEAAAAFigEBAAAABYsBAQAAAAGMAQEAAAABjQEBAAAAAY4BAQAAAAGPAQEAywEAIZABAQAAAAGRAQEAAAABkgEBAAAAAQuCAQAAzAEAMIMBAAB1ABCEAQAAzAEAMJQBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhmwEBAM0BACGcAQEAwwEAIZ0BAQDNAQAhngEBAM0BACELiAEBAAAAAYkBAQAAAAWKAQEAAAAFiwEBAAAAAYwBAQAAAAGNAQEAAAABjgEBAAAAAY8BAQDLAQAhkAEBAAAAAZEBAQAAAAGSAQEAAAABCoIBAADOAQAwgwEAAG8AEIQBAADOAQAwlAEBALsBACGVAQEAuwEAIZYBAQC7AQAhmAFAALwBACGZAUAAvAEAIZoBAQC7AQAhnwEgAM8BACEFCAAAvgEAIBwAANEBACAdAADRAQAgiAEgAAAAAY8BIADQAQAhBQgAAL4BACAcAADRAQAgHQAA0QEAIIgBIAAAAAGPASAA0AEAIQKIASAAAAABjwEgANEBACEHggEAANIBADCDAQAAWQAQhAEAANIBADCHAUAAvAEAIZQBAQC7AQAhlgEBALsBACGgAQEAuwEAIQ-CAQAA0wEAMIMBAABDABCEAQAA0wEAMJQBAQC7AQAhlgEBALsBACGhAQEAuwEAIaIBAQC7AQAhowEBALsBACGkAQEAyAEAIaUBAQDIAQAhpgECANQBACGnAQEAyAEAIagBAQDIAQAhqQEBAMgBACGqAQEAyAEAIQ0IAADKAQAgHAAAygEAIB0AAMoBACAuAADWAQAgLwAAygEAIIgBAgAAAAGJAQIAAAAFigECAAAABYsBAgAAAAGMAQIAAAABjQECAAAAAY4BAgAAAAGPAQIA1QEAIQ0IAADKAQAgHAAAygEAIB0AAMoBACAuAADWAQAgLwAAygEAIIgBAgAAAAGJAQIAAAAFigECAAAABYsBAgAAAAGMAQIAAAABjQECAAAAAY4BAgAAAAGPAQIA1QEAIQiIAQgAAAABiQEIAAAABYoBCAAAAAWLAQgAAAABjAEIAAAAAY0BCAAAAAGOAQgAAAABjwEIANYBACEMggEAANcBADCDAQAALQAQhAEAANcBADCUAQEAuwEAIZgBQAC8AQAhmQFAALwBACGrAQEAyAEAIawBAQDIAQAhrQFAANgBACGuAQEAyAEAIa8BQADYAQAhsAEBAMgBACELCAAAygEAIBwAANoBACAdAADaAQAgiAFAAAAAAYkBQAAAAAWKAUAAAAAFiwFAAAAAAYwBQAAAAAGNAUAAAAABjgFAAAAAAY8BQADZAQAhCwgAAMoBACAcAADaAQAgHQAA2gEAIIgBQAAAAAGJAUAAAAAFigFAAAAABYsBQAAAAAGMAUAAAAABjQFAAAAAAY4BQAAAAAGPAUAA2QEAIQiIAUAAAAABiQFAAAAABYoBQAAAAAWLAUAAAAABjAFAAAAAAY0BQAAAAAGOAUAAAAABjwFAANoBACEQBAAA3QEAIAUAAN4BACAHAADgAQAgCQAA3wEAIIIBAADbAQAwgwEAABoAEIQBAADbAQAwlAEBAMMBACGYAUAAxAEAIZkBQADEAQAhqwEBAM0BACGsAQEAzQEAIa0BQADcAQAhrgEBAM0BACGvAUAA3AEAIbABAQDNAQAhCIgBQAAAAAGJAUAAAAAFigFAAAAABYsBQAAAAAGMAUAAAAABjQFAAAAAAY4BQAAAAAGPAUAA2gEAIQOxAQAAAwAgsgEAAAMAILMBAAADACADsQEAAAcAILIBAAAHACCzAQAABwAgA7EBAAALACCyAQAACwAgswEAAAsAIAOxAQAADwAgsgEAAA8AILMBAAAPACALAwAA4gEAIAYAAOMBACCCAQAA4QEAMIMBAAAPABCEAQAA4QEAMJQBAQDDAQAhlQEBAMMBACGWAQEAwwEAIZcBAQDDAQAhmAFAAMQBACGZAUAAxAEAIRIEAADdAQAgBQAA3gEAIAcAAOABACAJAADfAQAgggEAANsBADCDAQAAGgAQhAEAANsBADCUAQEAwwEAIZgBQADEAQAhmQFAAMQBACGrAQEAzQEAIawBAQDNAQAhrQFAANwBACGuAQEAzQEAIa8BQADcAQAhsAEBAM0BACG1AQAAGgAgtgEAABoAIA4DAADiAQAgBwAA4AEAIIIBAADkAQAwgwEAAAsAEIQBAADkAQAwlAEBAMMBACGVAQEAwwEAIZYBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhnwEgAOUBACG1AQAACwAgtgEAAAsAIAwDAADiAQAgBwAA4AEAIIIBAADkAQAwgwEAAAsAEIQBAADkAQAwlAEBAMMBACGVAQEAwwEAIZYBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhnwEgAOUBACECiAEgAAAAAY8BIADRAQAhCAMAAOIBACCCAQAA5gEAMIMBAAAHABCEAQAA5gEAMIcBQADEAQAhlAEBAMMBACGWAQEAwwEAIaABAQDDAQAhAqIBAQAAAAGjAQEAAAABEAMAAOIBACCCAQAA6AEAMIMBAAADABCEAQAA6AEAMJQBAQDDAQAhlgEBAMMBACGhAQEAwwEAIaIBAQDDAQAhowEBAMMBACGkAQEAzQEAIaUBAQDNAQAhpgECAOkBACGnAQEAzQEAIagBAQDNAQAhqQEBAM0BACGqAQEAzQEAIQiIAQIAAAABiQECAAAABYoBAgAAAAWLAQIAAAABjAECAAAAAY0BAgAAAAGOAQIAAAABjwECAMoBACEAAAABugEBAAAAAQG6AUAAAAABAAAABRYAAPECACAXAAD3AgAgtwEAAPICACC4AQAA9gIAIL0BAAABACAFFgAA7wIAIBcAAPQCACC3AQAA8AIAILgBAADzAgAgvQEAAA0AIAMWAADxAgAgtwEAAPICACC9AQAAAQAgAxYAAO8CACC3AQAA8AIAIL0BAAANACAAAAAAAboBAQAAAAEAAAABugEgAAAAAQUWAADpAgAgFwAA7QIAILcBAADqAgAguAEAAOwCACC9AQAAAQAgCxYAAIECADAXAACGAgAwtwEAAIICADC4AQAAgwIAMLkBAACEAgAgugEAAIUCADC7AQAAhQIAMLwBAACFAgAwvQEAAIUCADC-AQAAhwIAML8BAACIAgAwBgMAAPQBACCUAQEAAAABlQEBAAAAAZYBAQAAAAGYAUAAAAABmQFAAAAAAQIAAAARACAWAACMAgAgAwAAABEAIBYAAIwCACAXAACLAgAgAQ8AAOsCADALAwAA4gEAIAYAAOMBACCCAQAA4QEAMIMBAAAPABCEAQAA4QEAMJQBAQAAAAGVAQEAwwEAIZYBAQDDAQAhlwEBAMMBACGYAUAAxAEAIZkBQADEAQAhAgAAABEAIA8AAIsCACACAAAAiQIAIA8AAIoCACAJggEAAIgCADCDAQAAiQIAEIQBAACIAgAwlAEBAMMBACGVAQEAwwEAIZYBAQDDAQAhlwEBAMMBACGYAUAAxAEAIZkBQADEAQAhCYIBAACIAgAwgwEAAIkCABCEAQAAiAIAMJQBAQDDAQAhlQEBAMMBACGWAQEAwwEAIZcBAQDDAQAhmAFAAMQBACGZAUAAxAEAIQWUAQEA7QEAIZUBAQDtAQAhlgEBAO0BACGYAUAA7gEAIZkBQADuAQAhBgMAAPIBACCUAQEA7QEAIZUBAQDtAQAhlgEBAO0BACGYAUAA7gEAIZkBQADuAQAhBgMAAPQBACCUAQEAAAABlQEBAAAAAZYBAQAAAAGYAUAAAAABmQFAAAAAAQMWAADpAgAgtwEAAOoCACC9AQAAAQAgBBYAAIECADC3AQAAggIAMLkBAACEAgAgvQEAAIUCADAAAAAFFgAA5AIAIBcAAOcCACC3AQAA5QIAILgBAADmAgAgvQEAAAEAIAMWAADkAgAgtwEAAOUCACC9AQAAAQAgAAAAAAAFugECAAAAAcABAgAAAAHBAQIAAAABwgECAAAAAcMBAgAAAAEFFgAA3wIAIBcAAOICACC3AQAA4AIAILgBAADhAgAgvQEAAAEAIAMWAADfAgAgtwEAAOACACC9AQAAAQAgAAAAAboBQAAAAAELFgAAxQIAMBcAAMoCADC3AQAAxgIAMLgBAADHAgAwuQEAAMgCACC6AQAAyQIAMLsBAADJAgAwvAEAAMkCADC9AQAAyQIAML4BAADLAgAwvwEAAMwCADALFgAAuQIAMBcAAL4CADC3AQAAugIAMLgBAAC7AgAwuQEAALwCACC6AQAAvQIAMLsBAAC9AgAwvAEAAL0CADC9AQAAvQIAML4BAAC_AgAwvwEAAMACADALFgAArQIAMBcAALICADC3AQAArgIAMLgBAACvAgAwuQEAALACACC6AQAAsQIAMLsBAACxAgAwvAEAALECADC9AQAAsQIAML4BAACzAgAwvwEAALQCADALFgAApAIAMBcAAKgCADC3AQAApQIAMLgBAACmAgAwuQEAAKcCACC6AQAAhQIAMLsBAACFAgAwvAEAAIUCADC9AQAAhQIAML4BAACpAgAwvwEAAIgCADAGBgAA9QEAIJQBAQAAAAGVAQEAAAABlwEBAAAAAZgBQAAAAAGZAUAAAAABAgAAABEAIBYAAKwCACADAAAAEQAgFgAArAIAIBcAAKsCACABDwAA3gIAMAIAAAARACAPAACrAgAgAgAAAIkCACAPAACqAgAgBZQBAQDtAQAhlQEBAO0BACGXAQEA7QEAIZgBQADuAQAhmQFAAO4BACEGBgAA8wEAIJQBAQDtAQAhlQEBAO0BACGXAQEA7QEAIZgBQADuAQAhmQFAAO4BACEGBgAA9QEAIJQBAQAAAAGVAQEAAAABlwEBAAAAAZgBQAAAAAGZAUAAAAABBwcAAI4CACCUAQEAAAABlQEBAAAAAZgBQAAAAAGZAUAAAAABmgEBAAAAAZ8BIAAAAAECAAAADQAgFgAAuAIAIAMAAAANACAWAAC4AgAgFwAAtwIAIAEPAADdAgAwDAMAAOIBACAHAADgAQAgggEAAOQBADCDAQAACwAQhAEAAOQBADCUAQEAAAABlQEBAMMBACGWAQEAwwEAIZgBQADEAQAhmQFAAMQBACGaAQEAwwEAIZ8BIADlAQAhAgAAAA0AIA8AALcCACACAAAAtQIAIA8AALYCACAKggEAALQCADCDAQAAtQIAEIQBAAC0AgAwlAEBAMMBACGVAQEAwwEAIZYBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhnwEgAOUBACEKggEAALQCADCDAQAAtQIAEIQBAAC0AgAwlAEBAMMBACGVAQEAwwEAIZYBAQDDAQAhmAFAAMQBACGZAUAAxAEAIZoBAQDDAQAhnwEgAOUBACEGlAEBAO0BACGVAQEA7QEAIZgBQADuAQAhmQFAAO4BACGaAQEA7QEAIZ8BIAD-AQAhBwcAAIACACCUAQEA7QEAIZUBAQDtAQAhmAFAAO4BACGZAUAA7gEAIZoBAQDtAQAhnwEgAP4BACEHBwAAjgIAIJQBAQAAAAGVAQEAAAABmAFAAAAAAZkBQAAAAAGaAQEAAAABnwEgAAAAAQOHAUAAAAABlAEBAAAAAaABAQAAAAECAAAACQAgFgAAxAIAIAMAAAAJACAWAADEAgAgFwAAwwIAIAEPAADcAgAwCAMAAOIBACCCAQAA5gEAMIMBAAAHABCEAQAA5gEAMIcBQADEAQAhlAEBAAAAAZYBAQDDAQAhoAEBAAAAAQIAAAAJACAPAADDAgAgAgAAAMECACAPAADCAgAgB4IBAADAAgAwgwEAAMECABCEAQAAwAIAMIcBQADEAQAhlAEBAMMBACGWAQEAwwEAIaABAQDDAQAhB4IBAADAAgAwgwEAAMECABCEAQAAwAIAMIcBQADEAQAhlAEBAMMBACGWAQEAwwEAIaABAQDDAQAhA4cBQADuAQAhlAEBAO0BACGgAQEA7QEAIQOHAUAA7gEAIZQBAQDtAQAhoAEBAO0BACEDhwFAAAAAAZQBAQAAAAGgAQEAAAABC5QBAQAAAAGhAQEAAAABogEBAAAAAaMBAQAAAAGkAQEAAAABpQEBAAAAAaYBAgAAAAGnAQEAAAABqAEBAAAAAakBAQAAAAGqAQEAAAABAgAAAAUAIBYAANACACADAAAABQAgFgAA0AIAIBcAAM8CACABDwAA2wIAMBEDAADiAQAgggEAAOgBADCDAQAAAwAQhAEAAOgBADCUAQEAAAABlgEBAMMBACGhAQEAwwEAIaIBAQDDAQAhowEBAMMBACGkAQEAzQEAIaUBAQDNAQAhpgECAOkBACGnAQEAzQEAIagBAQDNAQAhqQEBAM0BACGqAQEAzQEAIbQBAADnAQAgAgAAAAUAIA8AAM8CACACAAAAzQIAIA8AAM4CACAPggEAAMwCADCDAQAAzQIAEIQBAADMAgAwlAEBAMMBACGWAQEAwwEAIaEBAQDDAQAhogEBAMMBACGjAQEAwwEAIaQBAQDNAQAhpQEBAM0BACGmAQIA6QEAIacBAQDNAQAhqAEBAM0BACGpAQEAzQEAIaoBAQDNAQAhD4IBAADMAgAwgwEAAM0CABCEAQAAzAIAMJQBAQDDAQAhlgEBAMMBACGhAQEAwwEAIaIBAQDDAQAhowEBAMMBACGkAQEAzQEAIaUBAQDNAQAhpgECAOkBACGnAQEAzQEAIagBAQDNAQAhqQEBAM0BACGqAQEAzQEAIQuUAQEA7QEAIaEBAQDtAQAhogEBAO0BACGjAQEA7QEAIaQBAQD6AQAhpQEBAPoBACGmAQIAmQIAIacBAQD6AQAhqAEBAPoBACGpAQEA-gEAIaoBAQD6AQAhC5QBAQDtAQAhoQEBAO0BACGiAQEA7QEAIaMBAQDtAQAhpAEBAPoBACGlAQEA-gEAIaYBAgCZAgAhpwEBAPoBACGoAQEA-gEAIakBAQD6AQAhqgEBAPoBACELlAEBAAAAAaEBAQAAAAGiAQEAAAABowEBAAAAAaQBAQAAAAGlAQEAAAABpgECAAAAAacBAQAAAAGoAQEAAAABqQEBAAAAAaoBAQAAAAEEFgAAxQIAMLcBAADGAgAwuQEAAMgCACC9AQAAyQIAMAQWAAC5AgAwtwEAALoCADC5AQAAvAIAIL0BAAC9AgAwBBYAAK0CADC3AQAArgIAMLkBAACwAgAgvQEAALECADAEFgAApAIAMLcBAAClAgAwuQEAAKcCACC9AQAAhQIAMAAAAAAKBAAA1QIAIAUAANYCACAHAADYAgAgCQAA1wIAIKsBAAD2AQAgrAEAAPYBACCtAQAA9gEAIK4BAAD2AQAgrwEAAPYBACCwAQAA9gEAIAIDAADZAgAgBwAA2AIAIAuUAQEAAAABoQEBAAAAAaIBAQAAAAGjAQEAAAABpAEBAAAAAaUBAQAAAAGmAQIAAAABpwEBAAAAAagBAQAAAAGpAQEAAAABqgEBAAAAAQOHAUAAAAABlAEBAAAAAaABAQAAAAEGlAEBAAAAAZUBAQAAAAGYAUAAAAABmQFAAAAAAZoBAQAAAAGfASAAAAABBZQBAQAAAAGVAQEAAAABlwEBAAAAAZgBQAAAAAGZAUAAAAABDAUAANICACAHAADUAgAgCQAA0wIAIJQBAQAAAAGYAUAAAAABmQFAAAAAAasBAQAAAAGsAQEAAAABrQFAAAAAAa4BAQAAAAGvAUAAAAABsAEBAAAAAQIAAAABACAWAADfAgAgAwAAABoAIBYAAN8CACAXAADjAgAgDgAAABoAIAUAAKECACAHAACjAgAgCQAAogIAIA8AAOMCACCUAQEA7QEAIZgBQADuAQAhmQFAAO4BACGrAQEA-gEAIawBAQD6AQAhrQFAAJ8CACGuAQEA-gEAIa8BQACfAgAhsAEBAPoBACEMBQAAoQIAIAcAAKMCACAJAACiAgAglAEBAO0BACGYAUAA7gEAIZkBQADuAQAhqwEBAPoBACGsAQEA-gEAIa0BQACfAgAhrgEBAPoBACGvAUAAnwIAIbABAQD6AQAhDAQAANECACAHAADUAgAgCQAA0wIAIJQBAQAAAAGYAUAAAAABmQFAAAAAAasBAQAAAAGsAQEAAAABrQFAAAAAAa4BAQAAAAGvAUAAAAABsAEBAAAAAQIAAAABACAWAADkAgAgAwAAABoAIBYAAOQCACAXAADoAgAgDgAAABoAIAQAAKACACAHAACjAgAgCQAAogIAIA8AAOgCACCUAQEA7QEAIZgBQADuAQAhmQFAAO4BACGrAQEA-gEAIawBAQD6AQAhrQFAAJ8CACGuAQEA-gEAIa8BQACfAgAhsAEBAPoBACEMBAAAoAIAIAcAAKMCACAJAACiAgAglAEBAO0BACGYAUAA7gEAIZkBQADuAQAhqwEBAPoBACGsAQEA-gEAIa0BQACfAgAhrgEBAPoBACGvAUAAnwIAIbABAQD6AQAhDAQAANECACAFAADSAgAgBwAA1AIAIJQBAQAAAAGYAUAAAAABmQFAAAAAAasBAQAAAAGsAQEAAAABrQFAAAAAAa4BAQAAAAGvAUAAAAABsAEBAAAAAQIAAAABACAWAADpAgAgBZQBAQAAAAGVAQEAAAABlgEBAAAAAZgBQAAAAAGZAUAAAAABAwAAABoAIBYAAOkCACAXAADuAgAgDgAAABoAIAQAAKACACAFAAChAgAgBwAAowIAIA8AAO4CACCUAQEA7QEAIZgBQADuAQAhmQFAAO4BACGrAQEA-gEAIawBAQD6AQAhrQFAAJ8CACGuAQEA-gEAIa8BQACfAgAhsAEBAPoBACEMBAAAoAIAIAUAAKECACAHAACjAgAglAEBAO0BACGYAUAA7gEAIZkBQADuAQAhqwEBAPoBACGsAQEA-gEAIa0BQACfAgAhrgEBAPoBACGvAUAAnwIAIbABAQD6AQAhCAMAAI0CACCUAQEAAAABlQEBAAAAAZYBAQAAAAGYAUAAAAABmQFAAAAAAZoBAQAAAAGfASAAAAABAgAAAA0AIBYAAO8CACAMBAAA0QIAIAUAANICACAJAADTAgAglAEBAAAAAZgBQAAAAAGZAUAAAAABqwEBAAAAAawBAQAAAAGtAUAAAAABrgEBAAAAAa8BQAAAAAGwAQEAAAABAgAAAAEAIBYAAPECACADAAAACwAgFgAA7wIAIBcAAPUCACAKAAAACwAgAwAA_wEAIA8AAPUCACCUAQEA7QEAIZUBAQDtAQAhlgEBAO0BACGYAUAA7gEAIZkBQADuAQAhmgEBAO0BACGfASAA_gEAIQgDAAD_AQAglAEBAO0BACGVAQEA7QEAIZYBAQDtAQAhmAFAAO4BACGZAUAA7gEAIZoBAQDtAQAhnwEgAP4BACEDAAAAGgAgFgAA8QIAIBcAAPgCACAOAAAAGgAgBAAAoAIAIAUAAKECACAJAACiAgAgDwAA-AIAIJQBAQDtAQAhmAFAAO4BACGZAUAA7gEAIasBAQD6AQAhrAEBAPoBACGtAUAAnwIAIa4BAQD6AQAhrwFAAJ8CACGwAQEA-gEAIQwEAACgAgAgBQAAoQIAIAkAAKICACCUAQEA7QEAIZgBQADuAQAhmQFAAO4BACGrAQEA-gEAIawBAQD6AQAhrQFAAJ8CACGuAQEA-gEAIa8BQACfAgAhsAEBAPoBACEFBAYCBQoDBxQFCAAHCQ4EAQMAAQEDAAEDAwABBxIFCAAGAgMAAQYABAEHEwAEBBUABRYABxgACRcAAAAAAwgADBwADR0ADgAAAAMIAAwcAA0dAA4BAwABAQMAAQUIABMcABYdABcuABQvABUAAAAAAAUIABMcABYdABcuABQvABUBAwABAQMAAQMIABwcAB0dAB4AAAADCAAcHAAdHQAeAQMAAQEDAAEDCAAjHAAkHQAlAAAAAwgAIxwAJB0AJQAAAAMIACscACwdAC0AAAADCAArHAAsHQAtAgMAAQYABAIDAAEGAAQDCAAyHAAzHQA0AAAAAwgAMhwAMx0ANAAAAAMIADocADsdADwAAAADCAA6HAA7HQA8CgIBCxkBDBwBDR0BDh4BECABESIIEiMJEyUBFCcIFSgKGCkBGSoBGisIHi4LHy8PIDACITECIjICIzMCJDQCJTYCJjgIJzkQKDsCKT0IKj4RKz8CLEACLUEIMEQSMUUYMkYDM0cDNEgDNUkDNkoDN0wDOE4IOU8ZOlEDO1MIPFQaPVUDPlYDP1cIQFobQVsfQlwEQ10ERF4ERV8ERmAER2IESGQISWUgSmcES2kITGohTWsETmwET20IUHAiUXEmUnMnU3QnVHcnVXgnVnknV3snWH0IWX4oWoABJ1uCAQhcgwEpXYQBJ16FASdfhgEIYIkBKmGKAS5iiwEFY4wBBWSNAQVljgEFZo8BBWeRAQVokwEIaZQBL2qWAQVrmAEIbJkBMG2aAQVumwEFb5wBCHCfATFxoAE1cqIBNnOjATZ0pgE2dacBNnaoATZ3qgE2eKwBCHmtATd6rwE2e7EBCHyyATh9swE2frQBNn-1AQiAAbgBOYEBuQE9" +} + +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_fast_bg.sqlite.mjs"), + + getQueryCompilerWasmModule: async () => { + const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs") + return await decodeBase64AsWasm(wasm) + }, + + importName: "./query_compiler_fast_bg.js" +} + + + +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({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // 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({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // 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/orm/prisma-client/queries/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.account`: Exposes CRUD operations for the **Account** model. + * Example usage: + * ```ts + * // Fetch zero or more Accounts + * const accounts = await prisma.account.findMany() + * ``` + */ + get account(): Prisma.AccountDelegate; + + /** + * `prisma.session`: Exposes CRUD operations for the **Session** model. + * Example usage: + * ```ts + * // Fetch zero or more Sessions + * const sessions = await prisma.session.findMany() + * ``` + */ + get session(): Prisma.SessionDelegate; + + /** + * `prisma.post`: Exposes CRUD operations for the **Post** model. + * Example usage: + * ```ts + * // Fetch zero or more Posts + * const posts = await prisma.post.findMany() + * ``` + */ + get post(): Prisma.PostDelegate; + + /** + * `prisma.resource`: Exposes CRUD operations for the **Resource** model. + * Example usage: + * ```ts + * // Fetch zero or more Resources + * const resources = await prisma.resource.findMany() + * ``` + */ + get resource(): Prisma.ResourceDelegate; + + /** + * `prisma.comment`: Exposes CRUD operations for the **Comment** model. + * Example usage: + * ```ts + * // Fetch zero or more Comments + * const comments = await prisma.comment.findMany() + * ``` + */ + get comment(): Prisma.CommentDelegate; + + /** + * `prisma.verificationToken`: Exposes CRUD operations for the **VerificationToken** model. + * Example usage: + * ```ts + * // Fetch zero or more VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany() + * ``` + */ + get verificationToken(): Prisma.VerificationTokenDelegate; +} + +export function getPrismaClientClass(): PrismaClientConstructor { + return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor +} diff --git a/backend/src/generated/prisma/internal/prismaNamespace.ts b/backend/src/generated/prisma/internal/prismaNamespace.ts new file mode 100644 index 0000000..4535f43 --- /dev/null +++ b/backend/src/generated/prisma/internal/prismaNamespace.ts @@ -0,0 +1,1278 @@ + +/* !!! 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.ts" +import { type PrismaClient } from "./class.ts" + +export type * from '../models.ts' + +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.4.2 + * Query Engine version: 94a226be1cf2967af2541cca5529f0f7ba866919 + */ +export const prismaVersion: PrismaVersion = { + client: "7.4.2", + engine: "94a226be1cf2967af2541cca5529f0f7ba866919" +} + +/** + * 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', + Account: 'Account', + Session: 'Session', + Post: 'Post', + Resource: 'Resource', + Comment: 'Comment', + VerificationToken: 'VerificationToken' +} 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" | "account" | "session" | "post" | "resource" | "comment" | "verificationToken" + 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 + } + createManyAndReturn: { + args: Prisma.UserCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + 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 + } + updateManyAndReturn: { + args: Prisma.UserUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + 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 + } + } + } + Account: { + payload: Prisma.$AccountPayload + fields: Prisma.AccountFieldRefs + operations: { + findUnique: { + args: Prisma.AccountFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.AccountFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.AccountFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.AccountFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.AccountFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.AccountCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.AccountCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.AccountCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.AccountDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.AccountUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.AccountDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.AccountUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.AccountUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.AccountUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.AccountAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.AccountGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.AccountCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Session: { + payload: Prisma.$SessionPayload + fields: Prisma.SessionFieldRefs + operations: { + findUnique: { + args: Prisma.SessionFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.SessionFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.SessionFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.SessionFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.SessionFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.SessionCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.SessionCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.SessionCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.SessionDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.SessionUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.SessionDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.SessionUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.SessionUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.SessionUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.SessionAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.SessionGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.SessionCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Post: { + payload: Prisma.$PostPayload + fields: Prisma.PostFieldRefs + operations: { + findUnique: { + args: Prisma.PostFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.PostFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.PostFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.PostFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.PostFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.PostCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.PostCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.PostCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.PostDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.PostUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.PostDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.PostUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.PostUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.PostUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.PostAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.PostGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.PostCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Resource: { + payload: Prisma.$ResourcePayload + fields: Prisma.ResourceFieldRefs + operations: { + findUnique: { + args: Prisma.ResourceFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ResourceFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.ResourceFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ResourceFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.ResourceFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.ResourceCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.ResourceCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.ResourceCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.ResourceDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.ResourceUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ResourceDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ResourceUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.ResourceUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.ResourceUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.ResourceAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.ResourceGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.ResourceCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + Comment: { + payload: Prisma.$CommentPayload + fields: Prisma.CommentFieldRefs + operations: { + findUnique: { + args: Prisma.CommentFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.CommentFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.CommentFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.CommentFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.CommentFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.CommentCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.CommentCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.CommentCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.CommentDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.CommentUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.CommentDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.CommentUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.CommentUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.CommentUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.CommentAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.CommentGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.CommentCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + VerificationToken: { + payload: Prisma.$VerificationTokenPayload + fields: Prisma.VerificationTokenFieldRefs + operations: { + findUnique: { + args: Prisma.VerificationTokenFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.VerificationTokenFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.VerificationTokenFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.VerificationTokenFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.VerificationTokenFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.VerificationTokenCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.VerificationTokenCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.VerificationTokenCreateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + delete: { + args: Prisma.VerificationTokenDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.VerificationTokenUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.VerificationTokenDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.VerificationTokenUpdateManyArgs + result: BatchPayload + } + updateManyAndReturn: { + args: Prisma.VerificationTokenUpdateManyAndReturnArgs + result: runtime.Types.Utils.PayloadToResult[] + } + upsert: { + args: Prisma.VerificationTokenUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.VerificationTokenAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.VerificationTokenGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.VerificationTokenCountArgs + 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({ + Serializable: 'Serializable' +} as const) + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + phone: 'phone', + phoneVerified: 'phoneVerified', + image: 'image', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const AccountScalarFieldEnum = { + id: 'id', + userId: 'userId', + type: 'type', + provider: 'provider', + providerAccountId: 'providerAccountId', + refresh_token: 'refresh_token', + access_token: 'access_token', + expires_at: 'expires_at', + token_type: 'token_type', + scope: 'scope', + id_token: 'id_token', + session_state: 'session_state' +} as const + +export type AccountScalarFieldEnum = (typeof AccountScalarFieldEnum)[keyof typeof AccountScalarFieldEnum] + + +export const SessionScalarFieldEnum = { + id: 'id', + sessionToken: 'sessionToken', + userId: 'userId', + expires: 'expires' +} as const + +export type SessionScalarFieldEnum = (typeof SessionScalarFieldEnum)[keyof typeof SessionScalarFieldEnum] + + +export const PostScalarFieldEnum = { + id: 'id', + title: 'title', + content: 'content', + userId: 'userId', + published: 'published', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type PostScalarFieldEnum = (typeof PostScalarFieldEnum)[keyof typeof PostScalarFieldEnum] + + +export const ResourceScalarFieldEnum = { + id: 'id', + title: 'title', + description: 'description', + url: 'url', + icon: 'icon', + category: 'category', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type ResourceScalarFieldEnum = (typeof ResourceScalarFieldEnum)[keyof typeof ResourceScalarFieldEnum] + + +export const CommentScalarFieldEnum = { + id: 'id', + content: 'content', + userId: 'userId', + postId: 'postId', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type CommentScalarFieldEnum = (typeof CommentScalarFieldEnum)[keyof typeof CommentScalarFieldEnum] + + +export const VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +} as const + +export type VerificationTokenScalarFieldEnum = (typeof VerificationTokenScalarFieldEnum)[keyof typeof VerificationTokenScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + + +/** + * Field references + */ + + +/** + * Reference to a field of type 'String' + */ +export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + +/** + * Reference to a field of type 'DateTime' + */ +export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> + + + +/** + * Reference to a field of type 'Int' + */ +export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + +/** + * 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 + account?: Prisma.AccountOmit + session?: Prisma.SessionOmit + post?: Prisma.PostOmit + resource?: Prisma.ResourceOmit + comment?: Prisma.CommentOmit + verificationToken?: Prisma.VerificationTokenOmit +} + +/* 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/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts new file mode 100644 index 0000000..8d6e0ac --- /dev/null +++ b/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -0,0 +1,181 @@ + +/* !!! 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.ts' +export type * from './prismaNamespace.ts' + +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', + Account: 'Account', + Session: 'Session', + Post: 'Post', + Resource: 'Resource', + Comment: 'Comment', + VerificationToken: 'VerificationToken' +} as const + +export type ModelName = (typeof ModelName)[keyof typeof ModelName] + +/* + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + Serializable: 'Serializable' +} as const) + +export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + +export const UserScalarFieldEnum = { + id: 'id', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + phone: 'phone', + phoneVerified: 'phoneVerified', + image: 'image', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + +export const AccountScalarFieldEnum = { + id: 'id', + userId: 'userId', + type: 'type', + provider: 'provider', + providerAccountId: 'providerAccountId', + refresh_token: 'refresh_token', + access_token: 'access_token', + expires_at: 'expires_at', + token_type: 'token_type', + scope: 'scope', + id_token: 'id_token', + session_state: 'session_state' +} as const + +export type AccountScalarFieldEnum = (typeof AccountScalarFieldEnum)[keyof typeof AccountScalarFieldEnum] + + +export const SessionScalarFieldEnum = { + id: 'id', + sessionToken: 'sessionToken', + userId: 'userId', + expires: 'expires' +} as const + +export type SessionScalarFieldEnum = (typeof SessionScalarFieldEnum)[keyof typeof SessionScalarFieldEnum] + + +export const PostScalarFieldEnum = { + id: 'id', + title: 'title', + content: 'content', + userId: 'userId', + published: 'published', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type PostScalarFieldEnum = (typeof PostScalarFieldEnum)[keyof typeof PostScalarFieldEnum] + + +export const ResourceScalarFieldEnum = { + id: 'id', + title: 'title', + description: 'description', + url: 'url', + icon: 'icon', + category: 'category', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type ResourceScalarFieldEnum = (typeof ResourceScalarFieldEnum)[keyof typeof ResourceScalarFieldEnum] + + +export const CommentScalarFieldEnum = { + id: 'id', + content: 'content', + userId: 'userId', + postId: 'postId', + createdAt: 'createdAt', + updatedAt: 'updatedAt' +} as const + +export type CommentScalarFieldEnum = (typeof CommentScalarFieldEnum)[keyof typeof CommentScalarFieldEnum] + + +export const VerificationTokenScalarFieldEnum = { + identifier: 'identifier', + token: 'token', + expires: 'expires' +} as const + +export type VerificationTokenScalarFieldEnum = (typeof VerificationTokenScalarFieldEnum)[keyof typeof VerificationTokenScalarFieldEnum] + + +export const SortOrder = { + asc: 'asc', + desc: 'desc' +} as const + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + +export const NullsOrder = { + first: 'first', + last: 'last' +} as const + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + diff --git a/backend/src/generated/prisma/models.ts b/backend/src/generated/prisma/models.ts new file mode 100644 index 0000000..95e24b6 --- /dev/null +++ b/backend/src/generated/prisma/models.ts @@ -0,0 +1,18 @@ + +/* !!! 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.ts' +export type * from './models/Account.ts' +export type * from './models/Session.ts' +export type * from './models/Post.ts' +export type * from './models/Resource.ts' +export type * from './models/Comment.ts' +export type * from './models/VerificationToken.ts' +export type * from './commonInputTypes.ts' \ No newline at end of file diff --git a/backend/src/generated/prisma/models/Account.ts b/backend/src/generated/prisma/models/Account.ts new file mode 100644 index 0000000..869fcf7 --- /dev/null +++ b/backend/src/generated/prisma/models/Account.ts @@ -0,0 +1,1640 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Account` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Account + * + */ +export type AccountModel = runtime.Types.Result.DefaultSelection + +export type AggregateAccount = { + _count: AccountCountAggregateOutputType | null + _avg: AccountAvgAggregateOutputType | null + _sum: AccountSumAggregateOutputType | null + _min: AccountMinAggregateOutputType | null + _max: AccountMaxAggregateOutputType | null +} + +export type AccountAvgAggregateOutputType = { + expires_at: number | null +} + +export type AccountSumAggregateOutputType = { + expires_at: number | null +} + +export type AccountMinAggregateOutputType = { + id: string | null + userId: string | null + type: string | null + provider: string | null + providerAccountId: string | null + refresh_token: string | null + access_token: string | null + expires_at: number | null + token_type: string | null + scope: string | null + id_token: string | null + session_state: string | null +} + +export type AccountMaxAggregateOutputType = { + id: string | null + userId: string | null + type: string | null + provider: string | null + providerAccountId: string | null + refresh_token: string | null + access_token: string | null + expires_at: number | null + token_type: string | null + scope: string | null + id_token: string | null + session_state: string | null +} + +export type AccountCountAggregateOutputType = { + id: number + userId: number + type: number + provider: number + providerAccountId: number + refresh_token: number + access_token: number + expires_at: number + token_type: number + scope: number + id_token: number + session_state: number + _all: number +} + + +export type AccountAvgAggregateInputType = { + expires_at?: true +} + +export type AccountSumAggregateInputType = { + expires_at?: true +} + +export type AccountMinAggregateInputType = { + id?: true + userId?: true + type?: true + provider?: true + providerAccountId?: true + refresh_token?: true + access_token?: true + expires_at?: true + token_type?: true + scope?: true + id_token?: true + session_state?: true +} + +export type AccountMaxAggregateInputType = { + id?: true + userId?: true + type?: true + provider?: true + providerAccountId?: true + refresh_token?: true + access_token?: true + expires_at?: true + token_type?: true + scope?: true + id_token?: true + session_state?: true +} + +export type AccountCountAggregateInputType = { + id?: true + userId?: true + type?: true + provider?: true + providerAccountId?: true + refresh_token?: true + access_token?: true + expires_at?: true + token_type?: true + scope?: true + id_token?: true + session_state?: true + _all?: true +} + +export type AccountAggregateArgs = { + /** + * Filter which Account to aggregate. + */ + where?: Prisma.AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: Prisma.AccountOrderByWithRelationInput | Prisma.AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts 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` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Accounts + **/ + _count?: true | AccountCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: AccountAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: AccountSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: AccountMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: AccountMaxAggregateInputType +} + +export type GetAccountAggregateType = { + [P in keyof T & keyof AggregateAccount]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type AccountGroupByArgs = { + where?: Prisma.AccountWhereInput + orderBy?: Prisma.AccountOrderByWithAggregationInput | Prisma.AccountOrderByWithAggregationInput[] + by: Prisma.AccountScalarFieldEnum[] | Prisma.AccountScalarFieldEnum + having?: Prisma.AccountScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: AccountCountAggregateInputType | true + _avg?: AccountAvgAggregateInputType + _sum?: AccountSumAggregateInputType + _min?: AccountMinAggregateInputType + _max?: AccountMaxAggregateInputType +} + +export type AccountGroupByOutputType = { + id: string + userId: string + type: string + provider: string + providerAccountId: string + refresh_token: string | null + access_token: string | null + expires_at: number | null + token_type: string | null + scope: string | null + id_token: string | null + session_state: string | null + _count: AccountCountAggregateOutputType | null + _avg: AccountAvgAggregateOutputType | null + _sum: AccountSumAggregateOutputType | null + _min: AccountMinAggregateOutputType | null + _max: AccountMaxAggregateOutputType | null +} + +type GetAccountGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof AccountGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type AccountWhereInput = { + AND?: Prisma.AccountWhereInput | Prisma.AccountWhereInput[] + OR?: Prisma.AccountWhereInput[] + NOT?: Prisma.AccountWhereInput | Prisma.AccountWhereInput[] + id?: Prisma.StringFilter<"Account"> | string + userId?: Prisma.StringFilter<"Account"> | string + type?: Prisma.StringFilter<"Account"> | string + provider?: Prisma.StringFilter<"Account"> | string + providerAccountId?: Prisma.StringFilter<"Account"> | string + refresh_token?: Prisma.StringNullableFilter<"Account"> | string | null + access_token?: Prisma.StringNullableFilter<"Account"> | string | null + expires_at?: Prisma.IntNullableFilter<"Account"> | number | null + token_type?: Prisma.StringNullableFilter<"Account"> | string | null + scope?: Prisma.StringNullableFilter<"Account"> | string | null + id_token?: Prisma.StringNullableFilter<"Account"> | string | null + session_state?: Prisma.StringNullableFilter<"Account"> | string | null + user?: Prisma.XOR +} + +export type AccountOrderByWithRelationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + type?: Prisma.SortOrder + provider?: Prisma.SortOrder + providerAccountId?: Prisma.SortOrder + refresh_token?: Prisma.SortOrderInput | Prisma.SortOrder + access_token?: Prisma.SortOrderInput | Prisma.SortOrder + expires_at?: Prisma.SortOrderInput | Prisma.SortOrder + token_type?: Prisma.SortOrderInput | Prisma.SortOrder + scope?: Prisma.SortOrderInput | Prisma.SortOrder + id_token?: Prisma.SortOrderInput | Prisma.SortOrder + session_state?: Prisma.SortOrderInput | Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput +} + +export type AccountWhereUniqueInput = Prisma.AtLeast<{ + id?: string + provider_providerAccountId?: Prisma.AccountProviderProviderAccountIdCompoundUniqueInput + AND?: Prisma.AccountWhereInput | Prisma.AccountWhereInput[] + OR?: Prisma.AccountWhereInput[] + NOT?: Prisma.AccountWhereInput | Prisma.AccountWhereInput[] + userId?: Prisma.StringFilter<"Account"> | string + type?: Prisma.StringFilter<"Account"> | string + provider?: Prisma.StringFilter<"Account"> | string + providerAccountId?: Prisma.StringFilter<"Account"> | string + refresh_token?: Prisma.StringNullableFilter<"Account"> | string | null + access_token?: Prisma.StringNullableFilter<"Account"> | string | null + expires_at?: Prisma.IntNullableFilter<"Account"> | number | null + token_type?: Prisma.StringNullableFilter<"Account"> | string | null + scope?: Prisma.StringNullableFilter<"Account"> | string | null + id_token?: Prisma.StringNullableFilter<"Account"> | string | null + session_state?: Prisma.StringNullableFilter<"Account"> | string | null + user?: Prisma.XOR +}, "id" | "provider_providerAccountId"> + +export type AccountOrderByWithAggregationInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + type?: Prisma.SortOrder + provider?: Prisma.SortOrder + providerAccountId?: Prisma.SortOrder + refresh_token?: Prisma.SortOrderInput | Prisma.SortOrder + access_token?: Prisma.SortOrderInput | Prisma.SortOrder + expires_at?: Prisma.SortOrderInput | Prisma.SortOrder + token_type?: Prisma.SortOrderInput | Prisma.SortOrder + scope?: Prisma.SortOrderInput | Prisma.SortOrder + id_token?: Prisma.SortOrderInput | Prisma.SortOrder + session_state?: Prisma.SortOrderInput | Prisma.SortOrder + _count?: Prisma.AccountCountOrderByAggregateInput + _avg?: Prisma.AccountAvgOrderByAggregateInput + _max?: Prisma.AccountMaxOrderByAggregateInput + _min?: Prisma.AccountMinOrderByAggregateInput + _sum?: Prisma.AccountSumOrderByAggregateInput +} + +export type AccountScalarWhereWithAggregatesInput = { + AND?: Prisma.AccountScalarWhereWithAggregatesInput | Prisma.AccountScalarWhereWithAggregatesInput[] + OR?: Prisma.AccountScalarWhereWithAggregatesInput[] + NOT?: Prisma.AccountScalarWhereWithAggregatesInput | Prisma.AccountScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"Account"> | string + userId?: Prisma.StringWithAggregatesFilter<"Account"> | string + type?: Prisma.StringWithAggregatesFilter<"Account"> | string + provider?: Prisma.StringWithAggregatesFilter<"Account"> | string + providerAccountId?: Prisma.StringWithAggregatesFilter<"Account"> | string + refresh_token?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null + access_token?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null + expires_at?: Prisma.IntNullableWithAggregatesFilter<"Account"> | number | null + token_type?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null + scope?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null + id_token?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null + session_state?: Prisma.StringNullableWithAggregatesFilter<"Account"> | string | null +} + +export type AccountCreateInput = { + id?: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null + user: Prisma.UserCreateNestedOneWithoutAccountsInput +} + +export type AccountUncheckedCreateInput = { + id?: string + userId: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null +} + +export type AccountUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + user?: Prisma.UserUpdateOneRequiredWithoutAccountsNestedInput +} + +export type AccountUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type AccountCreateManyInput = { + id?: string + userId: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null +} + +export type AccountUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type AccountUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type AccountListRelationFilter = { + every?: Prisma.AccountWhereInput + some?: Prisma.AccountWhereInput + none?: Prisma.AccountWhereInput +} + +export type AccountOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type AccountProviderProviderAccountIdCompoundUniqueInput = { + provider: string + providerAccountId: string +} + +export type AccountCountOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + type?: Prisma.SortOrder + provider?: Prisma.SortOrder + providerAccountId?: Prisma.SortOrder + refresh_token?: Prisma.SortOrder + access_token?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + token_type?: Prisma.SortOrder + scope?: Prisma.SortOrder + id_token?: Prisma.SortOrder + session_state?: Prisma.SortOrder +} + +export type AccountAvgOrderByAggregateInput = { + expires_at?: Prisma.SortOrder +} + +export type AccountMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + type?: Prisma.SortOrder + provider?: Prisma.SortOrder + providerAccountId?: Prisma.SortOrder + refresh_token?: Prisma.SortOrder + access_token?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + token_type?: Prisma.SortOrder + scope?: Prisma.SortOrder + id_token?: Prisma.SortOrder + session_state?: Prisma.SortOrder +} + +export type AccountMinOrderByAggregateInput = { + id?: Prisma.SortOrder + userId?: Prisma.SortOrder + type?: Prisma.SortOrder + provider?: Prisma.SortOrder + providerAccountId?: Prisma.SortOrder + refresh_token?: Prisma.SortOrder + access_token?: Prisma.SortOrder + expires_at?: Prisma.SortOrder + token_type?: Prisma.SortOrder + scope?: Prisma.SortOrder + id_token?: Prisma.SortOrder + session_state?: Prisma.SortOrder +} + +export type AccountSumOrderByAggregateInput = { + expires_at?: Prisma.SortOrder +} + +export type AccountCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.AccountCreateWithoutUserInput[] | Prisma.AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.AccountCreateOrConnectWithoutUserInput | Prisma.AccountCreateOrConnectWithoutUserInput[] + createMany?: Prisma.AccountCreateManyUserInputEnvelope + connect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] +} + +export type AccountUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.AccountCreateWithoutUserInput[] | Prisma.AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.AccountCreateOrConnectWithoutUserInput | Prisma.AccountCreateOrConnectWithoutUserInput[] + createMany?: Prisma.AccountCreateManyUserInputEnvelope + connect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] +} + +export type AccountUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.AccountCreateWithoutUserInput[] | Prisma.AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.AccountCreateOrConnectWithoutUserInput | Prisma.AccountCreateOrConnectWithoutUserInput[] + upsert?: Prisma.AccountUpsertWithWhereUniqueWithoutUserInput | Prisma.AccountUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.AccountCreateManyUserInputEnvelope + set?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + disconnect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + delete?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + connect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + update?: Prisma.AccountUpdateWithWhereUniqueWithoutUserInput | Prisma.AccountUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.AccountUpdateManyWithWhereWithoutUserInput | Prisma.AccountUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.AccountScalarWhereInput | Prisma.AccountScalarWhereInput[] +} + +export type AccountUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.AccountCreateWithoutUserInput[] | Prisma.AccountUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.AccountCreateOrConnectWithoutUserInput | Prisma.AccountCreateOrConnectWithoutUserInput[] + upsert?: Prisma.AccountUpsertWithWhereUniqueWithoutUserInput | Prisma.AccountUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.AccountCreateManyUserInputEnvelope + set?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + disconnect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + delete?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + connect?: Prisma.AccountWhereUniqueInput | Prisma.AccountWhereUniqueInput[] + update?: Prisma.AccountUpdateWithWhereUniqueWithoutUserInput | Prisma.AccountUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.AccountUpdateManyWithWhereWithoutUserInput | Prisma.AccountUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.AccountScalarWhereInput | Prisma.AccountScalarWhereInput[] +} + +export type NullableIntFieldUpdateOperationsInput = { + set?: number | null + increment?: number + decrement?: number + multiply?: number + divide?: number +} + +export type AccountCreateWithoutUserInput = { + id?: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null +} + +export type AccountUncheckedCreateWithoutUserInput = { + id?: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null +} + +export type AccountCreateOrConnectWithoutUserInput = { + where: Prisma.AccountWhereUniqueInput + create: Prisma.XOR +} + +export type AccountCreateManyUserInputEnvelope = { + data: Prisma.AccountCreateManyUserInput | Prisma.AccountCreateManyUserInput[] +} + +export type AccountUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.AccountWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type AccountUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.AccountWhereUniqueInput + data: Prisma.XOR +} + +export type AccountUpdateManyWithWhereWithoutUserInput = { + where: Prisma.AccountScalarWhereInput + data: Prisma.XOR +} + +export type AccountScalarWhereInput = { + AND?: Prisma.AccountScalarWhereInput | Prisma.AccountScalarWhereInput[] + OR?: Prisma.AccountScalarWhereInput[] + NOT?: Prisma.AccountScalarWhereInput | Prisma.AccountScalarWhereInput[] + id?: Prisma.StringFilter<"Account"> | string + userId?: Prisma.StringFilter<"Account"> | string + type?: Prisma.StringFilter<"Account"> | string + provider?: Prisma.StringFilter<"Account"> | string + providerAccountId?: Prisma.StringFilter<"Account"> | string + refresh_token?: Prisma.StringNullableFilter<"Account"> | string | null + access_token?: Prisma.StringNullableFilter<"Account"> | string | null + expires_at?: Prisma.IntNullableFilter<"Account"> | number | null + token_type?: Prisma.StringNullableFilter<"Account"> | string | null + scope?: Prisma.StringNullableFilter<"Account"> | string | null + id_token?: Prisma.StringNullableFilter<"Account"> | string | null + session_state?: Prisma.StringNullableFilter<"Account"> | string | null +} + +export type AccountCreateManyUserInput = { + id?: string + type: string + provider: string + providerAccountId: string + refresh_token?: string | null + access_token?: string | null + expires_at?: number | null + token_type?: string | null + scope?: string | null + id_token?: string | null + session_state?: string | null +} + +export type AccountUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type AccountUncheckedUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type AccountUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + type?: Prisma.StringFieldUpdateOperationsInput | string + provider?: Prisma.StringFieldUpdateOperationsInput | string + providerAccountId?: Prisma.StringFieldUpdateOperationsInput | string + refresh_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + access_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + expires_at?: Prisma.NullableIntFieldUpdateOperationsInput | number | null + token_type?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + scope?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + id_token?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + session_state?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + + + +export type AccountSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + type?: boolean + provider?: boolean + providerAccountId?: boolean + refresh_token?: boolean + access_token?: boolean + expires_at?: boolean + token_type?: boolean + scope?: boolean + id_token?: boolean + session_state?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["account"]> + +export type AccountSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + type?: boolean + provider?: boolean + providerAccountId?: boolean + refresh_token?: boolean + access_token?: boolean + expires_at?: boolean + token_type?: boolean + scope?: boolean + id_token?: boolean + session_state?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["account"]> + +export type AccountSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + userId?: boolean + type?: boolean + provider?: boolean + providerAccountId?: boolean + refresh_token?: boolean + access_token?: boolean + expires_at?: boolean + token_type?: boolean + scope?: boolean + id_token?: boolean + session_state?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["account"]> + +export type AccountSelectScalar = { + id?: boolean + userId?: boolean + type?: boolean + provider?: boolean + providerAccountId?: boolean + refresh_token?: boolean + access_token?: boolean + expires_at?: boolean + token_type?: boolean + scope?: boolean + id_token?: boolean + session_state?: boolean +} + +export type AccountOmit = runtime.Types.Extensions.GetOmit<"id" | "userId" | "type" | "provider" | "providerAccountId" | "refresh_token" | "access_token" | "expires_at" | "token_type" | "scope" | "id_token" | "session_state", ExtArgs["result"]["account"]> +export type AccountInclude = { + user?: boolean | Prisma.UserDefaultArgs +} +export type AccountIncludeCreateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} +export type AccountIncludeUpdateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} + +export type $AccountPayload = { + name: "Account" + objects: { + user: Prisma.$UserPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + userId: string + type: string + provider: string + providerAccountId: string + refresh_token: string | null + access_token: string | null + expires_at: number | null + token_type: string | null + scope: string | null + id_token: string | null + session_state: string | null + }, ExtArgs["result"]["account"]> + composites: {} +} + +export type AccountGetPayload = runtime.Types.Result.GetResult + +export type AccountCountArgs = + Omit & { + select?: AccountCountAggregateInputType | true + } + +export interface AccountDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Account'], meta: { name: 'Account' } } + /** + * Find zero or one Account that matches the filter. + * @param {AccountFindUniqueArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Account that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {AccountFindUniqueOrThrowArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Account 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 {AccountFindFirstArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Account 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 {AccountFindFirstOrThrowArgs} args - Arguments to find a Account + * @example + * // Get one Account + * const account = await prisma.account.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Accounts 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 {AccountFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Accounts + * const accounts = await prisma.account.findMany() + * + * // Get first 10 Accounts + * const accounts = await prisma.account.findMany({ take: 10 }) + * + * // Only select the `id` + * const accountWithIdOnly = await prisma.account.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Account. + * @param {AccountCreateArgs} args - Arguments to create a Account. + * @example + * // Create one Account + * const Account = await prisma.account.create({ + * data: { + * // ... data to create a Account + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Accounts. + * @param {AccountCreateManyArgs} args - Arguments to create many Accounts. + * @example + * // Create many Accounts + * const account = await prisma.account.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Accounts and returns the data saved in the database. + * @param {AccountCreateManyAndReturnArgs} args - Arguments to create many Accounts. + * @example + * // Create many Accounts + * const account = await prisma.account.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Accounts and only return the `id` + * const accountWithIdOnly = await prisma.account.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Account. + * @param {AccountDeleteArgs} args - Arguments to delete one Account. + * @example + * // Delete one Account + * const Account = await prisma.account.delete({ + * where: { + * // ... filter to delete one Account + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Account. + * @param {AccountUpdateArgs} args - Arguments to update one Account. + * @example + * // Update one Account + * const account = await prisma.account.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Accounts. + * @param {AccountDeleteManyArgs} args - Arguments to filter Accounts to delete. + * @example + * // Delete a few Accounts + * const { count } = await prisma.account.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Accounts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Accounts + * const account = await prisma.account.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Accounts and returns the data updated in the database. + * @param {AccountUpdateManyAndReturnArgs} args - Arguments to update many Accounts. + * @example + * // Update many Accounts + * const account = await prisma.account.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Accounts and only return the `id` + * const accountWithIdOnly = await prisma.account.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Account. + * @param {AccountUpsertArgs} args - Arguments to update or create a Account. + * @example + * // Update or create a Account + * const account = await prisma.account.upsert({ + * create: { + * // ... data to create a Account + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Account we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__AccountClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Accounts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountCountArgs} args - Arguments to filter Accounts to count. + * @example + * // Count the number of Accounts + * const count = await prisma.account.count({ + * where: { + * // ... the filter for the Accounts 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 Account. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountAggregateArgs} 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 Account. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {AccountGroupByArgs} 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 AccountGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: AccountGroupByArgs['orderBy'] } + : { orderBy?: AccountGroupByArgs['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 ? GetAccountGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Account model + */ +readonly fields: AccountFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Account. + * 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__AccountClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, 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 Account model + */ +export interface AccountFieldRefs { + readonly id: Prisma.FieldRef<"Account", 'String'> + readonly userId: Prisma.FieldRef<"Account", 'String'> + readonly type: Prisma.FieldRef<"Account", 'String'> + readonly provider: Prisma.FieldRef<"Account", 'String'> + readonly providerAccountId: Prisma.FieldRef<"Account", 'String'> + readonly refresh_token: Prisma.FieldRef<"Account", 'String'> + readonly access_token: Prisma.FieldRef<"Account", 'String'> + readonly expires_at: Prisma.FieldRef<"Account", 'Int'> + readonly token_type: Prisma.FieldRef<"Account", 'String'> + readonly scope: Prisma.FieldRef<"Account", 'String'> + readonly id_token: Prisma.FieldRef<"Account", 'String'> + readonly session_state: Prisma.FieldRef<"Account", 'String'> +} + + +// Custom InputTypes +/** + * Account findUnique + */ +export type AccountFindUniqueArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where: Prisma.AccountWhereUniqueInput +} + +/** + * Account findUniqueOrThrow + */ +export type AccountFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where: Prisma.AccountWhereUniqueInput +} + +/** + * Account findFirst + */ +export type AccountFindFirstArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where?: Prisma.AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: Prisma.AccountOrderByWithRelationInput | Prisma.AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Accounts. + */ + cursor?: Prisma.AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts 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` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Accounts. + */ + distinct?: Prisma.AccountScalarFieldEnum | Prisma.AccountScalarFieldEnum[] +} + +/** + * Account findFirstOrThrow + */ +export type AccountFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter, which Account to fetch. + */ + where?: Prisma.AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: Prisma.AccountOrderByWithRelationInput | Prisma.AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Accounts. + */ + cursor?: Prisma.AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts 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` Accounts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Accounts. + */ + distinct?: Prisma.AccountScalarFieldEnum | Prisma.AccountScalarFieldEnum[] +} + +/** + * Account findMany + */ +export type AccountFindManyArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter, which Accounts to fetch. + */ + where?: Prisma.AccountWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Accounts to fetch. + */ + orderBy?: Prisma.AccountOrderByWithRelationInput | Prisma.AccountOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Accounts. + */ + cursor?: Prisma.AccountWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Accounts 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` Accounts. + */ + skip?: number + distinct?: Prisma.AccountScalarFieldEnum | Prisma.AccountScalarFieldEnum[] +} + +/** + * Account create + */ +export type AccountCreateArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * The data needed to create a Account. + */ + data: Prisma.XOR +} + +/** + * Account createMany + */ +export type AccountCreateManyArgs = { + /** + * The data used to create many Accounts. + */ + data: Prisma.AccountCreateManyInput | Prisma.AccountCreateManyInput[] +} + +/** + * Account createManyAndReturn + */ +export type AccountCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * The data used to create many Accounts. + */ + data: Prisma.AccountCreateManyInput | Prisma.AccountCreateManyInput[] + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountIncludeCreateManyAndReturn | null +} + +/** + * Account update + */ +export type AccountUpdateArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * The data needed to update a Account. + */ + data: Prisma.XOR + /** + * Choose, which Account to update. + */ + where: Prisma.AccountWhereUniqueInput +} + +/** + * Account updateMany + */ +export type AccountUpdateManyArgs = { + /** + * The data used to update Accounts. + */ + data: Prisma.XOR + /** + * Filter which Accounts to update + */ + where?: Prisma.AccountWhereInput + /** + * Limit how many Accounts to update. + */ + limit?: number +} + +/** + * Account updateManyAndReturn + */ +export type AccountUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * The data used to update Accounts. + */ + data: Prisma.XOR + /** + * Filter which Accounts to update + */ + where?: Prisma.AccountWhereInput + /** + * Limit how many Accounts to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountIncludeUpdateManyAndReturn | null +} + +/** + * Account upsert + */ +export type AccountUpsertArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * The filter to search for the Account to update in case it exists. + */ + where: Prisma.AccountWhereUniqueInput + /** + * In case the Account found by the `where` argument doesn't exist, create a new Account with this data. + */ + create: Prisma.XOR + /** + * In case the Account was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Account delete + */ +export type AccountDeleteArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + /** + * Filter which Account to delete. + */ + where: Prisma.AccountWhereUniqueInput +} + +/** + * Account deleteMany + */ +export type AccountDeleteManyArgs = { + /** + * Filter which Accounts to delete + */ + where?: Prisma.AccountWhereInput + /** + * Limit how many Accounts to delete. + */ + limit?: number +} + +/** + * Account without action + */ +export type AccountDefaultArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null +} diff --git a/backend/src/generated/prisma/models/Comment.ts b/backend/src/generated/prisma/models/Comment.ts new file mode 100644 index 0000000..c2f5836 --- /dev/null +++ b/backend/src/generated/prisma/models/Comment.ts @@ -0,0 +1,1497 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Comment` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Comment + * + */ +export type CommentModel = runtime.Types.Result.DefaultSelection + +export type AggregateComment = { + _count: CommentCountAggregateOutputType | null + _min: CommentMinAggregateOutputType | null + _max: CommentMaxAggregateOutputType | null +} + +export type CommentMinAggregateOutputType = { + id: string | null + content: string | null + userId: string | null + postId: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type CommentMaxAggregateOutputType = { + id: string | null + content: string | null + userId: string | null + postId: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type CommentCountAggregateOutputType = { + id: number + content: number + userId: number + postId: number + createdAt: number + updatedAt: number + _all: number +} + + +export type CommentMinAggregateInputType = { + id?: true + content?: true + userId?: true + postId?: true + createdAt?: true + updatedAt?: true +} + +export type CommentMaxAggregateInputType = { + id?: true + content?: true + userId?: true + postId?: true + createdAt?: true + updatedAt?: true +} + +export type CommentCountAggregateInputType = { + id?: true + content?: true + userId?: true + postId?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type CommentAggregateArgs = { + /** + * Filter which Comment to aggregate. + */ + where?: Prisma.CommentWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Comments to fetch. + */ + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.CommentWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Comments 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` Comments. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Comments + **/ + _count?: true | CommentCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: CommentMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: CommentMaxAggregateInputType +} + +export type GetCommentAggregateType = { + [P in keyof T & keyof AggregateComment]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type CommentGroupByArgs = { + where?: Prisma.CommentWhereInput + orderBy?: Prisma.CommentOrderByWithAggregationInput | Prisma.CommentOrderByWithAggregationInput[] + by: Prisma.CommentScalarFieldEnum[] | Prisma.CommentScalarFieldEnum + having?: Prisma.CommentScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: CommentCountAggregateInputType | true + _min?: CommentMinAggregateInputType + _max?: CommentMaxAggregateInputType +} + +export type CommentGroupByOutputType = { + id: string + content: string + userId: string + postId: string + createdAt: Date + updatedAt: Date + _count: CommentCountAggregateOutputType | null + _min: CommentMinAggregateOutputType | null + _max: CommentMaxAggregateOutputType | null +} + +type GetCommentGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof CommentGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type CommentWhereInput = { + AND?: Prisma.CommentWhereInput | Prisma.CommentWhereInput[] + OR?: Prisma.CommentWhereInput[] + NOT?: Prisma.CommentWhereInput | Prisma.CommentWhereInput[] + id?: Prisma.StringFilter<"Comment"> | string + content?: Prisma.StringFilter<"Comment"> | string + userId?: Prisma.StringFilter<"Comment"> | string + postId?: Prisma.StringFilter<"Comment"> | string + createdAt?: Prisma.DateTimeFilter<"Comment"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Comment"> | Date | string + user?: Prisma.XOR + post?: Prisma.XOR +} + +export type CommentOrderByWithRelationInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + postId?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput + post?: Prisma.PostOrderByWithRelationInput +} + +export type CommentWhereUniqueInput = Prisma.AtLeast<{ + id?: string + AND?: Prisma.CommentWhereInput | Prisma.CommentWhereInput[] + OR?: Prisma.CommentWhereInput[] + NOT?: Prisma.CommentWhereInput | Prisma.CommentWhereInput[] + content?: Prisma.StringFilter<"Comment"> | string + userId?: Prisma.StringFilter<"Comment"> | string + postId?: Prisma.StringFilter<"Comment"> | string + createdAt?: Prisma.DateTimeFilter<"Comment"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Comment"> | Date | string + user?: Prisma.XOR + post?: Prisma.XOR +}, "id"> + +export type CommentOrderByWithAggregationInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + postId?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.CommentCountOrderByAggregateInput + _max?: Prisma.CommentMaxOrderByAggregateInput + _min?: Prisma.CommentMinOrderByAggregateInput +} + +export type CommentScalarWhereWithAggregatesInput = { + AND?: Prisma.CommentScalarWhereWithAggregatesInput | Prisma.CommentScalarWhereWithAggregatesInput[] + OR?: Prisma.CommentScalarWhereWithAggregatesInput[] + NOT?: Prisma.CommentScalarWhereWithAggregatesInput | Prisma.CommentScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"Comment"> | string + content?: Prisma.StringWithAggregatesFilter<"Comment"> | string + userId?: Prisma.StringWithAggregatesFilter<"Comment"> | string + postId?: Prisma.StringWithAggregatesFilter<"Comment"> | string + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Comment"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Comment"> | Date | string +} + +export type CommentCreateInput = { + id?: string + content: string + createdAt?: Date | string + updatedAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutCommentsInput + post: Prisma.PostCreateNestedOneWithoutCommentsInput +} + +export type CommentUncheckedCreateInput = { + id?: string + content: string + userId: string + postId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutCommentsNestedInput + post?: Prisma.PostUpdateOneRequiredWithoutCommentsNestedInput +} + +export type CommentUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + postId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentCreateManyInput = { + id?: string + content: string + userId: string + postId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + postId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentListRelationFilter = { + every?: Prisma.CommentWhereInput + some?: Prisma.CommentWhereInput + none?: Prisma.CommentWhereInput +} + +export type CommentOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type CommentCountOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + postId?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type CommentMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + postId?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type CommentMinOrderByAggregateInput = { + id?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + postId?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type CommentCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutUserInput[] | Prisma.CommentUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutUserInput | Prisma.CommentCreateOrConnectWithoutUserInput[] + createMany?: Prisma.CommentCreateManyUserInputEnvelope + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] +} + +export type CommentUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutUserInput[] | Prisma.CommentUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutUserInput | Prisma.CommentCreateOrConnectWithoutUserInput[] + createMany?: Prisma.CommentCreateManyUserInputEnvelope + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] +} + +export type CommentUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutUserInput[] | Prisma.CommentUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutUserInput | Prisma.CommentCreateOrConnectWithoutUserInput[] + upsert?: Prisma.CommentUpsertWithWhereUniqueWithoutUserInput | Prisma.CommentUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.CommentCreateManyUserInputEnvelope + set?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + disconnect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + delete?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + update?: Prisma.CommentUpdateWithWhereUniqueWithoutUserInput | Prisma.CommentUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.CommentUpdateManyWithWhereWithoutUserInput | Prisma.CommentUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] +} + +export type CommentUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutUserInput[] | Prisma.CommentUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutUserInput | Prisma.CommentCreateOrConnectWithoutUserInput[] + upsert?: Prisma.CommentUpsertWithWhereUniqueWithoutUserInput | Prisma.CommentUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.CommentCreateManyUserInputEnvelope + set?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + disconnect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + delete?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + update?: Prisma.CommentUpdateWithWhereUniqueWithoutUserInput | Prisma.CommentUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.CommentUpdateManyWithWhereWithoutUserInput | Prisma.CommentUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] +} + +export type CommentCreateNestedManyWithoutPostInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutPostInput[] | Prisma.CommentUncheckedCreateWithoutPostInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutPostInput | Prisma.CommentCreateOrConnectWithoutPostInput[] + createMany?: Prisma.CommentCreateManyPostInputEnvelope + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] +} + +export type CommentUncheckedCreateNestedManyWithoutPostInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutPostInput[] | Prisma.CommentUncheckedCreateWithoutPostInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutPostInput | Prisma.CommentCreateOrConnectWithoutPostInput[] + createMany?: Prisma.CommentCreateManyPostInputEnvelope + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] +} + +export type CommentUpdateManyWithoutPostNestedInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutPostInput[] | Prisma.CommentUncheckedCreateWithoutPostInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutPostInput | Prisma.CommentCreateOrConnectWithoutPostInput[] + upsert?: Prisma.CommentUpsertWithWhereUniqueWithoutPostInput | Prisma.CommentUpsertWithWhereUniqueWithoutPostInput[] + createMany?: Prisma.CommentCreateManyPostInputEnvelope + set?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + disconnect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + delete?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + update?: Prisma.CommentUpdateWithWhereUniqueWithoutPostInput | Prisma.CommentUpdateWithWhereUniqueWithoutPostInput[] + updateMany?: Prisma.CommentUpdateManyWithWhereWithoutPostInput | Prisma.CommentUpdateManyWithWhereWithoutPostInput[] + deleteMany?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] +} + +export type CommentUncheckedUpdateManyWithoutPostNestedInput = { + create?: Prisma.XOR | Prisma.CommentCreateWithoutPostInput[] | Prisma.CommentUncheckedCreateWithoutPostInput[] + connectOrCreate?: Prisma.CommentCreateOrConnectWithoutPostInput | Prisma.CommentCreateOrConnectWithoutPostInput[] + upsert?: Prisma.CommentUpsertWithWhereUniqueWithoutPostInput | Prisma.CommentUpsertWithWhereUniqueWithoutPostInput[] + createMany?: Prisma.CommentCreateManyPostInputEnvelope + set?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + disconnect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + delete?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + connect?: Prisma.CommentWhereUniqueInput | Prisma.CommentWhereUniqueInput[] + update?: Prisma.CommentUpdateWithWhereUniqueWithoutPostInput | Prisma.CommentUpdateWithWhereUniqueWithoutPostInput[] + updateMany?: Prisma.CommentUpdateManyWithWhereWithoutPostInput | Prisma.CommentUpdateManyWithWhereWithoutPostInput[] + deleteMany?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] +} + +export type CommentCreateWithoutUserInput = { + id?: string + content: string + createdAt?: Date | string + updatedAt?: Date | string + post: Prisma.PostCreateNestedOneWithoutCommentsInput +} + +export type CommentUncheckedCreateWithoutUserInput = { + id?: string + content: string + postId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentCreateOrConnectWithoutUserInput = { + where: Prisma.CommentWhereUniqueInput + create: Prisma.XOR +} + +export type CommentCreateManyUserInputEnvelope = { + data: Prisma.CommentCreateManyUserInput | Prisma.CommentCreateManyUserInput[] +} + +export type CommentUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.CommentWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type CommentUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.CommentWhereUniqueInput + data: Prisma.XOR +} + +export type CommentUpdateManyWithWhereWithoutUserInput = { + where: Prisma.CommentScalarWhereInput + data: Prisma.XOR +} + +export type CommentScalarWhereInput = { + AND?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] + OR?: Prisma.CommentScalarWhereInput[] + NOT?: Prisma.CommentScalarWhereInput | Prisma.CommentScalarWhereInput[] + id?: Prisma.StringFilter<"Comment"> | string + content?: Prisma.StringFilter<"Comment"> | string + userId?: Prisma.StringFilter<"Comment"> | string + postId?: Prisma.StringFilter<"Comment"> | string + createdAt?: Prisma.DateTimeFilter<"Comment"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Comment"> | Date | string +} + +export type CommentCreateWithoutPostInput = { + id?: string + content: string + createdAt?: Date | string + updatedAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutCommentsInput +} + +export type CommentUncheckedCreateWithoutPostInput = { + id?: string + content: string + userId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentCreateOrConnectWithoutPostInput = { + where: Prisma.CommentWhereUniqueInput + create: Prisma.XOR +} + +export type CommentCreateManyPostInputEnvelope = { + data: Prisma.CommentCreateManyPostInput | Prisma.CommentCreateManyPostInput[] +} + +export type CommentUpsertWithWhereUniqueWithoutPostInput = { + where: Prisma.CommentWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type CommentUpdateWithWhereUniqueWithoutPostInput = { + where: Prisma.CommentWhereUniqueInput + data: Prisma.XOR +} + +export type CommentUpdateManyWithWhereWithoutPostInput = { + where: Prisma.CommentScalarWhereInput + data: Prisma.XOR +} + +export type CommentCreateManyUserInput = { + id?: string + content: string + postId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + post?: Prisma.PostUpdateOneRequiredWithoutCommentsNestedInput +} + +export type CommentUncheckedUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + postId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + postId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentCreateManyPostInput = { + id?: string + content: string + userId: string + createdAt?: Date | string + updatedAt?: Date | string +} + +export type CommentUpdateWithoutPostInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutCommentsNestedInput +} + +export type CommentUncheckedUpdateWithoutPostInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type CommentUncheckedUpdateManyWithoutPostInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + + +export type CommentSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + content?: boolean + userId?: boolean + postId?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +}, ExtArgs["result"]["comment"]> + +export type CommentSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + content?: boolean + userId?: boolean + postId?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +}, ExtArgs["result"]["comment"]> + +export type CommentSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + content?: boolean + userId?: boolean + postId?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +}, ExtArgs["result"]["comment"]> + +export type CommentSelectScalar = { + id?: boolean + content?: boolean + userId?: boolean + postId?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type CommentOmit = runtime.Types.Extensions.GetOmit<"id" | "content" | "userId" | "postId" | "createdAt" | "updatedAt", ExtArgs["result"]["comment"]> +export type CommentInclude = { + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +} +export type CommentIncludeCreateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +} +export type CommentIncludeUpdateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs + post?: boolean | Prisma.PostDefaultArgs +} + +export type $CommentPayload = { + name: "Comment" + objects: { + user: Prisma.$UserPayload + post: Prisma.$PostPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + content: string + userId: string + postId: string + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["comment"]> + composites: {} +} + +export type CommentGetPayload = runtime.Types.Result.GetResult + +export type CommentCountArgs = + Omit & { + select?: CommentCountAggregateInputType | true + } + +export interface CommentDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Comment'], meta: { name: 'Comment' } } + /** + * Find zero or one Comment that matches the filter. + * @param {CommentFindUniqueArgs} args - Arguments to find a Comment + * @example + * // Get one Comment + * const comment = await prisma.comment.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Comment that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {CommentFindUniqueOrThrowArgs} args - Arguments to find a Comment + * @example + * // Get one Comment + * const comment = await prisma.comment.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Comment 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 {CommentFindFirstArgs} args - Arguments to find a Comment + * @example + * // Get one Comment + * const comment = await prisma.comment.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Comment 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 {CommentFindFirstOrThrowArgs} args - Arguments to find a Comment + * @example + * // Get one Comment + * const comment = await prisma.comment.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Comments 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 {CommentFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Comments + * const comments = await prisma.comment.findMany() + * + * // Get first 10 Comments + * const comments = await prisma.comment.findMany({ take: 10 }) + * + * // Only select the `id` + * const commentWithIdOnly = await prisma.comment.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Comment. + * @param {CommentCreateArgs} args - Arguments to create a Comment. + * @example + * // Create one Comment + * const Comment = await prisma.comment.create({ + * data: { + * // ... data to create a Comment + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Comments. + * @param {CommentCreateManyArgs} args - Arguments to create many Comments. + * @example + * // Create many Comments + * const comment = await prisma.comment.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Comments and returns the data saved in the database. + * @param {CommentCreateManyAndReturnArgs} args - Arguments to create many Comments. + * @example + * // Create many Comments + * const comment = await prisma.comment.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Comments and only return the `id` + * const commentWithIdOnly = await prisma.comment.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Comment. + * @param {CommentDeleteArgs} args - Arguments to delete one Comment. + * @example + * // Delete one Comment + * const Comment = await prisma.comment.delete({ + * where: { + * // ... filter to delete one Comment + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Comment. + * @param {CommentUpdateArgs} args - Arguments to update one Comment. + * @example + * // Update one Comment + * const comment = await prisma.comment.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Comments. + * @param {CommentDeleteManyArgs} args - Arguments to filter Comments to delete. + * @example + * // Delete a few Comments + * const { count } = await prisma.comment.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Comments. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CommentUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Comments + * const comment = await prisma.comment.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Comments and returns the data updated in the database. + * @param {CommentUpdateManyAndReturnArgs} args - Arguments to update many Comments. + * @example + * // Update many Comments + * const comment = await prisma.comment.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Comments and only return the `id` + * const commentWithIdOnly = await prisma.comment.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Comment. + * @param {CommentUpsertArgs} args - Arguments to update or create a Comment. + * @example + * // Update or create a Comment + * const comment = await prisma.comment.upsert({ + * create: { + * // ... data to create a Comment + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Comment we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__CommentClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Comments. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CommentCountArgs} args - Arguments to filter Comments to count. + * @example + * // Count the number of Comments + * const count = await prisma.comment.count({ + * where: { + * // ... the filter for the Comments 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 Comment. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CommentAggregateArgs} 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 Comment. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {CommentGroupByArgs} 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 CommentGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: CommentGroupByArgs['orderBy'] } + : { orderBy?: CommentGroupByArgs['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 ? GetCommentGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Comment model + */ +readonly fields: CommentFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Comment. + * 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__CommentClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + post = {}>(args?: Prisma.Subset>): Prisma.Prisma__PostClient, 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 Comment model + */ +export interface CommentFieldRefs { + readonly id: Prisma.FieldRef<"Comment", 'String'> + readonly content: Prisma.FieldRef<"Comment", 'String'> + readonly userId: Prisma.FieldRef<"Comment", 'String'> + readonly postId: Prisma.FieldRef<"Comment", 'String'> + readonly createdAt: Prisma.FieldRef<"Comment", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Comment", 'DateTime'> +} + + +// Custom InputTypes +/** + * Comment findUnique + */ +export type CommentFindUniqueArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter, which Comment to fetch. + */ + where: Prisma.CommentWhereUniqueInput +} + +/** + * Comment findUniqueOrThrow + */ +export type CommentFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter, which Comment to fetch. + */ + where: Prisma.CommentWhereUniqueInput +} + +/** + * Comment findFirst + */ +export type CommentFindFirstArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter, which Comment to fetch. + */ + where?: Prisma.CommentWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Comments to fetch. + */ + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Comments. + */ + cursor?: Prisma.CommentWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Comments 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` Comments. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Comments. + */ + distinct?: Prisma.CommentScalarFieldEnum | Prisma.CommentScalarFieldEnum[] +} + +/** + * Comment findFirstOrThrow + */ +export type CommentFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter, which Comment to fetch. + */ + where?: Prisma.CommentWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Comments to fetch. + */ + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Comments. + */ + cursor?: Prisma.CommentWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Comments 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` Comments. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Comments. + */ + distinct?: Prisma.CommentScalarFieldEnum | Prisma.CommentScalarFieldEnum[] +} + +/** + * Comment findMany + */ +export type CommentFindManyArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter, which Comments to fetch. + */ + where?: Prisma.CommentWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Comments to fetch. + */ + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Comments. + */ + cursor?: Prisma.CommentWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Comments 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` Comments. + */ + skip?: number + distinct?: Prisma.CommentScalarFieldEnum | Prisma.CommentScalarFieldEnum[] +} + +/** + * Comment create + */ +export type CommentCreateArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * The data needed to create a Comment. + */ + data: Prisma.XOR +} + +/** + * Comment createMany + */ +export type CommentCreateManyArgs = { + /** + * The data used to create many Comments. + */ + data: Prisma.CommentCreateManyInput | Prisma.CommentCreateManyInput[] +} + +/** + * Comment createManyAndReturn + */ +export type CommentCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * The data used to create many Comments. + */ + data: Prisma.CommentCreateManyInput | Prisma.CommentCreateManyInput[] + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentIncludeCreateManyAndReturn | null +} + +/** + * Comment update + */ +export type CommentUpdateArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * The data needed to update a Comment. + */ + data: Prisma.XOR + /** + * Choose, which Comment to update. + */ + where: Prisma.CommentWhereUniqueInput +} + +/** + * Comment updateMany + */ +export type CommentUpdateManyArgs = { + /** + * The data used to update Comments. + */ + data: Prisma.XOR + /** + * Filter which Comments to update + */ + where?: Prisma.CommentWhereInput + /** + * Limit how many Comments to update. + */ + limit?: number +} + +/** + * Comment updateManyAndReturn + */ +export type CommentUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * The data used to update Comments. + */ + data: Prisma.XOR + /** + * Filter which Comments to update + */ + where?: Prisma.CommentWhereInput + /** + * Limit how many Comments to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentIncludeUpdateManyAndReturn | null +} + +/** + * Comment upsert + */ +export type CommentUpsertArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * The filter to search for the Comment to update in case it exists. + */ + where: Prisma.CommentWhereUniqueInput + /** + * In case the Comment found by the `where` argument doesn't exist, create a new Comment with this data. + */ + create: Prisma.XOR + /** + * In case the Comment was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Comment delete + */ +export type CommentDeleteArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + /** + * Filter which Comment to delete. + */ + where: Prisma.CommentWhereUniqueInput +} + +/** + * Comment deleteMany + */ +export type CommentDeleteManyArgs = { + /** + * Filter which Comments to delete + */ + where?: Prisma.CommentWhereInput + /** + * Limit how many Comments to delete. + */ + limit?: number +} + +/** + * Comment without action + */ +export type CommentDefaultArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null +} diff --git a/backend/src/generated/prisma/models/Post.ts b/backend/src/generated/prisma/models/Post.ts new file mode 100644 index 0000000..70e35cb --- /dev/null +++ b/backend/src/generated/prisma/models/Post.ts @@ -0,0 +1,1556 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Post` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Post + * + */ +export type PostModel = runtime.Types.Result.DefaultSelection + +export type AggregatePost = { + _count: PostCountAggregateOutputType | null + _min: PostMinAggregateOutputType | null + _max: PostMaxAggregateOutputType | null +} + +export type PostMinAggregateOutputType = { + id: string | null + title: string | null + content: string | null + userId: string | null + published: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type PostMaxAggregateOutputType = { + id: string | null + title: string | null + content: string | null + userId: string | null + published: boolean | null + createdAt: Date | null + updatedAt: Date | null +} + +export type PostCountAggregateOutputType = { + id: number + title: number + content: number + userId: number + published: number + createdAt: number + updatedAt: number + _all: number +} + + +export type PostMinAggregateInputType = { + id?: true + title?: true + content?: true + userId?: true + published?: true + createdAt?: true + updatedAt?: true +} + +export type PostMaxAggregateInputType = { + id?: true + title?: true + content?: true + userId?: true + published?: true + createdAt?: true + updatedAt?: true +} + +export type PostCountAggregateInputType = { + id?: true + title?: true + content?: true + userId?: true + published?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type PostAggregateArgs = { + /** + * Filter which Post to aggregate. + */ + where?: Prisma.PostWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Posts to fetch. + */ + orderBy?: Prisma.PostOrderByWithRelationInput | Prisma.PostOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.PostWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Posts 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` Posts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Posts + **/ + _count?: true | PostCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: PostMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: PostMaxAggregateInputType +} + +export type GetPostAggregateType = { + [P in keyof T & keyof AggregatePost]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type PostGroupByArgs = { + where?: Prisma.PostWhereInput + orderBy?: Prisma.PostOrderByWithAggregationInput | Prisma.PostOrderByWithAggregationInput[] + by: Prisma.PostScalarFieldEnum[] | Prisma.PostScalarFieldEnum + having?: Prisma.PostScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: PostCountAggregateInputType | true + _min?: PostMinAggregateInputType + _max?: PostMaxAggregateInputType +} + +export type PostGroupByOutputType = { + id: string + title: string + content: string + userId: string + published: boolean + createdAt: Date + updatedAt: Date + _count: PostCountAggregateOutputType | null + _min: PostMinAggregateOutputType | null + _max: PostMaxAggregateOutputType | null +} + +type GetPostGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof PostGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type PostWhereInput = { + AND?: Prisma.PostWhereInput | Prisma.PostWhereInput[] + OR?: Prisma.PostWhereInput[] + NOT?: Prisma.PostWhereInput | Prisma.PostWhereInput[] + id?: Prisma.StringFilter<"Post"> | string + title?: Prisma.StringFilter<"Post"> | string + content?: Prisma.StringFilter<"Post"> | string + userId?: Prisma.StringFilter<"Post"> | string + published?: Prisma.BoolFilter<"Post"> | boolean + createdAt?: Prisma.DateTimeFilter<"Post"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Post"> | Date | string + user?: Prisma.XOR + comments?: Prisma.CommentListRelationFilter +} + +export type PostOrderByWithRelationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + published?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput + comments?: Prisma.CommentOrderByRelationAggregateInput +} + +export type PostWhereUniqueInput = Prisma.AtLeast<{ + id?: string + AND?: Prisma.PostWhereInput | Prisma.PostWhereInput[] + OR?: Prisma.PostWhereInput[] + NOT?: Prisma.PostWhereInput | Prisma.PostWhereInput[] + title?: Prisma.StringFilter<"Post"> | string + content?: Prisma.StringFilter<"Post"> | string + userId?: Prisma.StringFilter<"Post"> | string + published?: Prisma.BoolFilter<"Post"> | boolean + createdAt?: Prisma.DateTimeFilter<"Post"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Post"> | Date | string + user?: Prisma.XOR + comments?: Prisma.CommentListRelationFilter +}, "id"> + +export type PostOrderByWithAggregationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + published?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.PostCountOrderByAggregateInput + _max?: Prisma.PostMaxOrderByAggregateInput + _min?: Prisma.PostMinOrderByAggregateInput +} + +export type PostScalarWhereWithAggregatesInput = { + AND?: Prisma.PostScalarWhereWithAggregatesInput | Prisma.PostScalarWhereWithAggregatesInput[] + OR?: Prisma.PostScalarWhereWithAggregatesInput[] + NOT?: Prisma.PostScalarWhereWithAggregatesInput | Prisma.PostScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"Post"> | string + title?: Prisma.StringWithAggregatesFilter<"Post"> | string + content?: Prisma.StringWithAggregatesFilter<"Post"> | string + userId?: Prisma.StringWithAggregatesFilter<"Post"> | string + published?: Prisma.BoolWithAggregatesFilter<"Post"> | boolean + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Post"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Post"> | Date | string +} + +export type PostCreateInput = { + id?: string + title: string + content: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutPostsInput + comments?: Prisma.CommentCreateNestedManyWithoutPostInput +} + +export type PostUncheckedCreateInput = { + id?: string + title: string + content: string + userId: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutPostInput +} + +export type PostUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutPostsNestedInput + comments?: Prisma.CommentUpdateManyWithoutPostNestedInput +} + +export type PostUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + comments?: Prisma.CommentUncheckedUpdateManyWithoutPostNestedInput +} + +export type PostCreateManyInput = { + id?: string + title: string + content: string + userId: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string +} + +export type PostUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type PostUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type PostListRelationFilter = { + every?: Prisma.PostWhereInput + some?: Prisma.PostWhereInput + none?: Prisma.PostWhereInput +} + +export type PostOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type PostCountOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + published?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type PostMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + published?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type PostMinOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + content?: Prisma.SortOrder + userId?: Prisma.SortOrder + published?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type PostScalarRelationFilter = { + is?: Prisma.PostWhereInput + isNot?: Prisma.PostWhereInput +} + +export type PostCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.PostCreateWithoutUserInput[] | Prisma.PostUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.PostCreateOrConnectWithoutUserInput | Prisma.PostCreateOrConnectWithoutUserInput[] + createMany?: Prisma.PostCreateManyUserInputEnvelope + connect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] +} + +export type PostUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.PostCreateWithoutUserInput[] | Prisma.PostUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.PostCreateOrConnectWithoutUserInput | Prisma.PostCreateOrConnectWithoutUserInput[] + createMany?: Prisma.PostCreateManyUserInputEnvelope + connect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] +} + +export type PostUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.PostCreateWithoutUserInput[] | Prisma.PostUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.PostCreateOrConnectWithoutUserInput | Prisma.PostCreateOrConnectWithoutUserInput[] + upsert?: Prisma.PostUpsertWithWhereUniqueWithoutUserInput | Prisma.PostUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.PostCreateManyUserInputEnvelope + set?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + disconnect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + delete?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + connect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + update?: Prisma.PostUpdateWithWhereUniqueWithoutUserInput | Prisma.PostUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.PostUpdateManyWithWhereWithoutUserInput | Prisma.PostUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.PostScalarWhereInput | Prisma.PostScalarWhereInput[] +} + +export type PostUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.PostCreateWithoutUserInput[] | Prisma.PostUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.PostCreateOrConnectWithoutUserInput | Prisma.PostCreateOrConnectWithoutUserInput[] + upsert?: Prisma.PostUpsertWithWhereUniqueWithoutUserInput | Prisma.PostUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.PostCreateManyUserInputEnvelope + set?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + disconnect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + delete?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + connect?: Prisma.PostWhereUniqueInput | Prisma.PostWhereUniqueInput[] + update?: Prisma.PostUpdateWithWhereUniqueWithoutUserInput | Prisma.PostUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.PostUpdateManyWithWhereWithoutUserInput | Prisma.PostUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.PostScalarWhereInput | Prisma.PostScalarWhereInput[] +} + +export type BoolFieldUpdateOperationsInput = { + set?: boolean +} + +export type PostCreateNestedOneWithoutCommentsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.PostCreateOrConnectWithoutCommentsInput + connect?: Prisma.PostWhereUniqueInput +} + +export type PostUpdateOneRequiredWithoutCommentsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.PostCreateOrConnectWithoutCommentsInput + upsert?: Prisma.PostUpsertWithoutCommentsInput + connect?: Prisma.PostWhereUniqueInput + update?: Prisma.XOR, Prisma.PostUncheckedUpdateWithoutCommentsInput> +} + +export type PostCreateWithoutUserInput = { + id?: string + title: string + content: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string + comments?: Prisma.CommentCreateNestedManyWithoutPostInput +} + +export type PostUncheckedCreateWithoutUserInput = { + id?: string + title: string + content: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutPostInput +} + +export type PostCreateOrConnectWithoutUserInput = { + where: Prisma.PostWhereUniqueInput + create: Prisma.XOR +} + +export type PostCreateManyUserInputEnvelope = { + data: Prisma.PostCreateManyUserInput | Prisma.PostCreateManyUserInput[] +} + +export type PostUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.PostWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type PostUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.PostWhereUniqueInput + data: Prisma.XOR +} + +export type PostUpdateManyWithWhereWithoutUserInput = { + where: Prisma.PostScalarWhereInput + data: Prisma.XOR +} + +export type PostScalarWhereInput = { + AND?: Prisma.PostScalarWhereInput | Prisma.PostScalarWhereInput[] + OR?: Prisma.PostScalarWhereInput[] + NOT?: Prisma.PostScalarWhereInput | Prisma.PostScalarWhereInput[] + id?: Prisma.StringFilter<"Post"> | string + title?: Prisma.StringFilter<"Post"> | string + content?: Prisma.StringFilter<"Post"> | string + userId?: Prisma.StringFilter<"Post"> | string + published?: Prisma.BoolFilter<"Post"> | boolean + createdAt?: Prisma.DateTimeFilter<"Post"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Post"> | Date | string +} + +export type PostCreateWithoutCommentsInput = { + id?: string + title: string + content: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string + user: Prisma.UserCreateNestedOneWithoutPostsInput +} + +export type PostUncheckedCreateWithoutCommentsInput = { + id?: string + title: string + content: string + userId: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string +} + +export type PostCreateOrConnectWithoutCommentsInput = { + where: Prisma.PostWhereUniqueInput + create: Prisma.XOR +} + +export type PostUpsertWithoutCommentsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.PostWhereInput +} + +export type PostUpdateToOneWithWhereWithoutCommentsInput = { + where?: Prisma.PostWhereInput + data: Prisma.XOR +} + +export type PostUpdateWithoutCommentsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutPostsNestedInput +} + +export type PostUncheckedUpdateWithoutCommentsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type PostCreateManyUserInput = { + id?: string + title: string + content: string + published?: boolean + createdAt?: Date | string + updatedAt?: Date | string +} + +export type PostUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + comments?: Prisma.CommentUpdateManyWithoutPostNestedInput +} + +export type PostUncheckedUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + comments?: Prisma.CommentUncheckedUpdateManyWithoutPostNestedInput +} + +export type PostUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + content?: Prisma.StringFieldUpdateOperationsInput | string + published?: Prisma.BoolFieldUpdateOperationsInput | boolean + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + +/** + * Count Type PostCountOutputType + */ + +export type PostCountOutputType = { + comments: number +} + +export type PostCountOutputTypeSelect = { + comments?: boolean | PostCountOutputTypeCountCommentsArgs +} + +/** + * PostCountOutputType without action + */ +export type PostCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the PostCountOutputType + */ + select?: Prisma.PostCountOutputTypeSelect | null +} + +/** + * PostCountOutputType without action + */ +export type PostCountOutputTypeCountCommentsArgs = { + where?: Prisma.CommentWhereInput +} + + +export type PostSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + content?: boolean + userId?: boolean + published?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs + comments?: boolean | Prisma.Post$commentsArgs + _count?: boolean | Prisma.PostCountOutputTypeDefaultArgs +}, ExtArgs["result"]["post"]> + +export type PostSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + content?: boolean + userId?: boolean + published?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["post"]> + +export type PostSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + content?: boolean + userId?: boolean + published?: boolean + createdAt?: boolean + updatedAt?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["post"]> + +export type PostSelectScalar = { + id?: boolean + title?: boolean + content?: boolean + userId?: boolean + published?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type PostOmit = runtime.Types.Extensions.GetOmit<"id" | "title" | "content" | "userId" | "published" | "createdAt" | "updatedAt", ExtArgs["result"]["post"]> +export type PostInclude = { + user?: boolean | Prisma.UserDefaultArgs + comments?: boolean | Prisma.Post$commentsArgs + _count?: boolean | Prisma.PostCountOutputTypeDefaultArgs +} +export type PostIncludeCreateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} +export type PostIncludeUpdateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} + +export type $PostPayload = { + name: "Post" + objects: { + user: Prisma.$UserPayload + comments: Prisma.$CommentPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + title: string + content: string + userId: string + published: boolean + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["post"]> + composites: {} +} + +export type PostGetPayload = runtime.Types.Result.GetResult + +export type PostCountArgs = + Omit & { + select?: PostCountAggregateInputType | true + } + +export interface PostDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Post'], meta: { name: 'Post' } } + /** + * Find zero or one Post that matches the filter. + * @param {PostFindUniqueArgs} args - Arguments to find a Post + * @example + * // Get one Post + * const post = await prisma.post.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Post that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {PostFindUniqueOrThrowArgs} args - Arguments to find a Post + * @example + * // Get one Post + * const post = await prisma.post.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Post 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 {PostFindFirstArgs} args - Arguments to find a Post + * @example + * // Get one Post + * const post = await prisma.post.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Post 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 {PostFindFirstOrThrowArgs} args - Arguments to find a Post + * @example + * // Get one Post + * const post = await prisma.post.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Posts 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 {PostFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Posts + * const posts = await prisma.post.findMany() + * + * // Get first 10 Posts + * const posts = await prisma.post.findMany({ take: 10 }) + * + * // Only select the `id` + * const postWithIdOnly = await prisma.post.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Post. + * @param {PostCreateArgs} args - Arguments to create a Post. + * @example + * // Create one Post + * const Post = await prisma.post.create({ + * data: { + * // ... data to create a Post + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Posts. + * @param {PostCreateManyArgs} args - Arguments to create many Posts. + * @example + * // Create many Posts + * const post = await prisma.post.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Posts and returns the data saved in the database. + * @param {PostCreateManyAndReturnArgs} args - Arguments to create many Posts. + * @example + * // Create many Posts + * const post = await prisma.post.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Posts and only return the `id` + * const postWithIdOnly = await prisma.post.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Post. + * @param {PostDeleteArgs} args - Arguments to delete one Post. + * @example + * // Delete one Post + * const Post = await prisma.post.delete({ + * where: { + * // ... filter to delete one Post + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Post. + * @param {PostUpdateArgs} args - Arguments to update one Post. + * @example + * // Update one Post + * const post = await prisma.post.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Posts. + * @param {PostDeleteManyArgs} args - Arguments to filter Posts to delete. + * @example + * // Delete a few Posts + * const { count } = await prisma.post.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Posts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PostUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Posts + * const post = await prisma.post.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Posts and returns the data updated in the database. + * @param {PostUpdateManyAndReturnArgs} args - Arguments to update many Posts. + * @example + * // Update many Posts + * const post = await prisma.post.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Posts and only return the `id` + * const postWithIdOnly = await prisma.post.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Post. + * @param {PostUpsertArgs} args - Arguments to update or create a Post. + * @example + * // Update or create a Post + * const post = await prisma.post.upsert({ + * create: { + * // ... data to create a Post + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Post we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__PostClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Posts. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PostCountArgs} args - Arguments to filter Posts to count. + * @example + * // Count the number of Posts + * const count = await prisma.post.count({ + * where: { + * // ... the filter for the Posts 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 Post. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PostAggregateArgs} 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 Post. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {PostGroupByArgs} 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 PostGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: PostGroupByArgs['orderBy'] } + : { orderBy?: PostGroupByArgs['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 ? GetPostGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Post model + */ +readonly fields: PostFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Post. + * 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__PostClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + comments = {}>(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 Post model + */ +export interface PostFieldRefs { + readonly id: Prisma.FieldRef<"Post", 'String'> + readonly title: Prisma.FieldRef<"Post", 'String'> + readonly content: Prisma.FieldRef<"Post", 'String'> + readonly userId: Prisma.FieldRef<"Post", 'String'> + readonly published: Prisma.FieldRef<"Post", 'Boolean'> + readonly createdAt: Prisma.FieldRef<"Post", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Post", 'DateTime'> +} + + +// Custom InputTypes +/** + * Post findUnique + */ +export type PostFindUniqueArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter, which Post to fetch. + */ + where: Prisma.PostWhereUniqueInput +} + +/** + * Post findUniqueOrThrow + */ +export type PostFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter, which Post to fetch. + */ + where: Prisma.PostWhereUniqueInput +} + +/** + * Post findFirst + */ +export type PostFindFirstArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter, which Post to fetch. + */ + where?: Prisma.PostWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Posts to fetch. + */ + orderBy?: Prisma.PostOrderByWithRelationInput | Prisma.PostOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Posts. + */ + cursor?: Prisma.PostWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Posts 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` Posts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Posts. + */ + distinct?: Prisma.PostScalarFieldEnum | Prisma.PostScalarFieldEnum[] +} + +/** + * Post findFirstOrThrow + */ +export type PostFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter, which Post to fetch. + */ + where?: Prisma.PostWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Posts to fetch. + */ + orderBy?: Prisma.PostOrderByWithRelationInput | Prisma.PostOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Posts. + */ + cursor?: Prisma.PostWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Posts 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` Posts. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Posts. + */ + distinct?: Prisma.PostScalarFieldEnum | Prisma.PostScalarFieldEnum[] +} + +/** + * Post findMany + */ +export type PostFindManyArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter, which Posts to fetch. + */ + where?: Prisma.PostWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Posts to fetch. + */ + orderBy?: Prisma.PostOrderByWithRelationInput | Prisma.PostOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Posts. + */ + cursor?: Prisma.PostWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Posts 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` Posts. + */ + skip?: number + distinct?: Prisma.PostScalarFieldEnum | Prisma.PostScalarFieldEnum[] +} + +/** + * Post create + */ +export type PostCreateArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * The data needed to create a Post. + */ + data: Prisma.XOR +} + +/** + * Post createMany + */ +export type PostCreateManyArgs = { + /** + * The data used to create many Posts. + */ + data: Prisma.PostCreateManyInput | Prisma.PostCreateManyInput[] +} + +/** + * Post createManyAndReturn + */ +export type PostCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * The data used to create many Posts. + */ + data: Prisma.PostCreateManyInput | Prisma.PostCreateManyInput[] + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostIncludeCreateManyAndReturn | null +} + +/** + * Post update + */ +export type PostUpdateArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * The data needed to update a Post. + */ + data: Prisma.XOR + /** + * Choose, which Post to update. + */ + where: Prisma.PostWhereUniqueInput +} + +/** + * Post updateMany + */ +export type PostUpdateManyArgs = { + /** + * The data used to update Posts. + */ + data: Prisma.XOR + /** + * Filter which Posts to update + */ + where?: Prisma.PostWhereInput + /** + * Limit how many Posts to update. + */ + limit?: number +} + +/** + * Post updateManyAndReturn + */ +export type PostUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * The data used to update Posts. + */ + data: Prisma.XOR + /** + * Filter which Posts to update + */ + where?: Prisma.PostWhereInput + /** + * Limit how many Posts to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostIncludeUpdateManyAndReturn | null +} + +/** + * Post upsert + */ +export type PostUpsertArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * The filter to search for the Post to update in case it exists. + */ + where: Prisma.PostWhereUniqueInput + /** + * In case the Post found by the `where` argument doesn't exist, create a new Post with this data. + */ + create: Prisma.XOR + /** + * In case the Post was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Post delete + */ +export type PostDeleteArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + /** + * Filter which Post to delete. + */ + where: Prisma.PostWhereUniqueInput +} + +/** + * Post deleteMany + */ +export type PostDeleteManyArgs = { + /** + * Filter which Posts to delete + */ + where?: Prisma.PostWhereInput + /** + * Limit how many Posts to delete. + */ + limit?: number +} + +/** + * Post.comments + */ +export type Post$commentsArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + where?: Prisma.CommentWhereInput + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + cursor?: Prisma.CommentWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.CommentScalarFieldEnum | Prisma.CommentScalarFieldEnum[] +} + +/** + * Post without action + */ +export type PostDefaultArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null +} diff --git a/backend/src/generated/prisma/models/Resource.ts b/backend/src/generated/prisma/models/Resource.ts new file mode 100644 index 0000000..1231f5b --- /dev/null +++ b/backend/src/generated/prisma/models/Resource.ts @@ -0,0 +1,1226 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Resource` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Resource + * + */ +export type ResourceModel = runtime.Types.Result.DefaultSelection + +export type AggregateResource = { + _count: ResourceCountAggregateOutputType | null + _min: ResourceMinAggregateOutputType | null + _max: ResourceMaxAggregateOutputType | null +} + +export type ResourceMinAggregateOutputType = { + id: string | null + title: string | null + description: string | null + url: string | null + icon: string | null + category: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type ResourceMaxAggregateOutputType = { + id: string | null + title: string | null + description: string | null + url: string | null + icon: string | null + category: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type ResourceCountAggregateOutputType = { + id: number + title: number + description: number + url: number + icon: number + category: number + createdAt: number + updatedAt: number + _all: number +} + + +export type ResourceMinAggregateInputType = { + id?: true + title?: true + description?: true + url?: true + icon?: true + category?: true + createdAt?: true + updatedAt?: true +} + +export type ResourceMaxAggregateInputType = { + id?: true + title?: true + description?: true + url?: true + icon?: true + category?: true + createdAt?: true + updatedAt?: true +} + +export type ResourceCountAggregateInputType = { + id?: true + title?: true + description?: true + url?: true + icon?: true + category?: true + createdAt?: true + updatedAt?: true + _all?: true +} + +export type ResourceAggregateArgs = { + /** + * Filter which Resource to aggregate. + */ + where?: Prisma.ResourceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Resources to fetch. + */ + orderBy?: Prisma.ResourceOrderByWithRelationInput | Prisma.ResourceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.ResourceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Resources 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` Resources. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Resources + **/ + _count?: true | ResourceCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ResourceMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ResourceMaxAggregateInputType +} + +export type GetResourceAggregateType = { + [P in keyof T & keyof AggregateResource]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type ResourceGroupByArgs = { + where?: Prisma.ResourceWhereInput + orderBy?: Prisma.ResourceOrderByWithAggregationInput | Prisma.ResourceOrderByWithAggregationInput[] + by: Prisma.ResourceScalarFieldEnum[] | Prisma.ResourceScalarFieldEnum + having?: Prisma.ResourceScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ResourceCountAggregateInputType | true + _min?: ResourceMinAggregateInputType + _max?: ResourceMaxAggregateInputType +} + +export type ResourceGroupByOutputType = { + id: string + title: string + description: string | null + url: string + icon: string | null + category: string | null + createdAt: Date + updatedAt: Date + _count: ResourceCountAggregateOutputType | null + _min: ResourceMinAggregateOutputType | null + _max: ResourceMaxAggregateOutputType | null +} + +type GetResourceGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof ResourceGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type ResourceWhereInput = { + AND?: Prisma.ResourceWhereInput | Prisma.ResourceWhereInput[] + OR?: Prisma.ResourceWhereInput[] + NOT?: Prisma.ResourceWhereInput | Prisma.ResourceWhereInput[] + id?: Prisma.StringFilter<"Resource"> | string + title?: Prisma.StringFilter<"Resource"> | string + description?: Prisma.StringNullableFilter<"Resource"> | string | null + url?: Prisma.StringFilter<"Resource"> | string + icon?: Prisma.StringNullableFilter<"Resource"> | string | null + category?: Prisma.StringNullableFilter<"Resource"> | string | null + createdAt?: Prisma.DateTimeFilter<"Resource"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Resource"> | Date | string +} + +export type ResourceOrderByWithRelationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + url?: Prisma.SortOrder + icon?: Prisma.SortOrderInput | Prisma.SortOrder + category?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ResourceWhereUniqueInput = Prisma.AtLeast<{ + id?: string + AND?: Prisma.ResourceWhereInput | Prisma.ResourceWhereInput[] + OR?: Prisma.ResourceWhereInput[] + NOT?: Prisma.ResourceWhereInput | Prisma.ResourceWhereInput[] + title?: Prisma.StringFilter<"Resource"> | string + description?: Prisma.StringNullableFilter<"Resource"> | string | null + url?: Prisma.StringFilter<"Resource"> | string + icon?: Prisma.StringNullableFilter<"Resource"> | string | null + category?: Prisma.StringNullableFilter<"Resource"> | string | null + createdAt?: Prisma.DateTimeFilter<"Resource"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"Resource"> | Date | string +}, "id"> + +export type ResourceOrderByWithAggregationInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + description?: Prisma.SortOrderInput | Prisma.SortOrder + url?: Prisma.SortOrder + icon?: Prisma.SortOrderInput | Prisma.SortOrder + category?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.ResourceCountOrderByAggregateInput + _max?: Prisma.ResourceMaxOrderByAggregateInput + _min?: Prisma.ResourceMinOrderByAggregateInput +} + +export type ResourceScalarWhereWithAggregatesInput = { + AND?: Prisma.ResourceScalarWhereWithAggregatesInput | Prisma.ResourceScalarWhereWithAggregatesInput[] + OR?: Prisma.ResourceScalarWhereWithAggregatesInput[] + NOT?: Prisma.ResourceScalarWhereWithAggregatesInput | Prisma.ResourceScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"Resource"> | string + title?: Prisma.StringWithAggregatesFilter<"Resource"> | string + description?: Prisma.StringNullableWithAggregatesFilter<"Resource"> | string | null + url?: Prisma.StringWithAggregatesFilter<"Resource"> | string + icon?: Prisma.StringNullableWithAggregatesFilter<"Resource"> | string | null + category?: Prisma.StringNullableWithAggregatesFilter<"Resource"> | string | null + createdAt?: Prisma.DateTimeWithAggregatesFilter<"Resource"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Resource"> | Date | string +} + +export type ResourceCreateInput = { + id?: string + title: string + description?: string | null + url: string + icon?: string | null + category?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ResourceUncheckedCreateInput = { + id?: string + title: string + description?: string | null + url: string + icon?: string | null + category?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ResourceUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + url?: Prisma.StringFieldUpdateOperationsInput | string + icon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + category?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ResourceUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + url?: Prisma.StringFieldUpdateOperationsInput | string + icon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + category?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ResourceCreateManyInput = { + id?: string + title: string + description?: string | null + url: string + icon?: string | null + category?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type ResourceUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + url?: Prisma.StringFieldUpdateOperationsInput | string + icon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + category?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ResourceUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + title?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + url?: Prisma.StringFieldUpdateOperationsInput | string + icon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + category?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type ResourceCountOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + description?: Prisma.SortOrder + url?: Prisma.SortOrder + icon?: Prisma.SortOrder + category?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ResourceMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + description?: Prisma.SortOrder + url?: Prisma.SortOrder + icon?: Prisma.SortOrder + category?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type ResourceMinOrderByAggregateInput = { + id?: Prisma.SortOrder + title?: Prisma.SortOrder + description?: Prisma.SortOrder + url?: Prisma.SortOrder + icon?: Prisma.SortOrder + category?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + + + +export type ResourceSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + description?: boolean + url?: boolean + icon?: boolean + category?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["resource"]> + +export type ResourceSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + description?: boolean + url?: boolean + icon?: boolean + category?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["resource"]> + +export type ResourceSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + title?: boolean + description?: boolean + url?: boolean + icon?: boolean + category?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["resource"]> + +export type ResourceSelectScalar = { + id?: boolean + title?: boolean + description?: boolean + url?: boolean + icon?: boolean + category?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type ResourceOmit = runtime.Types.Extensions.GetOmit<"id" | "title" | "description" | "url" | "icon" | "category" | "createdAt" | "updatedAt", ExtArgs["result"]["resource"]> + +export type $ResourcePayload = { + name: "Resource" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + title: string + description: string | null + url: string + icon: string | null + category: string | null + createdAt: Date + updatedAt: Date + }, ExtArgs["result"]["resource"]> + composites: {} +} + +export type ResourceGetPayload = runtime.Types.Result.GetResult + +export type ResourceCountArgs = + Omit & { + select?: ResourceCountAggregateInputType | true + } + +export interface ResourceDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Resource'], meta: { name: 'Resource' } } + /** + * Find zero or one Resource that matches the filter. + * @param {ResourceFindUniqueArgs} args - Arguments to find a Resource + * @example + * // Get one Resource + * const resource = await prisma.resource.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Resource that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ResourceFindUniqueOrThrowArgs} args - Arguments to find a Resource + * @example + * // Get one Resource + * const resource = await prisma.resource.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Resource 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 {ResourceFindFirstArgs} args - Arguments to find a Resource + * @example + * // Get one Resource + * const resource = await prisma.resource.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Resource 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 {ResourceFindFirstOrThrowArgs} args - Arguments to find a Resource + * @example + * // Get one Resource + * const resource = await prisma.resource.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Resources 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 {ResourceFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Resources + * const resources = await prisma.resource.findMany() + * + * // Get first 10 Resources + * const resources = await prisma.resource.findMany({ take: 10 }) + * + * // Only select the `id` + * const resourceWithIdOnly = await prisma.resource.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Resource. + * @param {ResourceCreateArgs} args - Arguments to create a Resource. + * @example + * // Create one Resource + * const Resource = await prisma.resource.create({ + * data: { + * // ... data to create a Resource + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Resources. + * @param {ResourceCreateManyArgs} args - Arguments to create many Resources. + * @example + * // Create many Resources + * const resource = await prisma.resource.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Resources and returns the data saved in the database. + * @param {ResourceCreateManyAndReturnArgs} args - Arguments to create many Resources. + * @example + * // Create many Resources + * const resource = await prisma.resource.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Resources and only return the `id` + * const resourceWithIdOnly = await prisma.resource.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Resource. + * @param {ResourceDeleteArgs} args - Arguments to delete one Resource. + * @example + * // Delete one Resource + * const Resource = await prisma.resource.delete({ + * where: { + * // ... filter to delete one Resource + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Resource. + * @param {ResourceUpdateArgs} args - Arguments to update one Resource. + * @example + * // Update one Resource + * const resource = await prisma.resource.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Resources. + * @param {ResourceDeleteManyArgs} args - Arguments to filter Resources to delete. + * @example + * // Delete a few Resources + * const { count } = await prisma.resource.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Resources. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ResourceUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Resources + * const resource = await prisma.resource.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Resources and returns the data updated in the database. + * @param {ResourceUpdateManyAndReturnArgs} args - Arguments to update many Resources. + * @example + * // Update many Resources + * const resource = await prisma.resource.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Resources and only return the `id` + * const resourceWithIdOnly = await prisma.resource.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Resource. + * @param {ResourceUpsertArgs} args - Arguments to update or create a Resource. + * @example + * // Update or create a Resource + * const resource = await prisma.resource.upsert({ + * create: { + * // ... data to create a Resource + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Resource we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__ResourceClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Resources. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ResourceCountArgs} args - Arguments to filter Resources to count. + * @example + * // Count the number of Resources + * const count = await prisma.resource.count({ + * where: { + * // ... the filter for the Resources 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 Resource. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ResourceAggregateArgs} 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 Resource. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ResourceGroupByArgs} 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 ResourceGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: ResourceGroupByArgs['orderBy'] } + : { orderBy?: ResourceGroupByArgs['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 ? GetResourceGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Resource model + */ +readonly fields: ResourceFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Resource. + * 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__ResourceClient 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 Resource model + */ +export interface ResourceFieldRefs { + readonly id: Prisma.FieldRef<"Resource", 'String'> + readonly title: Prisma.FieldRef<"Resource", 'String'> + readonly description: Prisma.FieldRef<"Resource", 'String'> + readonly url: Prisma.FieldRef<"Resource", 'String'> + readonly icon: Prisma.FieldRef<"Resource", 'String'> + readonly category: Prisma.FieldRef<"Resource", 'String'> + readonly createdAt: Prisma.FieldRef<"Resource", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"Resource", 'DateTime'> +} + + +// Custom InputTypes +/** + * Resource findUnique + */ +export type ResourceFindUniqueArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter, which Resource to fetch. + */ + where: Prisma.ResourceWhereUniqueInput +} + +/** + * Resource findUniqueOrThrow + */ +export type ResourceFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter, which Resource to fetch. + */ + where: Prisma.ResourceWhereUniqueInput +} + +/** + * Resource findFirst + */ +export type ResourceFindFirstArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter, which Resource to fetch. + */ + where?: Prisma.ResourceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Resources to fetch. + */ + orderBy?: Prisma.ResourceOrderByWithRelationInput | Prisma.ResourceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Resources. + */ + cursor?: Prisma.ResourceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Resources 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` Resources. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Resources. + */ + distinct?: Prisma.ResourceScalarFieldEnum | Prisma.ResourceScalarFieldEnum[] +} + +/** + * Resource findFirstOrThrow + */ +export type ResourceFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter, which Resource to fetch. + */ + where?: Prisma.ResourceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Resources to fetch. + */ + orderBy?: Prisma.ResourceOrderByWithRelationInput | Prisma.ResourceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Resources. + */ + cursor?: Prisma.ResourceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Resources 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` Resources. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Resources. + */ + distinct?: Prisma.ResourceScalarFieldEnum | Prisma.ResourceScalarFieldEnum[] +} + +/** + * Resource findMany + */ +export type ResourceFindManyArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter, which Resources to fetch. + */ + where?: Prisma.ResourceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Resources to fetch. + */ + orderBy?: Prisma.ResourceOrderByWithRelationInput | Prisma.ResourceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Resources. + */ + cursor?: Prisma.ResourceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Resources 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` Resources. + */ + skip?: number + distinct?: Prisma.ResourceScalarFieldEnum | Prisma.ResourceScalarFieldEnum[] +} + +/** + * Resource create + */ +export type ResourceCreateArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * The data needed to create a Resource. + */ + data: Prisma.XOR +} + +/** + * Resource createMany + */ +export type ResourceCreateManyArgs = { + /** + * The data used to create many Resources. + */ + data: Prisma.ResourceCreateManyInput | Prisma.ResourceCreateManyInput[] +} + +/** + * Resource createManyAndReturn + */ +export type ResourceCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * The data used to create many Resources. + */ + data: Prisma.ResourceCreateManyInput | Prisma.ResourceCreateManyInput[] +} + +/** + * Resource update + */ +export type ResourceUpdateArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * The data needed to update a Resource. + */ + data: Prisma.XOR + /** + * Choose, which Resource to update. + */ + where: Prisma.ResourceWhereUniqueInput +} + +/** + * Resource updateMany + */ +export type ResourceUpdateManyArgs = { + /** + * The data used to update Resources. + */ + data: Prisma.XOR + /** + * Filter which Resources to update + */ + where?: Prisma.ResourceWhereInput + /** + * Limit how many Resources to update. + */ + limit?: number +} + +/** + * Resource updateManyAndReturn + */ +export type ResourceUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * The data used to update Resources. + */ + data: Prisma.XOR + /** + * Filter which Resources to update + */ + where?: Prisma.ResourceWhereInput + /** + * Limit how many Resources to update. + */ + limit?: number +} + +/** + * Resource upsert + */ +export type ResourceUpsertArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * The filter to search for the Resource to update in case it exists. + */ + where: Prisma.ResourceWhereUniqueInput + /** + * In case the Resource found by the `where` argument doesn't exist, create a new Resource with this data. + */ + create: Prisma.XOR + /** + * In case the Resource was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Resource delete + */ +export type ResourceDeleteArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null + /** + * Filter which Resource to delete. + */ + where: Prisma.ResourceWhereUniqueInput +} + +/** + * Resource deleteMany + */ +export type ResourceDeleteManyArgs = { + /** + * Filter which Resources to delete + */ + where?: Prisma.ResourceWhereInput + /** + * Limit how many Resources to delete. + */ + limit?: number +} + +/** + * Resource without action + */ +export type ResourceDefaultArgs = { + /** + * Select specific fields to fetch from the Resource + */ + select?: Prisma.ResourceSelect | null + /** + * Omit specific fields from the Resource + */ + omit?: Prisma.ResourceOmit | null +} diff --git a/backend/src/generated/prisma/models/Session.ts b/backend/src/generated/prisma/models/Session.ts new file mode 100644 index 0000000..79f4c66 --- /dev/null +++ b/backend/src/generated/prisma/models/Session.ts @@ -0,0 +1,1302 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Session` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model Session + * + */ +export type SessionModel = runtime.Types.Result.DefaultSelection + +export type AggregateSession = { + _count: SessionCountAggregateOutputType | null + _min: SessionMinAggregateOutputType | null + _max: SessionMaxAggregateOutputType | null +} + +export type SessionMinAggregateOutputType = { + id: string | null + sessionToken: string | null + userId: string | null + expires: Date | null +} + +export type SessionMaxAggregateOutputType = { + id: string | null + sessionToken: string | null + userId: string | null + expires: Date | null +} + +export type SessionCountAggregateOutputType = { + id: number + sessionToken: number + userId: number + expires: number + _all: number +} + + +export type SessionMinAggregateInputType = { + id?: true + sessionToken?: true + userId?: true + expires?: true +} + +export type SessionMaxAggregateInputType = { + id?: true + sessionToken?: true + userId?: true + expires?: true +} + +export type SessionCountAggregateInputType = { + id?: true + sessionToken?: true + userId?: true + expires?: true + _all?: true +} + +export type SessionAggregateArgs = { + /** + * Filter which Session to aggregate. + */ + where?: Prisma.SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: Prisma.SessionOrderByWithRelationInput | Prisma.SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions 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` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Sessions + **/ + _count?: true | SessionCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: SessionMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: SessionMaxAggregateInputType +} + +export type GetSessionAggregateType = { + [P in keyof T & keyof AggregateSession]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type SessionGroupByArgs = { + where?: Prisma.SessionWhereInput + orderBy?: Prisma.SessionOrderByWithAggregationInput | Prisma.SessionOrderByWithAggregationInput[] + by: Prisma.SessionScalarFieldEnum[] | Prisma.SessionScalarFieldEnum + having?: Prisma.SessionScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: SessionCountAggregateInputType | true + _min?: SessionMinAggregateInputType + _max?: SessionMaxAggregateInputType +} + +export type SessionGroupByOutputType = { + id: string + sessionToken: string + userId: string + expires: Date + _count: SessionCountAggregateOutputType | null + _min: SessionMinAggregateOutputType | null + _max: SessionMaxAggregateOutputType | null +} + +type GetSessionGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof SessionGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type SessionWhereInput = { + AND?: Prisma.SessionWhereInput | Prisma.SessionWhereInput[] + OR?: Prisma.SessionWhereInput[] + NOT?: Prisma.SessionWhereInput | Prisma.SessionWhereInput[] + id?: Prisma.StringFilter<"Session"> | string + sessionToken?: Prisma.StringFilter<"Session"> | string + userId?: Prisma.StringFilter<"Session"> | string + expires?: Prisma.DateTimeFilter<"Session"> | Date | string + user?: Prisma.XOR +} + +export type SessionOrderByWithRelationInput = { + id?: Prisma.SortOrder + sessionToken?: Prisma.SortOrder + userId?: Prisma.SortOrder + expires?: Prisma.SortOrder + user?: Prisma.UserOrderByWithRelationInput +} + +export type SessionWhereUniqueInput = Prisma.AtLeast<{ + id?: string + sessionToken?: string + AND?: Prisma.SessionWhereInput | Prisma.SessionWhereInput[] + OR?: Prisma.SessionWhereInput[] + NOT?: Prisma.SessionWhereInput | Prisma.SessionWhereInput[] + userId?: Prisma.StringFilter<"Session"> | string + expires?: Prisma.DateTimeFilter<"Session"> | Date | string + user?: Prisma.XOR +}, "id" | "sessionToken"> + +export type SessionOrderByWithAggregationInput = { + id?: Prisma.SortOrder + sessionToken?: Prisma.SortOrder + userId?: Prisma.SortOrder + expires?: Prisma.SortOrder + _count?: Prisma.SessionCountOrderByAggregateInput + _max?: Prisma.SessionMaxOrderByAggregateInput + _min?: Prisma.SessionMinOrderByAggregateInput +} + +export type SessionScalarWhereWithAggregatesInput = { + AND?: Prisma.SessionScalarWhereWithAggregatesInput | Prisma.SessionScalarWhereWithAggregatesInput[] + OR?: Prisma.SessionScalarWhereWithAggregatesInput[] + NOT?: Prisma.SessionScalarWhereWithAggregatesInput | Prisma.SessionScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"Session"> | string + sessionToken?: Prisma.StringWithAggregatesFilter<"Session"> | string + userId?: Prisma.StringWithAggregatesFilter<"Session"> | string + expires?: Prisma.DateTimeWithAggregatesFilter<"Session"> | Date | string +} + +export type SessionCreateInput = { + id?: string + sessionToken: string + expires: Date | string + user: Prisma.UserCreateNestedOneWithoutSessionsInput +} + +export type SessionUncheckedCreateInput = { + id?: string + sessionToken: string + userId: string + expires: Date | string +} + +export type SessionUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutSessionsNestedInput +} + +export type SessionUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SessionCreateManyInput = { + id?: string + sessionToken: string + userId: string + expires: Date | string +} + +export type SessionUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SessionUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + userId?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SessionListRelationFilter = { + every?: Prisma.SessionWhereInput + some?: Prisma.SessionWhereInput + none?: Prisma.SessionWhereInput +} + +export type SessionOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type SessionCountOrderByAggregateInput = { + id?: Prisma.SortOrder + sessionToken?: Prisma.SortOrder + userId?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type SessionMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + sessionToken?: Prisma.SortOrder + userId?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type SessionMinOrderByAggregateInput = { + id?: Prisma.SortOrder + sessionToken?: Prisma.SortOrder + userId?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type SessionCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.SessionCreateWithoutUserInput[] | Prisma.SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.SessionCreateOrConnectWithoutUserInput | Prisma.SessionCreateOrConnectWithoutUserInput[] + createMany?: Prisma.SessionCreateManyUserInputEnvelope + connect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] +} + +export type SessionUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.SessionCreateWithoutUserInput[] | Prisma.SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.SessionCreateOrConnectWithoutUserInput | Prisma.SessionCreateOrConnectWithoutUserInput[] + createMany?: Prisma.SessionCreateManyUserInputEnvelope + connect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] +} + +export type SessionUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.SessionCreateWithoutUserInput[] | Prisma.SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.SessionCreateOrConnectWithoutUserInput | Prisma.SessionCreateOrConnectWithoutUserInput[] + upsert?: Prisma.SessionUpsertWithWhereUniqueWithoutUserInput | Prisma.SessionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.SessionCreateManyUserInputEnvelope + set?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + disconnect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + delete?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + connect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + update?: Prisma.SessionUpdateWithWhereUniqueWithoutUserInput | Prisma.SessionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.SessionUpdateManyWithWhereWithoutUserInput | Prisma.SessionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.SessionScalarWhereInput | Prisma.SessionScalarWhereInput[] +} + +export type SessionUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.SessionCreateWithoutUserInput[] | Prisma.SessionUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.SessionCreateOrConnectWithoutUserInput | Prisma.SessionCreateOrConnectWithoutUserInput[] + upsert?: Prisma.SessionUpsertWithWhereUniqueWithoutUserInput | Prisma.SessionUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.SessionCreateManyUserInputEnvelope + set?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + disconnect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + delete?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + connect?: Prisma.SessionWhereUniqueInput | Prisma.SessionWhereUniqueInput[] + update?: Prisma.SessionUpdateWithWhereUniqueWithoutUserInput | Prisma.SessionUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.SessionUpdateManyWithWhereWithoutUserInput | Prisma.SessionUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.SessionScalarWhereInput | Prisma.SessionScalarWhereInput[] +} + +export type SessionCreateWithoutUserInput = { + id?: string + sessionToken: string + expires: Date | string +} + +export type SessionUncheckedCreateWithoutUserInput = { + id?: string + sessionToken: string + expires: Date | string +} + +export type SessionCreateOrConnectWithoutUserInput = { + where: Prisma.SessionWhereUniqueInput + create: Prisma.XOR +} + +export type SessionCreateManyUserInputEnvelope = { + data: Prisma.SessionCreateManyUserInput | Prisma.SessionCreateManyUserInput[] +} + +export type SessionUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.SessionWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type SessionUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.SessionWhereUniqueInput + data: Prisma.XOR +} + +export type SessionUpdateManyWithWhereWithoutUserInput = { + where: Prisma.SessionScalarWhereInput + data: Prisma.XOR +} + +export type SessionScalarWhereInput = { + AND?: Prisma.SessionScalarWhereInput | Prisma.SessionScalarWhereInput[] + OR?: Prisma.SessionScalarWhereInput[] + NOT?: Prisma.SessionScalarWhereInput | Prisma.SessionScalarWhereInput[] + id?: Prisma.StringFilter<"Session"> | string + sessionToken?: Prisma.StringFilter<"Session"> | string + userId?: Prisma.StringFilter<"Session"> | string + expires?: Prisma.DateTimeFilter<"Session"> | Date | string +} + +export type SessionCreateManyUserInput = { + id?: string + sessionToken: string + expires: Date | string +} + +export type SessionUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SessionUncheckedUpdateWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type SessionUncheckedUpdateManyWithoutUserInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + sessionToken?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + + +export type SessionSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + sessionToken?: boolean + userId?: boolean + expires?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["session"]> + +export type SessionSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + sessionToken?: boolean + userId?: boolean + expires?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["session"]> + +export type SessionSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + sessionToken?: boolean + userId?: boolean + expires?: boolean + user?: boolean | Prisma.UserDefaultArgs +}, ExtArgs["result"]["session"]> + +export type SessionSelectScalar = { + id?: boolean + sessionToken?: boolean + userId?: boolean + expires?: boolean +} + +export type SessionOmit = runtime.Types.Extensions.GetOmit<"id" | "sessionToken" | "userId" | "expires", ExtArgs["result"]["session"]> +export type SessionInclude = { + user?: boolean | Prisma.UserDefaultArgs +} +export type SessionIncludeCreateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} +export type SessionIncludeUpdateManyAndReturn = { + user?: boolean | Prisma.UserDefaultArgs +} + +export type $SessionPayload = { + name: "Session" + objects: { + user: Prisma.$UserPayload + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + sessionToken: string + userId: string + expires: Date + }, ExtArgs["result"]["session"]> + composites: {} +} + +export type SessionGetPayload = runtime.Types.Result.GetResult + +export type SessionCountArgs = + Omit & { + select?: SessionCountAggregateInputType | true + } + +export interface SessionDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Session'], meta: { name: 'Session' } } + /** + * Find zero or one Session that matches the filter. + * @param {SessionFindUniqueArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one Session that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {SessionFindUniqueOrThrowArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Session 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 {SessionFindFirstArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first Session 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 {SessionFindFirstOrThrowArgs} args - Arguments to find a Session + * @example + * // Get one Session + * const session = await prisma.session.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more Sessions 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 {SessionFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Sessions + * const sessions = await prisma.session.findMany() + * + * // Get first 10 Sessions + * const sessions = await prisma.session.findMany({ take: 10 }) + * + * // Only select the `id` + * const sessionWithIdOnly = await prisma.session.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a Session. + * @param {SessionCreateArgs} args - Arguments to create a Session. + * @example + * // Create one Session + * const Session = await prisma.session.create({ + * data: { + * // ... data to create a Session + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many Sessions. + * @param {SessionCreateManyArgs} args - Arguments to create many Sessions. + * @example + * // Create many Sessions + * const session = await prisma.session.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Sessions and returns the data saved in the database. + * @param {SessionCreateManyAndReturnArgs} args - Arguments to create many Sessions. + * @example + * // Create many Sessions + * const session = await prisma.session.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Sessions and only return the `id` + * const sessionWithIdOnly = await prisma.session.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a Session. + * @param {SessionDeleteArgs} args - Arguments to delete one Session. + * @example + * // Delete one Session + * const Session = await prisma.session.delete({ + * where: { + * // ... filter to delete one Session + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one Session. + * @param {SessionUpdateArgs} args - Arguments to update one Session. + * @example + * // Update one Session + * const session = await prisma.session.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more Sessions. + * @param {SessionDeleteManyArgs} args - Arguments to filter Sessions to delete. + * @example + * // Delete a few Sessions + * const { count } = await prisma.session.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Sessions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Sessions + * const session = await prisma.session.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Sessions and returns the data updated in the database. + * @param {SessionUpdateManyAndReturnArgs} args - Arguments to update many Sessions. + * @example + * // Update many Sessions + * const session = await prisma.session.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Sessions and only return the `id` + * const sessionWithIdOnly = await prisma.session.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one Session. + * @param {SessionUpsertArgs} args - Arguments to update or create a Session. + * @example + * // Update or create a Session + * const session = await prisma.session.upsert({ + * create: { + * // ... data to create a Session + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Session we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__SessionClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of Sessions. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionCountArgs} args - Arguments to filter Sessions to count. + * @example + * // Count the number of Sessions + * const count = await prisma.session.count({ + * where: { + * // ... the filter for the Sessions 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 Session. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionAggregateArgs} 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 Session. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {SessionGroupByArgs} 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 SessionGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: SessionGroupByArgs['orderBy'] } + : { orderBy?: SessionGroupByArgs['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 ? GetSessionGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the Session model + */ +readonly fields: SessionFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Session. + * 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__SessionClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, 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 Session model + */ +export interface SessionFieldRefs { + readonly id: Prisma.FieldRef<"Session", 'String'> + readonly sessionToken: Prisma.FieldRef<"Session", 'String'> + readonly userId: Prisma.FieldRef<"Session", 'String'> + readonly expires: Prisma.FieldRef<"Session", 'DateTime'> +} + + +// Custom InputTypes +/** + * Session findUnique + */ +export type SessionFindUniqueArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where: Prisma.SessionWhereUniqueInput +} + +/** + * Session findUniqueOrThrow + */ +export type SessionFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where: Prisma.SessionWhereUniqueInput +} + +/** + * Session findFirst + */ +export type SessionFindFirstArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where?: Prisma.SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: Prisma.SessionOrderByWithRelationInput | Prisma.SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Sessions. + */ + cursor?: Prisma.SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions 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` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Sessions. + */ + distinct?: Prisma.SessionScalarFieldEnum | Prisma.SessionScalarFieldEnum[] +} + +/** + * Session findFirstOrThrow + */ +export type SessionFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter, which Session to fetch. + */ + where?: Prisma.SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: Prisma.SessionOrderByWithRelationInput | Prisma.SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Sessions. + */ + cursor?: Prisma.SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions 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` Sessions. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Sessions. + */ + distinct?: Prisma.SessionScalarFieldEnum | Prisma.SessionScalarFieldEnum[] +} + +/** + * Session findMany + */ +export type SessionFindManyArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter, which Sessions to fetch. + */ + where?: Prisma.SessionWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Sessions to fetch. + */ + orderBy?: Prisma.SessionOrderByWithRelationInput | Prisma.SessionOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Sessions. + */ + cursor?: Prisma.SessionWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Sessions 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` Sessions. + */ + skip?: number + distinct?: Prisma.SessionScalarFieldEnum | Prisma.SessionScalarFieldEnum[] +} + +/** + * Session create + */ +export type SessionCreateArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * The data needed to create a Session. + */ + data: Prisma.XOR +} + +/** + * Session createMany + */ +export type SessionCreateManyArgs = { + /** + * The data used to create many Sessions. + */ + data: Prisma.SessionCreateManyInput | Prisma.SessionCreateManyInput[] +} + +/** + * Session createManyAndReturn + */ +export type SessionCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelectCreateManyAndReturn | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * The data used to create many Sessions. + */ + data: Prisma.SessionCreateManyInput | Prisma.SessionCreateManyInput[] + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionIncludeCreateManyAndReturn | null +} + +/** + * Session update + */ +export type SessionUpdateArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * The data needed to update a Session. + */ + data: Prisma.XOR + /** + * Choose, which Session to update. + */ + where: Prisma.SessionWhereUniqueInput +} + +/** + * Session updateMany + */ +export type SessionUpdateManyArgs = { + /** + * The data used to update Sessions. + */ + data: Prisma.XOR + /** + * Filter which Sessions to update + */ + where?: Prisma.SessionWhereInput + /** + * Limit how many Sessions to update. + */ + limit?: number +} + +/** + * Session updateManyAndReturn + */ +export type SessionUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * The data used to update Sessions. + */ + data: Prisma.XOR + /** + * Filter which Sessions to update + */ + where?: Prisma.SessionWhereInput + /** + * Limit how many Sessions to update. + */ + limit?: number + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionIncludeUpdateManyAndReturn | null +} + +/** + * Session upsert + */ +export type SessionUpsertArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * The filter to search for the Session to update in case it exists. + */ + where: Prisma.SessionWhereUniqueInput + /** + * In case the Session found by the `where` argument doesn't exist, create a new Session with this data. + */ + create: Prisma.XOR + /** + * In case the Session was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * Session delete + */ +export type SessionDeleteArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + /** + * Filter which Session to delete. + */ + where: Prisma.SessionWhereUniqueInput +} + +/** + * Session deleteMany + */ +export type SessionDeleteManyArgs = { + /** + * Filter which Sessions to delete + */ + where?: Prisma.SessionWhereInput + /** + * Limit how many Sessions to delete. + */ + limit?: number +} + +/** + * Session without action + */ +export type SessionDefaultArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null +} diff --git a/backend/src/generated/prisma/models/User.ts b/backend/src/generated/prisma/models/User.ts new file mode 100644 index 0000000..b42a2d6 --- /dev/null +++ b/backend/src/generated/prisma/models/User.ts @@ -0,0 +1,1878 @@ + +/* !!! 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model User + * + */ +export type UserModel = runtime.Types.Result.DefaultSelection + +export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null +} + +export type UserMinAggregateOutputType = { + id: string | null + name: string | null + email: string | null + emailVerified: Date | null + phone: string | null + phoneVerified: Date | null + image: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserMaxAggregateOutputType = { + id: string | null + name: string | null + email: string | null + emailVerified: Date | null + phone: string | null + phoneVerified: Date | null + image: string | null + createdAt: Date | null + updatedAt: Date | null +} + +export type UserCountAggregateOutputType = { + id: number + name: number + email: number + emailVerified: number + phone: number + phoneVerified: number + image: number + createdAt: number + updatedAt: number + _all: number +} + + +export type UserMinAggregateInputType = { + id?: true + name?: true + email?: true + emailVerified?: true + phone?: true + phoneVerified?: true + image?: true + createdAt?: true + updatedAt?: true +} + +export type UserMaxAggregateInputType = { + id?: true + name?: true + email?: true + emailVerified?: true + phone?: true + phoneVerified?: true + image?: true + createdAt?: true + updatedAt?: true +} + +export type UserCountAggregateInputType = { + id?: true + name?: true + email?: true + emailVerified?: true + phone?: true + phoneVerified?: true + image?: true + createdAt?: true + updatedAt?: 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 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 + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType +} + +export type UserGroupByOutputType = { + id: string + name: string | null + email: string | null + emailVerified: Date | null + phone: string | null + phoneVerified: Date | null + image: string | null + createdAt: Date + updatedAt: Date + _count: UserCountAggregateOutputType | 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.StringFilter<"User"> | string + name?: Prisma.StringNullableFilter<"User"> | string | null + email?: Prisma.StringNullableFilter<"User"> | string | null + emailVerified?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null + phone?: Prisma.StringNullableFilter<"User"> | string | null + phoneVerified?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null + image?: Prisma.StringNullableFilter<"User"> | string | null + createdAt?: Prisma.DateTimeFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string + accounts?: Prisma.AccountListRelationFilter + sessions?: Prisma.SessionListRelationFilter + posts?: Prisma.PostListRelationFilter + comments?: Prisma.CommentListRelationFilter +} + +export type UserOrderByWithRelationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrderInput | Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + emailVerified?: Prisma.SortOrderInput | Prisma.SortOrder + phone?: Prisma.SortOrderInput | Prisma.SortOrder + phoneVerified?: Prisma.SortOrderInput | Prisma.SortOrder + image?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + accounts?: Prisma.AccountOrderByRelationAggregateInput + sessions?: Prisma.SessionOrderByRelationAggregateInput + posts?: Prisma.PostOrderByRelationAggregateInput + comments?: Prisma.CommentOrderByRelationAggregateInput +} + +export type UserWhereUniqueInput = Prisma.AtLeast<{ + id?: string + email?: string + phone?: string + AND?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + OR?: Prisma.UserWhereInput[] + NOT?: Prisma.UserWhereInput | Prisma.UserWhereInput[] + name?: Prisma.StringNullableFilter<"User"> | string | null + emailVerified?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null + phoneVerified?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null + image?: Prisma.StringNullableFilter<"User"> | string | null + createdAt?: Prisma.DateTimeFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string + accounts?: Prisma.AccountListRelationFilter + sessions?: Prisma.SessionListRelationFilter + posts?: Prisma.PostListRelationFilter + comments?: Prisma.CommentListRelationFilter +}, "id" | "email" | "phone"> + +export type UserOrderByWithAggregationInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrderInput | Prisma.SortOrder + email?: Prisma.SortOrderInput | Prisma.SortOrder + emailVerified?: Prisma.SortOrderInput | Prisma.SortOrder + phone?: Prisma.SortOrderInput | Prisma.SortOrder + phoneVerified?: Prisma.SortOrderInput | Prisma.SortOrder + image?: Prisma.SortOrderInput | Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder + _count?: Prisma.UserCountOrderByAggregateInput + _max?: Prisma.UserMaxOrderByAggregateInput + _min?: Prisma.UserMinOrderByAggregateInput +} + +export type UserScalarWhereWithAggregatesInput = { + AND?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + OR?: Prisma.UserScalarWhereWithAggregatesInput[] + NOT?: Prisma.UserScalarWhereWithAggregatesInput | Prisma.UserScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"User"> | string + name?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null + email?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null + emailVerified?: Prisma.DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null + phone?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null + phoneVerified?: Prisma.DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null + image?: Prisma.StringNullableWithAggregatesFilter<"User"> | string | null + createdAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"User"> | Date | string +} + +export type UserCreateInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionCreateNestedManyWithoutUserInput + posts?: Prisma.PostCreateNestedManyWithoutUserInput + comments?: Prisma.CommentCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountUncheckedCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionUncheckedCreateNestedManyWithoutUserInput + posts?: Prisma.PostUncheckedCreateNestedManyWithoutUserInput + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutUserInput +} + +export type UserUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUncheckedUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUncheckedUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUncheckedUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateManyInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string +} + +export type UserUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type UserCountOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + emailVerified?: Prisma.SortOrder + phone?: Prisma.SortOrder + phoneVerified?: Prisma.SortOrder + image?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + emailVerified?: Prisma.SortOrder + phone?: Prisma.SortOrder + phoneVerified?: Prisma.SortOrder + image?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserMinOrderByAggregateInput = { + id?: Prisma.SortOrder + name?: Prisma.SortOrder + email?: Prisma.SortOrder + emailVerified?: Prisma.SortOrder + phone?: Prisma.SortOrder + phoneVerified?: Prisma.SortOrder + image?: Prisma.SortOrder + createdAt?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder +} + +export type UserScalarRelationFilter = { + is?: Prisma.UserWhereInput + isNot?: Prisma.UserWhereInput +} + +export type StringFieldUpdateOperationsInput = { + set?: string +} + +export type NullableStringFieldUpdateOperationsInput = { + set?: string | null +} + +export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null +} + +export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string +} + +export type UserCreateNestedOneWithoutAccountsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutAccountsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutAccountsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutAccountsInput + upsert?: Prisma.UserUpsertWithoutAccountsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutAccountsInput> +} + +export type UserCreateNestedOneWithoutSessionsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutSessionsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutSessionsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutSessionsInput + upsert?: Prisma.UserUpsertWithoutSessionsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutSessionsInput> +} + +export type UserCreateNestedOneWithoutPostsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutPostsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutPostsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutPostsInput + upsert?: Prisma.UserUpsertWithoutPostsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutPostsInput> +} + +export type UserCreateNestedOneWithoutCommentsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutCommentsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutCommentsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutCommentsInput + upsert?: Prisma.UserUpsertWithoutCommentsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutCommentsInput> +} + +export type UserCreateWithoutAccountsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + sessions?: Prisma.SessionCreateNestedManyWithoutUserInput + posts?: Prisma.PostCreateNestedManyWithoutUserInput + comments?: Prisma.CommentCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutAccountsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + sessions?: Prisma.SessionUncheckedCreateNestedManyWithoutUserInput + posts?: Prisma.PostUncheckedCreateNestedManyWithoutUserInput + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutAccountsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutAccountsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutAccountsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutAccountsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + sessions?: Prisma.SessionUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutAccountsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + sessions?: Prisma.SessionUncheckedUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUncheckedUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutSessionsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountCreateNestedManyWithoutUserInput + posts?: Prisma.PostCreateNestedManyWithoutUserInput + comments?: Prisma.CommentCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutSessionsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountUncheckedCreateNestedManyWithoutUserInput + posts?: Prisma.PostUncheckedCreateNestedManyWithoutUserInput + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutSessionsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutSessionsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutSessionsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutSessionsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutSessionsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUncheckedUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUncheckedUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutPostsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionCreateNestedManyWithoutUserInput + comments?: Prisma.CommentCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutPostsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountUncheckedCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionUncheckedCreateNestedManyWithoutUserInput + comments?: Prisma.CommentUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutPostsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutPostsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutPostsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutPostsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutPostsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUncheckedUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUncheckedUpdateManyWithoutUserNestedInput + comments?: Prisma.CommentUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutCommentsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionCreateNestedManyWithoutUserInput + posts?: Prisma.PostCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutCommentsInput = { + id?: string + name?: string | null + email?: string | null + emailVerified?: Date | string | null + phone?: string | null + phoneVerified?: Date | string | null + image?: string | null + createdAt?: Date | string + updatedAt?: Date | string + accounts?: Prisma.AccountUncheckedCreateNestedManyWithoutUserInput + sessions?: Prisma.SessionUncheckedCreateNestedManyWithoutUserInput + posts?: Prisma.PostUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutCommentsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutCommentsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutCommentsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutCommentsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutCommentsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + email?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + emailVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + phone?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + phoneVerified?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + image?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + accounts?: Prisma.AccountUncheckedUpdateManyWithoutUserNestedInput + sessions?: Prisma.SessionUncheckedUpdateManyWithoutUserNestedInput + posts?: Prisma.PostUncheckedUpdateManyWithoutUserNestedInput +} + + +/** + * Count Type UserCountOutputType + */ + +export type UserCountOutputType = { + accounts: number + sessions: number + posts: number + comments: number +} + +export type UserCountOutputTypeSelect = { + accounts?: boolean | UserCountOutputTypeCountAccountsArgs + sessions?: boolean | UserCountOutputTypeCountSessionsArgs + posts?: boolean | UserCountOutputTypeCountPostsArgs + comments?: boolean | UserCountOutputTypeCountCommentsArgs +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the UserCountOutputType + */ + select?: Prisma.UserCountOutputTypeSelect | null +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountAccountsArgs = { + where?: Prisma.AccountWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountSessionsArgs = { + where?: Prisma.SessionWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountPostsArgs = { + where?: Prisma.PostWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountCommentsArgs = { + where?: Prisma.CommentWhereInput +} + + +export type UserSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + phone?: boolean + phoneVerified?: boolean + image?: boolean + createdAt?: boolean + updatedAt?: boolean + accounts?: boolean | Prisma.User$accountsArgs + sessions?: boolean | Prisma.User$sessionsArgs + posts?: boolean | Prisma.User$postsArgs + comments?: boolean | Prisma.User$commentsArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs +}, ExtArgs["result"]["user"]> + +export type UserSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + phone?: boolean + phoneVerified?: boolean + image?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["user"]> + +export type UserSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + id?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + phone?: boolean + phoneVerified?: boolean + image?: boolean + createdAt?: boolean + updatedAt?: boolean +}, ExtArgs["result"]["user"]> + +export type UserSelectScalar = { + id?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + phone?: boolean + phoneVerified?: boolean + image?: boolean + createdAt?: boolean + updatedAt?: boolean +} + +export type UserOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "email" | "emailVerified" | "phone" | "phoneVerified" | "image" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> +export type UserInclude = { + accounts?: boolean | Prisma.User$accountsArgs + sessions?: boolean | Prisma.User$sessionsArgs + posts?: boolean | Prisma.User$postsArgs + comments?: boolean | Prisma.User$commentsArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs +} +export type UserIncludeCreateManyAndReturn = {} +export type UserIncludeUpdateManyAndReturn = {} + +export type $UserPayload = { + name: "User" + objects: { + accounts: Prisma.$AccountPayload[] + sessions: Prisma.$SessionPayload[] + posts: Prisma.$PostPayload[] + comments: Prisma.$CommentPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + name: string | null + email: string | null + emailVerified: Date | null + phone: string | null + phoneVerified: Date | null + image: string | null + createdAt: Date + updatedAt: Date + }, 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 + + /** + * Create many Users and returns the data saved in the database. + * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Users and only return the `id` + * const userWithIdOnly = await prisma.user.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * 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 + + /** + * Update zero or more Users and returns the data updated in the database. + * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users. + * @example + * // Update many Users + * const user = await prisma.user.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Users and only return the `id` + * const userWithIdOnly = await prisma.user.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * 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" + accounts = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + sessions = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + posts = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + comments = {}>(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 User model + */ +export interface UserFieldRefs { + readonly id: Prisma.FieldRef<"User", 'String'> + readonly name: Prisma.FieldRef<"User", 'String'> + readonly email: Prisma.FieldRef<"User", 'String'> + readonly emailVerified: Prisma.FieldRef<"User", 'DateTime'> + readonly phone: Prisma.FieldRef<"User", 'String'> + readonly phoneVerified: Prisma.FieldRef<"User", 'DateTime'> + readonly image: Prisma.FieldRef<"User", 'String'> + readonly createdAt: Prisma.FieldRef<"User", 'DateTime'> + readonly updatedAt: Prisma.FieldRef<"User", 'DateTime'> +} + + +// 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[] +} + +/** + * User createManyAndReturn + */ +export type UserCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelectCreateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * The data used to create many Users. + */ + data: Prisma.UserCreateManyInput | Prisma.UserCreateManyInput[] +} + +/** + * 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 updateManyAndReturn + */ +export type UserUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: Prisma.UserSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the User + */ + omit?: Prisma.UserOmit | null + /** + * 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.accounts + */ +export type User$accountsArgs = { + /** + * Select specific fields to fetch from the Account + */ + select?: Prisma.AccountSelect | null + /** + * Omit specific fields from the Account + */ + omit?: Prisma.AccountOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.AccountInclude | null + where?: Prisma.AccountWhereInput + orderBy?: Prisma.AccountOrderByWithRelationInput | Prisma.AccountOrderByWithRelationInput[] + cursor?: Prisma.AccountWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.AccountScalarFieldEnum | Prisma.AccountScalarFieldEnum[] +} + +/** + * User.sessions + */ +export type User$sessionsArgs = { + /** + * Select specific fields to fetch from the Session + */ + select?: Prisma.SessionSelect | null + /** + * Omit specific fields from the Session + */ + omit?: Prisma.SessionOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.SessionInclude | null + where?: Prisma.SessionWhereInput + orderBy?: Prisma.SessionOrderByWithRelationInput | Prisma.SessionOrderByWithRelationInput[] + cursor?: Prisma.SessionWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.SessionScalarFieldEnum | Prisma.SessionScalarFieldEnum[] +} + +/** + * User.posts + */ +export type User$postsArgs = { + /** + * Select specific fields to fetch from the Post + */ + select?: Prisma.PostSelect | null + /** + * Omit specific fields from the Post + */ + omit?: Prisma.PostOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.PostInclude | null + where?: Prisma.PostWhereInput + orderBy?: Prisma.PostOrderByWithRelationInput | Prisma.PostOrderByWithRelationInput[] + cursor?: Prisma.PostWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.PostScalarFieldEnum | Prisma.PostScalarFieldEnum[] +} + +/** + * User.comments + */ +export type User$commentsArgs = { + /** + * Select specific fields to fetch from the Comment + */ + select?: Prisma.CommentSelect | null + /** + * Omit specific fields from the Comment + */ + omit?: Prisma.CommentOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.CommentInclude | null + where?: Prisma.CommentWhereInput + orderBy?: Prisma.CommentOrderByWithRelationInput | Prisma.CommentOrderByWithRelationInput[] + cursor?: Prisma.CommentWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.CommentScalarFieldEnum | Prisma.CommentScalarFieldEnum[] +} + +/** + * 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/backend/src/generated/prisma/models/VerificationToken.ts b/backend/src/generated/prisma/models/VerificationToken.ts new file mode 100644 index 0000000..8e24496 --- /dev/null +++ b/backend/src/generated/prisma/models/VerificationToken.ts @@ -0,0 +1,1092 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `VerificationToken` 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.ts" +import type * as Prisma from "../internal/prismaNamespace.ts" + +/** + * Model VerificationToken + * + */ +export type VerificationTokenModel = runtime.Types.Result.DefaultSelection + +export type AggregateVerificationToken = { + _count: VerificationTokenCountAggregateOutputType | null + _min: VerificationTokenMinAggregateOutputType | null + _max: VerificationTokenMaxAggregateOutputType | null +} + +export type VerificationTokenMinAggregateOutputType = { + identifier: string | null + token: string | null + expires: Date | null +} + +export type VerificationTokenMaxAggregateOutputType = { + identifier: string | null + token: string | null + expires: Date | null +} + +export type VerificationTokenCountAggregateOutputType = { + identifier: number + token: number + expires: number + _all: number +} + + +export type VerificationTokenMinAggregateInputType = { + identifier?: true + token?: true + expires?: true +} + +export type VerificationTokenMaxAggregateInputType = { + identifier?: true + token?: true + expires?: true +} + +export type VerificationTokenCountAggregateInputType = { + identifier?: true + token?: true + expires?: true + _all?: true +} + +export type VerificationTokenAggregateArgs = { + /** + * Filter which VerificationToken to aggregate. + */ + where?: Prisma.VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: Prisma.VerificationTokenOrderByWithRelationInput | Prisma.VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens 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` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned VerificationTokens + **/ + _count?: true | VerificationTokenCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: VerificationTokenMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: VerificationTokenMaxAggregateInputType +} + +export type GetVerificationTokenAggregateType = { + [P in keyof T & keyof AggregateVerificationToken]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type VerificationTokenGroupByArgs = { + where?: Prisma.VerificationTokenWhereInput + orderBy?: Prisma.VerificationTokenOrderByWithAggregationInput | Prisma.VerificationTokenOrderByWithAggregationInput[] + by: Prisma.VerificationTokenScalarFieldEnum[] | Prisma.VerificationTokenScalarFieldEnum + having?: Prisma.VerificationTokenScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: VerificationTokenCountAggregateInputType | true + _min?: VerificationTokenMinAggregateInputType + _max?: VerificationTokenMaxAggregateInputType +} + +export type VerificationTokenGroupByOutputType = { + identifier: string + token: string + expires: Date + _count: VerificationTokenCountAggregateOutputType | null + _min: VerificationTokenMinAggregateOutputType | null + _max: VerificationTokenMaxAggregateOutputType | null +} + +type GetVerificationTokenGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof VerificationTokenGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type VerificationTokenWhereInput = { + AND?: Prisma.VerificationTokenWhereInput | Prisma.VerificationTokenWhereInput[] + OR?: Prisma.VerificationTokenWhereInput[] + NOT?: Prisma.VerificationTokenWhereInput | Prisma.VerificationTokenWhereInput[] + identifier?: Prisma.StringFilter<"VerificationToken"> | string + token?: Prisma.StringFilter<"VerificationToken"> | string + expires?: Prisma.DateTimeFilter<"VerificationToken"> | Date | string +} + +export type VerificationTokenOrderByWithRelationInput = { + identifier?: Prisma.SortOrder + token?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type VerificationTokenWhereUniqueInput = Prisma.AtLeast<{ + token?: string + identifier_token?: Prisma.VerificationTokenIdentifierTokenCompoundUniqueInput + AND?: Prisma.VerificationTokenWhereInput | Prisma.VerificationTokenWhereInput[] + OR?: Prisma.VerificationTokenWhereInput[] + NOT?: Prisma.VerificationTokenWhereInput | Prisma.VerificationTokenWhereInput[] + identifier?: Prisma.StringFilter<"VerificationToken"> | string + expires?: Prisma.DateTimeFilter<"VerificationToken"> | Date | string +}, "token" | "identifier_token"> + +export type VerificationTokenOrderByWithAggregationInput = { + identifier?: Prisma.SortOrder + token?: Prisma.SortOrder + expires?: Prisma.SortOrder + _count?: Prisma.VerificationTokenCountOrderByAggregateInput + _max?: Prisma.VerificationTokenMaxOrderByAggregateInput + _min?: Prisma.VerificationTokenMinOrderByAggregateInput +} + +export type VerificationTokenScalarWhereWithAggregatesInput = { + AND?: Prisma.VerificationTokenScalarWhereWithAggregatesInput | Prisma.VerificationTokenScalarWhereWithAggregatesInput[] + OR?: Prisma.VerificationTokenScalarWhereWithAggregatesInput[] + NOT?: Prisma.VerificationTokenScalarWhereWithAggregatesInput | Prisma.VerificationTokenScalarWhereWithAggregatesInput[] + identifier?: Prisma.StringWithAggregatesFilter<"VerificationToken"> | string + token?: Prisma.StringWithAggregatesFilter<"VerificationToken"> | string + expires?: Prisma.DateTimeWithAggregatesFilter<"VerificationToken"> | Date | string +} + +export type VerificationTokenCreateInput = { + identifier: string + token: string + expires: Date | string +} + +export type VerificationTokenUncheckedCreateInput = { + identifier: string + token: string + expires: Date | string +} + +export type VerificationTokenUpdateInput = { + identifier?: Prisma.StringFieldUpdateOperationsInput | string + token?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type VerificationTokenUncheckedUpdateInput = { + identifier?: Prisma.StringFieldUpdateOperationsInput | string + token?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type VerificationTokenCreateManyInput = { + identifier: string + token: string + expires: Date | string +} + +export type VerificationTokenUpdateManyMutationInput = { + identifier?: Prisma.StringFieldUpdateOperationsInput | string + token?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type VerificationTokenUncheckedUpdateManyInput = { + identifier?: Prisma.StringFieldUpdateOperationsInput | string + token?: Prisma.StringFieldUpdateOperationsInput | string + expires?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type VerificationTokenIdentifierTokenCompoundUniqueInput = { + identifier: string + token: string +} + +export type VerificationTokenCountOrderByAggregateInput = { + identifier?: Prisma.SortOrder + token?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type VerificationTokenMaxOrderByAggregateInput = { + identifier?: Prisma.SortOrder + token?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + +export type VerificationTokenMinOrderByAggregateInput = { + identifier?: Prisma.SortOrder + token?: Prisma.SortOrder + expires?: Prisma.SortOrder +} + + + +export type VerificationTokenSelect = runtime.Types.Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean +}, ExtArgs["result"]["verificationToken"]> + +export type VerificationTokenSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean +}, ExtArgs["result"]["verificationToken"]> + +export type VerificationTokenSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ + identifier?: boolean + token?: boolean + expires?: boolean +}, ExtArgs["result"]["verificationToken"]> + +export type VerificationTokenSelectScalar = { + identifier?: boolean + token?: boolean + expires?: boolean +} + +export type VerificationTokenOmit = runtime.Types.Extensions.GetOmit<"identifier" | "token" | "expires", ExtArgs["result"]["verificationToken"]> + +export type $VerificationTokenPayload = { + name: "VerificationToken" + objects: {} + scalars: runtime.Types.Extensions.GetPayloadResult<{ + identifier: string + token: string + expires: Date + }, ExtArgs["result"]["verificationToken"]> + composites: {} +} + +export type VerificationTokenGetPayload = runtime.Types.Result.GetResult + +export type VerificationTokenCountArgs = + Omit & { + select?: VerificationTokenCountAggregateInputType | true + } + +export interface VerificationTokenDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['VerificationToken'], meta: { name: 'VerificationToken' } } + /** + * Find zero or one VerificationToken that matches the filter. + * @param {VerificationTokenFindUniqueArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one VerificationToken that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {VerificationTokenFindUniqueOrThrowArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first VerificationToken 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 {VerificationTokenFindFirstArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first VerificationToken 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 {VerificationTokenFindFirstOrThrowArgs} args - Arguments to find a VerificationToken + * @example + * // Get one VerificationToken + * const verificationToken = await prisma.verificationToken.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more VerificationTokens 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 {VerificationTokenFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany() + * + * // Get first 10 VerificationTokens + * const verificationTokens = await prisma.verificationToken.findMany({ take: 10 }) + * + * // Only select the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.findMany({ select: { identifier: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a VerificationToken. + * @param {VerificationTokenCreateArgs} args - Arguments to create a VerificationToken. + * @example + * // Create one VerificationToken + * const VerificationToken = await prisma.verificationToken.create({ + * data: { + * // ... data to create a VerificationToken + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many VerificationTokens. + * @param {VerificationTokenCreateManyArgs} args - Arguments to create many VerificationTokens. + * @example + * // Create many VerificationTokens + * const verificationToken = await prisma.verificationToken.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create many VerificationTokens and returns the data saved in the database. + * @param {VerificationTokenCreateManyAndReturnArgs} args - Arguments to create many VerificationTokens. + * @example + * // Create many VerificationTokens + * const verificationToken = await prisma.verificationToken.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many VerificationTokens and only return the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.createManyAndReturn({ + * select: { identifier: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> + + /** + * Delete a VerificationToken. + * @param {VerificationTokenDeleteArgs} args - Arguments to delete one VerificationToken. + * @example + * // Delete one VerificationToken + * const VerificationToken = await prisma.verificationToken.delete({ + * where: { + * // ... filter to delete one VerificationToken + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one VerificationToken. + * @param {VerificationTokenUpdateArgs} args - Arguments to update one VerificationToken. + * @example + * // Update one VerificationToken + * const verificationToken = await prisma.verificationToken.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more VerificationTokens. + * @param {VerificationTokenDeleteManyArgs} args - Arguments to filter VerificationTokens to delete. + * @example + * // Delete a few VerificationTokens + * const { count } = await prisma.verificationToken.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more VerificationTokens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many VerificationTokens + * const verificationToken = await prisma.verificationToken.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more VerificationTokens and returns the data updated in the database. + * @param {VerificationTokenUpdateManyAndReturnArgs} args - Arguments to update many VerificationTokens. + * @example + * // Update many VerificationTokens + * const verificationToken = await prisma.verificationToken.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more VerificationTokens and only return the `identifier` + * const verificationTokenWithIdentifierOnly = await prisma.verificationToken.updateManyAndReturn({ + * select: { identifier: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> + + /** + * Create or update one VerificationToken. + * @param {VerificationTokenUpsertArgs} args - Arguments to update or create a VerificationToken. + * @example + * // Update or create a VerificationToken + * const verificationToken = await prisma.verificationToken.upsert({ + * create: { + * // ... data to create a VerificationToken + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the VerificationToken we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__VerificationTokenClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of VerificationTokens. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenCountArgs} args - Arguments to filter VerificationTokens to count. + * @example + * // Count the number of VerificationTokens + * const count = await prisma.verificationToken.count({ + * where: { + * // ... the filter for the VerificationTokens 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 VerificationToken. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenAggregateArgs} 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 VerificationToken. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationTokenGroupByArgs} 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 VerificationTokenGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: VerificationTokenGroupByArgs['orderBy'] } + : { orderBy?: VerificationTokenGroupByArgs['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 ? GetVerificationTokenGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the VerificationToken model + */ +readonly fields: VerificationTokenFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for VerificationToken. + * 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__VerificationTokenClient 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 VerificationToken model + */ +export interface VerificationTokenFieldRefs { + readonly identifier: Prisma.FieldRef<"VerificationToken", 'String'> + readonly token: Prisma.FieldRef<"VerificationToken", 'String'> + readonly expires: Prisma.FieldRef<"VerificationToken", 'DateTime'> +} + + +// Custom InputTypes +/** + * VerificationToken findUnique + */ +export type VerificationTokenFindUniqueArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where: Prisma.VerificationTokenWhereUniqueInput +} + +/** + * VerificationToken findUniqueOrThrow + */ +export type VerificationTokenFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where: Prisma.VerificationTokenWhereUniqueInput +} + +/** + * VerificationToken findFirst + */ +export type VerificationTokenFindFirstArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where?: Prisma.VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: Prisma.VerificationTokenOrderByWithRelationInput | Prisma.VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationTokens. + */ + cursor?: Prisma.VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens 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` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationTokens. + */ + distinct?: Prisma.VerificationTokenScalarFieldEnum | Prisma.VerificationTokenScalarFieldEnum[] +} + +/** + * VerificationToken findFirstOrThrow + */ +export type VerificationTokenFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter, which VerificationToken to fetch. + */ + where?: Prisma.VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: Prisma.VerificationTokenOrderByWithRelationInput | Prisma.VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationTokens. + */ + cursor?: Prisma.VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens 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` VerificationTokens. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationTokens. + */ + distinct?: Prisma.VerificationTokenScalarFieldEnum | Prisma.VerificationTokenScalarFieldEnum[] +} + +/** + * VerificationToken findMany + */ +export type VerificationTokenFindManyArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter, which VerificationTokens to fetch. + */ + where?: Prisma.VerificationTokenWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationTokens to fetch. + */ + orderBy?: Prisma.VerificationTokenOrderByWithRelationInput | Prisma.VerificationTokenOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing VerificationTokens. + */ + cursor?: Prisma.VerificationTokenWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationTokens 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` VerificationTokens. + */ + skip?: number + distinct?: Prisma.VerificationTokenScalarFieldEnum | Prisma.VerificationTokenScalarFieldEnum[] +} + +/** + * VerificationToken create + */ +export type VerificationTokenCreateArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * The data needed to create a VerificationToken. + */ + data: Prisma.XOR +} + +/** + * VerificationToken createMany + */ +export type VerificationTokenCreateManyArgs = { + /** + * The data used to create many VerificationTokens. + */ + data: Prisma.VerificationTokenCreateManyInput | Prisma.VerificationTokenCreateManyInput[] +} + +/** + * VerificationToken createManyAndReturn + */ +export type VerificationTokenCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelectCreateManyAndReturn | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * The data used to create many VerificationTokens. + */ + data: Prisma.VerificationTokenCreateManyInput | Prisma.VerificationTokenCreateManyInput[] +} + +/** + * VerificationToken update + */ +export type VerificationTokenUpdateArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * The data needed to update a VerificationToken. + */ + data: Prisma.XOR + /** + * Choose, which VerificationToken to update. + */ + where: Prisma.VerificationTokenWhereUniqueInput +} + +/** + * VerificationToken updateMany + */ +export type VerificationTokenUpdateManyArgs = { + /** + * The data used to update VerificationTokens. + */ + data: Prisma.XOR + /** + * Filter which VerificationTokens to update + */ + where?: Prisma.VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to update. + */ + limit?: number +} + +/** + * VerificationToken updateManyAndReturn + */ +export type VerificationTokenUpdateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelectUpdateManyAndReturn | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * The data used to update VerificationTokens. + */ + data: Prisma.XOR + /** + * Filter which VerificationTokens to update + */ + where?: Prisma.VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to update. + */ + limit?: number +} + +/** + * VerificationToken upsert + */ +export type VerificationTokenUpsertArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * The filter to search for the VerificationToken to update in case it exists. + */ + where: Prisma.VerificationTokenWhereUniqueInput + /** + * In case the VerificationToken found by the `where` argument doesn't exist, create a new VerificationToken with this data. + */ + create: Prisma.XOR + /** + * In case the VerificationToken was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * VerificationToken delete + */ +export type VerificationTokenDeleteArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null + /** + * Filter which VerificationToken to delete. + */ + where: Prisma.VerificationTokenWhereUniqueInput +} + +/** + * VerificationToken deleteMany + */ +export type VerificationTokenDeleteManyArgs = { + /** + * Filter which VerificationTokens to delete + */ + where?: Prisma.VerificationTokenWhereInput + /** + * Limit how many VerificationTokens to delete. + */ + limit?: number +} + +/** + * VerificationToken without action + */ +export type VerificationTokenDefaultArgs = { + /** + * Select specific fields to fetch from the VerificationToken + */ + select?: Prisma.VerificationTokenSelect | null + /** + * Omit specific fields from the VerificationToken + */ + omit?: Prisma.VerificationTokenOmit | null +} diff --git a/backend/src/index.ts b/backend/src/index.ts index 0a38556..9326380 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -1,9 +1,9 @@ -import { Elysia } from 'elysia'; -import { cors } from '@elysiajs/cors'; -import { auth } from './auth'; -import { prisma } from './prisma'; -import { resources } from './resources'; -import { posts } from './posts'; +import { Elysia } from 'elysia' +import { cors } from '@elysiajs/cors' +import { auth } from './auth' +import { prisma } from './prisma' +import { resources } from './resources' +import { posts } from './posts' const app = new Elysia() .use( @@ -11,8 +11,8 @@ const app = new Elysia() origin: 'http://localhost:5173', methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], credentials: true, - allowedHeaders: ['Content-Type', 'Authorization'] - }) + allowedHeaders: ['Content-Type', 'Authorization'], + }), ) .mount(auth.handler) .get('/health', () => 'OK') @@ -21,15 +21,15 @@ const app = new Elysia() .get('/user/:id', async ({ params }) => { const user = await prisma.user.findUnique({ where: { - id: params.id - } - }); - return user; - }); + id: params.id, + }, + }) + return user + }) app.listen(3001, () => { - console.log('Server running on port 3001'); -}); + console.log('Server running on port 3001') +}) -export default app; -export type App = typeof app; +export default app +export type App = typeof app diff --git a/backend/src/posts.ts b/backend/src/posts.ts index 89813d6..d9f1f56 100644 --- a/backend/src/posts.ts +++ b/backend/src/posts.ts @@ -1,38 +1,42 @@ -import { Elysia, t } from 'elysia'; -import { prisma } from './prisma'; +import { Elysia, t } from 'elysia' +import { prisma } from './prisma' export const posts = new Elysia({ prefix: '/posts' }) .get('/', async () => { return await prisma.post.findMany({ include: { user: true }, - orderBy: { createdAt: 'desc' } - }); + orderBy: { createdAt: 'desc' }, + }) }) .get('/:id', async ({ params: { id } }) => { return await prisma.post.findUnique({ where: { id }, - include: { - user: true, + include: { + user: true, comments: { include: { - user: true + user: true, }, orderBy: { - createdAt: 'desc' - } - } - } - }); - }) - .post('/', async ({ body }) => { - return await prisma.post.create({ - data: body - }); - }, { - body: t.Object({ - title: t.String(), - content: t.String(), - userId: t.String(), - published: t.Optional(t.Boolean()) + createdAt: 'desc', + }, + }, + }, }) - }); + }) + .post( + '/', + async ({ body }) => { + return await prisma.post.create({ + data: body, + }) + }, + { + body: t.Object({ + title: t.String(), + content: t.String(), + userId: t.String(), + published: t.Optional(t.Boolean()), + }), + }, + ) diff --git a/backend/src/prisma.ts b/backend/src/prisma.ts index fbb7b51..0a0c073 100644 --- a/backend/src/prisma.ts +++ b/backend/src/prisma.ts @@ -1,3 +1,12 @@ -import { PrismaClient } from '@prisma/client'; +import { PrismaClient } from "./generated/prisma/client"; +import { PrismaLibSql } from "@prisma/adapter-libsql"; +import { createClient } from "@libsql/client"; -export const prisma = new PrismaClient(); \ No newline at end of file +const libsql = createClient({ + url: process.env.DATABASE_URL || "file:./prisma/dev.db", +}); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const adapter = new PrismaLibSql(libsql as any); + +export const prisma = new PrismaClient({ adapter }); diff --git a/backend/src/resources.ts b/backend/src/resources.ts index 21419ae..1f869ee 100644 --- a/backend/src/resources.ts +++ b/backend/src/resources.ts @@ -1,41 +1,49 @@ -import { Elysia, t } from 'elysia'; -import { prisma } from './prisma'; +import { Elysia, t } from 'elysia' +import { prisma } from './prisma' export const resources = new Elysia({ prefix: '/resources' }) .get('/', async () => { return await prisma.resource.findMany({ - orderBy: { createdAt: 'desc' } - }); - }) - .post('/', async ({ body }) => { - return await prisma.resource.create({ - data: body - }); - }, { - body: t.Object({ - title: t.String(), - description: t.Optional(t.String()), - url: t.String(), - icon: t.Optional(t.String()), - category: t.Optional(t.String()) - }) - }) - .put('/:id', async ({ params: { id }, body }) => { - return await prisma.resource.update({ - where: { id }, - data: body - }); - }, { - body: t.Object({ - title: t.Optional(t.String()), - description: t.Optional(t.String()), - url: t.Optional(t.String()), - icon: t.Optional(t.String()), - category: t.Optional(t.String()) + orderBy: { createdAt: 'desc' }, }) }) + .post( + '/', + async ({ body }) => { + return await prisma.resource.create({ + data: body, + }) + }, + { + body: t.Object({ + title: t.String(), + description: t.Optional(t.String()), + url: t.String(), + icon: t.Optional(t.String()), + category: t.Optional(t.String()), + }), + }, + ) + .put( + '/:id', + async ({ params: { id }, body }) => { + return await prisma.resource.update({ + where: { id }, + data: body, + }) + }, + { + body: t.Object({ + title: t.Optional(t.String()), + description: t.Optional(t.String()), + url: t.Optional(t.String()), + icon: t.Optional(t.String()), + category: t.Optional(t.String()), + }), + }, + ) .delete('/:id', async ({ params: { id } }) => { return await prisma.resource.delete({ - where: { id } - }); - }); + where: { id }, + }) + }) diff --git a/backend/tsconfig.json b/backend/tsconfig.json new file mode 100644 index 0000000..a7a904f --- /dev/null +++ b/backend/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "types": ["bun"] + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/bun.lock b/bun.lock index 26d6f19..5b3f0a7 100644 --- a/bun.lock +++ b/bun.lock @@ -5,8 +5,23 @@ "": { "name": "bun-react-template", "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/bun": "^1.3.10", + "@types/node": "^25.4.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "bun-plugin-tailwind": "^0.1.2", "concurrently": "^9.2.1", + "eslint": "^10.0.3", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "prettier": "^3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", "typescript": "~5.9.3", + "typescript-eslint": "^8.57.0", }, }, "backend": { @@ -15,13 +30,18 @@ "dependencies": { "@elysiajs/cors": "^1.0.0", "@elysiajs/eden": "^1.0.0", - "@prisma/client": "^5.0.0", - "better-auth": "^0.7.0", + "@libsql/client": "^0.17.0", + "@prisma/adapter-libsql": "^7.4.2", + "@prisma/client": "^7.4.2", + "better-auth": "^1.5.4", + "dotenv": "^17.3.1", "elysia": "^1.0.0", - "prisma": "^5.0.0", + "prisma": "^7.4.2", }, "devDependencies": { + "@prisma/config": "^7.4.2", "@types/bun": "latest", + "eslint": "^10.0.3", }, }, "web": { @@ -50,6 +70,7 @@ "@types/react-dom": "^19", "@vitejs/plugin-react": "^4.0.0", "backend": "workspace:*", + "eslint": "^10.0.3", "vite": "^5.0.0", }, }, @@ -111,18 +132,28 @@ "@better-auth/utils": ["@better-auth/utils@0.3.1", "https://registry.npmmirror.com/@better-auth/utils/-/utils-0.3.1.tgz", {}, "sha512-+CGp4UmZSUrHHnpHhLPYu6cV+wSUSvVbZbNykxhUDocpVNTo9uFFxw/NqJlh1iC4wQ9HKKWGCKuZ5wUgS0v6Kg=="], - "@better-fetch/fetch": ["@better-fetch/fetch@1.1.12", "https://registry.npmmirror.com/@better-fetch/fetch/-/fetch-1.1.12.tgz", {}, "sha512-B3bfloI/2UBQWIATRN6qmlORrvx3Mp0kkNjmXLv0b+DtbtR+pP4/I5kQA/rDUv+OReLywCCldf6co4LdDmh8JA=="], + "@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "https://registry.npmmirror.com/@better-fetch/fetch/-/fetch-1.1.21.tgz", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="], "@borewit/text-codec": ["@borewit/text-codec@0.2.1", "https://registry.npmmirror.com/@borewit/text-codec/-/text-codec-0.2.1.tgz", {}, "sha512-k7vvKPbf7J2fZ5klGRD9AeKfUvojuZIQ3BT5u7Jfv+puwXkUBUT5PVyMDfJZpy30CBDXGMgw7fguK/lpOMBvgw=="], + "@chevrotain/cst-dts-gen": ["@chevrotain/cst-dts-gen@10.5.0", "https://registry.npmmirror.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.5.0.tgz", { "dependencies": { "@chevrotain/gast": "10.5.0", "@chevrotain/types": "10.5.0", "lodash": "4.17.21" } }, "sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw=="], + + "@chevrotain/gast": ["@chevrotain/gast@10.5.0", "https://registry.npmmirror.com/@chevrotain/gast/-/gast-10.5.0.tgz", { "dependencies": { "@chevrotain/types": "10.5.0", "lodash": "4.17.21" } }, "sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A=="], + + "@chevrotain/types": ["@chevrotain/types@10.5.0", "https://registry.npmmirror.com/@chevrotain/types/-/types-10.5.0.tgz", {}, "sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A=="], + + "@chevrotain/utils": ["@chevrotain/utils@10.5.0", "https://registry.npmmirror.com/@chevrotain/utils/-/utils-10.5.0.tgz", {}, "sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ=="], + + "@electric-sql/pglite": ["@electric-sql/pglite@0.3.15", "https://registry.npmmirror.com/@electric-sql/pglite/-/pglite-0.3.15.tgz", {}, "sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ=="], + + "@electric-sql/pglite-socket": ["@electric-sql/pglite-socket@0.0.20", "https://registry.npmmirror.com/@electric-sql/pglite-socket/-/pglite-socket-0.0.20.tgz", { "peerDependencies": { "@electric-sql/pglite": "0.3.15" }, "bin": { "pglite-server": "dist/scripts/server.js" } }, "sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg=="], + + "@electric-sql/pglite-tools": ["@electric-sql/pglite-tools@0.2.20", "https://registry.npmmirror.com/@electric-sql/pglite-tools/-/pglite-tools-0.2.20.tgz", { "peerDependencies": { "@electric-sql/pglite": "0.3.15" } }, "sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A=="], + "@elysiajs/cors": ["@elysiajs/cors@1.4.1", "https://registry.npmmirror.com/@elysiajs/cors/-/cors-1.4.1.tgz", { "peerDependencies": { "elysia": ">= 1.4.0" } }, "sha512-lQfad+F3r4mNwsxRKbXyJB8Jg43oAOXjRwn7sKUL6bcOW3KjUqUimTS+woNpO97efpzjtDE0tEjGk9DTw8lqTQ=="], "@elysiajs/eden": ["@elysiajs/eden@1.4.8", "https://registry.npmmirror.com/@elysiajs/eden/-/eden-1.4.8.tgz", { "peerDependencies": { "elysia": ">=1.4.19" } }, "sha512-a7oct2kFa49tH+GawZtSUCZR2rQgucNYgGLz8alXUqb4IrU3PASA0T4zXJw4MhdV1Xb6vyiR7p7kkqJcVjgbkA=="], - "@emnapi/core": ["@emnapi/core@0.45.0", "https://registry.npmmirror.com/@emnapi/core/-/core-0.45.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw=="], - - "@emnapi/runtime": ["@emnapi/runtime@0.45.0", "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-0.45.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], "@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="], @@ -169,6 +200,22 @@ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.23.3", "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.23.3.tgz", { "dependencies": { "@eslint/object-schema": "^3.0.3", "debug": "^4.3.1", "minimatch": "^10.2.4" } }, "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.5.3", "https://registry.npmmirror.com/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", { "dependencies": { "@eslint/core": "^1.1.1" } }, "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw=="], + + "@eslint/core": ["@eslint/core@1.1.1", "https://registry.npmmirror.com/@eslint/core/-/core-1.1.1.tgz", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ=="], + + "@eslint/js": ["@eslint/js@10.0.1", "https://registry.npmmirror.com/@eslint/js/-/js-10.0.1.tgz", { "peerDependencies": { "eslint": "^10.0.0" }, "optionalPeers": ["eslint"] }, "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA=="], + + "@eslint/object-schema": ["@eslint/object-schema@3.0.3", "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-3.0.3.tgz", {}, "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.6.1", "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", { "dependencies": { "@eslint/core": "^1.1.1", "levn": "^0.4.1" } }, "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ=="], + "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.6", "https://registry.npmmirror.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", { "dependencies": { "@formatjs/fast-memoize": "2.2.7", "@formatjs/intl-localematcher": "0.6.2", "decimal.js": "^10.4.3", "tslib": "^2.8.0" } }, "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw=="], "@formatjs/fast-memoize": ["@formatjs/fast-memoize@2.2.7", "https://registry.npmmirror.com/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ=="], @@ -185,7 +232,15 @@ "@heroui/styles": ["@heroui/styles@3.0.0-beta.8", "https://registry.npmmirror.com/@heroui/styles/-/styles-3.0.0-beta.8.tgz", { "dependencies": { "tailwind-variants": "3.2.2", "tw-animate-css": "1.4.0" }, "peerDependencies": { "tailwindcss": ">=4.0.0" } }, "sha512-QKSMuHiT5VIySweFjw5/ombl58Oqp6vZ9fbRniIlh3k4Jh2lMmSUEPZ53+2vTw2VoGwDgLdvfOyJLxedYQpvIw=="], - "@hexagon/base64": ["@hexagon/base64@1.1.28", "https://registry.npmmirror.com/@hexagon/base64/-/base64-1.1.28.tgz", {}, "sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw=="], + "@hono/node-server": ["@hono/node-server@1.19.9", "https://registry.npmmirror.com/@hono/node-server/-/node-server-1.19.9.tgz", { "peerDependencies": { "hono": "^4" } }, "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "https://registry.npmmirror.com/@humanfs/core/-/core-0.19.1.tgz", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "https://registry.npmmirror.com/@humanfs/node/-/node-0.16.7.tgz", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.4.3.tgz", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], "@internationalized/date": ["@internationalized/date@3.12.0", "https://registry.npmmirror.com/@internationalized/date/-/date-3.12.0.tgz", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-/PyIMzK29jtXaGU23qTvNZxvBXRtKbNnGDFD+PY6CZw/Y8Ex8pFUzkuCJCG9aOqmShjqhS9mPqP6Dk5onQY8rQ=="], @@ -205,81 +260,41 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@levischuck/tiny-cbor": ["@levischuck/tiny-cbor@0.2.11", "https://registry.npmmirror.com/@levischuck/tiny-cbor/-/tiny-cbor-0.2.11.tgz", {}, "sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow=="], + "@libsql/client": ["@libsql/client@0.17.0", "https://registry.npmmirror.com/@libsql/client/-/client-0.17.0.tgz", { "dependencies": { "@libsql/core": "^0.17.0", "@libsql/hrana-client": "^0.9.0", "js-base64": "^3.7.5", "libsql": "^0.5.22", "promise-limit": "^2.7.0" } }, "sha512-TLjSU9Otdpq0SpKHl1tD1Nc9MKhrsZbCFGot3EbCxRa8m1E5R1mMwoOjKMMM31IyF7fr+hPNHLpYfwbMKNusmg=="], + + "@libsql/core": ["@libsql/core@0.17.0", "https://registry.npmmirror.com/@libsql/core/-/core-0.17.0.tgz", { "dependencies": { "js-base64": "^3.7.5" } }, "sha512-hnZRnJHiS+nrhHKLGYPoJbc78FE903MSDrFJTbftxo+e52X+E0Y0fHOCVYsKWcg6XgB7BbJYUrz/xEkVTSaipw=="], + + "@libsql/darwin-arm64": ["@libsql/darwin-arm64@0.5.22", "https://registry.npmmirror.com/@libsql/darwin-arm64/-/darwin-arm64-0.5.22.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA=="], + + "@libsql/darwin-x64": ["@libsql/darwin-x64@0.5.22", "https://registry.npmmirror.com/@libsql/darwin-x64/-/darwin-x64-0.5.22.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA=="], + + "@libsql/hrana-client": ["@libsql/hrana-client@0.9.0", "https://registry.npmmirror.com/@libsql/hrana-client/-/hrana-client-0.9.0.tgz", { "dependencies": { "@libsql/isomorphic-ws": "^0.1.5", "cross-fetch": "^4.0.0", "js-base64": "^3.7.5", "node-fetch": "^3.3.2" } }, "sha512-pxQ1986AuWfPX4oXzBvLwBnfgKDE5OMhAdR/5cZmRaB4Ygz5MecQybvwZupnRz341r2CtFmbk/BhSu7k2Lm+Jw=="], + + "@libsql/isomorphic-ws": ["@libsql/isomorphic-ws@0.1.5", "https://registry.npmmirror.com/@libsql/isomorphic-ws/-/isomorphic-ws-0.1.5.tgz", { "dependencies": { "@types/ws": "^8.5.4", "ws": "^8.13.0" } }, "sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg=="], + + "@libsql/linux-arm-gnueabihf": ["@libsql/linux-arm-gnueabihf@0.5.22", "https://registry.npmmirror.com/@libsql/linux-arm-gnueabihf/-/linux-arm-gnueabihf-0.5.22.tgz", { "os": "linux", "cpu": "arm" }, "sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA=="], + + "@libsql/linux-arm-musleabihf": ["@libsql/linux-arm-musleabihf@0.5.22", "https://registry.npmmirror.com/@libsql/linux-arm-musleabihf/-/linux-arm-musleabihf-0.5.22.tgz", { "os": "linux", "cpu": "arm" }, "sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg=="], + + "@libsql/linux-arm64-gnu": ["@libsql/linux-arm64-gnu@0.5.22", "https://registry.npmmirror.com/@libsql/linux-arm64-gnu/-/linux-arm64-gnu-0.5.22.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA=="], + + "@libsql/linux-arm64-musl": ["@libsql/linux-arm64-musl@0.5.22", "https://registry.npmmirror.com/@libsql/linux-arm64-musl/-/linux-arm64-musl-0.5.22.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw=="], + + "@libsql/linux-x64-gnu": ["@libsql/linux-x64-gnu@0.5.22", "https://registry.npmmirror.com/@libsql/linux-x64-gnu/-/linux-x64-gnu-0.5.22.tgz", { "os": "linux", "cpu": "x64" }, "sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew=="], + + "@libsql/linux-x64-musl": ["@libsql/linux-x64-musl@0.5.22", "https://registry.npmmirror.com/@libsql/linux-x64-musl/-/linux-x64-musl-0.5.22.tgz", { "os": "linux", "cpu": "x64" }, "sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg=="], + + "@libsql/win32-x64-msvc": ["@libsql/win32-x64-msvc@0.5.22", "https://registry.npmmirror.com/@libsql/win32-x64-msvc/-/win32-x64-msvc-0.5.22.tgz", { "os": "win32", "cpu": "x64" }, "sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA=="], "@mongodb-js/saslprep": ["@mongodb-js/saslprep@1.4.6", "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.4.6.tgz", { "dependencies": { "sparse-bitfield": "^3.0.3" } }, "sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g=="], - "@nanostores/query": ["@nanostores/query@0.3.4", "https://registry.npmmirror.com/@nanostores/query/-/query-0.3.4.tgz", { "dependencies": { "nanoevents": "^9.0.0" }, "peerDependencies": { "nanostores": ">=0.10" } }, "sha512-Gw5HsKflUDefhcZpVwVoIfw2Hz2+8FsInpVQOQ45EWz2FijaJll5aQWSE5JbYUsU/uAnYuKm5NM5ZgBH9HhniQ=="], + "@mrleebo/prisma-ast": ["@mrleebo/prisma-ast@0.13.1", "https://registry.npmmirror.com/@mrleebo/prisma-ast/-/prisma-ast-0.13.1.tgz", { "dependencies": { "chevrotain": "^10.5.0", "lilconfig": "^2.1.0" } }, "sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw=="], - "@nanostores/react": ["@nanostores/react@0.8.4", "https://registry.npmmirror.com/@nanostores/react/-/react-0.8.4.tgz", { "peerDependencies": { "nanostores": "^0.9.0 || ^0.10.0 || ^0.11.0", "react": ">=18.0.0" } }, "sha512-EciHSzDXg7GmGODjegGG1VldPEinbAK+12/Uz5+MAdHmxf082Rl6eXqKFxAAu4pZAcr5dNTpv6wMfEe7XacjkQ=="], + "@neon-rs/load": ["@neon-rs/load@0.0.4", "https://registry.npmmirror.com/@neon-rs/load/-/load-0.0.4.tgz", {}, "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw=="], - "@nanostores/solid": ["@nanostores/solid@0.4.2", "https://registry.npmmirror.com/@nanostores/solid/-/solid-0.4.2.tgz", { "peerDependencies": { "nanostores": ">=0.8.0", "solid-js": "^1.6.0" } }, "sha512-8v32+C9KdRbnvP4x4Oiw/CtL1tZwbRxYfmFsPIY9PXevCgxSFnicG6VnLLtNAR7F0kl8Ec7OROHO34Ffv0KDzg=="], + "@noble/ciphers": ["@noble/ciphers@2.1.1", "https://registry.npmmirror.com/@noble/ciphers/-/ciphers-2.1.1.tgz", {}, "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw=="], - "@nanostores/vue": ["@nanostores/vue@0.10.0", "https://registry.npmmirror.com/@nanostores/vue/-/vue-0.10.0.tgz", { "peerDependencies": { "@nanostores/logger": ">=0.2.3", "@vue/devtools-api": ">=6.5.0", "nanostores": ">=0.9.2", "vue": ">=3.3.1" }, "optionalPeers": ["@nanostores/logger", "@vue/devtools-api"] }, "sha512-832RAUbzRfHPs1CdqVEwfvgB2+RD/INji4Zo8bUSEfRO2pQRMMeq479gydnohGpRaa0oNwlfKo7TGFXCghq/1g=="], - - "@noble/ciphers": ["@noble/ciphers@0.6.0", "https://registry.npmmirror.com/@noble/ciphers/-/ciphers-0.6.0.tgz", {}, "sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ=="], - - "@noble/hashes": ["@noble/hashes@1.8.0", "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.8.0.tgz", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@node-rs/argon2": ["@node-rs/argon2@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2/-/argon2-1.7.0.tgz", { "optionalDependencies": { "@node-rs/argon2-android-arm-eabi": "1.7.0", "@node-rs/argon2-android-arm64": "1.7.0", "@node-rs/argon2-darwin-arm64": "1.7.0", "@node-rs/argon2-darwin-x64": "1.7.0", "@node-rs/argon2-freebsd-x64": "1.7.0", "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", "@node-rs/argon2-linux-arm64-gnu": "1.7.0", "@node-rs/argon2-linux-arm64-musl": "1.7.0", "@node-rs/argon2-linux-x64-gnu": "1.7.0", "@node-rs/argon2-linux-x64-musl": "1.7.0", "@node-rs/argon2-wasm32-wasi": "1.7.0", "@node-rs/argon2-win32-arm64-msvc": "1.7.0", "@node-rs/argon2-win32-ia32-msvc": "1.7.0", "@node-rs/argon2-win32-x64-msvc": "1.7.0" } }, "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog=="], - - "@node-rs/argon2-android-arm-eabi": ["@node-rs/argon2-android-arm-eabi@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", { "os": "android", "cpu": "arm" }, "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg=="], - - "@node-rs/argon2-android-arm64": ["@node-rs/argon2-android-arm64@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", { "os": "android", "cpu": "arm64" }, "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A=="], - - "@node-rs/argon2-darwin-arm64": ["@node-rs/argon2-darwin-arm64@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw=="], - - "@node-rs/argon2-darwin-x64": ["@node-rs/argon2-darwin-x64@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw=="], - - "@node-rs/argon2-freebsd-x64": ["@node-rs/argon2-freebsd-x64@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA=="], - - "@node-rs/argon2-linux-arm-gnueabihf": ["@node-rs/argon2-linux-arm-gnueabihf@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", { "os": "linux", "cpu": "arm" }, "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg=="], - - "@node-rs/argon2-linux-arm64-gnu": ["@node-rs/argon2-linux-arm64-gnu@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g=="], - - "@node-rs/argon2-linux-arm64-musl": ["@node-rs/argon2-linux-arm64-musl@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A=="], - - "@node-rs/argon2-linux-x64-gnu": ["@node-rs/argon2-linux-x64-gnu@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ=="], - - "@node-rs/argon2-linux-x64-musl": ["@node-rs/argon2-linux-x64-musl@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA=="], - - "@node-rs/argon2-wasm32-wasi": ["@node-rs/argon2-wasm32-wasi@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", { "dependencies": { "@emnapi/core": "^0.45.0", "@emnapi/runtime": "^0.45.0", "@tybys/wasm-util": "^0.8.1", "memfs-browser": "^3.4.13000" }, "cpu": "none" }, "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w=="], - - "@node-rs/argon2-win32-arm64-msvc": ["@node-rs/argon2-win32-arm64-msvc@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA=="], - - "@node-rs/argon2-win32-ia32-msvc": ["@node-rs/argon2-win32-ia32-msvc@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg=="], - - "@node-rs/argon2-win32-x64-msvc": ["@node-rs/argon2-win32-x64-msvc@1.7.0", "https://registry.npmmirror.com/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q=="], - - "@node-rs/bcrypt": ["@node-rs/bcrypt@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt/-/bcrypt-1.9.0.tgz", { "optionalDependencies": { "@node-rs/bcrypt-android-arm-eabi": "1.9.0", "@node-rs/bcrypt-android-arm64": "1.9.0", "@node-rs/bcrypt-darwin-arm64": "1.9.0", "@node-rs/bcrypt-darwin-x64": "1.9.0", "@node-rs/bcrypt-freebsd-x64": "1.9.0", "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", "@node-rs/bcrypt-linux-x64-musl": "1.9.0", "@node-rs/bcrypt-wasm32-wasi": "1.9.0", "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" } }, "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig=="], - - "@node-rs/bcrypt-android-arm-eabi": ["@node-rs/bcrypt-android-arm-eabi@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.0.tgz", { "os": "android", "cpu": "arm" }, "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA=="], - - "@node-rs/bcrypt-android-arm64": ["@node-rs/bcrypt-android-arm64@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.0.tgz", { "os": "android", "cpu": "arm64" }, "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A=="], - - "@node-rs/bcrypt-darwin-arm64": ["@node-rs/bcrypt-darwin-arm64@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.0.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw=="], - - "@node-rs/bcrypt-darwin-x64": ["@node-rs/bcrypt-darwin-x64@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.0.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug=="], - - "@node-rs/bcrypt-freebsd-x64": ["@node-rs/bcrypt-freebsd-x64@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.0.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg=="], - - "@node-rs/bcrypt-linux-arm-gnueabihf": ["@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.0.tgz", { "os": "linux", "cpu": "arm" }, "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA=="], - - "@node-rs/bcrypt-linux-arm64-gnu": ["@node-rs/bcrypt-linux-arm64-gnu@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q=="], - - "@node-rs/bcrypt-linux-arm64-musl": ["@node-rs/bcrypt-linux-arm64-musl@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.0.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew=="], - - "@node-rs/bcrypt-linux-x64-gnu": ["@node-rs/bcrypt-linux-x64-gnu@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ=="], - - "@node-rs/bcrypt-linux-x64-musl": ["@node-rs/bcrypt-linux-x64-musl@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.0.tgz", { "os": "linux", "cpu": "x64" }, "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg=="], - - "@node-rs/bcrypt-wasm32-wasi": ["@node-rs/bcrypt-wasm32-wasi@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.0.tgz", { "dependencies": { "@emnapi/core": "^0.45.0", "@emnapi/runtime": "^0.45.0", "@tybys/wasm-util": "^0.8.1", "memfs-browser": "^3.4.13000" }, "cpu": "none" }, "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw=="], - - "@node-rs/bcrypt-win32-arm64-msvc": ["@node-rs/bcrypt-win32-arm64-msvc@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.0.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw=="], - - "@node-rs/bcrypt-win32-ia32-msvc": ["@node-rs/bcrypt-win32-ia32-msvc@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.0.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA=="], - - "@node-rs/bcrypt-win32-x64-msvc": ["@node-rs/bcrypt-win32-x64-msvc@1.9.0", "https://registry.npmmirror.com/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w=="], + "@noble/hashes": ["@noble/hashes@2.0.1", "https://registry.npmmirror.com/@noble/hashes/-/hashes-2.0.1.tgz", {}, "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -287,27 +302,55 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@peculiar/asn1-android": ["@peculiar/asn1-android@2.6.0", "https://registry.npmmirror.com/@peculiar/asn1-android/-/asn1-android-2.6.0.tgz", { "dependencies": { "@peculiar/asn1-schema": "^2.6.0", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "sha512-cBRCKtYPF7vJGN76/yG8VbxRcHLPF3HnkoHhKOZeHpoVtbMYfY9ROKtH3DtYUY9m8uI1Mh47PRhHf2hSK3xcSQ=="], + "@oven/bun-darwin-aarch64": ["@oven/bun-darwin-aarch64@1.3.10", "https://registry.npmmirror.com/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.3.10.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-PXgg5gqcS/rHwa1hF0JdM1y5TiyejVrMHoBmWY/DjtfYZoFTXie1RCFOkoG0b5diOOmUcuYarMpH7CSNTqwj+w=="], - "@peculiar/asn1-ecc": ["@peculiar/asn1-ecc@2.6.1", "https://registry.npmmirror.com/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", { "dependencies": { "@peculiar/asn1-schema": "^2.6.0", "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g=="], + "@oven/bun-darwin-x64": ["@oven/bun-darwin-x64@1.3.10", "https://registry.npmmirror.com/@oven/bun-darwin-x64/-/bun-darwin-x64-1.3.10.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-Nhssuh7GBpP5PiDSOl3+qnoIG7PJo+ec2oomDevnl9pRY6x6aD2gRt0JE+uf+A8Om2D6gjeHCxjEdrw5ZHE8mA=="], - "@peculiar/asn1-rsa": ["@peculiar/asn1-rsa@2.6.1", "https://registry.npmmirror.com/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", { "dependencies": { "@peculiar/asn1-schema": "^2.6.0", "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA=="], + "@oven/bun-darwin-x64-baseline": ["@oven/bun-darwin-x64-baseline@1.3.10", "https://registry.npmmirror.com/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.3.10.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-w1gaTlqU0IJCmJ1X+PGHkdNU1n8Gemx5YKkjhkJIguvFINXEBB5U1KG82QsT65Tk4KyNMfbLTlmy4giAvUoKfA=="], - "@peculiar/asn1-schema": ["@peculiar/asn1-schema@2.6.0", "https://registry.npmmirror.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", { "dependencies": { "asn1js": "^3.0.6", "pvtsutils": "^1.3.6", "tslib": "^2.8.1" } }, "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg=="], + "@oven/bun-linux-aarch64": ["@oven/bun-linux-aarch64@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.3.10.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-OUgPHfL6+PM2Q+tFZjcaycN3D7gdQdYlWnwMI31DXZKY1r4HINWk9aEz9t/rNaHg65edwNrt7dsv9TF7xK8xIA=="], - "@peculiar/asn1-x509": ["@peculiar/asn1-x509@2.6.1", "https://registry.npmmirror.com/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", { "dependencies": { "@peculiar/asn1-schema": "^2.6.0", "asn1js": "^3.0.6", "pvtsutils": "^1.3.6", "tslib": "^2.8.1" } }, "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA=="], + "@oven/bun-linux-aarch64-musl": ["@oven/bun-linux-aarch64-musl@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.3.10.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-Ui5pAgM7JE9MzHokF0VglRMkbak3lTisY4Mf1AZutPACXWgKJC5aGrgnHBfkl7QS6fEeYb0juy1q4eRznRHOsw=="], - "@prisma/client": ["@prisma/client@5.22.0", "https://registry.npmmirror.com/@prisma/client/-/client-5.22.0.tgz", { "peerDependencies": { "prisma": "*" }, "optionalPeers": ["prisma"] }, "sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA=="], + "@oven/bun-linux-x64": ["@oven/bun-linux-x64@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-x64/-/bun-linux-x64-1.3.10.tgz", { "os": "linux", "cpu": "x64" }, "sha512-bzUgYj/PIZziB/ZesIP9HUyfvh6Vlf3od+TrbTTyVEuCSMKzDPQVW/yEbRp0tcHO3alwiEXwJDrWrHAguXlgiQ=="], - "@prisma/debug": ["@prisma/debug@5.22.0", "https://registry.npmmirror.com/@prisma/debug/-/debug-5.22.0.tgz", {}, "sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ=="], + "@oven/bun-linux-x64-baseline": ["@oven/bun-linux-x64-baseline@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.3.10.tgz", { "os": "linux", "cpu": "x64" }, "sha512-oqvMDYpX6dGJO03HgO5bXuccEsH3qbdO3MaAiAlO4CfkBPLUXz3N0DDElg5hz0L6ktdDVKbQVE5lfe+LAUISQg=="], - "@prisma/engines": ["@prisma/engines@5.22.0", "https://registry.npmmirror.com/@prisma/engines/-/engines-5.22.0.tgz", { "dependencies": { "@prisma/debug": "5.22.0", "@prisma/engines-version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", "@prisma/fetch-engine": "5.22.0", "@prisma/get-platform": "5.22.0" } }, "sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA=="], + "@oven/bun-linux-x64-musl": ["@oven/bun-linux-x64-musl@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.3.10.tgz", { "os": "linux", "cpu": "x64" }, "sha512-poVXvOShekbexHq45b4MH/mRjQKwACAC8lHp3Tz/hEDuz0/20oncqScnmKwzhBPEpqJvydXficXfBYuSim8opw=="], - "@prisma/engines-version": ["@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", "https://registry.npmmirror.com/@prisma/engines-version/-/engines-version-5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2.tgz", {}, "sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ=="], + "@oven/bun-linux-x64-musl-baseline": ["@oven/bun-linux-x64-musl-baseline@1.3.10", "https://registry.npmmirror.com/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.3.10.tgz", { "os": "linux", "cpu": "x64" }, "sha512-/hOZ6S1VsTX6vtbhWVL9aAnOrdpuO54mAGUWpTdMz7dFG5UBZ/VUEiK0pBkq9A1rlBk0GeD/6Y4NBFl8Ha7cRA=="], - "@prisma/fetch-engine": ["@prisma/fetch-engine@5.22.0", "https://registry.npmmirror.com/@prisma/fetch-engine/-/fetch-engine-5.22.0.tgz", { "dependencies": { "@prisma/debug": "5.22.0", "@prisma/engines-version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", "@prisma/get-platform": "5.22.0" } }, "sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA=="], + "@oven/bun-windows-aarch64": ["@oven/bun-windows-aarch64@1.3.10", "https://registry.npmmirror.com/@oven/bun-windows-aarch64/-/bun-windows-aarch64-1.3.10.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-GXbz2swvN2DLw2dXZFeedMxSJtI64xQ9xp9Eg7Hjejg6mS2E4dP1xoQ2yAo2aZPi/2OBPAVaGzppI2q20XumHA=="], - "@prisma/get-platform": ["@prisma/get-platform@5.22.0", "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-5.22.0.tgz", { "dependencies": { "@prisma/debug": "5.22.0" } }, "sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q=="], + "@oven/bun-windows-x64": ["@oven/bun-windows-x64@1.3.10", "https://registry.npmmirror.com/@oven/bun-windows-x64/-/bun-windows-x64-1.3.10.tgz", { "os": "win32", "cpu": "x64" }, "sha512-qaS1In3yfC/Z/IGQriVmF8GWwKuNqiw7feTSJWaQhH5IbL6ENR+4wGNPniZSJFaM/SKUO0e/YCRdoVBvgU4C1g=="], + + "@oven/bun-windows-x64-baseline": ["@oven/bun-windows-x64-baseline@1.3.10", "https://registry.npmmirror.com/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.3.10.tgz", { "os": "win32", "cpu": "x64" }, "sha512-gh3UAHbUdDUG6fhLc1Csa4IGdtghue6U8oAIXWnUqawp6lwb3gOCRvp25IUnLF5vUHtgfMxuEUYV7YA2WxVutw=="], + + "@prisma/adapter-libsql": ["@prisma/adapter-libsql@7.4.2", "https://registry.npmmirror.com/@prisma/adapter-libsql/-/adapter-libsql-7.4.2.tgz", { "dependencies": { "@libsql/client": "^0.17.0", "@prisma/driver-adapter-utils": "7.4.2", "async-mutex": "0.5.0" } }, "sha512-H7B+5H1Y2tcbtQ+fPdTc6wmj3xbcJqh6F4wC3z1H8m+yjGT1PnG8Iw7WGKMCmRTn2b2S+E/xCEBia0YzLzncDQ=="], + + "@prisma/client": ["@prisma/client@7.4.2", "https://registry.npmmirror.com/@prisma/client/-/client-7.4.2.tgz", { "dependencies": { "@prisma/client-runtime-utils": "7.4.2" }, "peerDependencies": { "prisma": "*", "typescript": ">=5.4.0" }, "optionalPeers": ["prisma", "typescript"] }, "sha512-ts2mu+cQHriAhSxngO3StcYubBGTWDtu/4juZhXCUKOwgh26l+s4KD3vT2kMUzFyrYnll9u/3qWrtzRv9CGWzA=="], + + "@prisma/client-runtime-utils": ["@prisma/client-runtime-utils@7.4.2", "https://registry.npmmirror.com/@prisma/client-runtime-utils/-/client-runtime-utils-7.4.2.tgz", {}, "sha512-cID+rzOEb38VyMsx5LwJMEY4NGIrWCNpKu/0ImbeooQ2Px7TI+kOt7cm0NelxUzF2V41UVVXAmYjANZQtCu1/Q=="], + + "@prisma/config": ["@prisma/config@7.4.2", "https://registry.npmmirror.com/@prisma/config/-/config-7.4.2.tgz", { "dependencies": { "c12": "3.1.0", "deepmerge-ts": "7.1.5", "effect": "3.18.4", "empathic": "2.0.0" } }, "sha512-CftBjWxav99lzY1Z4oDgomdb1gh9BJFAOmWF6P2v1xRfXqQb56DfBub+QKcERRdNoAzCb3HXy3Zii8Vb4AsXhg=="], + + "@prisma/debug": ["@prisma/debug@7.4.2", "https://registry.npmmirror.com/@prisma/debug/-/debug-7.4.2.tgz", {}, "sha512-aP7qzu+g/JnbF6U69LMwHoUkELiserKmWsE2shYuEpNUJ4GrtxBCvZwCyCBHFSH2kLTF2l1goBlBh4wuvRq62w=="], + + "@prisma/dev": ["@prisma/dev@0.20.0", "https://registry.npmmirror.com/@prisma/dev/-/dev-0.20.0.tgz", { "dependencies": { "@electric-sql/pglite": "0.3.15", "@electric-sql/pglite-socket": "0.0.20", "@electric-sql/pglite-tools": "0.2.20", "@hono/node-server": "1.19.9", "@mrleebo/prisma-ast": "0.13.1", "@prisma/get-platform": "7.2.0", "@prisma/query-plan-executor": "7.2.0", "foreground-child": "3.3.1", "get-port-please": "3.2.0", "hono": "4.11.4", "http-status-codes": "2.3.0", "pathe": "2.0.3", "proper-lockfile": "4.1.2", "remeda": "2.33.4", "std-env": "3.10.0", "valibot": "1.2.0", "zeptomatch": "2.1.0" } }, "sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ=="], + + "@prisma/driver-adapter-utils": ["@prisma/driver-adapter-utils@7.4.2", "https://registry.npmmirror.com/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.4.2.tgz", { "dependencies": { "@prisma/debug": "7.4.2" } }, "sha512-REdjFpT/ye9KdDs+CXAXPIbMQkVLhne9G5Pe97sNY4Ovx4r2DAbWM9hOFvvB1Oq8H8bOCdu0Ri3AoGALquQqVw=="], + + "@prisma/engines": ["@prisma/engines@7.4.2", "https://registry.npmmirror.com/@prisma/engines/-/engines-7.4.2.tgz", { "dependencies": { "@prisma/debug": "7.4.2", "@prisma/engines-version": "7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919", "@prisma/fetch-engine": "7.4.2", "@prisma/get-platform": "7.4.2" } }, "sha512-B+ZZhI4rXlzjVqRw/93AothEKOU5/x4oVyJFGo9RpHPnBwaPwk4Pi0Q4iGXipKxeXPs/dqljgNBjK0m8nocOJA=="], + + "@prisma/engines-version": ["@prisma/engines-version@7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919", "https://registry.npmmirror.com/@prisma/engines-version/-/engines-version-7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919.tgz", {}, "sha512-5FIKY3KoYQlBuZC2yc16EXfVRQ8HY+fLqgxkYfWCtKhRb3ajCRzP/rPeoSx11+NueJDANdh4hjY36mdmrTcGSg=="], + + "@prisma/fetch-engine": ["@prisma/fetch-engine@7.4.2", "https://registry.npmmirror.com/@prisma/fetch-engine/-/fetch-engine-7.4.2.tgz", { "dependencies": { "@prisma/debug": "7.4.2", "@prisma/engines-version": "7.5.0-10.94a226be1cf2967af2541cca5529f0f7ba866919", "@prisma/get-platform": "7.4.2" } }, "sha512-f/c/MwYpdJO7taLETU8rahEstLeXfYgQGlz5fycG7Fbmva3iPdzGmjiSWHeSWIgNnlXnelUdCJqyZnFocurZuA=="], + + "@prisma/get-platform": ["@prisma/get-platform@7.2.0", "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.2.0.tgz", { "dependencies": { "@prisma/debug": "7.2.0" } }, "sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA=="], + + "@prisma/query-plan-executor": ["@prisma/query-plan-executor@7.2.0", "https://registry.npmmirror.com/@prisma/query-plan-executor/-/query-plan-executor-7.2.0.tgz", {}, "sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ=="], + + "@prisma/studio-core": ["@prisma/studio-core@0.13.1", "https://registry.npmmirror.com/@prisma/studio-core/-/studio-core-0.13.1.tgz", { "peerDependencies": { "@types/react": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg=="], "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.11", "https://registry.npmmirror.com/@radix-ui/react-avatar/-/react-avatar-1.1.11.tgz", { "dependencies": { "@radix-ui/react-context": "1.1.3", "@radix-ui/react-primitive": "2.1.4", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q=="], @@ -593,12 +636,6 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.59.0", "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", { "os": "win32", "cpu": "x64" }, "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA=="], - "@simplewebauthn/browser": ["@simplewebauthn/browser@10.0.0", "https://registry.npmmirror.com/@simplewebauthn/browser/-/browser-10.0.0.tgz", { "dependencies": { "@simplewebauthn/types": "^10.0.0" } }, "sha512-hG0JMZD+LiLUbpQcAjS4d+t4gbprE/dLYop/CkE01ugU/9sKXflxV5s0DRjdz3uNMFecatRfb4ZLG3XvF8m5zg=="], - - "@simplewebauthn/server": ["@simplewebauthn/server@10.0.1", "https://registry.npmmirror.com/@simplewebauthn/server/-/server-10.0.1.tgz", { "dependencies": { "@hexagon/base64": "^1.1.27", "@levischuck/tiny-cbor": "^0.2.2", "@peculiar/asn1-android": "^2.3.10", "@peculiar/asn1-ecc": "^2.3.8", "@peculiar/asn1-rsa": "^2.3.8", "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", "@simplewebauthn/types": "^10.0.0", "cross-fetch": "^4.0.0" } }, "sha512-djNWcRn+H+6zvihBFJSpG3fzb0NQS9c/Mw5dYOtZ9H+oDw8qn9Htqxt4cpqRvSOAfwqP7rOvE9rwqVaoGGc3hg=="], - - "@simplewebauthn/types": ["@simplewebauthn/types@10.0.0", "https://registry.npmmirror.com/@simplewebauthn/types/-/types-10.0.0.tgz", {}, "sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ=="], - "@sinclair/typebox": ["@sinclair/typebox@0.34.48", "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.34.48.tgz", {}, "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA=="], "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "https://registry.npmmirror.com/@standard-schema/spec/-/spec-1.1.0.tgz", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], @@ -639,8 +676,6 @@ "@tokenizer/token": ["@tokenizer/token@0.3.0", "https://registry.npmmirror.com/@tokenizer/token/-/token-0.3.0.tgz", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.8.3", "https://registry.npmmirror.com/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q=="], - "@types/babel__core": ["@types/babel__core@7.20.5", "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], "@types/babel__generator": ["@types/babel__generator@7.27.0", "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], @@ -653,11 +688,15 @@ "@types/debug": ["@types/debug@4.1.12", "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + "@types/esrecurse": ["@types/esrecurse@4.3.1", "https://registry.npmmirror.com/@types/esrecurse/-/esrecurse-4.3.1.tgz", {}, "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw=="], + "@types/estree": ["@types/estree@1.0.8", "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@types/json-schema": ["@types/json-schema@7.0.15", "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@types/ms": ["@types/ms@2.1.0", "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@25.3.5", "https://registry.npmmirror.com/@types/node/-/node-25.3.5.tgz", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA=="], + "@types/node": ["@types/node@25.4.0", "https://registry.npmmirror.com/@types/node/-/node-25.4.0.tgz", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw=="], "@types/react": ["@types/react@19.2.14", "https://registry.npmmirror.com/@types/react/-/react-19.2.14.tgz", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w=="], @@ -667,6 +706,28 @@ "@types/whatwg-url": ["@types/whatwg-url@13.0.0", "https://registry.npmmirror.com/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", { "dependencies": { "@types/webidl-conversions": "*" } }, "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q=="], + "@types/ws": ["@types/ws@8.18.1", "https://registry.npmmirror.com/@types/ws/-/ws-8.18.1.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.57.0", "@typescript-eslint/type-utils": "8.57.0", "@typescript-eslint/utils": "8.57.0", "@typescript-eslint/visitor-keys": "8.57.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.57.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.57.0.tgz", { "dependencies": { "@typescript-eslint/scope-manager": "8.57.0", "@typescript-eslint/types": "8.57.0", "@typescript-eslint/typescript-estree": "8.57.0", "@typescript-eslint/visitor-keys": "8.57.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.57.0", "@typescript-eslint/types": "^8.57.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.57.0", "@typescript-eslint/visitor-keys": "8.57.0" } }, "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.57.0", "@typescript-eslint/typescript-estree": "8.57.0", "@typescript-eslint/utils": "8.57.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.57.0.tgz", {}, "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.57.0", "@typescript-eslint/tsconfig-utils": "8.57.0", "@typescript-eslint/types": "8.57.0", "@typescript-eslint/visitor-keys": "8.57.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.57.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.57.0", "@typescript-eslint/types": "8.57.0", "@typescript-eslint/typescript-estree": "8.57.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.57.0", "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", { "dependencies": { "@typescript-eslint/types": "8.57.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], "@vue/compiler-core": ["@vue/compiler-core@3.5.29", "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.29.tgz", { "dependencies": { "@babel/parser": "^7.29.0", "@vue/shared": "3.5.29", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw=="], @@ -689,19 +750,47 @@ "acorn": ["acorn@8.16.0", "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + "acorn-jsx": ["acorn-jsx@5.3.2", "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@6.14.0", "https://registry.npmmirror.com/ajv/-/ajv-6.14.0.tgz", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], + "ansi-regex": ["ansi-regex@5.0.1", "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "ansi-styles": ["ansi-styles@4.3.0", "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "asn1js": ["asn1js@3.0.7", "https://registry.npmmirror.com/asn1js/-/asn1js-3.0.7.tgz", { "dependencies": { "pvtsutils": "^1.3.6", "pvutils": "^1.1.3", "tslib": "^2.8.1" } }, "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ=="], + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "array-includes": ["array-includes@3.1.9", "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "https://registry.npmmirror.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], + + "array.prototype.flat": ["array.prototype.flat@1.3.3", "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], + + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + + "async-function": ["async-function@1.0.0", "https://registry.npmmirror.com/async-function/-/async-function-1.0.0.tgz", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + + "async-mutex": ["async-mutex@0.5.0", "https://registry.npmmirror.com/async-mutex/-/async-mutex-0.5.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "aws-ssl-profiles": ["aws-ssl-profiles@1.1.2", "https://registry.npmmirror.com/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", {}, "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g=="], "backend": ["backend@workspace:backend"], + "balanced-match": ["balanced-match@4.0.4", "https://registry.npmmirror.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.0", "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA=="], - "better-auth": ["better-auth@0.7.5", "https://registry.npmmirror.com/better-auth/-/better-auth-0.7.5.tgz", { "dependencies": { "@better-fetch/fetch": "1.1.12", "@nanostores/query": "^0.3.4", "@nanostores/react": "^0.8.0", "@nanostores/solid": "^0.4.2", "@nanostores/vue": "^0.10.0", "@noble/ciphers": "^0.6.0", "@noble/hashes": "^1.5.0", "@simplewebauthn/browser": "^10.0.0", "@simplewebauthn/server": "^10.0.1", "better-call": "0.2.14-beta.3", "consola": "^3.2.3", "defu": "^6.1.4", "jose": "^5.9.4", "kysely": "^0.27.4", "nanoid": "^5.0.7", "nanostores": "^0.11.2", "oslo": "^1.2.1", "uncrypto": "^0.1.3", "zod": "^3.22.5" } }, "sha512-jrq2TKTQWySLqmfsG6ZBGPcAD2Htkz5vpWJynY2CNAzf312NmHjTAA7wxd16tVlIZ4TRYlBUIECbYb6NKsYmQQ=="], + "better-auth": ["better-auth@1.5.4", "https://registry.npmmirror.com/better-auth/-/better-auth-1.5.4.tgz", { "dependencies": { "@better-auth/core": "1.5.4", "@better-auth/drizzle-adapter": "1.5.4", "@better-auth/kysely-adapter": "1.5.4", "@better-auth/memory-adapter": "1.5.4", "@better-auth/mongo-adapter": "1.5.4", "@better-auth/prisma-adapter": "1.5.4", "@better-auth/telemetry": "1.5.4", "@better-auth/utils": "0.3.1", "@better-fetch/fetch": "1.1.21", "@noble/ciphers": "^2.1.1", "@noble/hashes": "^2.0.1", "better-call": "1.3.2", "defu": "^6.1.4", "jose": "^6.1.3", "kysely": "^0.28.11", "nanostores": "^1.1.1", "zod": "^4.3.6" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": ">=0.41.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-ReykcEKx6Kp9560jG1wtlDBnftA7L7xb3ZZdDWm5yGXKKe2pUf+oBjH0fqekrkRII0m4XBVQbQ0mOrFv+3FdYg=="], - "better-call": ["better-call@0.2.14-beta.3", "https://registry.npmmirror.com/better-call/-/better-call-0.2.14-beta.3.tgz", { "dependencies": { "@better-fetch/fetch": "^1.1.4", "rou3": "^0.5.1", "set-cookie-parser": "^2.7.1", "uncrypto": "^0.1.3", "zod": "^3.23.8" } }, "sha512-lA54ETanzM0xUZnQt6lm3BdTr4gVDyAe1DNpCQSTYUnwnGGOmQG8ob0FYivVd0XHsHQK68r01GB5c6cUuu4llQ=="], + "better-call": ["better-call@1.3.2", "https://registry.npmmirror.com/better-call/-/better-call-1.3.2.tgz", { "dependencies": { "@better-auth/utils": "^0.3.1", "@better-fetch/fetch": "^1.1.21", "rou3": "^0.7.12", "set-cookie-parser": "^3.0.1" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-4cZIfrerDsNTn3cm+MhLbUePN0gdwkhSXEuG7r/zuQ8c/H7iU0/jSK5TD3FW7U0MgKHce/8jGpPYNO4Ve+4NBw=="], + + "brace-expansion": ["brace-expansion@5.0.4", "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-5.0.4.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], "braces": ["braces@3.0.3", "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], @@ -709,12 +798,30 @@ "bson": ["bson@7.2.0", "https://registry.npmmirror.com/bson/-/bson-7.2.0.tgz", {}, "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ=="], + "bun": ["bun@1.3.10", "https://registry.npmmirror.com/bun/-/bun-1.3.10.tgz", { "optionalDependencies": { "@oven/bun-darwin-aarch64": "1.3.10", "@oven/bun-darwin-x64": "1.3.10", "@oven/bun-darwin-x64-baseline": "1.3.10", "@oven/bun-linux-aarch64": "1.3.10", "@oven/bun-linux-aarch64-musl": "1.3.10", "@oven/bun-linux-x64": "1.3.10", "@oven/bun-linux-x64-baseline": "1.3.10", "@oven/bun-linux-x64-musl": "1.3.10", "@oven/bun-linux-x64-musl-baseline": "1.3.10", "@oven/bun-windows-aarch64": "1.3.10", "@oven/bun-windows-x64": "1.3.10", "@oven/bun-windows-x64-baseline": "1.3.10" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "x64", "arm64", ], "bin": { "bun": "bin/bun.exe", "bunx": "bin/bunx.exe" } }, "sha512-S/CXaXXIyA4CMjdMkYQ4T2YMqnAn4s0ysD3mlsY4bUiOCqGlv28zck4Wd4H4kpvbekx15S9mUeLQ7Uxd0tYTLA=="], + + "bun-plugin-tailwind": ["bun-plugin-tailwind@0.1.2", "https://registry.npmmirror.com/bun-plugin-tailwind/-/bun-plugin-tailwind-0.1.2.tgz", { "peerDependencies": { "bun": ">=1.0.0" } }, "sha512-41jNC1tZRSK3s1o7pTNrLuQG8kL/0vR/JgiTmZAJ1eHwe0w5j6HFPKeqEk0WAD13jfrUC7+ULuewFBBCoADPpg=="], + "bun-types": ["bun-types@1.3.10", "https://registry.npmmirror.com/bun-types/-/bun-types-1.3.10.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg=="], + "c12": ["c12@3.1.0", "https://registry.npmmirror.com/c12/-/c12-3.1.0.tgz", { "dependencies": { "chokidar": "^4.0.3", "confbox": "^0.2.2", "defu": "^6.1.4", "dotenv": "^16.6.1", "exsolve": "^1.0.7", "giget": "^2.0.0", "jiti": "^2.4.2", "ohash": "^2.0.11", "pathe": "^2.0.3", "perfect-debounce": "^1.0.0", "pkg-types": "^2.2.0", "rc9": "^2.1.2" }, "peerDependencies": { "magicast": "^0.3.5" }, "optionalPeers": ["magicast"] }, "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw=="], + + "call-bind": ["call-bind@1.0.8", "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "caniuse-lite": ["caniuse-lite@1.0.30001776", "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001776.tgz", {}, "sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw=="], "chalk": ["chalk@4.1.2", "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "chevrotain": ["chevrotain@10.5.0", "https://registry.npmmirror.com/chevrotain/-/chevrotain-10.5.0.tgz", { "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" } }, "sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A=="], + + "chokidar": ["chokidar@4.0.3", "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + + "citty": ["citty@0.1.6", "https://registry.npmmirror.com/citty/-/citty-0.1.6.tgz", { "dependencies": { "consola": "^3.2.3" } }, "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ=="], + "client-only": ["client-only@0.0.1", "https://registry.npmmirror.com/client-only/-/client-only-0.0.1.tgz", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], "cliui": ["cliui@8.0.1", "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], @@ -725,6 +832,8 @@ "color-name": ["color-name@1.1.4", "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "concat-map": ["concat-map@0.0.1", "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "concurrently": ["concurrently@9.2.1", "https://registry.npmmirror.com/concurrently/-/concurrently-9.2.1.tgz", { "dependencies": { "chalk": "4.1.2", "rxjs": "7.8.2", "shell-quote": "1.8.3", "supports-color": "8.1.1", "tree-kill": "1.2.2", "yargs": "17.7.2" }, "bin": { "concurrently": "dist/bin/concurrently.js", "conc": "dist/bin/concurrently.js" } }, "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng=="], "confbox": ["confbox@0.2.4", "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", {}, "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ=="], @@ -737,95 +846,319 @@ "cross-fetch": ["cross-fetch@4.1.0", "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-4.1.0.tgz", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], + "cross-spawn": ["cross-spawn@7.0.6", "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "csstype": ["csstype@3.2.3", "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="], + + "data-view-buffer": ["data-view-buffer@1.0.2", "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + + "data-view-byte-length": ["data-view-byte-length@1.0.2", "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + "debug": ["debug@4.4.3", "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "decimal.js": ["decimal.js@10.6.0", "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + "deep-is": ["deep-is@0.1.4", "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "deepmerge-ts": ["deepmerge-ts@7.1.5", "https://registry.npmmirror.com/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", {}, "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw=="], + + "define-data-property": ["define-data-property@1.1.4", "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "defu": ["defu@6.1.4", "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="], + "denque": ["denque@2.1.0", "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz", {}, "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="], + "dequal": ["dequal@2.0.3", "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], - "detect-libc": ["detect-libc@2.1.2", "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "destr": ["destr@2.0.5", "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + + "detect-libc": ["detect-libc@2.0.2", "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.2.tgz", {}, "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="], + + "doctrine": ["doctrine@2.1.0", "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + + "dotenv": ["dotenv@17.3.1", "https://registry.npmmirror.com/dotenv/-/dotenv-17.3.1.tgz", {}, "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA=="], "drizzle-orm": ["drizzle-orm@0.45.1", "https://registry.npmmirror.com/drizzle-orm/-/drizzle-orm-0.45.1.tgz", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA=="], + "dunder-proto": ["dunder-proto@1.0.1", "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "effect": ["effect@3.18.4", "https://registry.npmmirror.com/effect/-/effect-3.18.4.tgz", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.307", "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", {}, "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg=="], "elysia": ["elysia@1.4.27", "https://registry.npmmirror.com/elysia/-/elysia-1.4.27.tgz", { "dependencies": { "cookie": "^1.1.1", "exact-mirror": "^0.2.7", "fast-decode-uri-component": "^1.0.1", "memoirist": "^0.4.0" }, "peerDependencies": { "@sinclair/typebox": ">= 0.34.0 < 1", "@types/bun": ">= 1.2.0", "file-type": ">= 20.0.0", "openapi-types": ">= 12.0.0", "typescript": ">= 5.0.0" }, "optionalPeers": ["@types/bun", "typescript"] }, "sha512-2UlmNEjPJVA/WZVPYKy+KdsrfFwwNlqSBW1lHz6i2AHc75k7gV4Rhm01kFeotH7PDiHIX2G8X3KnRPc33SGVIg=="], "emoji-regex": ["emoji-regex@8.0.0", "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "empathic": ["empathic@2.0.0", "https://registry.npmmirror.com/empathic/-/empathic-2.0.0.tgz", {}, "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA=="], + "enhanced-resolve": ["enhanced-resolve@5.20.0", "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ=="], "entities": ["entities@7.0.1", "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], + "es-abstract": ["es-abstract@1.24.1", "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.24.1.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], + + "es-define-property": ["es-define-property@1.0.1", "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-iterator-helpers": ["es-iterator-helpers@1.2.2", "https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.1", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "safe-array-concat": "^1.1.3" } }, "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + + "es-to-primitive": ["es-to-primitive@1.3.0", "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + "esbuild": ["esbuild@0.21.5", "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], "escalade": ["escalade@3.2.0", "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@10.0.3", "https://registry.npmmirror.com/eslint/-/eslint-10.0.3.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.3", "@eslint/config-helpers": "^0.5.2", "@eslint/core": "^1.1.1", "@eslint/plugin-kit": "^0.6.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.1.1", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], + + "eslint-plugin-react-refresh": ["eslint-plugin-react-refresh@0.5.2", "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz", { "peerDependencies": { "eslint": "^9 || ^10" } }, "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA=="], + + "eslint-scope": ["eslint-scope@9.1.2", "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-9.1.2.tgz", { "dependencies": { "@types/esrecurse": "^4.3.1", "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "espree": ["espree@11.2.0", "https://registry.npmmirror.com/espree/-/espree-11.2.0.tgz", { "dependencies": { "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^5.0.1" } }, "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw=="], + "esprima": ["esprima@4.0.1", "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], "esprima-extract-comments": ["esprima-extract-comments@1.1.0", "https://registry.npmmirror.com/esprima-extract-comments/-/esprima-extract-comments-1.1.0.tgz", { "dependencies": { "esprima": "^4.0.0" } }, "sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw=="], + "esquery": ["esquery@1.7.0", "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], + + "esrecurse": ["esrecurse@4.3.0", "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + "estree-walker": ["estree-walker@2.0.2", "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "esutils": ["esutils@2.0.3", "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "exact-mirror": ["exact-mirror@0.2.7", "https://registry.npmmirror.com/exact-mirror/-/exact-mirror-0.2.7.tgz", { "peerDependencies": { "@sinclair/typebox": "^0.34.15" }, "optionalPeers": ["@sinclair/typebox"] }, "sha512-+MeEmDcLA4o/vjK2zujgk+1VTxPR4hdp23qLqkWfStbECtAq9gmsvQa3LW6z/0GXZyHJobrCnmy1cdeE7BjsYg=="], "exsolve": ["exsolve@1.0.8", "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], "extract-comments": ["extract-comments@1.1.0", "https://registry.npmmirror.com/extract-comments/-/extract-comments-1.1.0.tgz", { "dependencies": { "esprima-extract-comments": "^1.1.0", "parse-code-context": "^1.0.0" } }, "sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q=="], + "fast-check": ["fast-check@3.23.2", "https://registry.npmmirror.com/fast-check/-/fast-check-3.23.2.tgz", { "dependencies": { "pure-rand": "^6.1.0" } }, "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A=="], + "fast-decode-uri-component": ["fast-decode-uri-component@1.0.1", "https://registry.npmmirror.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", {}, "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "fast-glob": ["fast-glob@3.3.3", "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + "fastq": ["fastq@1.20.1", "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + "fdir": ["fdir@6.5.0", "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "fetch-blob": ["fetch-blob@3.2.0", "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + "file-type": ["file-type@21.3.0", "https://registry.npmmirror.com/file-type/-/file-type-21.3.0.tgz", { "dependencies": { "@tokenizer/inflate": "^0.4.1", "strtok3": "^10.3.4", "token-types": "^6.1.1", "uint8array-extras": "^1.4.0" } }, "sha512-8kPJMIGz1Yt/aPEwOsrR97ZyZaD1Iqm8PClb1nYFclUCkBi0Ma5IsYNQzvSFS9ib51lWyIw5mIT9rWzI/xjpzA=="], "fill-range": ["fill-range@7.1.1", "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "fs-monkey": ["fs-monkey@1.1.0", "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.1.0.tgz", {}, "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw=="], + "find-up": ["find-up@5.0.0", "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "https://registry.npmmirror.com/flat-cache/-/flat-cache-4.0.1.tgz", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.4.1", "https://registry.npmmirror.com/flatted/-/flatted-3.4.1.tgz", {}, "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ=="], + + "for-each": ["for-each@0.3.5", "https://registry.npmmirror.com/for-each/-/for-each-0.3.5.tgz", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "foreground-child": ["foreground-child@3.3.1", "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + + "formdata-polyfill": ["formdata-polyfill@4.0.10", "https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], "fsevents": ["fsevents@2.3.3", "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "function-bind": ["function-bind@1.1.2", "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "function.prototype.name": ["function.prototype.name@1.1.8", "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + + "functions-have-names": ["functions-have-names@1.2.3", "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "generate-function": ["generate-function@2.3.1", "https://registry.npmmirror.com/generate-function/-/generate-function-2.3.1.tgz", { "dependencies": { "is-property": "^1.0.2" } }, "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="], + + "generator-function": ["generator-function@2.0.1", "https://registry.npmmirror.com/generator-function/-/generator-function-2.0.1.tgz", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + "gensync": ["gensync@1.0.0-beta.2", "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], "get-caller-file": ["get-caller-file@2.0.5", "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - "glob-parent": ["glob-parent@5.1.2", "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", { "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" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-port-please": ["get-port-please@3.2.0", "https://registry.npmmirror.com/get-port-please/-/get-port-please-3.2.0.tgz", {}, "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A=="], + + "get-proto": ["get-proto@1.0.1", "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-symbol-description": ["get-symbol-description@1.1.0", "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + + "giget": ["giget@2.0.0", "https://registry.npmmirror.com/giget/-/giget-2.0.0.tgz", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.0", "defu": "^6.1.4", "node-fetch-native": "^1.6.6", "nypm": "^0.6.0", "pathe": "^2.0.3" }, "bin": { "giget": "dist/cli.mjs" } }, "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA=="], + + "glob-parent": ["glob-parent@6.0.2", "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@17.4.0", "https://registry.npmmirror.com/globals/-/globals-17.4.0.tgz", {}, "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw=="], + + "globalthis": ["globalthis@1.0.4", "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + + "gopd": ["gopd@1.2.0", "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "graceful-fs": ["graceful-fs@4.2.11", "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "grammex": ["grammex@3.1.12", "https://registry.npmmirror.com/grammex/-/grammex-3.1.12.tgz", {}, "sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ=="], + + "graphmatch": ["graphmatch@1.1.1", "https://registry.npmmirror.com/graphmatch/-/graphmatch-1.1.1.tgz", {}, "sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg=="], + + "has-bigints": ["has-bigints@1.1.0", "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + "has-flag": ["has-flag@4.0.0", "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-proto": ["has-proto@1.2.0", "https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + + "has-symbols": ["has-symbols@1.1.0", "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.2", "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "hermes-estree": ["hermes-estree@0.25.1", "https://registry.npmmirror.com/hermes-estree/-/hermes-estree-0.25.1.tgz", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], + + "hermes-parser": ["hermes-parser@0.25.1", "https://registry.npmmirror.com/hermes-parser/-/hermes-parser-0.25.1.tgz", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], + + "hono": ["hono@4.11.4", "https://registry.npmmirror.com/hono/-/hono-4.11.4.tgz", {}, "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA=="], + + "http-status-codes": ["http-status-codes@2.3.0", "https://registry.npmmirror.com/http-status-codes/-/http-status-codes-2.3.0.tgz", {}, "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA=="], + + "iconv-lite": ["iconv-lite@0.7.2", "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.2.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], + "ieee754": ["ieee754@1.2.1", "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "ignore": ["ignore@5.3.2", "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "imurmurhash": ["imurmurhash@0.1.4", "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + "input-otp": ["input-otp@1.4.2", "https://registry.npmmirror.com/input-otp/-/input-otp-1.4.2.tgz", { "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA=="], + "internal-slot": ["internal-slot@1.1.0", "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + "intl-messageformat": ["intl-messageformat@10.7.18", "https://registry.npmmirror.com/intl-messageformat/-/intl-messageformat-10.7.18.tgz", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.6", "@formatjs/fast-memoize": "2.2.7", "@formatjs/icu-messageformat-parser": "2.11.4", "tslib": "^2.8.0" } }, "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g=="], + "is-array-buffer": ["is-array-buffer@3.0.5", "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-async-function": ["is-async-function@2.1.1", "https://registry.npmmirror.com/is-async-function/-/is-async-function-2.1.1.tgz", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + + "is-bigint": ["is-bigint@1.1.0", "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-callable": ["is-callable@1.2.7", "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-core-module": ["is-core-module@2.16.1", "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + + "is-data-view": ["is-data-view@1.0.2", "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + + "is-date-object": ["is-date-object@1.1.0", "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + "is-extglob": ["is-extglob@2.1.1", "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "is-generator-function": ["is-generator-function@1.1.2", "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.1.2.tgz", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + "is-glob": ["is-glob@4.0.3", "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + "is-map": ["is-map@2.0.3", "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-negative-zero": ["is-negative-zero@2.0.3", "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + "is-number": ["is-number@7.0.0", "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + "is-number-object": ["is-number-object@1.1.1", "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + + "is-property": ["is-property@1.0.2", "https://registry.npmmirror.com/is-property/-/is-property-1.0.2.tgz", {}, "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="], + + "is-regex": ["is-regex@1.2.1", "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-typed-array": ["is-typed-array@1.1.15", "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-weakmap": ["is-weakmap@2.0.2", "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakref": ["is-weakref@1.1.1", "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + + "is-weakset": ["is-weakset@2.0.4", "https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "isexe": ["isexe@2.0.0", "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "iterator.prototype": ["iterator.prototype@1.1.5", "https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + "jiti": ["jiti@2.6.1", "https://registry.npmmirror.com/jiti/-/jiti-2.6.1.tgz", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - "jose": ["jose@5.10.0", "https://registry.npmmirror.com/jose/-/jose-5.10.0.tgz", {}, "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg=="], + "jose": ["jose@6.2.0", "https://registry.npmmirror.com/jose/-/jose-6.2.0.tgz", {}, "sha512-xsfE1TcSCbUdo6U07tR0mvhg0flGxU8tPLbF03mirl2ukGQENhUg4ubGYQnhVH0b5stLlPM+WOqDkEl1R1y5sQ=="], + + "js-base64": ["js-base64@3.7.8", "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.8.tgz", {}, "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow=="], "js-tokens": ["js-tokens@4.0.0", "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "jsesc": ["jsesc@3.1.0", "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "json-buffer": ["json-buffer@3.0.1", "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + "json5": ["json5@2.2.3", "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "kysely": ["kysely@0.27.6", "https://registry.npmmirror.com/kysely/-/kysely-0.27.6.tgz", {}, "sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ=="], + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + + "keyv": ["keyv@4.5.4", "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "kysely": ["kysely@0.28.11", "https://registry.npmmirror.com/kysely/-/kysely-0.28.11.tgz", {}, "sha512-zpGIFg0HuoC893rIjYX1BETkVWdDnzTzF5e0kWXJFg5lE0k1/LfNWBejrcnOFu8Q2Rfq/hTDTU7XLUM8QOrpzg=="], + + "levn": ["levn@0.4.1", "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "libsql": ["libsql@0.5.22", "https://registry.npmmirror.com/libsql/-/libsql-0.5.22.tgz", { "dependencies": { "@neon-rs/load": "^0.0.4", "detect-libc": "2.0.2" }, "optionalDependencies": { "@libsql/darwin-arm64": "0.5.22", "@libsql/darwin-x64": "0.5.22", "@libsql/linux-arm-gnueabihf": "0.5.22", "@libsql/linux-arm-musleabihf": "0.5.22", "@libsql/linux-arm64-gnu": "0.5.22", "@libsql/linux-arm64-musl": "0.5.22", "@libsql/linux-x64-gnu": "0.5.22", "@libsql/linux-x64-musl": "0.5.22", "@libsql/win32-x64-msvc": "0.5.22" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "arm", "x64", "arm64", ] }, "sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA=="], "lightningcss": ["lightningcss@1.31.1", "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.31.1.tgz", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.31.1", "lightningcss-darwin-arm64": "1.31.1", "lightningcss-darwin-x64": "1.31.1", "lightningcss-freebsd-x64": "1.31.1", "lightningcss-linux-arm-gnueabihf": "1.31.1", "lightningcss-linux-arm64-gnu": "1.31.1", "lightningcss-linux-arm64-musl": "1.31.1", "lightningcss-linux-x64-gnu": "1.31.1", "lightningcss-linux-x64-musl": "1.31.1", "lightningcss-win32-arm64-msvc": "1.31.1", "lightningcss-win32-x64-msvc": "1.31.1" } }, "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ=="], @@ -851,15 +1184,25 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.31.1", "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw=="], + "lilconfig": ["lilconfig@2.1.0", "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + "local-pkg": ["local-pkg@1.1.2", "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], + "locate-path": ["locate-path@6.0.0", "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "long": ["long@5.3.2", "https://registry.npmmirror.com/long/-/long-5.3.2.tgz", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], + + "loose-envify": ["loose-envify@1.4.0", "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + "lru-cache": ["lru-cache@5.1.1", "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "lru.min": ["lru.min@1.1.4", "https://registry.npmmirror.com/lru.min/-/lru.min-1.1.4.tgz", {}, "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA=="], + "magic-string": ["magic-string@0.30.21", "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "memfs": ["memfs@3.5.3", "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz", { "dependencies": { "fs-monkey": "^1.0.4" } }, "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw=="], - - "memfs-browser": ["memfs-browser@3.5.10302", "https://registry.npmmirror.com/memfs-browser/-/memfs-browser-3.5.10302.tgz", { "dependencies": { "memfs": "3.5.3" } }, "sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], "memoirist": ["memoirist@0.4.0", "https://registry.npmmirror.com/memoirist/-/memoirist-0.4.0.tgz", {}, "sha512-zxTgA0mSYELa66DimuNQDvyLq36AwDlTuVRbnQtB+VuTcKWm5Qc4z3WkSpgsFWHNhexqkIooqpv4hdcqrX5Nmg=="], @@ -869,6 +1212,8 @@ "micromatch": ["micromatch@4.0.8", "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "minimatch": ["minimatch@10.2.4", "https://registry.npmmirror.com/minimatch/-/minimatch-10.2.4.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + "mlly": ["mlly@1.8.1", "https://registry.npmmirror.com/mlly/-/mlly-1.8.1.tgz", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ=="], "mongodb": ["mongodb@7.1.0", "https://registry.npmmirror.com/mongodb/-/mongodb-7.1.0.tgz", { "dependencies": { "@mongodb-js/saslprep": "^1.3.0", "bson": "^7.1.1", "mongodb-connection-string-url": "^7.0.0" }, "peerDependencies": { "@aws-sdk/credential-providers": "^3.806.0", "@mongodb-js/zstd": "^7.0.0", "gcp-metadata": "^7.0.1", "kerberos": "^7.0.0", "mongodb-client-encryption": ">=7.0.0 <7.1.0", "snappy": "^7.3.2", "socks": "^2.8.6" }, "optionalPeers": ["@aws-sdk/credential-providers", "@mongodb-js/zstd", "gcp-metadata", "kerberos", "mongodb-client-encryption", "snappy", "socks"] }, "sha512-kMfnKunbolQYwCIyrkxNJFB4Ypy91pYqua5NargS/f8ODNSJxT03ZU3n1JqL4mCzbSih8tvmMEMLpKTT7x5gCg=="], @@ -877,44 +1222,102 @@ "ms": ["ms@2.1.3", "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "nanoevents": ["nanoevents@9.1.0", "https://registry.npmmirror.com/nanoevents/-/nanoevents-9.1.0.tgz", {}, "sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A=="], + "mysql2": ["mysql2@3.15.3", "https://registry.npmmirror.com/mysql2/-/mysql2-3.15.3.tgz", { "dependencies": { "aws-ssl-profiles": "^1.1.1", "denque": "^2.1.0", "generate-function": "^2.3.1", "iconv-lite": "^0.7.0", "long": "^5.2.1", "lru.min": "^1.0.0", "named-placeholders": "^1.1.3", "seq-queue": "^0.0.5", "sqlstring": "^2.3.2" } }, "sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg=="], - "nanoid": ["nanoid@5.1.6", "https://registry.npmmirror.com/nanoid/-/nanoid-5.1.6.tgz", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="], + "named-placeholders": ["named-placeholders@1.1.6", "https://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.6.tgz", { "dependencies": { "lru.min": "^1.1.0" } }, "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w=="], - "nanostores": ["nanostores@0.11.4", "https://registry.npmmirror.com/nanostores/-/nanostores-0.11.4.tgz", {}, "sha512-k1oiVNN4hDK8NcNERSZLQiMfRzEGtfnvZvdBvey3SQbgn8Dcrk0h1I6vpxApjb10PFUflZrgJ2WEZyJQ+5v7YQ=="], + "nanoid": ["nanoid@3.3.11", "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "node-fetch": ["node-fetch@2.7.0", "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + "nanostores": ["nanostores@1.1.1", "https://registry.npmmirror.com/nanostores/-/nanostores-1.1.1.tgz", {}, "sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg=="], + + "natural-compare": ["natural-compare@1.4.0", "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-domexception": ["node-domexception@1.0.0", "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="], + + "node-exports-info": ["node-exports-info@1.6.0", "https://registry.npmmirror.com/node-exports-info/-/node-exports-info-1.6.0.tgz", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw=="], + + "node-fetch": ["node-fetch@3.3.2", "https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.7.tgz", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], "node-releases": ["node-releases@2.0.36", "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.36.tgz", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="], + "nypm": ["nypm@0.6.5", "https://registry.npmmirror.com/nypm/-/nypm-0.6.5.tgz", { "dependencies": { "citty": "^0.2.0", "pathe": "^2.0.3", "tinyexec": "^1.0.2" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ=="], + + "object-assign": ["object-assign@4.1.1", "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "object-inspect": ["object-inspect@1.13.4", "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "object-keys": ["object-keys@1.1.1", "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "object.entries": ["object.entries@1.1.9", "https://registry.npmmirror.com/object.entries/-/object.entries-1.1.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + + "object.fromentries": ["object.fromentries@2.0.8", "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + + "object.values": ["object.values@1.2.1", "https://registry.npmmirror.com/object.values/-/object.values-1.2.1.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + + "ohash": ["ohash@2.0.11", "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], + "openapi-types": ["openapi-types@12.1.3", "https://registry.npmmirror.com/openapi-types/-/openapi-types-12.1.3.tgz", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], - "oslo": ["oslo@1.2.1", "https://registry.npmmirror.com/oslo/-/oslo-1.2.1.tgz", { "dependencies": { "@node-rs/argon2": "1.7.0", "@node-rs/bcrypt": "1.9.0" } }, "sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA=="], + "optionator": ["optionator@0.9.4", "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "own-keys": ["own-keys@1.0.1", "https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + + "p-limit": ["p-limit@3.1.0", "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], "parse-code-context": ["parse-code-context@1.0.0", "https://registry.npmmirror.com/parse-code-context/-/parse-code-context-1.0.0.tgz", {}, "sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA=="], + "path-exists": ["path-exists@4.0.0", "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "pathe": ["pathe@2.0.3", "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "perfect-debounce": ["perfect-debounce@1.0.0", "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="], + "picocolors": ["picocolors@1.1.1", "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@2.3.1", "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "picomatch": ["picomatch@4.0.3", "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], "pkg-types": ["pkg-types@2.3.0", "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.0.tgz", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + "postcss": ["postcss@8.5.8", "https://registry.npmmirror.com/postcss/-/postcss-8.5.8.tgz", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], - "prisma": ["prisma@5.22.0", "https://registry.npmmirror.com/prisma/-/prisma-5.22.0.tgz", { "dependencies": { "@prisma/engines": "5.22.0" }, "optionalDependencies": { "fsevents": "2.3.3" }, "bin": { "prisma": "build/index.js" } }, "sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A=="], + "postgres": ["postgres@3.4.7", "https://registry.npmmirror.com/postgres/-/postgres-3.4.7.tgz", {}, "sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw=="], + + "prelude-ls": ["prelude-ls@1.2.1", "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.8.1", "https://registry.npmmirror.com/prettier/-/prettier-3.8.1.tgz", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg=="], + + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "https://registry.npmmirror.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.2.tgz", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], + + "prisma": ["prisma@7.4.2", "https://registry.npmmirror.com/prisma/-/prisma-7.4.2.tgz", { "dependencies": { "@prisma/config": "7.4.2", "@prisma/dev": "0.20.0", "@prisma/engines": "7.4.2", "@prisma/studio-core": "0.13.1", "mysql2": "3.15.3", "postgres": "3.4.7" }, "peerDependencies": { "better-sqlite3": ">=9.0.0", "typescript": ">=5.4.0" }, "optionalPeers": ["better-sqlite3", "typescript"], "bin": { "prisma": "build/index.js" } }, "sha512-2bP8Ruww3Q95Z2eH4Yqh4KAENRsj/SxbdknIVBfd6DmjPwmpsC4OVFMLOeHt6tM3Amh8ebjvstrUz3V/hOe1dA=="], + + "promise-limit": ["promise-limit@2.7.0", "https://registry.npmmirror.com/promise-limit/-/promise-limit-2.7.0.tgz", {}, "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw=="], + + "prop-types": ["prop-types@15.8.1", "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + + "proper-lockfile": ["proper-lockfile@4.1.2", "https://registry.npmmirror.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="], "punycode": ["punycode@2.3.1", "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - "pvtsutils": ["pvtsutils@1.3.6", "https://registry.npmmirror.com/pvtsutils/-/pvtsutils-1.3.6.tgz", { "dependencies": { "tslib": "^2.8.1" } }, "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg=="], - - "pvutils": ["pvutils@1.1.5", "https://registry.npmmirror.com/pvutils/-/pvutils-1.1.5.tgz", {}, "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA=="], + "pure-rand": ["pure-rand@6.1.0", "https://registry.npmmirror.com/pure-rand/-/pure-rand-6.1.0.tgz", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], "quansync": ["quansync@0.2.11", "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], "queue-microtask": ["queue-microtask@1.2.3", "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + "rc9": ["rc9@2.1.2", "https://registry.npmmirror.com/rc9/-/rc9-2.1.2.tgz", { "dependencies": { "defu": "^6.1.4", "destr": "^2.0.3" } }, "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg=="], + "react": ["react@19.2.4", "https://registry.npmmirror.com/react/-/react-19.2.4.tgz", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="], "react-aria": ["react-aria@3.47.0", "https://registry.npmmirror.com/react-aria/-/react-aria-3.47.0.tgz", { "dependencies": { "@internationalized/string": "^3.2.7", "@react-aria/breadcrumbs": "^3.5.32", "@react-aria/button": "^3.14.5", "@react-aria/calendar": "^3.9.5", "@react-aria/checkbox": "^3.16.5", "@react-aria/color": "^3.1.5", "@react-aria/combobox": "^3.15.0", "@react-aria/datepicker": "^3.16.1", "@react-aria/dialog": "^3.5.34", "@react-aria/disclosure": "^3.1.3", "@react-aria/dnd": "^3.11.6", "@react-aria/focus": "^3.21.5", "@react-aria/gridlist": "^3.14.4", "@react-aria/i18n": "^3.12.16", "@react-aria/interactions": "^3.27.1", "@react-aria/label": "^3.7.25", "@react-aria/landmark": "^3.0.10", "@react-aria/link": "^3.8.9", "@react-aria/listbox": "^3.15.3", "@react-aria/menu": "^3.21.0", "@react-aria/meter": "^3.4.30", "@react-aria/numberfield": "^3.12.5", "@react-aria/overlays": "^3.31.2", "@react-aria/progress": "^3.4.30", "@react-aria/radio": "^3.12.5", "@react-aria/searchfield": "^3.8.12", "@react-aria/select": "^3.17.3", "@react-aria/selection": "^3.27.2", "@react-aria/separator": "^3.4.16", "@react-aria/slider": "^3.8.5", "@react-aria/ssr": "^3.9.10", "@react-aria/switch": "^3.7.11", "@react-aria/table": "^3.17.11", "@react-aria/tabs": "^3.11.1", "@react-aria/tag": "^3.8.1", "@react-aria/textfield": "^3.18.5", "@react-aria/toast": "^3.0.11", "@react-aria/tooltip": "^3.9.2", "@react-aria/tree": "^3.1.7", "@react-aria/utils": "^3.33.1", "@react-aria/visually-hidden": "^3.8.31", "@react-types/shared": "^3.33.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-nvahimIqdByl/PXk/xPkG30LPRzcin+/Uk0uFfwbbKRRFC9aa22a6BRULZLqVHwa9GaNyKe6CDUxO1Dde4v0kA=="], @@ -923,6 +1326,8 @@ "react-dom": ["react-dom@19.2.4", "https://registry.npmmirror.com/react-dom/-/react-dom-19.2.4.tgz", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.4" } }, "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ=="], + "react-is": ["react-is@16.13.1", "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + "react-refresh": ["react-refresh@0.17.0", "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.17.0.tgz", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], "react-router": ["react-router@7.13.1", "https://registry.npmmirror.com/react-router/-/react-router-7.13.1.tgz", { "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" }, "optionalPeers": ["react-dom"] }, "sha512-td+xP4X2/6BJvZoX6xw++A2DdEi++YypA69bJUV5oVvqf6/9/9nNlD70YO1e9d3MyamJEBQFEzk6mbfDYbqrSA=="], @@ -931,44 +1336,106 @@ "react-stately": ["react-stately@3.45.0", "https://registry.npmmirror.com/react-stately/-/react-stately-3.45.0.tgz", { "dependencies": { "@react-stately/calendar": "^3.9.3", "@react-stately/checkbox": "^3.7.5", "@react-stately/collections": "^3.12.10", "@react-stately/color": "^3.9.5", "@react-stately/combobox": "^3.13.0", "@react-stately/data": "^3.15.2", "@react-stately/datepicker": "^3.16.1", "@react-stately/disclosure": "^3.0.11", "@react-stately/dnd": "^3.7.4", "@react-stately/form": "^3.2.4", "@react-stately/list": "^3.13.4", "@react-stately/menu": "^3.9.11", "@react-stately/numberfield": "^3.11.0", "@react-stately/overlays": "^3.6.23", "@react-stately/radio": "^3.11.5", "@react-stately/searchfield": "^3.5.19", "@react-stately/select": "^3.9.2", "@react-stately/selection": "^3.20.9", "@react-stately/slider": "^3.7.5", "@react-stately/table": "^3.15.4", "@react-stately/tabs": "^3.8.9", "@react-stately/toast": "^3.1.3", "@react-stately/toggle": "^3.9.5", "@react-stately/tooltip": "^3.5.11", "@react-stately/tree": "^3.9.6", "@react-types/shared": "^3.33.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-G3bYr0BIiookpt4H05VeZUuVS/FslQAj2TeT8vDfCiL314Y+LtPXIPe/a3eamCA0wljy7z1EDYKV50Qbz7pcJg=="], + "readdirp": ["readdirp@4.1.2", "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + + "regexp-to-ast": ["regexp-to-ast@0.5.0", "https://registry.npmmirror.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", {}, "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + + "remeda": ["remeda@2.33.4", "https://registry.npmmirror.com/remeda/-/remeda-2.33.4.tgz", {}, "sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ=="], + "require-directory": ["require-directory@2.1.1", "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "resolve": ["resolve@2.0.0-next.6", "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.6.tgz", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "node-exports-info": "^1.6.0", "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA=="], + + "retry": ["retry@0.12.0", "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], + "reusify": ["reusify@1.1.0", "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "rollup": ["rollup@4.59.0", "https://registry.npmmirror.com/rollup/-/rollup-4.59.0.tgz", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", "@rollup/rollup-darwin-arm64": "4.59.0", "@rollup/rollup-darwin-x64": "4.59.0", "@rollup/rollup-freebsd-arm64": "4.59.0", "@rollup/rollup-freebsd-x64": "4.59.0", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", "@rollup/rollup-linux-arm-musleabihf": "4.59.0", "@rollup/rollup-linux-arm64-gnu": "4.59.0", "@rollup/rollup-linux-arm64-musl": "4.59.0", "@rollup/rollup-linux-loong64-gnu": "4.59.0", "@rollup/rollup-linux-loong64-musl": "4.59.0", "@rollup/rollup-linux-ppc64-gnu": "4.59.0", "@rollup/rollup-linux-ppc64-musl": "4.59.0", "@rollup/rollup-linux-riscv64-gnu": "4.59.0", "@rollup/rollup-linux-riscv64-musl": "4.59.0", "@rollup/rollup-linux-s390x-gnu": "4.59.0", "@rollup/rollup-linux-x64-gnu": "4.59.0", "@rollup/rollup-linux-x64-musl": "4.59.0", "@rollup/rollup-openbsd-x64": "4.59.0", "@rollup/rollup-openharmony-arm64": "4.59.0", "@rollup/rollup-win32-arm64-msvc": "4.59.0", "@rollup/rollup-win32-ia32-msvc": "4.59.0", "@rollup/rollup-win32-x64-gnu": "4.59.0", "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg=="], - "rou3": ["rou3@0.5.1", "https://registry.npmmirror.com/rou3/-/rou3-0.5.1.tgz", {}, "sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ=="], + "rou3": ["rou3@0.7.12", "https://registry.npmmirror.com/rou3/-/rou3-0.7.12.tgz", {}, "sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg=="], "run-parallel": ["run-parallel@1.2.0", "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], "rxjs": ["rxjs@7.8.2", "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.2.tgz", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], + "safe-array-concat": ["safe-array-concat@1.1.3", "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + + "safe-push-apply": ["safe-push-apply@1.0.0", "https://registry.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "safer-buffer": ["safer-buffer@2.1.2", "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "scheduler": ["scheduler@0.27.0", "https://registry.npmmirror.com/scheduler/-/scheduler-0.27.0.tgz", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "semver": ["semver@6.3.1", "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "seq-queue": ["seq-queue@0.0.5", "https://registry.npmmirror.com/seq-queue/-/seq-queue-0.0.5.tgz", {}, "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="], + "seroval": ["seroval@1.5.0", "https://registry.npmmirror.com/seroval/-/seroval-1.5.0.tgz", {}, "sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw=="], "seroval-plugins": ["seroval-plugins@1.5.0", "https://registry.npmmirror.com/seroval-plugins/-/seroval-plugins-1.5.0.tgz", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-EAHqADIQondwRZIdeW2I636zgsODzoBDwb3PT/+7TLDWyw1Dy/Xv7iGUIEXXav7usHDE9HVhOU61irI3EnyyHA=="], "set-cookie-parser": ["set-cookie-parser@2.7.2", "https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="], + "set-function-length": ["set-function-length@1.2.2", "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["set-function-name@2.0.2", "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "set-proto": ["set-proto@1.0.0", "https://registry.npmmirror.com/set-proto/-/set-proto-1.0.0.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + + "shebang-command": ["shebang-command@2.0.0", "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "shell-quote": ["shell-quote@1.8.3", "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.3.tgz", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], + "side-channel": ["side-channel@1.1.0", "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "signal-exit": ["signal-exit@4.1.0", "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "solid-js": ["solid-js@1.9.11", "https://registry.npmmirror.com/solid-js/-/solid-js-1.9.11.tgz", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.5.0", "seroval-plugins": "~1.5.0" } }, "sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q=="], "source-map-js": ["source-map-js@1.2.1", "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "sparse-bitfield": ["sparse-bitfield@3.0.3", "https://registry.npmmirror.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", { "dependencies": { "memory-pager": "^1.0.2" } }, "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ=="], + "sqlstring": ["sqlstring@2.3.3", "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz", {}, "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="], + + "std-env": ["std-env@3.10.0", "https://registry.npmmirror.com/std-env/-/std-env-3.10.0.tgz", {}, "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="], + + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + "string-width": ["string-width@4.2.3", "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], + + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "https://registry.npmmirror.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], + + "string.prototype.trim": ["string.prototype.trim@1.2.10", "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], + + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], + + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + "strip-ansi": ["strip-ansi@6.0.1", "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strtok3": ["strtok3@10.3.4", "https://registry.npmmirror.com/strtok3/-/strtok3-10.3.4.tgz", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg=="], "supports-color": ["supports-color@8.1.1", "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "swr": ["swr@2.4.1", "https://registry.npmmirror.com/swr/-/swr-2.4.1.tgz", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA=="], "tailwind-merge": ["tailwind-merge@3.4.0", "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.4.0.tgz", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="], @@ -979,32 +1446,54 @@ "tapable": ["tapable@2.3.0", "https://registry.npmmirror.com/tapable/-/tapable-2.3.0.tgz", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], + "tinyexec": ["tinyexec@1.0.2", "https://registry.npmmirror.com/tinyexec/-/tinyexec-1.0.2.tgz", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], + + "tinyglobby": ["tinyglobby@0.2.15", "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + "to-regex-range": ["to-regex-range@5.0.1", "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], "token-types": ["token-types@6.1.2", "https://registry.npmmirror.com/token-types/-/token-types-6.1.2.tgz", { "dependencies": { "@borewit/text-codec": "^0.2.1", "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww=="], - "tr46": ["tr46@0.0.3", "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "tr46": ["tr46@5.1.1", "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], "tree-kill": ["tree-kill@1.2.2", "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], + "ts-api-utils": ["ts-api-utils@2.4.0", "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA=="], + "tslib": ["tslib@2.8.1", "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "tw-animate-css": ["tw-animate-css@1.4.0", "https://registry.npmmirror.com/tw-animate-css/-/tw-animate-css-1.4.0.tgz", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], + "type-check": ["type-check@0.4.0", "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "typed-array-buffer": ["typed-array-buffer@1.0.3", "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + + "typed-array-length": ["typed-array-length@1.0.7", "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], + "typescript": ["typescript@5.9.3", "https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "typescript-eslint": ["typescript-eslint@8.57.0", "https://registry.npmmirror.com/typescript-eslint/-/typescript-eslint-8.57.0.tgz", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.57.0", "@typescript-eslint/parser": "8.57.0", "@typescript-eslint/typescript-estree": "8.57.0", "@typescript-eslint/utils": "8.57.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA=="], + "ufo": ["ufo@1.6.3", "https://registry.npmmirror.com/ufo/-/ufo-1.6.3.tgz", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="], "uint8array-extras": ["uint8array-extras@1.5.0", "https://registry.npmmirror.com/uint8array-extras/-/uint8array-extras-1.5.0.tgz", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="], - "uncrypto": ["uncrypto@0.1.3", "https://registry.npmmirror.com/uncrypto/-/uncrypto-0.1.3.tgz", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + "unbox-primitive": ["unbox-primitive@1.1.0", "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], "undici-types": ["undici-types@7.18.2", "https://registry.npmmirror.com/undici-types/-/undici-types-7.18.2.tgz", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], "update-browserslist-db": ["update-browserslist-db@1.2.3", "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + "uri-js": ["uri-js@4.4.1", "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "use-sync-external-store": ["use-sync-external-store@1.6.0", "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + "valibot": ["valibot@1.2.0", "https://registry.npmmirror.com/valibot/-/valibot-1.2.0.tgz", { "peerDependencies": { "typescript": ">=5" }, "optionalPeers": ["typescript"] }, "sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg=="], + "vite": ["vite@5.4.21", "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], "vite-plugin-pages": ["vite-plugin-pages@0.32.5", "https://registry.npmmirror.com/vite-plugin-pages/-/vite-plugin-pages-0.32.5.tgz", { "dependencies": { "@types/debug": "^4.1.12", "debug": "^4.4.0", "dequal": "^2.0.3", "extract-comments": "^1.1.0", "fast-glob": "^3.3.3", "json5": "^2.2.3", "local-pkg": "^1.0.0", "picocolors": "^1.1.1", "yaml": "^2.7.0" }, "peerDependencies": { "@vue/compiler-sfc": "^2.7.0 || ^3.0.0", "vite": "^2.0.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["@vue/compiler-sfc"] }, "sha512-GY2JAt+4vZ4BqTtw+4CSUxPgYiqamrMRIzYk2AtJvQHeBoMlctsQW+tgCpKriUKINiKfi6NegbP07r1XrdxTWA=="], @@ -1013,12 +1502,28 @@ "web": ["web@workspace:web"], - "webidl-conversions": ["webidl-conversions@3.0.1", "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="], - "whatwg-url": ["whatwg-url@5.0.0", "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "webidl-conversions": ["webidl-conversions@7.0.0", "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + + "whatwg-url": ["whatwg-url@14.2.0", "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], + + "which": ["which@2.0.2", "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-builtin-type": ["which-builtin-type@1.2.1", "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + + "which-collection": ["which-collection@1.0.2", "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.20", "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.20.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], + + "word-wrap": ["word-wrap@1.2.5", "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], "wrap-ansi": ["wrap-ansi@7.0.0", "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "ws": ["ws@8.19.0", "https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg=="], + "y18n": ["y18n@5.0.8", "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], "yallist": ["yallist@3.1.1", "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], @@ -1029,23 +1534,23 @@ "yargs-parser": ["yargs-parser@21.1.1", "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], - "zod": ["zod@3.25.76", "https://registry.npmmirror.com/zod/-/zod-3.25.76.tgz", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "yocto-queue": ["yocto-queue@0.1.0", "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "zeptomatch": ["zeptomatch@2.1.0", "https://registry.npmmirror.com/zeptomatch/-/zeptomatch-2.1.0.tgz", { "dependencies": { "grammex": "^3.1.11", "graphmatch": "^1.1.0" } }, "sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA=="], + + "zod": ["zod@4.3.6", "https://registry.npmmirror.com/zod/-/zod-4.3.6.tgz", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], + + "zod-validation-error": ["zod-validation-error@4.0.2", "https://registry.npmmirror.com/zod-validation-error/-/zod-validation-error-4.0.2.tgz", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="], "zustand": ["zustand@5.0.11", "https://registry.npmmirror.com/zustand/-/zustand-5.0.11.tgz", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg=="], - "@better-auth/core/@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "https://registry.npmmirror.com/@better-fetch/fetch/-/fetch-1.1.21.tgz", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="], + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "@better-auth/core/better-call": ["better-call@1.3.2", "https://registry.npmmirror.com/better-call/-/better-call-1.3.2.tgz", { "dependencies": { "@better-auth/utils": "^0.3.1", "@better-fetch/fetch": "^1.1.21", "rou3": "^0.7.12", "set-cookie-parser": "^3.0.1" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-4cZIfrerDsNTn3cm+MhLbUePN0gdwkhSXEuG7r/zuQ8c/H7iU0/jSK5TD3FW7U0MgKHce/8jGpPYNO4Ve+4NBw=="], + "@prisma/engines/@prisma/get-platform": ["@prisma/get-platform@7.4.2", "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.4.2.tgz", { "dependencies": { "@prisma/debug": "7.4.2" } }, "sha512-UTnChXRwiauzl/8wT4hhe7Xmixja9WE28oCnGpBtRejaHhvekx5kudr3R4Y9mLSA0kqGnAMeyTiKwDVMjaEVsw=="], - "@better-auth/core/jose": ["jose@6.2.0", "https://registry.npmmirror.com/jose/-/jose-6.2.0.tgz", {}, "sha512-xsfE1TcSCbUdo6U07tR0mvhg0flGxU8tPLbF03mirl2ukGQENhUg4ubGYQnhVH0b5stLlPM+WOqDkEl1R1y5sQ=="], + "@prisma/fetch-engine/@prisma/get-platform": ["@prisma/get-platform@7.4.2", "https://registry.npmmirror.com/@prisma/get-platform/-/get-platform-7.4.2.tgz", { "dependencies": { "@prisma/debug": "7.4.2" } }, "sha512-UTnChXRwiauzl/8wT4hhe7Xmixja9WE28oCnGpBtRejaHhvekx5kudr3R4Y9mLSA0kqGnAMeyTiKwDVMjaEVsw=="], - "@better-auth/core/kysely": ["kysely@0.28.11", "https://registry.npmmirror.com/kysely/-/kysely-0.28.11.tgz", {}, "sha512-zpGIFg0HuoC893rIjYX1BETkVWdDnzTzF5e0kWXJFg5lE0k1/LfNWBejrcnOFu8Q2Rfq/hTDTU7XLUM8QOrpzg=="], - - "@better-auth/core/nanostores": ["nanostores@1.1.1", "https://registry.npmmirror.com/nanostores/-/nanostores-1.1.1.tgz", {}, "sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg=="], - - "@better-auth/core/zod": ["zod@4.3.6", "https://registry.npmmirror.com/zod/-/zod-4.3.6.tgz", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], - - "@better-auth/telemetry/@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "https://registry.npmmirror.com/@better-fetch/fetch/-/fetch-1.1.21.tgz", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="], + "@prisma/get-platform/@prisma/debug": ["@prisma/debug@7.2.0", "https://registry.npmmirror.com/@prisma/debug/-/debug-7.2.0.tgz", {}, "sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw=="], "@react-aria/autocomplete/@react-aria/i18n": ["@react-aria/i18n@3.12.16", "https://registry.npmmirror.com/@react-aria/i18n/-/i18n-3.12.16.tgz", { "dependencies": { "@internationalized/date": "^3.12.0", "@internationalized/message": "^3.1.8", "@internationalized/number": "^3.6.5", "@internationalized/string": "^3.2.7", "@react-aria/ssr": "^3.9.10", "@react-aria/utils": "^3.33.1", "@react-types/shared": "^3.33.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-Km2CAz6MFQOUEaattaW+2jBdWOHUF8WX7VQoNbjlqElCP58nSaqi9yxTWUDRhAcn8/xFUnkFh4MFweNgtrHuEA=="], @@ -1395,13 +1900,33 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "https://registry.npmmirror.com/ignore/-/ignore-7.0.5.tgz", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "@typescript-eslint/typescript-estree/semver": ["semver@7.7.4", "https://registry.npmmirror.com/semver/-/semver-7.7.4.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + + "better-call/set-cookie-parser": ["set-cookie-parser@3.0.1", "https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-3.0.1.tgz", {}, "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q=="], + + "bun-types/@types/node": ["@types/node@25.3.5", "https://registry.npmmirror.com/@types/node/-/node-25.3.5.tgz", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA=="], + + "c12/dotenv": ["dotenv@16.6.1", "https://registry.npmmirror.com/dotenv/-/dotenv-16.6.1.tgz", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + "chalk/supports-color": ["supports-color@7.2.0", "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "cross-fetch/node-fetch": ["node-fetch@2.7.0", "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "eslint-plugin-react/minimatch": ["minimatch@3.1.5", "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.5.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "lightningcss/detect-libc": ["detect-libc@2.1.2", "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "micromatch/picomatch": ["picomatch@2.3.1", "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "mlly/pkg-types": ["pkg-types@1.3.1", "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], - "mongodb-connection-string-url/whatwg-url": ["whatwg-url@14.2.0", "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], + "nypm/citty": ["citty@0.2.1", "https://registry.npmmirror.com/citty/-/citty-0.2.1.tgz", {}, "sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg=="], - "postcss/nanoid": ["nanoid@3.3.11", "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "proper-lockfile/signal-exit": ["signal-exit@3.0.7", "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], "react-aria/@react-aria/i18n": ["@react-aria/i18n@3.12.16", "https://registry.npmmirror.com/@react-aria/i18n/-/i18n-3.12.16.tgz", { "dependencies": { "@internationalized/date": "^3.12.0", "@internationalized/message": "^3.1.8", "@internationalized/number": "^3.6.5", "@internationalized/string": "^3.2.7", "@react-aria/ssr": "^3.9.10", "@react-aria/utils": "^3.33.1", "@react-types/shared": "^3.33.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-Km2CAz6MFQOUEaattaW+2jBdWOHUF8WX7VQoNbjlqElCP58nSaqi9yxTWUDRhAcn8/xFUnkFh4MFweNgtrHuEA=="], @@ -1415,40 +1940,20 @@ "react-stately/@react-types/shared": ["@react-types/shared@3.33.1", "https://registry.npmmirror.com/@react-types/shared/-/shared-3.33.1.tgz", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-oJHtjvLG43VjwemQDadlR5g/8VepK56B/xKO2XORPHt9zlW6IZs3tZrYlvH29BMvoqC7RtE7E5UjgbnbFtDGag=="], - "web/better-auth": ["better-auth@1.5.4", "https://registry.npmmirror.com/better-auth/-/better-auth-1.5.4.tgz", { "dependencies": { "@better-auth/core": "1.5.4", "@better-auth/drizzle-adapter": "1.5.4", "@better-auth/kysely-adapter": "1.5.4", "@better-auth/memory-adapter": "1.5.4", "@better-auth/mongo-adapter": "1.5.4", "@better-auth/prisma-adapter": "1.5.4", "@better-auth/telemetry": "1.5.4", "@better-auth/utils": "0.3.1", "@better-fetch/fetch": "1.1.21", "@noble/ciphers": "^2.1.1", "@noble/hashes": "^2.0.1", "better-call": "1.3.2", "defu": "^6.1.4", "jose": "^6.1.3", "kysely": "^0.28.11", "nanostores": "^1.1.1", "zod": "^4.3.6" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": ">=0.41.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-ReykcEKx6Kp9560jG1wtlDBnftA7L7xb3ZZdDWm5yGXKKe2pUf+oBjH0fqekrkRII0m4XBVQbQ0mOrFv+3FdYg=="], - - "@better-auth/core/better-call/rou3": ["rou3@0.7.12", "https://registry.npmmirror.com/rou3/-/rou3-0.7.12.tgz", {}, "sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg=="], - - "@better-auth/core/better-call/set-cookie-parser": ["set-cookie-parser@3.0.1", "https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-3.0.1.tgz", {}, "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q=="], - "@react-aria/button/@react-aria/toolbar/@react-aria/i18n": ["@react-aria/i18n@3.12.16", "https://registry.npmmirror.com/@react-aria/i18n/-/i18n-3.12.16.tgz", { "dependencies": { "@internationalized/date": "^3.12.0", "@internationalized/message": "^3.1.8", "@internationalized/number": "^3.6.5", "@internationalized/string": "^3.2.7", "@react-aria/ssr": "^3.9.10", "@react-aria/utils": "^3.33.1", "@react-types/shared": "^3.33.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-Km2CAz6MFQOUEaattaW+2jBdWOHUF8WX7VQoNbjlqElCP58nSaqi9yxTWUDRhAcn8/xFUnkFh4MFweNgtrHuEA=="], "@react-aria/disclosure/@react-aria/utils/@react-types/shared": ["@react-types/shared@3.33.1", "https://registry.npmmirror.com/@react-types/shared/-/shared-3.33.1.tgz", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-oJHtjvLG43VjwemQDadlR5g/8VepK56B/xKO2XORPHt9zlW6IZs3tZrYlvH29BMvoqC7RtE7E5UjgbnbFtDGag=="], + "cross-fetch/node-fetch/whatwg-url": ["whatwg-url@5.0.0", "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "eslint-plugin-react/minimatch/brace-expansion": ["brace-expansion@1.1.12", "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "mlly/pkg-types/confbox": ["confbox@0.1.8", "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], - "mongodb-connection-string-url/whatwg-url/tr46": ["tr46@5.1.1", "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], + "cross-fetch/node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - "mongodb-connection-string-url/whatwg-url/webidl-conversions": ["webidl-conversions@7.0.0", "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + "cross-fetch/node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "web/better-auth/@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "https://registry.npmmirror.com/@better-fetch/fetch/-/fetch-1.1.21.tgz", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="], - - "web/better-auth/@noble/ciphers": ["@noble/ciphers@2.1.1", "https://registry.npmmirror.com/@noble/ciphers/-/ciphers-2.1.1.tgz", {}, "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw=="], - - "web/better-auth/@noble/hashes": ["@noble/hashes@2.0.1", "https://registry.npmmirror.com/@noble/hashes/-/hashes-2.0.1.tgz", {}, "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw=="], - - "web/better-auth/better-call": ["better-call@1.3.2", "https://registry.npmmirror.com/better-call/-/better-call-1.3.2.tgz", { "dependencies": { "@better-auth/utils": "^0.3.1", "@better-fetch/fetch": "^1.1.21", "rou3": "^0.7.12", "set-cookie-parser": "^3.0.1" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-4cZIfrerDsNTn3cm+MhLbUePN0gdwkhSXEuG7r/zuQ8c/H7iU0/jSK5TD3FW7U0MgKHce/8jGpPYNO4Ve+4NBw=="], - - "web/better-auth/jose": ["jose@6.2.0", "https://registry.npmmirror.com/jose/-/jose-6.2.0.tgz", {}, "sha512-xsfE1TcSCbUdo6U07tR0mvhg0flGxU8tPLbF03mirl2ukGQENhUg4ubGYQnhVH0b5stLlPM+WOqDkEl1R1y5sQ=="], - - "web/better-auth/kysely": ["kysely@0.28.11", "https://registry.npmmirror.com/kysely/-/kysely-0.28.11.tgz", {}, "sha512-zpGIFg0HuoC893rIjYX1BETkVWdDnzTzF5e0kWXJFg5lE0k1/LfNWBejrcnOFu8Q2Rfq/hTDTU7XLUM8QOrpzg=="], - - "web/better-auth/nanostores": ["nanostores@1.1.1", "https://registry.npmmirror.com/nanostores/-/nanostores-1.1.1.tgz", {}, "sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg=="], - - "web/better-auth/zod": ["zod@4.3.6", "https://registry.npmmirror.com/zod/-/zod-4.3.6.tgz", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], - - "web/better-auth/better-call/rou3": ["rou3@0.7.12", "https://registry.npmmirror.com/rou3/-/rou3-0.7.12.tgz", {}, "sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg=="], - - "web/better-auth/better-call/set-cookie-parser": ["set-cookie-parser@3.0.1", "https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-3.0.1.tgz", {}, "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q=="], + "eslint-plugin-react/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], } } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..713ab96 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,54 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import react from 'eslint-plugin-react' +import prettier from 'eslint-config-prettier' + +export default tseslint.config( + { + ignores: [ + 'dist', + 'node_modules', + '.cursor', + '.trae', + 'backend/prisma/migrations', + ], + }, + { + extends: [ + js.configs.recommended, + ...tseslint.configs.recommended, + prettier, + ], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + ...globals.es2020, + }, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + react, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + 'react/jsx-uses-react': 'off', + 'react/react-in-jsx-scope': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { argsIgnorePattern: '^_' }, + ], + '@typescript-eslint/no-explicit-any': 'error', + }, + }, +) diff --git a/package.json b/package.json index 6a205a6..6aff717 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,28 @@ "build:web": "bun run --filter=web build", "build:backend": "bun run --filter=backend build", "build:seq": "bun run build:backend && bun run build:web", - "lint": "concurrently -n 'backend,web' 'cd backend && bun run typecheck' 'cd web && bun run lint'" + "lint": "concurrently -n 'backend,web' 'cd backend && bun run lint' 'cd web && bun run lint'", + "lint:fix": "concurrently -n 'backend,web' 'cd backend && bun run lint:fix' 'cd web && bun run lint:fix'", + "format": "prettier --write .", + "typecheck": "concurrently -n 'backend,web' 'cd backend && bun run typecheck' 'cd web && bun run typecheck'" }, "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/bun": "^1.3.10", + "@types/node": "^25.4.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "bun-plugin-tailwind": "^0.1.2", "concurrently": "^9.2.1", - "typescript": "~5.9.3" + "eslint": "^10.0.3", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "prettier": "^3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "typescript": "~5.9.3", + "typescript-eslint": "^8.57.0" } -} \ No newline at end of file +} diff --git a/temp.md b/temp.md new file mode 100644 index 0000000..d68e037 --- /dev/null +++ b/temp.md @@ -0,0 +1 @@ +https://v3.heroui.com/docs/react/components \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..d1d601d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "esModuleInterop": true, + "allowJs": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["web/src", "backend/src"], + "exclude": ["node_modules", "dist", "web/dist", "backend/dist"] +} diff --git a/web/build.ts b/web/build.ts index f3c5cd4..56084d1 100644 --- a/web/build.ts +++ b/web/build.ts @@ -1,10 +1,11 @@ #!/usr/bin/env bun -import plugin from "bun-plugin-tailwind"; -import { existsSync } from "fs"; -import { rm } from "fs/promises"; -import path from "path"; + +import plugin from 'bun-plugin-tailwind' +import { existsSync } from 'fs' +import { rm } from 'fs/promises' +import path from 'path' -if (process.argv.includes("--help") || process.argv.includes("-h")) { +if (process.argv.includes('--help') || process.argv.includes('-h')) { console.log(` 🏗️ Bun Build Script @@ -29,121 +30,129 @@ Common Options: Example: bun run build.ts --outdir=dist --minify --sourcemap=linked --external=react,react-dom -`); - process.exit(0); +`) + process.exit(0) } -const toCamelCase = (str: string): string => str.replace(/-([a-z])/g, g => g[1].toUpperCase()); +const toCamelCase = (str: string): string => + str.replace(/-([a-z])/g, (g) => g[1].toUpperCase()) -const parseValue = (value: string): any => { - if (value === "true") return true; - if (value === "false") return false; +const parseValue = (value: string): string | number | boolean | string[] => { + if (value === 'true') return true + if (value === 'false') return false - if (/^\d+$/.test(value)) return parseInt(value, 10); - if (/^\d*\.\d+$/.test(value)) return parseFloat(value); + if (/^\d+$/.test(value)) return parseInt(value, 10) + if (/^\d*\.\d+$/.test(value)) return parseFloat(value) - if (value.includes(",")) return value.split(",").map(v => v.trim()); + if (value.includes(',')) return value.split(',').map((v) => v.trim()) - return value; -}; + return value +} function parseArgs(): Partial { - const config: Partial = {}; - const args = process.argv.slice(2); + const config: Record = {} + const args = process.argv.slice(2) for (let i = 0; i < args.length; i++) { - const arg = args[i]; - if (arg === undefined) continue; - if (!arg.startsWith("--")) continue; + const arg = args[i] + if (arg === undefined) continue + if (!arg.startsWith('--')) continue - if (arg.startsWith("--no-")) { - const key = toCamelCase(arg.slice(5)); - config[key] = false; - continue; + if (arg.startsWith('--no-')) { + const key = toCamelCase(arg.slice(5)) + config[key] = false + continue } - if (!arg.includes("=") && (i === args.length - 1 || args[i + 1]?.startsWith("--"))) { - const key = toCamelCase(arg.slice(2)); - config[key] = true; - continue; + if ( + !arg.includes('=') && + (i === args.length - 1 || args[i + 1]?.startsWith('--')) + ) { + const key = toCamelCase(arg.slice(2)) + config[key] = true + continue } - let key: string; - let value: string; + let key: string + let value: string - if (arg.includes("=")) { - [key, value] = arg.slice(2).split("=", 2) as [string, string]; + if (arg.includes('=')) { + ;[key, value] = arg.slice(2).split('=', 2) as [string, string] } else { - key = arg.slice(2); - value = args[++i] ?? ""; + key = arg.slice(2) + value = args[++i] ?? '' } - key = toCamelCase(key); + key = toCamelCase(key) - if (key.includes(".")) { - const [parentKey, childKey] = key.split("."); - config[parentKey] = config[parentKey] || {}; - config[parentKey][childKey] = parseValue(value); + if (key.includes('.')) { + const [parentKey, childKey] = key.split('.') + if (parentKey && childKey) { + config[parentKey] = config[parentKey] || {} + config[parentKey][childKey] = parseValue(value) + } } else { - config[key] = parseValue(value); + config[key] = parseValue(value) } } - return config; + return config as Partial } const formatFileSize = (bytes: number): string => { - const units = ["B", "KB", "MB", "GB"]; - let size = bytes; - let unitIndex = 0; + const units = ['B', 'KB', 'MB', 'GB'] + let size = bytes + let unitIndex = 0 while (size >= 1024 && unitIndex < units.length - 1) { - size /= 1024; - unitIndex++; + size /= 1024 + unitIndex++ } - return `${size.toFixed(2)} ${units[unitIndex]}`; -}; - -console.log("\n🚀 Starting build process...\n"); - -const cliConfig = parseArgs(); -const outdir = cliConfig.outdir || path.join(process.cwd(), "dist"); - -if (existsSync(outdir)) { - console.log(`🗑️ Cleaning previous build at ${outdir}`); - await rm(outdir, { recursive: true, force: true }); + return `${size.toFixed(2)} ${units[unitIndex]}` } -const start = performance.now(); +console.log('\n🚀 Starting build process...\n') -const entrypoints = [...new Bun.Glob("**.html").scanSync("src")] - .map(a => path.resolve("src", a)) - .filter(dir => !dir.includes("node_modules")); -console.log(`📄 Found ${entrypoints.length} HTML ${entrypoints.length === 1 ? "file" : "files"} to process\n`); +const cliConfig = parseArgs() +const outdir = cliConfig.outdir || path.join(process.cwd(), 'dist') + +if (existsSync(outdir)) { + console.log(`🗑️ Cleaning previous build at ${outdir}`) + await rm(outdir, { recursive: true, force: true }) +} + +const start = performance.now() + +const entrypoints = [...new Bun.Glob('**.html').scanSync('src')] + .map((a) => path.resolve('src', a)) + .filter((dir) => !dir.includes('node_modules')) +console.log( + `📄 Found ${entrypoints.length} HTML ${entrypoints.length === 1 ? 'file' : 'files'} to process\n`, +) const result = await Bun.build({ entrypoints, outdir, plugins: [plugin], minify: true, - target: "browser", - sourcemap: "linked", + target: 'browser', + sourcemap: 'linked', define: { - "process.env.NODE_ENV": JSON.stringify("production"), + 'process.env.NODE_ENV': JSON.stringify('production'), }, ...cliConfig, -}); +}) -const end = performance.now(); +const end = performance.now() -const outputTable = result.outputs.map(output => ({ +const outputTable = result.outputs.map((output) => ({ File: path.relative(process.cwd(), output.path), Type: output.kind, Size: formatFileSize(output.size), -})); +})) -console.table(outputTable); -const buildTime = (end - start).toFixed(2); +console.table(outputTable) +const buildTime = (end - start).toFixed(2) -console.log(`\n✅ Build completed in ${buildTime}ms\n`); +console.log(`\n✅ Build completed in ${buildTime}ms\n`) diff --git a/web/bun-env.d.ts b/web/bun-env.d.ts index 72f1c26..0c6343a 100644 --- a/web/bun-env.d.ts +++ b/web/bun-env.d.ts @@ -1,17 +1,17 @@ // Generated by `bun init` -declare module "*.svg" { +declare module '*.svg' { /** * A path to the SVG file */ - const path: `${string}.svg`; - export = path; + const path: `${string}.svg` + export = path } -declare module "*.module.css" { +declare module '*.module.css' { /** * A record of class names to their corresponding CSS module classes */ - const classes: { readonly [key: string]: string }; - export = classes; + const classes: { readonly [key: string]: string } + export = classes } diff --git a/web/index.html b/web/index.html index a99fd68..e39bc10 100644 --- a/web/index.html +++ b/web/index.html @@ -1,17 +1,17 @@ - + HLAE中文站

- \ No newline at end of file + diff --git a/web/package.json b/web/package.json index b20bb7a..3f79db7 100644 --- a/web/package.json +++ b/web/package.json @@ -7,6 +7,8 @@ "dev": "vite", "build": "vite build", "lint": "eslint .", + "lint:fix": "eslint . --fix", + "typecheck": "tsc --noEmit", "preview": "vite preview" }, "dependencies": { @@ -28,10 +30,11 @@ "zustand": "^5.0.11" }, "devDependencies": { - "backend": "workspace:*", "@types/react": "^19", "@types/react-dom": "^19", - "vite": "^5.0.0", - "@vitejs/plugin-react": "^4.0.0" + "@vitejs/plugin-react": "^4.0.0", + "backend": "workspace:*", + "eslint": "^10.0.3", + "vite": "^5.0.0" } -} \ No newline at end of file +} diff --git a/web/postcss.config.mjs b/web/postcss.config.mjs index c2ddf74..a7f73a2 100644 --- a/web/postcss.config.mjs +++ b/web/postcss.config.mjs @@ -1,5 +1,5 @@ export default { plugins: { - "@tailwindcss/postcss": {}, + '@tailwindcss/postcss': {}, }, -}; +} diff --git a/web/src/api/client.ts b/web/src/api/client.ts index d5e1f5e..d84aaef 100644 --- a/web/src/api/client.ts +++ b/web/src/api/client.ts @@ -1,7 +1,5 @@ -import { edenTreaty } from '@elysiajs/eden'; -import type { App } from 'backend'; +import { edenTreaty } from '@elysiajs/eden' +import type { App } from 'backend' // 创建 Eden 客户端,自动推断类型 -export const api = edenTreaty('http://localhost:3001'); - - +export const api = edenTreaty('http://localhost:3001') diff --git a/web/src/app/about/index.tsx b/web/src/app/about/index.tsx index e17d7b5..ef2de85 100644 --- a/web/src/app/about/index.tsx +++ b/web/src/app/about/index.tsx @@ -1,14 +1,16 @@ -import { Button, Card } from "@heroui/react"; -import { useNavigate } from "react-router-dom"; +import { Button, Card } from '@heroui/react' +import { useNavigate } from 'react-router-dom' export default function AboutPage() { - const navigate = useNavigate(); + const navigate = useNavigate() return ( -
+
- 关于 HLAE 中文站 + + 关于 HLAE 中文站 +

@@ -17,11 +19,9 @@ export default function AboutPage() {

- +
- ); + ) } diff --git a/web/src/app/demo/index.tsx b/web/src/app/demo/index.tsx index a248fd9..63181a6 100644 --- a/web/src/app/demo/index.tsx +++ b/web/src/app/demo/index.tsx @@ -1,14 +1,16 @@ -import { Button, Card } from "@heroui/react"; -import { useNavigate } from "react-router-dom"; +import { Button, Card } from '@heroui/react' +import { useNavigate } from 'react-router-dom' export default function DemoPage() { - const navigate = useNavigate(); + const navigate = useNavigate() return ( -
+
- 击杀生成 (Kill Generation) + + 击杀生成 (Kill Generation) +

@@ -16,11 +18,9 @@ export default function DemoPage() {

- +
- ); -} \ No newline at end of file + ) +} diff --git a/web/src/app/index.tsx b/web/src/app/index.tsx index dc4471a..a96ab99 100644 --- a/web/src/app/index.tsx +++ b/web/src/app/index.tsx @@ -1,23 +1,23 @@ -import { useState } from 'react'; -import { useResources } from '../hooks/useApi'; -import { CustomCard } from '../components/CustomCard'; -import { Hero } from '../components/Hero'; -import { Button, Link, Chip } from '@heroui/react'; -import { buttonVariants, linkVariants } from '@heroui/styles'; -import { CreateResourceModal } from '../components/CreateResourceModal'; -import { EditResourceModal } from '../components/EditResourceModal'; -import { useSession } from '../lib/auth-client'; -import { - ChatBubbleLeftEllipsisIcon, - BookOpenIcon, - BookmarkIcon, - QuestionMarkCircleIcon, - WrenchScrewdriverIcon, - ListBulletIcon, +import { useState } from 'react' +import { useResources, Resource } from '../hooks/useApi' +import { CustomCard } from '../components/CustomCard' +import { Hero } from '../components/Hero' +import { Button, Chip } from '@heroui/react' +import { buttonVariants } from '@heroui/styles' +import { CreateResourceModal } from '../components/CreateResourceModal' +import { EditResourceModal } from '../components/EditResourceModal' +import { useSession } from '../lib/auth-client' +import { + ChatBubbleLeftEllipsisIcon, + BookOpenIcon, + BookmarkIcon, + QuestionMarkCircleIcon, + WrenchScrewdriverIcon, + ListBulletIcon, VideoCameraIcon, - UserGroupIcon -} from '@heroicons/react/24/outline'; -import { Link as RouterLink } from 'react-router-dom'; + UserGroupIcon, +} from '@heroicons/react/24/outline' +import { Link as RouterLink } from 'react-router-dom' const PORTALS = [ { @@ -68,14 +68,16 @@ const PORTALS = [ icon: VideoCameraIcon, url: 'https://www.hltv.org', }, -]; +] export default function HomePage() { - const { resources, isLoading } = useResources(); - const [isModalOpen, setIsModalOpen] = useState(false); - const [isEditModalOpen, setIsEditModalOpen] = useState(false); - const [selectedResource, setSelectedResource] = useState(null); - const { data: session } = useSession(); + const { resources, isLoading } = useResources() + const [isModalOpen, setIsModalOpen] = useState(false) + const [isEditModalOpen, setIsEditModalOpen] = useState(false) + const [selectedResource, setSelectedResource] = useState( + null, + ) + const { data: session } = useSession() return (
@@ -83,31 +85,33 @@ export default function HomePage() { {/* Portals Section */}
-

传送门

-
{/* Resources Section */}
-
+

资源下载

{session && ( - )}
- - - + - + {isLoading ? (
加载中...
) : ( -
+
{resources?.map((res) => ( -
-
+
+
{res.icon ? ( {res.title} ) : ( -
+
{res.title[0]}
)}
-
+
-

{res.title}

+

+ {res.title} +

{res.category && ( - + {res.category} )}
-

{res.description}

+

+ {res.description} +

-
- + 加速下载 - 原始下载 {session && ( - )}
))} {!resources?.length && ( -
- 暂无资源 -
+
+ 暂无资源 +
)}
)}
- ); + ) } diff --git a/web/src/app/login/index.tsx b/web/src/app/login/index.tsx index f0b5fc4..1e4095c 100644 --- a/web/src/app/login/index.tsx +++ b/web/src/app/login/index.tsx @@ -1,41 +1,56 @@ -import { useState } from 'react'; -import { useNavigate, Link } from 'react-router-dom'; -import { Card, Input, Button, Form, toast, TextField, Label, FieldError } from '@heroui/react'; -import { signIn } from '../../lib/auth-client'; +import { useState } from 'react' +import { useNavigate, Link as RouterLink } from 'react-router-dom' +import { + Card, + Input, + Button, + Form, + toast, + TextField, + Label, + FieldError, +} from '@heroui/react' +import { buttonVariants } from '@heroui/styles' +import { signIn } from '../../lib/auth-client' export default function LoginPage() { - const [email, setEmail] = useState(''); - const [password, setPassword] = useState(''); - const [loading, setLoading] = useState(false); - const navigate = useNavigate(); + const [email, setEmail] = useState('') + const [password, setPassword] = useState('') + const [loading, setLoading] = useState(false) + const navigate = useNavigate() const handleLogin = async (e: React.FormEvent) => { - e.preventDefault(); - setLoading(true); + e.preventDefault() + setLoading(true) try { - await signIn.email({ - email, - password, - }, { - onSuccess: () => { - navigate('/'); + await signIn.email( + { + email, + password, }, - onError: (ctx) => { - toast.danger(ctx.error.message); - } - }); + { + onSuccess: () => { + navigate('/') + }, + onError: (ctx) => { + toast.danger(ctx.error.message) + }, + }, + ) } catch (err) { - console.error(err); + console.error(err) } finally { - setLoading(false); + setLoading(false) } - }; + } return ( -
+
- 登录 HLAE 中文站 + + 登录 HLAE 中文站 +
@@ -63,21 +78,42 @@ export default function LoginPage() { - - - -
- - ← 返回首页 - + +
+ + 返回首页 +
+

+ 没有账号?{' '} + + 去注册 + +

- ); + ) } diff --git a/web/src/app/posts/[id]/index.tsx b/web/src/app/posts/[id]/index.tsx index 72d57d4..ae67715 100644 --- a/web/src/app/posts/[id]/index.tsx +++ b/web/src/app/posts/[id]/index.tsx @@ -1,57 +1,63 @@ -import { useParams, Link as RouterLink } from 'react-router-dom'; -import { usePost } from '../../../hooks/useApi'; -import { Card, Button, Avatar, Separator, Skeleton } from '@heroui/react'; -import { buttonVariants } from '@heroui/styles'; +import { useParams, Link as RouterLink } from 'react-router-dom' +import { usePost, Comment } from '../../../hooks/useApi' +import { Card, Avatar, Separator, Skeleton } from '@heroui/react' +import { buttonVariants } from '@heroui/styles' export default function PostDetailPage() { - const { id } = useParams<{ id: string }>(); - const { post, isLoading, isError } = usePost(id || ''); + const { id } = useParams<{ id: string }>() + const { post, isLoading, isError } = usePost(id || '') if (isLoading) { return (
- - - - - + + + + +
- ); + ) } if (isError || !post) { return (
-

帖子未找到

- +

帖子未找到

+ 返回帖子列表
- ); + ) } return (
-
+
- + ← 返回帖子列表
- - + +

{post.title}

-
- - - {(post.user?.name || 'U').slice(0, 2).toUpperCase()} - +
+ + + {(post.user?.name || 'U').slice(0, 2).toUpperCase()} + {post.user?.name || '匿名用户'} @@ -60,7 +66,7 @@ export default function PostDetailPage() { -
+
{post.content}
@@ -68,13 +74,19 @@ export default function PostDetailPage() { {post.comments && post.comments.length > 0 && (
-

评论 ({post.comments.length})

- {post.comments.map((comment) => ( +

+ 评论 ({post.comments.length}) +

+ {post.comments.map((comment: Comment) => (
-
- {comment.user?.name || '匿名用户'} - {new Date(comment.createdAt).toLocaleString()} +
+ + {comment.user?.name || '匿名用户'} + + + {new Date(comment.createdAt).toLocaleString()} +

{comment.content}

@@ -85,5 +97,5 @@ export default function PostDetailPage() {
- ); + ) } diff --git a/web/src/app/posts/index.tsx b/web/src/app/posts/index.tsx index 162684e..9e7ffc1 100644 --- a/web/src/app/posts/index.tsx +++ b/web/src/app/posts/index.tsx @@ -1,76 +1,98 @@ -import { useState } from 'react'; -import { usePosts } from '../../hooks/useApi'; -import { Link as RouterLink } from 'react-router-dom'; -import { Card, Button, Input, TextArea, Form, Link, toast, TextField, Label, FieldError } from '@heroui/react'; -import { useSession } from '../../lib/auth-client'; -import { api } from '../../api/client'; +import { useState } from 'react' +import { usePosts, Post } from '../../hooks/useApi' +import { Link as RouterLink } from 'react-router-dom' +import { + Card, + Button, + Input, + TextArea, + Form, + toast, + TextField, + Label, + FieldError, +} from '@heroui/react' +import { useSession } from '../../lib/auth-client' +import { api } from '../../api/client' export default function PostsPage() { - const { posts, isLoading, mutate } = usePosts(); - const { data: session } = useSession(); - const [title, setTitle] = useState(''); - const [content, setContent] = useState(''); - const [isSubmitting, setIsSubmitting] = useState(false); + const { posts, isLoading, mutate } = usePosts() + const { data: session } = useSession() + const [title, setTitle] = useState('') + const [content, setContent] = useState('') + const [isSubmitting, setIsSubmitting] = useState(false) const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - if (!session) return; - setIsSubmitting(true); + e.preventDefault() + if (!session) return + setIsSubmitting(true) try { await api.posts.post({ title, content, userId: session.user.id, - published: true - }); - setTitle(''); - setContent(''); - mutate(); // Refresh list + published: true, + }) + setTitle('') + setContent('') + mutate() // Refresh list } catch (err) { - console.error(err); - toast.danger('发布失败'); + console.error(err) + toast.danger('发布失败') } finally { - setIsSubmitting(false); + setIsSubmitting(false) } - }; + } return (
-
+
-

最新帖子

+

最新帖子

{isLoading ? (
加载中...
) : (
- {posts?.map((post: any) => ( + {posts?.map((post: Post) => ( -
- - {post.title} - -

- {post.user?.name || '匿名用户'} - {new Date(post.createdAt).toLocaleDateString()} -

-
+
+ + {post.title} + +

+ {post.user?.name || '匿名用户'} -{' '} + {new Date(post.createdAt).toLocaleDateString()} +

+
-

{post.content}

+

+ {post.content} +

))} - {!posts?.length &&
暂无帖子
} + {!posts?.length && ( +
暂无帖子
+ )}
)}
{session && (
- -

发布新帖

-
+ +

发布新帖

+
- ); + ) } diff --git a/web/src/app/register/index.tsx b/web/src/app/register/index.tsx index 72511ab..fe64bf1 100644 --- a/web/src/app/register/index.tsx +++ b/web/src/app/register/index.tsx @@ -1,42 +1,57 @@ -import { useState } from 'react'; -import { useNavigate, Link } from 'react-router-dom'; -import { Card, Input, Button, Form, toast, TextField, Label, FieldError } from '@heroui/react'; -import { signUp } from '../../lib/auth-client'; +import { useState } from 'react' +import { useNavigate, Link as RouterLink } from 'react-router-dom' +import { + Card, + Input, + Button, + Form, + toast, + TextField, + Label, + FieldError, +} from '@heroui/react' +import { buttonVariants } from '@heroui/styles' +import { signUp } from '../../lib/auth-client' export default function RegisterPage() { - const [email, setEmail] = useState(''); - const [password, setPassword] = useState(''); - const [loading, setLoading] = useState(false); - const navigate = useNavigate(); + const [email, setEmail] = useState('') + const [password, setPassword] = useState('') + const [loading, setLoading] = useState(false) + const navigate = useNavigate() const handleRegister = async (e: React.FormEvent) => { - e.preventDefault(); - setLoading(true); + e.preventDefault() + setLoading(true) try { - await signUp.email({ - email, - password, - name: email.split('@')[0], // Default name - }, { - onSuccess: () => { - navigate('/'); + await signUp.email( + { + email, + password, + name: email.split('@')[0], // Default name }, - onError: (ctx) => { - toast.danger(ctx.error.message); - } - }); + { + onSuccess: () => { + navigate('/') + }, + onError: (ctx) => { + toast.danger(ctx.error.message) + }, + }, + ) } catch (err) { - console.error(err); + console.error(err) } finally { - setLoading(false); + setLoading(false) } - }; + } return ( -
+
- 注册 HLAE 中文站 + + 注册 HLAE 中文站 + @@ -64,21 +79,42 @@ export default function RegisterPage() { - - - -
- - ← 返回首页 - + +
+ + 返回首页 +
+

+ 已有账号?{' '} + + 去登录 + +

- ); + ) } diff --git a/web/src/components/CreateResourceModal.tsx b/web/src/components/CreateResourceModal.tsx index f47302d..5ea1d4a 100644 --- a/web/src/components/CreateResourceModal.tsx +++ b/web/src/components/CreateResourceModal.tsx @@ -1,42 +1,57 @@ -import { useState } from 'react'; -import { Modal, Button, Input, Form, toast, TextField, Label, FieldError } from "@heroui/react"; -import { api } from '../api/client'; -import { useSWRConfig } from 'swr'; +import { useState } from 'react' +import { + Modal, + Button, + Input, + Form, + toast, + TextField, + Label, + FieldError, +} from '@heroui/react' +import { api } from '../api/client' +import { useSWRConfig } from 'swr' -export function CreateResourceModal({ isOpen, onOpenChange }: { isOpen: boolean, onOpenChange: (isOpen: boolean) => void }) { - const [title, setTitle] = useState(''); - const [description, setDescription] = useState(''); - const [url, setUrl] = useState(''); - const [icon, setIcon] = useState(''); - const [category, setCategory] = useState(''); - const [loading, setLoading] = useState(false); - const { mutate } = useSWRConfig(); +export function CreateResourceModal({ + isOpen, + onOpenChange, +}: { + isOpen: boolean + onOpenChange: (isOpen: boolean) => void +}) { + const [title, setTitle] = useState('') + const [description, setDescription] = useState('') + const [url, setUrl] = useState('') + const [icon, setIcon] = useState('') + const [category, setCategory] = useState('') + const [loading, setLoading] = useState(false) + const { mutate } = useSWRConfig() const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - setLoading(true); + e.preventDefault() + setLoading(true) try { await api.resources.post({ title, description, url, icon, - category - }); - mutate('/resources'); - onOpenChange(false); - setTitle(''); - setDescription(''); - setUrl(''); - setIcon(''); - setCategory(''); + category, + }) + mutate('/resources') + onOpenChange(false) + setTitle('') + setDescription('') + setUrl('') + setIcon('') + setCategory('') } catch (err) { - console.error(err); - toast.danger('创建失败'); + console.error(err) + toast.danger('创建失败') } finally { - setLoading(false); + setLoading(false) } - }; + } return ( @@ -48,7 +63,11 @@ export function CreateResourceModal({ isOpen, onOpenChange }: { isOpen: boolean, -
+ - + - + @@ -115,5 +125,5 @@ export function CreateResourceModal({ isOpen, onOpenChange }: { isOpen: boolean, - ); + ) } diff --git a/web/src/components/CustomCard.tsx b/web/src/components/CustomCard.tsx index 3db04ae..f888e1c 100644 --- a/web/src/components/CustomCard.tsx +++ b/web/src/components/CustomCard.tsx @@ -1,33 +1,37 @@ -import { Card } from "@heroui/react"; -import { tv, type VariantProps } from "tailwind-variants"; -import React from "react"; +import { Card } from '@heroui/react' +import { tv, type VariantProps } from 'tailwind-variants' +import React from 'react' // Define custom styles -export const customStyles = tv({ +const customStyles = tv({ variants: { variant: { - glass: "bg-white/70 backdrop-blur-md border-white/20 shadow-xl dark:bg-black/70 dark:border-white/10", - neon: "border border-blue-500 shadow-[0_0_15px_rgba(59,130,246,0.5)] bg-gray-900/90 text-white", - minimal: "border-none shadow-none bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors", - modern: "bg-default-50/40 hover:bg-default-100/60 transition-all duration-500 border-none shadow-sm hover:shadow-xl hover:-translate-y-1 rounded-3xl", + glass: + 'bg-white/70 backdrop-blur-md border-white/20 shadow-xl dark:bg-black/70 dark:border-white/10', + neon: 'border border-blue-500 shadow-[0_0_15px_rgba(59,130,246,0.5)] bg-gray-900/90 text-white', + minimal: + 'border-none shadow-none bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors', + modern: + 'bg-default-50/40 hover:bg-default-100/60 transition-all duration-500 border-none shadow-sm hover:shadow-xl hover:-translate-y-1 rounded-3xl', }, }, defaultVariants: { - variant: "modern", - } -}); + variant: 'modern', + }, +}) -type CustomCardProps = React.ComponentProps & VariantProps; +type CustomCardProps = React.ComponentProps & + VariantProps // Create the custom component export function CustomCard({ className, variant, ...props }: CustomCardProps) { // Use custom styles and merge with className - return ; + return } // Attach subcomponents to the custom component for easier usage -CustomCard.Header = Card.Header; -CustomCard.Content = Card.Content; -CustomCard.Footer = Card.Footer; -CustomCard.Title = Card.Title; -CustomCard.Description = Card.Description; +CustomCard.Header = Card.Header +CustomCard.Content = Card.Content +CustomCard.Footer = Card.Footer +CustomCard.Title = Card.Title +CustomCard.Description = Card.Description diff --git a/web/src/components/EditResourceModal.tsx b/web/src/components/EditResourceModal.tsx index 1fd9667..7ec36ca 100644 --- a/web/src/components/EditResourceModal.tsx +++ b/web/src/components/EditResourceModal.tsx @@ -1,72 +1,83 @@ -import { useState, useEffect } from 'react'; -import { Modal, Button, Input, Form, toast, TextField, Label, FieldError } from "@heroui/react"; -import { api } from '../api/client'; -import { useSWRConfig } from 'swr'; -import { Resource } from '../hooks/useApi'; +import { useState, useEffect } from 'react' +import { + Modal, + Button, + Input, + Form, + toast, + TextField, + Label, + FieldError, +} from '@heroui/react' +import { api } from '../api/client' +import { useSWRConfig } from 'swr' +import { Resource } from '../hooks/useApi' -export function EditResourceModal({ - isOpen, - onOpenChange, - resource -}: { - isOpen: boolean, - onOpenChange: (isOpen: boolean) => void, +export function EditResourceModal({ + isOpen, + onOpenChange, + resource, +}: { + isOpen: boolean + onOpenChange: (isOpen: boolean) => void resource: Resource | null }) { - const [title, setTitle] = useState(''); - const [description, setDescription] = useState(''); - const [url, setUrl] = useState(''); - const [icon, setIcon] = useState(''); - const [category, setCategory] = useState(''); - const [loading, setLoading] = useState(false); - const { mutate } = useSWRConfig(); + const [title, setTitle] = useState('') + const [description, setDescription] = useState('') + const [url, setUrl] = useState('') + const [icon, setIcon] = useState('') + const [category, setCategory] = useState('') + const [loading, setLoading] = useState(false) + const { mutate } = useSWRConfig() useEffect(() => { if (resource) { - setTitle(resource.title); - setDescription(resource.description || ''); - setUrl(resource.url); - setIcon(resource.icon || ''); - setCategory(resource.category || ''); + setTitle(resource.title) + setDescription(resource.description || '') + setUrl(resource.url) + setIcon(resource.icon || '') + setCategory(resource.category || '') } - }, [resource]); + }, [resource]) const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - if (!resource) return; - setLoading(true); + e.preventDefault() + if (!resource) return + setLoading(true) try { - await api.resources({ id: resource.id }).put({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + await (api.resources as any)[resource.id].put({ title, description, url, icon, - category - }); - mutate('/resources'); - onOpenChange(false); + category, + }) + mutate('/resources') + onOpenChange(false) } catch (err) { - console.error(err); - toast.danger('更新失败'); + console.error(err) + toast.danger('更新失败') } finally { - setLoading(false); + setLoading(false) } - }; + } const handleDelete = async () => { - if (!resource || !confirm('确定要删除这个资源吗?')) return; - setLoading(true); + if (!resource || !confirm('确定要删除这个资源吗?')) return + setLoading(true) try { - await api.resources({ id: resource.id }).delete(); - mutate('/resources'); - onOpenChange(false); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + await (api.resources as any)[resource.id].delete() + mutate('/resources') + onOpenChange(false) } catch (err) { - console.error(err); - toast.danger('删除失败'); + console.error(err) + toast.danger('删除失败') } finally { - setLoading(false); + setLoading(false) } - }; + } return ( @@ -78,7 +89,11 @@ export function EditResourceModal({ - + - + - + @@ -131,8 +137,12 @@ export function EditResourceModal({ -
-
@@ -150,5 +160,5 @@ export function EditResourceModal({ - ); + ) } diff --git a/web/src/components/Hero.tsx b/web/src/components/Hero.tsx index be8b310..7cdd6fb 100644 --- a/web/src/components/Hero.tsx +++ b/web/src/components/Hero.tsx @@ -1,51 +1,54 @@ -import { Button } from '@heroui/react'; -import { WrenchScrewdriverIcon } from '@heroicons/react/24/outline'; +import { WrenchScrewdriverIcon } from '@heroicons/react/24/outline' +import { buttonVariants } from '@heroui/styles' export const Hero = () => { return (
-

+

HLAE中文站

-

- CS等起源引擎游戏的影片制作工具 - HLAE的中文门户网站 +

+ CS + 等起源引擎游戏的影片制作工具 + HLAE的中文门户网站

- -
- ); -}; + ) +} diff --git a/web/src/components/SiteNavbar.tsx b/web/src/components/SiteNavbar.tsx index 808cdb1..a546026 100644 --- a/web/src/components/SiteNavbar.tsx +++ b/web/src/components/SiteNavbar.tsx @@ -1,80 +1,92 @@ -import { - Link, - Button, - Avatar, - Dropdown, - Label -} from "@heroui/react"; -import { linkVariants, buttonVariants } from "@heroui/styles"; -import { useEffect, useState } from "react"; -import { useSession, signOut } from "../lib/auth-client"; -import { SunIcon, MoonIcon } from "@heroicons/react/24/outline"; -import { Link as RouterLink } from "react-router-dom"; +import { Button, Avatar, Dropdown, Label } from '@heroui/react' +import { buttonVariants } from '@heroui/styles' +import { useEffect, useState } from 'react' +import { useSession, signOut } from '../lib/auth-client' +import { SunIcon, MoonIcon } from '@heroicons/react/24/outline' +import { Link as RouterLink } from 'react-router-dom' export function SiteNavbar() { - const { data: session } = useSession(); - const [theme, setTheme] = useState<"light" | "dark">("light"); + const { data: session } = useSession() + const [theme, setTheme] = useState<'light' | 'dark'>(() => { + if (typeof window !== 'undefined') { + return document.documentElement.classList.contains('dark') + ? 'dark' + : 'light' + } + return 'light' + }) useEffect(() => { - const currentTheme = document.documentElement.classList.contains("dark") ? "dark" : "light"; - setTheme(currentTheme); - }, []); + // Sync theme on mount if needed, but the state is already initialized + }, []) const toggleTheme = () => { - const nextTheme = theme === "dark" ? "light" : "dark"; - document.documentElement.classList.remove("light", "dark"); - document.documentElement.classList.add(nextTheme); - document.documentElement.setAttribute("data-theme", nextTheme); - localStorage.setItem("theme", nextTheme); - setTheme(nextTheme); - }; + const nextTheme = theme === 'dark' ? 'light' : 'dark' + document.documentElement.classList.remove('light', 'dark') + document.documentElement.classList.add(nextTheme) + document.documentElement.setAttribute('data-theme', nextTheme) + localStorage.setItem('theme', nextTheme) + setTheme(nextTheme) + } return ( -