diff --git a/.eslintrc.js b/.eslintrc.js index 781274d..2250388 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,7 +2,7 @@ /** @type {import("eslint").Linter.Config} */ module.exports = { ignorePatterns: ["apps/**", "packages/**"], - extends: ["@workspace/eslint-config/library.js"], + extends: ["@repo/eslint-config/library.js"], parser: "@typescript-eslint/parser", parserOptions: { project: true, diff --git a/.gitignore b/.gitignore index 4133bab..af3063c 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ npm-debug.log* # Misc .DS_Store *.pem + + +packages/db/generated \ No newline at end of file diff --git a/README.md b/README.md index 25bbcbd..7fd254f 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Your `globals.css` are already set up to use the components from the `ui` packag To use the components in your app, import them from the `ui` package. ```tsx -import { Button } from '@workspace/ui/components/ui/button'; +import { Button } from '@repo/ui/components/ui/button'; ``` ## More Resources diff --git a/apps/backend/README.md b/apps/backend/README.md new file mode 100644 index 0000000..6dd13e7 --- /dev/null +++ b/apps/backend/README.md @@ -0,0 +1,11 @@ +To install dependencies: +```sh +bun install +``` + +To run: +```sh +bun run dev +``` + +open http://localhost:3000 diff --git a/apps/backend/package.json b/apps/backend/package.json new file mode 100644 index 0000000..ed55113 --- /dev/null +++ b/apps/backend/package.json @@ -0,0 +1,24 @@ +{ + "name": "backend", + "scripts": { + "dev": "bun run --hot src/index.ts" + }, + "dependencies": { + "@elastic/elasticsearch": "^9.0.2", + "@hono/trpc-server": "^0.3.4", + "@hono/zod-validator": "^0.5.0", + "@repo/db": "workspace:*", + "@trpc/server": "11.1.2", + "@types/oidc-provider": "^9.1.0", + "hono": "^4.7.10", + "ioredis": "5.4.1", + "minio": "7.1.3", + "node-cron": "^4.0.7", + "oidc-provider": "^9.1.1", + "zod": "^3.25.23" + }, + "devDependencies": { + "@types/bun": "latest", + "@types/node": "^22.15.21" + } +} \ No newline at end of file diff --git a/apps/backend/src/elasticsearch.ts b/apps/backend/src/elasticsearch.ts new file mode 100644 index 0000000..48a6583 --- /dev/null +++ b/apps/backend/src/elasticsearch.ts @@ -0,0 +1,10 @@ +import { Client } from '@elastic/elasticsearch'; + +export const esClient = new Client({ + node: process.env.ELASTICSEARCH_NODE || 'http://localhost:9200', + auth: { + username: process.env.ELASTICSEARCH_USER || 'elastic', + password: process.env.ELASTICSEARCH_PASSWORD || 'changeme', + }, +}); + diff --git a/apps/backend/src/index.ts b/apps/backend/src/index.ts new file mode 100644 index 0000000..aa97308 --- /dev/null +++ b/apps/backend/src/index.ts @@ -0,0 +1,50 @@ +import { Hono } from 'hono' +import { logger } from 'hono/logger' +import { contextStorage, getContext } from 'hono/context-storage' +import { prettyJSON } from 'hono/pretty-json' + +import { trpcServer } from '@hono/trpc-server' +import { appRouter } from './trpc' +import Redis from 'ioredis' +import redis from './redis' +import minioClient from './minio' +import { Client } from 'minio' +import oidc from './oidc/provider' +type Env = { + Variables: { + redis: Redis + minio: Client + } +} + +const app = new Hono() + +app.use('*', async (c, next) => { + c.set('redis', redis) + c.set('minio', minioClient) + await next() +}) +app.use('*', async (c, next) => { + c.set('redis', redis); + await next(); +}); +app.use(contextStorage()) +app.use(prettyJSON()) // With options: prettyJSON({ space: 4 }) +app.use(logger()) +app.use( + '/trpc/*', + trpcServer({ + router: appRouter, + }) +) + +app.get('/', (c) => { + return c.text('Hello Hono!') +}) +app.all('/oidc/*', async (c) => { + // 让 oidc-provider 处理请求 + return await oidc.callback(c.req.raw, c.res.raw); +}); + + +export default app diff --git a/apps/backend/src/minio.ts b/apps/backend/src/minio.ts new file mode 100644 index 0000000..84d7e4c --- /dev/null +++ b/apps/backend/src/minio.ts @@ -0,0 +1,13 @@ + +// apps/backend/src/minio.ts +import { Client } from 'minio' + +const minioClient = new Client({ + endPoint: process.env.MINIO_ENDPOINT || 'localhost', + port: Number(process.env.MINIO_PORT) || 9000, + useSSL: process.env.MINIO_USE_SSL === 'true', + accessKey: process.env.MINIO_ACCESS_KEY || 'minioadmin', + secretKey: process.env.MINIO_SECRET_KEY || 'minioadmin', +}) + +export default minioClient \ No newline at end of file diff --git a/apps/backend/src/oidc/config.ts b/apps/backend/src/oidc/config.ts new file mode 100644 index 0000000..f67dd2e --- /dev/null +++ b/apps/backend/src/oidc/config.ts @@ -0,0 +1,15 @@ +import { Configuration } from 'oidc-provider'; + +const config: Configuration = { + clients: [ + { + client_id: 'example-client', + client_secret: 'example-secret', + grant_types: ['authorization_code'], + redirect_uris: ['http://localhost:3000/cb'], + }, + ], + // 其他配置项... +}; + +export default config; \ No newline at end of file diff --git a/apps/backend/src/oidc/provider.ts b/apps/backend/src/oidc/provider.ts new file mode 100644 index 0000000..cc725b9 --- /dev/null +++ b/apps/backend/src/oidc/provider.ts @@ -0,0 +1,6 @@ +import { Provider } from 'oidc-provider'; +import config from './config'; + +const oidc = new Provider('http://localhost:4000', config); + +export default oidc; \ No newline at end of file diff --git a/apps/backend/src/redis.ts b/apps/backend/src/redis.ts new file mode 100644 index 0000000..b2aebe3 --- /dev/null +++ b/apps/backend/src/redis.ts @@ -0,0 +1,10 @@ +// apps/backend/src/redis.ts +import Redis from 'ioredis'; + +const redis = new Redis({ + host: 'localhost', // 根据实际情况配置 + port: 6379, + // password: 'yourpassword', // 如有需要 +}); + +export default redis; \ No newline at end of file diff --git a/apps/backend/src/trpc.ts b/apps/backend/src/trpc.ts new file mode 100644 index 0000000..db54440 --- /dev/null +++ b/apps/backend/src/trpc.ts @@ -0,0 +1,15 @@ +import { z } from 'zod' +import { initTRPC } from '@trpc/server' + +const t = initTRPC.create() + +export const publicProcedure = t.procedure +export const router = t.router + +export const appRouter = router({ + hello: publicProcedure.input(z.string().nullish()).query(({ input }) => { + return `Hello ${input ?? 'World'}!` + }), +}) + +export type AppRouter = typeof appRouter \ No newline at end of file diff --git a/apps/backend/src/user/routes.ts b/apps/backend/src/user/routes.ts new file mode 100644 index 0000000..51031a0 --- /dev/null +++ b/apps/backend/src/user/routes.ts @@ -0,0 +1,17 @@ +import { Hono } from "hono"; +import { createUser, searchUser } from "./userindex"; + +const userRoute = new Hono(); + +userRoute.post('/', async (c) => { + const user = await c.req.json(); + const result = await createUser(user); + return c.json(result); +}); + +userRoute.get('/search', async (c) => { + const q = c.req.query('q') || ''; + const result = await searchUser(q); + return c.json(result.hits.hits); +}); +export default userRoute; \ No newline at end of file diff --git a/apps/backend/src/user/user.trpc.ts b/apps/backend/src/user/user.trpc.ts new file mode 100644 index 0000000..5f97733 --- /dev/null +++ b/apps/backend/src/user/user.trpc.ts @@ -0,0 +1,7 @@ +import { publicProcedure, router } from "../trpc"; +import { prisma } from "@repo/db"; +export const userRouter = router({ + getUser: publicProcedure.query(async ({ ctx }) => { + return prisma.user.findMany() + }) +}) \ No newline at end of file diff --git a/apps/backend/src/user/userindex.ts b/apps/backend/src/user/userindex.ts new file mode 100644 index 0000000..a797423 --- /dev/null +++ b/apps/backend/src/user/userindex.ts @@ -0,0 +1,21 @@ +import { esClient } from "../elasticsearch"; + +const USER_INDEX = 'users'; +export async function createUser(user: any): Promise> { + return esClient.index({ + index: USER_INDEX, + document: user, + }); +} + +export async function searchUser(query: string): Promise> { + return esClient.search({ + index: USER_INDEX, + query: { + multi_match: { + query, + fields: ['name', 'email'], + }, + }, + }); +} diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json new file mode 100644 index 0000000..55a8094 --- /dev/null +++ b/apps/backend/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@repo/typescript-config/hono.json", + "compilerOptions": { + "moduleResolution": "bundler", + "paths": { + "@/*": ["./*"], + "@repo/db/*": ["../../packages/db/src/*"], + }, + + } +} \ No newline at end of file diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index dba3381..fc2a978 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -1,6 +1,6 @@ import { Geist, Geist_Mono } from 'next/font/google'; -import '@workspace/ui/globals.css'; +import '@repo/ui/globals.css'; import { Providers } from '@/components/providers'; import type { Metadata } from 'next'; diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx index d520aae..b59e758 100644 --- a/apps/web/app/page.tsx +++ b/apps/web/app/page.tsx @@ -1,115 +1,3 @@ -import { ModeToggle } from '@/components/mode-toggle'; -import { Button, buttonVariants } from '@workspace/ui/components/button'; -import { - DropdownMenu, - DropdownMenuCheckboxItem, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from '@workspace/ui/components/dropdown-menu'; -import { cn } from '@workspace/ui/lib/utils'; -import { ChevronDownIcon } from 'lucide-react'; -import Image from 'next/image'; - -export default function Home() { - return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{' '} - app/page.tsx. -
  2. -
  3. Save and see your changes instantly.
  4. -
- -

- All the buttons are from the ui package. The auto complete works as well. -

- -
-					{`import { Button, buttonVariants } from '@workspace/ui/components/button';
-import { cn } from '@workspace/ui/lib/utils';`}
-				
- - - - - - - - - - - Item 1 - Item 2 - Item 3 - Item 3 - - Item 3 - - Item 3.1 - Item 3.2 - - - - - - -
- -
- ); +export default async function Home() { + return
; } diff --git a/apps/web/components.json b/apps/web/components.json index 50c5b68..6bde08e 100644 --- a/apps/web/components.json +++ b/apps/web/components.json @@ -14,7 +14,7 @@ "components": "@/components", "hooks": "@/hooks", "lib": "@/lib", - "utils": "@workspace/ui/lib/utils", - "ui": "@workspace/ui/components" + "utils": "@repo/ui/lib/utils", + "ui": "@repo/ui/components" } } diff --git a/apps/web/components/mode-toggle.tsx b/apps/web/components/mode-toggle.tsx index 95521d9..dcc3c70 100644 --- a/apps/web/components/mode-toggle.tsx +++ b/apps/web/components/mode-toggle.tsx @@ -4,13 +4,13 @@ import * as React from 'react'; import { Moon, Sun } from 'lucide-react'; import { useTheme } from 'next-themes'; -import { Button } from '@workspace/ui/components/button'; +import { Button } from '@repo/ui/components/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@workspace/ui/components/dropdown-menu'; +} from '@repo/ui/components/dropdown-menu'; export function ModeToggle() { const { setTheme } = useTheme(); diff --git a/apps/web/eslint.config.js b/apps/web/eslint.config.js index 5062ee3..78a87b6 100644 --- a/apps/web/eslint.config.js +++ b/apps/web/eslint.config.js @@ -1,4 +1,4 @@ -import { nextJsConfig } from "@workspace/eslint-config/next-js" +import { nextJsConfig } from "@repo/eslint-config/next-js" /** @type {import("eslint").Linter.Config} */ export default nextJsConfig diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index bd167d9..435d20d 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,6 +1,6 @@ /** @type {import('next').NextConfig} */ const nextConfig = { - transpilePackages: ["@workspace/ui"], + transpilePackages: ["@repo/ui"], } export default nextConfig diff --git a/apps/web/package.json b/apps/web/package.json index 3032ce3..cf560aa 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -10,20 +10,30 @@ "lint": "next lint" }, "dependencies": { - "@workspace/ui": "workspace:*", + "@repo/client": "workspace:*", + "@repo/db": "workspace:*", + "@repo/ui": "workspace:*", + "@tanstack/react-query": "^5.51.21", + "@trpc/client": "11.1.2", + "@trpc/react-query": "11.1.2", + "@trpc/server": "11.1.2", + "@trpc/tanstack-react-query": "11.1.2", + "axios": "^1.7.2", + "dayjs": "^1.11.12", "lucide-react": "0.511.0", - "next-themes": "^0.4.6", "next": "15.3.2", - "react": "19.1.0", - "react-dom": "19.1.0" + "next-themes": "^0.4.6", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "superjson": "^2.2.2" }, "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", "@tailwindcss/postcss": "^4", - "@types/node": "^20", + "@types/react": "^19.1.4", "@types/react-dom": "^19.1.5", - "@workspace/eslint-config": "workspace:*", - "@workspace/typescript-config": "workspace:*", "tailwindcss": "^4", "typescript": "^5" } diff --git a/apps/web/postcss.config.mjs b/apps/web/postcss.config.mjs index 00b6e2f..111255a 100644 --- a/apps/web/postcss.config.mjs +++ b/apps/web/postcss.config.mjs @@ -1 +1 @@ -export { default } from '@workspace/ui/postcss.config'; +export { default } from '@repo/ui/postcss.config'; diff --git a/apps/web/providers/query-provider.tsx b/apps/web/providers/query-provider.tsx new file mode 100644 index 0000000..ca5441a --- /dev/null +++ b/apps/web/providers/query-provider.tsx @@ -0,0 +1,57 @@ +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { loggerLink, httpBatchLink, createTRPCClient } from '@trpc/client'; +import { TRPCProvider } from '@repo/client'; +import { useMemo, useState } from 'react'; +import superjson from 'superjson'; +import { AppRouter } from '@repo/backend/trpc'; + +export default function QueryProvider({ children }) { + // 将accessToken设置为空字符串 + const accessToken = ''; + + // 使用Next.js环境变量 + const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001'; + + // Set the default query options including staleTime. + const [queryClient] = useState( + () => + new QueryClient({ + defaultOptions: { + queries: { + staleTime: 1000 * 60 * 5, // 5 minutes + }, + }, + }), + ); + + const trpcClient = useMemo(() => { + const headers = async () => ({ + ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), + }); + + const links = [ + httpBatchLink({ + url: `${apiUrl}/trpc`, + headers, + transformer: superjson, + }), + loggerLink({ + enabled: (opts) => + (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') || + (opts.direction === 'down' && opts.result instanceof Error), + }), + ]; + + return createTRPCClient({ + links, + }); + }, [accessToken, apiUrl]); + + return ( + + + {children} + + + ); +} diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 7e80576..0df2b22 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "@workspace/typescript-config/nextjs.json", + "extends": "@repo/typescript-config/nextjs.json", "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./*"], - "@workspace/ui/*": ["../../packages/ui/src/*"] + "@repo/backend/*": ["../backend/src/*"], }, "plugins": [ { diff --git a/package.json b/package.json index d9cbb28..ddbb3cb 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,12 @@ "format": "prettier --write \"**/*.{ts,tsx,md}\"" }, "devDependencies": { - "@workspace/eslint-config": "workspace:*", - "@workspace/typescript-config": "workspace:*", + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", "prettier": "^3.5.3", "turbo": "^2.5.3", - "typescript": "5.8.3" + "typescript": "5.8.3", + "@types/node": "^20" }, "packageManager": "pnpm@9.12.3", "engines": { diff --git a/packages/client/package.json b/packages/client/package.json new file mode 100755 index 0000000..475b633 --- /dev/null +++ b/packages/client/package.json @@ -0,0 +1,41 @@ +{ + "name": "@repo/client", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "sideEffects": false, + "files": [ + "dist", + "src" + ], + "scripts": { + "build": "tsup", + "dev": "tsup --watch", + "dev-static": "tsup --no-watch", + "clean": "rimraf dist", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + + }, + "peerDependencies": { + "@tanstack/query-async-storage-persister": "^5.51.9", + "@tanstack/react-query": "^5.51.21", + "@tanstack/react-query-persist-client": "^5.51.9", + "@trpc/client": "11.1.2", + "@trpc/react-query": "11.1.2", + "@trpc/server": "11.1.2", + "@trpc/tanstack-react-query": "11.1.2", + "axios": "^1.7.2", + "dayjs": "^1.11.12", + "react": "^19.1.0" + + }, + "devDependencies": { + "rimraf": "^6.0.1", + "tsup": "^8.3.5", + "@types/react": "^19.1.4", + "@types/react-dom": "^19.1.5" + } +} diff --git a/packages/client/src/api/hooks/index.ts b/packages/client/src/api/hooks/index.ts new file mode 100755 index 0000000..65ddfc5 --- /dev/null +++ b/packages/client/src/api/hooks/index.ts @@ -0,0 +1,2 @@ + +export * from "./useEntity" diff --git a/packages/client/src/api/hooks/useEntity.ts b/packages/client/src/api/hooks/useEntity.ts new file mode 100755 index 0000000..1c812ea --- /dev/null +++ b/packages/client/src/api/hooks/useEntity.ts @@ -0,0 +1,115 @@ +import { useTRPC, type RouterInputs, type RouterOutputs } from "../trpc"; +import { useQueryClient } from "@tanstack/react-query"; +import { useMutation, type UseMutationResult } from "@tanstack/react-query"; +/** + * 定义 MutationType 类型,用于提取指定实体类型的特定 mutation 方法名。 + * @template T - 实体类型的键名(如 'post', 'user') + * @description 该类型通过遍历 RouterInputs[T] 的键名,筛选出符合条件的 mutation 方法名(如 'create', 'update' 等)。 + */ +type MutationType = keyof { + [K in keyof RouterInputs[T]]: K extends + | "create" + | "update" + | "deleteMany" + | "softDeleteByIds" + | "restoreByIds" + | "updateOrder" + ? RouterInputs[T][K] + : never; +}; +/** + * 定义 MutationOptions 类型,用于配置特定 mutation 方法的回调函数。 + * @template T - 实体类型的键名 + * @template K - mutation 方法名 + * @description 该类型包含一个可选的 onSuccess 回调函数,用于在 mutation 成功时执行。 + */ +type MutationOptions< + T extends keyof RouterInputs, + K extends MutationType, +> = { + onSuccess?: ( + data: RouterOutputs[T][K], // mutation 成功后的返回数据 + variables: RouterInputs[T][K], // mutation 的输入参数 + context?: unknown // 可选的上下文信息 + ) => void; +}; + +/** + * 定义 EntityOptions 类型,用于配置实体类型的所有 mutation 方法的回调函数。 + * @template T - 实体类型的键名 + * @description 该类型是一个对象,键为 mutation 方法名,值为对应的 MutationOptions 配置。 + */ +type EntityOptions = { + [K in MutationType]?: MutationOptions; +}; + +/** + * 工具类型:更新为 TanStack Query 的 UseMutationResult 类型。 + * @template T - 实体类型的键名 + * @template K - mutation 方法名 + * @description 该类型用于定义 mutation 函数的返回类型,适配新版 tRPC。 + */ +export type MutationResult< + T extends keyof RouterInputs, + K extends MutationType, +> = UseMutationResult< + RouterOutputs[T][K], // mutation 成功后的返回数据 + Error, // mutation 的错误类型 + RouterInputs[T][K], // mutation 的输入参数 + unknown // mutation 的上下文类型 +>; + +/** + * 自定义 Hook:用于处理实体的 mutation 操作,并内置缓存失效机制。 + * @template T - 实体类型的键名(如 'post', 'user') + * @param {T} key - 实体键名 + * @param {EntityOptions} [options] - 可选的 mutation 回调函数配置 + * @returns 返回一个包含多个 mutation 函数的对象 + * @description 该 Hook 封装了常见的 mutation 操作(如 create, update, deleteMany 等),并在每次 mutation 成功后自动失效相关缓存。 + */ +export function useEntity( + key: T, + options?: EntityOptions +) { + const trpc = useTRPC(); + const queryClient = useQueryClient(); + /** + * 创建 mutation 处理函数。 + * @template K - mutation 方法名 + * @param {K} mutation - mutation 方法名 + * @returns 返回一个配置好的 mutation 函数 + * @description 该函数根据传入的 mutation 方法名,生成对应的 mutation 函数,并配置 onSuccess 回调。 + */ + + const createMutationHandler = >(mutation: K) => { + // 获取对应的 tRPC mutation 配置 + const mutationOptions = trpc[key as keyof typeof trpc][mutation as any].mutationOptions(); + + // 使用 TanStack Query 的 useMutation 创建 mutation + return useMutation({ + ...mutationOptions, + onSuccess: (data, variables, context) => { + // 调用原始配置的 onSuccess 回调(如果有) + mutationOptions.onSuccess?.(data as any, variables as any, context); + + // 失效指定实体的缓存 + queryClient.invalidateQueries({ queryKey: [key] }); + + // 调用用户自定义的 onSuccess 回调 + options?.[mutation]?.onSuccess?.(data as any, variables as any, context); + }, + }) as MutationResult; + }; + + // 返回包含多个 mutation 函数的对象 + return { + create: createMutationHandler("create"), + createCourse: createMutationHandler("createCourse"), + update: createMutationHandler("update"), + deleteMany: createMutationHandler("deleteMany"), + softDeleteByIds: createMutationHandler("softDeleteByIds"), + restoreByIds: createMutationHandler("restoreByIds"), + updateOrder: createMutationHandler("updateOrder"), + updateOrderByIds: createMutationHandler("updateOrderByIds"), + }; +} diff --git a/packages/client/src/api/index.ts b/packages/client/src/api/index.ts new file mode 100755 index 0000000..496f94e --- /dev/null +++ b/packages/client/src/api/index.ts @@ -0,0 +1,3 @@ +export * from "./utils" +export * from "./hooks" +export * from "./trpc" \ No newline at end of file diff --git a/packages/client/src/api/trpc.ts b/packages/client/src/api/trpc.ts new file mode 100755 index 0000000..e4b46f0 --- /dev/null +++ b/packages/client/src/api/trpc.ts @@ -0,0 +1,8 @@ +import { AppRouter } from "@repo/backend/trpc" +import { inferReactQueryProcedureOptions } from "@trpc/react-query"; +import { inferRouterInputs, inferRouterOutputs } from "@trpc/server"; +import { createTRPCContext } from '@trpc/tanstack-react-query'; +export type ReactQueryOptions = inferReactQueryProcedureOptions; +export type RouterInputs = inferRouterInputs; +export type RouterOutputs = inferRouterOutputs; +export const { TRPCProvider, useTRPC, useTRPCClient } = createTRPCContext(); \ No newline at end of file diff --git a/packages/client/src/api/utils.ts b/packages/client/src/api/utils.ts new file mode 100755 index 0000000..346969d --- /dev/null +++ b/packages/client/src/api/utils.ts @@ -0,0 +1,62 @@ +import { QueryClient } from "@tanstack/react-query"; +import { getQueryKey } from "@trpc/react-query"; + +/** + * 根据查询客户端缓存生成唯一数据列表的函数。 + * + * @template T - 数据类型 + * @param {QueryClient} client - 查询客户端实例 + * @param {any} trpcQueryKey - 用于获取查询键的参数 + * @param {string} uniqueField - 唯一字段的名称,默认为 'id' + * @returns {T[]} - 返回唯一的数据列表 + */ +export function getCacheDataFromQuery>(client: QueryClient, trpcQueryKey: any, uniqueField: string = 'id'): T[] { + // 获取查询缓存数据 + const cacheData = client.getQueriesData({ queryKey: getQueryKey(trpcQueryKey) }); + // 提取并整理缓存数据 + const data = cacheData + .flatMap(cache => cache.slice(1)) + .flat() + .filter(item => item !== undefined) as T[]; + // console.log('cacheData', cacheData) + // console.log('data', data) + // 使用 Map 进行去重 + const uniqueDataMap = new Map(); + data.forEach((item: T) => { + if (item && item[uniqueField] !== undefined) { + uniqueDataMap.set(item[uniqueField], item); + } + }); + + // 转换为数组返回唯一的数据列表 + return Array.from(uniqueDataMap.values()); +} + +/** + * 查找唯一数据列表中的匹配对象。 + * + * @template T - 数据类型 + * @param {T[]} uniqueData - 唯一数据列表 + * @param {string} key - 唯一字段的键值 + * @param {string} uniqueField - 唯一字段的名称,默认为 'id' + * @returns {T | undefined} - 返回匹配的对象,如果没有找到则返回 undefined + */ +export function findDataByKey>(uniqueData: T[], key: string | number, uniqueField: string = 'id'): T | undefined { + return uniqueData.find(item => item[uniqueField] === key); +} + +/** + * 综合使用生成唯一数据和查找数据的功能。 + * + * @template T - 数据类型 + * @param {QueryClient} client - 查询客户端实例 + * @param {any} trpcQueryKey - 用于获取查询键的参数 + * @param {string} key - 唯一字段的键值 + * @param {string} uniqueField - 唯一字段的名称,默认为 'id' + * @returns {T | undefined} - 返回匹配的对象,如果没有找到则返回 undefined + */ +export function findQueryData>(client: QueryClient, trpcQueryKey: any, key: string | number, uniqueField: string = 'id'): T | undefined { + const uniqueData = getCacheDataFromQuery(client, trpcQueryKey, uniqueField); + return findDataByKey(uniqueData, key, uniqueField); +} + diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts new file mode 100755 index 0000000..e1a7166 --- /dev/null +++ b/packages/client/src/index.ts @@ -0,0 +1 @@ +export * from "./api" diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json new file mode 100644 index 0000000..91b3139 --- /dev/null +++ b/packages/client/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "@repo/typescript-config/base.json", + "compilerOptions": { + "target": "es2022", + "module": "es2022", + "allowJs": true, + "esModuleInterop": true, + "lib": ["dom", "es2022"], + "jsx": "react-jsx", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "dist", + "moduleResolution": "node", + "incremental": true, + "strict": true, + "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo", + "useDefineForClassFields": false, + "paths": { + "@repo/backend/*": ["../../apps/backend/src/*"] + } + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/db/.env.example b/packages/db/.env.example new file mode 100755 index 0000000..8183f56 --- /dev/null +++ b/packages/db/.env.example @@ -0,0 +1 @@ +DATABASE_URL="postgresql://root:Letusdoit000@localhost:5432/app?schema=public" \ No newline at end of file diff --git a/packages/db/package.json b/packages/db/package.json new file mode 100755 index 0000000..439ca52 --- /dev/null +++ b/packages/db/package.json @@ -0,0 +1,33 @@ +{ + "name": "@repo/db", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "private": true, + "scripts": { + "db:migrate": "prisma migrate dev --skip-generate", + "db:deploy": "prisma migrate deploy", + "db:generate": "prisma generate", + "db:push": "prisma db push", + "db:seed": "tsx src/seed.ts", + "format": "prisma format", + "studio": "prisma studio" + }, + "dependencies": { + "@prisma/client": "^6.6.0" + }, + "peerDependencies": { + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/node": "^20.3.1", + "concurrently": "^8.0.0", + "prisma": "^6.6.0", + "rimraf": "^6.0.1", + "ts-node": "^10.9.1", + "tsup": "^8.3.5", + "tsx": "^4.19.4", + "typescript": "^5.5.4" + } +} \ No newline at end of file diff --git a/packages/db/prisma/migrations/20250516084829_init/migration.sql b/packages/db/prisma/migrations/20250516084829_init/migration.sql new file mode 100644 index 0000000..b5ff94f --- /dev/null +++ b/packages/db/prisma/migrations/20250516084829_init/migration.sql @@ -0,0 +1,244 @@ +-- CreateTable +CREATE TABLE "users" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "password" TEXT, + "salt" TEXT, + "phone" TEXT, + "email" TEXT NOT NULL, + "avatar" TEXT, + "is_system" BOOLEAN, + "is_admin" BOOLEAN, + "last_sign_time" TIMESTAMP(3), + "deactivated_time" TIMESTAMP(3), + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted_time" TIMESTAMP(3), + "last_modified_time" TIMESTAMP(3), + + CONSTRAINT "users_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "attachments" ( + "id" TEXT NOT NULL, + "token" TEXT NOT NULL, + "hash" TEXT NOT NULL, + "size" INTEGER NOT NULL, + "mimetype" TEXT NOT NULL, + "path" TEXT NOT NULL, + "width" INTEGER, + "height" INTEGER, + "deleted_time" TIMESTAMP(3), + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "last_modified_by" TEXT, + "thumbnail_path" TEXT, + + CONSTRAINT "attachments_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "notification" ( + "id" TEXT NOT NULL, + "from_user_id" TEXT NOT NULL, + "to_user_id" TEXT NOT NULL, + "type" TEXT NOT NULL, + "message" TEXT NOT NULL, + "url_path" TEXT, + "is_read" BOOLEAN NOT NULL DEFAULT false, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + + CONSTRAINT "notification_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "setting" ( + "instance_id" TEXT NOT NULL, + "disallow_sign_up" BOOLEAN, + "disallow_space_creation" BOOLEAN, + "disallow_space_invitation" BOOLEAN, + "enable_email_verification" BOOLEAN, + "ai_config" TEXT, + "brand_name" TEXT, + "brand_logo" TEXT, + + CONSTRAINT "setting_pkey" PRIMARY KEY ("instance_id") +); + +-- CreateTable +CREATE TABLE "trash" ( + "id" TEXT NOT NULL, + "resource_type" TEXT NOT NULL, + "resource_id" TEXT NOT NULL, + "parent_id" TEXT, + "deleted_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted_by" TEXT NOT NULL, + + CONSTRAINT "trash_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "user_last_visit" ( + "id" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "resource_type" TEXT NOT NULL, + "resource_id" TEXT NOT NULL, + "parent_resource_id" TEXT NOT NULL, + "last_visit_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "user_last_visit_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_clients" ( + "id" TEXT NOT NULL, + "client_id" TEXT NOT NULL, + "client_secret" TEXT, + "client_name" TEXT NOT NULL, + "client_uri" TEXT, + "logo_uri" TEXT, + "contacts" TEXT[], + "redirect_uris" TEXT[], + "post_logout_redirect_uris" TEXT[], + "token_endpoint_auth_method" TEXT NOT NULL, + "grant_types" TEXT[], + "response_types" TEXT[], + "scope" TEXT NOT NULL, + "jwks_uri" TEXT, + "jwks" TEXT, + "policy_uri" TEXT, + "tos_uri" TEXT, + "require_pkce" BOOLEAN NOT NULL DEFAULT false, + "active" BOOLEAN NOT NULL DEFAULT true, + "created_by" TEXT, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "last_modified_time" TIMESTAMP(3), + + CONSTRAINT "oidc_clients_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_consents" ( + "id" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "client_id" TEXT NOT NULL, + "scope" TEXT NOT NULL, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expires_at" TIMESTAMP(3), + + CONSTRAINT "oidc_consents_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_authorization_codes" ( + "id" TEXT NOT NULL, + "code" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "client_id" TEXT NOT NULL, + "scope" TEXT NOT NULL, + "redirect_uri" TEXT NOT NULL, + "code_challenge" TEXT, + "code_challenge_method" TEXT, + "nonce" TEXT, + "auth_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expires_at" TIMESTAMP(3) NOT NULL, + "used" BOOLEAN NOT NULL DEFAULT false, + + CONSTRAINT "oidc_authorization_codes_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_tokens" ( + "id" TEXT NOT NULL, + "token" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "client_id" TEXT NOT NULL, + "token_type" TEXT NOT NULL, + "scope" TEXT NOT NULL, + "expires_at" TIMESTAMP(3) NOT NULL, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "is_revoked" BOOLEAN NOT NULL DEFAULT false, + "parent_id" TEXT, + + CONSTRAINT "oidc_tokens_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_sessions" ( + "id" TEXT NOT NULL, + "session_id" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "expires_at" TIMESTAMP(3) NOT NULL, + "last_active" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "device_info" TEXT, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "last_modified_time" TIMESTAMP(3), + + CONSTRAINT "oidc_sessions_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "oidc_key_pairs" ( + "id" TEXT NOT NULL, + "kid" TEXT NOT NULL, + "private_key" TEXT NOT NULL, + "public_key" TEXT NOT NULL, + "algorithm" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "created_time" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expires_at" TIMESTAMP(3), + + CONSTRAINT "oidc_key_pairs_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "users_phone_key" ON "users"("phone"); + +-- CreateIndex +CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "attachments_token_key" ON "attachments"("token"); + +-- CreateIndex +CREATE INDEX "notification_to_user_id_is_read_created_time_idx" ON "notification"("to_user_id", "is_read", "created_time"); + +-- CreateIndex +CREATE UNIQUE INDEX "trash_resource_type_resource_id_key" ON "trash"("resource_type", "resource_id"); + +-- CreateIndex +CREATE INDEX "user_last_visit_user_id_resource_type_idx" ON "user_last_visit"("user_id", "resource_type"); + +-- CreateIndex +CREATE UNIQUE INDEX "user_last_visit_user_id_resource_type_parent_resource_id_key" ON "user_last_visit"("user_id", "resource_type", "parent_resource_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_clients_client_id_key" ON "oidc_clients"("client_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_consents_user_id_client_id_key" ON "oidc_consents"("user_id", "client_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_authorization_codes_code_key" ON "oidc_authorization_codes"("code"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_tokens_token_key" ON "oidc_tokens"("token"); + +-- CreateIndex +CREATE INDEX "oidc_tokens_user_id_token_type_is_revoked_idx" ON "oidc_tokens"("user_id", "token_type", "is_revoked"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_sessions_session_id_key" ON "oidc_sessions"("session_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "oidc_key_pairs_kid_key" ON "oidc_key_pairs"("kid"); + +-- AddForeignKey +ALTER TABLE "oidc_consents" ADD CONSTRAINT "oidc_consents_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "oidc_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "oidc_authorization_codes" ADD CONSTRAINT "oidc_authorization_codes_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "oidc_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "oidc_tokens" ADD CONSTRAINT "oidc_tokens_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "oidc_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/packages/db/prisma/migrations/migration_lock.toml b/packages/db/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..fbffa92 --- /dev/null +++ b/packages/db/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma new file mode 100755 index 0000000..fb66da0 --- /dev/null +++ b/packages/db/prisma/schema.prisma @@ -0,0 +1,218 @@ +generator client { + provider = "prisma-client-js" + binaryTargets = ["native", "debian-openssl-1.1.x"] + output = "../generated/prisma" +} + +datasource db { + provider = "postgres" + url = env("DATABASE_URL") +} + +model User { + id String @id @default(cuid()) + name String + password String? + salt String? + phone String? @unique + email String @unique + avatar String? + isSystem Boolean? @map("is_system") + isAdmin Boolean? @map("is_admin") + lastSignTime DateTime? @map("last_sign_time") + deactivatedTime DateTime? @map("deactivated_time") + createdTime DateTime @default(now()) @map("created_time") + deletedTime DateTime? @map("deleted_time") + lastModifiedTime DateTime? @updatedAt @map("last_modified_time") + + @@map("users") +} + +model Attachments { + id String @id @default(cuid()) + token String @unique + hash String + size Int + mimetype String + path String + width Int? + height Int? + deletedTime DateTime? @map("deleted_time") + createdTime DateTime @default(now()) @map("created_time") + createdBy String @map("created_by") + lastModifiedBy String? @map("last_modified_by") + thumbnailPath String? @map("thumbnail_path") + + @@map("attachments") +} + +model Notification { + id String @id @default(cuid()) + fromUserId String @map("from_user_id") + toUserId String @map("to_user_id") + type String @map("type") + message String @map("message") + urlPath String? @map("url_path") + isRead Boolean @default(false) @map("is_read") + createdTime DateTime @default(now()) @map("created_time") + createdBy String @map("created_by") + + @@index([toUserId, isRead, createdTime]) + @@map("notification") +} + +model Setting { + instanceId String @id @default(cuid()) @map("instance_id") + disallowSignUp Boolean? @map("disallow_sign_up") + disallowSpaceCreation Boolean? @map("disallow_space_creation") + disallowSpaceInvitation Boolean? @map("disallow_space_invitation") + enableEmailVerification Boolean? @map("enable_email_verification") + aiConfig String? @map("ai_config") + brandName String? @map("brand_name") + brandLogo String? @map("brand_logo") + + @@map("setting") +} + +model Trash { + id String @id @default(cuid()) + resourceType String @map("resource_type") + resourceId String @map("resource_id") + parentId String? @map("parent_id") + deletedTime DateTime @default(now()) @map("deleted_time") + deletedBy String @map("deleted_by") + + @@unique([resourceType, resourceId]) + @@map("trash") +} + +model UserLastVisit { + id String @id @default(cuid()) + userId String @map("user_id") + resourceType String @map("resource_type") + resourceId String @map("resource_id") + parentResourceId String @map("parent_resource_id") + lastVisitTime DateTime @default(now()) @map("last_visit_time") + + @@unique([userId, resourceType, parentResourceId]) + @@index([userId, resourceType]) + @@map("user_last_visit") +} + +// OIDC 客户端相关模型 +model OidcClient { + id String @id @default(cuid()) + clientId String @unique @map("client_id") + clientSecret String? @map("client_secret") + clientName String @map("client_name") + clientUri String? @map("client_uri") + logoUri String? @map("logo_uri") + contacts String[] + redirectUris String[] @map("redirect_uris") + postLogoutRedirectUris String[] @map("post_logout_redirect_uris") + tokenEndpointAuthMethod String @map("token_endpoint_auth_method") + grantTypes String[] @map("grant_types") + responseTypes String[] @map("response_types") + scope String + jwksUri String? @map("jwks_uri") + jwks String? + policyUri String? @map("policy_uri") + tosUri String? @map("tos_uri") + requirePkce Boolean @default(false) @map("require_pkce") + active Boolean @default(true) + createdBy String? @map("created_by") + createdTime DateTime @default(now()) @map("created_time") + lastModifiedTime DateTime? @updatedAt @map("last_modified_time") + + // 关联模型 + consents OidcConsent[] + authorizationCodes OidcCode[] + tokens OidcToken[] + + @@map("oidc_clients") +} + +// 用户同意记录 +model OidcConsent { + id String @id @default(cuid()) + userId String @map("user_id") + clientId String @map("client_id") + scope String + createdTime DateTime @default(now()) @map("created_time") + expiresAt DateTime? @map("expires_at") + + // 关联 + client OidcClient @relation(fields: [clientId], references: [id], onDelete: Cascade) + + @@unique([userId, clientId]) + @@map("oidc_consents") +} + +// 授权码 +model OidcCode { + id String @id @default(cuid()) + code String @unique + userId String @map("user_id") + clientId String @map("client_id") + scope String + redirectUri String @map("redirect_uri") + codeChallenge String? @map("code_challenge") + codeChallengeMethod String? @map("code_challenge_method") + nonce String? + authTime DateTime @default(now()) @map("auth_time") + expiresAt DateTime @map("expires_at") + used Boolean @default(false) + + // 关联 + client OidcClient @relation(fields: [clientId], references: [id], onDelete: Cascade) + + @@map("oidc_authorization_codes") +} + +// 统一令牌表(合并access和refresh token) +model OidcToken { + id String @id @default(cuid()) + token String @unique + userId String @map("user_id") + clientId String @map("client_id") + tokenType String @map("token_type") // "access" 或 "refresh" + scope String + expiresAt DateTime @map("expires_at") + createdTime DateTime @default(now()) @map("created_time") + isRevoked Boolean @default(false) @map("is_revoked") + parentId String? @map("parent_id") // 用于关联refresh token和对应的access token + + // 关联 + client OidcClient @relation(fields: [clientId], references: [id], onDelete: Cascade) + + @@index([userId, tokenType, isRevoked]) + @@map("oidc_tokens") +} + +// Session管理 +model OidcSession { + id String @id @default(cuid()) + sessionId String @unique @map("session_id") + userId String @map("user_id") + expiresAt DateTime @map("expires_at") + lastActive DateTime @default(now()) @map("last_active") + deviceInfo String? @map("device_info") + createdTime DateTime @default(now()) @map("created_time") + lastModifiedTime DateTime? @updatedAt @map("last_modified_time") + + @@map("oidc_sessions") +} + +// 供应商的密钥对 +model OidcKeyPair { + id String @id @default(cuid()) + kid String @unique + privateKey String @map("private_key") + publicKey String @map("public_key") + algorithm String + active Boolean @default(true) + createdTime DateTime @default(now()) @map("created_time") + expiresAt DateTime? @map("expires_at") + + @@map("oidc_key_pairs") +} diff --git a/packages/db/src/client.ts b/packages/db/src/client.ts new file mode 100755 index 0000000..92cb5aa --- /dev/null +++ b/packages/db/src/client.ts @@ -0,0 +1,8 @@ +import { PrismaClient } from "../generated/prisma"; + +const globalForPrisma = global as unknown as { prisma: PrismaClient }; + +export const prisma = + globalForPrisma.prisma || new PrismaClient(); + +if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma; \ No newline at end of file diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts new file mode 100755 index 0000000..4ac24ae --- /dev/null +++ b/packages/db/src/index.ts @@ -0,0 +1,2 @@ +export * from "./client" +export * from "../generated/prisma" // exports generated types from prisma \ No newline at end of file diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json new file mode 100755 index 0000000..5244c89 --- /dev/null +++ b/packages/db/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "esnext", + "lib": [ + "DOM", + "es2022" + ], + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "moduleResolution": "node", + "removeComments": true, + "skipLibCheck": true, + "strict": true, + "isolatedModules": true, + "esModuleInterop": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": false, + "noFallthroughCasesInSwitch": false, + "noUncheckedIndexedAccess": false, + "noImplicitOverride": false, + "noPropertyAccessFromIndexSignature": false, + "emitDeclarationOnly": true, + "outDir": "dist", + "incremental": true, + "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo" + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "**/*.test.ts", + "**/*.spec.ts", + "**/__tests__" + ] +} \ No newline at end of file diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md index 4a414ab..43e9c18 100644 --- a/packages/eslint-config/README.md +++ b/packages/eslint-config/README.md @@ -1,3 +1,3 @@ -# `@workspace/eslint-config` +# `@repo/eslint-config` Shared eslint configuration for the workspace. diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 2723215..81f5c4a 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,5 +1,5 @@ { - "name": "@workspace/eslint-config", + "name": "@repo/eslint-config", "version": "0.0.0", "type": "module", "private": true, diff --git a/packages/icons/.gitignore b/packages/icons/.gitignore new file mode 100644 index 0000000..07de4a5 --- /dev/null +++ b/packages/icons/.gitignore @@ -0,0 +1,18 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# build +/dist +/build +/storybook-static + +# dependencies +node_modules + +# testing +/coverage + +# misc +.DS_Store +*.pem + +.env diff --git a/packages/icons/.idea/icons.iml b/packages/icons/.idea/icons.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/packages/icons/.idea/icons.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/icons/.idea/modules.xml b/packages/icons/.idea/modules.xml new file mode 100644 index 0000000..1a3515b --- /dev/null +++ b/packages/icons/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/icons/LICENSE b/packages/icons/LICENSE new file mode 100644 index 0000000..a61665c --- /dev/null +++ b/packages/icons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-2025 Teable, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/icons/package.json b/packages/icons/package.json new file mode 100644 index 0000000..b3129a8 --- /dev/null +++ b/packages/icons/package.json @@ -0,0 +1,58 @@ +{ + "name": "@repo/icons", + "version": "1.7.0", + "license": "MIT", + "homepage": "https://github.com/teableio/teable", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/teableio/teable", + "directory": "packages/icons" + }, + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc", + "clean": "rimraf ./dist ./build ./tsconfig.tsbuildinfo ./node_modules/.cache", + "dev": "rm -rf dist && tsc --watch", + "test": "echo \"Error: no test specified\"", + "lint": "eslint . --ext .ts,.tsx,.js,.jsx,.cjs,.mjs,.mdx --cache --cache-location ../../.cache/eslint/icons.eslintcache", + "typecheck": "tsc --project ./tsconfig.json --noEmit", + "generate": "rm -rf src/components && node ./scripts/generate.mjs" + }, + "peerDependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-prettier": "8.1.0", + "@svgr/plugin-svgo": "8.1.0", + "@types/fs-extra": "11.0.4", + "@types/node": "20.9.0", + "@types/react": "18.2.45", + "axios": "1.7.7", + "chalk": "5.3.0", + "dotenv": "16.4.5", + "eslint": "8.57.0", + "figma-js": "1.16.0", + "fs-extra": "11.2.0", + "lodash": "4.17.21", + "rimraf": "5.0.5", + "typescript": "5.4.3" + } +} diff --git a/packages/icons/scripts/generate.mjs b/packages/icons/scripts/generate.mjs new file mode 100644 index 0000000..747631b --- /dev/null +++ b/packages/icons/scripts/generate.mjs @@ -0,0 +1,155 @@ +import path from 'path'; +import { transform } from '@svgr/core'; +import axios from 'axios'; +import chalk from 'chalk'; +import dotenv from 'dotenv'; +import fs from 'fs-extra'; +import _ from 'lodash'; +import * as Figma from 'figma-js'; + +dotenv.config(); + +const componentsDir = 'src/components'; + +// Add .env file +const FIGMA_API_TOKEN = process.env.FIGMA_API_TOKEN; +const FIGMA_FILE_ID = process.env.FIGMA_FILE_ID; +const FIGMA_CANVAS = process.env.FIGMA_CANVAS; + +if (!FIGMA_API_TOKEN) { + throw new Error('Missing environment variable FIGMA_API_TOKEN'); +} + +if (!FIGMA_FILE_ID) { + throw new Error('Missing environment variable FIGMA_FILE_ID'); +} + +if (!FIGMA_CANVAS) { + throw new Error('Missing environment variable FIGMA_CANVAS'); +} + +const figmaApi = Figma.Client({ personalAccessToken: FIGMA_API_TOKEN }); + +const getSvgs = async ({ fileId, canvas, group }) => { + const file = await figmaApi.file(fileId); + const { document } = file.data; + const iconsNode = document.children.find(({ name }) => name === canvas); + if (!iconsNode) { + throw new Error(`Couldn't find page with name ${canvas}`); + } + const usingIconNodes = iconsNode.children.find(({ name }) => name === group)?.children || []; + const usingNodeId = usingIconNodes.map(({ id }) => id); + const svgs = await figmaApi.fileImages(fileId, { + format: 'svg', + ids: usingNodeId, + }); + return usingIconNodes.map(({ id, name }) => ({ id, name, url: svgs.data.images[id] })); +}; + +const downloadSVGsData = async (data, batchSize = 20, delayBetweenBatches = 500) => { + const results = []; + const batchCount = Math.ceil(data.length / batchSize); + + for (let i = 0; i < batchCount; i++) { + const batchData = data.slice(i * batchSize, (i + 1) * batchSize); + + console.log(`Processing batch ${i + 1}/${batchCount}, containing ${batchData.length} requests`); + + const batchResults = await Promise.all( + batchData.map(async (dataItem) => { + try { + const downloadedSvg = await axios.get(dataItem.url); + return { + ...dataItem, + data: downloadedSvg.data, + success: true, + }; + } catch (error) { + console.error(`Failed to download ${dataItem.url}:`, error.message); + return { + ...dataItem, + success: false, + }; + } + }) + ); + + results.push(...batchResults); + + if (i < batchCount - 1) { + await new Promise((resolve) => setTimeout(resolve, delayBetweenBatches)); + } + } + + return results; +}; + +const transformReactComponent = (svgList) => { + if (!fs.existsSync(componentsDir)) { + fs.mkdirSync(componentsDir); + } + svgList.forEach((svg) => { + if (!svg.success) return; + const svgCode = svg.data; + const svgName = svg.name.split('/').pop(); + const camelCaseInput = _.camelCase(svgName); + const componentName = camelCaseInput.charAt(0).toUpperCase() + camelCaseInput.slice(1); + const componentFileName = `${componentName}.tsx`; + + // Converts SVG code into React code using SVGR library + const componentCode = transform.sync( + svgCode, + { + typescript: true, + icon: true, + replaceAttrValues: { + '#000': 'currentColor', + }, + plugins: [ + // Clean SVG files using SVGO + '@svgr/plugin-svgo', + // Generate JSX + '@svgr/plugin-jsx', + // Format the result using Prettier + '@svgr/plugin-prettier', + ], + }, + { componentName } + ); + // 6. Write generated component to file system + fs.outputFileSync(path.resolve(componentsDir, componentFileName), componentCode); + // fs.outputFileSync(path.resolve('src/icons', `${svgName}.svg`), svg.data); + }); +}; + +const genIndexContent = () => { + let indexContent = ''; + const indexPath = path.resolve('src/index.ts'); + + fs.readdirSync(componentsDir).forEach((componentFileName) => { + // Convert name to pascal case + const componentName = componentFileName.split('.')[0]; + + // Export statement + const componentExport = `export { default as ${componentName} } from './components/${componentName}';\n`; + + indexContent += componentExport; + }); + + // Write the content to file system + fs.writeFileSync(indexPath, indexContent); +}; + +const generate = async () => { + console.log(chalk.magentaBright('-> Fetching icons metadata')); + const svgs = await getSvgs({ fileId: FIGMA_FILE_ID, canvas: FIGMA_CANVAS, group: 'using' }); + console.log(chalk.blueBright('-> Downloading SVG code')); + const svgsData = await downloadSVGsData(svgs); + console.log(chalk.cyanBright('-> Converting to React components')); + transformReactComponent(svgsData); + console.log(chalk.yellowBright('-> Writing exports components')); + genIndexContent(); + console.log(chalk.greenBright('-> All done! ✅')); +}; + +generate(); diff --git a/packages/icons/src/components/A.tsx b/packages/icons/src/components/A.tsx new file mode 100644 index 0000000..1813661 --- /dev/null +++ b/packages/icons/src/components/A.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const A = (props: SVGProps) => ( + + + +); +export default A; diff --git a/packages/icons/src/components/Admin.tsx b/packages/icons/src/components/Admin.tsx new file mode 100644 index 0000000..0272e51 --- /dev/null +++ b/packages/icons/src/components/Admin.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Admin = (props: SVGProps) => ( + + + +); +export default Admin; diff --git a/packages/icons/src/components/AlertCircle.tsx b/packages/icons/src/components/AlertCircle.tsx new file mode 100644 index 0000000..8120f48 --- /dev/null +++ b/packages/icons/src/components/AlertCircle.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const AlertCircle = (props: SVGProps) => ( + + + +); +export default AlertCircle; diff --git a/packages/icons/src/components/AlertTriangle.tsx b/packages/icons/src/components/AlertTriangle.tsx new file mode 100644 index 0000000..80534a1 --- /dev/null +++ b/packages/icons/src/components/AlertTriangle.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const AlertTriangle = (props: SVGProps) => ( + + + +); +export default AlertTriangle; diff --git a/packages/icons/src/components/Anthropic.tsx b/packages/icons/src/components/Anthropic.tsx new file mode 100644 index 0000000..776e449 --- /dev/null +++ b/packages/icons/src/components/Anthropic.tsx @@ -0,0 +1,26 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Anthropic = (props: SVGProps) => ( + + + + + + + + + + + +); +export default Anthropic; diff --git a/packages/icons/src/components/Apple.tsx b/packages/icons/src/components/Apple.tsx new file mode 100644 index 0000000..10dca7e --- /dev/null +++ b/packages/icons/src/components/Apple.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Apple = (props: SVGProps) => ( + + + + +); +export default Apple; diff --git a/packages/icons/src/components/Array.tsx b/packages/icons/src/components/Array.tsx new file mode 100644 index 0000000..8c7909a --- /dev/null +++ b/packages/icons/src/components/Array.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Array = (props: SVGProps) => ( + + + +); +export default Array; diff --git a/packages/icons/src/components/ArrowDown.tsx b/packages/icons/src/components/ArrowDown.tsx new file mode 100644 index 0000000..2c882eb --- /dev/null +++ b/packages/icons/src/components/ArrowDown.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowDown = (props: SVGProps) => ( + + + +); +export default ArrowDown; diff --git a/packages/icons/src/components/ArrowLeft.tsx b/packages/icons/src/components/ArrowLeft.tsx new file mode 100644 index 0000000..642ac73 --- /dev/null +++ b/packages/icons/src/components/ArrowLeft.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowLeft = (props: SVGProps) => ( + + + +); +export default ArrowLeft; diff --git a/packages/icons/src/components/ArrowRight.tsx b/packages/icons/src/components/ArrowRight.tsx new file mode 100644 index 0000000..7a75c14 --- /dev/null +++ b/packages/icons/src/components/ArrowRight.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowRight = (props: SVGProps) => ( + + + +); +export default ArrowRight; diff --git a/packages/icons/src/components/ArrowUp.tsx b/packages/icons/src/components/ArrowUp.tsx new file mode 100644 index 0000000..f566127 --- /dev/null +++ b/packages/icons/src/components/ArrowUp.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowUp = (props: SVGProps) => ( + + + +); +export default ArrowUp; diff --git a/packages/icons/src/components/ArrowUpDown.tsx b/packages/icons/src/components/ArrowUpDown.tsx new file mode 100644 index 0000000..5dddae7 --- /dev/null +++ b/packages/icons/src/components/ArrowUpDown.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowUpDown = (props: SVGProps) => ( + + + +); +export default ArrowUpDown; diff --git a/packages/icons/src/components/ArrowUpRight.tsx b/packages/icons/src/components/ArrowUpRight.tsx new file mode 100644 index 0000000..c265e37 --- /dev/null +++ b/packages/icons/src/components/ArrowUpRight.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ArrowUpRight = (props: SVGProps) => ( + + + +); +export default ArrowUpRight; diff --git a/packages/icons/src/components/Audio.tsx b/packages/icons/src/components/Audio.tsx new file mode 100644 index 0000000..2672e45 --- /dev/null +++ b/packages/icons/src/components/Audio.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Audio = (props: SVGProps) => ( + + + + +); +export default Audio; diff --git a/packages/icons/src/components/Azure.tsx b/packages/icons/src/components/Azure.tsx new file mode 100644 index 0000000..6cc4226 --- /dev/null +++ b/packages/icons/src/components/Azure.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Azure = (props: SVGProps) => ( + + + +); +export default Azure; diff --git a/packages/icons/src/components/BarChart2.tsx b/packages/icons/src/components/BarChart2.tsx new file mode 100644 index 0000000..9ad3f71 --- /dev/null +++ b/packages/icons/src/components/BarChart2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const BarChart2 = (props: SVGProps) => ( + + + +); +export default BarChart2; diff --git a/packages/icons/src/components/Bell.tsx b/packages/icons/src/components/Bell.tsx new file mode 100644 index 0000000..beb5527 --- /dev/null +++ b/packages/icons/src/components/Bell.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Bell = (props: SVGProps) => ( + + + +); +export default Bell; diff --git a/packages/icons/src/components/Boolean.tsx b/packages/icons/src/components/Boolean.tsx new file mode 100644 index 0000000..cfb846d --- /dev/null +++ b/packages/icons/src/components/Boolean.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Boolean = (props: SVGProps) => ( + + + + + + + + + + +); +export default Boolean; diff --git a/packages/icons/src/components/Building2.tsx b/packages/icons/src/components/Building2.tsx new file mode 100644 index 0000000..499b339 --- /dev/null +++ b/packages/icons/src/components/Building2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Building2 = (props: SVGProps) => ( + + + +); +export default Building2; diff --git a/packages/icons/src/components/Calendar.tsx b/packages/icons/src/components/Calendar.tsx new file mode 100644 index 0000000..d07ede2 --- /dev/null +++ b/packages/icons/src/components/Calendar.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Calendar = (props: SVGProps) => ( + + + +); +export default Calendar; diff --git a/packages/icons/src/components/Check.tsx b/packages/icons/src/components/Check.tsx new file mode 100644 index 0000000..b0103b6 --- /dev/null +++ b/packages/icons/src/components/Check.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Check = (props: SVGProps) => ( + + + +); +export default Check; diff --git a/packages/icons/src/components/CheckCircle2.tsx b/packages/icons/src/components/CheckCircle2.tsx new file mode 100644 index 0000000..445ed2e --- /dev/null +++ b/packages/icons/src/components/CheckCircle2.tsx @@ -0,0 +1,29 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const CheckCircle2 = (props: SVGProps) => ( + + + + +); +export default CheckCircle2; diff --git a/packages/icons/src/components/CheckSquare.tsx b/packages/icons/src/components/CheckSquare.tsx new file mode 100644 index 0000000..08e546a --- /dev/null +++ b/packages/icons/src/components/CheckSquare.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const CheckSquare = (props: SVGProps) => ( + + + +); +export default CheckSquare; diff --git a/packages/icons/src/components/Checked.tsx b/packages/icons/src/components/Checked.tsx new file mode 100644 index 0000000..0654c93 --- /dev/null +++ b/packages/icons/src/components/Checked.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Checked = (props: SVGProps) => ( + + + +); +export default Checked; diff --git a/packages/icons/src/components/ChevronDown.tsx b/packages/icons/src/components/ChevronDown.tsx new file mode 100644 index 0000000..02bff99 --- /dev/null +++ b/packages/icons/src/components/ChevronDown.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronDown = (props: SVGProps) => ( + + + +); +export default ChevronDown; diff --git a/packages/icons/src/components/ChevronLeft.tsx b/packages/icons/src/components/ChevronLeft.tsx new file mode 100644 index 0000000..1d6661d --- /dev/null +++ b/packages/icons/src/components/ChevronLeft.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronLeft = (props: SVGProps) => ( + + + +); +export default ChevronLeft; diff --git a/packages/icons/src/components/ChevronRight.tsx b/packages/icons/src/components/ChevronRight.tsx new file mode 100644 index 0000000..1e674ac --- /dev/null +++ b/packages/icons/src/components/ChevronRight.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronRight = (props: SVGProps) => ( + + + +); +export default ChevronRight; diff --git a/packages/icons/src/components/ChevronUp.tsx b/packages/icons/src/components/ChevronUp.tsx new file mode 100644 index 0000000..15336f6 --- /dev/null +++ b/packages/icons/src/components/ChevronUp.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronUp = (props: SVGProps) => ( + + + +); +export default ChevronUp; diff --git a/packages/icons/src/components/ChevronsLeft.tsx b/packages/icons/src/components/ChevronsLeft.tsx new file mode 100644 index 0000000..4720345 --- /dev/null +++ b/packages/icons/src/components/ChevronsLeft.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronsLeft = (props: SVGProps) => ( + + + +); +export default ChevronsLeft; diff --git a/packages/icons/src/components/ChevronsRight.tsx b/packages/icons/src/components/ChevronsRight.tsx new file mode 100644 index 0000000..6dc5373 --- /dev/null +++ b/packages/icons/src/components/ChevronsRight.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronsRight = (props: SVGProps) => ( + + + +); +export default ChevronsRight; diff --git a/packages/icons/src/components/ChevronsUpDown.tsx b/packages/icons/src/components/ChevronsUpDown.tsx new file mode 100644 index 0000000..a48c177 --- /dev/null +++ b/packages/icons/src/components/ChevronsUpDown.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ChevronsUpDown = (props: SVGProps) => ( + + + +); +export default ChevronsUpDown; diff --git a/packages/icons/src/components/Circle.tsx b/packages/icons/src/components/Circle.tsx new file mode 100644 index 0000000..ba20f62 --- /dev/null +++ b/packages/icons/src/components/Circle.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Circle = (props: SVGProps) => ( + + + +); +export default Circle; diff --git a/packages/icons/src/components/ClipboardList.tsx b/packages/icons/src/components/ClipboardList.tsx new file mode 100644 index 0000000..229235e --- /dev/null +++ b/packages/icons/src/components/ClipboardList.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ClipboardList = (props: SVGProps) => ( + + + + +); +export default ClipboardList; diff --git a/packages/icons/src/components/Clock4.tsx b/packages/icons/src/components/Clock4.tsx new file mode 100644 index 0000000..2d185c1 --- /dev/null +++ b/packages/icons/src/components/Clock4.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Clock4 = (props: SVGProps) => ( + + + + +); +export default Clock4; diff --git a/packages/icons/src/components/Code.tsx b/packages/icons/src/components/Code.tsx new file mode 100644 index 0000000..2482785 --- /dev/null +++ b/packages/icons/src/components/Code.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Code = (props: SVGProps) => ( + + + +); +export default Code; diff --git a/packages/icons/src/components/Code2.tsx b/packages/icons/src/components/Code2.tsx new file mode 100644 index 0000000..0b5e4ab --- /dev/null +++ b/packages/icons/src/components/Code2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Code2 = (props: SVGProps) => ( + + + +); +export default Code2; diff --git a/packages/icons/src/components/Cohere.tsx b/packages/icons/src/components/Cohere.tsx new file mode 100644 index 0000000..4453466 --- /dev/null +++ b/packages/icons/src/components/Cohere.tsx @@ -0,0 +1,33 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Cohere = (props: SVGProps) => ( + + + + + + + + + + + + +); +export default Cohere; diff --git a/packages/icons/src/components/Component.tsx b/packages/icons/src/components/Component.tsx new file mode 100644 index 0000000..86ea2b4 --- /dev/null +++ b/packages/icons/src/components/Component.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Component = (props: SVGProps) => ( + + + +); +export default Component; diff --git a/packages/icons/src/components/Condition.tsx b/packages/icons/src/components/Condition.tsx new file mode 100644 index 0000000..541ae16 --- /dev/null +++ b/packages/icons/src/components/Condition.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Condition = (props: SVGProps) => ( + + + +); +export default Condition; diff --git a/packages/icons/src/components/Copy.tsx b/packages/icons/src/components/Copy.tsx new file mode 100644 index 0000000..6ec3463 --- /dev/null +++ b/packages/icons/src/components/Copy.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Copy = (props: SVGProps) => ( + + + + +); +export default Copy; diff --git a/packages/icons/src/components/CreateRecord.tsx b/packages/icons/src/components/CreateRecord.tsx new file mode 100644 index 0000000..56011a3 --- /dev/null +++ b/packages/icons/src/components/CreateRecord.tsx @@ -0,0 +1,26 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const CreateRecord = (props: SVGProps) => ( + + + + + + + + + + + +); +export default CreateRecord; diff --git a/packages/icons/src/components/CreditCard.tsx b/packages/icons/src/components/CreditCard.tsx new file mode 100644 index 0000000..28a1f2a --- /dev/null +++ b/packages/icons/src/components/CreditCard.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const CreditCard = (props: SVGProps) => ( + + + +); +export default CreditCard; diff --git a/packages/icons/src/components/Database.tsx b/packages/icons/src/components/Database.tsx new file mode 100644 index 0000000..325dba5 --- /dev/null +++ b/packages/icons/src/components/Database.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Database = (props: SVGProps) => ( + + + + +); +export default Database; diff --git a/packages/icons/src/components/DeepThinking.tsx b/packages/icons/src/components/DeepThinking.tsx new file mode 100644 index 0000000..a908871 --- /dev/null +++ b/packages/icons/src/components/DeepThinking.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const DeepThinking = (props: SVGProps) => ( + + + + +); +export default DeepThinking; diff --git a/packages/icons/src/components/Deepseek.tsx b/packages/icons/src/components/Deepseek.tsx new file mode 100644 index 0000000..0a78d64 --- /dev/null +++ b/packages/icons/src/components/Deepseek.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Deepseek = (props: SVGProps) => ( + + + +); +export default Deepseek; diff --git a/packages/icons/src/components/DivideCircle.tsx b/packages/icons/src/components/DivideCircle.tsx new file mode 100644 index 0000000..69fc85e --- /dev/null +++ b/packages/icons/src/components/DivideCircle.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const DivideCircle = (props: SVGProps) => ( + + + + + + + + + + +); +export default DivideCircle; diff --git a/packages/icons/src/components/DivideSquare.tsx b/packages/icons/src/components/DivideSquare.tsx new file mode 100644 index 0000000..bbcc725 --- /dev/null +++ b/packages/icons/src/components/DivideSquare.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const DivideSquare = (props: SVGProps) => ( + + + + + + + + + + +); +export default DivideSquare; diff --git a/packages/icons/src/components/DollarSign.tsx b/packages/icons/src/components/DollarSign.tsx new file mode 100644 index 0000000..80e17f1 --- /dev/null +++ b/packages/icons/src/components/DollarSign.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const DollarSign = (props: SVGProps) => ( + + + +); +export default DollarSign; diff --git a/packages/icons/src/components/Download.tsx b/packages/icons/src/components/Download.tsx new file mode 100644 index 0000000..5f9f68e --- /dev/null +++ b/packages/icons/src/components/Download.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Download = (props: SVGProps) => ( + + + +); +export default Download; diff --git a/packages/icons/src/components/DraggableHandle.tsx b/packages/icons/src/components/DraggableHandle.tsx new file mode 100644 index 0000000..23770ac --- /dev/null +++ b/packages/icons/src/components/DraggableHandle.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const DraggableHandle = (props: SVGProps) => ( + + + + + + + + + + +); +export default DraggableHandle; diff --git a/packages/icons/src/components/Edit.tsx b/packages/icons/src/components/Edit.tsx new file mode 100644 index 0000000..61c7b13 --- /dev/null +++ b/packages/icons/src/components/Edit.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Edit = (props: SVGProps) => ( + + + + +); +export default Edit; diff --git a/packages/icons/src/components/Export.tsx b/packages/icons/src/components/Export.tsx new file mode 100644 index 0000000..6d06db1 --- /dev/null +++ b/packages/icons/src/components/Export.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Export = (props: SVGProps) => ( + + + +); +export default Export; diff --git a/packages/icons/src/components/Eye.tsx b/packages/icons/src/components/Eye.tsx new file mode 100644 index 0000000..bdd818d --- /dev/null +++ b/packages/icons/src/components/Eye.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Eye = (props: SVGProps) => ( + + + + +); +export default Eye; diff --git a/packages/icons/src/components/EyeOff.tsx b/packages/icons/src/components/EyeOff.tsx new file mode 100644 index 0000000..014f554 --- /dev/null +++ b/packages/icons/src/components/EyeOff.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const EyeOff = (props: SVGProps) => ( + + + + +); +export default EyeOff; diff --git a/packages/icons/src/components/File.tsx b/packages/icons/src/components/File.tsx new file mode 100644 index 0000000..3ee482e --- /dev/null +++ b/packages/icons/src/components/File.tsx @@ -0,0 +1,29 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const File = (props: SVGProps) => ( + + + + +); +export default File; diff --git a/packages/icons/src/components/FileAudio.tsx b/packages/icons/src/components/FileAudio.tsx new file mode 100644 index 0000000..3fd4238 --- /dev/null +++ b/packages/icons/src/components/FileAudio.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileAudio = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileAudio; diff --git a/packages/icons/src/components/FileCsv.tsx b/packages/icons/src/components/FileCsv.tsx new file mode 100644 index 0000000..b5b5476 --- /dev/null +++ b/packages/icons/src/components/FileCsv.tsx @@ -0,0 +1,37 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileCsv = (props: SVGProps) => ( + + + + + + + + + + + + + +); +export default FileCsv; diff --git a/packages/icons/src/components/FileDocument.tsx b/packages/icons/src/components/FileDocument.tsx new file mode 100644 index 0000000..b849a08 --- /dev/null +++ b/packages/icons/src/components/FileDocument.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileDocument = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileDocument; diff --git a/packages/icons/src/components/FileExcel.tsx b/packages/icons/src/components/FileExcel.tsx new file mode 100644 index 0000000..ff0536b --- /dev/null +++ b/packages/icons/src/components/FileExcel.tsx @@ -0,0 +1,39 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileExcel = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + +); +export default FileExcel; diff --git a/packages/icons/src/components/FileFont.tsx b/packages/icons/src/components/FileFont.tsx new file mode 100644 index 0000000..17a3204 --- /dev/null +++ b/packages/icons/src/components/FileFont.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileFont = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileFont; diff --git a/packages/icons/src/components/FileImage.tsx b/packages/icons/src/components/FileImage.tsx new file mode 100644 index 0000000..2e9d757 --- /dev/null +++ b/packages/icons/src/components/FileImage.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileImage = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileImage; diff --git a/packages/icons/src/components/FileJson.tsx b/packages/icons/src/components/FileJson.tsx new file mode 100644 index 0000000..812efb4 --- /dev/null +++ b/packages/icons/src/components/FileJson.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileJson = (props: SVGProps) => ( + + + + +); +export default FileJson; diff --git a/packages/icons/src/components/FilePack.tsx b/packages/icons/src/components/FilePack.tsx new file mode 100644 index 0000000..a251033 --- /dev/null +++ b/packages/icons/src/components/FilePack.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FilePack = (props: SVGProps) => ( + + + + + + + + + + +); +export default FilePack; diff --git a/packages/icons/src/components/FilePdf.tsx b/packages/icons/src/components/FilePdf.tsx new file mode 100644 index 0000000..535fc88 --- /dev/null +++ b/packages/icons/src/components/FilePdf.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FilePdf = (props: SVGProps) => ( + + + + + + + + + + +); +export default FilePdf; diff --git a/packages/icons/src/components/FilePresentation.tsx b/packages/icons/src/components/FilePresentation.tsx new file mode 100644 index 0000000..b2e430e --- /dev/null +++ b/packages/icons/src/components/FilePresentation.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FilePresentation = (props: SVGProps) => ( + + + + + + + + + + +); +export default FilePresentation; diff --git a/packages/icons/src/components/FileQuestion.tsx b/packages/icons/src/components/FileQuestion.tsx new file mode 100644 index 0000000..5c39e50 --- /dev/null +++ b/packages/icons/src/components/FileQuestion.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileQuestion = (props: SVGProps) => ( + + + + +); +export default FileQuestion; diff --git a/packages/icons/src/components/FileScript.tsx b/packages/icons/src/components/FileScript.tsx new file mode 100644 index 0000000..fd4ede0 --- /dev/null +++ b/packages/icons/src/components/FileScript.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileScript = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileScript; diff --git a/packages/icons/src/components/FileSpreadsheet.tsx b/packages/icons/src/components/FileSpreadsheet.tsx new file mode 100644 index 0000000..1ec1e83 --- /dev/null +++ b/packages/icons/src/components/FileSpreadsheet.tsx @@ -0,0 +1,20 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileSpreadsheet = (props: SVGProps) => ( + + + +); +export default FileSpreadsheet; diff --git a/packages/icons/src/components/FileText.tsx b/packages/icons/src/components/FileText.tsx new file mode 100644 index 0000000..d0f254b --- /dev/null +++ b/packages/icons/src/components/FileText.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileText = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileText; diff --git a/packages/icons/src/components/FileUnknown.tsx b/packages/icons/src/components/FileUnknown.tsx new file mode 100644 index 0000000..a9c944a --- /dev/null +++ b/packages/icons/src/components/FileUnknown.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileUnknown = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileUnknown; diff --git a/packages/icons/src/components/FileVideo.tsx b/packages/icons/src/components/FileVideo.tsx new file mode 100644 index 0000000..3d70840 --- /dev/null +++ b/packages/icons/src/components/FileVideo.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FileVideo = (props: SVGProps) => ( + + + + + + + + + + +); +export default FileVideo; diff --git a/packages/icons/src/components/Filter.tsx b/packages/icons/src/components/Filter.tsx new file mode 100644 index 0000000..8c9fda0 --- /dev/null +++ b/packages/icons/src/components/Filter.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Filter = (props: SVGProps) => ( + + + +); +export default Filter; diff --git a/packages/icons/src/components/Flame.tsx b/packages/icons/src/components/Flame.tsx new file mode 100644 index 0000000..cf47e51 --- /dev/null +++ b/packages/icons/src/components/Flame.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Flame = (props: SVGProps) => ( + + + +); +export default Flame; diff --git a/packages/icons/src/components/FreezeColumn.tsx b/packages/icons/src/components/FreezeColumn.tsx new file mode 100644 index 0000000..4a15856 --- /dev/null +++ b/packages/icons/src/components/FreezeColumn.tsx @@ -0,0 +1,31 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const FreezeColumn = (props: SVGProps) => ( + + + + + +); +export default FreezeColumn; diff --git a/packages/icons/src/components/Frown.tsx b/packages/icons/src/components/Frown.tsx new file mode 100644 index 0000000..4af1e0a --- /dev/null +++ b/packages/icons/src/components/Frown.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Frown = (props: SVGProps) => ( + + + + +); +export default Frown; diff --git a/packages/icons/src/components/Gauge.tsx b/packages/icons/src/components/Gauge.tsx new file mode 100644 index 0000000..a934c0d --- /dev/null +++ b/packages/icons/src/components/Gauge.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Gauge = (props: SVGProps) => ( + + + +); +export default Gauge; diff --git a/packages/icons/src/components/GetRecord.tsx b/packages/icons/src/components/GetRecord.tsx new file mode 100644 index 0000000..fe533c2 --- /dev/null +++ b/packages/icons/src/components/GetRecord.tsx @@ -0,0 +1,26 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const GetRecord = (props: SVGProps) => ( + + + + + +); +export default GetRecord; diff --git a/packages/icons/src/components/Github.tsx b/packages/icons/src/components/Github.tsx new file mode 100644 index 0000000..637b4fa --- /dev/null +++ b/packages/icons/src/components/Github.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Github = (props: SVGProps) => ( + + + + +); +export default Github; diff --git a/packages/icons/src/components/GithubLogo.tsx b/packages/icons/src/components/GithubLogo.tsx new file mode 100644 index 0000000..083ec50 --- /dev/null +++ b/packages/icons/src/components/GithubLogo.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const GithubLogo = (props: SVGProps) => ( + + + + + + + + + + +); +export default GithubLogo; diff --git a/packages/icons/src/components/GoogleLogo.tsx b/packages/icons/src/components/GoogleLogo.tsx new file mode 100644 index 0000000..9113536 --- /dev/null +++ b/packages/icons/src/components/GoogleLogo.tsx @@ -0,0 +1,37 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const GoogleLogo = (props: SVGProps) => ( + + + + + + + + + + + + + +); +export default GoogleLogo; diff --git a/packages/icons/src/components/Hash.tsx b/packages/icons/src/components/Hash.tsx new file mode 100644 index 0000000..b668d36 --- /dev/null +++ b/packages/icons/src/components/Hash.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Hash = (props: SVGProps) => ( + + + +); +export default Hash; diff --git a/packages/icons/src/components/Heart.tsx b/packages/icons/src/components/Heart.tsx new file mode 100644 index 0000000..136f9c4 --- /dev/null +++ b/packages/icons/src/components/Heart.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Heart = (props: SVGProps) => ( + + + +); +export default Heart; diff --git a/packages/icons/src/components/HelpCircle.tsx b/packages/icons/src/components/HelpCircle.tsx new file mode 100644 index 0000000..b6ca879 --- /dev/null +++ b/packages/icons/src/components/HelpCircle.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const HelpCircle = (props: SVGProps) => ( + + + + +); +export default HelpCircle; diff --git a/packages/icons/src/components/History.tsx b/packages/icons/src/components/History.tsx new file mode 100644 index 0000000..610a2c7 --- /dev/null +++ b/packages/icons/src/components/History.tsx @@ -0,0 +1,35 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const History = (props: SVGProps) => ( + + + + + +); +export default History; diff --git a/packages/icons/src/components/Home.tsx b/packages/icons/src/components/Home.tsx new file mode 100644 index 0000000..c6d7cc6 --- /dev/null +++ b/packages/icons/src/components/Home.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Home = (props: SVGProps) => ( + + + + +); +export default Home; diff --git a/packages/icons/src/components/HttpRequest.tsx b/packages/icons/src/components/HttpRequest.tsx new file mode 100644 index 0000000..b1c2edb --- /dev/null +++ b/packages/icons/src/components/HttpRequest.tsx @@ -0,0 +1,23 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const HttpRequest = (props: SVGProps) => ( + + + + + +); +export default HttpRequest; diff --git a/packages/icons/src/components/Image.tsx b/packages/icons/src/components/Image.tsx new file mode 100644 index 0000000..fe0c662 --- /dev/null +++ b/packages/icons/src/components/Image.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Image = (props: SVGProps) => ( + + + + +); +export default Image; diff --git a/packages/icons/src/components/Import.tsx b/packages/icons/src/components/Import.tsx new file mode 100644 index 0000000..ed96fd2 --- /dev/null +++ b/packages/icons/src/components/Import.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Import = (props: SVGProps) => ( + + + + +); +export default Import; diff --git a/packages/icons/src/components/Inbox.tsx b/packages/icons/src/components/Inbox.tsx new file mode 100644 index 0000000..77ab622 --- /dev/null +++ b/packages/icons/src/components/Inbox.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Inbox = (props: SVGProps) => ( + + + + +); +export default Inbox; diff --git a/packages/icons/src/components/Integration.tsx b/packages/icons/src/components/Integration.tsx new file mode 100644 index 0000000..ec65c52 --- /dev/null +++ b/packages/icons/src/components/Integration.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Integration = (props: SVGProps) => ( + + + +); +export default Integration; diff --git a/packages/icons/src/components/Kanban.tsx b/packages/icons/src/components/Kanban.tsx new file mode 100644 index 0000000..787e5cc --- /dev/null +++ b/packages/icons/src/components/Kanban.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Kanban = (props: SVGProps) => ( + + + +); +export default Kanban; diff --git a/packages/icons/src/components/Key.tsx b/packages/icons/src/components/Key.tsx new file mode 100644 index 0000000..07f449d --- /dev/null +++ b/packages/icons/src/components/Key.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Key = (props: SVGProps) => ( + + + +); +export default Key; diff --git a/packages/icons/src/components/Layers.tsx b/packages/icons/src/components/Layers.tsx new file mode 100644 index 0000000..19b6ed7 --- /dev/null +++ b/packages/icons/src/components/Layers.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Layers = (props: SVGProps) => ( + + + +); +export default Layers; diff --git a/packages/icons/src/components/LayoutGrid.tsx b/packages/icons/src/components/LayoutGrid.tsx new file mode 100644 index 0000000..7dafe1b --- /dev/null +++ b/packages/icons/src/components/LayoutGrid.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const LayoutGrid = (props: SVGProps) => ( + + + +); +export default LayoutGrid; diff --git a/packages/icons/src/components/LayoutList.tsx b/packages/icons/src/components/LayoutList.tsx new file mode 100644 index 0000000..7d8e59a --- /dev/null +++ b/packages/icons/src/components/LayoutList.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const LayoutList = (props: SVGProps) => ( + + + +); +export default LayoutList; diff --git a/packages/icons/src/components/LayoutTemplate.tsx b/packages/icons/src/components/LayoutTemplate.tsx new file mode 100644 index 0000000..4c35f60 --- /dev/null +++ b/packages/icons/src/components/LayoutTemplate.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const LayoutTemplate = (props: SVGProps) => ( + + + +); +export default LayoutTemplate; diff --git a/packages/icons/src/components/License.tsx b/packages/icons/src/components/License.tsx new file mode 100644 index 0000000..759892f --- /dev/null +++ b/packages/icons/src/components/License.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const License = (props: SVGProps) => ( + + + + +); +export default License; diff --git a/packages/icons/src/components/Lingyiwanwu.tsx b/packages/icons/src/components/Lingyiwanwu.tsx new file mode 100644 index 0000000..d859e27 --- /dev/null +++ b/packages/icons/src/components/Lingyiwanwu.tsx @@ -0,0 +1,30 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Lingyiwanwu = (props: SVGProps) => ( + + + + + + + + + + + + +); +export default Lingyiwanwu; diff --git a/packages/icons/src/components/Link.tsx b/packages/icons/src/components/Link.tsx new file mode 100644 index 0000000..dc71893 --- /dev/null +++ b/packages/icons/src/components/Link.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Link = (props: SVGProps) => ( + + + +); +export default Link; diff --git a/packages/icons/src/components/ListChecks.tsx b/packages/icons/src/components/ListChecks.tsx new file mode 100644 index 0000000..30f59bf --- /dev/null +++ b/packages/icons/src/components/ListChecks.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ListChecks = (props: SVGProps) => ( + + + +); +export default ListChecks; diff --git a/packages/icons/src/components/ListOrdered.tsx b/packages/icons/src/components/ListOrdered.tsx new file mode 100644 index 0000000..53bd0a3 --- /dev/null +++ b/packages/icons/src/components/ListOrdered.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ListOrdered = (props: SVGProps) => ( + + + +); +export default ListOrdered; diff --git a/packages/icons/src/components/Loader2.tsx b/packages/icons/src/components/Loader2.tsx new file mode 100644 index 0000000..42b1984 --- /dev/null +++ b/packages/icons/src/components/Loader2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Loader2 = (props: SVGProps) => ( + + + +); +export default Loader2; diff --git a/packages/icons/src/components/Lock.tsx b/packages/icons/src/components/Lock.tsx new file mode 100644 index 0000000..1e608d9 --- /dev/null +++ b/packages/icons/src/components/Lock.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Lock = (props: SVGProps) => ( + + + +); +export default Lock; diff --git a/packages/icons/src/components/LongText.tsx b/packages/icons/src/components/LongText.tsx new file mode 100644 index 0000000..1d8aa10 --- /dev/null +++ b/packages/icons/src/components/LongText.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const LongText = (props: SVGProps) => ( + + + + +); +export default LongText; diff --git a/packages/icons/src/components/Mail.tsx b/packages/icons/src/components/Mail.tsx new file mode 100644 index 0000000..b79655e --- /dev/null +++ b/packages/icons/src/components/Mail.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Mail = (props: SVGProps) => ( + + + + +); +export default Mail; diff --git a/packages/icons/src/components/MarkUnread.tsx b/packages/icons/src/components/MarkUnread.tsx new file mode 100644 index 0000000..d7d67e4 --- /dev/null +++ b/packages/icons/src/components/MarkUnread.tsx @@ -0,0 +1,29 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const MarkUnread = (props: SVGProps) => ( + + + + +); +export default MarkUnread; diff --git a/packages/icons/src/components/Maximize2.tsx b/packages/icons/src/components/Maximize2.tsx new file mode 100644 index 0000000..a64b47f --- /dev/null +++ b/packages/icons/src/components/Maximize2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Maximize2 = (props: SVGProps) => ( + + + +); +export default Maximize2; diff --git a/packages/icons/src/components/Menu.tsx b/packages/icons/src/components/Menu.tsx new file mode 100644 index 0000000..9c2c42a --- /dev/null +++ b/packages/icons/src/components/Menu.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Menu = (props: SVGProps) => ( + + + +); +export default Menu; diff --git a/packages/icons/src/components/MessageSquare.tsx b/packages/icons/src/components/MessageSquare.tsx new file mode 100644 index 0000000..7259b6b --- /dev/null +++ b/packages/icons/src/components/MessageSquare.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const MessageSquare = (props: SVGProps) => ( + + + +); +export default MessageSquare; diff --git a/packages/icons/src/components/Minimize2.tsx b/packages/icons/src/components/Minimize2.tsx new file mode 100644 index 0000000..ac34f89 --- /dev/null +++ b/packages/icons/src/components/Minimize2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Minimize2 = (props: SVGProps) => ( + + + +); +export default Minimize2; diff --git a/packages/icons/src/components/Mistral.tsx b/packages/icons/src/components/Mistral.tsx new file mode 100644 index 0000000..f750f28 --- /dev/null +++ b/packages/icons/src/components/Mistral.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Mistral = (props: SVGProps) => ( + + + + + + + + + + + + +); +export default Mistral; diff --git a/packages/icons/src/components/Moon.tsx b/packages/icons/src/components/Moon.tsx new file mode 100644 index 0000000..ad80b27 --- /dev/null +++ b/packages/icons/src/components/Moon.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Moon = (props: SVGProps) => ( + + + +); +export default Moon; diff --git a/packages/icons/src/components/MoreHorizontal.tsx b/packages/icons/src/components/MoreHorizontal.tsx new file mode 100644 index 0000000..a5f4c49 --- /dev/null +++ b/packages/icons/src/components/MoreHorizontal.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const MoreHorizontal = (props: SVGProps) => ( + + + +); +export default MoreHorizontal; diff --git a/packages/icons/src/components/Network.tsx b/packages/icons/src/components/Network.tsx new file mode 100644 index 0000000..186d5e5 --- /dev/null +++ b/packages/icons/src/components/Network.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Network = (props: SVGProps) => ( + + + +); +export default Network; diff --git a/packages/icons/src/components/Object.tsx b/packages/icons/src/components/Object.tsx new file mode 100644 index 0000000..7f66158 --- /dev/null +++ b/packages/icons/src/components/Object.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Object = (props: SVGProps) => ( + + + +); +export default Object; diff --git a/packages/icons/src/components/Ollama.tsx b/packages/icons/src/components/Ollama.tsx new file mode 100644 index 0000000..17103ba --- /dev/null +++ b/packages/icons/src/components/Ollama.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Ollama = (props: SVGProps) => ( + + + +); +export default Ollama; diff --git a/packages/icons/src/components/Openai.tsx b/packages/icons/src/components/Openai.tsx new file mode 100644 index 0000000..d462731 --- /dev/null +++ b/packages/icons/src/components/Openai.tsx @@ -0,0 +1,26 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Openai = (props: SVGProps) => ( + + + + + + + + + + + +); +export default Openai; diff --git a/packages/icons/src/components/PackageCheck.tsx b/packages/icons/src/components/PackageCheck.tsx new file mode 100644 index 0000000..09b7f9f --- /dev/null +++ b/packages/icons/src/components/PackageCheck.tsx @@ -0,0 +1,35 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const PackageCheck = (props: SVGProps) => ( + + + + + +); +export default PackageCheck; diff --git a/packages/icons/src/components/PaintBucket.tsx b/packages/icons/src/components/PaintBucket.tsx new file mode 100644 index 0000000..164e756 --- /dev/null +++ b/packages/icons/src/components/PaintBucket.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const PaintBucket = (props: SVGProps) => ( + + + +); +export default PaintBucket; diff --git a/packages/icons/src/components/Pencil.tsx b/packages/icons/src/components/Pencil.tsx new file mode 100644 index 0000000..ad6894a --- /dev/null +++ b/packages/icons/src/components/Pencil.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Pencil = (props: SVGProps) => ( + + + +); +export default Pencil; diff --git a/packages/icons/src/components/Percent.tsx b/packages/icons/src/components/Percent.tsx new file mode 100644 index 0000000..8d83131 --- /dev/null +++ b/packages/icons/src/components/Percent.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Percent = (props: SVGProps) => ( + + + +); +export default Percent; diff --git a/packages/icons/src/components/Phone.tsx b/packages/icons/src/components/Phone.tsx new file mode 100644 index 0000000..e665a65 --- /dev/null +++ b/packages/icons/src/components/Phone.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Phone = (props: SVGProps) => ( + + + +); +export default Phone; diff --git a/packages/icons/src/components/Play.tsx b/packages/icons/src/components/Play.tsx new file mode 100644 index 0000000..f139b3f --- /dev/null +++ b/packages/icons/src/components/Play.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Play = (props: SVGProps) => ( + + + +); +export default Play; diff --git a/packages/icons/src/components/Plus.tsx b/packages/icons/src/components/Plus.tsx new file mode 100644 index 0000000..c211561 --- /dev/null +++ b/packages/icons/src/components/Plus.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Plus = (props: SVGProps) => ( + + + +); +export default Plus; diff --git a/packages/icons/src/components/PlusCircle.tsx b/packages/icons/src/components/PlusCircle.tsx new file mode 100644 index 0000000..d1aabe7 --- /dev/null +++ b/packages/icons/src/components/PlusCircle.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const PlusCircle = (props: SVGProps) => ( + + + +); +export default PlusCircle; diff --git a/packages/icons/src/components/Puzzle.tsx b/packages/icons/src/components/Puzzle.tsx new file mode 100644 index 0000000..448f6aa --- /dev/null +++ b/packages/icons/src/components/Puzzle.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Puzzle = (props: SVGProps) => ( + + + + + + + + + + +); +export default Puzzle; diff --git a/packages/icons/src/components/Qrcode.tsx b/packages/icons/src/components/Qrcode.tsx new file mode 100644 index 0000000..a001384 --- /dev/null +++ b/packages/icons/src/components/Qrcode.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Qrcode = (props: SVGProps) => ( + + + +); +export default Qrcode; diff --git a/packages/icons/src/components/Qwen.tsx b/packages/icons/src/components/Qwen.tsx new file mode 100644 index 0000000..a9e7a55 --- /dev/null +++ b/packages/icons/src/components/Qwen.tsx @@ -0,0 +1,19 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Qwen = (props: SVGProps) => ( + + + + +); +export default Qwen; diff --git a/packages/icons/src/components/Redo2.tsx b/packages/icons/src/components/Redo2.tsx new file mode 100644 index 0000000..f3500e6 --- /dev/null +++ b/packages/icons/src/components/Redo2.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Redo2 = (props: SVGProps) => ( + + + + +); +export default Redo2; diff --git a/packages/icons/src/components/RefreshCcw.tsx b/packages/icons/src/components/RefreshCcw.tsx new file mode 100644 index 0000000..4be565b --- /dev/null +++ b/packages/icons/src/components/RefreshCcw.tsx @@ -0,0 +1,35 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const RefreshCcw = (props: SVGProps) => ( + + + + + +); +export default RefreshCcw; diff --git a/packages/icons/src/components/RotateCw.tsx b/packages/icons/src/components/RotateCw.tsx new file mode 100644 index 0000000..d36f621 --- /dev/null +++ b/packages/icons/src/components/RotateCw.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const RotateCw = (props: SVGProps) => ( + + + + +); +export default RotateCw; diff --git a/packages/icons/src/components/Search.tsx b/packages/icons/src/components/Search.tsx new file mode 100644 index 0000000..08266bb --- /dev/null +++ b/packages/icons/src/components/Search.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Search = (props: SVGProps) => ( + + + +); +export default Search; diff --git a/packages/icons/src/components/SendMail.tsx b/packages/icons/src/components/SendMail.tsx new file mode 100644 index 0000000..34d78c1 --- /dev/null +++ b/packages/icons/src/components/SendMail.tsx @@ -0,0 +1,60 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const SendMail = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + +); +export default SendMail; diff --git a/packages/icons/src/components/Settings.tsx b/packages/icons/src/components/Settings.tsx new file mode 100644 index 0000000..a5d6a13 --- /dev/null +++ b/packages/icons/src/components/Settings.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Settings = (props: SVGProps) => ( + + + + +); +export default Settings; diff --git a/packages/icons/src/components/Share2.tsx b/packages/icons/src/components/Share2.tsx new file mode 100644 index 0000000..173f620 --- /dev/null +++ b/packages/icons/src/components/Share2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Share2 = (props: SVGProps) => ( + + + +); +export default Share2; diff --git a/packages/icons/src/components/Sheet.tsx b/packages/icons/src/components/Sheet.tsx new file mode 100644 index 0000000..e469d24 --- /dev/null +++ b/packages/icons/src/components/Sheet.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Sheet = (props: SVGProps) => ( + + + +); +export default Sheet; diff --git a/packages/icons/src/components/ShieldCheck.tsx b/packages/icons/src/components/ShieldCheck.tsx new file mode 100644 index 0000000..b2ffd29 --- /dev/null +++ b/packages/icons/src/components/ShieldCheck.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ShieldCheck = (props: SVGProps) => ( + + + + +); +export default ShieldCheck; diff --git a/packages/icons/src/components/Sidebar.tsx b/packages/icons/src/components/Sidebar.tsx new file mode 100644 index 0000000..0223625 --- /dev/null +++ b/packages/icons/src/components/Sidebar.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Sidebar = (props: SVGProps) => ( + + + +); +export default Sidebar; diff --git a/packages/icons/src/components/SortAsc.tsx b/packages/icons/src/components/SortAsc.tsx new file mode 100644 index 0000000..8a9079a --- /dev/null +++ b/packages/icons/src/components/SortAsc.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const SortAsc = (props: SVGProps) => ( + + + +); +export default SortAsc; diff --git a/packages/icons/src/components/Square.tsx b/packages/icons/src/components/Square.tsx new file mode 100644 index 0000000..2d794fa --- /dev/null +++ b/packages/icons/src/components/Square.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Square = (props: SVGProps) => ( + + + +); +export default Square; diff --git a/packages/icons/src/components/Star.tsx b/packages/icons/src/components/Star.tsx new file mode 100644 index 0000000..ab2f5e5 --- /dev/null +++ b/packages/icons/src/components/Star.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Star = (props: SVGProps) => ( + + + +); +export default Star; diff --git a/packages/icons/src/components/StretchHorizontal.tsx b/packages/icons/src/components/StretchHorizontal.tsx new file mode 100644 index 0000000..a7c99aa --- /dev/null +++ b/packages/icons/src/components/StretchHorizontal.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const StretchHorizontal = (props: SVGProps) => ( + + + +); +export default StretchHorizontal; diff --git a/packages/icons/src/components/Sun.tsx b/packages/icons/src/components/Sun.tsx new file mode 100644 index 0000000..2f527d4 --- /dev/null +++ b/packages/icons/src/components/Sun.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Sun = (props: SVGProps) => ( + + + +); +export default Sun; diff --git a/packages/icons/src/components/SunMedium.tsx b/packages/icons/src/components/SunMedium.tsx new file mode 100644 index 0000000..2abaa00 --- /dev/null +++ b/packages/icons/src/components/SunMedium.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const SunMedium = (props: SVGProps) => ( + + + +); +export default SunMedium; diff --git a/packages/icons/src/components/Table2.tsx b/packages/icons/src/components/Table2.tsx new file mode 100644 index 0000000..c913ebc --- /dev/null +++ b/packages/icons/src/components/Table2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Table2 = (props: SVGProps) => ( + + + +); +export default Table2; diff --git a/packages/icons/src/components/Teable.tsx b/packages/icons/src/components/Teable.tsx new file mode 100644 index 0000000..5789d8a --- /dev/null +++ b/packages/icons/src/components/Teable.tsx @@ -0,0 +1,31 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Teable = (props: SVGProps) => ( + + + + + + + + + +); +export default Teable; diff --git a/packages/icons/src/components/TeableNew.tsx b/packages/icons/src/components/TeableNew.tsx new file mode 100644 index 0000000..c8928d1 --- /dev/null +++ b/packages/icons/src/components/TeableNew.tsx @@ -0,0 +1,31 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const TeableNew = (props: SVGProps) => ( + + + + + + + + + + + + +); +export default TeableNew; diff --git a/packages/icons/src/components/ThumbsUp.tsx b/packages/icons/src/components/ThumbsUp.tsx new file mode 100644 index 0000000..994ad6b --- /dev/null +++ b/packages/icons/src/components/ThumbsUp.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ThumbsUp = (props: SVGProps) => ( + + + +); +export default ThumbsUp; diff --git a/packages/icons/src/components/Trash.tsx b/packages/icons/src/components/Trash.tsx new file mode 100644 index 0000000..c475545 --- /dev/null +++ b/packages/icons/src/components/Trash.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Trash = (props: SVGProps) => ( + + + +); +export default Trash; diff --git a/packages/icons/src/components/Trash2.tsx b/packages/icons/src/components/Trash2.tsx new file mode 100644 index 0000000..fb8473b --- /dev/null +++ b/packages/icons/src/components/Trash2.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Trash2 = (props: SVGProps) => ( + + + +); +export default Trash2; diff --git a/packages/icons/src/components/Undo2.tsx b/packages/icons/src/components/Undo2.tsx new file mode 100644 index 0000000..341369a --- /dev/null +++ b/packages/icons/src/components/Undo2.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Undo2 = (props: SVGProps) => ( + + + + +); +export default Undo2; diff --git a/packages/icons/src/components/UpdateRecord.tsx b/packages/icons/src/components/UpdateRecord.tsx new file mode 100644 index 0000000..11ddb9c --- /dev/null +++ b/packages/icons/src/components/UpdateRecord.tsx @@ -0,0 +1,29 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const UpdateRecord = (props: SVGProps) => ( + + + + + + + + + + + +); +export default UpdateRecord; diff --git a/packages/icons/src/components/User.tsx b/packages/icons/src/components/User.tsx new file mode 100644 index 0000000..fd92df3 --- /dev/null +++ b/packages/icons/src/components/User.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const User = (props: SVGProps) => ( + + + +); +export default User; diff --git a/packages/icons/src/components/UserEdit.tsx b/packages/icons/src/components/UserEdit.tsx new file mode 100644 index 0000000..06f9d6d --- /dev/null +++ b/packages/icons/src/components/UserEdit.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const UserEdit = (props: SVGProps) => ( + + + +); +export default UserEdit; diff --git a/packages/icons/src/components/UserPlus.tsx b/packages/icons/src/components/UserPlus.tsx new file mode 100644 index 0000000..90faa38 --- /dev/null +++ b/packages/icons/src/components/UserPlus.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const UserPlus = (props: SVGProps) => ( + + + +); +export default UserPlus; diff --git a/packages/icons/src/components/Users.tsx b/packages/icons/src/components/Users.tsx new file mode 100644 index 0000000..0097170 --- /dev/null +++ b/packages/icons/src/components/Users.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Users = (props: SVGProps) => ( + + + +); +export default Users; diff --git a/packages/icons/src/components/Video.tsx b/packages/icons/src/components/Video.tsx new file mode 100644 index 0000000..46ea23e --- /dev/null +++ b/packages/icons/src/components/Video.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Video = (props: SVGProps) => ( + + + +); +export default Video; diff --git a/packages/icons/src/components/Webhook.tsx b/packages/icons/src/components/Webhook.tsx new file mode 100644 index 0000000..602677a --- /dev/null +++ b/packages/icons/src/components/Webhook.tsx @@ -0,0 +1,35 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Webhook = (props: SVGProps) => ( + + + + + +); +export default Webhook; diff --git a/packages/icons/src/components/X.tsx b/packages/icons/src/components/X.tsx new file mode 100644 index 0000000..5dfdd8f --- /dev/null +++ b/packages/icons/src/components/X.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const X = (props: SVGProps) => ( + + + +); +export default X; diff --git a/packages/icons/src/components/Xai.tsx b/packages/icons/src/components/Xai.tsx new file mode 100644 index 0000000..18f0eb0 --- /dev/null +++ b/packages/icons/src/components/Xai.tsx @@ -0,0 +1,19 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Xai = (props: SVGProps) => ( + + + + +); +export default Xai; diff --git a/packages/icons/src/components/Zap.tsx b/packages/icons/src/components/Zap.tsx new file mode 100644 index 0000000..ae01b15 --- /dev/null +++ b/packages/icons/src/components/Zap.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Zap = (props: SVGProps) => ( + + + +); +export default Zap; diff --git a/packages/icons/src/components/Zhipu.tsx b/packages/icons/src/components/Zhipu.tsx new file mode 100644 index 0000000..44833b3 --- /dev/null +++ b/packages/icons/src/components/Zhipu.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const Zhipu = (props: SVGProps) => ( + + + + +); +export default Zhipu; diff --git a/packages/icons/src/components/ZoomIn.tsx b/packages/icons/src/components/ZoomIn.tsx new file mode 100644 index 0000000..be8522f --- /dev/null +++ b/packages/icons/src/components/ZoomIn.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ZoomIn = (props: SVGProps) => ( + + + +); +export default ZoomIn; diff --git a/packages/icons/src/components/ZoomOut.tsx b/packages/icons/src/components/ZoomOut.tsx new file mode 100644 index 0000000..8a4d611 --- /dev/null +++ b/packages/icons/src/components/ZoomOut.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import type { SVGProps } from 'react'; +const ZoomOut = (props: SVGProps) => ( + + + +); +export default ZoomOut; diff --git a/packages/icons/src/index.ts b/packages/icons/src/index.ts new file mode 100644 index 0000000..7796081 --- /dev/null +++ b/packages/icons/src/index.ts @@ -0,0 +1,164 @@ +export { default as A } from './components/A'; +export { default as Admin } from './components/Admin'; +export { default as AlertCircle } from './components/AlertCircle'; +export { default as AlertTriangle } from './components/AlertTriangle'; +export { default as Anthropic } from './components/Anthropic'; +export { default as Apple } from './components/Apple'; +export { default as Array } from './components/Array'; +export { default as ArrowDown } from './components/ArrowDown'; +export { default as ArrowLeft } from './components/ArrowLeft'; +export { default as ArrowRight } from './components/ArrowRight'; +export { default as ArrowUp } from './components/ArrowUp'; +export { default as ArrowUpDown } from './components/ArrowUpDown'; +export { default as ArrowUpRight } from './components/ArrowUpRight'; +export { default as Audio } from './components/Audio'; +export { default as Azure } from './components/Azure'; +export { default as BarChart2 } from './components/BarChart2'; +export { default as Bell } from './components/Bell'; +export { default as Boolean } from './components/Boolean'; +export { default as Building2 } from './components/Building2'; +export { default as Calendar } from './components/Calendar'; +export { default as Check } from './components/Check'; +export { default as CheckCircle2 } from './components/CheckCircle2'; +export { default as CheckSquare } from './components/CheckSquare'; +export { default as Checked } from './components/Checked'; +export { default as ChevronDown } from './components/ChevronDown'; +export { default as ChevronLeft } from './components/ChevronLeft'; +export { default as ChevronRight } from './components/ChevronRight'; +export { default as ChevronUp } from './components/ChevronUp'; +export { default as ChevronsLeft } from './components/ChevronsLeft'; +export { default as ChevronsRight } from './components/ChevronsRight'; +export { default as ChevronsUpDown } from './components/ChevronsUpDown'; +export { default as Circle } from './components/Circle'; +export { default as ClipboardList } from './components/ClipboardList'; +export { default as Clock4 } from './components/Clock4'; +export { default as Code } from './components/Code'; +export { default as Code2 } from './components/Code2'; +export { default as Cohere } from './components/Cohere'; +export { default as Component } from './components/Component'; +export { default as Condition } from './components/Condition'; +export { default as Copy } from './components/Copy'; +export { default as CreateRecord } from './components/CreateRecord'; +export { default as CreditCard } from './components/CreditCard'; +export { default as Database } from './components/Database'; +export { default as DeepThinking } from './components/DeepThinking'; +export { default as Deepseek } from './components/Deepseek'; +export { default as DivideCircle } from './components/DivideCircle'; +export { default as DivideSquare } from './components/DivideSquare'; +export { default as DollarSign } from './components/DollarSign'; +export { default as Download } from './components/Download'; +export { default as DraggableHandle } from './components/DraggableHandle'; +export { default as Edit } from './components/Edit'; +export { default as Export } from './components/Export'; +export { default as Eye } from './components/Eye'; +export { default as EyeOff } from './components/EyeOff'; +export { default as File } from './components/File'; +export { default as FileAudio } from './components/FileAudio'; +export { default as FileCsv } from './components/FileCsv'; +export { default as FileDocument } from './components/FileDocument'; +export { default as FileExcel } from './components/FileExcel'; +export { default as FileFont } from './components/FileFont'; +export { default as FileImage } from './components/FileImage'; +export { default as FileJson } from './components/FileJson'; +export { default as FilePack } from './components/FilePack'; +export { default as FilePdf } from './components/FilePdf'; +export { default as FilePresentation } from './components/FilePresentation'; +export { default as FileQuestion } from './components/FileQuestion'; +export { default as FileScript } from './components/FileScript'; +export { default as FileSpreadsheet } from './components/FileSpreadsheet'; +export { default as FileText } from './components/FileText'; +export { default as FileUnknown } from './components/FileUnknown'; +export { default as FileVideo } from './components/FileVideo'; +export { default as Filter } from './components/Filter'; +export { default as Flame } from './components/Flame'; +export { default as FreezeColumn } from './components/FreezeColumn'; +export { default as Frown } from './components/Frown'; +export { default as Gauge } from './components/Gauge'; +export { default as GetRecord } from './components/GetRecord'; +export { default as Github } from './components/Github'; +export { default as GithubLogo } from './components/GithubLogo'; +export { default as GoogleLogo } from './components/GoogleLogo'; +export { default as Hash } from './components/Hash'; +export { default as Heart } from './components/Heart'; +export { default as HelpCircle } from './components/HelpCircle'; +export { default as History } from './components/History'; +export { default as Home } from './components/Home'; +export { default as HttpRequest } from './components/HttpRequest'; +export { default as Image } from './components/Image'; +export { default as Import } from './components/Import'; +export { default as Inbox } from './components/Inbox'; +export { default as Integration } from './components/Integration'; +export { default as Kanban } from './components/Kanban'; +export { default as Key } from './components/Key'; +export { default as Layers } from './components/Layers'; +export { default as LayoutGrid } from './components/LayoutGrid'; +export { default as LayoutList } from './components/LayoutList'; +export { default as LayoutTemplate } from './components/LayoutTemplate'; +export { default as License } from './components/License'; +export { default as Lingyiwanwu } from './components/Lingyiwanwu'; +export { default as Link } from './components/Link'; +export { default as ListChecks } from './components/ListChecks'; +export { default as ListOrdered } from './components/ListOrdered'; +export { default as Loader2 } from './components/Loader2'; +export { default as Lock } from './components/Lock'; +export { default as LongText } from './components/LongText'; +export { default as Mail } from './components/Mail'; +export { default as MarkUnread } from './components/MarkUnread'; +export { default as Maximize2 } from './components/Maximize2'; +export { default as Menu } from './components/Menu'; +export { default as MessageSquare } from './components/MessageSquare'; +export { default as Minimize2 } from './components/Minimize2'; +export { default as Mistral } from './components/Mistral'; +export { default as Moon } from './components/Moon'; +export { default as MoreHorizontal } from './components/MoreHorizontal'; +export { default as Network } from './components/Network'; +export { default as Object } from './components/Object'; +export { default as Ollama } from './components/Ollama'; +export { default as Openai } from './components/Openai'; +export { default as PackageCheck } from './components/PackageCheck'; +export { default as PaintBucket } from './components/PaintBucket'; +export { default as Pencil } from './components/Pencil'; +export { default as Percent } from './components/Percent'; +export { default as Phone } from './components/Phone'; +export { default as Play } from './components/Play'; +export { default as Plus } from './components/Plus'; +export { default as PlusCircle } from './components/PlusCircle'; +export { default as Puzzle } from './components/Puzzle'; +export { default as Qrcode } from './components/Qrcode'; +export { default as Qwen } from './components/Qwen'; +export { default as Redo2 } from './components/Redo2'; +export { default as RefreshCcw } from './components/RefreshCcw'; +export { default as RotateCw } from './components/RotateCw'; +export { default as Search } from './components/Search'; +export { default as SendMail } from './components/SendMail'; +export { default as Settings } from './components/Settings'; +export { default as Share2 } from './components/Share2'; +export { default as Sheet } from './components/Sheet'; +export { default as ShieldCheck } from './components/ShieldCheck'; +export { default as Sidebar } from './components/Sidebar'; +export { default as SortAsc } from './components/SortAsc'; +export { default as Square } from './components/Square'; +export { default as Star } from './components/Star'; +export { default as StretchHorizontal } from './components/StretchHorizontal'; +export { default as Sun } from './components/Sun'; +export { default as SunMedium } from './components/SunMedium'; +export { default as Table2 } from './components/Table2'; +export { default as Teable } from './components/Teable'; +export { default as TeableNew } from './components/TeableNew'; +export { default as ThumbsUp } from './components/ThumbsUp'; +export { default as Trash } from './components/Trash'; +export { default as Trash2 } from './components/Trash2'; +export { default as Undo2 } from './components/Undo2'; +export { default as UpdateRecord } from './components/UpdateRecord'; +export { default as User } from './components/User'; +export { default as UserEdit } from './components/UserEdit'; +export { default as UserPlus } from './components/UserPlus'; +export { default as Users } from './components/Users'; +export { default as Video } from './components/Video'; +export { default as Webhook } from './components/Webhook'; +export { default as X } from './components/X'; +export { default as Xai } from './components/Xai'; +export { default as Zap } from './components/Zap'; +export { default as Zhipu } from './components/Zhipu'; +export { default as ZoomIn } from './components/ZoomIn'; +export { default as ZoomOut } from './components/ZoomOut'; diff --git a/packages/icons/tsconfig.eslint.json b/packages/icons/tsconfig.eslint.json new file mode 100644 index 0000000..758f9a7 --- /dev/null +++ b/packages/icons/tsconfig.eslint.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "noEmit": true, + "allowJs": true + }, + "exclude": ["node_modules", "**/.*/*", "dist"], + "include": [ + ".eslintrc.*", + "**/*.ts", + "**/*.tsx", + "**/*.mts", + "**/*.js", + "**/*.cjs", + "**/*.mjs", + "**/*.jsx", + "**/*.json" + ] +} diff --git a/packages/icons/tsconfig.json b/packages/icons/tsconfig.json new file mode 100644 index 0000000..953f496 --- /dev/null +++ b/packages/icons/tsconfig.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "jsx": "react", + "baseUrl": "./src", + "target": "esnext", + "outDir": "./dist", + "rootDir": "./src", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "noEmit": false, + "incremental": true, + "composite": true, + "moduleResolution": "node", + "esModuleInterop": true + }, + "exclude": ["**/node_modules", "**/.*/", "dist", "build"], + "include": ["./src"] +} diff --git a/packages/icons/tsconfig.tsbuildinfo b/packages/icons/tsconfig.tsbuildinfo new file mode 100644 index 0000000..a1861a7 --- /dev/null +++ b/packages/icons/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.4.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@types+react@18.2.45/node_modules/@types/react/global.d.ts","../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@types+prop-types@15.7.14/node_modules/@types/prop-types/index.d.ts","../../node_modules/.pnpm/@types+react@18.2.45/node_modules/@types/react/index.d.ts","./src/components/A.tsx","./src/components/Admin.tsx","./src/components/AlertCircle.tsx","./src/components/AlertTriangle.tsx","./src/components/Anthropic.tsx","./src/components/Apple.tsx","./src/components/Array.tsx","./src/components/ArrowDown.tsx","./src/components/ArrowLeft.tsx","./src/components/ArrowRight.tsx","./src/components/ArrowUp.tsx","./src/components/ArrowUpDown.tsx","./src/components/ArrowUpRight.tsx","./src/components/Audio.tsx","./src/components/Azure.tsx","./src/components/BarChart2.tsx","./src/components/Bell.tsx","./src/components/Boolean.tsx","./src/components/Building2.tsx","./src/components/Calendar.tsx","./src/components/Check.tsx","./src/components/CheckCircle2.tsx","./src/components/CheckSquare.tsx","./src/components/Checked.tsx","./src/components/ChevronDown.tsx","./src/components/ChevronLeft.tsx","./src/components/ChevronRight.tsx","./src/components/ChevronUp.tsx","./src/components/ChevronsLeft.tsx","./src/components/ChevronsRight.tsx","./src/components/ChevronsUpDown.tsx","./src/components/Circle.tsx","./src/components/ClipboardList.tsx","./src/components/Clock4.tsx","./src/components/Code.tsx","./src/components/Code2.tsx","./src/components/Cohere.tsx","./src/components/Component.tsx","./src/components/Condition.tsx","./src/components/Copy.tsx","./src/components/CreateRecord.tsx","./src/components/CreditCard.tsx","./src/components/Database.tsx","./src/components/DeepThinking.tsx","./src/components/Deepseek.tsx","./src/components/DivideCircle.tsx","./src/components/DivideSquare.tsx","./src/components/DollarSign.tsx","./src/components/Download.tsx","./src/components/DraggableHandle.tsx","./src/components/Edit.tsx","./src/components/Export.tsx","./src/components/Eye.tsx","./src/components/EyeOff.tsx","./src/components/File.tsx","./src/components/FileAudio.tsx","./src/components/FileCsv.tsx","./src/components/FileDocument.tsx","./src/components/FileExcel.tsx","./src/components/FileFont.tsx","./src/components/FileImage.tsx","./src/components/FileJson.tsx","./src/components/FilePack.tsx","./src/components/FilePdf.tsx","./src/components/FilePresentation.tsx","./src/components/FileQuestion.tsx","./src/components/FileScript.tsx","./src/components/FileSpreadsheet.tsx","./src/components/FileText.tsx","./src/components/FileUnknown.tsx","./src/components/FileVideo.tsx","./src/components/Filter.tsx","./src/components/Flame.tsx","./src/components/FreezeColumn.tsx","./src/components/Frown.tsx","./src/components/Gauge.tsx","./src/components/GetRecord.tsx","./src/components/Github.tsx","./src/components/GithubLogo.tsx","./src/components/GoogleLogo.tsx","./src/components/Hash.tsx","./src/components/Heart.tsx","./src/components/HelpCircle.tsx","./src/components/History.tsx","./src/components/Home.tsx","./src/components/HttpRequest.tsx","./src/components/Image.tsx","./src/components/Import.tsx","./src/components/Inbox.tsx","./src/components/Integration.tsx","./src/components/Kanban.tsx","./src/components/Key.tsx","./src/components/Layers.tsx","./src/components/LayoutGrid.tsx","./src/components/LayoutList.tsx","./src/components/LayoutTemplate.tsx","./src/components/License.tsx","./src/components/Lingyiwanwu.tsx","./src/components/Link.tsx","./src/components/ListChecks.tsx","./src/components/ListOrdered.tsx","./src/components/Loader2.tsx","./src/components/Lock.tsx","./src/components/LongText.tsx","./src/components/Mail.tsx","./src/components/MarkUnread.tsx","./src/components/Maximize2.tsx","./src/components/Menu.tsx","./src/components/MessageSquare.tsx","./src/components/Minimize2.tsx","./src/components/Mistral.tsx","./src/components/Moon.tsx","./src/components/MoreHorizontal.tsx","./src/components/Network.tsx","./src/components/Object.tsx","./src/components/Ollama.tsx","./src/components/Openai.tsx","./src/components/PackageCheck.tsx","./src/components/PaintBucket.tsx","./src/components/Pencil.tsx","./src/components/Percent.tsx","./src/components/Phone.tsx","./src/components/Play.tsx","./src/components/Plus.tsx","./src/components/PlusCircle.tsx","./src/components/Puzzle.tsx","./src/components/Qrcode.tsx","./src/components/Qwen.tsx","./src/components/Redo2.tsx","./src/components/RefreshCcw.tsx","./src/components/RotateCw.tsx","./src/components/Search.tsx","./src/components/SendMail.tsx","./src/components/Settings.tsx","./src/components/Share2.tsx","./src/components/Sheet.tsx","./src/components/ShieldCheck.tsx","./src/components/Sidebar.tsx","./src/components/SortAsc.tsx","./src/components/Square.tsx","./src/components/Star.tsx","./src/components/StretchHorizontal.tsx","./src/components/Sun.tsx","./src/components/SunMedium.tsx","./src/components/Table2.tsx","./src/components/Teable.tsx","./src/components/TeableNew.tsx","./src/components/ThumbsUp.tsx","./src/components/Trash.tsx","./src/components/Trash2.tsx","./src/components/Undo2.tsx","./src/components/UpdateRecord.tsx","./src/components/User.tsx","./src/components/UserEdit.tsx","./src/components/UserPlus.tsx","./src/components/Users.tsx","./src/components/Video.tsx","./src/components/Webhook.tsx","./src/components/X.tsx","./src/components/Xai.tsx","./src/components/Zap.tsx","./src/components/Zhipu.tsx","./src/components/ZoomIn.tsx","./src/components/ZoomOut.tsx","./src/index.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/utils.d.ts","../../node_modules/.pnpm/@types+fs-extra@11.0.4/node_modules/@types/fs-extra/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.6/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+eslint@9.6.1/node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../node_modules/.pnpm/@types+eslint@9.6.1/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+eslint-scope@3.7.7/node_modules/@types/eslint-scope/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.7/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+react@19.0.0/node_modules/@types/react/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","65ff5a0aefd7817a03c1ad04fee85c9cdd3ec415cc3c9efec85d8008d4d5e4ee",{"version":"369b91cb44fdb8a8fa15de2bd6c28a7abfe6cc16d483ea42291cc7b1efff88d4","affectsGlobalScope":true},{"version":"cf4f51c95006178f73b2a5390547f644727f7872beed0a38a9c49b7c62985733","signature":"793fcd8cb05ab3c547c38bf7b6061761aff248308b92711a1685e74b35d4b732"},{"version":"4198f4e6a0b98bf894cef46b9277fc99d98846efaa6bb46042b158523a9c75fa","signature":"3a1028add64854981e9676dcd934cf2413b96d1d3b57ea57d3c4cf2802ccee28"},{"version":"c4cca2c6f64a68927a7793c042f45d7b7dc940b63f4db27a24e6dd4cbcec24b6","signature":"94d7cb03427947d10364eb7489e90dbea08c8f2f3275630684aa10b8861e18d5"},{"version":"82140439b309b322545d9c2f93ebd30a325fac54974d849cbcabf50397eac3af","signature":"123e08996a5090621a564223839369bb8010a16e29b7aca732fdf668b9a82fac"},{"version":"9f01d515a2f1d698cd07485752c835544ff2d91336786ffe5151f7e15b5743ec","signature":"b75036cd4b2379f417629435a8b784c8a8a1d28e85e7001ba73154ce019e050e"},{"version":"2d03159b60a0ce25e9ba7470524217994f61d41e7ebd9ac452a09ee959077d68","signature":"9c49d7c5c30106706ec1fac0123f1d18aa5c8194922909ed943279907bf14a9d"},{"version":"1d04daa4b3851242a7efdd6f5438e77418e81de8279ca916933602b0bd068f5d","signature":"43d1d89e26c3dc60b5d5cd3b40e06989ee0be4f1407e07c6421aa79bc520939c"},{"version":"7c8302d89b8108bd9678cef74f4d43a1517702190dbc4fd4eefb6dc215f5c4c3","signature":"a4d5ed124d19f2f56e0a2413fff0e4f419519183e67fc673d28eab26b50e54c4"},{"version":"c76d27e4b0c8138ea612659d168d470d485ac388c3a45a3169613ca92dd517d7","signature":"a11cd407295c4a99f8c46412f5c74ebc7fc9a83a484c8342bfe11d04209df163"},{"version":"6e41b72852e6c487867c3426eca3d1d73a3624415250e7e5a718c918c073c3ac","signature":"b83c3c81a7a698eb2ef486528cb737c9b0245872fabb264094d6c6392dcf00dc"},{"version":"2e6b5fc5bf6ee457b396902edd991dbe5589ef18ff1e9befbaf1c728a6485aaf","signature":"51a2ac99aa78f610bb7487253cce9255fbc3fe17bca503ff68694e095bd9242a"},{"version":"40c24d9fdf47b4c7bf1bdd3029622c14699132be435964ce4a602dfdc06325f3","signature":"66c214793eec943afc8f4cd4699c4a5df02b2bf26d8b19ceb39080b4589fcb7d"},{"version":"dae195b83d941eebe0b4c29afae94cbfb4b840ac892d17a667bc6406994fb9a2","signature":"934264faa0190f05e8970a56ac76bbb0915bff9cd57fdbc92f3941be0f7f94fb"},{"version":"0c458f6d4c624b7bcd133d3e88c7f62a885ba114b0bd626c0c3938aa2dd2ebd6","signature":"b4beb523efee58f5d427757ef9de64ca4c0cafc4729563c232000e793ea84cef"},{"version":"eddeafe73bbcaa417ca11f31c3ce818342bf4af33e306b02e4f1e185b3884c93","signature":"bc941abd620d7dd60554d604f8a49db223056982bcdac6ab2eeeb523d36174ed"},{"version":"c1752693c90f6f8a515e11e4416a07b7a7240ea1302afa1de4b88153b786751c","signature":"46b9e43e3d94e674c0b62d25b1901a4d6fe82f26b07bd440206fe693b0700f11"},{"version":"99167e16aa3d4a65f58cba30f442f8088881134bcd83d5bdbb12d53ccca58edf","signature":"78a5b5966bb9405f4b08add09ade7e45e963bcd90b2d36dc418ad77af12b2ad1"},{"version":"83c4f4532bef827a63a6fcfda4b1819bb0deba171c557f4b779db05bb4c91b25","signature":"1a8f56ca54a48c02aedf38962b41e42e7f7cc97b806430abc15d2d0977c939a9"},{"version":"854620d087536658326a493f1c7cabd1943f2152f76e839369d4b9f68e89c262","signature":"edd4b2e6370cfeadc243ca326e2f3f9c9f3b7379af4d90f27e729203a04725db"},{"version":"c9fda8d722750ef70166e3567f059f7769a5a09d63d0d11047754297cb992329","signature":"e13ad2c34c0b7dedc416dd17e9778cd95efb5b7c2a167811a1b4f73dcdf326d6"},{"version":"4f5bf66b9e615381972ce0b5624c269e79f6bd3c1417a8a989ece2078d77f376","signature":"32d3d962cc2c9f6542d3ffa95097c387f1a7c953be1b7ca173fa4b11b5d21366"},{"version":"abca6c463859540e10c19803f9fca52de5ebc7bcd1fbb27ca2032475865a5292","signature":"bef1c591dc32a189513925e5003f85fcb8b52759a08f4bfa88775c24e9c0e52f"},{"version":"26326cc9da100321183a053e16b4553114d64bcfbac2bda4285eaf21e4ebd3c4","signature":"710be0b8e35935d92ab6c812eb9989833b36501e9e8fd77a2db1fdfcd3a99aa3"},{"version":"5765b616f0a24a84553e3689eb1a7dfb73f30cd0b6bcfb9ea7a792f3f6226c25","signature":"a02847feb44d6ad3023c85a7a69612ba9b0fbdd4598a2f132a32d05fd76506ae"},{"version":"813c3ac9a4791be23c4965f079e0896b4550ca2e63087cadec93af2ee6d43ed7","signature":"f5d337314e3514573f2b9a1e7e7f37cc815c4bd3738c763f4fe837faf1f4ed60"},{"version":"73cf86f8f87f74106bf44589d8a0e0ca99d3badde3c3f493a82fcf3b8a96cb67","signature":"a74bf8723c60e5907ecb95e3d7f4fb8f0c1790e8cd0dd32a5aaf301208065c06"},{"version":"466441949f83e44e7bd4254ee2e1e1a2b5af85ad3700e99f604b6120a4aebb14","signature":"2d494cfb904e682cdcf97c2645cfe63196eec4e6fab413cf0ef8bf5033a6f411"},{"version":"a7686d1f59cc651be217cc1420027e31baa82f0ae6b4991f36e9be1c8a7fe3c8","signature":"fdcb0f02c86e8dc1a2461e937ec5f24eaf7ee16ce51559c1d70a31c559747721"},{"version":"cc48bde0fa1c7b0ccfda6f6caa299ac2158de91bc6f6ee66cbaec24b19b4ee91","signature":"9986f78a6ee05fe3964655cde3b03695f361d084118317c8ce729baa934403d0"},{"version":"e0b6a4ac73de30899c21274962911f21a25c3a65ea0bd8a83ade05263c6c25c2","signature":"ad35d6dfe3ac904572c903aadb1fe27da68c63bf40bddf2146592893766faca3"},{"version":"dab26d3810fc078fab5989fd5b2a5fb127eb47442de5a6b5328fd147241c99a3","signature":"fd9e9bb5fd07ae1c471da8ea9c098d412ef6996fcd28c170237eabad21f03f56"},{"version":"c3f2994c68bfc76489593c0e6adea7f133fa092e1f08aa7dc1206ee39116e81d","signature":"75e5ca8ecb4e002ec013dc81b8c73ed0b6ac987c7f7c4e9df6a6cd2310bd4f2b"},{"version":"f4965adc62d05502dd5bb15920869c66fcf99a369807ae0b1484c888f6a79dbe","signature":"c753ae414649909c7c2db58790dcf657020b7226198135783ade6229fe273934"},{"version":"21d8f5f4f8439150dda71c17cf9af555498f13b66702bd3c53e88d29f9885747","signature":"1c93a19347a3c94c8f0b3b0de6ff9f3b6e13b52efa447989f6647946b4a7bbc2"},{"version":"eca42e7d96bbff08bc1f8b71c28549923b2712d2c991982a6fc70b6d3a954f66","signature":"7f2b8bf87329450ce59f6ad184ad01ac0e44d8f9cff451a3437d21a3e24c0432"},{"version":"32a881eb6e28fce7804733674392782c67f9b206669eee319fe728ecfa52be96","signature":"0b95d5838bca4ae0fc61382adad4ec2a203b767c36310a21b0f4544018014dfe"},{"version":"4fef640e44b64f31a1c2a43d6d036f4eca98d158963780d16366781834e014dc","signature":"8f399a318e33ddca38b6e298365c1d94ef84766bfd0be64c46485ecdb10e6eff"},{"version":"83867b0415a8e33d9e6655b639c8e5c04b03820884236126a838dc5f84f4b1f1","signature":"a696a531ca8a420bf6b2109ab85cb7f9e21c35165520b6eca574a7aa55421824"},{"version":"7e53b00c99fadfd2d4fa2b274290fc9249fa2ba485b90fafed62d5a43ddb25b5","signature":"639b10aab0920aaeac04252259a90a1daa30491a00d1d0ff99252cfaf203d926"},{"version":"c05eedff90a89df64ac326eb49782d1e94646c302e57d680ad66044192e83a0c","signature":"359e0afba160b4b4cf34eca6dcaad88af74edfb679f9465c7ed981cdeca423e4"},{"version":"7794b6d37b2248e892ea311d3b193feed5276c91e66d184483a9f3dcc8ea4d5d","signature":"ad90047aecdd8f5a29c27173124413f18029001bda342c978a7a9d197319017d"},{"version":"9b15584bb6e57def1f3c0999a6549a48a3bb631e72fa4ad8cd724ac0432816b6","signature":"01f69376a9226cd91b7f71cea3a80102edcb4df910a1dee4fbf6b222835e6f46"},{"version":"5e3c1d8f644583c697522170302f405e6d723696150f43c6f21efe5c66b245a1","signature":"b05760029b5a44d79f6b8d2556bf43f7d32595eff16d047cab842a835a716575"},{"version":"c289cc2c1d319f6357fa628ad3a2598a78ec8b57c5bc53610522d2203ab5c0de","signature":"f9ad5e7a4736b8fd64b113deb5f4262601c69678c9e818a1fe0a9f3a64b4d608"},{"version":"0f8b8bad6dd336917f9fab60af2eb8a42a1c458d596ee481a7ff67b5facba3a1","signature":"6617d0f61439a9291f5eed3b421546ac18ec8319852d7d39a0e341065c82b253"},{"version":"2402b79db79ee990c214278bc9b4e2dc11cf6c3d588e2a511fe02c1c0a4d78d8","signature":"96c9a0279cff69a0f7550de24bb1b9144cb382a806e86b330e7fc0a4bc36b173"},{"version":"ce2eec1cd315fe3213fabcf42273111c9081e3400c82d2d1ceedca2489ec82f7","signature":"0e7bc94df74e24c969dc5f1def7c246c6aac0e572bb5868c850d7586f5f479be"},{"version":"69dc16ad613f64fdaacbae76778ae04354939bd41957b46c6add7f45d6dff821","signature":"721e567698d06c7146e4631c0405cd34b81f7b582e2d2c2131fc74e97691538e"},{"version":"388a08114a0633b0048452a1b8e6735f1e3c654e2a7850531623c1098f8b6749","signature":"6b308b571131497fb7995259f72574e9e8c0ef7a0c6ddbccdc844c9998660d6e"},{"version":"78ce89281a09343d498fa99b68160634f922f10880d7876664b178801a2effd2","signature":"7112c11636756b0c855d16335745e4eb614a2bce3f6203e5d79e9b8c996d2f91"},{"version":"666fc4e4f195fe2f2839085bfe24f0f36982e25cae1c662fa69cfd2595d7e494","signature":"5262133846a6cfb74863cbc7bbd314f07b4ea79e467185449e804739cb7d256c"},{"version":"f59434e187255537f03917cd69a63c78b1e17d6b630a8d32a4679c741573e74e","signature":"7d9dd4ef2708f56cdd16596a6ed0a3ca954ab48199df1e92c0fcd030aa085202"},{"version":"d031dea1fa43cf0b4481b65568a3f2a9da8164bf4ebefb65729266ea0c2c10a0","signature":"e287e4158a7d3a00950683544f51d353e751f1299022a3562a88fbfa02eabdc3"},{"version":"9b06b1000d65fdf8079e04efdf14763736923150b64392e37329effcf29c5179","signature":"3037ac6f43fd4df29f409d2996b7c5239d0cc7b3051d7a2c7acc434493965d86"},{"version":"d975e39bc7deb2203920cfb1ec682ed59088a8c5fd7a7c62c612b09497c0a6b0","signature":"f1defa902697f9c1e33a9e8454c088715fe68c9b42a51668c0f88958651fc449"},{"version":"b05d4875ac4d48eeca25f33a55a5f5bc2c6f03ffaca6c6b1b36f78a12fbfa3c1","signature":"713c757b802cc7af29331cb4c358e07f1b6a7fd02fd2d435b12ac15b34c7a1f4"},{"version":"b5d415018197f4521735a26fb1c4b97200d0d7e6684c01efa18cac349d9a7b85","signature":"2e9c7577e8b2141301d7549a58c9b65fb33d898f76531abbc6f3394945a5ea3c"},{"version":"386b411232f1e81b3a3e6b687ad84bf5be580fc73f6e50b48002c28b4a202455","signature":"2ddff34d957d352f4993ca2d99eacab9870c3850c989ebfc1658f7caa46c6a3f"},{"version":"afd4ea549642c205223eb4b752e7d3b2365a7532b09c7bd83aa96218d29fa2f8","signature":"b67d62b0cd170a03e7e9a5e84a1110121ae5c1d5d5f8a5cffca2a9fc5641be9c"},{"version":"ac01efdef177f41868748b1308d2af2b4c953bcc5be05a29c92f8f3de3deb1b6","signature":"98d2e012e7ab63864e03f539002fb11ec95eae37920c207fa8c54aab15e535ac"},{"version":"5ee3d2e03be6e91b204047b9eb57876d4c1417b8fa483bdd2e3aa217ac74bbac","signature":"4a5c6c9f8f5d8bfa487cb395d01f8704fa46e597b5424fde099302d0f2b8e9d3"},{"version":"9b69efe39faa7f56978ee3b1bf3d53dd2adecfa4a258f4e63ad9e17101f5a564","signature":"ddffd169cac3718b180ee1a4a2772ffe135e4d1e06db075af683e3d2ca15a0ce"},{"version":"e30e3f7c9f339dfe14b85f6e905124c9c5d793e428e7208865624af884a9fa50","signature":"f75a3a3cf5bf7d7ef7068afe39aac37c787cae2043e90dfd94c967b6d818ab0f"},{"version":"c961cecd5b6d82bb51eb5f7ff2c7beb450ad17b94cd4ff69ee7b4ac0573d7daf","signature":"682006b8c1753c1e6fd5454df86d94fd27d60f8612dfce35b7af784b8d11539b"},{"version":"de16b95e4ca50846524d98985d5df100c20fb228a3f5f47ca864b259de670fbb","signature":"e1920744eb0253b6394040c7263824fd1f77a96befeeba64c2d476902e80cd76"},{"version":"765f39a5b08758e0ff15b8ba43eccde198b2ea82f955bb628c5c89f61879a874","signature":"11ff297e22645ded852b70582c2af82cb5a3832a36dfade226ab2913c03a482f"},{"version":"a38133cd47cf99e84e7c27b41c1b605d4343f87be7ce3f88f24dc50e09cd126f","signature":"820f329e737a14f25dca447a7e4fb368ae9c7b0ede325179200e9d59caabbe53"},{"version":"33e048db9486686623f9e20fcd972c7bc4335615740565a47d3c38edd27be9ee","signature":"39f85d0bb8bf86c0d1b768e99e1c7913f6ef410169e7a2d5e06ebc3b3805e744"},{"version":"86b41c29bd17b17cb90a3006b5f935caf44544970ca99ed641b6faf202fea2e1","signature":"0f6b48ab2c6cc68d5f552b5bf66a73b8e721c467363f7f58ebf0c0656b5a376e"},{"version":"07f4948296d43a091443d82999f515e2ff1fabd34b4af4d1c9ebbed9974bc53c","signature":"82ce077e2253638efed5ebfa0d731f8d1bf26591c73916c1f00a58a3b316a62d"},{"version":"be46080ba56eba3aeebffba944882c83cd298c6146914769981d6d09fcade791","signature":"5273f347acebe1b8f7bc9cd51fc7c0aa48c40bcfaf09192908fbbd1591d45822"},{"version":"752de27faeb21841eb6658235576f4147e805a9e8cf3eca865cc072c0a14b275","signature":"9fd77e9a5ad66ff7e28c11dee037ba892801f5422fa3b668c214511fde2b0072"},{"version":"442a39678c13e630c97bcef29d0e929b114e0eef34410f8cfe337c074273eedf","signature":"5456a03a3e65b2d044707aa39add5717e4ee748d8deb54e155eaf0586c7b7493"},{"version":"c252703d6bac58616b6624d6c74b78f2d1ff7535079f484f5d625c3b3e55dabb","signature":"c90324103e3e28d9a64c9f62be638fa061f64f5b449cfd7dba9a3568aa7a95a7"},{"version":"7cdf38597e76fcae8ea6c15dc968ed945e32525d9c8160b3b4739de4be81429b","signature":"2d66f0aa1b5eab5d1b733ae8281d8ca402b3a245d4fdb0af8bd3e611fb5d3bba"},{"version":"f44a964daae9ba8589ec8f6028bf5dc39fbc8804f8608e77266510e52b8dbaec","signature":"9a6d8d5d597201f597c8f619c4ef8110976c6455effa3ebb731cb17415054e39"},{"version":"c702046b51d77b83eb243fa9a87ac9c7c6f90a291aa0db8aea0b8a15f2a8ef5b","signature":"e488e4b1d1a84ad891f5dbdeab607a49e4620e02dd0d7414076b6d5794687648"},{"version":"9a8f751c5b1bd6e3b33a57127f2ba9e4258a16509af58a3dc0170ad20d833eef","signature":"9f161d98f452039d8624a94566fbf1a2f78f5f47bf2ebd730ea0bfc47d8caac7"},{"version":"75ac57972004a2645098997b5c1064f09a22ecc36865d4a692b8c3d9d890972e","signature":"8bb98bd88a3a0bd5c8f6d64ba30ec86d4dad17c92db1be659c3861b15414d59b"},{"version":"92cc8535098230c6a7457c11b501c5f5d3929014fd8743f59a5cb69384a00615","signature":"2e7e7d479c1c0ad2ebb82051a12df781fd6bec1a7a2cb430b93ef091eb181eb5"},{"version":"0ffe6a5eff9bfcf4ef50e4e28b8e257fa9d4210b2bcf7a48a2acfda818ee5ff4","signature":"6dbd43019e109f5a6adae6449bd22e61611f13d6cb8796048cdab9a55769c56a"},{"version":"464d374396eb3d730a5a3103e681d353aaa3efbc9860fb540465d3f6228d7630","signature":"36d0d03b1fc91419b4bec9486c6b81595699a7326ebe12382afdc61c700d7f0c"},{"version":"680e89bcaa7510c2e85dd5df3e2ac824d27e7ac6403f8d33d5b91dc5e97e8d64","signature":"0d0a1bf4882fd9ba6fcdf9d5358de2c45f7f0dbb5bf5b8da157c4793a2490373"},{"version":"41b33ce18c1fa63ad75a7212d0a0b56983b349750832cdbfdfbec310a86c8ae6","signature":"8f06b738fa0dae9e731ddaf5ff164bdd2c3fde6a38119e0100d0c02b6606e680"},{"version":"2d20394dfe778b0e6d810f304c4df13baef91e2956860d7fb81a93db10d97b18","signature":"0e63101e2d1d1522efd91dcb4e1ccdb63beee7d3caaec1a9203093095734f15e"},{"version":"072d0aa0a079bf983dbccdd8789f45cd8ba70d08d99ee485d2588d110d782325","signature":"50a31c87a0fa058eaf90a46705f48620b75b266346b494415a14d684c7da7395"},{"version":"14ddd77fd4a96cfd30e5ddc55873172bb9bd4078b356009faf8402811dc2572d","signature":"a079ff0c33ef13cc061ad7f6695ff8edfa435be8195f7706b3c3bbc91c77571c"},{"version":"6bbfcac2a5586666ac04d43df9c51e533411b6a5b113318de6fad6dd6b06f0b2","signature":"0775ae94319dcfc523a98bbcf519d14c27ee040a86c90acead1967052c9e8188"},{"version":"ff7030e7b2e108c5453f8a17ab04d75ac102e8241055f3c0fb4cf2f29d1e6703","signature":"f08771637b9894592f30d98068207367708fb74e7c88b3dbf90665c488120603"},{"version":"8e28842fdd19730994f81b983bdfc33d74dee9a85c195503e43618427df94bd3","signature":"717610f93b0ecc2f68261ee95a96b27b813487a0b0357cb928afd48b84883060"},{"version":"a3be6aff738f2ddb337a46dff8f86878382fe36723ce20a17a00ad0f35738a9b","signature":"325ff002aea559ff0c19a237548173e7a9a8eb3b5d72624610697ebbc3bb3e27"},{"version":"e98e56954850971bcc102a176df7eb10e211017fcebad938fe296cf3903b93d7","signature":"3e226ae598aa2c71d90333cd1e6b5c4f849a3fd2fdbfc8cbadceb028440affbe"},{"version":"df590b28093a13a2d4b19b5d84b63a99fc0b567979751eedcf656aef841eb849","signature":"efdfba9f01c46aeddcdaaeae75aaa68449f49c5229a661b90f77ec3870ac8cfa"},{"version":"b6ed09ae6c977e036985f3d51fedde538ac7e38f6d264fa299117a9b2ed4db09","signature":"382886c12f25e3b79521b34f2b9822d59bc971d8d2de1b6d169bb5fdcc4af529"},{"version":"d877905842f7e79d11aad26b49069cdd62eeda97c1ad95ef886fa095e7ed1f0d","signature":"f5c7b7280638c8d7190e7ad278982241f9f47bebdb0702917c2f8af85fc45f87"},{"version":"a92f000347755b04ea1dce635066f4eefde06b4c9e678aea0147a2544428844c","signature":"35602e4f9c44b823602b6980c36129c9a903b386945f9a83f810ca3df64d82d8"},{"version":"f6a34bc18da75bfe8866ea3f230f6f2a20c5ec5421be026074d0b2e6b6019b1f","signature":"25419c21e707946cce26b908165c9f0ec14ec82272f5bcb79a25e7b9123c8ea8"},{"version":"e5d7414b7a8a1032539bde73343d576dadfb95f1fd07aaa845c26897133d3508","signature":"fd55365a57c9e9e30674ca7fc63be408779f20c245487e5f507e25964098c99f"},{"version":"f390033c14e37c3e37cf57b0bc0496f4d6e8060a1c6e5f600c4eb4b6cff9597a","signature":"7b1ec174ad64cb1725f1ca0aed2ac4069baab8f4590914810d0e02e107895e8d"},{"version":"d6c9f998812a14a678407d5d205d537ddd2c35d45163914ca94851e06be20633","signature":"68527786790ae231e0cf15e5e50794a6359b5584d45a9180819fd9c9bb329232"},{"version":"9e764382af650282da112e54de7165ad56c69231f503471950050a2c11eab7d6","signature":"00b6b04c9e25c792e9071db683864bcef4dfcccb444f2884b70a823362640a90"},{"version":"733687cd08b716b09991fca7fba72433954057f8797d06588db588a2abf8e683","signature":"bb2531f43c70fc6b4e6d0a76286f8b54121a56ee2e2aeee9f4c0acc0fd914233"},{"version":"07bcfcd73a10121f4840f931823b38bd2fb222d51be3db2062c6ecfc1bba6eae","signature":"84099ad6270bc810ac365406ef17c6b178fdd03cb446b317c85a3e204d078de4"},{"version":"13c893f5a10ec0af106a7476a3365c36293960458c4d8c50899781ece83bfd71","signature":"f0a1c856b099c0fb1ca60a920e12f321b47c1b12a175b9a9fd39276f25e1ff58"},{"version":"95a3fb507b571610f875b4d75f4c7f6c67ba2a452b95f68bc153dc85d55e64cd","signature":"0615aca4b224f024df7602a3b0042237c979679cee159e6085b05cf8fe1cd891"},{"version":"8f87507021f2c8162fce74375f40f02a982babd3f2151c0827df2a75b03371bd","signature":"e31488663836629a8b6b87d12cc82fd3b28034d288cfcc0b3cb2365b762b7b78"},{"version":"73a0cc23944a7bce6856757d68b3d079edd7c2de0812c9504c2819f30accae5a","signature":"3f4cd7c373aeae3f6b010eb1ba3aed5d06728c22768d20dc9fc7dab2d7e458d2"},{"version":"ace1f0a770cb5872187fbf5ec739483cb30f92e2f9bc09c8b67c83351b11c017","signature":"93b58dcd300dd8f08dec4a956ba56b414e319310b59ca186422e5739f88bce16"},{"version":"d2146769683d32edc9888e69b24291505dba96a81fb17929e01f6bc26d69e87a","signature":"f7a834ddbcd50a45c3176ee9704cd7500c39b202fd37e32ea039738b17d2285c"},{"version":"4c03040570d648054a5180e827eea3f334b38235087480c022e0602f908c4c66","signature":"4d7cf21c5c36c3b6c22f45da69f31fe576b5964e068bbd7f3f01d1a9aaeedb1c"},{"version":"a95c01bb1ff97361ca1ca7f18ceedce6cadf82420dc8d3d49115aea0705d3f98","signature":"42cca77d4d88ff6f81913476791ecf776e607d00899c1a531b2f7408504913f2"},{"version":"0fd03e91ce37a1610dac81118b33eae77a46f3df74c5882b0ee18782e9770d64","signature":"dd27d147a99658eeec0762624f80967eccb59ceb09be593e150352967fff6b66"},{"version":"7e746959c17a31f42c72dcf5eacd45db438a6117fd6dd6aad54539d725c73a00","signature":"c29e1fe71d87b11a12857431d2ab9da6cf61ba18b804b82739b7ab4535d50dbe"},{"version":"9ddf74e5ed103accc0ce8a8038385bd3701f3c29d248e22e270da27d9e6133a5","signature":"952fd6fae615028b530123e4e17238f480397fb08c27e1ed20a2211d71dc6007"},{"version":"092a4fa604d9d45e9653a1151af6d16eb8da30ecbe47cff1c0c7bdee1fa46da2","signature":"3ba43b1d12972096d780293c1205f8480ed1cb39749c75de21388aa60fe47b2c"},{"version":"ecf9a3c748e6bd44216fc68170f6482e9544048639ed6d489393109293530cc8","signature":"67d749a631dddd2a3d4c97c35034970addb65cbbd807e81a3ed93d0c64ed29a7"},{"version":"08667b17363f80e9bec2b5edbe690731d02f41652a79049fcc109d59dd216170","signature":"417d6bf795c5d8930497030e76ec63642d7cc840da788510630ca724034dad72"},{"version":"16f2b46c705bf4ea8452edc4297b68d62a818600d843fd8081a05eeb7c615a8a","signature":"f192c60be78e238732a3aa09759991834633fbde6e80c1b66180dee828d4c9f9"},{"version":"009afbeaeff2b93a22dac88a665f5dd2fd18ebf3e72a06ca43d6c4a1384c0fda","signature":"5bd7046df9bda573bd5d05da99e337ef2a13cd6ef4727845741d0509959bf42c"},{"version":"7a8bfefd403987cc39d460e158e5bafa35e42a5c50c97052a44abf7af5366e5b","signature":"473a62d4306739eda703ed1ac319cb20968bc48d9ab2d02eef59329a9742e245"},{"version":"b52d4fdfeec42f6e1ecbeccd45deec1dccad8677ff66c5add27cada21b120f88","signature":"e39b7f56257b23109adf6eec10b216521c475929d637307f1c19d27fc6167338"},{"version":"c45c4e8ebca4c7e633a600c063d305f7c7b515008d284d01f61ed0615e8a1cf0","signature":"206d565048d8b3c6c7b0b659388f2603fc58de6ec28047c18382a591d59118d0"},{"version":"77d0ec594521372161f4bd7264803fae0be3c2a22145dc96cf435b3f4be6d620","signature":"cb52c1893f37489268bf1a50cb4dc2bc2eb0c2de12e3e0fd49cd5ac7280d3ca6"},{"version":"55ab3cf9d7fbd6e8c910b2262dfe77134c3d1ef1c24ed98c0bbed495ea283acb","signature":"b64ef296a6ab1187ec9dee4cdc4c40bd9459ca4412593fad52a184f4740870f6"},{"version":"d1dbc6515ca6e2ea85468c6f6711c17050265e7bae94744306041ec9b7aacc56","signature":"0ec2aadde09b3cefa474330235c0660ad5710cf832e42b938b55e9479c30e897"},{"version":"a24cff4e66408d6bb2e50363907a5248bf7ee67e52c58e803337a9b3560a410d","signature":"9e070ab8efd5525f966ad4dbca20d23ebb3ef32b82cd739425377a5bec5269fd"},{"version":"d5cf10ef3c71d81627c62cbdf8aad53cf39ef5a517341a67e20943123245bb43","signature":"4b89fed7b0f222bf4d142bd7c427214acd73ab5c379eb84581f98fa55987b385"},{"version":"fa99c463dfce1d33d5e0d2cae60a1120ff829abcffc5d84c21ae72f74712e42a","signature":"c9b9bfeeb5e58c8abc50beecffdcdb7a7922b39e8bd87d5a061742e453d18532"},{"version":"d459da40fa48467d4c5868b9ac8c67400a4e0c64095a2723ba2912e27d57420f","signature":"0ebc0b98c4a597eeec9d827f23de5b19a26d7c84ea87548624122579f6cf1c47"},{"version":"cb00947a4c6a6c0cf6f527990ff6f41ae8a3aca174a3fb5ef0aa1f41dcf120f4","signature":"7adf811d88b945bea2c165dd5f055f46c7527751888d75665d091c30ed695681"},{"version":"7c3468e92903bad5a6d24a332f82eeebb58f8a2bc86e61034a4f2aeccd62dd31","signature":"356fcb7318e4396e39f976d74c71250972de308442790851c6fc7d545515a348"},{"version":"c9e1ba040566ec15c16f6162f13d782678812dab014bdfa9b1966e45e47ac8c7","signature":"84feddc140f4eda7a499a6b13e4c49305e64f8e45338216e962d9810e55dbe05"},{"version":"f1b9c13b36daae6a58135aee3463e78bf3db33c7a6c222984a3334931585be9d","signature":"4428d9f02513d3b7722178ee8229cdb668353b8272864aca39046308d1e27f43"},{"version":"30d4ccf51c85873d4ad39e0d17fc0b8bb19f16356f19ba4b00aa93f2d0f6d4c2","signature":"0404680361d5785a1251b412f92ca0350f3fda89850fbdb2198370f69fe0d67e"},{"version":"ed9292185810774b2812fd32859afb7fa9fd7c6eca74be42cfa59d153da82459","signature":"e768845b2bb0f808722ff4abc78409a8f41aaceba7d4009ae218ea308addafff"},{"version":"7fafda40ea450f6fb029f9512c4eecf5cf07105e2d0cbd62064f1d462723a9f8","signature":"61787a6c4fccab8bb87463f89f979bfe169a20c22cb8d1b7c183b01cdc494d0a"},{"version":"856c2dc8f49d6db5f4821fc78a55fae58cfc874d04984262169a5a54d289b3a2","signature":"a8b188e3cbf9f386996b5e932ca4303a708f475b268ac2895a4a28a72e8c0972"},{"version":"9318bf9ad613bde387c2f4927c35fb2f9979c062bc1ab910a71c5dfb630f41b7","signature":"138cf2eb0363e1485da84bd5090eb0df0397572fe7a40449243ca0bf4c85cb34"},{"version":"5a3ec101cf2a0d0705d1650820c769d3d3247fe4d54a5a0964e6aa49fde4f9f4","signature":"31eeb7cbaaeb3136057785264ad7bc1ccd3666a962cfcac60d33e81d0274df44"},{"version":"449ecb3de0100a7906bdb8eb70272b17cdd606b15bbcb87e568f92068079e81e","signature":"b50ed306e9e4094110121b3fc653b01aa9f2b3b846813d76e3592976e075505f"},{"version":"fb4a51af9996918ad6a02a0272ebccb243bd18229ff0dd2865da3115251661cf","signature":"08a773556c6e31be739c73400aa908b8e4dc72bfa0cf2ebbf52485fff11d5619"},{"version":"7a1a0587da8a65b93b9ad579e2955c08d7ebd08413f61c9e8622ab2717aee1d5","signature":"409a71b09ec3e97d170cf3c6eacbe3b79731e0c0fb3e97e37ef33e5653e1d67e"},{"version":"b92c67e149140d3b5bc3637cb1f2a3b98990d21f16284ef103da00af88d91c05","signature":"20c8bd3a2917306f5266d4b9218922f68b94da6b1310c666b92ccc21ee21d807"},{"version":"b6be846a43560355d8d65720317bbe5b55d9fa4c9dd66379772a32a3f8748a64","signature":"0ca14f6ca40c5295f4541c999ab52dde2e514140e9f73e1be7fe231b557a7e53"},{"version":"ff9f2b01cd9e0adc3f03d2bf85f99e42c967fbfa3c13ce8a8618e7bd57e9b6d5","signature":"9aad5f476ad86f0a594f86290501573b2f588e256f8c38e5d24c174d716d47c2"},{"version":"096b311734ceaad25e2d5ed708c385017c61d794e55a23ade7d0502b48b7cb45","signature":"8986dae0c5316b3c99dc16bcd3d414057bf6cd3b395387f1d3cd8ed3e5ff9904"},{"version":"5614b140a360e5df88bef2a88445346261e4793e4757f51ed23ed5687ba38352","signature":"6312d71ed3239cdedc216e324a5f021883bc550c471e7b55f9db8c22aad63ff0"},{"version":"431ed9a9d14fb820c1bd19e968fbd0473e8eaf964f8b0168528080aaa5093a0f","signature":"be81fcf84654bd58aa776d2838d4d12018c70eb33d371d27e3798f51729b8b80"},{"version":"c9665be4bc1fee3d7cf381d9d8076b316b640420d99754b7e10b17ae7e7bb624","signature":"bc388ebbe4f5cff420b9b33000cc06f80ce92638e08f9ed1f27788c04bd8765e"},{"version":"ef448584e4e6579fcbafd7d56576907c47ed10e686e30ec4e5b5affa2c2bb62e","signature":"07fda70730090df550194f1b746bf7662ab6bc822d5b83ee39ffceb79f79143c"},{"version":"00c6f2ec25a3c2784f23c0fe6729d7eb687905b72d99e26e141817c591c5f059","signature":"abcaeeef722134fd8644f3aa58bd7bfbf3c4e53c86089d061554224b497ba7fc"},{"version":"36290629d28f73205ccd755785698518219bc6960f72409163d0cb4ddf43af46","signature":"e3e748f6cdced3d84241ea085cd2a33fed3786ad4b505de9eb7293678a5c5c15"},{"version":"6ddf069ecfa76b693949deedb93b328e276c51d2421a0a6dbb1e57b652902cd8","signature":"acb10d756ba7237876fc2c2deb1e531f35b3bac783a056a4145a190e49669257"},{"version":"0710ca00a482df2161d9b2aa3dd70a349d9c53a1542181cb41151754124a37b9","signature":"119816941f291d63803d89b44964567c30cee52a7cd7b9d3a58f4d08e8630d44"},{"version":"4999b27ec584c208f97f9c031f2aa7a35884eedf904dae7f52531ce420cc509d","signature":"6c7da223318941e4720a4d1ede7310787ac5c147a8c1ec6afb3e2ebca86fbf6a"},{"version":"4dcf0abaad211bf1ab8a9dc4549c33d8eab0080488a2c7cbaac045fa815234b5","signature":"2f92081d99d84204dc5c9f5294dae6c35f619732c649d222d358fd2897726177"},{"version":"343de9b06a28ab2cba9b52da7f8d011ee67597460c180c47f822b5fbdcc14e6e","signature":"17d4dddcdc8af645977e7b36f8fccf8e3970587cb75e0976736d902653cbdaeb"},{"version":"141c5a3c5d9ef8e796b4b667e5c740f8eac6e82be3ec588b2a8a21f6a50803cd","signature":"36ef8c9aaee7490e6b794f67fdf0f019e87aea73fa835a8d21b77b2d32eb21b0"},{"version":"3a603f297b4ee0ba65f83a1b8f6d0a6040ae5e8584afce7c5efff8c721b00630","signature":"934f7fd1bd96f7e49c82e1242153d543d4891f8b60f21e777a2ff749f6145033"},{"version":"1e0a8ed975b24497bcacea1a7ce3a6c77c09cca6564af83e6bc87359bd1fdc8e","signature":"119f476d9200e478cbe0d4718f3365adc1a08d39373aaca9a6fa746e88650ad1"},{"version":"49b83e76a776f7a266d60eeebda510356cb1fc77720db7512fc77c4122302cd9","signature":"3cafff51d2eb884a5fb175836c6559300d480c829cf7917d66adf3019ff2971f"},{"version":"3ba6477962523e9839c713f5999f336b3f46091a0f0be3996c7f869f0651e012","signature":"f2d2ac8bb32d70d376df55d5170e5e78e5b18b022b10086e06e87f8e276a324b"},{"version":"7b6d554f6d34c5d691ef5933affdd9cfb1af120f0546b0ba5309665b50ad68d6","signature":"fec1019418e2f5ef8d5dd3efd90911d3472e29c16d529f6591e9c61f0e3394f3"},{"version":"e2c48da2a267db97620cb1dc37361eb6108d13b191bc9845edb70e72457cc268","signature":"92596f93df0a40c067f669af97c0ae4a712e66ec0798e6345b3eb0ee7fe1a4c9"},"cf0e707b9af46eef58ac20a75be391f546c66c814b75871f1323bfef68804f71","09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"308b84e1943ef30015469770e931eb21b795348893b2a6562ca54ea8f0b3c41c","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe"],"root":[[74,238]],"options":{"composite":true,"esModuleInterop":true,"jsx":2,"module":99,"outDir":"./dist","rootDir":"./src","target":99},"fileIdsList":[[318,329,332],[318,329,330,331],[318,332],[318],[289,318,325,326,327],[289,317,318,325],[239,318],[275,318],[276,281,309,318],[277,288,289,296,306,317,318],[277,278,288,296,318],[279,318],[280,281,289,297,318],[281,306,314,318],[282,284,288,296,318],[283,318],[284,285,318],[288,318],[286,288,318],[275,288,318],[288,289,290,306,317,318],[288,289,290,303,306,309,318],[273,318,322],[284,288,291,296,306,317,318],[288,289,291,292,296,306,314,317,318],[291,293,306,314,317,318],[239,240,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324],[288,294,318],[295,317,318,322],[284,288,296,306,318],[297,318],[298,318],[275,299,318],[300,316,318,322],[301,318],[302,318],[288,303,304,318],[303,305,318,320],[276,288,306,307,308,309,318],[276,306,308,318],[306,307,318],[309,318],[310,318],[275,306,318],[288,312,313,318],[312,313,318],[281,296,306,314,318],[315,318],[296,316,318],[276,291,302,317,318],[281,318],[306,318,319],[295,318,320],[318,321],[276,281,288,290,299,306,317,318,320,322],[306,318,323],[70,71,72,318],[250,254,317,318],[250,306,317,318],[245,318],[247,250,314,317,318],[296,314,318],[318,325],[245,318,325],[247,250,296,317,318],[242,243,246,249,276,288,306,317,318],[242,248,318],[246,250,276,309,317,318,325],[276,318,325],[266,276,318,325],[244,245,318,325],[250,318],[244,245,246,247,248,249,250,251,252,254,255,256,257,258,259,260,261,262,263,264,265,267,268,269,270,271,272,318],[250,257,258,318],[248,250,258,259,318],[249,318],[242,245,250,318],[250,254,258,259,318],[254,318],[248,250,253,317,318],[242,247,248,250,254,257,318],[276,306,318],[245,250,266,276,318,322,325],[73,318],[74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,318],[318,332,334],[318,330,331,334],[335]],"referencedMap":[[333,1],[332,2],[331,3],[329,4],[328,5],[330,4],[326,6],[327,4],[239,7],[240,7],[275,8],[276,9],[277,10],[278,11],[279,12],[280,13],[281,14],[282,15],[283,16],[284,17],[285,17],[287,18],[286,19],[288,20],[289,21],[290,22],[274,23],[324,4],[291,24],[292,25],[293,26],[325,27],[294,28],[295,29],[296,30],[297,31],[298,32],[299,33],[300,34],[301,35],[302,36],[303,37],[304,37],[305,38],[306,39],[308,40],[307,41],[309,42],[310,43],[311,44],[312,45],[313,46],[314,47],[315,48],[316,49],[317,50],[318,51],[319,52],[320,53],[321,54],[322,55],[323,56],[72,4],[70,4],[73,57],[241,4],[71,4],[68,4],[69,4],[12,4],[13,4],[15,4],[14,4],[2,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[3,4],[24,4],[4,4],[25,4],[29,4],[26,4],[27,4],[28,4],[30,4],[31,4],[32,4],[5,4],[33,4],[34,4],[35,4],[36,4],[6,4],[40,4],[37,4],[38,4],[39,4],[41,4],[7,4],[42,4],[47,4],[48,4],[43,4],[44,4],[45,4],[46,4],[8,4],[52,4],[49,4],[50,4],[51,4],[53,4],[9,4],[54,4],[55,4],[56,4],[59,4],[57,4],[58,4],[60,4],[61,4],[10,4],[1,4],[62,4],[11,4],[66,4],[64,4],[63,4],[67,4],[65,4],[257,58],[264,59],[256,58],[271,60],[248,61],[247,62],[270,63],[265,64],[268,65],[250,66],[249,67],[245,68],[244,69],[267,70],[246,71],[251,72],[252,4],[255,72],[242,4],[273,73],[272,72],[259,74],[260,75],[262,76],[258,77],[261,78],[266,63],[253,79],[254,80],[263,81],[243,82],[269,83],[74,84],[75,84],[76,84],[77,84],[78,84],[79,84],[80,84],[81,84],[82,84],[83,84],[84,84],[85,84],[86,84],[87,84],[88,84],[89,84],[90,84],[91,84],[92,84],[93,84],[94,84],[95,84],[96,84],[97,84],[98,84],[99,84],[100,84],[101,84],[102,84],[103,84],[104,84],[105,84],[106,84],[107,84],[108,84],[109,84],[110,84],[111,84],[112,84],[113,84],[114,84],[115,84],[116,84],[117,84],[118,84],[119,84],[120,84],[121,84],[122,84],[123,84],[124,84],[125,84],[126,84],[127,84],[128,84],[129,84],[130,84],[131,84],[132,84],[133,84],[134,84],[135,84],[136,84],[137,84],[138,84],[139,84],[140,84],[141,84],[142,84],[143,84],[144,84],[145,84],[146,84],[147,84],[148,84],[149,84],[150,84],[151,84],[152,84],[153,84],[154,84],[155,84],[156,84],[157,84],[158,84],[159,84],[160,84],[161,84],[162,84],[163,84],[164,84],[165,84],[166,84],[167,84],[168,84],[169,84],[170,84],[171,84],[172,84],[173,84],[174,84],[175,84],[176,84],[177,84],[178,84],[179,84],[180,84],[181,84],[182,84],[183,84],[184,84],[185,84],[186,84],[187,84],[188,84],[189,84],[190,84],[191,84],[192,84],[193,84],[194,84],[195,84],[196,84],[197,84],[198,84],[199,84],[200,84],[201,84],[202,84],[203,84],[204,84],[205,84],[206,84],[207,84],[208,84],[209,84],[210,84],[211,84],[212,84],[213,84],[214,84],[215,84],[216,84],[217,84],[218,84],[219,84],[220,84],[221,84],[222,84],[223,84],[224,84],[225,84],[226,84],[227,84],[228,84],[229,84],[230,84],[231,84],[232,84],[233,84],[234,84],[235,84],[236,84],[237,84],[238,85]],"exportedModulesMap":[[333,86],[332,87],[331,3],[329,4],[328,5],[330,4],[326,6],[327,4],[239,7],[240,7],[275,8],[276,9],[277,10],[278,11],[279,12],[280,13],[281,14],[282,15],[283,16],[284,17],[285,17],[287,18],[286,19],[288,20],[289,21],[290,22],[274,23],[324,4],[291,24],[292,25],[293,26],[325,27],[294,28],[295,29],[296,30],[297,31],[298,32],[299,33],[300,34],[301,35],[302,36],[303,37],[304,37],[305,38],[306,39],[308,40],[307,41],[309,42],[310,43],[311,44],[312,45],[313,46],[314,47],[315,48],[316,49],[317,50],[318,51],[319,52],[320,53],[321,54],[322,55],[323,56],[72,4],[70,4],[73,57],[241,4],[71,4],[68,4],[69,4],[12,4],[13,4],[15,4],[14,4],[2,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[3,4],[24,4],[4,4],[25,4],[29,4],[26,4],[27,4],[28,4],[30,4],[31,4],[32,4],[5,4],[33,4],[34,4],[35,4],[36,4],[6,4],[40,4],[37,4],[38,4],[39,4],[41,4],[7,4],[42,4],[47,4],[48,4],[43,4],[44,4],[45,4],[46,4],[8,4],[52,4],[49,4],[50,4],[51,4],[53,4],[9,4],[54,4],[55,4],[56,4],[59,4],[57,4],[58,4],[60,4],[61,4],[10,4],[1,4],[62,4],[11,4],[66,4],[64,4],[63,4],[67,4],[65,4],[257,58],[264,59],[256,58],[271,60],[248,61],[247,62],[270,63],[265,64],[268,65],[250,66],[249,67],[245,68],[244,69],[267,70],[246,71],[251,72],[252,4],[255,72],[242,4],[273,73],[272,72],[259,74],[260,75],[262,76],[258,77],[261,78],[266,63],[253,79],[254,80],[263,81],[243,82],[269,83],[74,88],[75,88],[76,88],[77,88],[78,88],[79,88],[80,88],[81,88],[82,88],[83,88],[84,88],[85,88],[86,88],[87,88],[88,88],[89,88],[90,88],[91,88],[92,88],[93,88],[94,88],[95,88],[96,88],[97,88],[98,88],[99,88],[100,88],[101,88],[102,88],[103,88],[104,88],[105,88],[106,88],[107,88],[108,88],[109,88],[110,88],[111,88],[112,88],[113,88],[114,88],[115,88],[116,88],[117,88],[118,88],[119,88],[120,88],[121,88],[122,88],[123,88],[124,88],[125,88],[126,88],[127,88],[128,88],[129,88],[130,88],[131,88],[132,88],[133,88],[134,88],[135,88],[136,88],[137,88],[138,88],[139,88],[140,88],[141,88],[142,88],[143,88],[144,88],[145,88],[146,88],[147,88],[148,88],[149,88],[150,88],[151,88],[152,88],[153,88],[154,88],[155,88],[156,88],[157,88],[158,88],[159,88],[160,88],[161,88],[162,88],[163,88],[164,88],[165,88],[166,88],[167,88],[168,88],[169,88],[170,88],[171,88],[172,88],[173,88],[174,88],[175,88],[176,88],[177,88],[178,88],[179,88],[180,88],[181,88],[182,88],[183,88],[184,88],[185,88],[186,88],[187,88],[188,88],[189,88],[190,88],[191,88],[192,88],[193,88],[194,88],[195,88],[196,88],[197,88],[198,88],[199,88],[200,88],[201,88],[202,88],[203,88],[204,88],[205,88],[206,88],[207,88],[208,88],[209,88],[210,88],[211,88],[212,88],[213,88],[214,88],[215,88],[216,88],[217,88],[218,88],[219,88],[220,88],[221,88],[222,88],[223,88],[224,88],[225,88],[226,88],[227,88],[228,88],[229,88],[230,88],[231,88],[232,88],[233,88],[234,88],[235,88],[236,88],[237,88],[238,85]],"semanticDiagnosticsPerFile":[333,332,331,329,328,330,326,327,239,240,275,276,277,278,279,280,281,282,283,284,285,287,286,288,289,290,274,324,291,292,293,325,294,295,296,297,298,299,300,301,302,303,304,305,306,308,307,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,72,70,[73,[{"file":"../../node_modules/.pnpm/@types+react@18.2.45/node_modules/@types/react/index.d.ts","start":381,"length":19,"messageText":"Cannot find module 'scheduler/tracing' or its corresponding type declarations.","category":1,"code":2307}]],241,71,68,69,12,13,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,11,66,64,63,67,65,257,264,256,271,248,247,270,265,268,250,249,245,244,267,246,251,252,255,242,273,272,259,260,262,258,261,266,253,254,263,243,269,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238],"latestChangedDtsFile":"./dist/index.d.ts"},"version":"5.4.3"} \ No newline at end of file diff --git a/packages/openapi/package.json b/packages/openapi/package.json new file mode 100644 index 0000000..c679def --- /dev/null +++ b/packages/openapi/package.json @@ -0,0 +1,44 @@ +{ + "name": "@repo/openapi", + "version": "1.0.0", + "description": "API schemas using zod", + "private": true, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + } + }, + "sideEffects": false, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc", + "dev": "tsup --watch", + "clean": "rimraf .turbo && rimraf dist && rimraf node_modules", + "lint": "eslint . --ext .ts,.tsx" + }, + "dependencies": { + "@asteasolutions/zod-to-openapi": "6.4.0", + "openapi-sampler": "1.4.0", + "openapi3-ts": "4.2.2", + "httpsnippet-lite": "3.0.5", + "axios": "^1.7.7", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20.10.5", + "eslint": "^8.56.0", + "rimraf": "^5.0.5", + "tsup": "^7.2.0", + "typescript": "^5.8.3" + }, + "peerDependencies": { + "zod": "^3.22.4" + } +} \ No newline at end of file diff --git a/packages/openapi/src/axios.ts b/packages/openapi/src/axios.ts new file mode 100644 index 0000000..cde1f2d --- /dev/null +++ b/packages/openapi/src/axios.ts @@ -0,0 +1,73 @@ +import axiosInstance from 'axios'; + +/** + * HTTP错误类 + */ +class HttpError extends Error { + status: number; + data?: unknown; + + constructor(message: string | unknown, status = 500, data?: unknown) { + const errorMessage = typeof message === 'string' ? message : 'Error'; + super(errorMessage); + this.status = status; + this.data = data || (typeof message === 'object' ? message : undefined); + } +} + +export const createAxios = () => { + const axios = axiosInstance.create({ + baseURL: '/api', + }); + + axios.interceptors.response.use( + (response) => { + // Any status code that lie within the range of 2xx cause this function to trigger + return response; + }, + (error) => { + // Any status codes that falls outside the range of 2xx cause this function to trigger + const { data, status } = error?.response || {}; + throw new HttpError(data || error?.message || 'no response from server', status || 500); + } + ); + return axios; +}; + +const axios = createAxios(); + +/** + * Configuration options for the Axios instance. + */ +export interface IAPIRequestConfig { + /** + * API endpoint, defaults to 'https://app.teable.io'. + */ + endpoint?: string; + /** + * Bearer token for authentication. + */ + token: string; + +} + +/** + * Configures the Axios instance with the provided options. + * @param config - Configuration options + */ +export const configApi = (config: IAPIRequestConfig) => { + const { token, endpoint = 'https://app.teable.io' } = config; + if (!token) { + throw new Error( + `token is required, visit ${endpoint}/setting/personal-access-token to get one` + ); + } + + axios.defaults.baseURL = `${endpoint}/api`; + axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; + + + return axios; +}; + +export { axios }; diff --git a/packages/openapi/src/generate.schema.ts b/packages/openapi/src/generate.schema.ts new file mode 100644 index 0000000..ef1a33d --- /dev/null +++ b/packages/openapi/src/generate.schema.ts @@ -0,0 +1,78 @@ +import type { RouteConfig } from '@asteasolutions/zod-to-openapi'; +import { OpenAPIRegistry, OpenApiGeneratorV3 } from '@asteasolutions/zod-to-openapi'; +import type { OpenAPIObject } from 'openapi3-ts/oas30'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import OpenAPISnippet from './openapi-snippet'; +import { getRoutes } from './utils'; + +function registerAllRoute() { + const registry = new OpenAPIRegistry(); + const routeObjList: RouteConfig[] = getRoutes(); + for (const routeObj of routeObjList) { + const bearerAuth = registry.registerComponent('securitySchemes', 'bearerAuth', { + type: 'http', + scheme: 'bearer', + }); + + if (routeObj.path && !routeObj.path.startsWith('/')) { + throw new Error('Path should start with /: ' + routeObj.path); + } + + registry.registerPath({ ...routeObj, security: [{ [bearerAuth.name]: [] }] }); + } + return registry; +} + +async function generateCodeSamples(document: OpenAPIObject) { + const routes = getRoutes(); + const langs = ['shell', 'javascript_fetch', 'node', 'python']; + const targetTitle: Record = { + shell: 'Shell', + javascript_fetch: 'JavaScript', + node: 'Node.js', + python: 'Python', + }; + for (const route of routes) { + const generated = OpenAPISnippet.getEndpointSnippets(document, route.path, route.method, langs); + const path = document.paths?.[route.path][route.method]; + if (path) { + path['x-codeSamples'] = []; + for (const [index, snippet] of generated.snippets.entries()) { + const id = snippet.id as string; + if (targetTitle[id]) { + path['x-codeSamples'][index] = { + lang: targetTitle[id], + source: await snippet.content, + }; + } + } + } + } +} + +export async function getOpenApiDocumentation(config: { + origin?: string; + snippet?: boolean; +}): Promise { + const { origin, snippet } = config; + if (!origin && snippet) { + throw new Error('origin is required when snippets is true, generateCodeSamples need origin'); + } + const registry = registerAllRoute(); + const generator = new OpenApiGeneratorV3(registry.definitions); + + const document = generator.generateDocument({ + openapi: '3.0.0', + info: { + version: '1.0.0', + title: 'Teable App', + description: `Manage Data as easy as drink a cup of tea`, + }, + servers: [{ url: origin + '/api' }], + }); + if (snippet) { + await generateCodeSamples(document); + } + return document; +} diff --git a/packages/openapi/src/index.ts b/packages/openapi/src/index.ts new file mode 100644 index 0000000..00a5398 --- /dev/null +++ b/packages/openapi/src/index.ts @@ -0,0 +1,4 @@ +// 导出所有API schema +export * from './oidc'; +export * from './user'; +export * from "./generate.schema" \ No newline at end of file diff --git a/packages/openapi/src/oidc/authorization.schema.ts b/packages/openapi/src/oidc/authorization.schema.ts new file mode 100644 index 0000000..cefe3f4 --- /dev/null +++ b/packages/openapi/src/oidc/authorization.schema.ts @@ -0,0 +1,40 @@ +import { z } from 'zod'; + +// 授权请求验证模式 +export const authorizationRequestSchema = z.object({ + response_type: z.union([ + z.literal('code'), // 授权码流程 + z.literal('token'), // 隐式流程 - 仅访问令牌 + z.literal('id_token'), // 隐式流程 - 仅ID令牌 + z.literal('token id_token'), // 隐式流程 - 访问令牌和ID令牌 + z.literal('code id_token'), // 混合流程 - 授权码和ID令牌 + z.literal('code token'), // 混合流程 - 授权码和访问令牌 + z.literal('code token id_token'), // 混合流程 - 授权码、访问令牌和ID令牌 + ]), + client_id: z.string(), + redirect_uri: z.string().url('必须是有效的URL'), + state: z.string().optional(), + scope: z.string(), + code_challenge: z.string().optional(), + code_challenge_method: z.enum(['plain', 'S256']).optional(), + nonce: z.string().optional(), + prompt: z.enum(['none', 'login', 'consent', 'select_account']).optional(), + max_age: z.number().optional(), + response_mode: z.enum(['query', 'fragment', 'form_post']).optional().default('query'), + session_id: z.string().optional(), // 用于静默授权 +}); + +// 授权码生成参数模式 +export const authorizationCodeParamsSchema = z.object({ + userId: z.string(), + clientId: z.string(), + redirectUri: z.string().url(), + scope: z.string(), + nonce: z.string().optional(), + codeChallenge: z.string().optional(), + codeChallengeMethod: z.enum(['plain', 'S256']).optional(), +}); + +// 类型定义 +export type AuthorizationRequest = z.infer; +export type AuthorizationCodeParams = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/oidc/client.schema.ts b/packages/openapi/src/oidc/client.schema.ts new file mode 100644 index 0000000..4b21066 --- /dev/null +++ b/packages/openapi/src/oidc/client.schema.ts @@ -0,0 +1,45 @@ +import { z } from 'zod'; + +// 客户端注册验证模式 +export const registerClientSchema = z.object({ + clientName: z.string().min(1, '客户端名称不能为空'), + clientUri: z.string().url('必须是有效的URL').optional(), + logoUri: z.string().url('必须是有效的URL').optional(), + redirectUris: z.array(z.string().url('必须是有效的URL')).min(1, '至少需要一个重定向URI'), + postLogoutRedirectUris: z.array(z.string().url('必须是有效的URL')).optional().default([]), + contacts: z.array(z.string().email('必须是有效的电子邮件')).optional().default([]), + tokenEndpointAuthMethod: z + .enum(['client_secret_basic', 'client_secret_post', 'client_secret_jwt', 'private_key_jwt', 'none']) + .default('client_secret_basic'), + grantTypes: z + .array(z.enum(['authorization_code', 'refresh_token', 'client_credentials'])) + .default(['authorization_code', 'refresh_token']), + responseTypes: z.array(z.enum(['code', 'token', 'id_token'])).default(['code']), + scope: z.string().default('openid profile email'), + jwksUri: z.string().url('必须是有效的URL').optional(), + jwks: z.string().optional(), + policyUri: z.string().url('必须是有效的URL').optional(), + tosUri: z.string().url('必须是有效的URL').optional(), +}); + +// 客户端响应模式 +export const clientResponseSchema = z.object({ + id: z.string(), + clientId: z.string(), + clientSecret: z.string().optional(), + clientName: z.string(), + clientUri: z.string().optional(), + logoUri: z.string().optional(), + redirectUris: z.array(z.string()), + postLogoutRedirectUris: z.array(z.string()), + tokenEndpointAuthMethod: z.string(), + grantTypes: z.array(z.string()), + responseTypes: z.array(z.string()), + scope: z.string(), + createdTime: z.date(), + requirePkce: z.boolean().optional(), +}); + +// 类型定义 +export type RegisterClientInput = z.infer; +export type ClientResponse = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/oidc/consent.schema.ts b/packages/openapi/src/oidc/consent.schema.ts new file mode 100644 index 0000000..f8d5436 --- /dev/null +++ b/packages/openapi/src/oidc/consent.schema.ts @@ -0,0 +1,48 @@ +import { z } from 'zod'; + +// 同意请求验证模式 +export const consentRequestSchema = z.object({ + client_id: z.string(), + redirect_uri: z.string().url(), + state: z.string().optional(), + scope: z.string().optional().default('openid profile email'), + response_type: z.union([ + z.literal('code'), // 授权码流程 + z.literal('token'), // 隐式流程 - 仅访问令牌 + z.literal('id_token'), // 隐式流程 - 仅ID令牌 + z.literal('token id_token'), // 隐式流程 - 访问令牌和ID令牌 + z.literal('code id_token'), // 混合流程 - 授权码和ID令牌 + z.literal('code token'), // 混合流程 - 授权码和访问令牌 + z.literal('code token id_token'), // 混合流程 - 授权码、访问令牌和ID令牌 + ]).default('code'), + response_mode: z.enum(['query', 'fragment', 'form_post']).optional().default('query'), + nonce: z.string().optional(), + code_challenge: z.string().optional(), + code_challenge_method: z.enum(['plain', 'S256']).optional().default('plain'), +}); + +// 同意表单验证模式 +export const consentFormSchema = z.object({ + client_id: z.string(), + redirect_uri: z.string().url(), + state: z.string().optional(), + scope: z.string(), + allow: z.boolean(), + response_type: z.union([ + z.literal('code'), // 授权码流程 + z.literal('token'), // 隐式流程 - 仅访问令牌 + z.literal('id_token'), // 隐式流程 - 仅ID令牌 + z.literal('token id_token'), // 隐式流程 - 访问令牌和ID令牌 + z.literal('code id_token'), // 混合流程 - 授权码和ID令牌 + z.literal('code token'), // 混合流程 - 授权码和访问令牌 + z.literal('code token id_token'), // 混合流程 - 授权码、访问令牌和ID令牌 + ]).default('code'), + response_mode: z.enum(['query', 'fragment', 'form_post']).optional().default('query'), + nonce: z.string().optional(), + code_challenge: z.string().optional(), + code_challenge_method: z.enum(['plain', 'S256']).optional().default('plain'), +}); + +// 类型定义 +export type ConsentRequest = z.infer; +export type ConsentForm = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/oidc/index.ts b/packages/openapi/src/oidc/index.ts new file mode 100644 index 0000000..301a273 --- /dev/null +++ b/packages/openapi/src/oidc/index.ts @@ -0,0 +1,7 @@ +// 导出所有oidc相关schema +export * from './authorization.schema'; +export * from './client.schema'; +export * from './consent.schema'; +export * from './session.schema'; +export * from './token.schema'; +export * from './userinfo.schema'; \ No newline at end of file diff --git a/packages/openapi/src/oidc/session.schema.ts b/packages/openapi/src/oidc/session.schema.ts new file mode 100644 index 0000000..b67f913 --- /dev/null +++ b/packages/openapi/src/oidc/session.schema.ts @@ -0,0 +1,19 @@ +import { z } from 'zod'; + +// 结束会话请求验证模式 +export const endSessionSchema = z.object({ + id_token_hint: z.string().optional(), + post_logout_redirect_uri: z.string().url().optional(), + state: z.string().optional(), + client_id: z.string().optional(), // OIDC规范要求 +}); + +// 会话检查请求验证模式 +export const checkSessionSchema = z.object({ + client_id: z.string(), + origin: z.string().optional(), +}); + +// 类型定义 +export type EndSessionRequest = z.infer; +export type CheckSessionRequest = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/oidc/token.schema.ts b/packages/openapi/src/oidc/token.schema.ts new file mode 100644 index 0000000..59d7f1b --- /dev/null +++ b/packages/openapi/src/oidc/token.schema.ts @@ -0,0 +1,111 @@ +import { z } from 'zod'; + +// 令牌请求验证模式 - 授权码授权 +export const authorizationCodeTokenRequestSchema = z.object({ + grant_type: z.literal('authorization_code'), + code: z.string(), + redirect_uri: z.string().url('必须是有效的URL'), + client_id: z.string(), + client_secret: z.string().optional(), + code_verifier: z.string().optional(), +}); + +// 令牌请求验证模式 - 刷新令牌 +export const refreshTokenRequestSchema = z.object({ + grant_type: z.literal('refresh_token'), + refresh_token: z.string(), + client_id: z.string(), + client_secret: z.string().optional(), + scope: z.string().optional(), +}); + +// 令牌请求验证模式 - 客户端凭证 +export const clientCredentialsTokenRequestSchema = z.object({ + grant_type: z.literal('client_credentials'), + client_id: z.string(), + client_secret: z.string(), + scope: z.string().optional(), +}); + +// 令牌请求验证模式 - 密码授权(可选支持) +export const passwordTokenRequestSchema = z.object({ + grant_type: z.literal('password'), + username: z.string(), + password: z.string(), + client_id: z.string(), + client_secret: z.string().optional(), + scope: z.string().optional(), +}); + +// 合并的令牌请求验证模式 +export const tokenRequestSchema = z.discriminatedUnion('grant_type', [ + authorizationCodeTokenRequestSchema, + refreshTokenRequestSchema, + clientCredentialsTokenRequestSchema, + passwordTokenRequestSchema, +]); + +// 令牌响应模式 +export const tokenResponseSchema = z.object({ + access_token: z.string(), + token_type: z.string().default('Bearer'), + expires_in: z.number(), + refresh_token: z.string().optional(), + id_token: z.string().optional(), + scope: z.string().optional(), +}); + +// 令牌内省请求模式 +export const tokenIntrospectionRequestSchema = z.object({ + token: z.string(), + token_type_hint: z.enum(['access_token', 'refresh_token']).optional(), + client_id: z.string().optional(), + client_secret: z.string().optional(), +}); + +// 令牌内省响应模式 +export const tokenIntrospectionResponseSchema = z.object({ + active: z.boolean(), + // 如果active为true,则提供以下信息 + scope: z.string().optional(), + client_id: z.string().optional(), + username: z.string().optional(), + token_type: z.string().optional(), + exp: z.number().optional(), + iat: z.number().optional(), + nbf: z.number().optional(), + sub: z.string().optional(), + aud: z.string().optional(), + iss: z.string().optional(), + jti: z.string().optional(), +}); + +// 令牌撤销请求模式 +export const tokenRevocationSchema = z.object({ + token: z.string(), + token_type_hint: z.enum(['access_token', 'refresh_token']).optional(), + client_id: z.string(), + client_secret: z.string().optional(), +}); + +// 错误响应模式 +export const tokenErrorResponseSchema = z.object({ + error: z.enum([ + 'invalid_request', + 'invalid_client', + 'invalid_grant', + 'unauthorized_client', + 'unsupported_grant_type', + 'invalid_scope' + ]), + error_description: z.string().optional(), + error_uri: z.string().optional(), +}); + +// 类型定义 +export type TokenRequest = z.infer; +export type TokenResponse = z.infer; +export type TokenIntrospectionRequest = z.infer; +export type TokenIntrospectionResponse = z.infer; +export type TokenRevocationRequest = z.infer; +export type TokenErrorResponse = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/oidc/userinfo.schema.ts b/packages/openapi/src/oidc/userinfo.schema.ts new file mode 100644 index 0000000..a5e9c7c --- /dev/null +++ b/packages/openapi/src/oidc/userinfo.schema.ts @@ -0,0 +1,28 @@ +import { z } from 'zod'; + +// 用户信息响应模式 +export const userInfoResponseSchema = z.object({ + sub: z.string(), + // 标准OIDC声明 + iss: z.string().optional(), + aud: z.string().optional(), + iat: z.number().optional(), + auth_time: z.number().optional(), + // profile scope + name: z.string().optional(), + nickname: z.string().optional(), + profile: z.string().optional(), + picture: z.string().optional(), + gender: z.string().optional(), + birthdate: z.string().optional(), + updated_at: z.number().optional(), + // email scope + email: z.string().optional(), + email_verified: z.boolean().optional(), + // phone scope + phone_number: z.string().optional(), + phone_number_verified: z.boolean().optional(), +}).passthrough(); // 允许添加自定义声明 + +// 类型定义 +export type UserInfoResponse = z.infer; \ No newline at end of file diff --git a/packages/openapi/src/openapi-snippet/index.js b/packages/openapi/src/openapi-snippet/index.js new file mode 100644 index 0000000..1e4cc06 --- /dev/null +++ b/packages/openapi/src/openapi-snippet/index.js @@ -0,0 +1,240 @@ +/* eslint-disable */ +/** + * openapi-snippet + * + * Generates code snippets from Open API (previously Swagger) documents. + * + * Author: Erik Wittern + * License: MIT + */ +'use strict'; + +const OpenAPIToHar = require('./openapi-to-har.js'); +const HTTPSnippet = require('httpsnippet-lite'); + +/** + * Return snippets for endpoint identified using path and method in the given + * OpenAPI document. + * + * @param {object} openApi OpenAPI document + * @param {string} path Path identifying endpoint, e.g., '/users' + * @param {string} method HTTP method identifying endpoint, e.g., 'get' + * @param {array} targets List of languages to create snippets in, e.g, + * ['cURL', 'Node'] + * @param {object} [values] Optional: Values for the query parameters if present + */ +const getEndpointSnippets = function (openApi, path, method, targets, values) { + // if optional parameter is not provided, set it to empty object + if (typeof values === 'undefined') { + values = {}; + } + + const hars = OpenAPIToHar.getEndpoint(openApi, path, method, values); + + const snippets = []; + for (const har of hars) { + const snippet = new HTTPSnippet.HTTPSnippet(har); + snippets.push( + ...getSnippetsForTargets( + targets, + snippet, + har.comment ? har.comment : undefined + ) + ); + } + + // use first element since method, url, and description + // are the same for all elements + return { + method: hars[0].method, + url: hars[0].url, + description: hars[0].description, + resource: getResourceName(hars[0].url), + snippets: snippets, + }; +}; + +/** + * Return snippets for all endpoints in the given OpenAPI document. + * + * @param {object} openApi OpenAPI document + * @param {array} targets List of languages to create snippets in, e.g, + * ['cURL', 'Node'] + */ +const getSnippets = function (openApi, targets) { + const endpointHarInfoList = OpenAPIToHar.getAll(openApi); + + const results = []; + for (let i in endpointHarInfoList) { + // create HTTPSnippet object: + const harInfo = endpointHarInfoList[i]; + const snippets = []; + for (const har of harInfo.hars) { + const snippet = new HTTPSnippet.HTTPSnippet(har); + snippets.push(...getSnippetsForTargets(targets, snippet, har.comment)); + } + + results.push({ + method: harInfo.method, + url: harInfo.url, + description: harInfo.description, + resource: getResourceName(harInfo.url), + snippets, + }); + } + + // sort results: + results.sort((a, b) => { + if (a.resource < b.resource) { + return -1; + } else if (a.resource > b.resource) { + return 1; + } else { + return getMethodOrder(a.method.toLowerCase(), b.method.toLowerCase()); + } + }); + + return results; +}; + +/** + * Determine the order of HTTP methods. + * + * @param {string} a One HTTP verb in lower case + * @param {string} b Another HTTP verb in lower case + * @return {number} The order instruction for the given HTTP verbs + */ +const getMethodOrder = function (a, b) { + const order = ['get', 'post', 'put', 'delete', 'patch']; + if (order.indexOf(a) === -1) { + return 1; + } else if (order.indexOf(b) === -1) { + return -1; + } else if (order.indexOf(a) < order.indexOf(b)) { + return -1; + } else if (order.indexOf(a) > order.indexOf(b)) { + return 1; + } else { + return 0; + } +}; + +/** + * Determines the name of the resource exposed by the method. + * E.g., ../users/{userId} --> users + * + * @param {string} urlStr The OpenAPI path definition + * @return {string} The determined resource name + */ +const getResourceName = function (urlStr) { + const pathComponents = urlStr.split('/'); + for (let i = pathComponents.length - 1; i >= 0; i--) { + const cand = pathComponents[i]; + if (cand !== '' && !/^{/.test(cand)) { + return cand; + } + } +}; + +/** + * Format the given target by splitting up language and library and making sure + * that HTTP Snippet supports them. + * + * @param {string} targetStr String defining a target, e.g., node_request + * @return {object} Object with formatted target, or null + */ +const formatTarget = function (targetStr) { + const language = targetStr.split('_')[0]; + const title = capitalizeFirstLetter(language); + let library = targetStr.split('_')[1]; + if (!library) { + return { + title, + language, + } + } + + const validTargets = HTTPSnippet.availableTargets(); + let validLanguage = false; + let validLibrary = false; + for (let i in validTargets) { + const target = validTargets[i]; + if (language === target.key) { + validLanguage = true; + if (typeof library === 'undefined') { + library = target.default; + validLibrary = true; + } else { + for (let j in target.clients) { + const client = target.clients[j]; + if (library === client.key) { + validLibrary = true; + break; + } + } + } + } + } + + if (!validLanguage || !validLibrary) { + return null; + } + return { + title: + typeof library !== 'undefined' + ? title + ' + ' + capitalizeFirstLetter(library) + : title, + language, + library, + }; +}; + +/** + * Generate code snippets for each of the supplied targets + * + * @param targets {array} List of language targets to generate code for + * @param snippet {Object} Snippet object from httpsnippet to convert into the target objects + * @param mimeType {string | undefined} Additional information to add uniqueness to the produced snippets + */ +const getSnippetsForTargets = function (targets, snippet, mimeType) { + const snippets = []; + for (let j in targets) { + const target = formatTarget(targets[j]); + if (!target) throw new Error('Invalid target: ' + targets[j]); + snippets.push({ + id: targets[j], + ...(mimeType !== undefined && { mimeType: mimeType }), + title: target.title, + content: snippet.convert( + target.language, + typeof target.library !== 'undefined' ? target.library : null + ), + }); + } + return snippets; +}; + +const capitalizeFirstLetter = function (string) { + return string.charAt(0).toUpperCase() + string.slice(1); +}; + +module.exports = { + getSnippets, + getEndpointSnippets, +}; + +// The if is only for when this is run from the browser +if (typeof window !== 'undefined') { + // grab existing namespace object, or create a blank object + // if it doesn't exist + let OpenAPISnippets = window.OpenAPISnippets || {}; + + // define that object + OpenAPISnippets = { + getSnippets, + getEndpointSnippets, + }; + + // replace/create the global namespace + window.OpenAPISnippets = OpenAPISnippets; +} diff --git a/packages/openapi/src/openapi-snippet/openapi-to-har.js b/packages/openapi/src/openapi-snippet/openapi-to-har.js new file mode 100644 index 0000000..206b5e1 --- /dev/null +++ b/packages/openapi/src/openapi-snippet/openapi-to-har.js @@ -0,0 +1,767 @@ +/* eslint-disable */ +/** + * Translates given OpenAPI document to an array of HTTP Archive (HAR) 1.2 Request Object. + * See more: + * - http://swagger.io/specification/ + * - http://www.softwareishard.com/blog/har-12-spec/#request + * + * Example HAR Request Object: + * "request": { + * "method": "GET", + * "url": "http://www.example.com/path/?param=value", + * "httpVersion": "HTTP/1.1", + * "cookies": [], + * "headers": [], + * "queryString" : [], + * "postData" : {}, + * "headersSize" : 150, + * "bodySize" : 0, + * "comment" : "" + * } + */ +const OpenAPISampler = require('openapi-sampler'); + +/** + * Create HAR Request object for path and method pair described in given OpenAPI + * document. + * + * @param {Object} openApi OpenAPI document + * @param {string} path Key of the path + * @param {string} method Key of the method + * @param {Object} queryParamValues Optional: Values for the query parameters if present + * @return {array} List of HAR Request objects for the endpoint + */ +const createHar = function (openApi, path, method, queryParamValues) { + // if the operational parameter is not provided, set it to empty object + if (typeof queryParamValues === 'undefined') { + queryParamValues = {}; + } + + const baseUrl = getBaseUrl(openApi, path, method); + + const baseHar = { + method: method.toUpperCase(), + url: baseUrl + getFullPath(openApi, path, method), + headers: getHeadersArray(openApi, path, method), + queryString: getQueryStrings(openApi, path, method, queryParamValues), + httpVersion: 'HTTP/1.1', + cookies: getCookies(openApi, path, method), + headersSize: 0, + bodySize: 0, + }; + + let hars = []; + + // get payload data, if available: + const postDatas = getPayloads(openApi, path, method); + + // For each postData create a snippet + if (postDatas.length > 0) { + for (let i in postDatas) { + const postData = postDatas[i]; + const copiedHar = JSON.parse(JSON.stringify(baseHar)); + copiedHar.postData = postData; + copiedHar.comment = postData.mimeType; + copiedHar.headers.push({ + name: 'content-type', + value: postData.mimeType, + }); + hars.push(copiedHar); + } + } else { + hars = [baseHar]; + } + + return hars; +}; + +/** + * Tests `value` to see if it is a primitive. + * @param {*} value - The value to test + * @returns {boolean} - `true` if `value` is a primitive, `false` otherwise + */ +const isPrimitive = function (value) { + if (value === null) return true; + const valueType = typeof value; + if (valueType === 'function' || valueType === 'object') return false; + return true; +}; + +/** + * Returns a string that is used as a prefix before a value in a path parameter + * @param {string} style + * @returns {string} - Returns `.` for label style and `;` for matrix style. Returns '' for any other input. + */ +const getPrefix = function (style) { + if (style === 'label') { + return '.'; + } + if (style === 'matrix') { + return `;`; + } + return ''; +}; + +/** + * Returns the separator character used between elements of a path parameter + * Returns '.' for label style, ';' for matrix style and ',' for all others + * @param {string} style + * @returns + */ +const getSeparator = function (style) { + if (style === 'label') return '.'; + if (style === 'matrix') return ';'; + return ','; +}; + +/** + * Returns a "parameter identifier" used in matrix style path parameters. For all other styles + * it returns '' + * @param {string} style + * @param {string} name - The parameter name + * @returns {string} - The empty string if `style` is not `matrix`, else a string in the format `;{name}=` + */ +const getParamId = function (style, name) { + if (style === 'matrix') return `${name}=`; + return ''; +}; + +/** + * Returns the default style for the location per OpenAPI 3.0.3 spec + * @param {*} location + * @returns + */ +const getDefaultStyleForLocation = function (location) { + if (location === 'path' || location === 'header') { + return 'simple'; + } else if (location === 'query' || location === 'cookie') { + return 'form'; + } +}; + +/** + * Returns the default value of explode for the given style per OpenAPI 3.0.3 spec + * @param {*} style + * @returns + */ +const getDefaultExplodeForStyle = function (style) { + return style === 'form'; +}; + +/** + * Returns the correct array element separator for unexploded query parameters + * based on style. If style is spaceDelimited this returns `%20` (the encoded string for + * space character). If style is pipeDelimited this returns '|'; else it returns ',' + * @param {*} style + * @returns + */ +const getArrayElementSeparator = function (style) { + let separator = ','; + if (style === 'spaceDelimited') { + separator = ' '; + } else if (style === 'pipeDelimited') { + separator = '|'; + } + return separator; +}; + +/** + * Returns a string representation of `obj`. Each key value pair is separated by + * a `keyValueSeparator` and each pair is separated by a `pairSeparator`. + * + * @param {*} obj + * @param {*} keyValueSeparator + * @param {*} pairSeparator + * @example + * // returns "firstName=Alex,age=34" + * objectJoin({ firstName: 'Alex', age: 34 }, '=', ',') + * @returns + */ +const objectJoin = function (obj, keyValueSeparator = ',', pairSeparator = ',') { + return Object.entries(obj) + .map(([k, v]) => `${k}${keyValueSeparator}${v}`) + .join(pairSeparator); +}; + +/** + * @typedef {object} HarParameterObject - An object that describes a parameter in a HAR + * @property {string} name - The name of the parameter + * @property {string} value - The value of the parameter + */ + +/** + * Returns an array of HAR parameter objects for the specified parameter and value. + * + * While it is quite often that a singleton array is returned, when `explode` is + * true multiple objects may be returned. + * + * See https://swagger.io/docs/specification/serialization for the logic of how value of + * the return objects are calculated + * + * @param {Object} parameter - An OpenAPI Parameter object + * @param {string} name - The name of the parameter + * @param {string} in - One of the values: `path`, `query`, `header`, `cookie` + * @param {string} [style] - Optional: One of the OpenAPI styles {e.g. form, simple, label, matrix, ...} + * @param {boolean} [explode] - Optional: Whether or not arrays and objects should be exploded + * @param {*} value - The value to use in the query string object. Since `parameter` + * has many properties that could be a candidate for the value this + * parameter is used to explicitly state which value should be used. + * @return {HarParameterObject[]} - An array of query string objects + */ +const createHarParameterObjects = function ({ name, in: location, style, explode }, value) { + if (!name || !location || typeof value === 'undefined') { + throw 'Required parameters missing'; + } + + const prefix = getPrefix(style); + const paramId = getParamId(style, name); + + if (isPrimitive(value)) { + return [{ name, value: prefix + paramId + value }]; + } + + const objects = []; + style = style ?? getDefaultStyleForLocation(location); + explode = explode ?? getDefaultExplodeForStyle(style); + + if (location === 'query' || location === 'cookie') { + const separator = getArrayElementSeparator(style); + if (Array.isArray(value)) { + if (explode) { + objects.push( + ...value.map((entry) => { + return { name, value: entry + '' }; + }) + ); + } else { + objects.push({ name, value: value.join(separator) }); + } + } else if (value && typeof value === 'object') { + if (style === 'deepObject') { + objects.push( + ...Object.entries(value).map(([k, v]) => { + return { name: `${name}[${k}]`, value: v + '' }; + }) + ); + } else if (explode) { + objects.push( + ...Object.entries(value).map(([k, v]) => { + return { name: k, value: v + '' }; + }) + ); + } else { + objects.push({ + name, + value: objectJoin(value), + }); + } + } + } else if (location === 'path' || location === 'header') { + const separator = getSeparator(style); + + if (Array.isArray(value)) { + objects.push({ + name, + value: prefix + paramId + value.join(explode ? separator + paramId : ','), + }); + } else if (value && typeof value === 'object') { + if (explode) { + objects.push({ + name, + value: prefix + objectJoin(value, '=', separator), + }); + } else { + objects.push({ + name, + value: prefix + paramId + objectJoin(value), + }); + } + } + } + + return objects; +}; + +/** + * Get the payload definition for the given endpoint (path + method) from the + * given OAI specification. References within the payload definition are + * resolved. + * + * @param {object} openApi + * @param {string} path + * @param {string} method + * @return {array} A list of payload objects + */ +const getPayloads = function (openApi, path, method) { + if (typeof openApi.paths[path][method].parameters !== 'undefined') { + for (let i in openApi.paths[path][method].parameters) { + const param = openApi.paths[path][method].parameters[i]; + if ( + typeof param.in !== 'undefined' && + param.in.toLowerCase() === 'body' && + typeof param.schema !== 'undefined' + ) { + try { + const sample = OpenAPISampler.sample(param.schema, { skipReadOnly: true }, openApi); + return [ + { + mimeType: 'application/json', + text: JSON.stringify(sample), + }, + ]; + } catch (err) { + console.log(err); + return null; + } + } + } + } + + if (openApi.paths[path][method].requestBody && openApi.paths[path][method].requestBody['$ref']) { + openApi.paths[path][method].requestBody = resolveRef( + openApi, + openApi.paths[path][method].requestBody['$ref'] + ); + } + + const payloads = []; + if (openApi.paths[path][method].requestBody && openApi.paths[path][method].requestBody.content) { + ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'].forEach( + (type) => { + const content = openApi.paths[path][method].requestBody.content[type]; + if (content && content.schema) { + const sample = OpenAPISampler.sample(content.schema, { skipReadOnly: true }, openApi); + if (type === 'application/json') { + payloads.push({ + mimeType: type, + text: JSON.stringify(sample), + }); + } else if (type === 'multipart/form-data') { + if (sample !== undefined) { + const params = []; + Object.keys(sample).forEach((key) => { + let value = sample[key]; + if (typeof sample[key] !== 'string') { + value = JSON.stringify(sample[key]); + } + params.push({ name: key, value: value }); + }); + payloads.push({ + mimeType: type, + params: params, + }); + } + } else if (type == 'application/x-www-form-urlencoded') { + if (sample === undefined) return null; + + const params = []; + Object.keys(sample).map((key) => + params.push({ + name: encodeURIComponent(key).replace(/%20/g, '+'), + value: encodeURIComponent(sample[key]).replace(/%20/g, '+'), + }) + ); + + payloads.push({ + mimeType: 'application/x-www-form-urlencoded', + params: params, + text: Object.keys(params) + .map((key) => key + '=' + sample[key]) + .join('&'), + }); + } + } + } + ); + } + return payloads; +}; + +/** + * Gets the base URL constructed from the given openApi. + * + * @param {Object} openApi OpenAPI document + * @return {string} Base URL + */ +const getBaseUrl = function (openApi, path, method) { + if (openApi.paths[path][method].servers) return openApi.paths[path][method].servers[0].url; + if (openApi.paths[path].servers) return openApi.paths[path].servers[0].url; + if (openApi.servers) return openApi.servers[0].url; + + let baseUrl = ''; + if (typeof openApi.schemes !== 'undefined') { + baseUrl += openApi.schemes[0]; + } else { + baseUrl += 'http'; + } + + if (openApi.basePath === '/') { + baseUrl += '://' + openApi.host; + } else { + baseUrl += '://' + openApi.host + openApi.basePath; + } + + return baseUrl; +}; + +/** + * Gets an object describing the parameters (header or query) in a given OpenAPI method + * @param {Object} openApi OpenApi document + * @param {Object} param parameter values to use in snippet + * @param {string} location One of `path`, `header`, `query`, `cookie` + * @param {Object} values Optional: query parameter values to use in the snippet if present + * @return {HarParameterObject[]} Array of objects describing the parameters in a given OpenAPI method or path + */ +const getParameterValues = function (openApi, param, location, values) { + let value = 'SOME_' + (param.type || param.schema.type || param.schema.anyOf[0].type).toUpperCase() + '_VALUE'; + if (location === 'path') { + // then default to the original place holder value (e.b. '{id}') + value = `{${param.name}}`; + } + + if (values && typeof values[param.name] !== 'undefined') { + value = values[param.name]; + } else if (typeof param.example !== 'undefined') { + value = param.example; + } else if (typeof param.examples !== 'undefined') { + let firstExample = Object.values(param.examples)[0]; + if (typeof firstExample['$ref'] === 'string' && /^#/.test(firstExample['$ref'])) { + firstExample = resolveRef(openApi, firstExample['$ref']); + } + value = firstExample.value; + } else if (typeof param.schema !== 'undefined' && typeof param.schema.example !== 'undefined') { + value = param.schema.example; + } else if (typeof param.default !== 'undefined') { + value = param.default; + } + + return createHarParameterObjects(param, value); +}; + +/** + * Parse parameter object into query string objects + * + * @param {Object} openApi OpenApi document + * @param {Object} parameters Objects described in the document to parse into the query string + * @param {string} location One of `path`, `query`, `header` or `cookie` + * @param {Object} values Optional: query parameter values to use in the snippet if present + * @return {Object.} Object describing the parameters for a method or path. + * Each key in the return object will have at least one entry it's is value array. But exploded values + * in query parameters may have more than one. + */ +const parseParametersToQuery = function (openApi, parameters, location, values) { + /** @type {Object.} */ + const queryStrings = {}; + + for (let i in parameters) { + let param = parameters[i]; + if (typeof param['$ref'] === 'string' && /^#/.test(param['$ref'])) { + param = resolveRef(openApi, param['$ref']); + } + if (typeof param.schema !== 'undefined') { + if (typeof param.schema['$ref'] === 'string' && /^#/.test(param.schema['$ref'])) { + param.schema = resolveRef(openApi, param.schema['$ref']); + if (typeof param.schema.type === 'undefined') { + // many schemas don't have an explicit type + param.schema.type = 'object'; + } + } + } + if (typeof param.in !== 'undefined' && param.in.toLowerCase() === location) { + // param.name is a safe key, because the spec defines + // that name MUST be unique + queryStrings[param.name] = getParameterValues(openApi, param, location, values); + } + } + + return queryStrings; +}; + +/** + * Examines all of the parameters in the specified path and operation looking + * for those of the specific `location` specified + * It resolves any references to schemas or parameters as it does so. + * It examines the `example`, `examples`, `schema.example` and `default` + * keys looking for one sample value. It then returns an array of HAR + * parameter objects + * @param {Object} openApi OpenAPI document + * @param {string} path Key of the path + * @param {string} method Key of the method + * @param {string} location One of `path`, `query`, `header`, `cookie` + * @param {HarParameterObject[]} - A list of parameter objects for the specified location + * @returns + */ +const getParameterCollectionIn = function (openApi, path, method, location, values) { + // Set the optional parameter if it's not provided + if (typeof values === 'undefined') { + values = {}; + } + + /** @type {Object.} */ + let pathParameters = {}; + + /** @type {Object.} */ + let operationParameters = {}; + + // First get any parameters from the path + if (typeof openApi.paths[path].parameters !== 'undefined') { + pathParameters = parseParametersToQuery( + openApi, + openApi.paths[path].parameters, + location, + values + ); + } + + if (typeof openApi.paths[path][method].parameters !== 'undefined') { + operationParameters = parseParametersToQuery( + openApi, + openApi.paths[path][method].parameters, + location, + values + ); + } + + // Merge parameters, with method overriding path + // from the spec: + // If a parameter is already defined at the Path Item, the new definition will override + // it but can never remove it. + // https://swagger.io/specification/ + + /** @type {Object. entry); +}; + +/** + * Get array of objects describing the query parameters for a path and method + * pair described in the given OpenAPI document. + * + * @param {Object} openApi OpenApi document + * @param {string} path Key of the path + * @param {string} method Key of the method + * @param {Object} values Optional: query parameter values to use in the snippet if present + * @return {HarParameterObject[]} List of objects describing the query strings + */ +const getQueryStrings = function (openApi, path, method, values) { + return getParameterCollectionIn(openApi, path, method, 'query', values); +}; + +/** + * Return the path with the parameters example values used if specified. + * + * @param {Object} openApi OpenApi document + * @param {string} path Key of the path + * @param {string} method Key of the method + * @return {string} Full path including example values + */ +const getFullPath = function (openApi, path, method) { + let fullPath = path; + + const pathParameters = getParameterCollectionIn(openApi, path, method, 'path'); + pathParameters.forEach(({ name, value }) => { + fullPath = fullPath.replace('{' + name + '}', value); + }); + + return fullPath; +}; + +/** + * Get an array of objects providing sample values for cookies + * + * @param {Object} openApi OpenAPI document + * @param {string} path Key of the path + * @param {string} method Key of the method + */ +const getCookies = function (openApi, path, method) { + return getParameterCollectionIn(openApi, path, method, 'cookie'); +}; + +/** + * Get an array of objects describing the header for a path and method pair + * described in the given OpenAPI document. + * + * @param {Object} openApi OpenAPI document + * @param {string} path Key of the path + * @param {string} method Key of the method + * @return {HarParameterObject[]} List of objects describing the header + */ +const getHeadersArray = function (openApi, path, method) { + const headers = []; + const pathObj = openApi.paths[path][method]; + + // 'accept' header: + if (typeof pathObj.consumes !== 'undefined') { + for (let i in pathObj.consumes) { + const type = pathObj.consumes[i]; + headers.push({ + name: 'accept', + value: type, + }); + } + } + + // headers defined in path object: + headers.push(...getParameterCollectionIn(openApi, path, method, 'header')); + + // security: + let basicAuthDef; + let apiKeyAuthDef; + let oauthDef; + if (typeof pathObj.security !== 'undefined') { + for (var l in pathObj.security) { + const secScheme = Object.keys(pathObj.security[l])[0]; + const secDefinition = openApi.securityDefinitions + ? openApi.securityDefinitions[secScheme] + : openApi.components.securitySchemes[secScheme]; + const authType = secDefinition.type.toLowerCase(); + let authScheme = null; + + if (authType !== 'apikey' && secDefinition.scheme != null) { + authScheme = secDefinition.scheme.toLowerCase(); + } + + switch (authType) { + case 'basic': + basicAuthDef = secScheme; + break; + case 'apikey': + if (secDefinition.in === 'header') { + apiKeyAuthDef = secDefinition; + } + break; + case 'oauth2': + oauthDef = secScheme; + break; + case 'http': + switch (authScheme) { + case 'bearer': + oauthDef = secScheme; + break; + case 'basic': + basicAuthDef = secScheme; + break; + } + break; + } + } + } else if (typeof openApi.security !== 'undefined') { + // Need to check OAS 3.0 spec about type http and scheme + for (let m in openApi.security) { + const secScheme = Object.keys(openApi.security[m])[0]; + const secDefinition = openApi.components.securitySchemes[secScheme]; + const authType = secDefinition.type.toLowerCase(); + let authScheme = null; + + if (authType !== 'apikey' && authType !== 'oauth2') { + authScheme = secDefinition.scheme.toLowerCase(); + } + + switch (authType) { + case 'http': + switch (authScheme) { + case 'bearer': + oauthDef = secScheme; + break; + case 'basic': + basicAuthDef = secScheme; + break; + } + break; + case 'basic': + basicAuthDef = secScheme; + break; + case 'apikey': + if (secDefinition.in === 'header') { + apiKeyAuthDef = secDefinition; + } + break; + case 'oauth2': + oauthDef = secScheme; + break; + } + } + } + + if (basicAuthDef) { + headers.push({ + name: 'Authorization', + value: 'Basic ' + 'REPLACE_BASIC_AUTH', + }); + } else if (apiKeyAuthDef) { + headers.push({ + name: apiKeyAuthDef.name, + value: 'REPLACE_KEY_VALUE', + }); + } else if (oauthDef) { + headers.push({ + name: 'Authorization', + value: 'Bearer ' + 'REPLACE_BEARER_TOKEN', + }); + } + + return headers; +}; + +/** + * Produces array of HAR files for given OpenAPI document + * + * @param {object} openApi OpenAPI document + * @param {Function} callback + */ +const openApiToHarList = function (openApi) { + try { + // iterate openApi and create har objects: + const harList = []; + for (let path in openApi.paths) { + for (let method in openApi.paths[path]) { + const url = getBaseUrl(openApi, path, method) + path; + const hars = createHar(openApi, path, method); + // need to push multiple here + harList.push({ + method: method.toUpperCase(), + url: url, + description: openApi.paths[path][method].description || 'No description available', + hars: hars, + }); + } + } + + return harList; + } catch (e) { + console.log(e); + } +}; + +/** + * Returns the value referenced in the given reference string + * + * @param {object} openApi OpenAPI document + * @param {string} ref A reference string + * @return {any} + */ +const resolveRef = function (openApi, ref) { + const parts = ref.split('/'); + + if (parts.length <= 1) return {}; // = 3 + + const recursive = function (obj, index) { + if (index + 1 < parts.length) { + // index = 1 + let newCount = index + 1; + return recursive(obj[parts[index]], newCount); + } else { + return obj[parts[index]]; + } + }; + return recursive(openApi, 1); +}; + +module.exports = { + getAll: openApiToHarList, + getEndpoint: createHar, + createHarParameterObjects, +}; diff --git a/packages/openapi/src/user/index.ts b/packages/openapi/src/user/index.ts new file mode 100644 index 0000000..e282561 --- /dev/null +++ b/packages/openapi/src/user/index.ts @@ -0,0 +1 @@ +export * from "./user.schema" \ No newline at end of file diff --git a/packages/openapi/src/user/user.schema.ts b/packages/openapi/src/user/user.schema.ts new file mode 100644 index 0000000..571af4c --- /dev/null +++ b/packages/openapi/src/user/user.schema.ts @@ -0,0 +1,47 @@ +import { z } from "../zod"; + +// 密码验证Schema +export const signupPasswordSchema = z.string().min(8) + .regex(/^(?=.*[A-Za-z])(?=.*\d)/, { message: '密码必须包含至少一个字母和一个数字' }) + .openapi({ description: '用户密码(至少8个字符,包含字母和数字)' }); + +// 用户注册验证Schema +export const registerUserSchema = z.object({ + email: z.string().email().openapi({ description: '用户电子邮箱' }), + name: z.string().min(2).openapi({ description: '用户名称' }), + password: z.string().min(6).openapi({ description: '用户密码' }), + phone: z.string().optional().openapi({ description: '电话号码(可选)' }), + avatar: z.string().optional().openapi({ description: '头像URL(可选)' }), +}).openapi({ title: 'RegisterUser', description: '用户注册信息' }); + + +// 用户登录验证Schema +export const loginUserSchema = z.object({ + email: z.string().email().openapi({ description: '用户电子邮箱' }), + password: z.string().openapi({ description: '用户密码' }), +}).openapi({ title: 'LoginUser', description: '用户登录信息' }); + +// 用户信息响应Schema +export const userResponseSchema = z.object({ + id: z.string().openapi({ description: '用户ID' }), + email: z.string().email().openapi({ description: '用户电子邮箱' }), + name: z.string().openapi({ description: '用户名称' }), + phone: z.string().optional().nullable().openapi({ description: '电话号码' }), + avatar: z.string().optional().nullable().openapi({ description: '头像URL' }), + createdTime: z.date().optional().openapi({ description: '创建时间' }), + updatedTime: z.date().optional().openapi({ description: '更新时间' }), +}).openapi({ title: 'UserResponse', description: '用户信息响应' }); + +// 登录响应Schema +export const loginResponseSchema = z.object({ + access_token: z.string().openapi({ description: '访问令牌' }), + token_type: z.string().openapi({ description: '令牌类型' }), + expires_in: z.number().openapi({ description: '过期时间(秒)' }), + user: userResponseSchema, +}).openapi({ title: 'LoginResponse', description: '登录成功响应' }); + +// 类型导出 +export type RegisterUserDto = z.infer; +export type LoginUserDto = z.infer; +export type UserResponse = z.infer; +export type LoginResponse = z.infer; diff --git a/packages/openapi/src/utils.ts b/packages/openapi/src/utils.ts new file mode 100644 index 0000000..7dee6fe --- /dev/null +++ b/packages/openapi/src/utils.ts @@ -0,0 +1,23 @@ +import type { RouteConfig } from '@asteasolutions/zod-to-openapi'; + +export const urlBuilder = (url: string, pathParams?: Record) => { + if (!pathParams) { + return url; + } + + Object.entries(pathParams).forEach(([key, value]) => { + url = url.replace(`{${key}}`, encodeURIComponent(String(value))); + }); + return url; +}; + +const routes: RouteConfig[] = []; + +export const registerRoute = (route: RouteConfig) => { + routes.push(route); + return route; +}; + +export const getRoutes = () => { + return routes; +}; diff --git a/packages/openapi/src/zod.ts b/packages/openapi/src/zod.ts new file mode 100644 index 0000000..e9b15a9 --- /dev/null +++ b/packages/openapi/src/zod.ts @@ -0,0 +1,6 @@ +import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'; +import { z } from 'zod'; + +extendZodWithOpenApi(z); + +export { z }; diff --git a/packages/openapi/tsconfig.json b/packages/openapi/tsconfig.json new file mode 100644 index 0000000..99bd51c --- /dev/null +++ b/packages/openapi/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "esnext", + "lib": [ + "DOM", + "es2022" + ], + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "moduleResolution": "node", + "removeComments": true, + "skipLibCheck": true, + "strict": true, + "isolatedModules": true, + "esModuleInterop": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": false, + "noFallthroughCasesInSwitch": false, + "noUncheckedIndexedAccess": false, + "noImplicitOverride": false, + "noPropertyAccessFromIndexSignature": false, + "emitDeclarationOnly": true, + "outDir": "dist", + "incremental": true, + "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo" + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "**/*.test.ts", + "**/*.spec.ts", + "**/__tests__" + ] +} \ No newline at end of file diff --git a/packages/openapi/tsup.config.ts b/packages/openapi/tsup.config.ts new file mode 100644 index 0000000..65e6622 --- /dev/null +++ b/packages/openapi/tsup.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['esm', 'cjs'], + dts: true, + clean: true, + outDir: 'dist', + treeshake: true, + sourcemap: true, +}); \ No newline at end of file diff --git a/packages/typescript-config/README.md b/packages/typescript-config/README.md index e5f0c93..abd3382 100644 --- a/packages/typescript-config/README.md +++ b/packages/typescript-config/README.md @@ -1,3 +1,3 @@ -# `@workspace/typescript-config` +# `@repo/typescript-config` Shared typescript configuration for the workspace. diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json index 0f80cfd..a7595b4 100644 --- a/packages/typescript-config/base.json +++ b/packages/typescript-config/base.json @@ -2,19 +2,25 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "Default", "compilerOptions": { + "composite": false, "declaration": true, "declarationMap": true, "esModuleInterop": true, "incremental": false, "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], "module": "NodeNext", "moduleDetection": "force", + "noImplicitAny": false, "moduleResolution": "NodeNext", "noUncheckedIndexedAccess": true, "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "ES2022" - } + "target": "ES2022", + "strictNullChecks": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "removeComments": true, + +} } diff --git a/packages/typescript-config/hono.json b/packages/typescript-config/hono.json new file mode 100644 index 0000000..f467486 --- /dev/null +++ b/packages/typescript-config/hono.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Hono.js", + "extends": "./base.json", + "compilerOptions": { + + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx", + "module": "ESNext", + "moduleResolution": "node", + "allowJs": true, + "noEmit": true + } + } + \ No newline at end of file diff --git a/packages/typescript-config/nestjs.json b/packages/typescript-config/nestjs.json new file mode 100644 index 0000000..e81a127 --- /dev/null +++ b/packages/typescript-config/nestjs.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "module": "commonjs", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2020", + "sourceMap": true, + "outDir": "./dist", + "incremental": true + } + } + \ No newline at end of file diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json index 44f4289..fcb2d56 100644 --- a/packages/typescript-config/nextjs.json +++ b/packages/typescript-config/nextjs.json @@ -8,6 +8,8 @@ "moduleResolution": "Bundler", "allowJs": true, "jsx": "preserve", - "noEmit": true + "noEmit": true, + "lib": ["es2022", "DOM", "DOM.Iterable"], + "resolveJsonModule": true } } diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 9450116..c998555 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,5 +1,5 @@ { - "name": "@workspace/typescript-config", + "name": "@repo/typescript-config", "version": "0.0.0", "private": true, "license": "PROPRIETARY", diff --git a/packages/typescript-config/react-library.json b/packages/typescript-config/react-library.json index a755ffe..819df5a 100644 --- a/packages/typescript-config/react-library.json +++ b/packages/typescript-config/react-library.json @@ -3,6 +3,10 @@ "display": "React Library", "extends": "./base.json", "compilerOptions": { + "lib": ["ES2015"], + "module": "ESNext", + "target": "ES6", "jsx": "react-jsx", + "noEmit": true } } diff --git a/packages/ui/components.json b/packages/ui/components.json index a1cb637..85ac9ed 100644 --- a/packages/ui/components.json +++ b/packages/ui/components.json @@ -11,10 +11,10 @@ }, "iconLibrary": "lucide", "aliases": { - "components": "@workspace/ui/components", - "utils": "@workspace/ui/lib/utils", - "hooks": "@workspace/ui/hooks", - "lib": "@workspace/ui/lib", - "ui": "@workspace/ui/components" + "components": "@repo/ui/components", + "utils": "@repo/ui/lib/utils", + "hooks": "@repo/ui/hooks", + "lib": "@repo/ui/lib", + "ui": "@repo/ui/components" } } diff --git a/packages/ui/eslint.config.js b/packages/ui/eslint.config.js index 69da3ed..6d662d5 100644 --- a/packages/ui/eslint.config.js +++ b/packages/ui/eslint.config.js @@ -1,4 +1,4 @@ -import { config } from "@workspace/eslint-config/react-internal" +import { config } from "@repo/eslint-config/react-internal" /** @type {import("eslint").Linter.Config} */ export default config diff --git a/packages/ui/package.json b/packages/ui/package.json index 57db002..5833cd6 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,5 +1,5 @@ { - "name": "@workspace/ui", + "name": "@repo/ui", "version": "0.0.0", "private": true, "type": "module", @@ -28,8 +28,8 @@ "@types/node": "^20", "@types/react": "^19.1.4", "@types/react-dom": "^19.1.5", - "@workspace/eslint-config": "workspace:*", - "@workspace/typescript-config": "workspace:*", + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", "class-variance-authority": "^0.7.1", "lucide-react": "0.511.0", "tailwindcss": "^4", diff --git a/packages/ui/src/components/button.tsx b/packages/ui/src/components/button.tsx index b50186f..5ca0207 100644 --- a/packages/ui/src/components/button.tsx +++ b/packages/ui/src/components/button.tsx @@ -2,7 +2,7 @@ import type * as React from 'react'; import { Slot } from '@radix-ui/react-slot'; import { cva, type VariantProps } from 'class-variance-authority'; -import { cn } from '@workspace/ui/lib/utils'; +import { cn } from '@repo/ui/lib/utils'; const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 focus-visible:ring-4 focus-visible:outline-1 aria-invalid:focus-visible:ring-0", diff --git a/packages/ui/src/components/dropdown-menu.tsx b/packages/ui/src/components/dropdown-menu.tsx index d619c4c..d2488b0 100644 --- a/packages/ui/src/components/dropdown-menu.tsx +++ b/packages/ui/src/components/dropdown-menu.tsx @@ -4,7 +4,7 @@ import type * as React from 'react'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'; -import { cn } from '@workspace/ui/lib/utils'; +import { cn } from '@repo/ui/lib/utils'; function DropdownMenu({ ...props }: React.ComponentProps) { return ; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index 0bedc71..3b368a4 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -1,9 +1,9 @@ { - "extends": "@workspace/typescript-config/react-library.json", + "extends": "@repo/typescript-config/react-library.json", "compilerOptions": { "baseUrl": ".", "paths": { - "@workspace/ui/*": ["./src/*"] + "@repo/ui/*": ["./src/*"] } }, "include": ["."], diff --git a/packages/ui/tsconfig.lint.json b/packages/ui/tsconfig.lint.json index eda5089..df2762e 100644 --- a/packages/ui/tsconfig.lint.json +++ b/packages/ui/tsconfig.lint.json @@ -1,5 +1,5 @@ { - "extends": "@workspace/typescript-config/react-library.json", + "extends": "@repo/typescript-config/react-library.json", "compilerOptions": { "outDir": "dist" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fcc222..811c9aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,12 +8,15 @@ importers: .: devDependencies: - '@workspace/eslint-config': + '@repo/eslint-config': specifier: workspace:* version: link:packages/eslint-config - '@workspace/typescript-config': + '@repo/typescript-config': specifier: workspace:* version: link:packages/typescript-config + '@types/node': + specifier: ^20 + version: 20.17.50 prettier: specifier: ^3.5.3 version: 3.5.3 @@ -24,51 +27,204 @@ importers: specifier: 5.8.3 version: 5.8.3 + apps/backend: + dependencies: + '@elastic/elasticsearch': + specifier: ^9.0.2 + version: 9.0.2 + '@hono/trpc-server': + specifier: ^0.3.4 + version: 0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.10) + '@hono/zod-validator': + specifier: ^0.5.0 + version: 0.5.0(hono@4.7.10)(zod@3.25.23) + '@repo/db': + specifier: workspace:* + version: link:../../packages/db + '@trpc/server': + specifier: 11.1.2 + version: 11.1.2(typescript@5.8.3) + '@types/oidc-provider': + specifier: ^9.1.0 + version: 9.1.0 + hono: + specifier: ^4.7.10 + version: 4.7.10 + ioredis: + specifier: 5.4.1 + version: 5.4.1 + minio: + specifier: 7.1.3 + version: 7.1.3 + node-cron: + specifier: ^4.0.7 + version: 4.0.7 + oidc-provider: + specifier: ^9.1.1 + version: 9.1.1 + zod: + specifier: ^3.25.23 + version: 3.25.23 + devDependencies: + '@types/bun': + specifier: latest + version: 1.2.14 + '@types/node': + specifier: ^22.15.21 + version: 22.15.21 + apps/web: dependencies: - '@workspace/ui': + '@repo/client': + specifier: workspace:* + version: link:../../packages/client + '@repo/db': + specifier: workspace:* + version: link:../../packages/db + '@repo/ui': specifier: workspace:* version: link:../../packages/ui + '@tanstack/react-query': + specifier: ^5.51.21 + version: 5.76.2(react@19.1.0) + '@trpc/client': + specifier: 11.1.2 + version: 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + '@trpc/react-query': + specifier: 11.1.2 + version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + '@trpc/server': + specifier: 11.1.2 + version: 11.1.2(typescript@5.8.3) + '@trpc/tanstack-react-query': + specifier: 11.1.2 + version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + axios: + specifier: ^1.7.2 + version: 1.7.7 + dayjs: + specifier: ^1.11.12 + version: 1.11.13 lucide-react: specifier: 0.511.0 version: 0.511.0(react@19.1.0) next: specifier: 15.3.2 - version: 15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: - specifier: 19.1.0 + specifier: ^19.1.0 version: 19.1.0 react-dom: - specifier: 19.1.0 + specifier: ^19.1.0 version: 19.1.0(react@19.1.0) + superjson: + specifier: ^2.2.2 + version: 2.2.2 devDependencies: - '@tailwindcss/postcss': - specifier: ^4 - version: 4.0.6 - '@types/node': - specifier: ^20 - version: 20.17.19 - '@types/react': - specifier: ^19.1.4 - version: 19.1.4 - '@types/react-dom': - specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.4) - '@workspace/eslint-config': + '@repo/eslint-config': specifier: workspace:* version: link:../../packages/eslint-config - '@workspace/typescript-config': + '@repo/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config + '@tailwindcss/postcss': + specifier: ^4 + version: 4.1.7 + '@types/react': + specifier: ^19.1.4 + version: 19.1.5 + '@types/react-dom': + specifier: ^19.1.5 + version: 19.1.5(@types/react@19.1.5) tailwindcss: specifier: ^4 - version: 4.0.6 + version: 4.1.7 typescript: specifier: ^5 - version: 5.7.3 + version: 5.8.3 + + packages/client: + dependencies: + '@tanstack/query-async-storage-persister': + specifier: ^5.51.9 + version: 5.76.2 + '@tanstack/react-query': + specifier: ^5.51.21 + version: 5.76.2(react@19.1.0) + '@tanstack/react-query-persist-client': + specifier: ^5.51.9 + version: 5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(react@19.1.0) + '@trpc/client': + specifier: 11.1.2 + version: 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + '@trpc/react-query': + specifier: 11.1.2 + version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + '@trpc/server': + specifier: 11.1.2 + version: 11.1.2(typescript@5.8.3) + '@trpc/tanstack-react-query': + specifier: 11.1.2 + version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + axios: + specifier: ^1.7.2 + version: 1.7.7 + dayjs: + specifier: ^1.11.12 + version: 1.11.13 + react: + specifier: ^19.1.0 + version: 19.1.0 + devDependencies: + '@types/react': + specifier: ^19.1.4 + version: 19.1.5 + '@types/react-dom': + specifier: ^19.1.5 + version: 19.1.5(@types/react@19.1.5) + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + tsup: + specifier: ^8.3.5 + version: 8.5.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) + + packages/db: + dependencies: + '@prisma/client': + specifier: ^6.6.0 + version: 6.8.2(prisma@6.8.2(typescript@5.8.3))(typescript@5.8.3) + zod: + specifier: ^3.23.8 + version: 3.25.23 + devDependencies: + '@types/node': + specifier: ^20.3.1 + version: 20.17.50 + concurrently: + specifier: ^8.0.0 + version: 8.2.2 + prisma: + specifier: ^6.6.0 + version: 6.8.2(typescript@5.8.3) + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3) + tsup: + specifier: ^8.3.5 + version: 8.5.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) + tsx: + specifier: ^4.19.4 + version: 4.19.4 + typescript: + specifier: ^5.5.4 + version: 5.8.3 packages/eslint-config: devDependencies: @@ -109,16 +265,111 @@ importers: specifier: ^8.32.1 version: 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + packages/icons: + dependencies: + react: + specifier: ^19.1.0 + version: 19.1.0 + react-dom: + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) + devDependencies: + '@svgr/core': + specifier: 8.1.0 + version: 8.1.0(typescript@5.4.3) + '@svgr/plugin-jsx': + specifier: 8.1.0 + version: 8.1.0(@svgr/core@8.1.0(typescript@5.4.3)) + '@svgr/plugin-prettier': + specifier: 8.1.0 + version: 8.1.0(@svgr/core@8.1.0(typescript@5.4.3)) + '@svgr/plugin-svgo': + specifier: 8.1.0 + version: 8.1.0(@svgr/core@8.1.0(typescript@5.4.3))(typescript@5.4.3) + '@types/fs-extra': + specifier: 11.0.4 + version: 11.0.4 + '@types/node': + specifier: 20.9.0 + version: 20.9.0 + '@types/react': + specifier: 18.2.45 + version: 18.2.45 + axios: + specifier: 1.7.7 + version: 1.7.7 + chalk: + specifier: 5.3.0 + version: 5.3.0 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + eslint: + specifier: 8.57.0 + version: 8.57.0 + figma-js: + specifier: 1.16.0 + version: 1.16.0 + fs-extra: + specifier: 11.2.0 + version: 11.2.0 + lodash: + specifier: 4.17.21 + version: 4.17.21 + rimraf: + specifier: 5.0.5 + version: 5.0.5 + typescript: + specifier: 5.4.3 + version: 5.4.3 + + packages/openapi: + dependencies: + '@asteasolutions/zod-to-openapi': + specifier: 6.4.0 + version: 6.4.0(zod@3.25.23) + axios: + specifier: ^1.7.7 + version: 1.7.7 + httpsnippet-lite: + specifier: 3.0.5 + version: 3.0.5 + openapi-sampler: + specifier: 1.4.0 + version: 1.4.0 + openapi3-ts: + specifier: 4.2.2 + version: 4.2.2 + zod: + specifier: ^3.22.4 + version: 3.25.23 + devDependencies: + '@types/node': + specifier: ^20.10.5 + version: 20.17.50 + eslint: + specifier: ^8.56.0 + version: 8.57.0 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 + tsup: + specifier: ^7.2.0 + version: 7.3.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3))(typescript@5.8.3) + typescript: + specifier: ^5.8.3 + version: 5.8.3 + packages/typescript-config: {} packages/ui: dependencies: '@radix-ui/react-dropdown-menu': specifier: ^2.1.14 - version: 2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.2 - version: 1.2.2(@types/react@19.1.4)(react@19.1.0) + version: 1.2.3(@types/react@19.1.5)(react@19.1.0) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -133,29 +384,29 @@ importers: version: 3.3.0 zod: specifier: ^3.24.4 - version: 3.24.4 + version: 3.25.23 devDependencies: - '@tailwindcss/postcss': - specifier: ^4 - version: 4.0.6 - '@turbo/gen': - specifier: ^2.5.3 - version: 2.5.3(@types/node@20.17.19)(typescript@5.7.3) - '@types/node': - specifier: ^20 - version: 20.17.19 - '@types/react': - specifier: ^19.1.4 - version: 19.1.4 - '@types/react-dom': - specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.4) - '@workspace/eslint-config': + '@repo/eslint-config': specifier: workspace:* version: link:../eslint-config - '@workspace/typescript-config': + '@repo/typescript-config': specifier: workspace:* version: link:../typescript-config + '@tailwindcss/postcss': + specifier: ^4 + version: 4.1.7 + '@turbo/gen': + specifier: ^2.5.3 + version: 2.5.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3) + '@types/node': + specifier: ^20 + version: 20.17.50 + '@types/react': + specifier: ^19.1.4 + version: 19.1.5 + '@types/react-dom': + specifier: ^19.1.5 + version: 19.1.5(@types/react@19.1.5) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -164,13 +415,13 @@ importers: version: 0.511.0(react@19.1.0) tailwindcss: specifier: ^4 - version: 4.0.6 + version: 4.1.7 tw-animate-css: specifier: ^1.3.0 version: 1.3.0 typescript: specifier: ^5 - version: 5.7.3 + version: 5.8.3 packages: @@ -178,22 +429,388 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@babel/runtime-corejs3@7.26.0': - resolution: {integrity: sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@asteasolutions/zod-to-openapi@6.4.0': + resolution: {integrity: sha512-8cxfF7AHHx2PqnN4Cd8/O8CBu/nVYJP9DpnfVLW3BFb66VJDnqI/CczZnkqMc3SNh6J9GiX7JbJ5T4BSP4HZ2Q==} + peerDependencies: + zod: ^3.20.2 + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.27.2': + resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.27.1': + resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.27.1': + resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.27.1': + resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.2': + resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime-corejs3@7.27.1': + resolution: {integrity: sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@elastic/elasticsearch@9.0.2': + resolution: {integrity: sha512-uKA0PuPSND3OhHH9UFqnKZfxifAg/8mQW4VnrQ+sUtusTbPhGuErs5NeWCPyd/RLgruBWBmLSv1zzEv5GS+UnA==} + engines: {node: '>=18'} + + '@elastic/transport@9.0.1': + resolution: {integrity: sha512-6jVZQzAe2iTRsZA6I/wkO2BjzJFD9BHTASo2YgGfbcoV95ey/8D/ABRhpgfg35LIDrmialIGJBizunSwxsRDLg==} + engines: {node: '>=18'} + '@emnapi/runtime@1.4.3': resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] '@eslint-community/eslint-utils@4.7.0': resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} @@ -217,10 +834,18 @@ packages: resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.27.0': resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -233,11 +858,11 @@ packages: resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/core@1.7.0': + resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + '@floating-ui/dom@1.7.0': + resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==} '@floating-ui/react-dom@2.1.2': resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} @@ -248,6 +873,19 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@hono/trpc-server@0.3.4': + resolution: {integrity: sha512-xFOPjUPnII70FgicDzOJy1ufIoBTu8eF578zGiDOrYOrYN8CJe140s9buzuPkX+SwJRYK8LjEBHywqZtxdm8aA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@trpc/server': ^10.10.0 || >11.0.0-rc + hono: '>=4.*' + + '@hono/zod-validator@0.5.0': + resolution: {integrity: sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg==} + peerDependencies: + hono: '>=3.9.0' + zod: ^3.19.1 + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -256,10 +894,19 @@ packages: resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} @@ -268,14 +915,14 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@img/sharp-darwin-arm64@0.34.1': - resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + '@img/sharp-darwin-arm64@0.34.2': + resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.1': - resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + '@img/sharp-darwin-x64@0.34.2': + resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] @@ -294,100 +941,149 @@ packages: resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.1.0': resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.1.0': resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.1.0': resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.1.0': resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.1.0': resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.1.0': resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] + libc: [musl] - '@img/sharp-linux-arm64@0.34.1': - resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + '@img/sharp-linux-arm64@0.34.2': + resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] - '@img/sharp-linux-arm@0.34.1': - resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + '@img/sharp-linux-arm@0.34.2': + resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] - '@img/sharp-linux-s390x@0.34.1': - resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + '@img/sharp-linux-s390x@0.34.2': + resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] - '@img/sharp-linux-x64@0.34.1': - resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + '@img/sharp-linux-x64@0.34.2': + resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.1': - resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + '@img/sharp-linuxmusl-arm64@0.34.2': + resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.1': - resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + '@img/sharp-linuxmusl-x64@0.34.2': + resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] - '@img/sharp-wasm32@0.34.1': - resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + '@img/sharp-wasm32@0.34.2': + resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.34.1': - resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + '@img/sharp-win32-arm64@0.34.2': + resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.2': + resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.1': - resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + '@img/sharp-win32-x64@0.34.2': + resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] + '@ioredis/commands@1.2.0': + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@koa/cors@5.0.0': + resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==} + engines: {node: '>= 14.0.0'} + + '@koa/router@13.1.0': + resolution: {integrity: sha512-mNVu1nvkpSd8Q8gMebGbCkDWJ51ODetrFvLKYusej+V0ByD4btqHYnPIzTBLXnQMVUlm/oxVwqmWBY3zQfZilw==} + engines: {node: '>= 18'} + '@next/env@15.3.2': resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} @@ -411,24 +1107,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@15.3.2': resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@15.3.2': resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@15.3.2': resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@15.3.2': resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} @@ -454,11 +1154,53 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@opentelemetry/api@1.6.0': + resolution: {integrity: sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@prisma/client@6.8.2': + resolution: {integrity: sha512-5II+vbyzv4si6Yunwgkj0qT/iY0zyspttoDrL3R4BYgLdp42/d2C8xdi9vqkrYtKt9H32oFIukvyw3Koz5JoDg==} + engines: {node: '>=18.18'} + peerDependencies: + prisma: '*' + typescript: '>=5.1.0' + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true + + '@prisma/config@6.8.2': + resolution: {integrity: sha512-ZJY1fF4qRBPdLQ/60wxNtX+eu89c3AkYEcP7L3jkp0IPXCNphCYxikTg55kPJLDOG6P0X+QG5tCv6CmsBRZWFQ==} + + '@prisma/debug@6.8.2': + resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==} + + '@prisma/engines-version@6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e': + resolution: {integrity: sha512-Rkik9lMyHpFNGaLpPF3H5q5TQTkm/aE7DsGM5m92FZTvWQsvmi6Va8On3pWvqLHOt5aPUvFb/FeZTmphI4CPiQ==} + + '@prisma/engines@6.8.2': + resolution: {integrity: sha512-XqAJ//LXjqYRQ1RRabs79KOY4+v6gZOGzbcwDQl0D6n9WBKjV7qdrbd042CwSK0v0lM9MSHsbcFnU2Yn7z8Zlw==} + + '@prisma/fetch-engine@6.8.2': + resolution: {integrity: sha512-lCvikWOgaLOfqXGacEKSNeenvj0n3qR5QvZUOmPE2e1Eh8cMYSobxonCg9rqM6FSdTfbpqp9xwhSAOYfNqSW0g==} + + '@prisma/get-platform@6.8.2': + resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==} + '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/react-arrow@1.1.6': - resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==} + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -470,8 +1212,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.6': - resolution: {integrity: sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==} + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -510,8 +1252,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.9': - resolution: {integrity: sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==} + '@radix-ui/react-dismissable-layer@1.1.10': + resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -523,8 +1265,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.14': - resolution: {integrity: sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==} + '@radix-ui/react-dropdown-menu@2.1.15': + resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -545,8 +1287,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.6': - resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -567,8 +1309,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-menu@2.1.14': - resolution: {integrity: sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==} + '@radix-ui/react-menu@2.1.15': + resolution: {integrity: sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -580,8 +1322,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.6': - resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==} + '@radix-ui/react-popper@1.2.7': + resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -593,8 +1335,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.8': - resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -619,8 +1361,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.2': - resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -632,8 +1374,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.9': - resolution: {integrity: sha512-ZzrIFnMYHHCNqSNCsuN6l7wlewBEq0O0BCSBkabJMFXVO51LRUTq71gLP1UxFvmrXElqmPjA5VX7IqC9VpazAQ==} + '@radix-ui/react-roving-focus@1.1.10': + resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -645,8 +1387,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.2': - resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -720,91 +1462,432 @@ packages: '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@rollup/rollup-android-arm-eabi@4.41.0': + resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.41.0': + resolution: {integrity: sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.41.0': + resolution: {integrity: sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.41.0': + resolution: {integrity: sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.41.0': + resolution: {integrity: sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.41.0': + resolution: {integrity: sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.41.0': + resolution: {integrity: sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.41.0': + resolution: {integrity: sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.41.0': + resolution: {integrity: sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.41.0': + resolution: {integrity: sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loongarch64-gnu@4.41.0': + resolution: {integrity: sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': + resolution: {integrity: sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.41.0': + resolution: {integrity: sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.41.0': + resolution: {integrity: sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.41.0': + resolution: {integrity: sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.41.0': + resolution: {integrity: sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.41.0': + resolution: {integrity: sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.41.0': + resolution: {integrity: sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.41.0': + resolution: {integrity: sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.41.0': + resolution: {integrity: sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==} + cpu: [x64] + os: [win32] + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-prettier@8.1.0': + resolution: {integrity: sha512-o4/uFI8G64tAjBZ4E7gJfH+VP7Qi3T0+M4WnIsP91iFnGPqs5WvPDkpZALXPiyWEtzfYs1Rmwy1Zdfu8qoZuKw==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/plugin-svgo@8.1.0': + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + + '@swc/core-darwin-arm64@1.11.29': + resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.11.29': + resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.11.29': + resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.11.29': + resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-arm64-musl@1.11.29': + resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@swc/core-linux-x64-gnu@1.11.29': + resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-x64-musl@1.11.29': + resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@swc/core-win32-arm64-msvc@1.11.29': + resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.11.29': + resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.11.29': + resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.11.29': + resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tailwindcss/node@4.0.6': - resolution: {integrity: sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tailwindcss/oxide-android-arm64@4.0.6': - resolution: {integrity: sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow==} + '@swc/types@0.1.21': + resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + + '@tailwindcss/node@4.1.7': + resolution: {integrity: sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==} + + '@tailwindcss/oxide-android-arm64@4.1.7': + resolution: {integrity: sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.0.6': - resolution: {integrity: sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg==} + '@tailwindcss/oxide-darwin-arm64@4.1.7': + resolution: {integrity: sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.0.6': - resolution: {integrity: sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g==} + '@tailwindcss/oxide-darwin-x64@4.1.7': + resolution: {integrity: sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.0.6': - resolution: {integrity: sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig==} + '@tailwindcss/oxide-freebsd-x64@4.1.7': + resolution: {integrity: sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.6': - resolution: {integrity: sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7': + resolution: {integrity: sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.0.6': - resolution: {integrity: sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.7': + resolution: {integrity: sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] - '@tailwindcss/oxide-linux-arm64-musl@4.0.6': - resolution: {integrity: sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.7': + resolution: {integrity: sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] - '@tailwindcss/oxide-linux-x64-gnu@4.0.6': - resolution: {integrity: sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.7': + resolution: {integrity: sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] - '@tailwindcss/oxide-linux-x64-musl@4.0.6': - resolution: {integrity: sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA==} + '@tailwindcss/oxide-linux-x64-musl@4.1.7': + resolution: {integrity: sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] - '@tailwindcss/oxide-win32-arm64-msvc@4.0.6': - resolution: {integrity: sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw==} + '@tailwindcss/oxide-wasm32-wasi@4.1.7': + resolution: {integrity: sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.7': + resolution: {integrity: sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.0.6': - resolution: {integrity: sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.7': + resolution: {integrity: sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.0.6': - resolution: {integrity: sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA==} + '@tailwindcss/oxide@4.1.7': + resolution: {integrity: sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==} engines: {node: '>= 10'} - '@tailwindcss/postcss@4.0.6': - resolution: {integrity: sha512-noTaGPHjGCXTCc487TWnfAEN0VMjqDAecssWDOsfxV2hFrcZR0AHthX7IdY/0xHTg/EtpmIPdssddlZ5/B7JnQ==} + '@tailwindcss/postcss@4.1.7': + resolution: {integrity: sha512-88g3qmNZn7jDgrrcp3ZXEQfp9CVox7xjP1HN2TFKI03CltPVd/c61ydn5qJJL8FYunn0OqBaW5HNUga0kmPVvw==} + + '@tanstack/query-async-storage-persister@5.76.2': + resolution: {integrity: sha512-khLLapNtc6DLqXswO3fp/0u+BDXVzqv7ZQ2e2jYLf8hK68RDHq4L8hFvN2WaCt9rN+ja61dZCD5ew84a7oVf7w==} + + '@tanstack/query-core@5.76.2': + resolution: {integrity: sha512-PFGwWh5ss9cJQ67l6bZ7hqXbisX2gy13G2jP+VGY1bgdbCfOMWh6UBVnN62QbFXro6CCoX9hYzTnZHr6Rz00YQ==} + + '@tanstack/query-persist-client-core@5.76.2': + resolution: {integrity: sha512-aue39xihS9bK2pg+Tg+WMneysQAV3HhrWsFJhOQ0WL6is+ybpBoSFACny/opxroOWGK6uRHHEQ/oS1n/6Dh23Q==} + + '@tanstack/react-query-persist-client@5.76.2': + resolution: {integrity: sha512-Zi0THj+7SRcNzSur28SEHs8UfByfX6vYWIG8V1ItregHGw8jswAiLB64HIGmaJqwewNJhHANJictIxXkz3k8ug==} + peerDependencies: + '@tanstack/react-query': ^5.76.2 + react: ^18 || ^19 + + '@tanstack/react-query@5.76.2': + resolution: {integrity: sha512-rGkWberCrFdIxMdvSAJM/UOKeu0O/JVTbMmfhQoJpiU9Uq0EDx2EMCadnNuJWbXR4smDA2t7DY3NKkYFmDVS5A==} + peerDependencies: + react: ^18 || ^19 '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@trpc/client@11.1.2': + resolution: {integrity: sha512-RpifJOAv+ql9gF3oafa3dLCF01AzWu2DzejvehAPG2IlwHxopKoYXaImJ8zPwRkZokuWiKz5v65HjElmi8TlrQ==} + peerDependencies: + '@trpc/server': 11.1.2 + typescript: '>=5.7.2' + + '@trpc/react-query@11.1.2': + resolution: {integrity: sha512-Ws3oIaj0qqbVIUyfYd9uFBwqk7eRqsxaLhLKN7grskoBo8wkh/CUADcN6ZD+GGogC3Dsg9S4WhgU1jVgfc/ahg==} + peerDependencies: + '@tanstack/react-query': ^5.67.1 + '@trpc/client': 11.1.2 + '@trpc/server': 11.1.2 + react: '>=18.2.0' + react-dom: '>=18.2.0' + typescript: '>=5.7.2' + + '@trpc/server@11.1.2': + resolution: {integrity: sha512-Oi9zWHG0ZDkbDo4sYkduoV7q4sIe6UwjrRLC91vNMYQK+PVgpbTCmK1laRwewAGu0zaayqcGDosANjceOIC3GA==} + peerDependencies: + typescript: '>=5.7.2' + + '@trpc/tanstack-react-query@11.1.2': + resolution: {integrity: sha512-c+NupnmIQmwgwYVTaHgDg59BZBtJ6KxqB0cxF9FBhKHPY6PlwGLdU8+mo25C5VIpofZYEII4H7NKE4yKGFSe3w==} + peerDependencies: + '@tanstack/react-query': ^5.67.1 + '@trpc/client': 11.1.2 + '@trpc/server': 11.1.2 + react: '>=18.2.0' + react-dom: '>=18.2.0' + typescript: '>=5.7.2' + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -825,31 +1908,118 @@ packages: resolution: {integrity: sha512-Kqo+gKJleFB+GkKiSHCCb4RB46VDBTWRKdp08RQ4rtL60+SU89M6F7gpTGG/4nL2eYD98mOKp3Lyzfk/Auht7A==} hasBin: true - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bun@1.2.14': + resolution: {integrity: sha512-VsFZKs8oKHzI7zwvECiAJ5oSorWndIWEVhfbYqZd4HI/45kzW7PN2Rr5biAzvGvRuNmYLSANY+H59ubHq8xw7Q==} + + '@types/command-line-args@5.2.3': + resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} + + '@types/command-line-usage@5.0.4': + resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/content-disposition@0.5.8': + resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + + '@types/cookies@0.9.0': + resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/express-serve-static-core@5.0.6': + resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + + '@types/express@5.0.2': + resolution: {integrity: sha512-BtjL3ZwbCQriyb0DGw+Rt12qAXPiBTPs815lsUvtt1Grk0vLRMZNMUZ741d5rjk+UQOxfDiBZ3dxpX00vSkK3g==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + '@types/har-format@1.2.16': + resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + + '@types/http-assert@1.5.6': + resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/inquirer@6.5.0': resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/keygrip@1.0.6': + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + + '@types/koa-compose@3.2.8': + resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + + '@types/koa@2.15.0': + resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/node@20.17.19': - resolution: {integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==} + '@types/node@20.17.50': + resolution: {integrity: sha512-Mxiq0ULv/zo1OzOhwPqOA13I81CV/W3nvd3ChtQZRT5Cwz3cr0FKo/wMSsbTqL3EXpaBAEQhva2B8ByRkOIh9A==} + + '@types/node@20.9.0': + resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + + '@types/oidc-provider@9.1.0': + resolution: {integrity: sha512-UoC3ZQur+TtVL5hiUN8LoCbXocS2WI2eAPBtZtv1Y5F3vW0QTBawFAgDoctPqCQF73kah/Nzb5Gd3m5GtxFxiA==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} '@types/react-dom@19.1.5': resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==} peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.4': - resolution: {integrity: sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==} + '@types/react@18.2.45': + resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + + '@types/react@19.1.5': + resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} + + '@types/scheduler@0.26.0': + resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} '@types/through@0.0.33': resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} @@ -904,6 +2074,16 @@ packages: resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@zxing/text-encoding@0.9.0': + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -913,8 +2093,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} hasBin: true @@ -937,6 +2117,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -945,16 +2129,35 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + apache-arrow@19.0.1: + resolution: {integrity: sha512-APmMLzS4qbTivLrPdQXexGM4JRr+0g62QDaobzEvip/FdQIrv2qLy0mD5Qdmw4buydtVJgbFeKR8f59I6PPGDg==} + hasBin: true + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} engines: {node: '>=10'} + array-back@6.2.2: + resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} + engines: {node: '>=12.17'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -971,8 +2174,8 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} array.prototype.flatmap@1.3.3: @@ -991,10 +2194,26 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1005,9 +2224,19 @@ packages: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + block-stream2@2.1.0: + resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1018,16 +2247,50 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + browser-or-node@2.1.1: + resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} + + browserslist@4.24.5: + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bun-types@1.2.14: + resolution: {integrity: sha512-Kuh4Ub28ucMRWeiUUWMHsT9Wcbr4H3kLIO72RZZElSDxSu7vpetRvxIUDUaW6QtaIeixIpm7OXtNnZPf82EzwA==} + + bundle-require@4.2.1: + resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -1037,10 +2300,6 @@ packages: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} - engines: {node: '>= 0.4'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -1052,8 +2311,16 @@ packages: camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} - caniuse-lite@1.0.30001700: - resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001718: + resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + + chalk-template@0.4.0: + resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1067,12 +2334,28 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@3.1.0: resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==} chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -1095,6 +2378,10 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -1103,6 +2390,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1123,18 +2414,83 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + command-line-args@6.0.1: + resolution: {integrity: sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==} + engines: {node: '>=12.20'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true + + command-line-usage@7.0.3: + resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==} + engines: {node: '>=12.20.0'} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + constant-case@2.0.0: resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} - core-js-pure@3.39.0: - resolution: {integrity: sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + core-js-pure@3.42.0: + resolution: {integrity: sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -1143,6 +2499,25 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -1162,8 +2537,15 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1171,6 +2553,13 @@ packages: supports-color: optional: true + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -1178,6 +2567,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -1197,13 +2590,31 @@ packages: resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} engines: {node: '>=8'} - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} detect-node-es@1.1.0: @@ -1221,26 +2632,73 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.157: + resolution: {integrity: sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.23.10: + resolution: {integrity: sha512-MtUbM072wlJNyeYAe0mhzrD+M6DIJa96CZAOBBrhDbgKnB4MApIKefcyAB1eOdYn8cUNZgvwBvEzdoAYsxgEIw==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -1255,10 +2713,6 @@ packages: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -1267,13 +2721,31 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1315,6 +2787,10 @@ packages: eslint: '>6.6.0' turbo: '>2.0.0' + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.3.0: resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1327,6 +2803,12 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + eslint@9.27.0: resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1341,6 +2823,10 @@ packages: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -1362,6 +2848,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + eta@3.5.0: + resolution: {integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==} + engines: {node: '>=6.0.0'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -1377,8 +2867,8 @@ packages: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -1387,13 +2877,33 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fast-xml-parser@4.5.3: + resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + hasBin: true + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + figma-js@1.16.0: + resolution: {integrity: sha512-cImQT9DAJp1J0xr6FMUAswXKEnjwrDz4QKAgIBpUyydKAgDS/lm862stjweHp99uco5qLoNv+GbwQWBHyDvDQw==} + engines: {node: '>=8.9'} figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -1402,27 +2912,88 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + + find-replace@5.0.2: + resolution: {integrity: sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==} + engines: {node: '>=14'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatbuffers@24.12.23: + resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreach@2.0.6: + resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -1433,9 +3004,13 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} @@ -1445,6 +3020,9 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -1457,6 +3035,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-uri@6.0.4: resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} engines: {node: '>= 14'} @@ -1469,10 +3050,27 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.2: + resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -1489,6 +3087,10 @@ packages: resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} engines: {node: '>=8'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -1508,8 +3110,9 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -1541,6 +3144,26 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} + hono@4.7.10: + resolution: {integrity: sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ==} + engines: {node: '>=16.9.0'} + + hpagent@1.2.0: + resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} + engines: {node: '>=14'} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -1549,6 +3172,10 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + httpsnippet-lite@3.0.5: + resolution: {integrity: sha512-So4qTXY5iFj5XtFDwyz2PicUu+8NWrI8e8h+ZeZoVtMNcFQp4FFIntBHUE+JPUG6QQU8o1VHCy+X4ETRDwt9CA==} + engines: {node: '>=14.13'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -1557,6 +3184,10 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1568,8 +3199,8 @@ packages: resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} imurmurhash@0.1.4: @@ -1602,35 +3233,54 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + ioredis@5.4.1: + resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} + engines: {node: '>=12.22.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.0: - resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -1645,16 +3295,16 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.0: - resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -1680,6 +3330,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + is-path-cwd@2.2.0: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} @@ -1692,6 +3346,10 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -1727,14 +3385,18 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -1745,14 +3407,28 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterator.prototype@1.1.4: - resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + jose@6.0.11: + resolution: {integrity: sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1763,15 +3439,38 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bignum@0.0.3: + resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} + engines: {node: '>=0.8'} + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-pointer@0.6.2: + resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stream@1.0.0: + resolution: {integrity: sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -1779,88 +3478,126 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa@3.0.0: + resolution: {integrity: sha512-Usyqf1o+XN618R3Jzq4S4YWbKsRtPcGpgyHXD4APdGYQQyqQ59X+Oyc7fXHS2429stzLsBiDjj6zqqYe8kknfw==} + engines: {node: '>= 18'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lightningcss-darwin-arm64@1.29.1: - resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.29.1: - resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.29.1: - resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.29.1: - resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.29.1: - resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] - lightningcss-linux-arm64-musl@1.29.1: - resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] - lightningcss-linux-x64-gnu@1.29.1: - resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] - lightningcss-linux-x64-musl@1.29.1: - resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] - lightningcss-win32-arm64-msvc@1.29.1: - resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.29.1: - resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.29.1: - resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -1882,6 +3619,19 @@ packages: lower-case@1.1.4: resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -1891,6 +3641,9 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -1898,6 +3651,16 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -1909,10 +3672,30 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1923,24 +3706,56 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minio@7.1.3: + resolution: {integrity: sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==} + engines: {node: ^16 || ^18 || >=20} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.0.2: + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + engines: {node: '>= 18'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.1.5: + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + engines: {node: ^18 || >=20} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -1978,20 +3793,42 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-cron@4.0.7: + resolution: {integrity: sha512-A37UUDpxRT/kWanELr/oMayCWQFk9Zx9BEUoXrAKuKwKzH4XuAX+vMixMBPkgZBkADgJwXv91w5cMRTNSVP/mA==} + engines: {node: '>=6.0.0'} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + node-plop@0.26.3: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -2014,6 +3851,17 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + oidc-provider@9.1.1: + resolution: {integrity: sha512-kkH1yWjjEUKVe2pbWS7vvE3ibRae/yjCcRq1Q8PKu5eGOg4MWlmino7A1Hm1bDYm+bLAdHIVcMdb2i9nbeUTeA==} + + oidc-token-hash@5.1.0: + resolution: {integrity: sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==} + engines: {node: ^10.13.0 || >=12.0.0} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2021,6 +3869,12 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + openapi-sampler@1.4.0: + resolution: {integrity: sha512-3FKJQCHAMG9T7RsRy9u5Ft4ERPq1QQmn77C8T3OSofYL9uur59AqychvQ0YQKijrqRwIkAbzkh+nQnAE3gjMVA==} + + openapi3-ts@4.2.2: + resolution: {integrity: sha512-+9g4actZKeb3czfi9gVQ4Br2Ju3KwhCAQJBNaKgye5KggqcBLIhFHH+nIkcm0BUX00TrAJl6dH4JWgM4G4JWrw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -2053,14 +3907,17 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} - pac-proxy-agent@7.1.0: - resolution: {integrity: sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==} + pac-proxy-agent@7.2.0: + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} pac-resolver@7.0.1: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} @@ -2068,6 +3925,14 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + pascal-case@2.0.1: resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} @@ -2089,10 +3954,24 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -2103,27 +3982,83 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@3.5.3: resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} hasBin: true + prisma@6.8.2: + resolution: {integrity: sha512-JNricTXQxzDtRS7lCGGOB4g5DJ91eg3nozdubXze3LpcMl1oWwcFddrj++Up3jnRE6X/3gB/xz3V+ecBk/eEGA==} + engines: {node: '>=18.18'} + hasBin: true + peerDependencies: + typescript: '>=5.1.0' + peerDependenciesMeta: + typescript: + optional: true + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2138,9 +4073,21 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-lru@7.0.1: + resolution: {integrity: sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==} + engines: {node: '>=18'} + + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -2163,8 +4110,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.6.3: - resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + react-remove-scroll@2.7.0: + resolution: {integrity: sha512-sGsQtcjMqdQyijAHytfGEELB8FufGbfXIsvUTe+NLx1GDRJCXtCFLBLUI1eyZCKXXvbEU2C6gai0PZKoIE9Vbg==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -2191,15 +4138,28 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} registry-auth-token@3.3.2: @@ -2209,12 +4169,24 @@ packages: resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} engines: {node: '>=0.10.0'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve@1.22.9: - resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true resolve@2.0.0-next.5: @@ -2225,8 +4197,8 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rimraf@3.0.2: @@ -2234,6 +4206,21 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rollup@4.41.0: + resolution: {integrity: sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -2266,9 +4253,15 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + secure-json-parse@3.0.2: + resolution: {integrity: sha512-H6nS2o8bWfpFEV6U38sOSjS7bTbdgbCGU9wEM6W14P5H0QOsz94KCusifV44GpHDTu2nqZbuDNhTzu+mjDSw1w==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2278,11 +4271,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -2303,8 +4291,11 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - sharp@0.34.1: - resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sharp@0.34.2: + resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -2315,6 +4306,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -2334,6 +4329,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -2348,12 +4347,15 @@ packages: snake-case@2.1.0: resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} source-map-js@1.2.1: @@ -2364,17 +4366,47 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} @@ -2397,10 +4429,18 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -2413,6 +4453,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -2426,6 +4469,15 @@ packages: babel-plugin-macros: optional: true + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -2434,29 +4486,69 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + swap-case@1.1.2: resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} + table-layout@4.1.1: + resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} + engines: {node: '>=12.17'} + tailwind-merge@3.3.0: resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} - tailwindcss@4.0.6: - resolution: {integrity: sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==} + tailwindcss@4.1.7: + resolution: {integrity: sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} + engines: {node: '>=12.0.0'} + tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} @@ -2471,12 +4563,26 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -2497,6 +4603,51 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + tsup@7.3.0: + resolution: {integrity: sha512-Ja1eaSRrE+QarmATlNO5fse2aOACYMBX+IZRKy1T+gpyH+jXgRrl5l4nHIQJQ1DoDgEjHDTw8cpE085UdBZuWQ==} + engines: {node: '>=18'} + deprecated: Breaking node 16 + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsup@8.5.0: + resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsx@4.19.4: + resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==} + engines: {node: '>=18.0.0'} + hasBin: true + turbo-darwin-64@2.5.3: resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==} cpu: [x64] @@ -2538,10 +4689,18 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -2565,8 +4724,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true @@ -2575,6 +4734,13 @@ packages: engines: {node: '>=14.17'} hasBin: true + typical@7.3.0: + resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} + engines: {node: '>=12.17'} + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -2584,13 +4750,33 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici@7.10.0: + resolution: {integrity: sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==} + engines: {node: '>=20.18.1'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-check@1.5.4: resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} @@ -2626,6 +4812,9 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -2633,9 +4822,26 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -2648,8 +4854,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} which@2.0.2: @@ -2664,13 +4870,64 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wordwrapjs@5.1.0: + resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} + engines: {node: '>=12.17'} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + + xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -2679,30 +4936,304 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zod@3.24.4: - resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + zod@3.25.23: + resolution: {integrity: sha512-Od2bdMosahjSrSgJtakrwjMDb1zM1A3VIHCPGveZt/3/wlrTWBya2lmEh2OYe4OIu8mPTmmr0gnLHIWQXdtWBg==} snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/runtime-corejs3@7.26.0': + '@ampproject/remapping@2.3.0': dependencies: - core-js-pure: 3.39.0 - regenerator-runtime: 0.14.1 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@asteasolutions/zod-to-openapi@6.4.0(zod@3.25.23)': + dependencies: + openapi3-ts: 4.2.2 + zod: 3.25.23 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.27.2': {} + + '@babel/core@7.27.1': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helpers': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.27.1': + dependencies: + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.5 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.27.1': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.1 + + '@babel/parser@7.27.2': + dependencies: + '@babel/types': 7.27.1 + + '@babel/runtime-corejs3@7.27.1': + dependencies: + core-js-pure: 3.42.0 + + '@babel/runtime@7.27.1': {} + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 + + '@babel/traverse@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/template': 7.27.2 + '@babel/types': 7.27.1 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@elastic/elasticsearch@9.0.2': + dependencies: + '@elastic/transport': 9.0.1 + apache-arrow: 19.0.1 + tslib: 2.8.1 + transitivePeerDependencies: + - '@75lb/nature' + - supports-color + + '@elastic/transport@9.0.1': + dependencies: + '@opentelemetry/api': 1.6.0 + debug: 4.4.1 + hpagent: 1.2.0 + ms: 2.1.3 + secure-json-parse: 3.0.2 + tslib: 2.8.1 + undici: 7.10.0 + transitivePeerDependencies: + - supports-color + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.27.0(jiti@2.4.2))': + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.25.4': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.25.4': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.25.4': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.25.4': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.25.4': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.25.4': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.4': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.25.4': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.25.4': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.25.4': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.25.4': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.25.4': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.25.4': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.25.4': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.25.4': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.25.4': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.4': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.25.4': + optional: true + + '@esbuild/openbsd-arm64@0.25.4': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.25.4': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.25.4': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.25.4': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.25.4': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.25.4': + optional: true + + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.0)': dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': @@ -2715,7 +5246,7 @@ snapshots: '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -2726,20 +5257,36 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 + debug: 4.4.1 + espree: 9.6.1 + globals: 13.24.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + '@eslint/js@9.27.0': {} '@eslint/object-schema@2.1.6': {} @@ -2749,23 +5296,33 @@ snapshots: '@eslint/core': 0.14.0 levn: 0.4.1 - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.7.0': dependencies: '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.6.13': + '@floating-ui/dom@1.7.0': dependencies: - '@floating-ui/core': 1.6.9 + '@floating-ui/core': 1.7.0 '@floating-ui/utils': 0.2.9 '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@floating-ui/dom': 1.6.13 + '@floating-ui/dom': 1.7.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) '@floating-ui/utils@0.2.9': {} + '@hono/trpc-server@0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.10)': + dependencies: + '@trpc/server': 11.1.2(typescript@5.8.3) + hono: 4.7.10 + + '@hono/zod-validator@0.5.0(hono@4.7.10)(zod@3.25.23)': + dependencies: + hono: 4.7.10 + zod: 3.25.23 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -2773,18 +5330,28 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + '@humanwhocodes/module-importer@1.0.1': {} + '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.3': {} - '@img/sharp-darwin-arm64@0.34.1': + '@img/sharp-darwin-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.1.0 optional: true - '@img/sharp-darwin-x64@0.34.1': + '@img/sharp-darwin-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.1.0 optional: true @@ -2816,56 +5383,97 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64@1.1.0': optional: true - '@img/sharp-linux-arm64@0.34.1': + '@img/sharp-linux-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.1.0 optional: true - '@img/sharp-linux-arm@0.34.1': + '@img/sharp-linux-arm@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.1.0 optional: true - '@img/sharp-linux-s390x@0.34.1': + '@img/sharp-linux-s390x@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.1.0 optional: true - '@img/sharp-linux-x64@0.34.1': + '@img/sharp-linux-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.1.0 optional: true - '@img/sharp-linuxmusl-arm64@0.34.1': + '@img/sharp-linuxmusl-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 optional: true - '@img/sharp-linuxmusl-x64@0.34.1': + '@img/sharp-linuxmusl-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.1.0 optional: true - '@img/sharp-wasm32@0.34.1': + '@img/sharp-wasm32@0.34.2': dependencies: '@emnapi/runtime': 1.4.3 optional: true - '@img/sharp-win32-ia32@0.34.1': + '@img/sharp-win32-arm64@0.34.2': optional: true - '@img/sharp-win32-x64@0.34.1': + '@img/sharp-win32-ia32@0.34.2': optional: true + '@img/sharp-win32-x64@0.34.2': + optional: true + + '@ioredis/commands@1.2.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@koa/cors@5.0.0': + dependencies: + vary: 1.1.2 + + '@koa/router@13.1.0': + dependencies: + http-errors: 2.0.0 + koa-compose: 4.1.0 + path-to-regexp: 6.3.0 + '@next/env@15.3.2': {} '@next/eslint-plugin-next@15.3.2': @@ -2906,318 +5514,618 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.19.1 + + '@opentelemetry/api@1.6.0': {} + + '@opentelemetry/api@1.9.0': + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@prisma/client@6.8.2(prisma@6.8.2(typescript@5.8.3))(typescript@5.8.3)': + optionalDependencies: + prisma: 6.8.2(typescript@5.8.3) + typescript: 5.8.3 + + '@prisma/config@6.8.2': + dependencies: + jiti: 2.4.2 + + '@prisma/debug@6.8.2': {} + + '@prisma/engines-version@6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e': {} + + '@prisma/engines@6.8.2': + dependencies: + '@prisma/debug': 6.8.2 + '@prisma/engines-version': 6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e + '@prisma/fetch-engine': 6.8.2 + '@prisma/get-platform': 6.8.2 + + '@prisma/fetch-engine@6.8.2': + dependencies: + '@prisma/debug': 6.8.2 + '@prisma/engines-version': 6.8.0-43.2060c79ba17c6bb9f5823312b6f6b7f4a845738e + '@prisma/get-platform': 6.8.2 + + '@prisma/get-platform@6.8.2': + dependencies: + '@prisma/debug': 6.8.2 '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-collection@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-context@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-direction@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-dropdown-menu@2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-id@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-menu@2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - aria-hidden: 1.2.4 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) '@radix-ui/rect': 1.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-roving-focus@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-slot@1.2.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 '@radix-ui/rect@1.1.1': {} + '@rollup/rollup-android-arm-eabi@4.41.0': + optional: true + + '@rollup/rollup-android-arm64@4.41.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.41.0': + optional: true + + '@rollup/rollup-darwin-x64@4.41.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.41.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.41.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.41.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.41.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.41.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.41.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.41.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.41.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.41.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.41.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.41.0': + optional: true + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + + '@svgr/babel-preset@8.1.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.1) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.1) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.1) + + '@svgr/core@8.1.0(typescript@5.4.3)': + dependencies: + '@babel/core': 7.27.1 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.1) + camelcase: 6.3.0 + cosmiconfig: 8.3.6(typescript@5.4.3) + snake-case: 3.0.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@svgr/hast-util-to-babel-ast@8.0.0': + dependencies: + '@babel/types': 7.27.1 + entities: 4.5.0 + + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.4.3))': + dependencies: + '@babel/core': 7.27.1 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.1) + '@svgr/core': 8.1.0(typescript@5.4.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + + '@svgr/plugin-prettier@8.1.0(@svgr/core@8.1.0(typescript@5.4.3))': + dependencies: + '@svgr/core': 8.1.0(typescript@5.4.3) + deepmerge: 4.3.1 + prettier: 2.8.8 + + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.4.3))(typescript@5.4.3)': + dependencies: + '@svgr/core': 8.1.0(typescript@5.4.3) + cosmiconfig: 8.3.6(typescript@5.4.3) + deepmerge: 4.3.1 + svgo: 3.3.2 + transitivePeerDependencies: + - typescript + + '@swc/core-darwin-arm64@1.11.29': + optional: true + + '@swc/core-darwin-x64@1.11.29': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.11.29': + optional: true + + '@swc/core-linux-arm64-gnu@1.11.29': + optional: true + + '@swc/core-linux-arm64-musl@1.11.29': + optional: true + + '@swc/core-linux-x64-gnu@1.11.29': + optional: true + + '@swc/core-linux-x64-musl@1.11.29': + optional: true + + '@swc/core-win32-arm64-msvc@1.11.29': + optional: true + + '@swc/core-win32-ia32-msvc@1.11.29': + optional: true + + '@swc/core-win32-x64-msvc@1.11.29': + optional: true + + '@swc/core@1.11.29(@swc/helpers@0.5.17)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.21 + optionalDependencies: + '@swc/core-darwin-arm64': 1.11.29 + '@swc/core-darwin-x64': 1.11.29 + '@swc/core-linux-arm-gnueabihf': 1.11.29 + '@swc/core-linux-arm64-gnu': 1.11.29 + '@swc/core-linux-arm64-musl': 1.11.29 + '@swc/core-linux-x64-gnu': 1.11.29 + '@swc/core-linux-x64-musl': 1.11.29 + '@swc/core-win32-arm64-msvc': 1.11.29 + '@swc/core-win32-ia32-msvc': 1.11.29 + '@swc/core-win32-x64-msvc': 1.11.29 + '@swc/helpers': 0.5.17 + optional: true + '@swc/counter@0.1.3': {} '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.0.6': + '@swc/helpers@0.5.17': dependencies: + tslib: 2.8.1 + + '@swc/types@0.1.21': + dependencies: + '@swc/counter': 0.1.3 + optional: true + + '@tailwindcss/node@4.1.7': + dependencies: + '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.1 jiti: 2.4.2 - tailwindcss: 4.0.6 + lightningcss: 1.30.1 + magic-string: 0.30.17 + source-map-js: 1.2.1 + tailwindcss: 4.1.7 - '@tailwindcss/oxide-android-arm64@4.0.6': + '@tailwindcss/oxide-android-arm64@4.1.7': optional: true - '@tailwindcss/oxide-darwin-arm64@4.0.6': + '@tailwindcss/oxide-darwin-arm64@4.1.7': optional: true - '@tailwindcss/oxide-darwin-x64@4.0.6': + '@tailwindcss/oxide-darwin-x64@4.1.7': optional: true - '@tailwindcss/oxide-freebsd-x64@4.0.6': + '@tailwindcss/oxide-freebsd-x64@4.1.7': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.6': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.0.6': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.7': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.0.6': + '@tailwindcss/oxide-linux-arm64-musl@4.1.7': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.0.6': + '@tailwindcss/oxide-linux-x64-gnu@4.1.7': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.0.6': + '@tailwindcss/oxide-linux-x64-musl@4.1.7': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.0.6': + '@tailwindcss/oxide-wasm32-wasi@4.1.7': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.0.6': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.7': optional: true - '@tailwindcss/oxide@4.0.6': + '@tailwindcss/oxide-win32-x64-msvc@4.1.7': + optional: true + + '@tailwindcss/oxide@4.1.7': + dependencies: + detect-libc: 2.0.4 + tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.0.6 - '@tailwindcss/oxide-darwin-arm64': 4.0.6 - '@tailwindcss/oxide-darwin-x64': 4.0.6 - '@tailwindcss/oxide-freebsd-x64': 4.0.6 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.6 - '@tailwindcss/oxide-linux-arm64-gnu': 4.0.6 - '@tailwindcss/oxide-linux-arm64-musl': 4.0.6 - '@tailwindcss/oxide-linux-x64-gnu': 4.0.6 - '@tailwindcss/oxide-linux-x64-musl': 4.0.6 - '@tailwindcss/oxide-win32-arm64-msvc': 4.0.6 - '@tailwindcss/oxide-win32-x64-msvc': 4.0.6 + '@tailwindcss/oxide-android-arm64': 4.1.7 + '@tailwindcss/oxide-darwin-arm64': 4.1.7 + '@tailwindcss/oxide-darwin-x64': 4.1.7 + '@tailwindcss/oxide-freebsd-x64': 4.1.7 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.7 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.7 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.7 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.7 + '@tailwindcss/oxide-linux-x64-musl': 4.1.7 + '@tailwindcss/oxide-wasm32-wasi': 4.1.7 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.7 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.7 - '@tailwindcss/postcss@4.0.6': + '@tailwindcss/postcss@4.1.7': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.0.6 - '@tailwindcss/oxide': 4.0.6 - lightningcss: 1.29.1 - postcss: 8.4.49 - tailwindcss: 4.0.6 + '@tailwindcss/node': 4.1.7 + '@tailwindcss/oxide': 4.1.7 + postcss: 8.5.3 + tailwindcss: 4.1.7 + + '@tanstack/query-async-storage-persister@5.76.2': + dependencies: + '@tanstack/query-persist-client-core': 5.76.2 + + '@tanstack/query-core@5.76.2': {} + + '@tanstack/query-persist-client-core@5.76.2': + dependencies: + '@tanstack/query-core': 5.76.2 + + '@tanstack/react-query-persist-client@5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/query-persist-client-core': 5.76.2 + '@tanstack/react-query': 5.76.2(react@19.1.0) + react: 19.1.0 + + '@tanstack/react-query@5.76.2(react@19.1.0)': + dependencies: + '@tanstack/query-core': 5.76.2 + react: 19.1.0 '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3)': + dependencies: + '@trpc/server': 11.1.2(typescript@5.8.3) + typescript: 5.8.3 + + '@trpc/react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': + dependencies: + '@tanstack/react-query': 5.76.2(react@19.1.0) + '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + '@trpc/server': 11.1.2(typescript@5.8.3) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + typescript: 5.8.3 + + '@trpc/server@11.1.2(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@trpc/tanstack-react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': + dependencies: + '@tanstack/react-query': 5.76.2(react@19.1.0) + '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + '@trpc/server': 11.1.2(typescript@5.8.3) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + typescript: 5.8.3 + + '@trysound/sax@0.2.0': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -3226,7 +6134,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.5.3(@types/node@20.17.19)(typescript@5.7.3)': + '@turbo/gen@2.5.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3)': dependencies: '@turbo/workspaces': 2.5.3 commander: 10.0.1 @@ -3236,7 +6144,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@20.17.19)(typescript@5.7.3) + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -3250,7 +6158,7 @@ snapshots: dependencies: commander: 10.0.1 execa: 5.1.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 fs-extra: 10.1.0 gradient-string: 2.0.2 inquirer: 8.2.6 @@ -3260,12 +6168,66 @@ snapshots: semver: 7.6.2 update-check: 1.5.4 - '@types/estree@1.0.6': {} + '@types/accepts@1.3.7': + dependencies: + '@types/node': 20.17.50 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.17.50 + + '@types/bun@1.2.14': + dependencies: + bun-types: 1.2.14 + + '@types/command-line-args@5.2.3': {} + + '@types/command-line-usage@5.0.4': {} + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.17.50 + + '@types/content-disposition@0.5.8': {} + + '@types/cookies@0.9.0': + dependencies: + '@types/connect': 3.4.38 + '@types/express': 5.0.2 + '@types/keygrip': 1.0.6 + '@types/node': 20.17.50 + + '@types/estree@1.0.7': {} + + '@types/express-serve-static-core@5.0.6': + dependencies: + '@types/node': 20.17.50 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@5.0.2': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 5.0.6 + '@types/serve-static': 1.15.7 + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.17.50 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.19 + '@types/node': 20.17.50 + + '@types/har-format@1.2.16': {} + + '@types/http-assert@1.5.6': {} + + '@types/http-errors@2.0.4': {} '@types/inquirer@6.5.0': dependencies: @@ -3274,23 +6236,85 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 20.17.50 + + '@types/keygrip@1.0.6': {} + + '@types/koa-compose@3.2.8': + dependencies: + '@types/koa': 2.15.0 + + '@types/koa@2.15.0': + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.8 + '@types/cookies': 0.9.0 + '@types/http-assert': 1.5.6 + '@types/http-errors': 2.0.4 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.8 + '@types/node': 20.17.50 + + '@types/mime@1.3.5': {} + '@types/minimatch@5.1.2': {} - '@types/node@20.17.19': + '@types/node@20.17.50': dependencies: undici-types: 6.19.8 - '@types/react-dom@19.1.5(@types/react@19.1.4)': + '@types/node@20.9.0': dependencies: - '@types/react': 19.1.4 + undici-types: 5.26.5 - '@types/react@19.1.4': + '@types/node@22.15.21': + dependencies: + undici-types: 6.21.0 + + '@types/oidc-provider@9.1.0': + dependencies: + '@types/keygrip': 1.0.6 + '@types/koa': 2.15.0 + '@types/node': 20.17.50 + + '@types/prop-types@15.7.14': {} + + '@types/qs@6.14.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-dom@19.1.5(@types/react@19.1.5)': + dependencies: + '@types/react': 19.1.5 + + '@types/react@18.2.45': + dependencies: + '@types/prop-types': 15.7.14 + '@types/scheduler': 0.26.0 + csstype: 3.1.3 + + '@types/react@19.1.5': dependencies: csstype: 3.1.3 + '@types/scheduler@0.26.0': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.17.50 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.17.50 + '@types/send': 0.17.4 + '@types/through@0.0.33': dependencies: - '@types/node': 20.17.19 + '@types/node': 20.17.50 '@types/tinycolor2@1.4.6': {} @@ -3317,7 +6341,7 @@ snapshots: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.0 + debug: 4.4.1 eslint: 9.27.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: @@ -3332,7 +6356,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0 + debug: 4.4.1 eslint: 9.27.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -3345,11 +6369,11 @@ snapshots: dependencies: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.0 - fast-glob: 3.3.2 + debug: 4.4.1 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -3371,15 +6395,25 @@ snapshots: '@typescript-eslint/types': 8.32.1 eslint-visitor-keys: 4.2.0 - acorn-jsx@5.3.2(acorn@8.14.0): + '@ungap/structured-clone@1.3.0': {} + + '@zxing/text-encoding@0.9.0': + optional: true + + accepts@1.3.8: dependencies: - acorn: 8.14.0 + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 - acorn@8.14.0: {} + acorn@8.14.1: {} agent-base@7.1.3: {} @@ -3401,6 +6435,8 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -3409,26 +6445,51 @@ snapshots: dependencies: color-convert: 2.0.1 + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + apache-arrow@19.0.1: + dependencies: + '@swc/helpers': 0.5.17 + '@types/command-line-args': 5.2.3 + '@types/command-line-usage': 5.0.4 + '@types/node': 20.17.50 + command-line-args: 6.0.1 + command-line-usage: 7.0.3 + flatbuffers: 24.12.23 + json-bignum: 0.0.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@75lb/nature' + arg@4.1.3: {} argparse@2.0.1: {} - aria-hidden@1.2.4: + aria-hidden@1.2.6: dependencies: tslib: 2.8.1 + array-back@6.2.2: {} + array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-array-buffer: 3.0.5 array-includes@3.1.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-abstract: 1.23.10 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 is-string: 1.1.1 array-union@2.1.0: {} @@ -3437,50 +6498,70 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 - array.prototype.flat@1.3.2: + array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.23.10 + es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.23.10 + es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 ast-types@0.13.4: dependencies: tslib: 2.8.1 + async-function@1.0.0: {} + + async@3.2.6: {} + + asynckit@0.4.0: {} + available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 + + axios@0.21.4: + dependencies: + follow-redirects: 1.15.9 + transitivePeerDependencies: + - debug + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug balanced-match@1.0.2: {} @@ -3488,12 +6569,20 @@ snapshots: basic-ftp@5.0.5: {} + binary-extensions@2.3.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 + block-stream2@2.1.0: + dependencies: + readable-stream: 3.6.2 + + boolbase@1.0.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -3507,19 +6596,48 @@ snapshots: dependencies: fill-range: 7.1.1 + browser-or-node@2.1.1: {} + + browserslist@4.24.5: + dependencies: + caniuse-lite: 1.0.30001718 + electron-to-chromium: 1.5.157 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.5) + + buffer-crc32@0.2.13: {} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + bun-types@1.2.14: + dependencies: + '@types/node': 20.17.50 + + bundle-require@4.2.1(esbuild@0.19.12): + dependencies: + esbuild: 0.19.12 + load-tsconfig: 0.2.5 + + bundle-require@5.1.0(esbuild@0.25.4): + dependencies: + esbuild: 0.25.4 + load-tsconfig: 0.2.5 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - call-bind-apply-helpers@1.0.1: + bytes@3.1.2: {} + + cac@6.7.14: {} + + cache-content-type@1.0.1: dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 + mime-types: 2.1.35 + ylru: 1.4.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -3528,16 +6646,11 @@ snapshots: call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -3550,7 +6663,13 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - caniuse-lite@1.0.30001700: {} + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001718: {} + + chalk-template@0.4.0: + dependencies: + chalk: 4.1.2 chalk@2.4.2: dependencies: @@ -3568,6 +6687,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.3.0: {} + change-case@3.1.0: dependencies: camel-case: 3.0.0 @@ -3591,6 +6712,24 @@ snapshots: chardet@0.7.0: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chownr@3.0.0: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -3607,10 +6746,18 @@ snapshots: client-only@0.0.1: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clone@1.0.4: {} clsx@2.1.1: {} + cluster-key-slot@1.1.2: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -3635,16 +6782,80 @@ snapshots: color-string: 1.9.1 optional: true + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + command-line-args@6.0.1: + dependencies: + array-back: 6.2.2 + find-replace: 5.0.2 + lodash.camelcase: 4.3.0 + typical: 7.3.0 + + command-line-usage@7.0.3: + dependencies: + array-back: 6.2.2 + chalk-template: 0.4.0 + table-layout: 4.1.1 + typical: 7.3.0 + commander@10.0.1: {} + commander@4.1.1: {} + + commander@7.2.0: {} + concat-map@0.0.1: {} + concurrently@8.2.2: + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.2 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + + confbox@0.1.8: {} + + consola@3.4.2: {} + constant-case@2.0.0: dependencies: snake-case: 2.1.0 upper-case: 1.1.3 - core-js-pure@3.39.0: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + core-js-pure@3.42.0: {} + + cosmiconfig@8.3.6(typescript@5.4.3): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.4.3 create-require@1.1.1: {} @@ -3654,36 +6865,72 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + css-what@6.1.0: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + csstype@3.1.3: {} data-uri-to-buffer@6.0.2: {} data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - debug@4.4.0: + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.27.1 + + dayjs@1.11.13: {} + + debug@4.4.1: dependencies: ms: 2.1.3 + decode-uri-component@0.2.2: {} + + deep-equal@1.0.1: {} + deep-extend@0.6.0: {} deep-is@0.1.4: {} + deepmerge@4.3.1: {} + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -3717,10 +6964,19 @@ snapshots: rimraf: 3.0.2 slash: 3.0.0 - detect-libc@1.0.3: {} + delayed-stream@1.0.0: {} - detect-libc@2.0.3: - optional: true + delegates@1.0.0: {} + + denque@2.1.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + detect-libc@2.0.4: {} detect-node-es@1.1.0: {} @@ -3734,42 +6990,87 @@ snapshots: dependencies: esutils: 2.0.3 + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-case@2.1.1: dependencies: no-case: 2.3.2 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + dotenv@16.0.3: {} + dotenv@16.4.5: {} + dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.157: {} + emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + + encodeurl@2.0.0: {} + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 - es-abstract@1.23.9: + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.23.10: 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.3 + 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.0.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.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -3786,13 +7087,13 @@ snapshots: is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.0 + is-weakref: 1.1.1 math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + 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.3 + regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.3 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 @@ -3805,7 +7106,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 es-define-property@1.0.1: {} @@ -3814,26 +7115,22 @@ snapshots: es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + 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.4 + iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -3841,11 +7138,11 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 @@ -3855,6 +7152,64 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.25.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -3905,6 +7260,11 @@ snapshots: eslint: 9.27.0(jiti@2.4.2) turbo: 2.5.3 + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 @@ -3914,9 +7274,52 @@ snapshots: eslint-visitor-keys@4.2.0: {} + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + eslint@9.27.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.2 @@ -3927,12 +7330,12 @@ snapshots: '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -3958,10 +7361,16 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 + espree@9.6.1: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} esquery@1.6.0: @@ -3976,6 +7385,8 @@ snapshots: esutils@2.0.3: {} + eta@3.5.0: {} + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -4004,7 +7415,7 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -4016,14 +7427,32 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.17.1: + fast-xml-parser@4.5.3: dependencies: - reusify: 1.0.4 + strnum: 1.1.2 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fdir@6.4.4(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + figma-js@1.16.0: + dependencies: + axios: 0.21.4 + transitivePeerDependencies: + - debug figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -4032,36 +7461,86 @@ snapshots: dependencies: to-regex-range: 5.0.1 + filter-obj@1.1.0: {} + + find-replace@5.0.2: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 + fix-dts-default-cjs-exports@1.0.1: + dependencies: + magic-string: 0.30.17 + mlly: 1.7.4 + rollup: 4.41.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatbuffers@24.12.23: {} - for-each@0.3.3: + flatted@3.3.3: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.5: dependencies: is-callable: 1.2.7 + foreach@2.0.6: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fresh@0.5.2: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs.realpath@1.0.0: {} + fsevents@2.3.3: + optional: true + function-bind@1.1.2: {} function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -4069,18 +7548,9 @@ snapshots: functions-have-names@1.2.3: {} - get-intrinsic@1.2.7: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - 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 + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: dependencies: @@ -4097,24 +7567,30 @@ snapshots: get-nonce@1.0.1: {} + get-own-enumerable-property-symbols@3.0.2: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-stream@6.0.1: {} get-symbol-description@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 + + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 get-uri@6.0.4: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -4126,6 +7602,24 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.2: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -4135,6 +7629,12 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + globals@14.0.0: {} globals@16.1.0: {} @@ -4149,12 +7649,21 @@ snapshots: '@types/glob': 7.2.0 array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob: 7.2.3 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -4175,7 +7684,7 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - has-bigints@1.0.2: {} + has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -4204,33 +7713,68 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 + hono@4.7.10: {} + + hpagent@1.2.0: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color + httpsnippet-lite@3.0.5: + dependencies: + '@types/har-format': 1.2.16 + formdata-node: 4.4.1 + stringify-object: 3.3.0 + human-signals@2.1.0: {} iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} ignore@7.0.4: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -4288,61 +7832,95 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + ioredis@5.4.1: + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.4.1 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 + ipaddr.js@2.2.0: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} is-arrayish@0.3.2: optional: true - is-async-function@2.0.0: + is-async-function@2.1.1: dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 - is-boolean-object@1.2.1: + is-binary-path@2.1.0: dependencies: - call-bound: 1.0.3 + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-callable@1.2.7: {} - is-core-module@2.16.0: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-extglob@2.1.1: {} - is-finalizationregistry@1.1.0: + is-finalizationregistry@1.1.1: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.4 is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -4358,44 +7936,48 @@ snapshots: is-number-object@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} + is-obj@1.0.1: {} + is-path-cwd@2.2.0: {} is-path-inside@3.0.3: {} is-regex@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 + is-regexp@1.0.0: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-stream@2.0.1: {} is-string@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 is-unicode-supported@0.1.0: {} @@ -4405,14 +7987,16 @@ snapshots: is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 - is-weakset@2.0.3: + is-weakset@2.0.4: dependencies: - call-bind: 1.0.8 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-what@4.1.16: {} isarray@2.0.5: {} @@ -4420,17 +8004,31 @@ snapshots: isexe@2.0.0: {} - iterator.prototype@1.1.4: + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 has-symbols: 1.1.0 - reflect.getprototypeof: 1.0.10 set-function-name: 2.0.2 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jiti@2.4.2: {} + jose@6.0.11: {} + + joycon@3.1.1: {} + js-tokens@4.0.0: {} js-yaml@4.1.0: @@ -4439,12 +8037,26 @@ snapshots: jsbn@1.1.0: {} + jsesc@3.1.0: {} + + json-bignum@0.0.3: {} + json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + + json-pointer@0.6.2: + dependencies: + foreach: 2.0.6 + json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} + json-stream@1.0.0: {} + + json5@2.2.3: {} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -4454,72 +8066,116 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 - array.prototype.flat: 1.3.2 + array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + koa-compose@4.1.0: {} + + koa@3.0.0: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + debug: 4.4.1 + delegates: 1.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 2.0.0 + koa-compose: 4.1.0 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lightningcss-darwin-arm64@1.29.1: + lightningcss-darwin-arm64@1.30.1: optional: true - lightningcss-darwin-x64@1.29.1: + lightningcss-darwin-x64@1.30.1: optional: true - lightningcss-freebsd-x64@1.29.1: + lightningcss-freebsd-x64@1.30.1: optional: true - lightningcss-linux-arm-gnueabihf@1.29.1: + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true - lightningcss-linux-arm64-gnu@1.29.1: + lightningcss-linux-arm64-gnu@1.30.1: optional: true - lightningcss-linux-arm64-musl@1.29.1: + lightningcss-linux-arm64-musl@1.30.1: optional: true - lightningcss-linux-x64-gnu@1.29.1: + lightningcss-linux-x64-gnu@1.30.1: optional: true - lightningcss-linux-x64-musl@1.29.1: + lightningcss-linux-x64-musl@1.30.1: optional: true - lightningcss-win32-arm64-msvc@1.29.1: + lightningcss-win32-arm64-msvc@1.30.1: optional: true - lightningcss-win32-x64-msvc@1.29.1: + lightningcss-win32-x64-msvc@1.30.1: optional: true - lightningcss@1.29.1: + lightningcss@1.30.1: dependencies: - detect-libc: 1.0.3 + detect-libc: 2.0.4 optionalDependencies: - lightningcss-darwin-arm64: 1.29.1 - lightningcss-darwin-x64: 1.29.1 - lightningcss-freebsd-x64: 1.29.1 - lightningcss-linux-arm-gnueabihf: 1.29.1 - lightningcss-linux-arm64-gnu: 1.29.1 - lightningcss-linux-arm64-musl: 1.29.1 - lightningcss-linux-x64-gnu: 1.29.1 - lightningcss-linux-x64-musl: 1.29.1 - lightningcss-win32-arm64-msvc: 1.29.1 - lightningcss-win32-x64-msvc: 1.29.1 + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} locate-path@6.0.0: dependencies: p-locate: 5.0.0 + lodash.camelcase@4.3.0: {} + + lodash.defaults@4.2.0: {} + lodash.get@4.4.2: {} + lodash.isarguments@3.1.0: {} + lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} + lodash@4.17.21: {} log-symbols@3.0.0: @@ -4541,16 +8197,38 @@ snapshots: lower-case@1.1.4: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + lru-cache@11.1.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lru-cache@7.18.3: {} lucide-react@0.511.0(react@19.1.0): dependencies: react: 19.1.0 + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-error@1.3.6: {} math-intrinsics@1.1.0: {} + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + media-typer@1.1.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -4560,8 +8238,24 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mimic-fn@2.1.0: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4572,18 +8266,60 @@ snapshots: minimist@1.2.8: {} + minio@7.1.3: + dependencies: + async: 3.2.6 + block-stream2: 2.1.0 + browser-or-node: 2.1.1 + buffer-crc32: 0.2.13 + fast-xml-parser: 4.5.3 + ipaddr.js: 2.2.0 + json-stream: 1.0.0 + lodash: 4.17.21 + mime-types: 2.1.35 + query-string: 7.1.3 + through2: 4.0.2 + web-encoding: 1.1.5 + xml: 1.0.1 + xml2js: 0.5.0 + + minipass@7.1.2: {} + + minizlib@3.0.2: + dependencies: + minipass: 7.1.2 + mkdirp@0.5.6: dependencies: minimist: 1.2.8 + mkdirp@3.0.1: {} + + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + ms@2.1.3: {} mute-stream@0.0.8: {} - nanoid@3.3.8: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.11: {} + + nanoid@5.1.5: {} natural-compare@1.4.0: {} + negotiator@0.6.3: {} + neo-async@2.6.2: {} netmask@2.0.2: {} @@ -4593,13 +8329,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - next@15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.2 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001700 + caniuse-lite: 1.0.30001718 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -4613,7 +8349,8 @@ snapshots: '@next/swc-linux-x64-musl': 15.3.2 '@next/swc-win32-arm64-msvc': 15.3.2 '@next/swc-win32-x64-msvc': 15.3.2 - sharp: 0.34.1 + '@opentelemetry/api': 1.9.0 + sharp: 0.34.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -4622,9 +8359,18 @@ snapshots: dependencies: lower-case: 1.1.4 + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-cron@4.0.7: {} + + node-domexception@1.0.0: {} + node-plop@0.26.3: dependencies: - '@babel/runtime-corejs3': 7.26.0 + '@babel/runtime-corejs3': 7.27.1 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -4634,24 +8380,32 @@ snapshots: isbinaryfile: 4.0.10 lodash.get: 4.4.2 mkdirp: 0.5.6 - resolve: 1.22.9 + resolve: 1.22.10 + + node-releases@2.0.19: {} + + normalize-path@3.0.0: {} npm-run-path@4.0.1: dependencies: path-key: 3.1.1 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + object-assign@4.1.1: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -4666,15 +8420,37 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-abstract: 1.23.10 + es-object-atoms: 1.1.1 object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 + + oidc-provider@9.1.1: + dependencies: + '@koa/cors': 5.0.0 + '@koa/router': 13.1.0 + debug: 4.4.1 + eta: 3.5.0 + jose: 6.0.11 + jsesc: 3.1.0 + koa: 3.0.0 + nanoid: 5.1.5 + oidc-token-hash: 5.1.0 + quick-lru: 7.0.1 + raw-body: 3.0.0 + transitivePeerDependencies: + - supports-color + + oidc-token-hash@5.1.0: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 once@1.4.0: dependencies: @@ -4684,6 +8460,15 @@ snapshots: dependencies: mimic-fn: 2.1.0 + openapi-sampler@1.4.0: + dependencies: + '@types/json-schema': 7.0.15 + json-pointer: 0.6.2 + + openapi3-ts@4.2.2: + dependencies: + yaml: 2.8.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4720,7 +8505,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -4736,11 +8521,11 @@ snapshots: dependencies: aggregate-error: 3.1.0 - pac-proxy-agent@7.1.0: + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 get-uri: 6.0.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -4754,6 +8539,8 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 + package-json-from-dist@1.0.1: {} + param-case@2.1.1: dependencies: no-case: 2.3.2 @@ -4762,6 +8549,15 @@ snapshots: dependencies: callsites: 3.1.0 + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parseurl@1.3.3: {} + pascal-case@2.0.1: dependencies: camel-case: 3.0.0 @@ -4779,32 +8575,82 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + + path-to-regexp@6.3.0: {} + path-type@4.0.0: {} + pathe@2.0.3: {} + picocolors@1.0.1: {} picocolors@1.1.1: {} picomatch@2.3.1: {} - possible-typed-array-names@1.0.0: {} + picomatch@4.0.2: {} + + pirates@4.0.7: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + possible-typed-array-names@1.1.0: {} + + postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3)): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.0 + optionalDependencies: + postcss: 8.5.3 + ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3) + + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(yaml@2.8.0): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.4.2 + postcss: 8.5.3 + tsx: 4.19.4 + yaml: 2.8.0 postcss@8.4.31: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.4.49: + postcss@8.5.3: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} + prettier@2.8.8: {} + prettier@3.5.3: {} + prisma@6.8.2(typescript@5.8.3): + dependencies: + '@prisma/config': 6.8.2 + '@prisma/engines': 6.8.2 + optionalDependencies: + typescript: 5.8.3 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -4814,11 +8660,11 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 - pac-proxy-agent: 7.1.0 + pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -4828,8 +8674,24 @@ snapshots: punycode@2.3.1: {} + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + queue-microtask@1.2.3: {} + quick-lru@7.0.1: {} + + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -4844,32 +8706,32 @@ snapshots: react-is@16.13.1: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.4)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.4)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - react-remove-scroll@2.6.3(@types/react@19.1.4)(react@19.1.0): + react-remove-scroll@2.7.0(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.4)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.4)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.4)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.5)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - react-style-singleton@2.2.3(@types/react@19.1.4)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.5)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 react@19.1.0: {} @@ -4879,24 +8741,36 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.2: {} + + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerator-runtime@0.14.1: {} - - regexp.prototype.flags@1.5.3: + regexp.prototype.flags@1.5.4: 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 registry-auth-token@3.3.2: @@ -4908,17 +8782,23 @@ snapshots: dependencies: rc: 1.2.8 + require-directory@2.1.1: {} + resolve-from@4.0.0: {} - resolve@1.22.9: + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: dependencies: - is-core-module: 2.16.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.16.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -4927,12 +8807,47 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - reusify@1.0.4: {} + reusify@1.1.0: {} rimraf@3.0.2: dependencies: glob: 7.2.3 + rimraf@5.0.5: + dependencies: + glob: 10.4.5 + + rimraf@6.0.1: + dependencies: + glob: 11.0.2 + package-json-from-dist: 1.0.1 + + rollup@4.41.0: + dependencies: + '@types/estree': 1.0.7 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.41.0 + '@rollup/rollup-android-arm64': 4.41.0 + '@rollup/rollup-darwin-arm64': 4.41.0 + '@rollup/rollup-darwin-x64': 4.41.0 + '@rollup/rollup-freebsd-arm64': 4.41.0 + '@rollup/rollup-freebsd-x64': 4.41.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.41.0 + '@rollup/rollup-linux-arm-musleabihf': 4.41.0 + '@rollup/rollup-linux-arm64-gnu': 4.41.0 + '@rollup/rollup-linux-arm64-musl': 4.41.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.41.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.41.0 + '@rollup/rollup-linux-riscv64-gnu': 4.41.0 + '@rollup/rollup-linux-riscv64-musl': 4.41.0 + '@rollup/rollup-linux-s390x-gnu': 4.41.0 + '@rollup/rollup-linux-x64-gnu': 4.41.0 + '@rollup/rollup-linux-x64-musl': 4.41.0 + '@rollup/rollup-win32-arm64-msvc': 4.41.0 + '@rollup/rollup-win32-ia32-msvc': 4.41.0 + '@rollup/rollup-win32-x64-msvc': 4.41.0 + fsevents: 2.3.3 + run-async@2.4.1: {} run-parallel@1.2.0: @@ -4950,8 +8865,8 @@ snapshots: safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -4964,22 +8879,23 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 safer-buffer@2.1.2: {} + sax@1.4.1: {} + scheduler@0.26.0: {} + secure-json-parse@3.0.2: {} + semver@6.3.1: {} semver@7.6.2: {} - semver@7.6.3: {} - - semver@7.7.2: - optional: true + semver@7.7.2: {} sentence-case@2.1.1: dependencies: @@ -4991,7 +8907,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -5006,16 +8922,18 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 - sharp@0.34.1: + setprototypeof@1.2.0: {} + + sharp@0.34.2: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.1 - '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-darwin-arm64': 0.34.2 + '@img/sharp-darwin-x64': 0.34.2 '@img/sharp-libvips-darwin-arm64': 1.1.0 '@img/sharp-libvips-darwin-x64': 1.1.0 '@img/sharp-libvips-linux-arm': 1.1.0 @@ -5025,15 +8943,16 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.1.0 '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - '@img/sharp-linux-arm': 0.34.1 - '@img/sharp-linux-arm64': 0.34.1 - '@img/sharp-linux-s390x': 0.34.1 - '@img/sharp-linux-x64': 0.34.1 - '@img/sharp-linuxmusl-arm64': 0.34.1 - '@img/sharp-linuxmusl-x64': 0.34.1 - '@img/sharp-wasm32': 0.34.1 - '@img/sharp-win32-ia32': 0.34.1 - '@img/sharp-win32-x64': 0.34.1 + '@img/sharp-linux-arm': 0.34.2 + '@img/sharp-linux-arm64': 0.34.2 + '@img/sharp-linux-s390x': 0.34.2 + '@img/sharp-linux-x64': 0.34.2 + '@img/sharp-linuxmusl-arm64': 0.34.2 + '@img/sharp-linuxmusl-x64': 0.34.2 + '@img/sharp-wasm32': 0.34.2 + '@img/sharp-win32-arm64': 0.34.2 + '@img/sharp-win32-ia32': 0.34.2 + '@img/sharp-win32-x64': 0.34.2 optional: true shebang-command@2.0.0: @@ -5042,36 +8961,40 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.2: {} + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -5085,15 +9008,20 @@ snapshots: dependencies: no-case: 2.3.2 + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 - debug: 4.4.0 - socks: 2.8.3 + debug: 4.4.1 + socks: 2.8.4 transitivePeerDependencies: - supports-color - socks@2.8.3: + socks@2.8.4: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 @@ -5102,79 +9030,127 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + spawn-command@0.0.2: {} + + split-on-first@1.1.0: {} + sprintf-js@1.1.3: {} + standard-as-callback@2.1.0: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + streamsearch@1.1.0: {} + strict-uri-encode@2.0.0: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.3 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-abstract: 1.23.10 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-final-newline@2.0.0: {} strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} + strnum@1.1.2: {} + styled-jsx@5.1.6(react@19.1.0): dependencies: client-only: 0.0.1 react: 19.1.0 + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + ts-interface-checker: 0.1.13 + + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -5183,23 +9159,74 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} + svg-parser@2.0.4: {} + + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + swap-case@1.1.2: dependencies: lower-case: 1.1.4 upper-case: 1.1.3 + table-layout@4.1.1: + dependencies: + array-back: 6.2.2 + wordwrapjs: 5.1.0 + tailwind-merge@3.3.0: {} - tailwindcss@4.0.6: {} + tailwindcss@4.1.7: {} - tapable@2.2.1: {} + tapable@2.2.2: {} + + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.2 + mkdirp: 3.0.1 + yallist: 5.0.0 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 through@2.3.8: {} tinycolor2@1.6.0: {} + tinyexec@0.3.2: {} + + tinyglobby@0.2.13: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + tinygradient@1.1.5: dependencies: '@types/tinycolor2': 1.4.6 @@ -5218,32 +9245,106 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 - ts-node@10.9.2(@types/node@20.17.19)(typescript@5.7.3): + ts-interface-checker@0.1.13: {} + + ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.19 - acorn: 8.14.0 + '@types/node': 20.17.50 + acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.3 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.11.29(@swc/helpers@0.5.17) tslib@1.14.1: {} tslib@2.8.1: {} + tsscmp@1.0.6: {} + + tsup@7.3.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3))(typescript@5.8.3): + dependencies: + bundle-require: 4.2.1(esbuild@0.19.12) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.4.1 + esbuild: 0.19.12 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@20.17.50)(typescript@5.8.3)) + resolve-from: 5.0.0 + rollup: 4.41.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.11.29(@swc/helpers@0.5.17) + postcss: 8.5.3 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + - ts-node + + tsup@8.5.0(@swc/core@1.11.29(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0): + dependencies: + bundle-require: 5.1.0(esbuild@0.25.4) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.1 + esbuild: 0.25.4 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.4)(yaml@2.8.0) + resolve-from: 5.0.0 + rollup: 4.41.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.13 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.11.29(@swc/helpers@0.5.17) + postcss: 8.5.3 + typescript: 5.8.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsx@4.19.4: + dependencies: + esbuild: 0.25.4 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + turbo-darwin-64@2.5.3: optional: true @@ -5277,18 +9378,26 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.20.2: {} + type-fest@0.21.3: {} + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -5297,7 +9406,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -5306,10 +9415,10 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 typescript-eslint@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): @@ -5322,24 +9431,42 @@ snapshots: transitivePeerDependencies: - supports-color - typescript@5.7.3: {} + typescript@5.4.3: {} typescript@5.8.3: {} + typical@7.3.0: {} + + ufo@1.6.1: {} + uglify-js@3.19.3: optional: true unbox-primitive@1.1.0: dependencies: - call-bound: 1.0.3 - has-bigints: 1.0.2 + call-bound: 1.0.4 + has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + undici-types@5.26.5: {} + undici-types@6.19.8: {} + undici-types@6.21.0: {} + + undici@7.10.0: {} + universalify@2.0.1: {} + unpipe@1.0.0: {} + + update-browserslist-db@1.1.3(browserslist@4.24.5): + dependencies: + browserslist: 4.24.5 + escalade: 3.2.0 + picocolors: 1.1.1 + update-check@1.5.4: dependencies: registry-auth-token: 3.3.2 @@ -5355,68 +9482,95 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.1.4)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - use-sidecar@1.1.3(@types/react@19.1.4)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.5)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 util-deprecate@1.0.2: {} + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.19 + v8-compile-cache-lib@3.0.1: {} validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 + web-encoding@1.1.5: + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@4.0.2: {} + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 + is-async-function: 2.1.1 is-date-object: 1.1.0 - is-finalizationregistry: 1.1.0 - is-generator-function: 1.0.10 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 - is-weakset: 2.0.3 + is-weakset: 2.0.4 - which-typed-array@1.1.18: + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.3 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -5428,16 +9582,61 @@ snapshots: wordwrap@1.0.0: {} + wordwrapjs@5.1.0: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} + xml2js@0.5.0: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xml@1.0.1: {} + + xmlbuilder@11.0.1: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@5.0.0: {} + + yaml@2.8.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + ylru@1.4.0: {} + yn@3.1.1: {} yocto-queue@0.1.0: {} - zod@3.24.4: {} + zod@3.25.23: {} diff --git a/tsconfig.json b/tsconfig.json index c6a4ad5..afcfc22 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,4 @@ { - "extends": "@workspace/typescript-config/base.json" + "extends": "@repo/typescript-config/base.json" } diff --git a/turbo.json b/turbo.json index d6a7fe0..bed41db 100644 --- a/turbo.json +++ b/turbo.json @@ -1,21 +1,67 @@ { "$schema": "https://turbo.build/schema.json", - "ui": "tui", + "globalDependencies": [ + "**/.env.*local" + ], "tasks": { - "build": { - "dependsOn": ["^build"], - "inputs": ["$TURBO_DEFAULT$", ".env*"], - "outputs": [".next/**", "!.next/cache/**"] - }, - "lint": { - "dependsOn": ["^lint"] - }, - "check-types": { - "dependsOn": ["^check-types"] - }, "dev": { + "dependsOn": ["^db:generate"], "cache": false, "persistent": true + }, + "build": { + "dependsOn": ["^build", "^db:generate"], + "inputs": [ + "$TURBO_DEFAULT$", + ".env*" + ], + "outputs": [ + "dist/**", + ".next/**", + "!.next/cache/**" + ] + }, + "lint": { + "dependsOn": [ + "^lint" + ] + }, + "check-types": { + "dependsOn": [ + "^check-types" + ] + }, + "db:generate": { + "cache": false + }, + "db:migrate": { + "cache": false, + "persistent": true + }, + "db:deploy": { + "cache": false + }, + "db:push": { + "cache": false + }, + "db:seed": { + "cache": false + }, + "generate": { + "dependsOn": [ + "^generate" + ], + "cache": false + }, + "test": { + "outputs": [ + "coverage/**" + ] + }, + "test:e2e": { + "outputs": [ + "coverage-e2e/**" + ] } } -} +} \ No newline at end of file