diff --git a/packages/database/.kysely-codegenrc.json b/packages/database/.kysely-codegenrc.json new file mode 100644 index 000000000..0aca6b2f5 --- /dev/null +++ b/packages/database/.kysely-codegenrc.json @@ -0,0 +1,9 @@ +{ + "camelCase": true, + "dialect": "postgres", + "runtimeEnums":"pascal-case", + "outFile": "src/kyselyTypes.ts", + "url": "env(SUPABASE_DB_URL)", + "envFile": ".env.local", + "includePattern": "public.*" +} diff --git a/packages/database/.zod-codegenrc.ts b/packages/database/.zod-codegenrc.ts new file mode 100644 index 000000000..a23ca41ea --- /dev/null +++ b/packages/database/.zod-codegenrc.ts @@ -0,0 +1,156 @@ +import { Config, TypeScriptSerializer } from 'kysely-codegen'; +import * as fs from 'fs'; + +const kyselyConfigData = fs.readFileSync('.kysely-codegenrc.json') +const kyselyConfig = JSON.parse(kyselyConfigData) as Config; + +// From jlarmstrngiv, https://github.com/RobinBlomberg/kysely-codegen/issues/86#issuecomment-2545060194 + +import { generate as generateZod } from "ts-to-zod"; +// import prettier, { Options as PrettierOptions } from "prettier"; + +const defaultBanner = `/** + * This file was generated by kysely-codegen and ts-to-zod + * Manual edits will be overwritten. + */ + +`; + +export type GenerateOptions = { + banner?: string; + footer?: string; + // prettierOptions?: PrettierOptions; +}; + +export const generateFromKysely = ( + src: string, + { + banner = defaultBanner, + footer = "", + // prettierOptions = {}, + }: GenerateOptions = {}, +): string => { + const hasPostgresInterval = src.includes("IPostgresInterval"); + + // multiline replacement regex https://stackoverflow.com/a/45981809 + + // remove comment + src = src.replace( + /\/\*\*.* This file was generated by kysely-codegen.*?\*\//s, + "", + ); + // remove unneeded imports + src = src.replaceAll(/import.*?;/gs, ""); + if (hasPostgresInterval) { + // ts-to-zod is unable to parse IPostgresInterval from import + // reference node_modules/postgres-interval/index.d.ts + src = + `export interface IPostgresInterval { + years: number; + months: number; + days: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; + // toPostgres(): string; + // toISO(): string; + // toISOString(): string; + // toISOStringShort(): string; +}` + + "\n" + + src; + } + // remove Generated type + src = src.replace(/export type Generated.*?;/s, ""); + src = src.replaceAll( + /: Generated<(.*?)>/g, + (match) => "?: " + match.slice(": Generated<".length, -">".length), + ); + // remove array types + src = src.replace(/export type ArrayType.*?;/s, ""); + src = src.replace(/export type ArrayTypeImpl.*?;/s, ""); + src = src.replaceAll( + /ArrayType<(.*?)>/g, + (match) => match.slice("ArrayType<".length, -">".length) + "[]", + ); + // remove json column type + src = src.replaceAll(/JSONColumnType<(.*?)>/g, (match) => + match.slice("JSONColumnType<".length, -">".length), + ); + // remove DB export + src = src.replace(/export interface DB {.*?}/s, ""); + + // remove and simplify ColumnType + const columnTypeRegex = /export type (.*?) = ColumnType<(.*?)>;/g; + const matches = [...(src.matchAll(columnTypeRegex) ?? [])]; + for (const match of matches) { + const original = match[0]; + const typeName = match[1]; + const types = match[2]; + const reducedTypes = [...new Set((types||'').split(/ \| |, /))]; + src = src.replace( + original, + `export type ${typeName} = ${reducedTypes.join(" | ")};`, + ); + } + + // zod programmatic api https://github.com/fabien0102/ts-to-zod/blob/main/src/core/generate.test.ts + const { getZodSchemasFile, errors } = generateZod({ + sourceText: src, + skipParseJSDoc: true, + }); + + // console log and throw errors, if any + if (errors.length > 0) { + for (const error of errors) { + console.error(error); + } + throw new Error(`ts-to-zod generate failed`); + } + + // generate zod types + let schemas = getZodSchemasFile("./database-types.ts"); + // find enums names + const enumNames = [...schemas.matchAll(/\bz\.enum\(([^)]+)\)/gs)].map(([match, p1])=>p1) || []; + const schemaNames = [...schemas.matchAll(/\bz\.ZodSchema\<([^>]+)\>/gs)].map(([match, p1])=>p1) || []; + const srcImport = `import {${(enumNames.concat(schemaNames)).join(', ')}} from "./kyselyTypes";` + // apply enums + schemas = schemas.replaceAll(/\bz\.enum\b/gs, "z.nativeEnum"); + // remove unneeded imports + schemas = schemas.replaceAll(/import.*?;/gs, ""); + // add back zod import + schemas = `import { z } from "zod";\nimport { Insertable } from "kysely";\n${srcImport}\n\n${schemas}`; + // Insertable + schemas = schemas.replaceAll(/\bz\.ZodSchema\<([^>]+)\>/gs, (match, p1) => + (p1.includes('Json'))?match:`z.ZodSchema>` + ); + // remove comment + schemas = schemas.replace("// Generated by ts-to-zod", ""); + // concatenate types and schemas + schemas = banner + schemas + footer; + // format result + // schemas = await prettier.format(schemas, { + // ...prettierOptions, + // parser: "typescript", + // }); + + return schemas; +} + + +const config: Config = { + ...kyselyConfig, + outFile: "src/zodTypes.ts", + serializer: { + serializeFile: (metadata, dialect, options) => { + const upstream = new TypeScriptSerializer({ + runtimeEnums: kyselyConfig.runtimeEnums + }); + let input = upstream.serializeFile(metadata, dialect, options); + return generateFromKysely(input); + } + } +}; + +export default config; diff --git a/packages/database/package.json b/packages/database/package.json index 648dcfe60..eb43566ad 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -34,7 +34,7 @@ "migrate": "tsx scripts/migrate.ts", "test": "pnpm run build && cucumber-js", "genenv": "tsx scripts/createEnv.mts", - "gentypes": "tsx scripts/genTypes.ts", + "gentypes": "tsx scripts/genTypes.ts && kysely-codegen && kysely-codegen --config-file .zod-codegenrc.ts", "dbdiff": "supabase stop && supabase db diff", "dbdiff:save": "supabase stop && supabase db diff -f", "deploy": "tsx scripts/deploy.ts", @@ -44,19 +44,25 @@ "@repo/utils": "workspace:*", "@supabase/auth-js": "catalog:", "@supabase/functions-js": "catalog:", - "@supabase/supabase-js": "catalog:" + "@supabase/supabase-js": "catalog:", + "kysely": "^0.28.8", + "pg": "^8.16.3", + "zod": "^4.1.12" }, "devDependencies": { "@cucumber/cucumber": "^12.1.0", "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/node": "^20", + "@types/pg": "^8.15.5", "@vercel/sdk": "^1.16.0", "dotenv": "^16.6.1", "eslint": "catalog:", + "kysely-codegen": "^0.19.0", "prettier-plugin-gherkin": "^3.1.2", "supabase": "^2.53.6", "ts-node-maintained": "^10.9.5", + "ts-to-zod": "^5.0.1", "tsx": "4.20.6", "typescript": "5.9.2", "vercel": "48.6.0" diff --git a/packages/database/src/kyselyTypes.ts b/packages/database/src/kyselyTypes.ts new file mode 100644 index 000000000..32580594a --- /dev/null +++ b/packages/database/src/kyselyTypes.ts @@ -0,0 +1,394 @@ +/** + * This file was generated by kysely-codegen. + * Please do not edit it manually. + */ + +import type { ColumnType } from "kysely"; + +export enum Agentidentifiertype { + Email = "email", + Orcid = "orcid", +} + +export enum Agenttype { + Anonymous = "anonymous", + AutomatedAgent = "automated_agent", + Organization = "organization", + Person = "person", +} + +export enum Contentvariant { + Direct = "direct", + DirectAndChildren = "direct_and_children", + DirectAndDescription = "direct_and_description", +} + +export enum Embeddingname { + OpenaiTextEmbedding3Large1024 = "openai_text_embedding_3_large_1024", + OpenaiTextEmbedding3Large256 = "openai_text_embedding_3_large_256", + OpenaiTextEmbedding3Large3072 = "openai_text_embedding_3_large_3072", + OpenaiTextEmbedding3Small1536 = "openai_text_embedding_3_small_1536", + OpenaiTextEmbedding3Small512 = "openai_text_embedding_3_small_512", + OpenaiTextEmbeddingAda21536 = "openai_text_embedding_ada2_1536", +} + +export enum Entitytype { + AutomatedAgent = "AutomatedAgent", + Concept = "Concept", + ConceptSchema = "ConceptSchema", + Content = "Content", + ContentLink = "ContentLink", + Document = "Document", + Occurrence = "Occurrence", + Person = "Person", + Platform = "Platform", + PlatformAccount = "PlatformAccount", + Space = "Space", +} + +export enum Epistemicstatus { + Certain = "certain", + CertainlyNot = "certainly_not", + Contentious = "contentious", + CouldBeFalse = "could_be_false", + CouldBeTrue = "could_be_true", + StrongEvidenceAgainst = "strong_evidence_against", + StrongEvidenceFor = "strong_evidence_for", + Uncertain = "uncertain", + Unknown = "unknown", +} + +export enum Platform { + Obsidian = "Obsidian", + Roam = "Roam", +} + +export enum Scale { + Block = "block", + ChunkUnit = "chunk_unit", + Document = "document", + Field = "field", + Paragraph = "paragraph", + Phrase = "phrase", + Post = "post", + Quote = "quote", + Section = "section", + Sentence = "sentence", +} + +export enum TaskStatus { + Active = "active", + Complete = "complete", + Failed = "failed", + Timeout = "timeout", +} + +export type ArrayType = ArrayTypeImpl extends (infer U)[] + ? U[] + : ArrayTypeImpl; + +export type ArrayTypeImpl = T extends ColumnType + ? ColumnType + : T[]; + +export type Generated = T extends ColumnType + ? ColumnType + : ColumnType; + +export type Int8 = ColumnType; + +export type Json = JsonValue; + +export type JsonArray = JsonValue[]; + +export type JsonObject = { + [x: string]: JsonValue | undefined; +}; + +export type JsonPrimitive = boolean | number | string | null; + +export type JsonValue = JsonArray | JsonObject | JsonPrimitive; + +export type Timestamp = ColumnType; + +export interface AccessToken { + accessToken: string; + code: string | null; + createdDate: Generated; + platformAccountId: Int8 | null; + requestId: string; +} + +export interface AgentIdentifier { + accountId: Int8; + identifierType: Agentidentifiertype; + trusted: Generated; + value: string; +} + +export interface Concept { + arity: Generated; + /** + * The author of content + */ + authorId: Int8 | null; + /** + * The time when the content was created in the remote source + */ + created: Timestamp; + description: string | null; + epistemicStatus: Generated; + id: Generated; + isSchema: Generated; + /** + * The last time the content was modified in the remote source + */ + lastModified: Timestamp; + literalContent: Generated; + name: string; + referenceContent: Generated; + refs: Generated>; + representedById: Int8 | null; + schemaId: Int8 | null; + /** + * The space in which the content is located + */ + spaceId: Int8; +} + +export interface ConceptContributors { + conceptId: Int8; + contributorId: Int8; +} + +export interface Content { + /** + * The author of content + */ + authorId: Int8 | null; + /** + * The time when the content was created in the remote source + */ + created: Timestamp; + /** + * The creator of a logical structure, such as a content subdivision + */ + creatorId: Int8 | null; + documentId: Int8; + id: Generated; + /** + * The last time the content was modified in the remote source + */ + lastModified: Timestamp; + metadata: Generated; + /** + * This content is part of a larger content unit + */ + partOfId: Int8 | null; + scale: Scale; + /** + * The unique identifier of the content in the remote source + */ + sourceLocalId: string | null; + /** + * The space in which the content is located + */ + spaceId: Int8 | null; + text: string; + variant: Generated; +} + +export interface ContentContributors { + contentId: Int8; + contributorId: Int8; +} + +export interface ContentEmbeddingOpenaiTextEmbedding3Small1536 { + model: Generated; + obsolete: Generated; + targetId: Int8; + vector: string; +} + +export interface Document { + /** + * The author of content + */ + authorId: Int8; + /** + * A large object OID for the downloaded raw content + */ + contents: number | null; + /** + * The time when the content was created in the remote source + */ + created: Timestamp; + id: Generated; + /** + * The last time the content was modified in the remote source + */ + lastModified: Timestamp; + metadata: Generated; + /** + * The unique identifier of the content in the remote source + */ + sourceLocalId: string | null; + /** + * The space in which the content is located + */ + spaceId: Int8 | null; + url: string | null; +} + +export interface MyAccounts { + accountLocalId: string | null; + active: boolean | null; + agentType: Agenttype | null; + dgAccount: string | null; + id: Int8 | null; + metadata: Json | null; + name: string | null; + platform: Platform | null; + writePermission: boolean | null; +} + +export interface MyConcepts { + arity: number | null; + authorId: Int8 | null; + created: Timestamp | null; + description: string | null; + epistemicStatus: Epistemicstatus | null; + id: Int8 | null; + isSchema: boolean | null; + lastModified: Timestamp | null; + literalContent: Json | null; + name: string | null; + referenceContent: Json | null; + refs: ArrayType | null; + representedById: Int8 | null; + schemaId: Int8 | null; + spaceId: Int8 | null; +} + +export interface MyContents { + authorId: Int8 | null; + created: Timestamp | null; + creatorId: Int8 | null; + documentId: Int8 | null; + id: Int8 | null; + lastModified: Timestamp | null; + metadata: Json | null; + partOfId: Int8 | null; + scale: Scale | null; + sourceLocalId: string | null; + spaceId: Int8 | null; + text: string | null; + variant: Contentvariant | null; +} + +export interface MyContentsWithEmbeddingOpenaiTextEmbedding3Small1536 { + authorId: Int8 | null; + created: Timestamp | null; + creatorId: Int8 | null; + documentId: Int8 | null; + id: Int8 | null; + lastModified: Timestamp | null; + metadata: Json | null; + model: Embeddingname | null; + partOfId: Int8 | null; + scale: Scale | null; + sourceLocalId: string | null; + spaceId: Int8 | null; + text: string | null; + variant: Contentvariant | null; + vector: string | null; +} + +export interface MyDocuments { + authorId: Int8 | null; + contents: number | null; + created: Timestamp | null; + id: Int8 | null; + lastModified: Timestamp | null; + metadata: Json | null; + sourceLocalId: string | null; + spaceId: Int8 | null; + url: string | null; +} + +export interface MySpaces { + id: Int8 | null; + name: string | null; + platform: Platform | null; + url: string | null; +} + +export interface PlatformAccount { + accountLocalId: string; + active: Generated; + agentType: Generated; + dgAccount: string | null; + id: Generated; + metadata: Generated; + name: string; + platform: Platform; + writePermission: Generated; +} + +export interface Result { + max: Timestamp | null; +} + +export interface Space { + id: Generated; + name: string; + platform: Platform; + url: string; +} + +export interface SpaceAccess { + /** + * The identity of the account in this space + */ + accountId: Int8; + editor: boolean; + /** + * The space in which the content is located + */ + spaceId: Int8; +} + +export interface SyncInfo { + failureCount: Generated; + id: Generated; + lastTaskEnd: Timestamp | null; + lastTaskStart: Timestamp | null; + status: Generated; + syncFunction: string | null; + syncTarget: Int8 | null; + targetType: Generated; + taskTimesOutAt: Timestamp | null; + worker: string; +} + +export interface DB { + accessToken: AccessToken; + AgentIdentifier: AgentIdentifier; + Concept: Concept; + conceptContributors: ConceptContributors; + Content: Content; + contentContributors: ContentContributors; + ContentEmbeddingOpenaiTextEmbedding3Small1536: ContentEmbeddingOpenaiTextEmbedding3Small1536; + Document: Document; + myAccounts: MyAccounts; + myConcepts: MyConcepts; + myContents: MyContents; + myContentsWithEmbeddingOpenaiTextEmbedding3Small1536: MyContentsWithEmbeddingOpenaiTextEmbedding3Small1536; + myDocuments: MyDocuments; + mySpaces: MySpaces; + PlatformAccount: PlatformAccount; + result: Result; + Space: Space; + SpaceAccess: SpaceAccess; + syncInfo: SyncInfo; +} diff --git a/packages/database/src/lib/kyselyClient.ts b/packages/database/src/lib/kyselyClient.ts new file mode 100644 index 000000000..ec8a5ce01 --- /dev/null +++ b/packages/database/src/lib/kyselyClient.ts @@ -0,0 +1,33 @@ +import { DB } from '../kyselyTypes'; +import { Pool } from 'pg' +import { Kysely, PostgresDialect } from 'kysely' + +let client: Kysely|null|false = null; + +export const getClient = (): Kysely|false => { + if (client === null) { + if (!process.env.SUPABASE_URL) { + client = false; + } else { + try { + const url = new URL(process.env.SUPABASE_URL); + const dialect = new PostgresDialect({ + pool: new Pool({ + database: url.pathname, + host: url.host, + user: url.username, + password: url.password, + port: parseInt(url.port), + max: 10, + }) + }) + client = new Kysely({ + dialect, + }); + } catch { + client = false; + } + } + } + return client; +} diff --git a/packages/database/src/zodTypes.ts b/packages/database/src/zodTypes.ts new file mode 100644 index 000000000..c561dafc4 --- /dev/null +++ b/packages/database/src/zodTypes.ts @@ -0,0 +1,247 @@ +/** + * This file was generated by kysely-codegen and ts-to-zod + * Manual edits will be overwritten. + */ + +import { z } from "zod"; +import { Insertable } from "kysely"; +import {Agentidentifiertype, Agenttype, Contentvariant, Embeddingname, Entitytype, Epistemicstatus, Platform, Scale, TaskStatus, Json, JsonValue, JsonArray, JsonObject, Concept, Content, Document, MyAccounts, MyConcepts, MyContents, MyContentsWithEmbeddingOpenaiTextEmbedding3Small1536, MyDocuments, PlatformAccount} from "./kyselyTypes"; + + + + + +export const agentidentifiertypeSchema = z.nativeEnum(Agentidentifiertype); + +export const agenttypeSchema = z.nativeEnum(Agenttype); + +export const contentvariantSchema = z.nativeEnum(Contentvariant); + +export const embeddingnameSchema = z.nativeEnum(Embeddingname); + +export const entitytypeSchema = z.nativeEnum(Entitytype); + +export const epistemicstatusSchema = z.nativeEnum(Epistemicstatus); + +export const platformSchema = z.nativeEnum(Platform); + +export const scaleSchema = z.nativeEnum(Scale); + +export const taskStatusSchema = z.nativeEnum(TaskStatus); + +export const int8Schema = z.union([z.string(), z.bigint(), z.number()]); + +export const jsonPrimitiveSchema = z.union([z.boolean(), z.number(), z.string()]).nullable(); + +export const timestampSchema = z.union([z.date(), z.string()]); + +export const accessTokenSchema = z.object({ + accessToken: z.string(), + code: z.string().nullable(), + createdDate: timestampSchema.optional(), + platformAccountId: int8Schema.nullable(), + requestId: z.string() +}); + +export const agentIdentifierSchema = z.object({ + accountId: int8Schema, + identifierType: agentidentifiertypeSchema, + trusted: z.boolean().optional(), + value: z.string() +}); + +export const conceptContributorsSchema = z.object({ + conceptId: int8Schema, + contributorId: int8Schema +}); + +export const contentContributorsSchema = z.object({ + contentId: int8Schema, + contributorId: int8Schema +}); + +export const contentEmbeddingOpenaiTextEmbedding3Small1536Schema = z.object({ + model: embeddingnameSchema.optional(), + obsolete: z.boolean().optional().nullable(), + targetId: int8Schema, + vector: z.string() +}); + +export const mySpacesSchema = z.object({ + id: int8Schema.nullable(), + name: z.string().nullable(), + platform: platformSchema.nullable(), + url: z.string().nullable() +}); + +export const resultSchema = z.object({ + max: timestampSchema.nullable() +}); + +export const spaceSchema = z.object({ + id: int8Schema.optional(), + name: z.string(), + platform: platformSchema, + url: z.string() +}); + +export const spaceAccessSchema = z.object({ + accountId: int8Schema, + editor: z.boolean(), + spaceId: int8Schema +}); + +export const syncInfoSchema = z.object({ + failureCount: z.number().optional().nullable(), + id: z.number().optional(), + lastTaskEnd: timestampSchema.nullable(), + lastTaskStart: timestampSchema.nullable(), + status: taskStatusSchema.optional().nullable(), + syncFunction: z.string().nullable(), + syncTarget: int8Schema.nullable(), + targetType: entitytypeSchema.optional(), + taskTimesOutAt: timestampSchema.nullable(), + worker: z.string() +}); + +export const jsonSchema: z.ZodSchema = z.lazy(() => jsonValueSchema); + +export const jsonValueSchema: z.ZodSchema = z.lazy(() => z.union([jsonArraySchema, jsonObjectSchema, jsonPrimitiveSchema])); + +export const jsonArraySchema: z.ZodSchema = z.lazy(() => z.array(jsonValueSchema)); + +export const jsonObjectSchema: z.ZodSchema = z.lazy(() => z.record(z.string(), z.union([jsonValueSchema, z.undefined()]))); + +export const conceptSchema: z.ZodSchema> = z.lazy(() => z.object({ + arity: z.number().optional().nullable(), + authorId: int8Schema.nullable(), + created: timestampSchema, + description: z.string().nullable(), + epistemicStatus: epistemicstatusSchema.optional(), + id: int8Schema.optional(), + isSchema: z.boolean().optional(), + lastModified: timestampSchema, + literalContent: jsonSchema.optional(), + name: z.string(), + referenceContent: jsonSchema.optional(), + refs: z.array(int8Schema).optional(), + representedById: int8Schema.nullable(), + schemaId: int8Schema.nullable(), + spaceId: int8Schema +})); + +export const contentSchema: z.ZodSchema> = z.lazy(() => z.object({ + authorId: int8Schema.nullable(), + created: timestampSchema, + creatorId: int8Schema.nullable(), + documentId: int8Schema, + id: int8Schema.optional(), + lastModified: timestampSchema, + metadata: jsonSchema.optional(), + partOfId: int8Schema.nullable(), + scale: scaleSchema, + sourceLocalId: z.string().nullable(), + spaceId: int8Schema.nullable(), + text: z.string(), + variant: contentvariantSchema.optional() +})); + +export const documentSchema: z.ZodSchema> = z.lazy(() => z.object({ + authorId: int8Schema, + contents: z.number().nullable(), + created: timestampSchema, + id: int8Schema.optional(), + lastModified: timestampSchema, + metadata: jsonSchema.optional(), + sourceLocalId: z.string().nullable(), + spaceId: int8Schema.nullable(), + url: z.string().nullable() +})); + +export const myAccountsSchema: z.ZodSchema> = z.lazy(() => z.object({ + accountLocalId: z.string().nullable(), + active: z.boolean().nullable(), + agentType: agenttypeSchema.nullable(), + dgAccount: z.string().nullable(), + id: int8Schema.nullable(), + metadata: jsonSchema.nullable(), + name: z.string().nullable(), + platform: platformSchema.nullable(), + writePermission: z.boolean().nullable() +})); + +export const myConceptsSchema: z.ZodSchema> = z.lazy(() => z.object({ + arity: z.number().nullable(), + authorId: int8Schema.nullable(), + created: timestampSchema.nullable(), + description: z.string().nullable(), + epistemicStatus: epistemicstatusSchema.nullable(), + id: int8Schema.nullable(), + isSchema: z.boolean().nullable(), + lastModified: timestampSchema.nullable(), + literalContent: jsonSchema.nullable(), + name: z.string().nullable(), + referenceContent: jsonSchema.nullable(), + refs: z.array(int8Schema).nullable(), + representedById: int8Schema.nullable(), + schemaId: int8Schema.nullable(), + spaceId: int8Schema.nullable() +})); + +export const myContentsSchema: z.ZodSchema> = z.lazy(() => z.object({ + authorId: int8Schema.nullable(), + created: timestampSchema.nullable(), + creatorId: int8Schema.nullable(), + documentId: int8Schema.nullable(), + id: int8Schema.nullable(), + lastModified: timestampSchema.nullable(), + metadata: jsonSchema.nullable(), + partOfId: int8Schema.nullable(), + scale: scaleSchema.nullable(), + sourceLocalId: z.string().nullable(), + spaceId: int8Schema.nullable(), + text: z.string().nullable(), + variant: contentvariantSchema.nullable() +})); + +export const myContentsWithEmbeddingOpenaiTextEmbedding3Small1536Schema: z.ZodSchema> = z.lazy(() => z.object({ + authorId: int8Schema.nullable(), + created: timestampSchema.nullable(), + creatorId: int8Schema.nullable(), + documentId: int8Schema.nullable(), + id: int8Schema.nullable(), + lastModified: timestampSchema.nullable(), + metadata: jsonSchema.nullable(), + model: embeddingnameSchema.nullable(), + partOfId: int8Schema.nullable(), + scale: scaleSchema.nullable(), + sourceLocalId: z.string().nullable(), + spaceId: int8Schema.nullable(), + text: z.string().nullable(), + variant: contentvariantSchema.nullable(), + vector: z.string().nullable() +})); + +export const myDocumentsSchema: z.ZodSchema> = z.lazy(() => z.object({ + authorId: int8Schema.nullable(), + contents: z.number().nullable(), + created: timestampSchema.nullable(), + id: int8Schema.nullable(), + lastModified: timestampSchema.nullable(), + metadata: jsonSchema.nullable(), + sourceLocalId: z.string().nullable(), + spaceId: int8Schema.nullable(), + url: z.string().nullable() +})); + +export const platformAccountSchema: z.ZodSchema> = z.lazy(() => z.object({ + accountLocalId: z.string(), + active: z.boolean().optional(), + agentType: agenttypeSchema.optional(), + dgAccount: z.string().nullable(), + id: int8Schema.optional(), + metadata: jsonSchema.optional(), + name: z.string(), + platform: platformSchema, + writePermission: z.boolean().optional() +})); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1cb11c3a9..b36f8cb53 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -283,7 +283,7 @@ importers: version: 3.5.2(react@18.2.0) roamjs-components: specifier: 0.85.6 - version: 0.85.6(8b55b1f14ffbf718c26dbfa3a20c2d6b) + version: 0.85.6(2d4d135124107048c1ca3cdbce60d217) tldraw: specifier: 2.3.0 version: 2.3.0(patch_hash=7ce45a0ea083b8abe4082a864eff004fd0b46179cdb40da81961c7bff1e04522)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -326,7 +326,7 @@ importers: version: 3.3.6 axios: specifier: ^0.27.2 - version: 0.27.2(debug@4.4.1) + version: 0.27.2(debug@4.4.3) dotenv: specifier: ^16.0.3 version: 16.6.1 @@ -472,6 +472,15 @@ importers: '@supabase/supabase-js': specifier: 'catalog:' version: 2.76.1 + kysely: + specifier: ^0.28.8 + version: 0.28.8 + pg: + specifier: ^8.16.3 + version: 8.16.3 + zod: + specifier: ^4.1.12 + version: 4.1.13 devDependencies: '@cucumber/cucumber': specifier: ^12.1.0 @@ -485,6 +494,9 @@ importers: '@types/node': specifier: ^20 version: 20.19.13 + '@types/pg': + specifier: ^8.15.5 + version: 8.15.6 '@vercel/sdk': specifier: ^1.16.0 version: 1.16.0 @@ -494,6 +506,9 @@ importers: eslint: specifier: 'catalog:' version: 8.57.1 + kysely-codegen: + specifier: ^0.19.0 + version: 0.19.0(kysely@0.28.8)(pg@8.16.3)(typescript@5.9.2) prettier-plugin-gherkin: specifier: ^3.1.2 version: 3.1.2 @@ -503,6 +518,9 @@ importers: ts-node-maintained: specifier: ^10.9.5 version: 10.9.6(@types/node@20.19.13)(typescript@5.9.2) + ts-to-zod: + specifier: ^5.0.1 + version: 5.0.1(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(tsx@4.20.6)(yaml@2.8.1) tsx: specifier: 4.20.6 version: 4.20.6 @@ -511,7 +529,7 @@ importers: version: 5.9.2 vercel: specifier: 48.6.0 - version: 48.6.0 + version: 48.6.0(rollup@4.52.5) packages/eslint-config: devDependencies: @@ -523,7 +541,7 @@ importers: version: 15.0.4 '@vercel/style-guide': specifier: ^6.0.0 - version: 6.0.0(@next/eslint-plugin-next@15.0.4)(eslint@8.57.1)(prettier@3.6.2)(typescript@5.5.4) + version: 6.0.0(@next/eslint-plugin-next@15.0.4)(eslint@8.57.1)(prettier@3.6.2)(typescript@5.5.4)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1)) eslint: specifier: 'catalog:' version: 8.57.1 @@ -996,6 +1014,12 @@ packages: '@bundled-es-modules/statuses@1.0.1': resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + '@clack/core@1.0.0-alpha.4': + resolution: {integrity: sha512-VCtU+vjyKPMSakVrB9q1bOnXN7QW/w4+YQDQCOF59GrzydW+169i0fVx/qzRRXJgt8KGj/pZZ/JxXroFZIDByg==} + + '@clack/prompts@1.0.0-alpha.4': + resolution: {integrity: sha512-KnmtDF2xQGoI5AlBme9akHtvCRV0RKAARUXHBQO2tMwnY8B08/4zPWigT7uLK25UPrMCEqnyQPkKRjNdhPbf8g==} + '@codemirror/state@6.5.2': resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} @@ -1900,6 +1924,10 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@oclif/core@4.7.2': + resolution: {integrity: sha512-AmZnhEnyD7bFxmzEKRaOEr0kzonmwIip72eWZPWB5+7D9ayHa/QFX08zhaQT9eOo0//ed64v5p5QZIbYCbQaJQ==} + engines: {node: '>=18.0.0'} + '@octokit/auth-app@7.2.2': resolution: {integrity: sha512-p6hJtEyQDCJEPN9ijjhEC/kpFHMHN4Gca9r+8S0S8EJi7NaWftaEmexjxxpT1DFBeJpN4u/5RE22ArnyypupJw==} engines: {node: '>= 18'} @@ -3015,6 +3043,116 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.52.5': + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.52.5': + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.52.5': + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.52.5': + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.52.5': + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.52.5': + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.52.5': + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.52.5': + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.52.5': + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.52.5': + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.5': + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.52.5': + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + cpu: [x64] + os: [win32] + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -3586,6 +3724,9 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/codemirror@5.60.8': resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} @@ -3619,6 +3760,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/dom4@2.0.4': resolution: {integrity: sha512-PD+wqNhrjWFjAlSVd18jvChZvOXB2SOwAILBmuYev5zswBats5qmzs/QFoooLKd2omj9BT05a8MeSeRmXLGY+Q==} @@ -3698,6 +3842,9 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/pg@8.15.6': + resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} + '@types/phoenix@1.6.6': resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} @@ -3857,6 +4004,11 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript/vfs@1.6.2': + resolution: {integrity: sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==} + peerDependencies: + typescript: '*' + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -4062,6 +4214,35 @@ packages: typescript: optional: true + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -4129,6 +4310,10 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + ansi-escapes@7.1.1: + resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} + engines: {node: '>=18'} + ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -4160,6 +4345,10 @@ packages: ansidec@0.3.4: resolution: {integrity: sha512-Ydgbey4zqUmmNN2i2OVeVHXig3PxHRbok2X6B2Sogmb92JzZUFfTL806dT7os6tBL1peXItfeFt76CP3zsoXUg==} + ansis@3.17.0: + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + engines: {node: '>=14'} + ansis@4.2.0: resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} @@ -4251,6 +4440,10 @@ packages: assertion-error-formatter@3.0.0: resolution: {integrity: sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -4399,6 +4592,10 @@ packages: engines: {node: '>=10.12.0'} hasBin: true + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -4437,6 +4634,10 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -4483,6 +4684,10 @@ packages: chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -4491,6 +4696,10 @@ packages: resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==} engines: {node: '>= 14.16.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -4529,6 +4738,10 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + clean-stack@3.0.1: + resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + engines: {node: '>=10'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -4537,6 +4750,10 @@ packages: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -4545,6 +4762,10 @@ packages: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} + cli-truncate@5.1.1: + resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} + engines: {node: '>=20'} + cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} @@ -4612,6 +4833,9 @@ packages: colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -4712,6 +4936,15 @@ packages: typescript: optional: true + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + coveralls-next@4.2.2: resolution: {integrity: sha512-Tw1TKXV0+aEfOgRYBN97RtEZlrLxBiZKFkngsupONkJwy0uYQNbB6VfAEnGnOUa5WkW5sBhjGB2tWha6ULrYkw==} engines: {node: '>=18'} @@ -4867,6 +5100,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.3.1: resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} @@ -4876,6 +5118,10 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-equal@1.1.2: resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} engines: {node: '>= 0.4'} @@ -4950,6 +5196,10 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff@3.5.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -5003,6 +5253,10 @@ packages: dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} + dotenv-expand@12.0.3: + resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} + engines: {node: '>=12'} + dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} @@ -5011,6 +5265,10 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -5030,9 +5288,17 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + electron-to-chromium@1.5.214: resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5057,6 +5323,14 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -5082,6 +5356,9 @@ packages: es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -5480,6 +5757,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -5495,6 +5775,9 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-intercept@2.0.0: resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==} @@ -5518,6 +5801,10 @@ packages: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} + express-rate-limit@7.5.1: resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} engines: {node: '>= 16'} @@ -5602,6 +5889,9 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -5739,6 +6029,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -5751,6 +6045,10 @@ packages: resolution: {integrity: sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==} engines: {node: '>=14.16'} + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5774,6 +6072,10 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} + git-diff@2.0.6: + resolution: {integrity: sha512-/Iu4prUrydE3Pb3lCBMbcSNIf81tgGt0W1ZwknnyF62t3tHmtiJTRj0f+1ZIhp3+Rh0ktz1pJVoa7ZXUCskivA==} + engines: {node: '>= 4.8.0'} + git-hooks-list@4.1.1: resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==} @@ -6083,6 +6385,10 @@ packages: internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + ip-address@10.0.1: resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} engines: {node: '>= 12'} @@ -6182,6 +6488,10 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} + is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -6359,6 +6669,11 @@ packages: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true + jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -6379,6 +6694,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -6466,6 +6784,45 @@ packages: knuth-shuffle-seeded@1.0.6: resolution: {integrity: sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==} + kysely-codegen@0.19.0: + resolution: {integrity: sha512-ZpdQQnpfY0kh45CA6yPA9vdFsBE+b06Fx7QVcbL5rX//yjbA0yYGZGhnH7GTd4P4BY/HIv5uAfuOD83JVZf95w==} + engines: {node: '>=20.0.0'} + hasBin: true + peerDependencies: + '@libsql/kysely-libsql': '>=0.3.0 <0.5.0' + '@tediousjs/connection-string': '>=0.5.0 <0.6.0' + better-sqlite3: '>=7.6.2 <13.0.0' + kysely: '>=0.27.0 <1.0.0' + kysely-bun-sqlite: '>=0.3.2 <1.0.0' + kysely-bun-worker: '>=1.2.0 <2.0.0' + mysql2: '>=2.3.3 <4.0.0' + pg: '>=8.8.0 <9.0.0' + tarn: '>=3.0.0 <4.0.0' + tedious: '>=18.0.0 <20.0.0' + peerDependenciesMeta: + '@libsql/kysely-libsql': + optional: true + '@tediousjs/connection-string': + optional: true + better-sqlite3: + optional: true + kysely-bun-sqlite: + optional: true + kysely-bun-worker: + optional: true + mysql2: + optional: true + pg: + optional: true + tarn: + optional: true + tedious: + optional: true + + kysely@0.28.8: + resolution: {integrity: sha512-QUOgl5ZrS9IRuhq5FvOKFSsD/3+IA6MLE81/bOOTRA/YQpKDza2sFdN5g6JCB9BOpqMJDGefLCQ9F12hRS13TA==} + engines: {node: '>=20.0.0'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -6507,6 +6864,10 @@ packages: linkifyjs@4.3.2: resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -6578,6 +6939,14 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -6585,6 +6954,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lower-case-first@1.0.2: resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} @@ -6630,6 +7002,9 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -6789,6 +7164,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -7105,6 +7484,10 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -7298,12 +7681,53 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + pg-cloudflare@1.2.7: + resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + + pg-connection-string@2.9.1: + resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.10.1: + resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.16.3: + resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -7399,6 +7823,22 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + posthog-js@1.261.7: resolution: {integrity: sha512-Fjpbz6VfIMsEbKIN/UyTWhU1DGgVIngqoRjPGRolemIMOVzTfI77OZq8WwiBhMug+rU+wNhGCQhC41qRlR5CxA==} peerDependencies: @@ -7839,6 +8279,10 @@ packages: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + reflect-metadata@0.1.13: resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} @@ -7948,6 +8392,10 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -7956,6 +8404,9 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -8003,6 +8454,11 @@ packages: resolution: {integrity: sha512-gJATyqcsJe0Cs8RMFO8XgFjfTc0lK1jcSvirDQDSIfsJE+vt53QH/Ob+OBSJsXb98YtZXHfP/bHpELpPwCprow==} hasBin: true + rollup@4.52.5: + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} @@ -8091,6 +8547,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} @@ -8147,6 +8608,15 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shelljs.exec@1.1.8: + resolution: {integrity: sha512-vFILCw+lzUtiwBAHV8/Ex8JsFjelFMdhONIsgKNLgTzeRckp2AOYRQtHJE/9LhNvdMmE27AGtzWx0+DHpwIwSw==} + engines: {node: '>= 4.0.0'} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8163,6 +8633,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -8188,6 +8661,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -8240,12 +8721,19 @@ packages: spdx-license-ids@3.0.22: resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -8264,6 +8752,9 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8293,6 +8784,14 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string-width@8.1.0: + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + engines: {node: '>=20'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -8372,6 +8871,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + strnum@2.1.1: resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} @@ -8456,9 +8958,72 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + text-camel-case@1.2.9: + resolution: {integrity: sha512-wKYs9SgRxYizJE1mneR7BbLNlGw2IYzJAS8XwkWIry0CTbO1gvvPkFsx5Z1/hr+VqUaBqx9q3yKd30HpZLdMsQ==} + + text-capital-case@1.2.9: + resolution: {integrity: sha512-X5zV8U8pxtq2xS2t46lgAWqZdDbgWMKq03MQSNwY2CJdQCsdTNh144E2Q/q9wBxWzSBUXn+jRc9kF+Gs8/pGhA==} + + text-case@1.2.9: + resolution: {integrity: sha512-zZVdA8rMcjx9zhekdUuOPZShc25UTV7W8/ddKbgbPtfCEvIiToPtWiSd2lXLSuiGMovNhJ4+Tw49xll9o9ts+Q==} + + text-constant-case@1.2.9: + resolution: {integrity: sha512-Vosm6nC7Gag+JFakJHwqS9AXRNgl07j5KZ7srU9cYuKRzYwrxzeJ4RpEogRBNHw7CfmOm0j5FGEznblWtu7pIw==} + + text-dot-case@1.2.9: + resolution: {integrity: sha512-N83hsnvGdSO9q9AfNSB9Cy1LFDNN2MCx53LcxtaPoDWPUTk47fv0JlvIY1tgY0wyzCiThF03kVj3jworvAOScA==} + + text-header-case@1.2.9: + resolution: {integrity: sha512-TqryEKcYisQAfWLbtT3xPnZlMZ/mySO1uS+LUg+B0eNuqgETrSzVpXIUj5E6Zf/EyJHgpZf4VndbAXtOMJuT4w==} + + text-is-lower-case@1.2.9: + resolution: {integrity: sha512-cEurrWSnYVYqL8FSwl5cK4mdfqF7qNDCcKJgXI3NnfTesiB8umxAhdlQoErrRYI1xEvYr2WN0MI333EehUhQjg==} + + text-is-upper-case@1.2.9: + resolution: {integrity: sha512-HxsWr3VCsXXiLlhD0c+Ey+mS2lOTCiSJbkepjaXNHl2bp33KiscQaiG0qLwQmmpZQm4SJCg2s9FkndxS0RNDLQ==} + + text-kebab-case@1.2.9: + resolution: {integrity: sha512-nOUyNR5Ej2B9D/wyyXfwUEv26+pQuOb1pEX+ojE37mCIWo8QeOxw5y6nxuqDmG7NrEPzbO6265UMV+EICH13Cw==} + + text-lower-case-first@1.2.9: + resolution: {integrity: sha512-iiphHTV7PVH0MljrEQUA9iBE7jfDpXoi4RQju3WzZU3BRVbS6540cNZgxR19hWa0z6z/7cJTH0Ls9LPBaiUfKg==} + + text-lower-case@1.2.9: + resolution: {integrity: sha512-53AOnDrhPpiAUQkgY1SHleKUXp/u7GsqRX13NcCREZscmtjLLJ099uxMRjkK7q2KwHkFYVPl9ytkQlTkTQLS0w==} + + text-no-case@1.2.9: + resolution: {integrity: sha512-IcCt328KaapimSrytP4ThfC8URmHZb2DgOqCL9BYvGjpxY2lDiqCkIQk9sClZtwcELs2gTnq83a7jNc573FTLA==} + + text-param-case@1.2.9: + resolution: {integrity: sha512-nR/Ju9amY3aQS1en2CUCgqN/ZiZIVdDyjlJ3xX5J92ChBevGuA4o9K10fh3JGMkbzK97Vcb+bWQJ4Q+Svz+GyQ==} + + text-pascal-case@1.2.9: + resolution: {integrity: sha512-o6ZxMGjWDTUW54pcghpXes+C2PqbYRMdU5mHrIhueb6z6nq1NueiIOeCUdrSjN/3wXfhCmnFjK7/d9aRGZNqSg==} + + text-path-case@1.2.9: + resolution: {integrity: sha512-s8cJ6r5TkJp5ticXMgtxd7f12odEN4d1CfX5u4aoz6jcUtBR2lDqzIhVimkqWFMJ4UKPSrmilUha8Xc2BPi+ow==} + + text-sentence-case@1.2.9: + resolution: {integrity: sha512-/G/Yi5kZfUa1edFRV4O3lGZAkbDZTFvlwW8CYfH7szkEGe2k2MYEYbOyAkGRVQEGV6V6JiuUAaP3VS9c1tB6nQ==} + + text-snake-case@1.2.9: + resolution: {integrity: sha512-+ZrqK19ynF/TLQZ7ynqVrL2Dy04uu9syYZwsm8PhzUdsY3XrwPy6QiRqhIEFqhyWbShPcfyfmheer5UEQqFxlw==} + + text-swap-case@1.2.9: + resolution: {integrity: sha512-g5fp12ldktYKK9wdHRMvvtSCQrZYNv/D+ZGLumDsvAY4q9T5bCMO2IWMkIP1F5gVQrysdHH6Xv877P/pjUq1iw==} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-title-case@1.2.9: + resolution: {integrity: sha512-RAtC9cdmPp41ns5/HXZBsaQg71BsHT7uZpj2ojTtuFa8o2dNuRYYOrSmy5YdLRIAJQ6WK5hQVpV3jHuq7a+4Tw==} + + text-upper-case-first@1.2.9: + resolution: {integrity: sha512-wEDD1B6XqJmEV+xEnBJd+2sBCHZ+7fvA/8Rv/o8+dAsp05YWjYP/kjB8sPH6zqzW0s6jtehIg4IlcKjcYxk2CQ==} + + text-upper-case@1.2.9: + resolution: {integrity: sha512-K/0DNT7a4z8eah2spARtoJllTZyrNTo6Uc0ujhN/96Ir9uJ/slpahfs13y46H9osL3daaLl3O7iXOkW4xtX6bg==} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -8483,6 +9048,9 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} @@ -8493,9 +9061,25 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} @@ -8630,6 +9214,10 @@ packages: '@swc/wasm': optional: true + ts-to-zod@5.0.1: + resolution: {integrity: sha512-eRCC7+EhWxskng9I8DsSSFSAPRM+EJA13CJEedwCw15jZ6Ku20+TmYKhWe8UfxtakJDDDUNGFjvpk5e2q3Iy2w==} + hasBin: true + ts-toolbelt@6.15.5: resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} @@ -8969,6 +9557,79 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite@7.1.12: + resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -9046,6 +9707,15 @@ packages: engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -9065,6 +9735,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -9194,6 +9868,9 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod@4.1.13: + resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -9890,7 +10567,7 @@ snapshots: '@babel/parser': 7.28.3 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9975,6 +10652,17 @@ snapshots: dependencies: statuses: 2.0.2 + '@clack/core@1.0.0-alpha.4': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@1.0.0-alpha.4': + dependencies: + '@clack/core': 1.0.0-alpha.4 + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@codemirror/state@6.5.2': dependencies: '@marijn/find-cluster-break': 1.0.2 @@ -10386,7 +11074,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -10429,7 +11117,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10720,6 +11408,27 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@oclif/core@4.7.2': + dependencies: + ansi-escapes: 4.3.2 + ansis: 3.17.0 + clean-stack: 3.0.1 + cli-spinners: 2.9.2 + debug: 4.4.3(supports-color@8.1.1) + ejs: 3.1.10 + get-package-type: 0.1.0 + indent-string: 4.0.0 + is-wsl: 2.2.0 + lilconfig: 3.1.3 + minimatch: 9.0.5 + semver: 7.7.3 + string-width: 4.2.3 + supports-color: 8.1.1 + tinyglobby: 0.2.14 + widest-line: 3.1.0 + wordwrap: 1.0.0 + wrap-ansi: 7.0.0 + '@octokit/auth-app@7.2.2': dependencies: '@octokit/auth-oauth-app': 8.1.4 @@ -12234,24 +12943,92 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.35': {} - '@rollup/pluginutils@5.3.0': + '@rollup/pluginutils@5.3.0(rollup@4.52.5)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.5 + + '@rollup/rollup-android-arm-eabi@4.52.5': + optional: true + + '@rollup/rollup-android-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-x64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-arm64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-x64@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-musl@4.52.5': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.5': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.52.5': + optional: true '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.12.0': {} - '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.1)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.1))(debug@4.4.1)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))(zod@3.25.76)': + '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))(zod@3.25.76)': dependencies: '@aws-sdk/client-lambda': 3.882.0 '@aws-sdk/client-s3': 3.882.0 - '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.1)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)) + '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)) archiver: 5.3.2 - axios: 0.27.2(debug@4.4.1) - debug: 4.4.1(supports-color@8.1.1) + axios: 0.27.2(debug@4.4.3) + debug: 4.4.3(supports-color@8.1.1) dotenv: 16.6.1 esbuild: 0.17.14 patch-package: 6.5.1 @@ -12259,14 +13036,14 @@ snapshots: ts-node: 10.9.2(@types/node@20.19.13)(typescript@5.9.2) zod: 3.25.76 - '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.1)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))': + '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))': dependencies: '@playwright/test': 1.29.0 '@testing-library/react': 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@types/jsdom': 20.0.1 c8: 7.14.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) dotenv: 16.6.1 jsdom: 20.0.3 ts-node: 10.9.2(@types/node@20.19.13)(typescript@5.9.2) @@ -13059,6 +13836,11 @@ snapshots: '@types/aria-query@5.0.4': {} + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/codemirror@5.60.8': dependencies: '@types/tern': 0.23.9 @@ -13089,6 +13871,8 @@ snapshots: dependencies: '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} + '@types/dom4@2.0.4': {} '@types/eslint@8.56.12': @@ -13176,6 +13960,12 @@ snapshots: '@types/normalize-package-data@2.4.4': {} + '@types/pg@8.15.6': + dependencies: + '@types/node': 20.19.13 + pg-protocol: 1.10.3 + pg-types: 2.2.0 + '@types/phoenix@1.6.6': {} '@types/prop-types@15.7.15': {} @@ -13287,7 +14077,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.5.4) - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.5.4) optionalDependencies: @@ -13303,7 +14093,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.7.2 @@ -13364,6 +14154,13 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 + '@typescript/vfs@1.6.2(typescript@5.9.2)': + dependencies: + debug: 4.4.1(supports-color@8.1.1) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -13459,10 +14256,10 @@ snapshots: '@vercel/error-utils@2.0.3': {} - '@vercel/express@0.1.0': + '@vercel/express@0.1.0(rollup@4.52.5)': dependencies: - '@vercel/nft': 0.30.1 - '@vercel/node': 5.5.0 + '@vercel/nft': 0.30.1(rollup@4.52.5) + '@vercel/node': 5.5.0(rollup@4.52.5) '@vercel/static-config': 3.1.2 fs-extra: 11.1.0 path-to-regexp: 8.3.0 @@ -13514,9 +14311,9 @@ snapshots: '@vercel/go@3.2.3': {} - '@vercel/h3@0.1.7': + '@vercel/h3@0.1.7(rollup@4.52.5)': dependencies: - '@vercel/node': 5.5.0 + '@vercel/node': 5.5.0(rollup@4.52.5) '@vercel/static-config': 3.1.2 transitivePeerDependencies: - '@swc/core' @@ -13525,10 +14322,10 @@ snapshots: - rollup - supports-color - '@vercel/hono@0.2.0': + '@vercel/hono@0.2.0(rollup@4.52.5)': dependencies: - '@vercel/nft': 0.30.1 - '@vercel/node': 5.5.0 + '@vercel/nft': 0.30.1(rollup@4.52.5) + '@vercel/node': 5.5.0(rollup@4.52.5) '@vercel/static-config': 3.1.2 fs-extra: 11.1.0 path-to-regexp: 8.3.0 @@ -13547,18 +14344,18 @@ snapshots: '@vercel/static-config': 3.1.2 ts-morph: 12.0.0 - '@vercel/next@4.14.0': + '@vercel/next@4.14.0(rollup@4.52.5)': dependencies: - '@vercel/nft': 0.30.1 + '@vercel/nft': 0.30.1(rollup@4.52.5) transitivePeerDependencies: - encoding - rollup - supports-color - '@vercel/nft@0.30.1': + '@vercel/nft@0.30.1(rollup@4.52.5)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.3.0 + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -13574,7 +14371,7 @@ snapshots: - rollup - supports-color - '@vercel/node@5.5.0': + '@vercel/node@5.5.0(rollup@4.52.5)': dependencies: '@edge-runtime/node-utils': 2.3.0 '@edge-runtime/primitives': 4.1.0 @@ -13582,7 +14379,7 @@ snapshots: '@types/node': 16.18.11 '@vercel/build-utils': 12.2.0 '@vercel/error-utils': 2.0.3 - '@vercel/nft': 0.30.1 + '@vercel/nft': 0.30.1(rollup@4.52.5) '@vercel/static-config': 3.1.2 async-listen: 3.0.0 cjs-module-lexer: 1.2.3 @@ -13607,9 +14404,9 @@ snapshots: '@vercel/python@5.0.10': {} - '@vercel/redwood@2.4.0': + '@vercel/redwood@2.4.0(rollup@4.52.5)': dependencies: - '@vercel/nft': 0.30.1 + '@vercel/nft': 0.30.1(rollup@4.52.5) '@vercel/static-config': 3.1.2 semver: 6.3.1 ts-morph: 12.0.0 @@ -13618,10 +14415,10 @@ snapshots: - rollup - supports-color - '@vercel/remix-builder@5.5.0': + '@vercel/remix-builder@5.5.0(rollup@4.52.5)': dependencies: '@vercel/error-utils': 2.0.3 - '@vercel/nft': 0.30.1 + '@vercel/nft': 0.30.1(rollup@4.52.5) '@vercel/static-config': 3.1.2 path-to-regexp: 6.1.0 path-to-regexp-updated: path-to-regexp@6.3.0 @@ -13650,7 +14447,7 @@ snapshots: json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 - '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.0.4)(eslint@8.57.1)(prettier@3.6.2)(typescript@5.5.4)': + '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.0.4)(eslint@8.57.1)(prettier@3.6.2)(typescript@5.5.4)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.3 '@babel/eslint-parser': 7.28.0(@babel/core@7.28.3)(eslint@8.57.1) @@ -13670,7 +14467,7 @@ snapshots: eslint-plugin-testing-library: 6.5.0(eslint@8.57.1)(typescript@5.5.4) eslint-plugin-tsdoc: 0.2.17 eslint-plugin-unicorn: 51.0.1(eslint@8.57.1) - eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1)) prettier-plugin-packagejson: 2.5.19(prettier@3.6.2) optionalDependencies: '@next/eslint-plugin-next': 15.0.4 @@ -13684,6 +14481,59 @@ snapshots: - supports-color - vitest + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(vite@7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.11.1(@types/node@20.19.13)(typescript@5.5.4) + vite: 7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + optional: true + + '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(vite@7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.11.1(@types/node@20.19.13)(typescript@5.9.2) + vite: 7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + '@yarnpkg/lockfile@1.1.0': {} abab@2.0.6: {} @@ -13720,7 +14570,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -13753,6 +14603,10 @@ snapshots: dependencies: type-fest: 0.21.3 + ansi-escapes@7.1.1: + dependencies: + environment: 1.1.0 + ansi-regex@4.1.1: {} ansi-regex@5.0.1: {} @@ -13773,6 +14627,8 @@ snapshots: ansidec@0.3.4: {} + ansis@3.17.0: {} + ansis@4.2.0: {} any-promise@1.3.0: {} @@ -13917,6 +14773,8 @@ snapshots: pad-right: 0.2.2 repeat-string: 1.6.1 + assertion-error@2.0.1: {} + ast-types-flow@0.0.8: {} ast-types@0.13.4: @@ -13963,9 +14821,9 @@ snapshots: axe-core@4.10.3: {} - axios@0.27.2(debug@4.4.1): + axios@0.27.2(debug@4.4.3): dependencies: - follow-redirects: 1.15.11(debug@4.4.1) + follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.4 transitivePeerDependencies: - debug @@ -14012,7 +14870,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -14079,6 +14937,8 @@ snapshots: yargs: 16.2.0 yargs-parser: 20.2.9 + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -14119,6 +14979,14 @@ snapshots: ccount@2.0.1: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -14176,6 +15044,8 @@ snapshots: chardet@2.1.0: {} + check-error@2.1.1: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -14192,6 +15062,10 @@ snapshots: dependencies: readdirp: 4.1.2 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + chownr@2.0.0: {} chownr@3.0.0: {} @@ -14220,6 +15094,10 @@ snapshots: clean-stack@2.2.0: {} + clean-stack@3.0.1: + dependencies: + escape-string-regexp: 4.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -14228,6 +15106,10 @@ snapshots: dependencies: restore-cursor: 4.0.0 + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + cli-spinners@2.9.2: {} cli-table3@0.6.5: @@ -14236,6 +15118,11 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 + cli-truncate@5.1.1: + dependencies: + slice-ansi: 7.1.2 + string-width: 8.1.0 + cli-width@3.0.0: {} cli-width@4.1.0: {} @@ -14296,6 +15183,8 @@ snapshots: colord@2.9.3: {} + colorette@2.0.20: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -14372,6 +15261,15 @@ snapshots: optionalDependencies: typescript: 5.5.4 + cosmiconfig@9.0.0(typescript@5.9.2): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.9.2 + coveralls-next@4.2.2: dependencies: form-data: 4.0.4 @@ -14519,6 +15417,12 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + decimal.js@10.3.1: {} decimal.js@10.6.0: {} @@ -14527,6 +15431,8 @@ snapshots: dependencies: character-entities: 2.0.2 + deep-eql@5.0.2: {} + deep-equal@1.1.2: dependencies: is-arguments: 1.2.0 @@ -14599,6 +15505,8 @@ snapshots: didyoumean@1.2.2: {} + diff@3.5.0: {} + diff@4.0.2: {} diff@5.2.0: {} @@ -14651,10 +15559,16 @@ snapshots: dependencies: no-case: 2.3.2 + dotenv-expand@12.0.3: + dependencies: + dotenv: 16.6.1 + dotenv@16.0.3: {} dotenv@16.6.1: {} + dotenv@17.2.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14679,8 +15593,14 @@ snapshots: ee-first@1.1.1: {} + ejs@3.1.10: + dependencies: + jake: 10.9.4 + electron-to-chromium@1.5.214: {} + emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -14699,6 +15619,10 @@ snapshots: entities@6.0.1: {} + env-paths@2.2.1: {} + + environment@1.1.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -14789,6 +15713,8 @@ snapshots: es-module-lexer@1.4.1: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -15190,12 +16116,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4): + eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.5.4) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript @@ -15227,7 +16154,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -15279,6 +16206,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + esutils@2.0.3: {} etag@1.8.1: {} @@ -15287,6 +16218,8 @@ snapshots: eventemitter3@4.0.7: {} + eventemitter3@5.0.1: {} + events-intercept@2.0.0: {} eventsource-parser@3.0.6: {} @@ -15329,6 +16262,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 + expect-type@1.2.2: {} + express-rate-limit@7.5.1(express@5.1.0): dependencies: express: 5.1.0 @@ -15341,7 +16276,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -15438,13 +16373,17 @@ snapshots: file-uri-to-path@1.0.0: {} + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -15477,9 +16416,9 @@ snapshots: flatted@3.3.3: {} - follow-redirects@1.15.11(debug@4.4.1): + follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) for-each@0.3.5: dependencies: @@ -15579,6 +16518,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.4.0: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -15596,6 +16537,8 @@ snapshots: get-own-enumerable-keys@1.0.0: {} + get-package-type@0.1.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -15621,10 +16564,18 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color + git-diff@2.0.6: + dependencies: + chalk: 2.4.2 + diff: 3.5.0 + loglevel: 1.9.2 + shelljs: 0.8.5 + shelljs.exec: 1.1.8 + git-hooks-list@4.1.1: {} glob-parent@5.1.2: @@ -15908,21 +16859,21 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16045,6 +16996,8 @@ snapshots: internmap@1.0.1: {} + interpret@1.4.0: {} + ip-address@10.0.1: {} ipaddr.js@1.9.1: {} @@ -16137,6 +17090,10 @@ snapshots: is-fullwidth-code-point@3.0.0: {} + is-fullwidth-code-point@5.1.0: + dependencies: + get-east-asian-width: 1.4.0 + is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 @@ -16291,6 +17248,12 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 + jake@10.9.4: + dependencies: + async: 3.2.6 + filelist: 1.0.4 + picocolors: 1.1.1 + jiti@1.21.7: {} jju@1.4.0: {} @@ -16315,6 +17278,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -16422,6 +17387,25 @@ snapshots: dependencies: seed-random: 2.2.0 + kysely-codegen@0.19.0(kysely@0.28.8)(pg@8.16.3)(typescript@5.9.2): + dependencies: + chalk: 4.1.2 + cosmiconfig: 9.0.0(typescript@5.9.2) + dotenv: 17.2.3 + dotenv-expand: 12.0.3 + git-diff: 2.0.6 + kysely: 0.28.8 + micromatch: 4.0.8 + minimist: 1.2.8 + pluralize: 8.0.0 + zod: 4.1.13 + optionalDependencies: + pg: 8.16.3 + transitivePeerDependencies: + - typescript + + kysely@0.28.8: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -16457,6 +17441,15 @@ snapshots: linkifyjs@4.3.2: {} + listr2@9.0.5: + dependencies: + cli-truncate: 5.1.1 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -16511,12 +17504,24 @@ snapshots: chalk: 5.6.0 is-unicode-supported: 1.3.0 + log-update@6.1.0: + dependencies: + ansi-escapes: 7.1.1 + cli-cursor: 5.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.2 + + loglevel@1.9.2: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 + loupe@3.2.1: {} + lower-case-first@1.0.2: dependencies: lower-case: 1.1.4 @@ -16553,9 +17558,13 @@ snapshots: lz-string@1.5.0: {} + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 make-error@1.3.6: {} @@ -16799,6 +17808,8 @@ snapshots: mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + min-indent@1.0.1: {} minimatch@10.0.3: @@ -16885,6 +17896,32 @@ snapshots: transitivePeerDependencies: - '@types/node' + msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 5.1.16(@types/node@20.19.13) + '@mswjs/interceptors': 0.39.6 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.6 + graphql: 16.11.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + tough-cookie: 6.0.0 + type-fest: 4.41.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.9.2 + transitivePeerDependencies: + - '@types/node' + optional: true + mute-stream@0.0.8: {} mute-stream@2.0.0: {} @@ -17098,6 +18135,10 @@ snapshots: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -17204,7 +18245,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -17336,10 +18377,49 @@ snapshots: path-type@4.0.0: {} + pathe@2.0.3: {} + + pathval@2.0.1: {} + peberminta@0.9.0: {} pend@1.2.0: {} + pg-cloudflare@1.2.7: + optional: true + + pg-connection-string@2.9.1: {} + + pg-int8@1.0.1: {} + + pg-pool@3.10.1(pg@8.16.3): + dependencies: + pg: 8.16.3 + + pg-protocol@1.10.3: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.16.3: + dependencies: + pg-connection-string: 2.9.1 + pg-pool: 3.10.1(pg@8.16.3) + pg-protocol: 1.10.3 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.2.7 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + picocolors@1.0.0: {} picocolors@1.0.1: {} @@ -17421,6 +18501,16 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + posthog-js@1.261.7: dependencies: '@posthog/core': 1.0.2 @@ -17966,6 +19056,10 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.5.1 + rechoir@0.6.2: + dependencies: + resolve: 1.22.10 + reflect-metadata@0.1.13: {} reflect-metadata@0.2.2: {} @@ -18117,10 +19211,17 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + retry@0.13.1: {} reusify@1.1.0: {} + rfdc@1.4.1: {} + rimraf@2.7.1: dependencies: glob: 7.2.3 @@ -18129,12 +19230,12 @@ snapshots: dependencies: glob: 7.2.3 - roamjs-components@0.85.6(8b55b1f14ffbf718c26dbfa3a20c2d6b): + roamjs-components@0.85.6(2d4d135124107048c1ca3cdbce60d217): dependencies: '@blueprintjs/core': 3.50.4(patch_hash=51c5847e0a73a1be0cc263036ff64d8fada46f3b65831ed938dbca5eecf3edc0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@blueprintjs/datetime': 3.23.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@blueprintjs/select': 3.19.1(patch_hash=5b2821b0bf7274e9b64d7824648c596b9e73c61f421d699a6d4c494f12f62355)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.1)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.1))(debug@4.4.1)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))(zod@3.25.76) + '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2)))(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.9.2))(zod@3.25.76) '@types/crypto-js': 4.1.1 '@types/cytoscape': 3.21.9 '@types/file-saver': 2.0.5 @@ -18202,11 +19303,39 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.35 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.35 + rollup@4.52.5: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.5 + '@rollup/rollup-android-arm64': 4.52.5 + '@rollup/rollup-darwin-arm64': 4.52.5 + '@rollup/rollup-darwin-x64': 4.52.5 + '@rollup/rollup-freebsd-arm64': 4.52.5 + '@rollup/rollup-freebsd-x64': 4.52.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 + '@rollup/rollup-linux-arm64-musl': 4.52.5 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 + '@rollup/rollup-linux-x64-gnu': 4.52.5 + '@rollup/rollup-linux-x64-musl': 4.52.5 + '@rollup/rollup-openharmony-arm64': 4.52.5 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 + '@rollup/rollup-win32-x64-gnu': 4.52.5 + '@rollup/rollup-win32-x64-msvc': 4.52.5 + fsevents: 2.3.3 + rope-sequence@1.3.4: {} router@2.2.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -18288,9 +19417,11 @@ snapshots: semver@7.7.2: {} + semver@7.7.3: {} + send@1.2.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -18420,6 +19551,14 @@ snapshots: shebang-regex@3.0.0: {} + shelljs.exec@1.1.8: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -18448,6 +19587,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.0.2: {} @@ -18464,6 +19605,13 @@ snapshots: slash@3.0.0: {} + slash@5.1.0: {} + + slice-ansi@7.1.2: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.1.0 + smart-buffer@4.2.0: {} snake-case@2.1.0: @@ -18473,7 +19621,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -18522,10 +19670,14 @@ snapshots: spdx-license-ids@3.0.22: {} + split2@4.2.0: {} + sprintf-js@1.0.3: {} stable-hash@0.0.5: {} + stackback@0.0.2: {} + stackframe@1.3.4: {} stat-mode@0.3.0: {} @@ -18536,6 +19688,8 @@ snapshots: statuses@2.0.2: {} + std-env@3.10.0: {} + stdin-discarder@0.1.0: dependencies: bl: 5.1.0 @@ -18571,6 +19725,17 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.0 + + string-width@8.1.0: + dependencies: + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.0 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 @@ -18672,6 +19837,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + strnum@2.1.1: {} style-mod@4.1.2: {} @@ -18820,8 +19989,101 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + text-camel-case@1.2.9: + dependencies: + text-pascal-case: 1.2.9 + + text-capital-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + text-upper-case-first: 1.2.9 + + text-case@1.2.9: + dependencies: + text-camel-case: 1.2.9 + text-capital-case: 1.2.9 + text-constant-case: 1.2.9 + text-dot-case: 1.2.9 + text-header-case: 1.2.9 + text-is-lower-case: 1.2.9 + text-is-upper-case: 1.2.9 + text-kebab-case: 1.2.9 + text-lower-case: 1.2.9 + text-lower-case-first: 1.2.9 + text-no-case: 1.2.9 + text-param-case: 1.2.9 + text-pascal-case: 1.2.9 + text-path-case: 1.2.9 + text-sentence-case: 1.2.9 + text-snake-case: 1.2.9 + text-swap-case: 1.2.9 + text-title-case: 1.2.9 + text-upper-case: 1.2.9 + text-upper-case-first: 1.2.9 + + text-constant-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + text-upper-case: 1.2.9 + + text-dot-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + + text-header-case@1.2.9: + dependencies: + text-capital-case: 1.2.9 + + text-is-lower-case@1.2.9: {} + + text-is-upper-case@1.2.9: {} + + text-kebab-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + + text-lower-case-first@1.2.9: {} + + text-lower-case@1.2.9: {} + + text-no-case@1.2.9: + dependencies: + text-lower-case: 1.2.9 + + text-param-case@1.2.9: + dependencies: + text-dot-case: 1.2.9 + + text-pascal-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + + text-path-case@1.2.9: + dependencies: + text-dot-case: 1.2.9 + + text-sentence-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + text-upper-case-first: 1.2.9 + + text-snake-case@1.2.9: + dependencies: + text-dot-case: 1.2.9 + + text-swap-case@1.2.9: {} + text-table@0.2.0: {} + text-title-case@1.2.9: + dependencies: + text-no-case: 1.2.9 + text-upper-case-first: 1.2.9 + + text-upper-case-first@1.2.9: {} + + text-upper-case@1.2.9: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -18842,6 +20104,8 @@ snapshots: tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} + tinycolor2@1.6.0: {} tinyexec@0.3.2: {} @@ -18851,11 +20115,22 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinygradient@1.1.5: dependencies: '@types/tinycolor2': 1.4.6 tinycolor2: 1.6.0 + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + tippy.js@6.3.7: dependencies: '@popperjs/core': 2.11.8 @@ -19045,6 +20320,41 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + ts-to-zod@5.0.1(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(tsx@4.20.6)(yaml@2.8.1): + dependencies: + '@clack/prompts': 1.0.0-alpha.4 + '@oclif/core': 4.7.2 + '@typescript/vfs': 1.6.2(typescript@5.9.2) + chokidar: 4.0.3 + listr2: 9.0.5 + slash: 5.1.0 + text-case: 1.2.9 + tslib: 2.5.1 + tsutils: 3.21.0(typescript@5.9.2) + typescript: 5.9.2 + vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(tsx@4.20.6)(yaml@2.8.1) + zod: 4.1.13 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@types/debug' + - '@types/node' + - '@vitest/browser' + - '@vitest/ui' + - happy-dom + - jiti + - jsdom + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + ts-toolbelt@6.15.5: {} ts-toolbelt@9.6.0: {} @@ -19077,6 +20387,11 @@ snapshots: tslib: 1.14.1 typescript: 5.5.4 + tsutils@3.21.0(typescript@5.9.2): + dependencies: + tslib: 1.14.1 + typescript: 5.9.2 + tsx@4.20.5: dependencies: esbuild: 0.25.9 @@ -19390,22 +20705,22 @@ snapshots: vary@1.1.2: {} - vercel@48.6.0: + vercel@48.6.0(rollup@4.52.5): dependencies: '@vercel/blob': 1.0.2 '@vercel/build-utils': 12.2.0 '@vercel/detect-agent': 1.0.0 - '@vercel/express': 0.1.0 + '@vercel/express': 0.1.0(rollup@4.52.5) '@vercel/fun': 1.1.6 '@vercel/go': 3.2.3 - '@vercel/h3': 0.1.7 - '@vercel/hono': 0.2.0 + '@vercel/h3': 0.1.7(rollup@4.52.5) + '@vercel/hono': 0.2.0(rollup@4.52.5) '@vercel/hydrogen': 1.3.0 - '@vercel/next': 4.14.0 - '@vercel/node': 5.5.0 + '@vercel/next': 4.14.0(rollup@4.52.5) + '@vercel/node': 5.5.0(rollup@4.52.5) '@vercel/python': 5.0.10 - '@vercel/redwood': 2.4.0 - '@vercel/remix-builder': 5.5.0 + '@vercel/redwood': 2.4.0(rollup@4.52.5) + '@vercel/remix-builder': 5.5.0(rollup@4.52.5) '@vercel/ruby': 2.2.1 '@vercel/static-build': 2.8.0 chokidar: 4.0.0 @@ -19432,6 +20747,131 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + vite-node@3.2.4(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@8.1.1) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.5 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.19.13 + fsevents: 2.3.3 + jiti: 1.21.7 + tsx: 4.20.6 + yaml: 2.8.1 + + vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(tsx@4.20.6)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@20.19.13)(typescript@5.5.4))(vite@7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.1(supports-color@8.1.1) + expect-type: 1.2.2 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@edge-runtime/vm': 3.2.0 + '@types/debug': 4.1.12 + '@types/node': 20.19.13 + jsdom: 20.0.3 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + optional: true + + vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.13)(jiti@1.21.7)(jsdom@20.0.3)(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(tsx@4.20.6)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@20.19.13)(typescript@5.9.2))(vite@7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.1(supports-color@8.1.1) + expect-type: 1.2.2 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.1.12(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@20.19.13)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@edge-runtime/vm': 3.2.0 + '@types/debug': 4.1.12 + '@types/node': 20.19.13 + jsdom: 20.0.3 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + w3c-keyname@2.2.8: {} w3c-xmlserializer@4.0.0: @@ -19525,6 +20965,15 @@ snapshots: dependencies: isexe: 2.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + word-wrap@1.2.5: {} wordwrap@1.0.0: {} @@ -19547,6 +20996,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@6.0.0: @@ -19655,4 +21110,6 @@ snapshots: zod@3.25.76: {} + zod@4.1.13: {} + zwitch@2.0.4: {}