@maplab/hyperdoc 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/src/errors.ts","../../../packages/core/src/utils/logger.ts","../../../packages/core/src/schemas/project.ts","../../../packages/core/src/doc-types.ts","../../../packages/core/src/index.ts","../../../packages/adapter-markdown/src/index.ts","../../../packages/server/src/createApp.ts","../../../packages/server/src/index.ts","../src/cli/CommanderCli.ts","../src/commands/PromptCommand.ts","../src/commands/ServerCommand.ts","../package.json","../src/index.ts"],"sourcesContent":["export class HyperdocError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"HyperdocError\";\n }\n}\n\nexport function formatError(error: unknown, includeStack: boolean): string {\n if (error instanceof Error) {\n if (includeStack && error.stack) {\n return error.stack;\n }\n return error.message;\n }\n\n if (typeof error === \"string\") {\n return error;\n }\n\n return \"Unknown error\";\n}\n","type LogFn = (message: string) => void;\n\nexport enum LogLevel {\n DEBUG = 10,\n INFO = 20,\n WARN = 30,\n ERROR = 40,\n}\n\nclass Logger {\n private level: LogLevel = LogLevel.INFO;\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n private logIf(level: LogLevel, fn: LogFn, message: string): void {\n if (this.level <= level) {\n fn(message);\n }\n }\n\n debug(message: string): void {\n this.logIf(LogLevel.DEBUG, console.log, message);\n }\n\n info(message: string): void {\n this.logIf(LogLevel.INFO, console.log, message);\n }\n\n warn(message: string): void {\n this.logIf(LogLevel.WARN, console.warn, message);\n }\n\n error(message: string): void {\n this.logIf(LogLevel.ERROR, console.error, message);\n }\n}\n\nexport const logger = new Logger();\n","import { z } from \"zod\";\n\nexport const projectConfigSchema = z\n .object({\n name: z.string().trim().min(1).max(200).optional(),\n })\n .strict();\n\nexport type ProjectConfig = z.infer<typeof projectConfigSchema>;\n","export type DocType = \"markdown\" | \"json\" | \"app\";\n\nexport const DOC_TYPE_CONFIG = [\n { type: \"markdown\", extension: \".md\" },\n { type: \"json\", extension: \".json\" },\n { type: \"app\", extension: \".app.json\" },\n] as const;\n\ntype DocTypeConfig = (typeof DOC_TYPE_CONFIG)[number];\n\nconst DOC_TYPE_CONFIG_MAP = DOC_TYPE_CONFIG.reduce<Record<DocType, DocTypeConfig>>(\n (acc, config) => {\n acc[config.type] = config;\n return acc;\n },\n {} as Record<DocType, DocTypeConfig>,\n);\n\nconst EXTENSION_ORDER = [...DOC_TYPE_CONFIG].sort(\n (a, b) => b.extension.length - a.extension.length,\n);\n\nexport const getDocExtension = (type: DocType) =>\n DOC_TYPE_CONFIG_MAP[type].extension;\n\nexport const getDocTypeFromName = (name: string): DocType | null => {\n const lower = name.toLowerCase();\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n return config.type;\n }\n }\n return null;\n};\n\nexport const normalizeDocName = (name: string, type: DocType): string => {\n const trimmed = name.trim();\n if (!trimmed) return \"\";\n const targetExtension = getDocExtension(type);\n const lower = trimmed.toLowerCase();\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n return (\n trimmed.slice(0, trimmed.length - config.extension.length) +\n targetExtension\n );\n }\n }\n return `${trimmed}${targetExtension}`;\n};\n\nexport const stripDocExtension = (name: string): string => {\n const lower = name.toLowerCase();\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n return name.slice(0, name.length - config.extension.length);\n }\n }\n return name;\n};\n","export * from \"./errors\";\nexport * from \"./utils/logger\";\nexport * from \"./schemas/project\";\nexport * from \"./doc-types\";\n","export type MarkdownMetadata = {\n tags: string[];\n pinned: boolean;\n title: string | null;\n};\n\nexport const getMarkdownMetadata = (\n content: string,\n): MarkdownMetadata | null => {\n const match = content.match(\n /^\\uFEFF?\\s*<!--\\s*hyperdoc:([A-Za-z0-9+/=]+)\\s*-->\\s*(?:\\r?\\n|$)/i,\n );\n if (!match) return null;\n try {\n const json = Buffer.from(match[1], \"base64\").toString(\"utf-8\");\n const parsed = JSON.parse(json);\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return null;\n }\n const tagsRaw = (parsed as { tags?: unknown; pinned?: unknown }).tags;\n const tags = Array.isArray(tagsRaw)\n ? tagsRaw.filter((tag) => typeof tag === \"string\")\n : [];\n const pinned = (parsed as { pinned?: unknown }).pinned === true;\n const title =\n typeof (parsed as { title?: unknown }).title === \"string\"\n ? (parsed as { title?: string }).title ?? null\n : null;\n return { tags, pinned, title };\n } catch {\n return null;\n }\n};\n\nconst metadataHeaderStrip =\n /^\\uFEFF?\\s*<!--\\s*hyperdoc:[A-Za-z0-9+/=]+\\s*-->\\s*(?:\\r?\\n|$)/i;\n\nconst stripMetadataSpacer = (value: string) => {\n if (!value) return value;\n const match = value.match(/^\\s*(?:\\r?\\n)/);\n if (match) {\n return value.slice(match[0].length);\n }\n return value;\n};\n\nexport const stripMarkdownMetadataHeader = (content: string) => {\n let output = content.replace(/^\\uFEFF/, \"\");\n let previous = \"\";\n while (output !== previous) {\n previous = output;\n output = output.replace(metadataHeaderStrip, \"\");\n }\n return stripMetadataSpacer(output);\n};\n\nconst parseLegacyTitle = (content: string) => {\n const match = content.match(/^\\s*<!--\\s*title:\\s*(.+?)\\s*-->\\s*(?:\\r?\\n|$)/i);\n return match ? match[1].trim() : null;\n};\n\nexport const extractMarkdownTitle = (content: string) =>\n parseLegacyTitle(content);\n","import express, { Request, Response } from \"express\";\nimport chokidar from \"chokidar\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n extractMarkdownTitle,\n getMarkdownMetadata,\n stripMarkdownMetadataHeader,\n} from \"@hyperdoc/adapter-markdown\";\nimport {\n DOC_TYPE_CONFIG,\n type DocType,\n getDocTypeFromName,\n normalizeDocName,\n projectConfigSchema,\n stripDocExtension,\n type ProjectConfig,\n} from \"@hyperdoc/core\";\n\nexport type ServerOptions = {\n rootDir: string;\n staticDir?: string;\n};\n\nexport function createApp(options: ServerOptions): express.Express {\n const app = express();\n const rootDir = path.resolve(options.rootDir);\n const rootDirPrefix = rootDir.endsWith(path.sep)\n ? rootDir\n : `${rootDir}${path.sep}`;\n const metadataFileName = \"metadata.json\";\n const hyperdocDirName = \".hyperdoc\";\n const archiveDirName = \"archive\";\n const trashDirName = \"trash\";\n const projectFileName = \"project.json\";\n const docExtensions = DOC_TYPE_CONFIG.map((config) => config.extension);\n\n const resolveDocPath = (name: string) => path.resolve(rootDir, name);\n const isDocPathSafe = (filePath: string) => filePath.startsWith(rootDirPrefix);\n const isMetadataName = (name: string) => name === metadataFileName;\n const hyperdocDir = path.join(rootDir, hyperdocDirName);\n const projectFilePath = path.join(hyperdocDir, projectFileName);\n const ensureHyperdocDir = () => {\n if (!fs.existsSync(hyperdocDir)) {\n fs.mkdirSync(hyperdocDir, { recursive: true });\n }\n };\n const readProjectConfig = () => {\n if (!fs.existsSync(projectFilePath)) {\n return { config: null as ProjectConfig | null, error: null };\n }\n try {\n const raw = fs.readFileSync(projectFilePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n const result = projectConfigSchema.safeParse(parsed);\n if (!result.success) {\n return { config: null as ProjectConfig | null, error: result.error };\n }\n return { config: result.data, error: null };\n } catch (error) {\n return { config: null as ProjectConfig | null, error };\n }\n };\n const writeProjectConfig = (config: ProjectConfig) => {\n ensureHyperdocDir();\n const payload = JSON.stringify(config, null, 2);\n fs.writeFileSync(projectFilePath, `${payload}\\n`, \"utf-8\");\n };\n const decodeJsonMetadata = (content: string) => {\n try {\n const parsed = JSON.parse(content);\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return null;\n }\n const metadataRaw = (parsed as { metadata?: unknown }).metadata;\n if (!metadataRaw || typeof metadataRaw !== \"object\" || Array.isArray(metadataRaw)) {\n return { tags: [] as string[] };\n }\n const metadata = metadataRaw as { tags?: unknown; pinned?: unknown };\n const tags = Array.isArray(metadata.tags)\n ? metadata.tags.filter((tag) => typeof tag === \"string\")\n : [];\n const pinned = metadata.pinned === true;\n return { tags, pinned };\n } catch {\n return null;\n }\n };\n const normalizeTags = (value: unknown) => {\n if (!Array.isArray(value)) return [];\n const cleaned = value\n .map((tag) => (typeof tag === \"string\" ? tag.trim() : \"\"))\n .filter((tag) => tag.length > 0 && /^[a-z]+$/.test(tag));\n return Array.from(new Set(cleaned)).sort();\n };\n const tagsFromContent = (name: string, content: string) => {\n const type = getDocTypeFromName(name);\n if (type === \"markdown\") {\n return getMarkdownMetadata(content)?.tags ?? [];\n }\n if (type === \"json\" || type === \"app\") {\n return decodeJsonMetadata(content)?.tags ?? [];\n }\n return [];\n };\n\n const fileTags = new Map<string, string[]>();\n const tagIndex = new Set<string>();\n\n const indexFileTags = (name: string) => {\n const filePath = resolveDocPath(name);\n if (!fs.existsSync(filePath)) return;\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const tags = normalizeTags(tagsFromContent(name, content));\n fileTags.set(name, tags);\n } catch {\n fileTags.set(name, []);\n }\n };\n\n const rebuildTagIndex = () => {\n tagIndex.clear();\n for (const tags of fileTags.values()) {\n for (const tag of tags) tagIndex.add(tag);\n }\n };\n\n const refreshTagsFromDisk = () => {\n fileTags.clear();\n const entries = fs\n .readdirSync(rootDir, { withFileTypes: true })\n .filter((entry) => entry.isFile())\n .filter((entry) =>\n docExtensions.some((extension) => entry.name.endsWith(extension)),\n )\n .filter((entry) => !isMetadataName(entry.name));\n for (const entry of entries) {\n indexFileTags(entry.name);\n }\n rebuildTagIndex();\n };\n\n refreshTagsFromDisk();\n const validateDocName = (name: string) => {\n if (!name) return \"Missing name\";\n if (name.includes(\"/\") || name.includes(\"\\\\\") || name.includes(\"..\")) {\n return \"Invalid name\";\n }\n return null;\n };\n const displayNameFromFileName = (name: string) => {\n const base = stripDocExtension(name);\n const spaced = base.replace(/-+/g, \" \").trim();\n if (!spaced) return base;\n return `${spaced.charAt(0).toUpperCase()}${spaced.slice(1)}`;\n };\n\n app.use(express.text({ type: \"*/*\", limit: \"5mb\" }));\n\n if (options.staticDir && fs.existsSync(options.staticDir)) {\n app.use(express.static(options.staticDir));\n }\n\n const bundlesDir = path.join(rootDir, \"bundles\");\n if (fs.existsSync(bundlesDir)) {\n app.use(\"/bundles\", express.static(bundlesDir));\n }\n\n app.get(\"/api/project\", (req: Request, res: Response) => {\n const { config, error } = readProjectConfig();\n if (error) {\n res.status(400).json({ error: \"Invalid project config\" });\n return;\n }\n res.json({\n name: config?.name ?? null,\n exists: config !== null,\n });\n });\n\n app.put(\"/api/project\", (req: Request, res: Response) => {\n const raw = typeof req.body === \"string\" ? req.body : \"\";\n if (!raw.trim()) {\n res.status(400).send(\"Missing body\");\n return;\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch {\n res.status(400).send(\"Invalid JSON\");\n return;\n }\n const result = projectConfigSchema.safeParse(parsed);\n if (!result.success) {\n res.status(400).json({ error: \"Invalid project config\" });\n return;\n }\n writeProjectConfig(result.data);\n res.json({ name: result.data.name ?? null });\n });\n\n app.get(\"/api/docs\", (req: Request, res: Response) => {\n const entries = fs\n .readdirSync(rootDir, { withFileTypes: true })\n .filter((entry) => entry.isFile())\n .filter((entry) => entry.name.endsWith(\".md\") || entry.name.endsWith(\".json\"))\n .filter((entry) => !isMetadataName(entry.name))\n .map((entry) => {\n const type = getDocTypeFromName(entry.name);\n return type ? { name: entry.name, type } : null;\n })\n .filter((entry): entry is { name: string; type: DocType } => entry !== null)\n .map((entry) => {\n const filePath = resolveDocPath(entry.name);\n if (entry.type === \"markdown\") {\n let title: string | null = null;\n let tags: string[] = [];\n let pinned = false;\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n title = extractMarkdownTitle(content);\n const metadata = getMarkdownMetadata(content);\n tags = normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n title = null;\n tags = [];\n pinned = false;\n }\n return {\n ...entry,\n title,\n tags,\n pinned,\n displayName: title && title.length > 0 ? title : displayNameFromFileName(entry.name),\n };\n }\n if (entry.type === \"json\" || entry.type === \"app\") {\n let tags: string[] = [];\n let pinned = false;\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const metadata = decodeJsonMetadata(content);\n tags = normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n tags = [];\n pinned = false;\n }\n return {\n ...entry,\n title: null,\n tags,\n pinned,\n displayName: displayNameFromFileName(entry.name),\n };\n }\n return {\n ...entry,\n title: null,\n tags: [],\n pinned: false,\n displayName: displayNameFromFileName(entry.name),\n };\n });\n res.json(entries);\n });\n\n app.get(\"/api/docs/exists\", (req: Request, res: Response) => {\n const name = String(req.query.name ?? \"\");\n if (!name) {\n res.status(400).send(\"Missing name\");\n return;\n }\n if (name.includes(\"/\") || name.includes(\"\\\\\") || name.includes(\"..\")) {\n res.status(400).send(\"Invalid name\");\n return;\n }\n const filePath = resolveDocPath(name);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n res.json({ exists: fs.existsSync(filePath) });\n });\n\n app.post(\"/api/docs\", (req: Request, res: Response) => {\n let payload:\n | {\n name?: string;\n type?: \"markdown\" | \"json\" | \"app\";\n content?: string;\n title?: string;\n }\n | null = null;\n if (typeof req.body === \"string\") {\n try {\n payload = JSON.parse(req.body);\n } catch {\n payload = null;\n }\n } else if (req.body && typeof req.body === \"object\") {\n payload = req.body as {\n name?: string;\n type?: \"markdown\" | \"json\" | \"app\";\n content?: string;\n title?: string;\n };\n }\n\n const rawName = String(payload?.name ?? \"\");\n const rawType = payload?.type ?? null;\n\n if (!rawType) {\n res.status(400).send(\"Missing type\");\n return;\n }\n\n const name = normalizeDocName(rawName, rawType);\n const nameError = validateDocName(name);\n if (nameError) {\n res.status(400).send(nameError);\n return;\n }\n const fileName = name;\n const filePath = resolveDocPath(fileName);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (fs.existsSync(filePath)) {\n res.status(409).send(\"Name already exists\");\n return;\n }\n const content =\n payload?.content ??\n (rawType === \"json\" ? JSON.stringify({ data: [] }, null, 2) : \"\");\n fs.writeFileSync(filePath, content, \"utf-8\");\n indexFileTags(fileName);\n rebuildTagIndex();\n const createdTags = normalizeTags(tagsFromContent(fileName, content));\n const createdTitle =\n rawType === \"markdown\" ? extractMarkdownTitle(content) : null;\n res.status(201).json({\n name: fileName,\n type: rawType,\n title: createdTitle,\n tags: createdTags,\n displayName:\n createdTitle && createdTitle.length > 0\n ? createdTitle\n : displayNameFromFileName(fileName),\n });\n });\n\n app.post(\"/api/doc/rename\", (req: Request, res: Response) => {\n let payload:\n | {\n from?: string;\n to?: string;\n }\n | null = null;\n if (typeof req.body === \"string\") {\n try {\n payload = JSON.parse(req.body);\n } catch {\n payload = null;\n }\n } else if (req.body && typeof req.body === \"object\") {\n payload = req.body as { from?: string; to?: string };\n }\n\n const from = String(payload?.from ?? \"\").trim();\n const to = String(payload?.to ?? \"\").trim();\n if (!from || !to) {\n res.status(400).send(\"Missing rename target\");\n return;\n }\n const fromError = validateDocName(from);\n if (fromError) {\n res.status(400).send(fromError);\n return;\n }\n const toError = validateDocName(to);\n if (toError) {\n res.status(400).send(toError);\n return;\n }\n if (isMetadataName(from) || isMetadataName(to)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n const fromPath = resolveDocPath(from);\n const toPath = resolveDocPath(to);\n if (!isDocPathSafe(fromPath) || !isDocPathSafe(toPath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (!fs.existsSync(fromPath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n if (fs.existsSync(toPath)) {\n res.status(409).send(\"Name already exists\");\n return;\n }\n const fromType = getDocTypeFromName(from);\n const toType = getDocTypeFromName(to);\n if (!fromType || !toType || fromType !== toType) {\n res.status(400).send(`Name extension does not match type`);\n return;\n }\n fs.renameSync(fromPath, toPath);\n if (fromType) {\n fileTags.delete(from);\n indexFileTags(to);\n rebuildTagIndex();\n }\n res.json({\n name: to,\n type: fromType,\n title: null,\n displayName: displayNameFromFileName(to),\n });\n });\n\n app.post(\"/api/doc/:name/archive\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n if (isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n if (name.includes(\"/\") || name.includes(\"\\\\\") || name.includes(\"..\")) {\n res.status(400).send(\"Invalid name\");\n return;\n }\n const filePath = resolveDocPath(name);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n const archiveDir = path.join(hyperdocDir, archiveDirName);\n ensureHyperdocDir();\n if (!fs.existsSync(archiveDir)) {\n fs.mkdirSync(archiveDir, { recursive: true });\n }\n const archivePath = path.join(archiveDir, name);\n if (fs.existsSync(archivePath)) {\n res.status(409).send(\"Archived file already exists with that name\");\n return;\n }\n fs.renameSync(filePath, archivePath);\n fileTags.delete(name);\n rebuildTagIndex();\n res.json({ archived: true, name });\n });\n\n app.get(\"/api/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n if (isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n const filePath = resolveDocPath(name);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n const content = fs.readFileSync(filePath, \"utf-8\");\n const stat = fs.statSync(filePath);\n const ext = path.extname(name).toLowerCase();\n if (ext === \".md\") {\n const metadata = getMarkdownMetadata(content);\n res.json({\n content: stripMarkdownMetadataHeader(content),\n mtimeMs: stat.mtimeMs,\n metadata,\n });\n return;\n }\n res.json({ content, mtimeMs: stat.mtimeMs });\n });\n\n app.put(\"/api/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n if (isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n const filePath = resolveDocPath(name);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n const baseHeader = req.header(\"x-hyperdoc-base-version\");\n if (baseHeader !== undefined) {\n const baseVersion = Number(baseHeader);\n if (!Number.isFinite(baseVersion)) {\n res.status(400).send(\"Invalid base version\");\n return;\n }\n const currentStat = fs.statSync(filePath);\n if (currentStat.mtimeMs !== baseVersion) {\n res.status(409).json({ mtimeMs: currentStat.mtimeMs });\n return;\n }\n }\n fs.writeFileSync(filePath, req.body ?? \"\", \"utf-8\");\n const stat = fs.statSync(filePath);\n const clientId = req.header(\"x-hyperdoc-client-id\");\n if (clientId) {\n recentWrites.set(name, {\n clientId,\n ts: Date.now(),\n mtimeMs: stat.mtimeMs,\n });\n }\n res.json({ mtimeMs: stat.mtimeMs });\n });\n\n app.delete(\"/api/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n if (isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n if (name.includes(\"/\") || name.includes(\"\\\\\") || name.includes(\"..\")) {\n res.status(400).send(\"Invalid name\");\n return;\n }\n const filePath = resolveDocPath(name);\n if (!isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n const trashDir = path.join(hyperdocDir, trashDirName);\n ensureHyperdocDir();\n if (!fs.existsSync(trashDir)) {\n fs.mkdirSync(trashDir, { recursive: true });\n // Create .gitignore to exclude trash contents from git\n fs.writeFileSync(path.join(trashDir, \".gitignore\"), \"*\\n!.gitignore\\n\");\n }\n const trashPath = path.join(trashDir, name);\n if (fs.existsSync(trashPath)) {\n // If file already exists in trash, add timestamp to avoid overwriting\n const ext = path.extname(name);\n const base = name.slice(0, -ext.length);\n const timestamp = Date.now();\n const uniqueName = `${base}-${timestamp}${ext}`;\n fs.renameSync(filePath, path.join(trashDir, uniqueName));\n } else {\n fs.renameSync(filePath, trashPath);\n }\n fileTags.delete(name);\n rebuildTagIndex();\n res.json({ deleted: true });\n });\n\n app.get(\"/api/tags\", (req: Request, res: Response) => {\n res.json({ tags: Array.from(tagIndex).sort() });\n });\n\n const clients = new Set<Response>();\n const recentWrites = new Map<\n string,\n { clientId: string; ts: number; mtimeMs: number }\n >();\n const watcher = chokidar.watch(rootDir, {\n ignoreInitial: true,\n ignored: (target) => {\n const rel = path.relative(rootDir, target);\n if (!rel) return false;\n if (rel.startsWith(\".git\")) return true;\n if (rel.startsWith(hyperdocDirName)) return true;\n if (rel.startsWith(\".trash\")) return true;\n if (rel.startsWith(\".archive\")) return true;\n if (rel.startsWith(\"node_modules\")) return true;\n if (rel.startsWith(\"dist\")) return true;\n return false;\n },\n });\n\n watcher.on(\"all\", (event, filePath) => {\n if (!filePath.endsWith(\".md\") && !filePath.endsWith(\".json\")) return;\n if (path.basename(filePath) === metadataFileName) return;\n const name = path.basename(filePath);\n if (name.endsWith(\".md\") || name.endsWith(\".json\")) {\n if (event === \"unlink\") {\n fileTags.delete(name);\n recentWrites.delete(name);\n } else {\n indexFileTags(name);\n }\n rebuildTagIndex();\n }\n let mtimeMs: number | undefined;\n if (event !== \"unlink\") {\n try {\n const stat = fs.statSync(filePath);\n mtimeMs = stat.mtimeMs;\n } catch {\n mtimeMs = undefined;\n }\n }\n const recent = recentWrites.get(name);\n const sourceId =\n recent && Date.now() - recent.ts < 2000 ? recent.clientId : undefined;\n const payload = JSON.stringify({ type: event, name, mtimeMs, sourceId });\n for (const client of clients) {\n client.write(`data: ${payload}\\n\\n`);\n }\n });\n\n app.get(\"/api/events\", (req: Request, res: Response) => {\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache\");\n res.setHeader(\"Connection\", \"keep-alive\");\n res.flushHeaders();\n\n clients.add(res);\n req.on(\"close\", () => {\n clients.delete(res);\n });\n });\n\n return app;\n}\n","export * from \"./createApp\";\n","import { Command } from \"commander\";\nimport { PromptCommand, ServerCommand } from \"../commands\";\nimport { CommandHandler, HyperdocCommand } from \"../types\";\nimport { LogLevel, logger } from \"@hyperdoc/core\";\nimport packageJson from \"../../package.json\";\n\nexport class CommanderCli {\n private program: Command;\n private commandHandlers: Map<HyperdocCommand, CommandHandler> = new Map();\n\n constructor() {\n this.program = new Command();\n this.setupCommandHandlers();\n this.setupProgram();\n }\n\n private setupCommandHandlers(): void {\n this.commandHandlers.set(\"prompt\", new PromptCommand());\n this.commandHandlers.set(\"server\", new ServerCommand());\n }\n\n private setupProgram(): void {\n this.program\n .name(\"hyper\")\n .description(\"Local Hyperdoc server and tooling\")\n .version(packageJson.version);\n\n this.program\n .option(\"--root <dir>\", \"Project root (defaults to cwd)\")\n .option(\"-v, --verbose\", \"Increase logging verbosity\")\n .option(\"-q, --quiet\", \"Reduce logging output\")\n .option(\"-d, --debug\", \"Enable debug logging\");\n\n this.program\n .command(\"prompt\")\n .description(\"Print the agent prompt/spec to stdout\")\n .action(async (options, command) => {\n await this.executeCommand(\"prompt\", command);\n });\n\n this.program\n .command(\"server\")\n .description(\"Start the local Hyperdoc server\")\n .option(\"--port <number>\", \"Port to run the server on\", (value) =>\n Number(value),\n )\n .option(\"-o, --open\", \"Open the UI in the browser\")\n .action(async (options, command) => {\n await this.executeCommand(\"server\", command);\n });\n }\n\n private async executeCommand(\n command: HyperdocCommand,\n commandInstance: Command,\n ): Promise<void> {\n const parent = commandInstance.parent!;\n const globalOpts = parent.opts();\n const commandOpts = commandInstance.opts();\n const allOptions = { ...globalOpts, ...commandOpts };\n\n if (allOptions.debug) {\n logger.setLevel(LogLevel.DEBUG);\n } else if (allOptions.verbose) {\n logger.setLevel(LogLevel.INFO);\n } else if (allOptions.quiet) {\n logger.setLevel(LogLevel.WARN);\n }\n\n const handler = this.commandHandlers.get(command);\n if (!handler) {\n throw new Error(`No handler found for command: ${command}`);\n }\n\n await handler.execute({ options: allOptions });\n }\n\n async parse(args: string[]): Promise<void> {\n await this.program.parseAsync(args);\n }\n\n getHelp(): string {\n return this.program.helpInformation();\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport { CommandContext, CommandHandler } from \"../types\";\n\nexport class PromptCommand implements CommandHandler {\n async execute(context: CommandContext): Promise<void> {\n void context;\n const promptPath = path.join(__dirname, \"..\", \"prompts\", \"agent.txt\");\n const prompt = fs.readFileSync(promptPath, \"utf-8\");\n process.stdout.write(prompt);\n if (!prompt.endsWith(\"\\n\")) {\n process.stdout.write(\"\\n\");\n }\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport open from \"open\";\nimport { CommandContext, CommandHandler } from \"../types\";\nimport { logger } from \"@hyperdoc/core\";\nimport { createApp } from \"@hyperdoc/server\";\n\nconst DEFAULT_PORT = 4321;\n\nexport class ServerCommand implements CommandHandler {\n async execute(context: CommandContext): Promise<void> {\n const rootDir = path.resolve(context.options.root ?? process.cwd());\n const port = Number(\n context.options.port ?? process.env.HYPERDOC_PORT ?? DEFAULT_PORT,\n );\n\n const webDirCandidates = [\n path.join(__dirname, \"web\"),\n path.join(__dirname, \"..\", \"web\"),\n path.join(__dirname, \"..\", \"..\", \"..\", \"web\", \"dist\"),\n ];\n const webDir = webDirCandidates.find((candidate) =>\n fs.existsSync(candidate),\n );\n if (!webDir) {\n logger.warn(\n `Web bundle not found at ${webDirCandidates.join(\", \")}. Run pnpm --filter hyperdoc-web build.`,\n );\n }\n const app = createApp({ rootDir, staticDir: webDir ?? \"\" });\n\n app.get(\"*\", (req, res) => {\n const indexPath = webDir ? path.join(webDir, \"index.html\") : \"\";\n if (indexPath && fs.existsSync(indexPath)) {\n res.sendFile(indexPath);\n } else {\n res.status(500).send(\"Web bundle missing. Run pnpm build:web.\");\n }\n });\n\n app.listen(port, () => {\n const url = `http://localhost:${port}`;\n logger.info(`Hyperdoc server running at ${url}`);\n if (context.options.open) {\n open(url).catch(() => undefined);\n }\n });\n }\n}\n","{\n \"name\": \"@maplab/hyperdoc\",\n \"version\": \"0.2.1\",\n \"description\": \"Hyperdoc CLI and local server\",\n \"type\": \"commonjs\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"hyper\": \"dist/index.js\"\n },\n \"files\": [\n \"dist\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup && node scripts/copy-prompts.js && node scripts/copy-web.js\",\n \"dev\": \"tsx src/index.ts\",\n \"start\": \"node dist/index.js\",\n \"typecheck\": \"tsc -p tsconfig.json --noEmit\"\n },\n \"dependencies\": {\n \"chokidar\": \"^5.0.0\",\n \"commander\": \"^14.0.0\",\n \"markdown-it\": \"^14.1.0\",\n \"open\": \"^9.1.0\",\n \"express\": \"^4.19.2\",\n \"zod\": \"^4.1.5\"\n },\n \"devDependencies\": {\n \"@hyperdoc/core\": \"workspace:*\",\n \"@hyperdoc/server\": \"workspace:*\",\n \"tsup\": \"^8.5.0\"\n }\n}\n","import { CommanderCli } from \"./cli\";\nimport { LogLevel, formatError, logger } from \"@hyperdoc/core\";\n\ndeclare const process: {\n argv: string[];\n exit: (code: number) => never;\n};\n\nconst cli = new CommanderCli();\n\nasync function main() {\n try {\n await cli.parse(process.argv);\n } catch (error) {\n const showStackTrace = logger.getLevel() === LogLevel.DEBUG;\n const formattedError = formatError(error, showStackTrace);\n console.error(formattedError);\n process.exit(1);\n }\n}\n\nmain();\n"],"mappings":"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","names":["exports","formatError","LogLevel","exports","exports","exports","exports","exports","exports","createApp","exports","path","fs","import_fs","import_path","path","fs","open","import_core","import_core"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@anthropic-ai+claude-agent-sdk@0.2.34_zod@4.3.6/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs","../src/cli/CommanderCli.ts","../../../packages/server/src/createApp.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/utils.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/rpc/codes.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/createProxy.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/error/getErrorShape.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/error/formatter.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/error/TRPCError.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/transformer.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/router.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/tracked.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/observable/observable.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/http/parseConnectionParams.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/http/contentType.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/http/abortError.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/vendor/is-plain-object.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/vendor/unpromise/unpromise.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/disposable.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/timerResource.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/asyncIterable.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/createDeferred.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/readableStreamFrom.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/utils/withPing.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/jsonl.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/stream/sse.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/http/resolveResponse.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/middleware.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/vendor/standard-schema-v1/error.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/parser.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/rootConfig.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/initTRPC.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/adapters/node-http/incomingMessageToRequest.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/adapters/node-http/writeResponse.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/adapters/node-http/nodeHTTPRequestHandler.ts","../../../node_modules/.pnpm/@trpc+server@11.9.0_typescript@5.9.3/node_modules/@trpc/server/src/adapters/express.ts","../../../packages/core/src/errors.ts","../../../packages/core/src/utils/logger.ts","../../../packages/core/src/schemas/project.ts","../../../packages/core/src/doc-types.ts","../../../packages/core/src/tasks-schema.ts","../../../packages/server/src/createProjectRouter.ts","../../../packages/server/src/routes/context.ts","../../../packages/adapter-markdown/src/index.ts","../../../packages/server/src/paths.ts","../../../packages/server/src/routes/project.ts","../../../packages/server/src/routes/docs.ts","../../../packages/server/src/routes/doc.ts","../../../packages/server/src/routes/agents.ts","../../../packages/server/src/routes/tags.ts","../../../packages/server/src/routes/folders.ts","../../../packages/server/src/routes/events.ts","../../../packages/server/src/routes/system.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/double-indexed-kv.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/registry.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/class-registry.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/util.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/custom-transformer-registry.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/is.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/pathstringifier.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/transformer.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/accessDeep.ts","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/plainer.ts","../../../node_modules/.pnpm/is-what@5.5.0/node_modules/is-what/dist/getType.js","../../../node_modules/.pnpm/is-what@5.5.0/node_modules/is-what/dist/isArray.js","../../../node_modules/.pnpm/is-what@5.5.0/node_modules/is-what/dist/isPlainObject.js","../../../node_modules/.pnpm/copy-anything@4.0.5/node_modules/copy-anything/dist/index.js","../../../node_modules/.pnpm/superjson@2.2.6/node_modules/superjson/src/index.ts","../../../packages/server/src/trpc.ts","../../../packages/server/src/zapper.ts","../src/commands/ConfigCommand.ts","../src/commands/PromptCommand.ts","../src/commands/ServerCommand.ts","../../../packages/trpc/src/procedures/projects.ts","../../../packages/trpc/src/procedures/project.ts","../../../packages/trpc/src/procedures/config.ts","../../../packages/trpc/src/procedures/docs.ts","../../../packages/trpc/src/procedures/doc.ts","../../../packages/trpc/src/procedures/tags.ts","../../../packages/trpc/src/procedures/folders.ts","../../../packages/trpc/src/procedures/code.ts","../../../packages/trpc/src/procedures/zapper.ts","../../../packages/trpc/src/server.ts","../package.json","../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n// (c) Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance.\n\n// Version: 0.2.34\n\n// Want to see the unminified source? We're hiring!\n// https://job-boards.greenhouse.io/anthropic/jobs/4816199008\nvar JK=Object.create;var{getPrototypeOf:GK,defineProperty:Y9,getOwnPropertyNames:HK}=Object;var BK=Object.prototype.hasOwnProperty;var K7=(X,Q,$)=>{$=X!=null?JK(GK(X)):{};let Y=Q||!X||!X.__esModule?Y9($,\"default\",{value:X,enumerable:!0}):$;for(let W of HK(X))if(!BK.call(Y,W))Y9(Y,W,{get:()=>X[W],enumerable:!0});return Y};var P=(X,Q)=>()=>(Q||X((Q={exports:{}}).exports,Q),Q.exports);var U7=(X,Q)=>{for(var $ in Q)Y9(X,$,{get:Q[$],enumerable:!0,configurable:!0,set:(Y)=>Q[$]=()=>Y})};var zK=Symbol.dispose||Symbol.for(\"Symbol.dispose\"),KK=Symbol.asyncDispose||Symbol.for(\"Symbol.asyncDispose\"),V7=(X,Q,$)=>{if(Q!=null){if(typeof Q!==\"object\"&&typeof Q!==\"function\")throw TypeError('Object expected to be assigned to \"using\" declaration');var Y;if($)Y=Q[KK];if(Y===void 0)Y=Q[zK];if(typeof Y!==\"function\")throw TypeError(\"Object not disposable\");X.push([$,Y,Q])}else if($)X.push([$]);return Q},L7=(X,Q,$)=>{var Y=typeof SuppressedError===\"function\"?SuppressedError:function(G,H,B,z){return z=Error(B),z.name=\"SuppressedError\",z.error=G,z.suppressed=H,z},W=(G)=>Q=$?new Y(G,Q,\"An error was suppressed during disposal\"):($=!0,G),J=(G)=>{while(G=X.pop())try{var H=G[1]&&G[1].call(G[2]);if(G[0])return Promise.resolve(H).then(J,(B)=>(W(B),J()))}catch(B){W(B)}if($)throw Q};return J()};var hX=P((JG)=>{Object.defineProperty(JG,\"__esModule\",{value:!0});JG.regexpCode=JG.getEsmExportName=JG.getProperty=JG.safeStringify=JG.stringify=JG.strConcat=JG.addCodeArg=JG.str=JG._=JG.nil=JG._Code=JG.Name=JG.IDENTIFIER=JG._CodeOrName=void 0;class D8{}JG._CodeOrName=D8;JG.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class g6 extends D8{constructor(X){super();if(!JG.IDENTIFIER.test(X))throw Error(\"CodeGen: name must be a valid identifier\");this.str=X}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}JG.Name=g6;class s0 extends D8{constructor(X){super();this._items=typeof X===\"string\"?[X]:X}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let X=this._items[0];return X===\"\"||X==='\"\"'}get str(){var X;return(X=this._str)!==null&&X!==void 0?X:this._str=this._items.reduce((Q,$)=>`${Q}${$}`,\"\")}get names(){var X;return(X=this._names)!==null&&X!==void 0?X:this._names=this._items.reduce((Q,$)=>{if($ instanceof g6)Q[$.str]=(Q[$.str]||0)+1;return Q},{})}}JG._Code=s0;JG.nil=new s0(\"\");function YG(X,...Q){let $=[X[0]],Y=0;while(Y<Q.length)s$($,Q[Y]),$.push(X[++Y]);return new s0($)}JG._=YG;var a$=new s0(\"+\");function WG(X,...Q){let $=[fX(X[0])],Y=0;while(Y<Q.length)$.push(a$),s$($,Q[Y]),$.push(a$,fX(X[++Y]));return ON($),new s0($)}JG.str=WG;function s$(X,Q){if(Q instanceof s0)X.push(...Q._items);else if(Q instanceof g6)X.push(Q);else X.push(AN(Q))}JG.addCodeArg=s$;function ON(X){let Q=1;while(Q<X.length-1){if(X[Q]===a$){let $=DN(X[Q-1],X[Q+1]);if($!==void 0){X.splice(Q-1,3,$);continue}X[Q++]=\"+\"}Q++}}function DN(X,Q){if(Q==='\"\"')return X;if(X==='\"\"')return Q;if(typeof X==\"string\"){if(Q instanceof g6||X[X.length-1]!=='\"')return;if(typeof Q!=\"string\")return`${X.slice(0,-1)}${Q}\"`;if(Q[0]==='\"')return X.slice(0,-1)+Q.slice(1);return}if(typeof Q==\"string\"&&Q[0]==='\"'&&!(X instanceof g6))return`\"${X}${Q.slice(1)}`;return}function wN(X,Q){return Q.emptyStr()?X:X.emptyStr()?Q:WG`${X}${Q}`}JG.strConcat=wN;function AN(X){return typeof X==\"number\"||typeof X==\"boolean\"||X===null?X:fX(Array.isArray(X)?X.join(\",\"):X)}function MN(X){return new s0(fX(X))}JG.stringify=MN;function fX(X){return JSON.stringify(X).replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")}JG.safeStringify=fX;function jN(X){return typeof X==\"string\"&&JG.IDENTIFIER.test(X)?new s0(`.${X}`):YG`[${X}]`}JG.getProperty=jN;function RN(X){if(typeof X==\"string\"&&JG.IDENTIFIER.test(X))return new s0(`${X}`);throw Error(`CodeGen: invalid export name: ${X}, use explicit $id name mapping`)}JG.getEsmExportName=RN;function IN(X){return new s0(X.toString())}JG.regexpCode=IN});var $Y=P((zG)=>{Object.defineProperty(zG,\"__esModule\",{value:!0});zG.ValueScope=zG.ValueScopeName=zG.Scope=zG.varKinds=zG.UsedValueState=void 0;var x0=hX();class HG extends Error{constructor(X){super(`CodeGen: \"code\" for ${X} not defined`);this.value=X.value}}var A8;(function(X){X[X.Started=0]=\"Started\",X[X.Completed=1]=\"Completed\"})(A8||(zG.UsedValueState=A8={}));zG.varKinds={const:new x0.Name(\"const\"),let:new x0.Name(\"let\"),var:new x0.Name(\"var\")};class XY{constructor({prefixes:X,parent:Q}={}){this._names={},this._prefixes=X,this._parent=Q}toName(X){return X instanceof x0.Name?X:this.name(X)}name(X){return new x0.Name(this._newName(X))}_newName(X){let Q=this._names[X]||this._nameGroup(X);return`${X}${Q.index++}`}_nameGroup(X){var Q,$;if((($=(Q=this._parent)===null||Q===void 0?void 0:Q._prefixes)===null||$===void 0?void 0:$.has(X))||this._prefixes&&!this._prefixes.has(X))throw Error(`CodeGen: prefix \"${X}\" is not allowed in this scope`);return this._names[X]={prefix:X,index:0}}}zG.Scope=XY;class QY extends x0.Name{constructor(X,Q){super(Q);this.prefix=X}setValue(X,{property:Q,itemIndex:$}){this.value=X,this.scopePath=x0._`.${new x0.Name(Q)}[${$}]`}}zG.ValueScopeName=QY;var gN=x0._`\\n`;class BG extends XY{constructor(X){super(X);this._values={},this._scope=X.scope,this.opts={...X,_n:X.lines?gN:x0.nil}}get(){return this._scope}name(X){return new QY(X,this._newName(X))}value(X,Q){var $;if(Q.ref===void 0)throw Error(\"CodeGen: ref must be passed in value\");let Y=this.toName(X),{prefix:W}=Y,J=($=Q.key)!==null&&$!==void 0?$:Q.ref,G=this._values[W];if(G){let z=G.get(J);if(z)return z}else G=this._values[W]=new Map;G.set(J,Y);let H=this._scope[W]||(this._scope[W]=[]),B=H.length;return H[B]=Q.ref,Y.setValue(Q,{property:W,itemIndex:B}),Y}getValue(X,Q){let $=this._values[X];if(!$)return;return $.get(Q)}scopeRefs(X,Q=this._values){return this._reduceValues(Q,($)=>{if($.scopePath===void 0)throw Error(`CodeGen: name \"${$}\" has no value`);return x0._`${X}${$.scopePath}`})}scopeCode(X=this._values,Q,$){return this._reduceValues(X,(Y)=>{if(Y.value===void 0)throw Error(`CodeGen: name \"${Y}\" has no value`);return Y.value.code},Q,$)}_reduceValues(X,Q,$={},Y){let W=x0.nil;for(let J in X){let G=X[J];if(!G)continue;let H=$[J]=$[J]||new Map;G.forEach((B)=>{if(H.has(B))return;H.set(B,A8.Started);let z=Q(B);if(z){let K=this.opts.es5?zG.varKinds.var:zG.varKinds.const;W=x0._`${W}${K} ${B} = ${z};${this.opts._n}`}else if(z=Y===null||Y===void 0?void 0:Y(B))W=x0._`${W}${z}${this.opts._n}`;else throw new HG(B);H.set(B,A8.Completed)})}return W}}zG.ValueScope=BG});var p=P((y0)=>{Object.defineProperty(y0,\"__esModule\",{value:!0});y0.or=y0.and=y0.not=y0.CodeGen=y0.operators=y0.varKinds=y0.ValueScopeName=y0.ValueScope=y0.Scope=y0.Name=y0.regexpCode=y0.stringify=y0.getProperty=y0.nil=y0.strConcat=y0.str=y0._=void 0;var t=hX(),e0=$Y(),l1=hX();Object.defineProperty(y0,\"_\",{enumerable:!0,get:function(){return l1._}});Object.defineProperty(y0,\"str\",{enumerable:!0,get:function(){return l1.str}});Object.defineProperty(y0,\"strConcat\",{enumerable:!0,get:function(){return l1.strConcat}});Object.defineProperty(y0,\"nil\",{enumerable:!0,get:function(){return l1.nil}});Object.defineProperty(y0,\"getProperty\",{enumerable:!0,get:function(){return l1.getProperty}});Object.defineProperty(y0,\"stringify\",{enumerable:!0,get:function(){return l1.stringify}});Object.defineProperty(y0,\"regexpCode\",{enumerable:!0,get:function(){return l1.regexpCode}});Object.defineProperty(y0,\"Name\",{enumerable:!0,get:function(){return l1.Name}});var b8=$Y();Object.defineProperty(y0,\"Scope\",{enumerable:!0,get:function(){return b8.Scope}});Object.defineProperty(y0,\"ValueScope\",{enumerable:!0,get:function(){return b8.ValueScope}});Object.defineProperty(y0,\"ValueScopeName\",{enumerable:!0,get:function(){return b8.ValueScopeName}});Object.defineProperty(y0,\"varKinds\",{enumerable:!0,get:function(){return b8.varKinds}});y0.operators={GT:new t._Code(\">\"),GTE:new t._Code(\">=\"),LT:new t._Code(\"<\"),LTE:new t._Code(\"<=\"),EQ:new t._Code(\"===\"),NEQ:new t._Code(\"!==\"),NOT:new t._Code(\"!\"),OR:new t._Code(\"||\"),AND:new t._Code(\"&&\"),ADD:new t._Code(\"+\")};class m1{optimizeNodes(){return this}optimizeNames(X,Q){return this}}class UG extends m1{constructor(X,Q,$){super();this.varKind=X,this.name=Q,this.rhs=$}render({es5:X,_n:Q}){let $=X?e0.varKinds.var:this.varKind,Y=this.rhs===void 0?\"\":` = ${this.rhs}`;return`${$} ${this.name}${Y};`+Q}optimizeNames(X,Q){if(!X[this.name.str])return;if(this.rhs)this.rhs=h6(this.rhs,X,Q);return this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class JY extends m1{constructor(X,Q,$){super();this.lhs=X,this.rhs=Q,this.sideEffects=$}render({_n:X}){return`${this.lhs} = ${this.rhs};`+X}optimizeNames(X,Q){if(this.lhs instanceof t.Name&&!X[this.lhs.str]&&!this.sideEffects)return;return this.rhs=h6(this.rhs,X,Q),this}get names(){let X=this.lhs instanceof t.Name?{}:{...this.lhs.names};return E8(X,this.rhs)}}class VG extends JY{constructor(X,Q,$,Y){super(X,$,Y);this.op=Q}render({_n:X}){return`${this.lhs} ${this.op}= ${this.rhs};`+X}}class LG extends m1{constructor(X){super();this.label=X,this.names={}}render({_n:X}){return`${this.label}:`+X}}class qG extends m1{constructor(X){super();this.label=X,this.names={}}render({_n:X}){return`break${this.label?` ${this.label}`:\"\"};`+X}}class FG extends m1{constructor(X){super();this.error=X}render({_n:X}){return`throw ${this.error};`+X}get names(){return this.error.names}}class NG extends m1{constructor(X){super();this.code=X}render({_n:X}){return`${this.code};`+X}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(X,Q){return this.code=h6(this.code,X,Q),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class P8 extends m1{constructor(X=[]){super();this.nodes=X}render(X){return this.nodes.reduce((Q,$)=>Q+$.render(X),\"\")}optimizeNodes(){let{nodes:X}=this,Q=X.length;while(Q--){let $=X[Q].optimizeNodes();if(Array.isArray($))X.splice(Q,1,...$);else if($)X[Q]=$;else X.splice(Q,1)}return X.length>0?this:void 0}optimizeNames(X,Q){let{nodes:$}=this,Y=$.length;while(Y--){let W=$[Y];if(W.optimizeNames(X,Q))continue;lN(X,W.names),$.splice(Y,1)}return $.length>0?this:void 0}get names(){return this.nodes.reduce((X,Q)=>G6(X,Q.names),{})}}class c1 extends P8{render(X){return\"{\"+X._n+super.render(X)+\"}\"+X._n}}class OG extends P8{}class uX extends c1{}uX.kind=\"else\";class j1 extends c1{constructor(X,Q){super(Q);this.condition=X}render(X){let Q=`if(${this.condition})`+super.render(X);if(this.else)Q+=\"else \"+this.else.render(X);return Q}optimizeNodes(){super.optimizeNodes();let X=this.condition;if(X===!0)return this.nodes;let Q=this.else;if(Q){let $=Q.optimizeNodes();Q=this.else=Array.isArray($)?new uX($):$}if(Q){if(X===!1)return Q instanceof j1?Q:Q.nodes;if(this.nodes.length)return this;return new j1(jG(X),Q instanceof j1?[Q]:Q.nodes)}if(X===!1||!this.nodes.length)return;return this}optimizeNames(X,Q){var $;if(this.else=($=this.else)===null||$===void 0?void 0:$.optimizeNames(X,Q),!(super.optimizeNames(X,Q)||this.else))return;return this.condition=h6(this.condition,X,Q),this}get names(){let X=super.names;if(E8(X,this.condition),this.else)G6(X,this.else.names);return X}}j1.kind=\"if\";class f6 extends c1{}f6.kind=\"for\";class DG extends f6{constructor(X){super();this.iteration=X}render(X){return`for(${this.iteration})`+super.render(X)}optimizeNames(X,Q){if(!super.optimizeNames(X,Q))return;return this.iteration=h6(this.iteration,X,Q),this}get names(){return G6(super.names,this.iteration.names)}}class wG extends f6{constructor(X,Q,$,Y){super();this.varKind=X,this.name=Q,this.from=$,this.to=Y}render(X){let Q=X.es5?e0.varKinds.var:this.varKind,{name:$,from:Y,to:W}=this;return`for(${Q} ${$}=${Y}; ${$}<${W}; ${$}++)`+super.render(X)}get names(){let X=E8(super.names,this.from);return E8(X,this.to)}}class YY extends f6{constructor(X,Q,$,Y){super();this.loop=X,this.varKind=Q,this.name=$,this.iterable=Y}render(X){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(X)}optimizeNames(X,Q){if(!super.optimizeNames(X,Q))return;return this.iterable=h6(this.iterable,X,Q),this}get names(){return G6(super.names,this.iterable.names)}}class M8 extends c1{constructor(X,Q,$){super();this.name=X,this.args=Q,this.async=$}render(X){return`${this.async?\"async \":\"\"}function ${this.name}(${this.args})`+super.render(X)}}M8.kind=\"func\";class j8 extends P8{render(X){return\"return \"+super.render(X)}}j8.kind=\"return\";class AG extends c1{render(X){let Q=\"try\"+super.render(X);if(this.catch)Q+=this.catch.render(X);if(this.finally)Q+=this.finally.render(X);return Q}optimizeNodes(){var X,Q;return super.optimizeNodes(),(X=this.catch)===null||X===void 0||X.optimizeNodes(),(Q=this.finally)===null||Q===void 0||Q.optimizeNodes(),this}optimizeNames(X,Q){var $,Y;return super.optimizeNames(X,Q),($=this.catch)===null||$===void 0||$.optimizeNames(X,Q),(Y=this.finally)===null||Y===void 0||Y.optimizeNames(X,Q),this}get names(){let X=super.names;if(this.catch)G6(X,this.catch.names);if(this.finally)G6(X,this.finally.names);return X}}class R8 extends c1{constructor(X){super();this.error=X}render(X){return`catch(${this.error})`+super.render(X)}}R8.kind=\"catch\";class I8 extends c1{render(X){return\"finally\"+super.render(X)}}I8.kind=\"finally\";class MG{constructor(X,Q={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...Q,_n:Q.lines?`\n`:\"\"},this._extScope=X,this._scope=new e0.Scope({parent:X}),this._nodes=[new OG]}toString(){return this._root.render(this.opts)}name(X){return this._scope.name(X)}scopeName(X){return this._extScope.name(X)}scopeValue(X,Q){let $=this._extScope.value(X,Q);return(this._values[$.prefix]||(this._values[$.prefix]=new Set)).add($),$}getScopeValue(X,Q){return this._extScope.getValue(X,Q)}scopeRefs(X){return this._extScope.scopeRefs(X,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(X,Q,$,Y){let W=this._scope.toName(Q);if($!==void 0&&Y)this._constants[W.str]=$;return this._leafNode(new UG(X,W,$)),W}const(X,Q,$){return this._def(e0.varKinds.const,X,Q,$)}let(X,Q,$){return this._def(e0.varKinds.let,X,Q,$)}var(X,Q,$){return this._def(e0.varKinds.var,X,Q,$)}assign(X,Q,$){return this._leafNode(new JY(X,Q,$))}add(X,Q){return this._leafNode(new VG(X,y0.operators.ADD,Q))}code(X){if(typeof X==\"function\")X();else if(X!==t.nil)this._leafNode(new NG(X));return this}object(...X){let Q=[\"{\"];for(let[$,Y]of X){if(Q.length>1)Q.push(\",\");if(Q.push($),$!==Y||this.opts.es5)Q.push(\":\"),(0,t.addCodeArg)(Q,Y)}return Q.push(\"}\"),new t._Code(Q)}if(X,Q,$){if(this._blockNode(new j1(X)),Q&&$)this.code(Q).else().code($).endIf();else if(Q)this.code(Q).endIf();else if($)throw Error('CodeGen: \"else\" body without \"then\" body');return this}elseIf(X){return this._elseNode(new j1(X))}else(){return this._elseNode(new uX)}endIf(){return this._endBlockNode(j1,uX)}_for(X,Q){if(this._blockNode(X),Q)this.code(Q).endFor();return this}for(X,Q){return this._for(new DG(X),Q)}forRange(X,Q,$,Y,W=this.opts.es5?e0.varKinds.var:e0.varKinds.let){let J=this._scope.toName(X);return this._for(new wG(W,J,Q,$),()=>Y(J))}forOf(X,Q,$,Y=e0.varKinds.const){let W=this._scope.toName(X);if(this.opts.es5){let J=Q instanceof t.Name?Q:this.var(\"_arr\",Q);return this.forRange(\"_i\",0,t._`${J}.length`,(G)=>{this.var(W,t._`${J}[${G}]`),$(W)})}return this._for(new YY(\"of\",Y,W,Q),()=>$(W))}forIn(X,Q,$,Y=this.opts.es5?e0.varKinds.var:e0.varKinds.const){if(this.opts.ownProperties)return this.forOf(X,t._`Object.keys(${Q})`,$);let W=this._scope.toName(X);return this._for(new YY(\"in\",Y,W,Q),()=>$(W))}endFor(){return this._endBlockNode(f6)}label(X){return this._leafNode(new LG(X))}break(X){return this._leafNode(new qG(X))}return(X){let Q=new j8;if(this._blockNode(Q),this.code(X),Q.nodes.length!==1)throw Error('CodeGen: \"return\" should have one node');return this._endBlockNode(j8)}try(X,Q,$){if(!Q&&!$)throw Error('CodeGen: \"try\" without \"catch\" and \"finally\"');let Y=new AG;if(this._blockNode(Y),this.code(X),Q){let W=this.name(\"e\");this._currNode=Y.catch=new R8(W),Q(W)}if($)this._currNode=Y.finally=new I8,this.code($);return this._endBlockNode(R8,I8)}throw(X){return this._leafNode(new FG(X))}block(X,Q){if(this._blockStarts.push(this._nodes.length),X)this.code(X).endBlock(Q);return this}endBlock(X){let Q=this._blockStarts.pop();if(Q===void 0)throw Error(\"CodeGen: not in self-balancing block\");let $=this._nodes.length-Q;if($<0||X!==void 0&&$!==X)throw Error(`CodeGen: wrong number of nodes: ${$} vs ${X} expected`);return this._nodes.length=Q,this}func(X,Q=t.nil,$,Y){if(this._blockNode(new M8(X,Q,$)),Y)this.code(Y).endFunc();return this}endFunc(){return this._endBlockNode(M8)}optimize(X=1){while(X-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(X){return this._currNode.nodes.push(X),this}_blockNode(X){this._currNode.nodes.push(X),this._nodes.push(X)}_endBlockNode(X,Q){let $=this._currNode;if($ instanceof X||Q&&$ instanceof Q)return this._nodes.pop(),this;throw Error(`CodeGen: not in block \"${Q?`${X.kind}/${Q.kind}`:X.kind}\"`)}_elseNode(X){let Q=this._currNode;if(!(Q instanceof j1))throw Error('CodeGen: \"else\" without \"if\"');return this._currNode=Q.else=X,this}get _root(){return this._nodes[0]}get _currNode(){let X=this._nodes;return X[X.length-1]}set _currNode(X){let Q=this._nodes;Q[Q.length-1]=X}}y0.CodeGen=MG;function G6(X,Q){for(let $ in Q)X[$]=(X[$]||0)+(Q[$]||0);return X}function E8(X,Q){return Q instanceof t._CodeOrName?G6(X,Q.names):X}function h6(X,Q,$){if(X instanceof t.Name)return Y(X);if(!W(X))return X;return new t._Code(X._items.reduce((J,G)=>{if(G instanceof t.Name)G=Y(G);if(G instanceof t._Code)J.push(...G._items);else J.push(G);return J},[]));function Y(J){let G=$[J.str];if(G===void 0||Q[J.str]!==1)return J;return delete Q[J.str],G}function W(J){return J instanceof t._Code&&J._items.some((G)=>G instanceof t.Name&&Q[G.str]===1&&$[G.str]!==void 0)}}function lN(X,Q){for(let $ in Q)X[$]=(X[$]||0)-(Q[$]||0)}function jG(X){return typeof X==\"boolean\"||typeof X==\"number\"||X===null?!X:t._`!${WY(X)}`}y0.not=jG;var mN=RG(y0.operators.AND);function cN(...X){return X.reduce(mN)}y0.and=cN;var pN=RG(y0.operators.OR);function dN(...X){return X.reduce(pN)}y0.or=dN;function RG(X){return(Q,$)=>Q===t.nil?$:$===t.nil?Q:t._`${WY(Q)} ${X} ${WY($)}`}function WY(X){return X instanceof t.Name?X:t._`(${X})`}});var e=P((vG)=>{Object.defineProperty(vG,\"__esModule\",{value:!0});vG.checkStrictMode=vG.getErrorPath=vG.Type=vG.useFunc=vG.setEvaluated=vG.evaluatedPropsToName=vG.mergeEvaluated=vG.eachItem=vG.unescapeJsonPointer=vG.escapeJsonPointer=vG.escapeFragment=vG.unescapeFragment=vG.schemaRefOrVal=vG.schemaHasRulesButRef=vG.schemaHasRules=vG.checkUnknownRules=vG.alwaysValidSchema=vG.toHash=void 0;var $0=p(),oN=hX();function tN(X){let Q={};for(let $ of X)Q[$]=!0;return Q}vG.toHash=tN;function aN(X,Q){if(typeof Q==\"boolean\")return Q;if(Object.keys(Q).length===0)return!0;return PG(X,Q),!SG(Q,X.self.RULES.all)}vG.alwaysValidSchema=aN;function PG(X,Q=X.schema){let{opts:$,self:Y}=X;if(!$.strictSchema)return;if(typeof Q===\"boolean\")return;let W=Y.RULES.keywords;for(let J in Q)if(!W[J])kG(X,`unknown keyword: \"${J}\"`)}vG.checkUnknownRules=PG;function SG(X,Q){if(typeof X==\"boolean\")return!X;for(let $ in X)if(Q[$])return!0;return!1}vG.schemaHasRules=SG;function sN(X,Q){if(typeof X==\"boolean\")return!X;for(let $ in X)if($!==\"$ref\"&&Q.all[$])return!0;return!1}vG.schemaHasRulesButRef=sN;function eN({topSchemaRef:X,schemaPath:Q},$,Y,W){if(!W){if(typeof $==\"number\"||typeof $==\"boolean\")return $;if(typeof $==\"string\")return $0._`${$}`}return $0._`${X}${Q}${(0,$0.getProperty)(Y)}`}vG.schemaRefOrVal=eN;function XO(X){return ZG(decodeURIComponent(X))}vG.unescapeFragment=XO;function QO(X){return encodeURIComponent(HY(X))}vG.escapeFragment=QO;function HY(X){if(typeof X==\"number\")return`${X}`;return X.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")}vG.escapeJsonPointer=HY;function ZG(X){return X.replace(/~1/g,\"/\").replace(/~0/g,\"~\")}vG.unescapeJsonPointer=ZG;function $O(X,Q){if(Array.isArray(X))for(let $ of X)Q($);else Q(X)}vG.eachItem=$O;function EG({mergeNames:X,mergeToName:Q,mergeValues:$,resultToName:Y}){return(W,J,G,H)=>{let B=G===void 0?J:G instanceof $0.Name?(J instanceof $0.Name?X(W,J,G):Q(W,J,G),G):J instanceof $0.Name?(Q(W,G,J),J):$(J,G);return H===$0.Name&&!(B instanceof $0.Name)?Y(W,B):B}}vG.mergeEvaluated={props:EG({mergeNames:(X,Q,$)=>X.if($0._`${$} !== true && ${Q} !== undefined`,()=>{X.if($0._`${Q} === true`,()=>X.assign($,!0),()=>X.assign($,$0._`${$} || {}`).code($0._`Object.assign(${$}, ${Q})`))}),mergeToName:(X,Q,$)=>X.if($0._`${$} !== true`,()=>{if(Q===!0)X.assign($,!0);else X.assign($,$0._`${$} || {}`),BY(X,$,Q)}),mergeValues:(X,Q)=>X===!0?!0:{...X,...Q},resultToName:CG}),items:EG({mergeNames:(X,Q,$)=>X.if($0._`${$} !== true && ${Q} !== undefined`,()=>X.assign($,$0._`${Q} === true ? true : ${$} > ${Q} ? ${$} : ${Q}`)),mergeToName:(X,Q,$)=>X.if($0._`${$} !== true`,()=>X.assign($,Q===!0?!0:$0._`${$} > ${Q} ? ${$} : ${Q}`)),mergeValues:(X,Q)=>X===!0?!0:Math.max(X,Q),resultToName:(X,Q)=>X.var(\"items\",Q)})};function CG(X,Q){if(Q===!0)return X.var(\"props\",!0);let $=X.var(\"props\",$0._`{}`);if(Q!==void 0)BY(X,$,Q);return $}vG.evaluatedPropsToName=CG;function BY(X,Q,$){Object.keys($).forEach((Y)=>X.assign($0._`${Q}${(0,$0.getProperty)(Y)}`,!0))}vG.setEvaluated=BY;var bG={};function YO(X,Q){return X.scopeValue(\"func\",{ref:Q,code:bG[Q.code]||(bG[Q.code]=new oN._Code(Q.code))})}vG.useFunc=YO;var GY;(function(X){X[X.Num=0]=\"Num\",X[X.Str=1]=\"Str\"})(GY||(vG.Type=GY={}));function WO(X,Q,$){if(X instanceof $0.Name){let Y=Q===GY.Num;return $?Y?$0._`\"[\" + ${X} + \"]\"`:$0._`\"['\" + ${X} + \"']\"`:Y?$0._`\"/\" + ${X}`:$0._`\"/\" + ${X}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`}return $?(0,$0.getProperty)(X).toString():\"/\"+HY(X)}vG.getErrorPath=WO;function kG(X,Q,$=X.opts.strictSchema){if(!$)return;if(Q=`strict mode: ${Q}`,$===!0)throw Error(Q);X.self.logger.warn(Q)}vG.checkStrictMode=kG});var R1=P((_G)=>{Object.defineProperty(_G,\"__esModule\",{value:!0});var S0=p(),jO={data:new S0.Name(\"data\"),valCxt:new S0.Name(\"valCxt\"),instancePath:new S0.Name(\"instancePath\"),parentData:new S0.Name(\"parentData\"),parentDataProperty:new S0.Name(\"parentDataProperty\"),rootData:new S0.Name(\"rootData\"),dynamicAnchors:new S0.Name(\"dynamicAnchors\"),vErrors:new S0.Name(\"vErrors\"),errors:new S0.Name(\"errors\"),this:new S0.Name(\"this\"),self:new S0.Name(\"self\"),scope:new S0.Name(\"scope\"),json:new S0.Name(\"json\"),jsonPos:new S0.Name(\"jsonPos\"),jsonLen:new S0.Name(\"jsonLen\"),jsonPart:new S0.Name(\"jsonPart\")};_G.default=jO});var lX=P((fG)=>{Object.defineProperty(fG,\"__esModule\",{value:!0});fG.extendErrors=fG.resetErrorsCount=fG.reportExtraError=fG.reportError=fG.keyword$DataError=fG.keywordError=void 0;var a=p(),Z8=e(),v0=R1();fG.keywordError={message:({keyword:X})=>a.str`must pass \"${X}\" keyword validation`};fG.keyword$DataError={message:({keyword:X,schemaType:Q})=>Q?a.str`\"${X}\" keyword must be ${Q} ($data)`:a.str`\"${X}\" keyword is invalid ($data)`};function IO(X,Q=fG.keywordError,$,Y){let{it:W}=X,{gen:J,compositeRule:G,allErrors:H}=W,B=gG(X,Q,$);if(Y!==null&&Y!==void 0?Y:G||H)xG(J,B);else yG(W,a._`[${B}]`)}fG.reportError=IO;function EO(X,Q=fG.keywordError,$){let{it:Y}=X,{gen:W,compositeRule:J,allErrors:G}=Y,H=gG(X,Q,$);if(xG(W,H),!(J||G))yG(Y,v0.default.vErrors)}fG.reportExtraError=EO;function bO(X,Q){X.assign(v0.default.errors,Q),X.if(a._`${v0.default.vErrors} !== null`,()=>X.if(Q,()=>X.assign(a._`${v0.default.vErrors}.length`,Q),()=>X.assign(v0.default.vErrors,null)))}fG.resetErrorsCount=bO;function PO({gen:X,keyword:Q,schemaValue:$,data:Y,errsCount:W,it:J}){if(W===void 0)throw Error(\"ajv implementation error\");let G=X.name(\"err\");X.forRange(\"i\",W,v0.default.errors,(H)=>{if(X.const(G,a._`${v0.default.vErrors}[${H}]`),X.if(a._`${G}.instancePath === undefined`,()=>X.assign(a._`${G}.instancePath`,(0,a.strConcat)(v0.default.instancePath,J.errorPath))),X.assign(a._`${G}.schemaPath`,a.str`${J.errSchemaPath}/${Q}`),J.opts.verbose)X.assign(a._`${G}.schema`,$),X.assign(a._`${G}.data`,Y)})}fG.extendErrors=PO;function xG(X,Q){let $=X.const(\"err\",Q);X.if(a._`${v0.default.vErrors} === null`,()=>X.assign(v0.default.vErrors,a._`[${$}]`),a._`${v0.default.vErrors}.push(${$})`),X.code(a._`${v0.default.errors}++`)}function yG(X,Q){let{gen:$,validateName:Y,schemaEnv:W}=X;if(W.$async)$.throw(a._`new ${X.ValidationError}(${Q})`);else $.assign(a._`${Y}.errors`,Q),$.return(!1)}var H6={keyword:new a.Name(\"keyword\"),schemaPath:new a.Name(\"schemaPath\"),params:new a.Name(\"params\"),propertyName:new a.Name(\"propertyName\"),message:new a.Name(\"message\"),schema:new a.Name(\"schema\"),parentSchema:new a.Name(\"parentSchema\")};function gG(X,Q,$){let{createErrors:Y}=X.it;if(Y===!1)return a._`{}`;return SO(X,Q,$)}function SO(X,Q,$={}){let{gen:Y,it:W}=X,J=[ZO(W,$),CO(X,$)];return kO(X,Q,J),Y.object(...J)}function ZO({errorPath:X},{instancePath:Q}){let $=Q?a.str`${X}${(0,Z8.getErrorPath)(Q,Z8.Type.Str)}`:X;return[v0.default.instancePath,(0,a.strConcat)(v0.default.instancePath,$)]}function CO({keyword:X,it:{errSchemaPath:Q}},{schemaPath:$,parentSchema:Y}){let W=Y?Q:a.str`${Q}/${X}`;if($)W=a.str`${W}${(0,Z8.getErrorPath)($,Z8.Type.Str)}`;return[H6.schemaPath,W]}function kO(X,{params:Q,message:$},Y){let{keyword:W,data:J,schemaValue:G,it:H}=X,{opts:B,propertyName:z,topSchemaRef:K,schemaPath:V}=H;if(Y.push([H6.keyword,W],[H6.params,typeof Q==\"function\"?Q(X):Q||a._`{}`]),B.messages)Y.push([H6.message,typeof $==\"function\"?$(X):$]);if(B.verbose)Y.push([H6.schema,G],[H6.parentSchema,a._`${K}${V}`],[v0.default.data,J]);if(z)Y.push([H6.propertyName,z])}});var cG=P((lG)=>{Object.defineProperty(lG,\"__esModule\",{value:!0});lG.boolOrEmptySchema=lG.topBoolOrEmptySchema=void 0;var yO=lX(),gO=p(),fO=R1(),hO={message:\"boolean schema is false\"};function uO(X){let{gen:Q,schema:$,validateName:Y}=X;if($===!1)uG(X,!1);else if(typeof $==\"object\"&&$.$async===!0)Q.return(fO.default.data);else Q.assign(gO._`${Y}.errors`,null),Q.return(!0)}lG.topBoolOrEmptySchema=uO;function lO(X,Q){let{gen:$,schema:Y}=X;if(Y===!1)$.var(Q,!1),uG(X);else $.var(Q,!0)}lG.boolOrEmptySchema=lO;function uG(X,Q){let{gen:$,data:Y}=X,W={gen:$,keyword:\"false schema\",data:Y,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:X};(0,yO.reportError)(W,hO,void 0,Q)}});var KY=P((pG)=>{Object.defineProperty(pG,\"__esModule\",{value:!0});pG.getRules=pG.isJSONType=void 0;var cO=[\"string\",\"number\",\"integer\",\"boolean\",\"null\",\"object\",\"array\"],pO=new Set(cO);function dO(X){return typeof X==\"string\"&&pO.has(X)}pG.isJSONType=dO;function iO(){let X={number:{type:\"number\",rules:[]},string:{type:\"string\",rules:[]},array:{type:\"array\",rules:[]},object:{type:\"object\",rules:[]}};return{types:{...X,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},X.number,X.string,X.array,X.object],post:{rules:[]},all:{},keywords:{}}}pG.getRules=iO});var UY=P((rG)=>{Object.defineProperty(rG,\"__esModule\",{value:!0});rG.shouldUseRule=rG.shouldUseGroup=rG.schemaHasRulesForType=void 0;function rO({schema:X,self:Q},$){let Y=Q.RULES.types[$];return Y&&Y!==!0&&iG(X,Y)}rG.schemaHasRulesForType=rO;function iG(X,Q){return Q.rules.some(($)=>nG(X,$))}rG.shouldUseGroup=iG;function nG(X,Q){var $;return X[Q.keyword]!==void 0||(($=Q.definition.implements)===null||$===void 0?void 0:$.some((Y)=>X[Y]!==void 0))}rG.shouldUseRule=nG});var mX=P((eG)=>{Object.defineProperty(eG,\"__esModule\",{value:!0});eG.reportTypeError=eG.checkDataTypes=eG.checkDataType=eG.coerceAndCheckDataType=eG.getJSONTypes=eG.getSchemaTypes=eG.DataType=void 0;var aO=KY(),sO=UY(),eO=lX(),m=p(),tG=e(),u6;(function(X){X[X.Correct=0]=\"Correct\",X[X.Wrong=1]=\"Wrong\"})(u6||(eG.DataType=u6={}));function XD(X){let Q=aG(X.type);if(Q.includes(\"null\")){if(X.nullable===!1)throw Error(\"type: null contradicts nullable: false\")}else{if(!Q.length&&X.nullable!==void 0)throw Error('\"nullable\" cannot be used without \"type\"');if(X.nullable===!0)Q.push(\"null\")}return Q}eG.getSchemaTypes=XD;function aG(X){let Q=Array.isArray(X)?X:X?[X]:[];if(Q.every(aO.isJSONType))return Q;throw Error(\"type must be JSONType or JSONType[]: \"+Q.join(\",\"))}eG.getJSONTypes=aG;function QD(X,Q){let{gen:$,data:Y,opts:W}=X,J=$D(Q,W.coerceTypes),G=Q.length>0&&!(J.length===0&&Q.length===1&&(0,sO.schemaHasRulesForType)(X,Q[0]));if(G){let H=LY(Q,Y,W.strictNumbers,u6.Wrong);$.if(H,()=>{if(J.length)YD(X,Q,J);else qY(X)})}return G}eG.coerceAndCheckDataType=QD;var sG=new Set([\"string\",\"number\",\"integer\",\"boolean\",\"null\"]);function $D(X,Q){return Q?X.filter(($)=>sG.has($)||Q===\"array\"&&$===\"array\"):[]}function YD(X,Q,$){let{gen:Y,data:W,opts:J}=X,G=Y.let(\"dataType\",m._`typeof ${W}`),H=Y.let(\"coerced\",m._`undefined`);if(J.coerceTypes===\"array\")Y.if(m._`${G} == 'object' && Array.isArray(${W}) && ${W}.length == 1`,()=>Y.assign(W,m._`${W}[0]`).assign(G,m._`typeof ${W}`).if(LY(Q,W,J.strictNumbers),()=>Y.assign(H,W)));Y.if(m._`${H} !== undefined`);for(let z of $)if(sG.has(z)||z===\"array\"&&J.coerceTypes===\"array\")B(z);Y.else(),qY(X),Y.endIf(),Y.if(m._`${H} !== undefined`,()=>{Y.assign(W,H),WD(X,H)});function B(z){switch(z){case\"string\":Y.elseIf(m._`${G} == \"number\" || ${G} == \"boolean\"`).assign(H,m._`\"\" + ${W}`).elseIf(m._`${W} === null`).assign(H,m._`\"\"`);return;case\"number\":Y.elseIf(m._`${G} == \"boolean\" || ${W} === null\n || (${G} == \"string\" && ${W} && ${W} == +${W})`).assign(H,m._`+${W}`);return;case\"integer\":Y.elseIf(m._`${G} === \"boolean\" || ${W} === null\n || (${G} === \"string\" && ${W} && ${W} == +${W} && !(${W} % 1))`).assign(H,m._`+${W}`);return;case\"boolean\":Y.elseIf(m._`${W} === \"false\" || ${W} === 0 || ${W} === null`).assign(H,!1).elseIf(m._`${W} === \"true\" || ${W} === 1`).assign(H,!0);return;case\"null\":Y.elseIf(m._`${W} === \"\" || ${W} === 0 || ${W} === false`),Y.assign(H,null);return;case\"array\":Y.elseIf(m._`${G} === \"string\" || ${G} === \"number\"\n || ${G} === \"boolean\" || ${W} === null`).assign(H,m._`[${W}]`)}}}function WD({gen:X,parentData:Q,parentDataProperty:$},Y){X.if(m._`${Q} !== undefined`,()=>X.assign(m._`${Q}[${$}]`,Y))}function VY(X,Q,$,Y=u6.Correct){let W=Y===u6.Correct?m.operators.EQ:m.operators.NEQ,J;switch(X){case\"null\":return m._`${Q} ${W} null`;case\"array\":J=m._`Array.isArray(${Q})`;break;case\"object\":J=m._`${Q} && typeof ${Q} == \"object\" && !Array.isArray(${Q})`;break;case\"integer\":J=G(m._`!(${Q} % 1) && !isNaN(${Q})`);break;case\"number\":J=G();break;default:return m._`typeof ${Q} ${W} ${X}`}return Y===u6.Correct?J:(0,m.not)(J);function G(H=m.nil){return(0,m.and)(m._`typeof ${Q} == \"number\"`,H,$?m._`isFinite(${Q})`:m.nil)}}eG.checkDataType=VY;function LY(X,Q,$,Y){if(X.length===1)return VY(X[0],Q,$,Y);let W,J=(0,tG.toHash)(X);if(J.array&&J.object){let G=m._`typeof ${Q} != \"object\"`;W=J.null?G:m._`!${Q} || ${G}`,delete J.null,delete J.array,delete J.object}else W=m.nil;if(J.number)delete J.integer;for(let G in J)W=(0,m.and)(W,VY(G,Q,$,Y));return W}eG.checkDataTypes=LY;var JD={message:({schema:X})=>`must be ${X}`,params:({schema:X,schemaValue:Q})=>typeof X==\"string\"?m._`{type: ${X}}`:m._`{type: ${Q}}`};function qY(X){let Q=GD(X);(0,eO.reportError)(Q,JD)}eG.reportTypeError=qY;function GD(X){let{gen:Q,data:$,schema:Y}=X,W=(0,tG.schemaRefOrVal)(X,Y,\"type\");return{gen:Q,keyword:\"type\",data:$,schema:Y.type,schemaCode:W,schemaValue:W,parentSchema:Y,params:{},it:X}}});var W3=P(($3)=>{Object.defineProperty($3,\"__esModule\",{value:!0});$3.assignDefaults=void 0;var l6=p(),LD=e();function qD(X,Q){let{properties:$,items:Y}=X.schema;if(Q===\"object\"&&$)for(let W in $)Q3(X,W,$[W].default);else if(Q===\"array\"&&Array.isArray(Y))Y.forEach((W,J)=>Q3(X,J,W.default))}$3.assignDefaults=qD;function Q3(X,Q,$){let{gen:Y,compositeRule:W,data:J,opts:G}=X;if($===void 0)return;let H=l6._`${J}${(0,l6.getProperty)(Q)}`;if(W){(0,LD.checkStrictMode)(X,`default is ignored for: ${H}`);return}let B=l6._`${H} === undefined`;if(G.useDefaults===\"empty\")B=l6._`${B} || ${H} === null || ${H} === \"\"`;Y.if(B,l6._`${H} = ${(0,l6.stringify)($)}`)}});var d0=P((H3)=>{Object.defineProperty(H3,\"__esModule\",{value:!0});H3.validateUnion=H3.validateArray=H3.usePattern=H3.callValidateCode=H3.schemaProperties=H3.allSchemaProperties=H3.noPropertyInData=H3.propertyInData=H3.isOwnProperty=H3.hasPropFunc=H3.reportMissingProp=H3.checkMissingProp=H3.checkReportMissingProp=void 0;var G0=p(),FY=e(),p1=R1(),FD=e();function ND(X,Q){let{gen:$,data:Y,it:W}=X;$.if(OY($,Y,Q,W.opts.ownProperties),()=>{X.setParams({missingProperty:G0._`${Q}`},!0),X.error()})}H3.checkReportMissingProp=ND;function OD({gen:X,data:Q,it:{opts:$}},Y,W){return(0,G0.or)(...Y.map((J)=>(0,G0.and)(OY(X,Q,J,$.ownProperties),G0._`${W} = ${J}`)))}H3.checkMissingProp=OD;function DD(X,Q){X.setParams({missingProperty:Q},!0),X.error()}H3.reportMissingProp=DD;function J3(X){return X.scopeValue(\"func\",{ref:Object.prototype.hasOwnProperty,code:G0._`Object.prototype.hasOwnProperty`})}H3.hasPropFunc=J3;function NY(X,Q,$){return G0._`${J3(X)}.call(${Q}, ${$})`}H3.isOwnProperty=NY;function wD(X,Q,$,Y){let W=G0._`${Q}${(0,G0.getProperty)($)} !== undefined`;return Y?G0._`${W} && ${NY(X,Q,$)}`:W}H3.propertyInData=wD;function OY(X,Q,$,Y){let W=G0._`${Q}${(0,G0.getProperty)($)} === undefined`;return Y?(0,G0.or)(W,(0,G0.not)(NY(X,Q,$))):W}H3.noPropertyInData=OY;function G3(X){return X?Object.keys(X).filter((Q)=>Q!==\"__proto__\"):[]}H3.allSchemaProperties=G3;function AD(X,Q){return G3(Q).filter(($)=>!(0,FY.alwaysValidSchema)(X,Q[$]))}H3.schemaProperties=AD;function MD({schemaCode:X,data:Q,it:{gen:$,topSchemaRef:Y,schemaPath:W,errorPath:J},it:G},H,B,z){let K=z?G0._`${X}, ${Q}, ${Y}${W}`:Q,V=[[p1.default.instancePath,(0,G0.strConcat)(p1.default.instancePath,J)],[p1.default.parentData,G.parentData],[p1.default.parentDataProperty,G.parentDataProperty],[p1.default.rootData,p1.default.rootData]];if(G.opts.dynamicRef)V.push([p1.default.dynamicAnchors,p1.default.dynamicAnchors]);let L=G0._`${K}, ${$.object(...V)}`;return B!==G0.nil?G0._`${H}.call(${B}, ${L})`:G0._`${H}(${L})`}H3.callValidateCode=MD;var jD=G0._`new RegExp`;function RD({gen:X,it:{opts:Q}},$){let Y=Q.unicodeRegExp?\"u\":\"\",{regExp:W}=Q.code,J=W($,Y);return X.scopeValue(\"pattern\",{key:J.toString(),ref:J,code:G0._`${W.code===\"new RegExp\"?jD:(0,FD.useFunc)(X,W)}(${$}, ${Y})`})}H3.usePattern=RD;function ID(X){let{gen:Q,data:$,keyword:Y,it:W}=X,J=Q.name(\"valid\");if(W.allErrors){let H=Q.let(\"valid\",!0);return G(()=>Q.assign(H,!1)),H}return Q.var(J,!0),G(()=>Q.break()),J;function G(H){let B=Q.const(\"len\",G0._`${$}.length`);Q.forRange(\"i\",0,B,(z)=>{X.subschema({keyword:Y,dataProp:z,dataPropType:FY.Type.Num},J),Q.if((0,G0.not)(J),H)})}}H3.validateArray=ID;function ED(X){let{gen:Q,schema:$,keyword:Y,it:W}=X;if(!Array.isArray($))throw Error(\"ajv implementation error\");if($.some((B)=>(0,FY.alwaysValidSchema)(W,B))&&!W.opts.unevaluated)return;let G=Q.let(\"valid\",!1),H=Q.name(\"_valid\");Q.block(()=>$.forEach((B,z)=>{let K=X.subschema({keyword:Y,schemaProp:z,compositeRule:!0},H);if(Q.assign(G,G0._`${G} || ${H}`),!X.mergeValidEvaluated(K,H))Q.if((0,G0.not)(G))})),X.result(G,()=>X.reset(),()=>X.error(!0))}H3.validateUnion=ED});var L3=P((U3)=>{Object.defineProperty(U3,\"__esModule\",{value:!0});U3.validateKeywordUsage=U3.validSchemaType=U3.funcKeywordCode=U3.macroKeywordCode=void 0;var T0=p(),B6=R1(),fD=d0(),hD=lX();function uD(X,Q){let{gen:$,keyword:Y,schema:W,parentSchema:J,it:G}=X,H=Q.macro.call(G.self,W,J,G),B=K3($,Y,H);if(G.opts.validateSchema!==!1)G.self.validateSchema(H,!0);let z=$.name(\"valid\");X.subschema({schema:H,schemaPath:T0.nil,errSchemaPath:`${G.errSchemaPath}/${Y}`,topSchemaRef:B,compositeRule:!0},z),X.pass(z,()=>X.error(!0))}U3.macroKeywordCode=uD;function lD(X,Q){var $;let{gen:Y,keyword:W,schema:J,parentSchema:G,$data:H,it:B}=X;cD(B,Q);let z=!H&&Q.compile?Q.compile.call(B.self,J,G,B):Q.validate,K=K3(Y,W,z),V=Y.let(\"valid\");X.block$data(V,L),X.ok(($=Q.valid)!==null&&$!==void 0?$:V);function L(){if(Q.errors===!1){if(q(),Q.modifying)z3(X);N(()=>X.error())}else{let w=Q.async?U():F();if(Q.modifying)z3(X);N(()=>mD(X,w))}}function U(){let w=Y.let(\"ruleErrs\",null);return Y.try(()=>q(T0._`await `),(M)=>Y.assign(V,!1).if(T0._`${M} instanceof ${B.ValidationError}`,()=>Y.assign(w,T0._`${M}.errors`),()=>Y.throw(M))),w}function F(){let w=T0._`${K}.errors`;return Y.assign(w,null),q(T0.nil),w}function q(w=Q.async?T0._`await `:T0.nil){let M=B.opts.passContext?B6.default.this:B6.default.self,R=!((\"compile\"in Q)&&!H||Q.schema===!1);Y.assign(V,T0._`${w}${(0,fD.callValidateCode)(X,K,M,R)}`,Q.modifying)}function N(w){var M;Y.if((0,T0.not)((M=Q.valid)!==null&&M!==void 0?M:V),w)}}U3.funcKeywordCode=lD;function z3(X){let{gen:Q,data:$,it:Y}=X;Q.if(Y.parentData,()=>Q.assign($,T0._`${Y.parentData}[${Y.parentDataProperty}]`))}function mD(X,Q){let{gen:$}=X;$.if(T0._`Array.isArray(${Q})`,()=>{$.assign(B6.default.vErrors,T0._`${B6.default.vErrors} === null ? ${Q} : ${B6.default.vErrors}.concat(${Q})`).assign(B6.default.errors,T0._`${B6.default.vErrors}.length`),(0,hD.extendErrors)(X)},()=>X.error())}function cD({schemaEnv:X},Q){if(Q.async&&!X.$async)throw Error(\"async keyword in sync schema\")}function K3(X,Q,$){if($===void 0)throw Error(`keyword \"${Q}\" failed to compile`);return X.scopeValue(\"keyword\",typeof $==\"function\"?{ref:$}:{ref:$,code:(0,T0.stringify)($)})}function pD(X,Q,$=!1){return!Q.length||Q.some((Y)=>Y===\"array\"?Array.isArray(X):Y===\"object\"?X&&typeof X==\"object\"&&!Array.isArray(X):typeof X==Y||$&&typeof X>\"u\")}U3.validSchemaType=pD;function dD({schema:X,opts:Q,self:$,errSchemaPath:Y},W,J){if(Array.isArray(W.keyword)?!W.keyword.includes(J):W.keyword!==J)throw Error(\"ajv implementation error\");let G=W.dependencies;if(G===null||G===void 0?void 0:G.some((H)=>!Object.prototype.hasOwnProperty.call(X,H)))throw Error(`parent schema must have dependencies of ${J}: ${G.join(\",\")}`);if(W.validateSchema){if(!W.validateSchema(X[J])){let B=`keyword \"${J}\" value is invalid at path \"${Y}\": `+$.errorsText(W.validateSchema.errors);if(Q.validateSchema===\"log\")$.logger.error(B);else throw Error(B)}}}U3.validateKeywordUsage=dD});var O3=P((F3)=>{Object.defineProperty(F3,\"__esModule\",{value:!0});F3.extendSubschemaMode=F3.extendSubschemaData=F3.getSubschema=void 0;var K1=p(),q3=e();function oD(X,{keyword:Q,schemaProp:$,schema:Y,schemaPath:W,errSchemaPath:J,topSchemaRef:G}){if(Q!==void 0&&Y!==void 0)throw Error('both \"keyword\" and \"schema\" passed, only one allowed');if(Q!==void 0){let H=X.schema[Q];return $===void 0?{schema:H,schemaPath:K1._`${X.schemaPath}${(0,K1.getProperty)(Q)}`,errSchemaPath:`${X.errSchemaPath}/${Q}`}:{schema:H[$],schemaPath:K1._`${X.schemaPath}${(0,K1.getProperty)(Q)}${(0,K1.getProperty)($)}`,errSchemaPath:`${X.errSchemaPath}/${Q}/${(0,q3.escapeFragment)($)}`}}if(Y!==void 0){if(W===void 0||J===void 0||G===void 0)throw Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');return{schema:Y,schemaPath:W,topSchemaRef:G,errSchemaPath:J}}throw Error('either \"keyword\" or \"schema\" must be passed')}F3.getSubschema=oD;function tD(X,Q,{dataProp:$,dataPropType:Y,data:W,dataTypes:J,propertyName:G}){if(W!==void 0&&$!==void 0)throw Error('both \"data\" and \"dataProp\" passed, only one allowed');let{gen:H}=Q;if($!==void 0){let{errorPath:z,dataPathArr:K,opts:V}=Q,L=H.let(\"data\",K1._`${Q.data}${(0,K1.getProperty)($)}`,!0);B(L),X.errorPath=K1.str`${z}${(0,q3.getErrorPath)($,Y,V.jsPropertySyntax)}`,X.parentDataProperty=K1._`${$}`,X.dataPathArr=[...K,X.parentDataProperty]}if(W!==void 0){let z=W instanceof K1.Name?W:H.let(\"data\",W,!0);if(B(z),G!==void 0)X.propertyName=G}if(J)X.dataTypes=J;function B(z){X.data=z,X.dataLevel=Q.dataLevel+1,X.dataTypes=[],Q.definedProperties=new Set,X.parentData=Q.data,X.dataNames=[...Q.dataNames,z]}}F3.extendSubschemaData=tD;function aD(X,{jtdDiscriminator:Q,jtdMetadata:$,compositeRule:Y,createErrors:W,allErrors:J}){if(Y!==void 0)X.compositeRule=Y;if(W!==void 0)X.createErrors=W;if(J!==void 0)X.allErrors=J;X.jtdDiscriminator=Q,X.jtdMetadata=$}F3.extendSubschemaMode=aD});var DY=P(($T,D3)=>{D3.exports=function X(Q,$){if(Q===$)return!0;if(Q&&$&&typeof Q==\"object\"&&typeof $==\"object\"){if(Q.constructor!==$.constructor)return!1;var Y,W,J;if(Array.isArray(Q)){if(Y=Q.length,Y!=$.length)return!1;for(W=Y;W--!==0;)if(!X(Q[W],$[W]))return!1;return!0}if(Q.constructor===RegExp)return Q.source===$.source&&Q.flags===$.flags;if(Q.valueOf!==Object.prototype.valueOf)return Q.valueOf()===$.valueOf();if(Q.toString!==Object.prototype.toString)return Q.toString()===$.toString();if(J=Object.keys(Q),Y=J.length,Y!==Object.keys($).length)return!1;for(W=Y;W--!==0;)if(!Object.prototype.hasOwnProperty.call($,J[W]))return!1;for(W=Y;W--!==0;){var G=J[W];if(!X(Q[G],$[G]))return!1}return!0}return Q!==Q&&$!==$}});var A3=P((YT,w3)=>{var d1=w3.exports=function(X,Q,$){if(typeof Q==\"function\")$=Q,Q={};$=Q.cb||$;var Y=typeof $==\"function\"?$:$.pre||function(){},W=$.post||function(){};C8(Q,Y,W,X,\"\",X)};d1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};d1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};d1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};d1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function C8(X,Q,$,Y,W,J,G,H,B,z){if(Y&&typeof Y==\"object\"&&!Array.isArray(Y)){Q(Y,W,J,G,H,B,z);for(var K in Y){var V=Y[K];if(Array.isArray(V)){if(K in d1.arrayKeywords)for(var L=0;L<V.length;L++)C8(X,Q,$,V[L],W+\"/\"+K+\"/\"+L,J,W,K,Y,L)}else if(K in d1.propsKeywords){if(V&&typeof V==\"object\")for(var U in V)C8(X,Q,$,V[U],W+\"/\"+K+\"/\"+Xw(U),J,W,K,Y,U)}else if(K in d1.keywords||X.allKeys&&!(K in d1.skipKeywords))C8(X,Q,$,V,W+\"/\"+K,J,W,K,Y)}$(Y,W,J,G,H,B,z)}}function Xw(X){return X.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")}});var cX=P((I3)=>{Object.defineProperty(I3,\"__esModule\",{value:!0});I3.getSchemaRefs=I3.resolveUrl=I3.normalizeId=I3._getFullPath=I3.getFullPath=I3.inlineRef=void 0;var Qw=e(),$w=DY(),Yw=A3(),Ww=new Set([\"type\",\"format\",\"pattern\",\"maxLength\",\"minLength\",\"maxProperties\",\"minProperties\",\"maxItems\",\"minItems\",\"maximum\",\"minimum\",\"uniqueItems\",\"multipleOf\",\"required\",\"enum\",\"const\"]);function Jw(X,Q=!0){if(typeof X==\"boolean\")return!0;if(Q===!0)return!wY(X);if(!Q)return!1;return M3(X)<=Q}I3.inlineRef=Jw;var Gw=new Set([\"$ref\",\"$recursiveRef\",\"$recursiveAnchor\",\"$dynamicRef\",\"$dynamicAnchor\"]);function wY(X){for(let Q in X){if(Gw.has(Q))return!0;let $=X[Q];if(Array.isArray($)&&$.some(wY))return!0;if(typeof $==\"object\"&&wY($))return!0}return!1}function M3(X){let Q=0;for(let $ in X){if($===\"$ref\")return 1/0;if(Q++,Ww.has($))continue;if(typeof X[$]==\"object\")(0,Qw.eachItem)(X[$],(Y)=>Q+=M3(Y));if(Q===1/0)return 1/0}return Q}function j3(X,Q=\"\",$){if($!==!1)Q=m6(Q);let Y=X.parse(Q);return R3(X,Y)}I3.getFullPath=j3;function R3(X,Q){return X.serialize(Q).split(\"#\")[0]+\"#\"}I3._getFullPath=R3;var Hw=/#\\/?$/;function m6(X){return X?X.replace(Hw,\"\"):\"\"}I3.normalizeId=m6;function Bw(X,Q,$){return $=m6($),X.resolve(Q,$)}I3.resolveUrl=Bw;var zw=/^[a-z_][-a-z0-9._]*$/i;function Kw(X,Q){if(typeof X==\"boolean\")return{};let{schemaId:$,uriResolver:Y}=this.opts,W=m6(X[$]||Q),J={\"\":W},G=j3(Y,W,!1),H={},B=new Set;return Yw(X,{allKeys:!0},(V,L,U,F)=>{if(F===void 0)return;let q=G+L,N=J[F];if(typeof V[$]==\"string\")N=w.call(this,V[$]);M.call(this,V.$anchor),M.call(this,V.$dynamicAnchor),J[L]=N;function w(R){let S=this.opts.uriResolver.resolve;if(R=m6(N?S(N,R):R),B.has(R))throw K(R);B.add(R);let C=this.refs[R];if(typeof C==\"string\")C=this.refs[C];if(typeof C==\"object\")z(V,C.schema,R);else if(R!==m6(q))if(R[0]===\"#\")z(V,H[R],R),H[R]=V;else this.refs[R]=q;return R}function M(R){if(typeof R==\"string\"){if(!zw.test(R))throw Error(`invalid anchor \"${R}\"`);w.call(this,`#${R}`)}}}),H;function z(V,L,U){if(L!==void 0&&!$w(V,L))throw K(U)}function K(V){return Error(`reference \"${V}\" resolves to more than one schema`)}}I3.getSchemaRefs=Kw});var iX=P((u3)=>{Object.defineProperty(u3,\"__esModule\",{value:!0});u3.getData=u3.KeywordCxt=u3.validateFunctionCode=void 0;var C3=cG(),b3=mX(),MY=UY(),k8=mX(),Nw=W3(),dX=L3(),AY=O3(),_=p(),u=R1(),Ow=cX(),I1=e(),pX=lX();function Dw(X){if(T3(X)){if(_3(X),v3(X)){Mw(X);return}}k3(X,()=>(0,C3.topBoolOrEmptySchema)(X))}u3.validateFunctionCode=Dw;function k3({gen:X,validateName:Q,schema:$,schemaEnv:Y,opts:W},J){if(W.code.es5)X.func(Q,_._`${u.default.data}, ${u.default.valCxt}`,Y.$async,()=>{X.code(_._`\"use strict\"; ${P3($,W)}`),Aw(X,W),X.code(J)});else X.func(Q,_._`${u.default.data}, ${ww(W)}`,Y.$async,()=>X.code(P3($,W)).code(J))}function ww(X){return _._`{${u.default.instancePath}=\"\", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${X.dynamicRef?_._`, ${u.default.dynamicAnchors}={}`:_.nil}}={}`}function Aw(X,Q){X.if(u.default.valCxt,()=>{if(X.var(u.default.instancePath,_._`${u.default.valCxt}.${u.default.instancePath}`),X.var(u.default.parentData,_._`${u.default.valCxt}.${u.default.parentData}`),X.var(u.default.parentDataProperty,_._`${u.default.valCxt}.${u.default.parentDataProperty}`),X.var(u.default.rootData,_._`${u.default.valCxt}.${u.default.rootData}`),Q.dynamicRef)X.var(u.default.dynamicAnchors,_._`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{if(X.var(u.default.instancePath,_._`\"\"`),X.var(u.default.parentData,_._`undefined`),X.var(u.default.parentDataProperty,_._`undefined`),X.var(u.default.rootData,u.default.data),Q.dynamicRef)X.var(u.default.dynamicAnchors,_._`{}`)})}function Mw(X){let{schema:Q,opts:$,gen:Y}=X;k3(X,()=>{if($.$comment&&Q.$comment)y3(X);if(bw(X),Y.let(u.default.vErrors,null),Y.let(u.default.errors,0),$.unevaluated)jw(X);x3(X),Zw(X)});return}function jw(X){let{gen:Q,validateName:$}=X;X.evaluated=Q.const(\"evaluated\",_._`${$}.evaluated`),Q.if(_._`${X.evaluated}.dynamicProps`,()=>Q.assign(_._`${X.evaluated}.props`,_._`undefined`)),Q.if(_._`${X.evaluated}.dynamicItems`,()=>Q.assign(_._`${X.evaluated}.items`,_._`undefined`))}function P3(X,Q){let $=typeof X==\"object\"&&X[Q.schemaId];return $&&(Q.code.source||Q.code.process)?_._`/*# sourceURL=${$} */`:_.nil}function Rw(X,Q){if(T3(X)){if(_3(X),v3(X)){Iw(X,Q);return}}(0,C3.boolOrEmptySchema)(X,Q)}function v3({schema:X,self:Q}){if(typeof X==\"boolean\")return!X;for(let $ in X)if(Q.RULES.all[$])return!0;return!1}function T3(X){return typeof X.schema!=\"boolean\"}function Iw(X,Q){let{schema:$,gen:Y,opts:W}=X;if(W.$comment&&$.$comment)y3(X);Pw(X),Sw(X);let J=Y.const(\"_errs\",u.default.errors);x3(X,J),Y.var(Q,_._`${J} === ${u.default.errors}`)}function _3(X){(0,I1.checkUnknownRules)(X),Ew(X)}function x3(X,Q){if(X.opts.jtd)return S3(X,[],!1,Q);let $=(0,b3.getSchemaTypes)(X.schema),Y=(0,b3.coerceAndCheckDataType)(X,$);S3(X,$,!Y,Q)}function Ew(X){let{schema:Q,errSchemaPath:$,opts:Y,self:W}=X;if(Q.$ref&&Y.ignoreKeywordsWithRef&&(0,I1.schemaHasRulesButRef)(Q,W.RULES))W.logger.warn(`$ref: keywords ignored in schema at path \"${$}\"`)}function bw(X){let{schema:Q,opts:$}=X;if(Q.default!==void 0&&$.useDefaults&&$.strictSchema)(0,I1.checkStrictMode)(X,\"default is ignored in the schema root\")}function Pw(X){let Q=X.schema[X.opts.schemaId];if(Q)X.baseId=(0,Ow.resolveUrl)(X.opts.uriResolver,X.baseId,Q)}function Sw(X){if(X.schema.$async&&!X.schemaEnv.$async)throw Error(\"async schema in sync schema\")}function y3({gen:X,schemaEnv:Q,schema:$,errSchemaPath:Y,opts:W}){let J=$.$comment;if(W.$comment===!0)X.code(_._`${u.default.self}.logger.log(${J})`);else if(typeof W.$comment==\"function\"){let G=_.str`${Y}/$comment`,H=X.scopeValue(\"root\",{ref:Q.root});X.code(_._`${u.default.self}.opts.$comment(${J}, ${G}, ${H}.schema)`)}}function Zw(X){let{gen:Q,schemaEnv:$,validateName:Y,ValidationError:W,opts:J}=X;if($.$async)Q.if(_._`${u.default.errors} === 0`,()=>Q.return(u.default.data),()=>Q.throw(_._`new ${W}(${u.default.vErrors})`));else{if(Q.assign(_._`${Y}.errors`,u.default.vErrors),J.unevaluated)Cw(X);Q.return(_._`${u.default.errors} === 0`)}}function Cw({gen:X,evaluated:Q,props:$,items:Y}){if($ instanceof _.Name)X.assign(_._`${Q}.props`,$);if(Y instanceof _.Name)X.assign(_._`${Q}.items`,Y)}function S3(X,Q,$,Y){let{gen:W,schema:J,data:G,allErrors:H,opts:B,self:z}=X,{RULES:K}=z;if(J.$ref&&(B.ignoreKeywordsWithRef||!(0,I1.schemaHasRulesButRef)(J,K))){W.block(()=>f3(X,\"$ref\",K.all.$ref.definition));return}if(!B.jtd)kw(X,Q);W.block(()=>{for(let L of K.rules)V(L);V(K.post)});function V(L){if(!(0,MY.shouldUseGroup)(J,L))return;if(L.type){if(W.if((0,k8.checkDataType)(L.type,G,B.strictNumbers)),Z3(X,L),Q.length===1&&Q[0]===L.type&&$)W.else(),(0,k8.reportTypeError)(X);W.endIf()}else Z3(X,L);if(!H)W.if(_._`${u.default.errors} === ${Y||0}`)}}function Z3(X,Q){let{gen:$,schema:Y,opts:{useDefaults:W}}=X;if(W)(0,Nw.assignDefaults)(X,Q.type);$.block(()=>{for(let J of Q.rules)if((0,MY.shouldUseRule)(Y,J))f3(X,J.keyword,J.definition,Q.type)})}function kw(X,Q){if(X.schemaEnv.meta||!X.opts.strictTypes)return;if(vw(X,Q),!X.opts.allowUnionTypes)Tw(X,Q);_w(X,X.dataTypes)}function vw(X,Q){if(!Q.length)return;if(!X.dataTypes.length){X.dataTypes=Q;return}Q.forEach(($)=>{if(!g3(X.dataTypes,$))jY(X,`type \"${$}\" not allowed by context \"${X.dataTypes.join(\",\")}\"`)}),yw(X,Q)}function Tw(X,Q){if(Q.length>1&&!(Q.length===2&&Q.includes(\"null\")))jY(X,\"use allowUnionTypes to allow union type keyword\")}function _w(X,Q){let $=X.self.RULES.all;for(let Y in $){let W=$[Y];if(typeof W==\"object\"&&(0,MY.shouldUseRule)(X.schema,W)){let{type:J}=W.definition;if(J.length&&!J.some((G)=>xw(Q,G)))jY(X,`missing type \"${J.join(\",\")}\" for keyword \"${Y}\"`)}}}function xw(X,Q){return X.includes(Q)||Q===\"number\"&&X.includes(\"integer\")}function g3(X,Q){return X.includes(Q)||Q===\"integer\"&&X.includes(\"number\")}function yw(X,Q){let $=[];for(let Y of X.dataTypes)if(g3(Q,Y))$.push(Y);else if(Q.includes(\"integer\")&&Y===\"number\")$.push(\"integer\");X.dataTypes=$}function jY(X,Q){let $=X.schemaEnv.baseId+X.errSchemaPath;Q+=` at \"${$}\" (strictTypes)`,(0,I1.checkStrictMode)(X,Q,X.opts.strictTypes)}class RY{constructor(X,Q,$){if((0,dX.validateKeywordUsage)(X,Q,$),this.gen=X.gen,this.allErrors=X.allErrors,this.keyword=$,this.data=X.data,this.schema=X.schema[$],this.$data=Q.$data&&X.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,I1.schemaRefOrVal)(X,this.schema,$,this.$data),this.schemaType=Q.schemaType,this.parentSchema=X.schema,this.params={},this.it=X,this.def=Q,this.$data)this.schemaCode=X.gen.const(\"vSchema\",h3(this.$data,X));else if(this.schemaCode=this.schemaValue,!(0,dX.validSchemaType)(this.schema,Q.schemaType,Q.allowUndefined))throw Error(`${$} value must be ${JSON.stringify(Q.schemaType)}`);if(\"code\"in Q?Q.trackErrors:Q.errors!==!1)this.errsCount=X.gen.const(\"_errs\",u.default.errors)}result(X,Q,$){this.failResult((0,_.not)(X),Q,$)}failResult(X,Q,$){if(this.gen.if(X),$)$();else this.error();if(Q){if(this.gen.else(),Q(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass(X,Q){this.failResult((0,_.not)(X),void 0,Q)}fail(X){if(X===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if(X),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(X){if(!this.$data)return this.fail(X);let{schemaCode:Q}=this;this.fail(_._`${Q} !== undefined && (${(0,_.or)(this.invalid$data(),X)})`)}error(X,Q,$){if(Q){this.setParams(Q),this._error(X,$),this.setParams({});return}this._error(X,$)}_error(X,Q){(X?pX.reportExtraError:pX.reportError)(this,this.def.error,Q)}$dataError(){(0,pX.reportError)(this,this.def.$dataError||pX.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add \"trackErrors\" to keyword definition');(0,pX.resetErrorsCount)(this.gen,this.errsCount)}ok(X){if(!this.allErrors)this.gen.if(X)}setParams(X,Q){if(Q)Object.assign(this.params,X);else this.params=X}block$data(X,Q,$=_.nil){this.gen.block(()=>{this.check$data(X,$),Q()})}check$data(X=_.nil,Q=_.nil){if(!this.$data)return;let{gen:$,schemaCode:Y,schemaType:W,def:J}=this;if($.if((0,_.or)(_._`${Y} === undefined`,Q)),X!==_.nil)$.assign(X,!0);if(W.length||J.validateSchema){if($.elseIf(this.invalid$data()),this.$dataError(),X!==_.nil)$.assign(X,!1)}$.else()}invalid$data(){let{gen:X,schemaCode:Q,schemaType:$,def:Y,it:W}=this;return(0,_.or)(J(),G());function J(){if($.length){if(!(Q instanceof _.Name))throw Error(\"ajv implementation error\");let H=Array.isArray($)?$:[$];return _._`${(0,k8.checkDataTypes)(H,Q,W.opts.strictNumbers,k8.DataType.Wrong)}`}return _.nil}function G(){if(Y.validateSchema){let H=X.scopeValue(\"validate$data\",{ref:Y.validateSchema});return _._`!${H}(${Q})`}return _.nil}}subschema(X,Q){let $=(0,AY.getSubschema)(this.it,X);(0,AY.extendSubschemaData)($,this.it,X),(0,AY.extendSubschemaMode)($,X);let Y={...this.it,...$,items:void 0,props:void 0};return Rw(Y,Q),Y}mergeEvaluated(X,Q){let{it:$,gen:Y}=this;if(!$.opts.unevaluated)return;if($.props!==!0&&X.props!==void 0)$.props=I1.mergeEvaluated.props(Y,X.props,$.props,Q);if($.items!==!0&&X.items!==void 0)$.items=I1.mergeEvaluated.items(Y,X.items,$.items,Q)}mergeValidEvaluated(X,Q){let{it:$,gen:Y}=this;if($.opts.unevaluated&&($.props!==!0||$.items!==!0))return Y.if(Q,()=>this.mergeEvaluated(X,_.Name)),!0}}u3.KeywordCxt=RY;function f3(X,Q,$,Y){let W=new RY(X,$,Q);if(\"code\"in $)$.code(W,Y);else if(W.$data&&$.validate)(0,dX.funcKeywordCode)(W,$);else if(\"macro\"in $)(0,dX.macroKeywordCode)(W,$);else if($.compile||$.validate)(0,dX.funcKeywordCode)(W,$)}var gw=/^\\/(?:[^~]|~0|~1)*$/,fw=/^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;function h3(X,{dataLevel:Q,dataNames:$,dataPathArr:Y}){let W,J;if(X===\"\")return u.default.rootData;if(X[0]===\"/\"){if(!gw.test(X))throw Error(`Invalid JSON-pointer: ${X}`);W=X,J=u.default.rootData}else{let z=fw.exec(X);if(!z)throw Error(`Invalid JSON-pointer: ${X}`);let K=+z[1];if(W=z[2],W===\"#\"){if(K>=Q)throw Error(B(\"property/index\",K));return Y[Q-K]}if(K>Q)throw Error(B(\"data\",K));if(J=$[Q-K],!W)return J}let G=J,H=W.split(\"/\");for(let z of H)if(z)J=_._`${J}${(0,_.getProperty)((0,I1.unescapeJsonPointer)(z))}`,G=_._`${G} && ${J}`;return G;function B(z,K){return`Cannot access ${z} ${K} levels up, current level is ${Q}`}}u3.getData=h3});var v8=P((c3)=>{Object.defineProperty(c3,\"__esModule\",{value:!0});class m3 extends Error{constructor(X){super(\"validation failed\");this.errors=X,this.ajv=this.validation=!0}}c3.default=m3});var nX=P((d3)=>{Object.defineProperty(d3,\"__esModule\",{value:!0});var IY=cX();class p3 extends Error{constructor(X,Q,$,Y){super(Y||`can't resolve reference ${$} from id ${Q}`);this.missingRef=(0,IY.resolveUrl)(X,Q,$),this.missingSchema=(0,IY.normalizeId)((0,IY.getFullPath)(X,this.missingRef))}}d3.default=p3});var _8=P((r3)=>{Object.defineProperty(r3,\"__esModule\",{value:!0});r3.resolveSchema=r3.getCompilingSchema=r3.resolveRef=r3.compileSchema=r3.SchemaEnv=void 0;var X1=p(),cw=v8(),z6=R1(),Q1=cX(),i3=e(),pw=iX();class rX{constructor(X){var Q;this.refs={},this.dynamicAnchors={};let $;if(typeof X.schema==\"object\")$=X.schema;this.schema=X.schema,this.schemaId=X.schemaId,this.root=X.root||this,this.baseId=(Q=X.baseId)!==null&&Q!==void 0?Q:(0,Q1.normalizeId)($===null||$===void 0?void 0:$[X.schemaId||\"$id\"]),this.schemaPath=X.schemaPath,this.localRefs=X.localRefs,this.meta=X.meta,this.$async=$===null||$===void 0?void 0:$.$async,this.refs={}}}r3.SchemaEnv=rX;function bY(X){let Q=n3.call(this,X);if(Q)return Q;let $=(0,Q1.getFullPath)(this.opts.uriResolver,X.root.baseId),{es5:Y,lines:W}=this.opts.code,{ownProperties:J}=this.opts,G=new X1.CodeGen(this.scope,{es5:Y,lines:W,ownProperties:J}),H;if(X.$async)H=G.scopeValue(\"Error\",{ref:cw.default,code:X1._`require(\"ajv/dist/runtime/validation_error\").default`});let B=G.scopeName(\"validate\");X.validateName=B;let z={gen:G,allErrors:this.opts.allErrors,data:z6.default.data,parentData:z6.default.parentData,parentDataProperty:z6.default.parentDataProperty,dataNames:[z6.default.data],dataPathArr:[X1.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:G.scopeValue(\"schema\",this.opts.code.source===!0?{ref:X.schema,code:(0,X1.stringify)(X.schema)}:{ref:X.schema}),validateName:B,ValidationError:H,schema:X.schema,schemaEnv:X,rootId:$,baseId:X.baseId||$,schemaPath:X1.nil,errSchemaPath:X.schemaPath||(this.opts.jtd?\"\":\"#\"),errorPath:X1._`\"\"`,opts:this.opts,self:this},K;try{this._compilations.add(X),(0,pw.validateFunctionCode)(z),G.optimize(this.opts.code.optimize);let V=G.toString();if(K=`${G.scopeRefs(z6.default.scope)}return ${V}`,this.opts.code.process)K=this.opts.code.process(K,X);let U=Function(`${z6.default.self}`,`${z6.default.scope}`,K)(this,this.scope.get());if(this.scope.value(B,{ref:U}),U.errors=null,U.schema=X.schema,U.schemaEnv=X,X.$async)U.$async=!0;if(this.opts.code.source===!0)U.source={validateName:B,validateCode:V,scopeValues:G._values};if(this.opts.unevaluated){let{props:F,items:q}=z;if(U.evaluated={props:F instanceof X1.Name?void 0:F,items:q instanceof X1.Name?void 0:q,dynamicProps:F instanceof X1.Name,dynamicItems:q instanceof X1.Name},U.source)U.source.evaluated=(0,X1.stringify)(U.evaluated)}return X.validate=U,X}catch(V){if(delete X.validate,delete X.validateName,K)this.logger.error(\"Error compiling schema, function code:\",K);throw V}finally{this._compilations.delete(X)}}r3.compileSchema=bY;function dw(X,Q,$){var Y;$=(0,Q1.resolveUrl)(this.opts.uriResolver,Q,$);let W=X.refs[$];if(W)return W;let J=rw.call(this,X,$);if(J===void 0){let G=(Y=X.localRefs)===null||Y===void 0?void 0:Y[$],{schemaId:H}=this.opts;if(G)J=new rX({schema:G,schemaId:H,root:X,baseId:Q})}if(J===void 0)return;return X.refs[$]=iw.call(this,J)}r3.resolveRef=dw;function iw(X){if((0,Q1.inlineRef)(X.schema,this.opts.inlineRefs))return X.schema;return X.validate?X:bY.call(this,X)}function n3(X){for(let Q of this._compilations)if(nw(Q,X))return Q}r3.getCompilingSchema=n3;function nw(X,Q){return X.schema===Q.schema&&X.root===Q.root&&X.baseId===Q.baseId}function rw(X,Q){let $;while(typeof($=this.refs[Q])==\"string\")Q=$;return $||this.schemas[Q]||T8.call(this,X,Q)}function T8(X,Q){let $=this.opts.uriResolver.parse(Q),Y=(0,Q1._getFullPath)(this.opts.uriResolver,$),W=(0,Q1.getFullPath)(this.opts.uriResolver,X.baseId,void 0);if(Object.keys(X.schema).length>0&&Y===W)return EY.call(this,$,X);let J=(0,Q1.normalizeId)(Y),G=this.refs[J]||this.schemas[J];if(typeof G==\"string\"){let H=T8.call(this,X,G);if(typeof(H===null||H===void 0?void 0:H.schema)!==\"object\")return;return EY.call(this,$,H)}if(typeof(G===null||G===void 0?void 0:G.schema)!==\"object\")return;if(!G.validate)bY.call(this,G);if(J===(0,Q1.normalizeId)(Q)){let{schema:H}=G,{schemaId:B}=this.opts,z=H[B];if(z)W=(0,Q1.resolveUrl)(this.opts.uriResolver,W,z);return new rX({schema:H,schemaId:B,root:X,baseId:W})}return EY.call(this,$,G)}r3.resolveSchema=T8;var ow=new Set([\"properties\",\"patternProperties\",\"enum\",\"dependencies\",\"definitions\"]);function EY(X,{baseId:Q,schema:$,root:Y}){var W;if(((W=X.fragment)===null||W===void 0?void 0:W[0])!==\"/\")return;for(let H of X.fragment.slice(1).split(\"/\")){if(typeof $===\"boolean\")return;let B=$[(0,i3.unescapeFragment)(H)];if(B===void 0)return;$=B;let z=typeof $===\"object\"&&$[this.opts.schemaId];if(!ow.has(H)&&z)Q=(0,Q1.resolveUrl)(this.opts.uriResolver,Q,z)}let J;if(typeof $!=\"boolean\"&&$.$ref&&!(0,i3.schemaHasRulesButRef)($,this.RULES)){let H=(0,Q1.resolveUrl)(this.opts.uriResolver,Q,$.$ref);J=T8.call(this,Y,H)}let{schemaId:G}=this.opts;if(J=J||new rX({schema:$,schemaId:G,root:Y,baseId:Q}),J.schema!==J.root.schema)return J;return}});var t3=P((zT,XA)=>{XA.exports={$id:\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",description:\"Meta-schema for $data reference (JSON AnySchema extension proposal)\",type:\"object\",required:[\"$data\"],properties:{$data:{type:\"string\",anyOf:[{format:\"relative-json-pointer\"},{format:\"json-pointer\"}]}},additionalProperties:!1}});var s3=P((KT,a3)=>{var QA={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};a3.exports={HEX:QA}});var GH=P((UT,JH)=>{var{HEX:$A}=s3(),YA=/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u;function $H(X){if(WH(X,\".\")<3)return{host:X,isIPV4:!1};let Q=X.match(YA)||[],[$]=Q;if($)return{host:JA($,\".\"),isIPV4:!0};else return{host:X,isIPV4:!1}}function PY(X,Q=!1){let $=\"\",Y=!0;for(let W of X){if($A[W]===void 0)return;if(W!==\"0\"&&Y===!0)Y=!1;if(!Y)$+=W}if(Q&&$.length===0)$=\"0\";return $}function WA(X){let Q=0,$={error:!1,address:\"\",zone:\"\"},Y=[],W=[],J=!1,G=!1,H=!1;function B(){if(W.length){if(J===!1){let z=PY(W);if(z!==void 0)Y.push(z);else return $.error=!0,!1}W.length=0}return!0}for(let z=0;z<X.length;z++){let K=X[z];if(K===\"[\"||K===\"]\")continue;if(K===\":\"){if(G===!0)H=!0;if(!B())break;if(Q++,Y.push(\":\"),Q>7){$.error=!0;break}if(z-1>=0&&X[z-1]===\":\")G=!0;continue}else if(K===\"%\"){if(!B())break;J=!0}else{W.push(K);continue}}if(W.length)if(J)$.zone=W.join(\"\");else if(H)Y.push(W.join(\"\"));else Y.push(PY(W));return $.address=Y.join(\"\"),$}function YH(X){if(WH(X,\":\")<2)return{host:X,isIPV6:!1};let Q=WA(X);if(!Q.error){let{address:$,address:Y}=Q;if(Q.zone)$+=\"%\"+Q.zone,Y+=\"%25\"+Q.zone;return{host:$,escapedHost:Y,isIPV6:!0}}else return{host:X,isIPV6:!1}}function JA(X,Q){let $=\"\",Y=!0,W=X.length;for(let J=0;J<W;J++){let G=X[J];if(G===\"0\"&&Y){if(J+1<=W&&X[J+1]===Q||J+1===W)$+=G,Y=!1}else{if(G===Q)Y=!0;else Y=!1;$+=G}}return $}function WH(X,Q){let $=0;for(let Y=0;Y<X.length;Y++)if(X[Y]===Q)$++;return $}var e3=/^\\.\\.?\\//u,XH=/^\\/\\.(?:\\/|$)/u,QH=/^\\/\\.\\.(?:\\/|$)/u,GA=/^\\/?(?:.|\\n)*?(?=\\/|$)/u;function HA(X){let Q=[];while(X.length)if(X.match(e3))X=X.replace(e3,\"\");else if(X.match(XH))X=X.replace(XH,\"/\");else if(X.match(QH))X=X.replace(QH,\"/\"),Q.pop();else if(X===\".\"||X===\"..\")X=\"\";else{let $=X.match(GA);if($){let Y=$[0];X=X.slice(Y.length),Q.push(Y)}else throw Error(\"Unexpected dot segment condition\")}return Q.join(\"\")}function BA(X,Q){let $=Q!==!0?escape:unescape;if(X.scheme!==void 0)X.scheme=$(X.scheme);if(X.userinfo!==void 0)X.userinfo=$(X.userinfo);if(X.host!==void 0)X.host=$(X.host);if(X.path!==void 0)X.path=$(X.path);if(X.query!==void 0)X.query=$(X.query);if(X.fragment!==void 0)X.fragment=$(X.fragment);return X}function zA(X){let Q=[];if(X.userinfo!==void 0)Q.push(X.userinfo),Q.push(\"@\");if(X.host!==void 0){let $=unescape(X.host),Y=$H($);if(Y.isIPV4)$=Y.host;else{let W=YH(Y.host);if(W.isIPV6===!0)$=`[${W.escapedHost}]`;else $=X.host}Q.push($)}if(typeof X.port===\"number\"||typeof X.port===\"string\")Q.push(\":\"),Q.push(String(X.port));return Q.length?Q.join(\"\"):void 0}JH.exports={recomposeAuthority:zA,normalizeComponentEncoding:BA,removeDotSegments:HA,normalizeIPv4:$H,normalizeIPv6:YH,stringArrayToHexStripped:PY}});var VH=P((VT,UH)=>{var KA=/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu,UA=/([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu;function HH(X){return typeof X.secure===\"boolean\"?X.secure:String(X.scheme).toLowerCase()===\"wss\"}function BH(X){if(!X.host)X.error=X.error||\"HTTP URIs must have a host.\";return X}function zH(X){let Q=String(X.scheme).toLowerCase()===\"https\";if(X.port===(Q?443:80)||X.port===\"\")X.port=void 0;if(!X.path)X.path=\"/\";return X}function VA(X){return X.secure=HH(X),X.resourceName=(X.path||\"/\")+(X.query?\"?\"+X.query:\"\"),X.path=void 0,X.query=void 0,X}function LA(X){if(X.port===(HH(X)?443:80)||X.port===\"\")X.port=void 0;if(typeof X.secure===\"boolean\")X.scheme=X.secure?\"wss\":\"ws\",X.secure=void 0;if(X.resourceName){let[Q,$]=X.resourceName.split(\"?\");X.path=Q&&Q!==\"/\"?Q:void 0,X.query=$,X.resourceName=void 0}return X.fragment=void 0,X}function qA(X,Q){if(!X.path)return X.error=\"URN can not be parsed\",X;let $=X.path.match(UA);if($){let Y=Q.scheme||X.scheme||\"urn\";X.nid=$[1].toLowerCase(),X.nss=$[2];let W=`${Y}:${Q.nid||X.nid}`,J=SY[W];if(X.path=void 0,J)X=J.parse(X,Q)}else X.error=X.error||\"URN can not be parsed.\";return X}function FA(X,Q){let $=Q.scheme||X.scheme||\"urn\",Y=X.nid.toLowerCase(),W=`${$}:${Q.nid||Y}`,J=SY[W];if(J)X=J.serialize(X,Q);let G=X,H=X.nss;return G.path=`${Y||Q.nid}:${H}`,Q.skipEscape=!0,G}function NA(X,Q){let $=X;if($.uuid=$.nss,$.nss=void 0,!Q.tolerant&&(!$.uuid||!KA.test($.uuid)))$.error=$.error||\"UUID is not valid.\";return $}function OA(X){let Q=X;return Q.nss=(X.uuid||\"\").toLowerCase(),Q}var KH={scheme:\"http\",domainHost:!0,parse:BH,serialize:zH},DA={scheme:\"https\",domainHost:KH.domainHost,parse:BH,serialize:zH},x8={scheme:\"ws\",domainHost:!0,parse:VA,serialize:LA},wA={scheme:\"wss\",domainHost:x8.domainHost,parse:x8.parse,serialize:x8.serialize},AA={scheme:\"urn\",parse:qA,serialize:FA,skipNormalize:!0},MA={scheme:\"urn:uuid\",parse:NA,serialize:OA,skipNormalize:!0},SY={http:KH,https:DA,ws:x8,wss:wA,urn:AA,\"urn:uuid\":MA};UH.exports=SY});var qH=P((LT,g8)=>{var{normalizeIPv6:jA,normalizeIPv4:RA,removeDotSegments:oX,recomposeAuthority:IA,normalizeComponentEncoding:y8}=GH(),ZY=VH();function EA(X,Q){if(typeof X===\"string\")X=U1(E1(X,Q),Q);else if(typeof X===\"object\")X=E1(U1(X,Q),Q);return X}function bA(X,Q,$){let Y=Object.assign({scheme:\"null\"},$),W=LH(E1(X,Y),E1(Q,Y),Y,!0);return U1(W,{...Y,skipEscape:!0})}function LH(X,Q,$,Y){let W={};if(!Y)X=E1(U1(X,$),$),Q=E1(U1(Q,$),$);if($=$||{},!$.tolerant&&Q.scheme)W.scheme=Q.scheme,W.userinfo=Q.userinfo,W.host=Q.host,W.port=Q.port,W.path=oX(Q.path||\"\"),W.query=Q.query;else{if(Q.userinfo!==void 0||Q.host!==void 0||Q.port!==void 0)W.userinfo=Q.userinfo,W.host=Q.host,W.port=Q.port,W.path=oX(Q.path||\"\"),W.query=Q.query;else{if(!Q.path)if(W.path=X.path,Q.query!==void 0)W.query=Q.query;else W.query=X.query;else{if(Q.path.charAt(0)===\"/\")W.path=oX(Q.path);else{if((X.userinfo!==void 0||X.host!==void 0||X.port!==void 0)&&!X.path)W.path=\"/\"+Q.path;else if(!X.path)W.path=Q.path;else W.path=X.path.slice(0,X.path.lastIndexOf(\"/\")+1)+Q.path;W.path=oX(W.path)}W.query=Q.query}W.userinfo=X.userinfo,W.host=X.host,W.port=X.port}W.scheme=X.scheme}return W.fragment=Q.fragment,W}function PA(X,Q,$){if(typeof X===\"string\")X=unescape(X),X=U1(y8(E1(X,$),!0),{...$,skipEscape:!0});else if(typeof X===\"object\")X=U1(y8(X,!0),{...$,skipEscape:!0});if(typeof Q===\"string\")Q=unescape(Q),Q=U1(y8(E1(Q,$),!0),{...$,skipEscape:!0});else if(typeof Q===\"object\")Q=U1(y8(Q,!0),{...$,skipEscape:!0});return X.toLowerCase()===Q.toLowerCase()}function U1(X,Q){let $={host:X.host,scheme:X.scheme,userinfo:X.userinfo,port:X.port,path:X.path,query:X.query,nid:X.nid,nss:X.nss,uuid:X.uuid,fragment:X.fragment,reference:X.reference,resourceName:X.resourceName,secure:X.secure,error:\"\"},Y=Object.assign({},Q),W=[],J=ZY[(Y.scheme||$.scheme||\"\").toLowerCase()];if(J&&J.serialize)J.serialize($,Y);if($.path!==void 0)if(!Y.skipEscape){if($.path=escape($.path),$.scheme!==void 0)$.path=$.path.split(\"%3A\").join(\":\")}else $.path=unescape($.path);if(Y.reference!==\"suffix\"&&$.scheme)W.push($.scheme,\":\");let G=IA($);if(G!==void 0){if(Y.reference!==\"suffix\")W.push(\"//\");if(W.push(G),$.path&&$.path.charAt(0)!==\"/\")W.push(\"/\")}if($.path!==void 0){let H=$.path;if(!Y.absolutePath&&(!J||!J.absolutePath))H=oX(H);if(G===void 0)H=H.replace(/^\\/\\//u,\"/%2F\");W.push(H)}if($.query!==void 0)W.push(\"?\",$.query);if($.fragment!==void 0)W.push(\"#\",$.fragment);return W.join(\"\")}var SA=Array.from({length:127},(X,Q)=>/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(Q)));function ZA(X){let Q=0;for(let $=0,Y=X.length;$<Y;++$)if(Q=X.charCodeAt($),Q>126||SA[Q])return!0;return!1}var CA=/^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u;function E1(X,Q){let $=Object.assign({},Q),Y={scheme:void 0,userinfo:void 0,host:\"\",port:void 0,path:\"\",query:void 0,fragment:void 0},W=X.indexOf(\"%\")!==-1,J=!1;if($.reference===\"suffix\")X=($.scheme?$.scheme+\":\":\"\")+\"//\"+X;let G=X.match(CA);if(G){if(Y.scheme=G[1],Y.userinfo=G[3],Y.host=G[4],Y.port=parseInt(G[5],10),Y.path=G[6]||\"\",Y.query=G[7],Y.fragment=G[8],isNaN(Y.port))Y.port=G[5];if(Y.host){let B=RA(Y.host);if(B.isIPV4===!1){let z=jA(B.host);Y.host=z.host.toLowerCase(),J=z.isIPV6}else Y.host=B.host,J=!0}if(Y.scheme===void 0&&Y.userinfo===void 0&&Y.host===void 0&&Y.port===void 0&&Y.query===void 0&&!Y.path)Y.reference=\"same-document\";else if(Y.scheme===void 0)Y.reference=\"relative\";else if(Y.fragment===void 0)Y.reference=\"absolute\";else Y.reference=\"uri\";if($.reference&&$.reference!==\"suffix\"&&$.reference!==Y.reference)Y.error=Y.error||\"URI is not a \"+$.reference+\" reference.\";let H=ZY[($.scheme||Y.scheme||\"\").toLowerCase()];if(!$.unicodeSupport&&(!H||!H.unicodeSupport)){if(Y.host&&($.domainHost||H&&H.domainHost)&&J===!1&&ZA(Y.host))try{Y.host=URL.domainToASCII(Y.host.toLowerCase())}catch(B){Y.error=Y.error||\"Host's domain name can not be converted to ASCII: \"+B}}if(!H||H&&!H.skipNormalize){if(W&&Y.scheme!==void 0)Y.scheme=unescape(Y.scheme);if(W&&Y.host!==void 0)Y.host=unescape(Y.host);if(Y.path)Y.path=escape(unescape(Y.path));if(Y.fragment)Y.fragment=encodeURI(decodeURIComponent(Y.fragment))}if(H&&H.parse)H.parse(Y,$)}else Y.error=Y.error||\"URI can not be parsed.\";return Y}var CY={SCHEMES:ZY,normalize:EA,resolve:bA,resolveComponents:LH,equal:PA,serialize:U1,parse:E1};g8.exports=CY;g8.exports.default=CY;g8.exports.fastUri=CY});var OH=P((NH)=>{Object.defineProperty(NH,\"__esModule\",{value:!0});var FH=qH();FH.code='require(\"ajv/dist/runtime/uri\").default';NH.default=FH});var EH=P((b1)=>{Object.defineProperty(b1,\"__esModule\",{value:!0});b1.CodeGen=b1.Name=b1.nil=b1.stringify=b1.str=b1._=b1.KeywordCxt=void 0;var vA=iX();Object.defineProperty(b1,\"KeywordCxt\",{enumerable:!0,get:function(){return vA.KeywordCxt}});var c6=p();Object.defineProperty(b1,\"_\",{enumerable:!0,get:function(){return c6._}});Object.defineProperty(b1,\"str\",{enumerable:!0,get:function(){return c6.str}});Object.defineProperty(b1,\"stringify\",{enumerable:!0,get:function(){return c6.stringify}});Object.defineProperty(b1,\"nil\",{enumerable:!0,get:function(){return c6.nil}});Object.defineProperty(b1,\"Name\",{enumerable:!0,get:function(){return c6.Name}});Object.defineProperty(b1,\"CodeGen\",{enumerable:!0,get:function(){return c6.CodeGen}});var TA=v8(),jH=nX(),_A=KY(),tX=_8(),xA=p(),aX=cX(),f8=mX(),vY=e(),DH=t3(),yA=OH(),RH=(X,Q)=>new RegExp(X,Q);RH.code=\"new RegExp\";var gA=[\"removeAdditional\",\"useDefaults\",\"coerceTypes\"],fA=new Set([\"validate\",\"serialize\",\"parse\",\"wrapper\",\"root\",\"schema\",\"keyword\",\"pattern\",\"formats\",\"validate$data\",\"func\",\"obj\",\"Error\"]),hA={errorDataPath:\"\",format:\"`validateFormats: false` can be used instead.\",nullable:'\"nullable\" keyword is supported by default.',jsonPointers:\"Deprecated jsPropertySyntax can be used instead.\",extendRefs:\"Deprecated ignoreKeywordsWithRef can be used instead.\",missingRefs:\"Pass empty schema with $id that should be ignored to ajv.addSchema.\",processCode:\"Use option `code: {process: (code, schemaEnv: object) => string}`\",sourceCode:\"Use option `code: {source: true}`\",strictDefaults:\"It is default now, see option `strict`.\",strictKeywords:\"It is default now, see option `strict`.\",uniqueItems:'\"uniqueItems\" keyword is always validated.',unknownFormats:\"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",cache:\"Map is used as cache, schema object as key.\",serialize:\"Map is used as cache, schema object as key.\",ajvErrors:\"It is default now.\"},uA={ignoreKeywordsWithRef:\"\",jsPropertySyntax:\"\",unicode:'\"minLength\"/\"maxLength\" account for unicode characters by default.'},wH=200;function lA(X){var Q,$,Y,W,J,G,H,B,z,K,V,L,U,F,q,N,w,M,R,S,C,K0,U0,s,D0;let q0=X.strict,L1=(Q=X.code)===null||Q===void 0?void 0:Q.optimize,P1=L1===!0||L1===void 0?1:L1||0,o1=(Y=($=X.code)===null||$===void 0?void 0:$.regExp)!==null&&Y!==void 0?Y:RH,c=(W=X.uriResolver)!==null&&W!==void 0?W:yA.default;return{strictSchema:(G=(J=X.strictSchema)!==null&&J!==void 0?J:q0)!==null&&G!==void 0?G:!0,strictNumbers:(B=(H=X.strictNumbers)!==null&&H!==void 0?H:q0)!==null&&B!==void 0?B:!0,strictTypes:(K=(z=X.strictTypes)!==null&&z!==void 0?z:q0)!==null&&K!==void 0?K:\"log\",strictTuples:(L=(V=X.strictTuples)!==null&&V!==void 0?V:q0)!==null&&L!==void 0?L:\"log\",strictRequired:(F=(U=X.strictRequired)!==null&&U!==void 0?U:q0)!==null&&F!==void 0?F:!1,code:X.code?{...X.code,optimize:P1,regExp:o1}:{optimize:P1,regExp:o1},loopRequired:(q=X.loopRequired)!==null&&q!==void 0?q:wH,loopEnum:(N=X.loopEnum)!==null&&N!==void 0?N:wH,meta:(w=X.meta)!==null&&w!==void 0?w:!0,messages:(M=X.messages)!==null&&M!==void 0?M:!0,inlineRefs:(R=X.inlineRefs)!==null&&R!==void 0?R:!0,schemaId:(S=X.schemaId)!==null&&S!==void 0?S:\"$id\",addUsedSchema:(C=X.addUsedSchema)!==null&&C!==void 0?C:!0,validateSchema:(K0=X.validateSchema)!==null&&K0!==void 0?K0:!0,validateFormats:(U0=X.validateFormats)!==null&&U0!==void 0?U0:!0,unicodeRegExp:(s=X.unicodeRegExp)!==null&&s!==void 0?s:!0,int32range:(D0=X.int32range)!==null&&D0!==void 0?D0:!0,uriResolver:c}}class h8{constructor(X={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,X=this.opts={...X,...lA(X)};let{es5:Q,lines:$}=this.opts.code;this.scope=new xA.ValueScope({scope:{},prefixes:fA,es5:Q,lines:$}),this.logger=nA(X.logger);let Y=X.validateFormats;if(X.validateFormats=!1,this.RULES=(0,_A.getRules)(),AH.call(this,hA,X,\"NOT SUPPORTED\"),AH.call(this,uA,X,\"DEPRECATED\",\"warn\"),this._metaOpts=dA.call(this),X.formats)cA.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),X.keywords)pA.call(this,X.keywords);if(typeof X.meta==\"object\")this.addMetaSchema(X.meta);mA.call(this),X.validateFormats=Y}_addVocabularies(){this.addKeyword(\"$async\")}_addDefaultMetaSchema(){let{$data:X,meta:Q,schemaId:$}=this.opts,Y=DH;if($===\"id\")Y={...DH},Y.id=Y.$id,delete Y.$id;if(Q&&X)this.addMetaSchema(Y,Y[$],!1)}defaultMeta(){let{meta:X,schemaId:Q}=this.opts;return this.opts.defaultMeta=typeof X==\"object\"?X[Q]||X:void 0}validate(X,Q){let $;if(typeof X==\"string\"){if($=this.getSchema(X),!$)throw Error(`no schema with key or ref \"${X}\"`)}else $=this.compile(X);let Y=$(Q);if(!(\"$async\"in $))this.errors=$.errors;return Y}compile(X,Q){let $=this._addSchema(X,Q);return $.validate||this._compileSchemaEnv($)}compileAsync(X,Q){if(typeof this.opts.loadSchema!=\"function\")throw Error(\"options.loadSchema should be a function\");let{loadSchema:$}=this.opts;return Y.call(this,X,Q);async function Y(z,K){await W.call(this,z.$schema);let V=this._addSchema(z,K);return V.validate||J.call(this,V)}async function W(z){if(z&&!this.getSchema(z))await Y.call(this,{$ref:z},!0)}async function J(z){try{return this._compileSchemaEnv(z)}catch(K){if(!(K instanceof jH.default))throw K;return G.call(this,K),await H.call(this,K.missingSchema),J.call(this,z)}}function G({missingSchema:z,missingRef:K}){if(this.refs[z])throw Error(`AnySchema ${z} is loaded but ${K} cannot be resolved`)}async function H(z){let K=await B.call(this,z);if(!this.refs[z])await W.call(this,K.$schema);if(!this.refs[z])this.addSchema(K,z,Q)}async function B(z){let K=this._loading[z];if(K)return K;try{return await(this._loading[z]=$(z))}finally{delete this._loading[z]}}}addSchema(X,Q,$,Y=this.opts.validateSchema){if(Array.isArray(X)){for(let J of X)this.addSchema(J,void 0,$,Y);return this}let W;if(typeof X===\"object\"){let{schemaId:J}=this.opts;if(W=X[J],W!==void 0&&typeof W!=\"string\")throw Error(`schema ${J} must be string`)}return Q=(0,aX.normalizeId)(Q||W),this._checkUnique(Q),this.schemas[Q]=this._addSchema(X,$,Q,Y,!0),this}addMetaSchema(X,Q,$=this.opts.validateSchema){return this.addSchema(X,Q,!0,$),this}validateSchema(X,Q){if(typeof X==\"boolean\")return!0;let $;if($=X.$schema,$!==void 0&&typeof $!=\"string\")throw Error(\"$schema must be a string\");if($=$||this.opts.defaultMeta||this.defaultMeta(),!$)return this.logger.warn(\"meta-schema not available\"),this.errors=null,!0;let Y=this.validate($,X);if(!Y&&Q){let W=\"schema is invalid: \"+this.errorsText();if(this.opts.validateSchema===\"log\")this.logger.error(W);else throw Error(W)}return Y}getSchema(X){let Q;while(typeof(Q=MH.call(this,X))==\"string\")X=Q;if(Q===void 0){let{schemaId:$}=this.opts,Y=new tX.SchemaEnv({schema:{},schemaId:$});if(Q=tX.resolveSchema.call(this,Y,X),!Q)return;this.refs[X]=Q}return Q.validate||this._compileSchemaEnv(Q)}removeSchema(X){if(X instanceof RegExp)return this._removeAllSchemas(this.schemas,X),this._removeAllSchemas(this.refs,X),this;switch(typeof X){case\"undefined\":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case\"string\":{let Q=MH.call(this,X);if(typeof Q==\"object\")this._cache.delete(Q.schema);return delete this.schemas[X],delete this.refs[X],this}case\"object\":{let Q=X;this._cache.delete(Q);let $=X[this.opts.schemaId];if($)$=(0,aX.normalizeId)($),delete this.schemas[$],delete this.refs[$];return this}default:throw Error(\"ajv.removeSchema: invalid parameter\")}}addVocabulary(X){for(let Q of X)this.addKeyword(Q);return this}addKeyword(X,Q){let $;if(typeof X==\"string\"){if($=X,typeof Q==\"object\")this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\"),Q.keyword=$}else if(typeof X==\"object\"&&Q===void 0){if(Q=X,$=Q.keyword,Array.isArray($)&&!$.length)throw Error(\"addKeywords: keyword must be string or non-empty array\")}else throw Error(\"invalid addKeywords parameters\");if(oA.call(this,$,Q),!Q)return(0,vY.eachItem)($,(W)=>kY.call(this,W)),this;aA.call(this,Q);let Y={...Q,type:(0,f8.getJSONTypes)(Q.type),schemaType:(0,f8.getJSONTypes)(Q.schemaType)};return(0,vY.eachItem)($,Y.type.length===0?(W)=>kY.call(this,W,Y):(W)=>Y.type.forEach((J)=>kY.call(this,W,Y,J))),this}getKeyword(X){let Q=this.RULES.all[X];return typeof Q==\"object\"?Q.definition:!!Q}removeKeyword(X){let{RULES:Q}=this;delete Q.keywords[X],delete Q.all[X];for(let $ of Q.rules){let Y=$.rules.findIndex((W)=>W.keyword===X);if(Y>=0)$.rules.splice(Y,1)}return this}addFormat(X,Q){if(typeof Q==\"string\")Q=new RegExp(Q);return this.formats[X]=Q,this}errorsText(X=this.errors,{separator:Q=\", \",dataVar:$=\"data\"}={}){if(!X||X.length===0)return\"No errors\";return X.map((Y)=>`${$}${Y.instancePath} ${Y.message}`).reduce((Y,W)=>Y+Q+W)}$dataMetaSchema(X,Q){let $=this.RULES.all;X=JSON.parse(JSON.stringify(X));for(let Y of Q){let W=Y.split(\"/\").slice(1),J=X;for(let G of W)J=J[G];for(let G in $){let H=$[G];if(typeof H!=\"object\")continue;let{$data:B}=H.definition,z=J[G];if(B&&z)J[G]=IH(z)}}return X}_removeAllSchemas(X,Q){for(let $ in X){let Y=X[$];if(!Q||Q.test($)){if(typeof Y==\"string\")delete X[$];else if(Y&&!Y.meta)this._cache.delete(Y.schema),delete X[$]}}}_addSchema(X,Q,$,Y=this.opts.validateSchema,W=this.opts.addUsedSchema){let J,{schemaId:G}=this.opts;if(typeof X==\"object\")J=X[G];else if(this.opts.jtd)throw Error(\"schema must be object\");else if(typeof X!=\"boolean\")throw Error(\"schema must be object or boolean\");let H=this._cache.get(X);if(H!==void 0)return H;$=(0,aX.normalizeId)(J||$);let B=aX.getSchemaRefs.call(this,X,$);if(H=new tX.SchemaEnv({schema:X,schemaId:G,meta:Q,baseId:$,localRefs:B}),this._cache.set(H.schema,H),W&&!$.startsWith(\"#\")){if($)this._checkUnique($);this.refs[$]=H}if(Y)this.validateSchema(X,!0);return H}_checkUnique(X){if(this.schemas[X]||this.refs[X])throw Error(`schema with key or id \"${X}\" already exists`)}_compileSchemaEnv(X){if(X.meta)this._compileMetaSchema(X);else tX.compileSchema.call(this,X);if(!X.validate)throw Error(\"ajv implementation error\");return X.validate}_compileMetaSchema(X){let Q=this.opts;this.opts=this._metaOpts;try{tX.compileSchema.call(this,X)}finally{this.opts=Q}}}h8.ValidationError=TA.default;h8.MissingRefError=jH.default;b1.default=h8;function AH(X,Q,$,Y=\"error\"){for(let W in X){let J=W;if(J in Q)this.logger[Y](`${$}: option ${W}. ${X[J]}`)}}function MH(X){return X=(0,aX.normalizeId)(X),this.schemas[X]||this.refs[X]}function mA(){let X=this.opts.schemas;if(!X)return;if(Array.isArray(X))this.addSchema(X);else for(let Q in X)this.addSchema(X[Q],Q)}function cA(){for(let X in this.opts.formats){let Q=this.opts.formats[X];if(Q)this.addFormat(X,Q)}}function pA(X){if(Array.isArray(X)){this.addVocabulary(X);return}this.logger.warn(\"keywords option as map is deprecated, pass array\");for(let Q in X){let $=X[Q];if(!$.keyword)$.keyword=Q;this.addKeyword($)}}function dA(){let X={...this.opts};for(let Q of gA)delete X[Q];return X}var iA={log(){},warn(){},error(){}};function nA(X){if(X===!1)return iA;if(X===void 0)return console;if(X.log&&X.warn&&X.error)return X;throw Error(\"logger must implement log, warn and error methods\")}var rA=/^[a-z_$][a-z0-9_$:-]*$/i;function oA(X,Q){let{RULES:$}=this;if((0,vY.eachItem)(X,(Y)=>{if($.keywords[Y])throw Error(`Keyword ${Y} is already defined`);if(!rA.test(Y))throw Error(`Keyword ${Y} has invalid name`)}),!Q)return;if(Q.$data&&!((\"code\"in Q)||(\"validate\"in Q)))throw Error('$data keyword must have \"code\" or \"validate\" function')}function kY(X,Q,$){var Y;let W=Q===null||Q===void 0?void 0:Q.post;if($&&W)throw Error('keyword with \"post\" flag cannot have \"type\"');let{RULES:J}=this,G=W?J.post:J.rules.find(({type:B})=>B===$);if(!G)G={type:$,rules:[]},J.rules.push(G);if(J.keywords[X]=!0,!Q)return;let H={keyword:X,definition:{...Q,type:(0,f8.getJSONTypes)(Q.type),schemaType:(0,f8.getJSONTypes)(Q.schemaType)}};if(Q.before)tA.call(this,G,H,Q.before);else G.rules.push(H);J.all[X]=H,(Y=Q.implements)===null||Y===void 0||Y.forEach((B)=>this.addKeyword(B))}function tA(X,Q,$){let Y=X.rules.findIndex((W)=>W.keyword===$);if(Y>=0)X.rules.splice(Y,0,Q);else X.rules.push(Q),this.logger.warn(`rule ${$} is not defined`)}function aA(X){let{metaSchema:Q}=X;if(Q===void 0)return;if(X.$data&&this.opts.$data)Q=IH(Q);X.validateSchema=this.compile(Q,!0)}var sA={$ref:\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\"};function IH(X){return{anyOf:[X,sA]}}});var PH=P((bH)=>{Object.defineProperty(bH,\"__esModule\",{value:!0});var QM={keyword:\"id\",code(){throw Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')}};bH.default=QM});var TH=P((kH)=>{Object.defineProperty(kH,\"__esModule\",{value:!0});kH.callRef=kH.getValidate=void 0;var YM=nX(),SH=d0(),g0=p(),p6=R1(),ZH=_8(),u8=e(),WM={keyword:\"$ref\",schemaType:\"string\",code(X){let{gen:Q,schema:$,it:Y}=X,{baseId:W,schemaEnv:J,validateName:G,opts:H,self:B}=Y,{root:z}=J;if(($===\"#\"||$===\"#/\")&&W===z.baseId)return V();let K=ZH.resolveRef.call(B,z,W,$);if(K===void 0)throw new YM.default(Y.opts.uriResolver,W,$);if(K instanceof ZH.SchemaEnv)return L(K);return U(K);function V(){if(J===z)return l8(X,G,J,J.$async);let F=Q.scopeValue(\"root\",{ref:z});return l8(X,g0._`${F}.validate`,z,z.$async)}function L(F){let q=CH(X,F);l8(X,q,F,F.$async)}function U(F){let q=Q.scopeValue(\"schema\",H.code.source===!0?{ref:F,code:(0,g0.stringify)(F)}:{ref:F}),N=Q.name(\"valid\"),w=X.subschema({schema:F,dataTypes:[],schemaPath:g0.nil,topSchemaRef:q,errSchemaPath:$},N);X.mergeEvaluated(w),X.ok(N)}}};function CH(X,Q){let{gen:$}=X;return Q.validate?$.scopeValue(\"validate\",{ref:Q.validate}):g0._`${$.scopeValue(\"wrapper\",{ref:Q})}.validate`}kH.getValidate=CH;function l8(X,Q,$,Y){let{gen:W,it:J}=X,{allErrors:G,schemaEnv:H,opts:B}=J,z=B.passContext?p6.default.this:g0.nil;if(Y)K();else V();function K(){if(!H.$async)throw Error(\"async schema referenced by sync schema\");let F=W.let(\"valid\");W.try(()=>{if(W.code(g0._`await ${(0,SH.callValidateCode)(X,Q,z)}`),U(Q),!G)W.assign(F,!0)},(q)=>{if(W.if(g0._`!(${q} instanceof ${J.ValidationError})`,()=>W.throw(q)),L(q),!G)W.assign(F,!1)}),X.ok(F)}function V(){X.result((0,SH.callValidateCode)(X,Q,z),()=>U(Q),()=>L(Q))}function L(F){let q=g0._`${F}.errors`;W.assign(p6.default.vErrors,g0._`${p6.default.vErrors} === null ? ${q} : ${p6.default.vErrors}.concat(${q})`),W.assign(p6.default.errors,g0._`${p6.default.vErrors}.length`)}function U(F){var q;if(!J.opts.unevaluated)return;let N=(q=$===null||$===void 0?void 0:$.validate)===null||q===void 0?void 0:q.evaluated;if(J.props!==!0)if(N&&!N.dynamicProps){if(N.props!==void 0)J.props=u8.mergeEvaluated.props(W,N.props,J.props)}else{let w=W.var(\"props\",g0._`${F}.evaluated.props`);J.props=u8.mergeEvaluated.props(W,w,J.props,g0.Name)}if(J.items!==!0)if(N&&!N.dynamicItems){if(N.items!==void 0)J.items=u8.mergeEvaluated.items(W,N.items,J.items)}else{let w=W.var(\"items\",g0._`${F}.evaluated.items`);J.items=u8.mergeEvaluated.items(W,w,J.items,g0.Name)}}}kH.callRef=l8;kH.default=WM});var xH=P((_H)=>{Object.defineProperty(_H,\"__esModule\",{value:!0});var HM=PH(),BM=TH(),zM=[\"$schema\",\"$id\",\"$defs\",\"$vocabulary\",{keyword:\"$comment\"},\"definitions\",HM.default,BM.default];_H.default=zM});var gH=P((yH)=>{Object.defineProperty(yH,\"__esModule\",{value:!0});var m8=p(),i1=m8.operators,c8={maximum:{okStr:\"<=\",ok:i1.LTE,fail:i1.GT},minimum:{okStr:\">=\",ok:i1.GTE,fail:i1.LT},exclusiveMaximum:{okStr:\"<\",ok:i1.LT,fail:i1.GTE},exclusiveMinimum:{okStr:\">\",ok:i1.GT,fail:i1.LTE}},UM={message:({keyword:X,schemaCode:Q})=>m8.str`must be ${c8[X].okStr} ${Q}`,params:({keyword:X,schemaCode:Q})=>m8._`{comparison: ${c8[X].okStr}, limit: ${Q}}`},VM={keyword:Object.keys(c8),type:\"number\",schemaType:\"number\",$data:!0,error:UM,code(X){let{keyword:Q,data:$,schemaCode:Y}=X;X.fail$data(m8._`${$} ${c8[Q].fail} ${Y} || isNaN(${$})`)}};yH.default=VM});var hH=P((fH)=>{Object.defineProperty(fH,\"__esModule\",{value:!0});var sX=p(),qM={message:({schemaCode:X})=>sX.str`must be multiple of ${X}`,params:({schemaCode:X})=>sX._`{multipleOf: ${X}}`},FM={keyword:\"multipleOf\",type:\"number\",schemaType:\"number\",$data:!0,error:qM,code(X){let{gen:Q,data:$,schemaCode:Y,it:W}=X,J=W.opts.multipleOfPrecision,G=Q.let(\"res\"),H=J?sX._`Math.abs(Math.round(${G}) - ${G}) > 1e-${J}`:sX._`${G} !== parseInt(${G})`;X.fail$data(sX._`(${Y} === 0 || (${G} = ${$}/${Y}, ${H}))`)}};fH.default=FM});var mH=P((lH)=>{Object.defineProperty(lH,\"__esModule\",{value:!0});function uH(X){let Q=X.length,$=0,Y=0,W;while(Y<Q)if($++,W=X.charCodeAt(Y++),W>=55296&&W<=56319&&Y<Q){if(W=X.charCodeAt(Y),(W&64512)===56320)Y++}return $}lH.default=uH;uH.code='require(\"ajv/dist/runtime/ucs2length\").default'});var pH=P((cH)=>{Object.defineProperty(cH,\"__esModule\",{value:!0});var K6=p(),DM=e(),wM=mH(),AM={message({keyword:X,schemaCode:Q}){let $=X===\"maxLength\"?\"more\":\"fewer\";return K6.str`must NOT have ${$} than ${Q} characters`},params:({schemaCode:X})=>K6._`{limit: ${X}}`},MM={keyword:[\"maxLength\",\"minLength\"],type:\"string\",schemaType:\"number\",$data:!0,error:AM,code(X){let{keyword:Q,data:$,schemaCode:Y,it:W}=X,J=Q===\"maxLength\"?K6.operators.GT:K6.operators.LT,G=W.opts.unicode===!1?K6._`${$}.length`:K6._`${(0,DM.useFunc)(X.gen,wM.default)}(${$})`;X.fail$data(K6._`${G} ${J} ${Y}`)}};cH.default=MM});var iH=P((dH)=>{Object.defineProperty(dH,\"__esModule\",{value:!0});var RM=d0(),p8=p(),IM={message:({schemaCode:X})=>p8.str`must match pattern \"${X}\"`,params:({schemaCode:X})=>p8._`{pattern: ${X}}`},EM={keyword:\"pattern\",type:\"string\",schemaType:\"string\",$data:!0,error:IM,code(X){let{data:Q,$data:$,schema:Y,schemaCode:W,it:J}=X,G=J.opts.unicodeRegExp?\"u\":\"\",H=$?p8._`(new RegExp(${W}, ${G}))`:(0,RM.usePattern)(X,Y);X.fail$data(p8._`!${H}.test(${Q})`)}};dH.default=EM});var rH=P((nH)=>{Object.defineProperty(nH,\"__esModule\",{value:!0});var eX=p(),PM={message({keyword:X,schemaCode:Q}){let $=X===\"maxProperties\"?\"more\":\"fewer\";return eX.str`must NOT have ${$} than ${Q} properties`},params:({schemaCode:X})=>eX._`{limit: ${X}}`},SM={keyword:[\"maxProperties\",\"minProperties\"],type:\"object\",schemaType:\"number\",$data:!0,error:PM,code(X){let{keyword:Q,data:$,schemaCode:Y}=X,W=Q===\"maxProperties\"?eX.operators.GT:eX.operators.LT;X.fail$data(eX._`Object.keys(${$}).length ${W} ${Y}`)}};nH.default=SM});var tH=P((oH)=>{Object.defineProperty(oH,\"__esModule\",{value:!0});var X4=d0(),Q4=p(),CM=e(),kM={message:({params:{missingProperty:X}})=>Q4.str`must have required property '${X}'`,params:({params:{missingProperty:X}})=>Q4._`{missingProperty: ${X}}`},vM={keyword:\"required\",type:\"object\",schemaType:\"array\",$data:!0,error:kM,code(X){let{gen:Q,schema:$,schemaCode:Y,data:W,$data:J,it:G}=X,{opts:H}=G;if(!J&&$.length===0)return;let B=$.length>=H.loopRequired;if(G.allErrors)z();else K();if(H.strictRequired){let U=X.parentSchema.properties,{definedProperties:F}=X.it;for(let q of $)if((U===null||U===void 0?void 0:U[q])===void 0&&!F.has(q)){let N=G.schemaEnv.baseId+G.errSchemaPath,w=`required property \"${q}\" is not defined at \"${N}\" (strictRequired)`;(0,CM.checkStrictMode)(G,w,G.opts.strictRequired)}}function z(){if(B||J)X.block$data(Q4.nil,V);else for(let U of $)(0,X4.checkReportMissingProp)(X,U)}function K(){let U=Q.let(\"missing\");if(B||J){let F=Q.let(\"valid\",!0);X.block$data(F,()=>L(U,F)),X.ok(F)}else Q.if((0,X4.checkMissingProp)(X,$,U)),(0,X4.reportMissingProp)(X,U),Q.else()}function V(){Q.forOf(\"prop\",Y,(U)=>{X.setParams({missingProperty:U}),Q.if((0,X4.noPropertyInData)(Q,W,U,H.ownProperties),()=>X.error())})}function L(U,F){X.setParams({missingProperty:U}),Q.forOf(U,Y,()=>{Q.assign(F,(0,X4.propertyInData)(Q,W,U,H.ownProperties)),Q.if((0,Q4.not)(F),()=>{X.error(),Q.break()})},Q4.nil)}}};oH.default=vM});var sH=P((aH)=>{Object.defineProperty(aH,\"__esModule\",{value:!0});var $4=p(),_M={message({keyword:X,schemaCode:Q}){let $=X===\"maxItems\"?\"more\":\"fewer\";return $4.str`must NOT have ${$} than ${Q} items`},params:({schemaCode:X})=>$4._`{limit: ${X}}`},xM={keyword:[\"maxItems\",\"minItems\"],type:\"array\",schemaType:\"number\",$data:!0,error:_M,code(X){let{keyword:Q,data:$,schemaCode:Y}=X,W=Q===\"maxItems\"?$4.operators.GT:$4.operators.LT;X.fail$data($4._`${$}.length ${W} ${Y}`)}};aH.default=xM});var d8=P((XB)=>{Object.defineProperty(XB,\"__esModule\",{value:!0});var eH=DY();eH.code='require(\"ajv/dist/runtime/equal\").default';XB.default=eH});var $B=P((QB)=>{Object.defineProperty(QB,\"__esModule\",{value:!0});var TY=mX(),I0=p(),fM=e(),hM=d8(),uM={message:({params:{i:X,j:Q}})=>I0.str`must NOT have duplicate items (items ## ${Q} and ${X} are identical)`,params:({params:{i:X,j:Q}})=>I0._`{i: ${X}, j: ${Q}}`},lM={keyword:\"uniqueItems\",type:\"array\",schemaType:\"boolean\",$data:!0,error:uM,code(X){let{gen:Q,data:$,$data:Y,schema:W,parentSchema:J,schemaCode:G,it:H}=X;if(!Y&&!W)return;let B=Q.let(\"valid\"),z=J.items?(0,TY.getSchemaTypes)(J.items):[];X.block$data(B,K,I0._`${G} === false`),X.ok(B);function K(){let F=Q.let(\"i\",I0._`${$}.length`),q=Q.let(\"j\");X.setParams({i:F,j:q}),Q.assign(B,!0),Q.if(I0._`${F} > 1`,()=>(V()?L:U)(F,q))}function V(){return z.length>0&&!z.some((F)=>F===\"object\"||F===\"array\")}function L(F,q){let N=Q.name(\"item\"),w=(0,TY.checkDataTypes)(z,N,H.opts.strictNumbers,TY.DataType.Wrong),M=Q.const(\"indices\",I0._`{}`);Q.for(I0._`;${F}--;`,()=>{if(Q.let(N,I0._`${$}[${F}]`),Q.if(w,I0._`continue`),z.length>1)Q.if(I0._`typeof ${N} == \"string\"`,I0._`${N} += \"_\"`);Q.if(I0._`typeof ${M}[${N}] == \"number\"`,()=>{Q.assign(q,I0._`${M}[${N}]`),X.error(),Q.assign(B,!1).break()}).code(I0._`${M}[${N}] = ${F}`)})}function U(F,q){let N=(0,fM.useFunc)(Q,hM.default),w=Q.name(\"outer\");Q.label(w).for(I0._`;${F}--;`,()=>Q.for(I0._`${q} = ${F}; ${q}--;`,()=>Q.if(I0._`${N}(${$}[${F}], ${$}[${q}])`,()=>{X.error(),Q.assign(B,!1).break(w)})))}}};QB.default=lM});var WB=P((YB)=>{Object.defineProperty(YB,\"__esModule\",{value:!0});var _Y=p(),cM=e(),pM=d8(),dM={message:\"must be equal to constant\",params:({schemaCode:X})=>_Y._`{allowedValue: ${X}}`},iM={keyword:\"const\",$data:!0,error:dM,code(X){let{gen:Q,data:$,$data:Y,schemaCode:W,schema:J}=X;if(Y||J&&typeof J==\"object\")X.fail$data(_Y._`!${(0,cM.useFunc)(Q,pM.default)}(${$}, ${W})`);else X.fail(_Y._`${J} !== ${$}`)}};YB.default=iM});var GB=P((JB)=>{Object.defineProperty(JB,\"__esModule\",{value:!0});var Y4=p(),rM=e(),oM=d8(),tM={message:\"must be equal to one of the allowed values\",params:({schemaCode:X})=>Y4._`{allowedValues: ${X}}`},aM={keyword:\"enum\",schemaType:\"array\",$data:!0,error:tM,code(X){let{gen:Q,data:$,$data:Y,schema:W,schemaCode:J,it:G}=X;if(!Y&&W.length===0)throw Error(\"enum must have non-empty array\");let H=W.length>=G.opts.loopEnum,B,z=()=>B!==null&&B!==void 0?B:B=(0,rM.useFunc)(Q,oM.default),K;if(H||Y)K=Q.let(\"valid\"),X.block$data(K,V);else{if(!Array.isArray(W))throw Error(\"ajv implementation error\");let U=Q.const(\"vSchema\",J);K=(0,Y4.or)(...W.map((F,q)=>L(U,q)))}X.pass(K);function V(){Q.assign(K,!1),Q.forOf(\"v\",J,(U)=>Q.if(Y4._`${z()}(${$}, ${U})`,()=>Q.assign(K,!0).break()))}function L(U,F){let q=W[F];return typeof q===\"object\"&&q!==null?Y4._`${z()}(${$}, ${U}[${F}])`:Y4._`${$} === ${q}`}}};JB.default=aM});var BB=P((HB)=>{Object.defineProperty(HB,\"__esModule\",{value:!0});var eM=gH(),Xj=hH(),Qj=pH(),$j=iH(),Yj=rH(),Wj=tH(),Jj=sH(),Gj=$B(),Hj=WB(),Bj=GB(),zj=[eM.default,Xj.default,Qj.default,$j.default,Yj.default,Wj.default,Jj.default,Gj.default,{keyword:\"type\",schemaType:[\"string\",\"array\"]},{keyword:\"nullable\",schemaType:\"boolean\"},Hj.default,Bj.default];HB.default=zj});var yY=P((KB)=>{Object.defineProperty(KB,\"__esModule\",{value:!0});KB.validateAdditionalItems=void 0;var U6=p(),xY=e(),Uj={message:({params:{len:X}})=>U6.str`must NOT have more than ${X} items`,params:({params:{len:X}})=>U6._`{limit: ${X}}`},Vj={keyword:\"additionalItems\",type:\"array\",schemaType:[\"boolean\",\"object\"],before:\"uniqueItems\",error:Uj,code(X){let{parentSchema:Q,it:$}=X,{items:Y}=Q;if(!Array.isArray(Y)){(0,xY.checkStrictMode)($,'\"additionalItems\" is ignored when \"items\" is not an array of schemas');return}zB(X,Y)}};function zB(X,Q){let{gen:$,schema:Y,data:W,keyword:J,it:G}=X;G.items=!0;let H=$.const(\"len\",U6._`${W}.length`);if(Y===!1)X.setParams({len:Q.length}),X.pass(U6._`${H} <= ${Q.length}`);else if(typeof Y==\"object\"&&!(0,xY.alwaysValidSchema)(G,Y)){let z=$.var(\"valid\",U6._`${H} <= ${Q.length}`);$.if((0,U6.not)(z),()=>B(z)),X.ok(z)}function B(z){$.forRange(\"i\",Q.length,H,(K)=>{if(X.subschema({keyword:J,dataProp:K,dataPropType:xY.Type.Num},z),!G.allErrors)$.if((0,U6.not)(z),()=>$.break())})}}KB.validateAdditionalItems=zB;KB.default=Vj});var gY=P((qB)=>{Object.defineProperty(qB,\"__esModule\",{value:!0});qB.validateTuple=void 0;var VB=p(),i8=e(),qj=d0(),Fj={keyword:\"items\",type:\"array\",schemaType:[\"object\",\"array\",\"boolean\"],before:\"uniqueItems\",code(X){let{schema:Q,it:$}=X;if(Array.isArray(Q))return LB(X,\"additionalItems\",Q);if($.items=!0,(0,i8.alwaysValidSchema)($,Q))return;X.ok((0,qj.validateArray)(X))}};function LB(X,Q,$=X.schema){let{gen:Y,parentSchema:W,data:J,keyword:G,it:H}=X;if(K(W),H.opts.unevaluated&&$.length&&H.items!==!0)H.items=i8.mergeEvaluated.items(Y,$.length,H.items);let B=Y.name(\"valid\"),z=Y.const(\"len\",VB._`${J}.length`);$.forEach((V,L)=>{if((0,i8.alwaysValidSchema)(H,V))return;Y.if(VB._`${z} > ${L}`,()=>X.subschema({keyword:G,schemaProp:L,dataProp:L},B)),X.ok(B)});function K(V){let{opts:L,errSchemaPath:U}=H,F=$.length,q=F===V.minItems&&(F===V.maxItems||V[Q]===!1);if(L.strictTuples&&!q){let N=`\"${G}\" is ${F}-tuple, but minItems or maxItems/${Q} are not specified or different at path \"${U}\"`;(0,i8.checkStrictMode)(H,N,L.strictTuples)}}}qB.validateTuple=LB;qB.default=Fj});var OB=P((NB)=>{Object.defineProperty(NB,\"__esModule\",{value:!0});var Oj=gY(),Dj={keyword:\"prefixItems\",type:\"array\",schemaType:[\"array\"],before:\"uniqueItems\",code:(X)=>(0,Oj.validateTuple)(X,\"items\")};NB.default=Dj});var AB=P((wB)=>{Object.defineProperty(wB,\"__esModule\",{value:!0});var DB=p(),Aj=e(),Mj=d0(),jj=yY(),Rj={message:({params:{len:X}})=>DB.str`must NOT have more than ${X} items`,params:({params:{len:X}})=>DB._`{limit: ${X}}`},Ij={keyword:\"items\",type:\"array\",schemaType:[\"object\",\"boolean\"],before:\"uniqueItems\",error:Rj,code(X){let{schema:Q,parentSchema:$,it:Y}=X,{prefixItems:W}=$;if(Y.items=!0,(0,Aj.alwaysValidSchema)(Y,Q))return;if(W)(0,jj.validateAdditionalItems)(X,W);else X.ok((0,Mj.validateArray)(X))}};wB.default=Ij});var jB=P((MB)=>{Object.defineProperty(MB,\"__esModule\",{value:!0});var i0=p(),n8=e(),bj={message:({params:{min:X,max:Q}})=>Q===void 0?i0.str`must contain at least ${X} valid item(s)`:i0.str`must contain at least ${X} and no more than ${Q} valid item(s)`,params:({params:{min:X,max:Q}})=>Q===void 0?i0._`{minContains: ${X}}`:i0._`{minContains: ${X}, maxContains: ${Q}}`},Pj={keyword:\"contains\",type:\"array\",schemaType:[\"object\",\"boolean\"],before:\"uniqueItems\",trackErrors:!0,error:bj,code(X){let{gen:Q,schema:$,parentSchema:Y,data:W,it:J}=X,G,H,{minContains:B,maxContains:z}=Y;if(J.opts.next)G=B===void 0?1:B,H=z;else G=1;let K=Q.const(\"len\",i0._`${W}.length`);if(X.setParams({min:G,max:H}),H===void 0&&G===0){(0,n8.checkStrictMode)(J,'\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored');return}if(H!==void 0&&G>H){(0,n8.checkStrictMode)(J,'\"minContains\" > \"maxContains\" is always invalid'),X.fail();return}if((0,n8.alwaysValidSchema)(J,$)){let q=i0._`${K} >= ${G}`;if(H!==void 0)q=i0._`${q} && ${K} <= ${H}`;X.pass(q);return}J.items=!0;let V=Q.name(\"valid\");if(H===void 0&&G===1)U(V,()=>Q.if(V,()=>Q.break()));else if(G===0){if(Q.let(V,!0),H!==void 0)Q.if(i0._`${W}.length > 0`,L)}else Q.let(V,!1),L();X.result(V,()=>X.reset());function L(){let q=Q.name(\"_valid\"),N=Q.let(\"count\",0);U(q,()=>Q.if(q,()=>F(N)))}function U(q,N){Q.forRange(\"i\",0,K,(w)=>{X.subschema({keyword:\"contains\",dataProp:w,dataPropType:n8.Type.Num,compositeRule:!0},q),N()})}function F(q){if(Q.code(i0._`${q}++`),H===void 0)Q.if(i0._`${q} >= ${G}`,()=>Q.assign(V,!0).break());else if(Q.if(i0._`${q} > ${H}`,()=>Q.assign(V,!1).break()),G===1)Q.assign(V,!0);else Q.if(i0._`${q} >= ${G}`,()=>Q.assign(V,!0))}}};MB.default=Pj});var SB=P((EB)=>{Object.defineProperty(EB,\"__esModule\",{value:!0});EB.validateSchemaDeps=EB.validatePropertyDeps=EB.error=void 0;var fY=p(),Zj=e(),W4=d0();EB.error={message:({params:{property:X,depsCount:Q,deps:$}})=>{let Y=Q===1?\"property\":\"properties\";return fY.str`must have ${Y} ${$} when property ${X} is present`},params:({params:{property:X,depsCount:Q,deps:$,missingProperty:Y}})=>fY._`{property: ${X},\n missingProperty: ${Y},\n depsCount: ${Q},\n deps: ${$}}`};var Cj={keyword:\"dependencies\",type:\"object\",schemaType:\"object\",error:EB.error,code(X){let[Q,$]=kj(X);RB(X,Q),IB(X,$)}};function kj({schema:X}){let Q={},$={};for(let Y in X){if(Y===\"__proto__\")continue;let W=Array.isArray(X[Y])?Q:$;W[Y]=X[Y]}return[Q,$]}function RB(X,Q=X.schema){let{gen:$,data:Y,it:W}=X;if(Object.keys(Q).length===0)return;let J=$.let(\"missing\");for(let G in Q){let H=Q[G];if(H.length===0)continue;let B=(0,W4.propertyInData)($,Y,G,W.opts.ownProperties);if(X.setParams({property:G,depsCount:H.length,deps:H.join(\", \")}),W.allErrors)$.if(B,()=>{for(let z of H)(0,W4.checkReportMissingProp)(X,z)});else $.if(fY._`${B} && (${(0,W4.checkMissingProp)(X,H,J)})`),(0,W4.reportMissingProp)(X,J),$.else()}}EB.validatePropertyDeps=RB;function IB(X,Q=X.schema){let{gen:$,data:Y,keyword:W,it:J}=X,G=$.name(\"valid\");for(let H in Q){if((0,Zj.alwaysValidSchema)(J,Q[H]))continue;$.if((0,W4.propertyInData)($,Y,H,J.opts.ownProperties),()=>{let B=X.subschema({keyword:W,schemaProp:H},G);X.mergeValidEvaluated(B,G)},()=>$.var(G,!0)),X.ok(G)}}EB.validateSchemaDeps=IB;EB.default=Cj});var kB=P((CB)=>{Object.defineProperty(CB,\"__esModule\",{value:!0});var ZB=p(),_j=e(),xj={message:\"property name must be valid\",params:({params:X})=>ZB._`{propertyName: ${X.propertyName}}`},yj={keyword:\"propertyNames\",type:\"object\",schemaType:[\"object\",\"boolean\"],error:xj,code(X){let{gen:Q,schema:$,data:Y,it:W}=X;if((0,_j.alwaysValidSchema)(W,$))return;let J=Q.name(\"valid\");Q.forIn(\"key\",Y,(G)=>{X.setParams({propertyName:G}),X.subschema({keyword:\"propertyNames\",data:G,dataTypes:[\"string\"],propertyName:G,compositeRule:!0},J),Q.if((0,ZB.not)(J),()=>{if(X.error(!0),!W.allErrors)Q.break()})}),X.ok(J)}};CB.default=yj});var hY=P((vB)=>{Object.defineProperty(vB,\"__esModule\",{value:!0});var r8=d0(),$1=p(),fj=R1(),o8=e(),hj={message:\"must NOT have additional properties\",params:({params:X})=>$1._`{additionalProperty: ${X.additionalProperty}}`},uj={keyword:\"additionalProperties\",type:[\"object\"],schemaType:[\"boolean\",\"object\"],allowUndefined:!0,trackErrors:!0,error:hj,code(X){let{gen:Q,schema:$,parentSchema:Y,data:W,errsCount:J,it:G}=X;if(!J)throw Error(\"ajv implementation error\");let{allErrors:H,opts:B}=G;if(G.props=!0,B.removeAdditional!==\"all\"&&(0,o8.alwaysValidSchema)(G,$))return;let z=(0,r8.allSchemaProperties)(Y.properties),K=(0,r8.allSchemaProperties)(Y.patternProperties);V(),X.ok($1._`${J} === ${fj.default.errors}`);function V(){Q.forIn(\"key\",W,(N)=>{if(!z.length&&!K.length)F(N);else Q.if(L(N),()=>F(N))})}function L(N){let w;if(z.length>8){let M=(0,o8.schemaRefOrVal)(G,Y.properties,\"properties\");w=(0,r8.isOwnProperty)(Q,M,N)}else if(z.length)w=(0,$1.or)(...z.map((M)=>$1._`${N} === ${M}`));else w=$1.nil;if(K.length)w=(0,$1.or)(w,...K.map((M)=>$1._`${(0,r8.usePattern)(X,M)}.test(${N})`));return(0,$1.not)(w)}function U(N){Q.code($1._`delete ${W}[${N}]`)}function F(N){if(B.removeAdditional===\"all\"||B.removeAdditional&&$===!1){U(N);return}if($===!1){if(X.setParams({additionalProperty:N}),X.error(),!H)Q.break();return}if(typeof $==\"object\"&&!(0,o8.alwaysValidSchema)(G,$)){let w=Q.name(\"valid\");if(B.removeAdditional===\"failing\")q(N,w,!1),Q.if((0,$1.not)(w),()=>{X.reset(),U(N)});else if(q(N,w),!H)Q.if((0,$1.not)(w),()=>Q.break())}}function q(N,w,M){let R={keyword:\"additionalProperties\",dataProp:N,dataPropType:o8.Type.Str};if(M===!1)Object.assign(R,{compositeRule:!0,createErrors:!1,allErrors:!1});X.subschema(R,w)}}};vB.default=uj});var yB=P((xB)=>{Object.defineProperty(xB,\"__esModule\",{value:!0});var mj=iX(),TB=d0(),uY=e(),_B=hY(),cj={keyword:\"properties\",type:\"object\",schemaType:\"object\",code(X){let{gen:Q,schema:$,parentSchema:Y,data:W,it:J}=X;if(J.opts.removeAdditional===\"all\"&&Y.additionalProperties===void 0)_B.default.code(new mj.KeywordCxt(J,_B.default,\"additionalProperties\"));let G=(0,TB.allSchemaProperties)($);for(let V of G)J.definedProperties.add(V);if(J.opts.unevaluated&&G.length&&J.props!==!0)J.props=uY.mergeEvaluated.props(Q,(0,uY.toHash)(G),J.props);let H=G.filter((V)=>!(0,uY.alwaysValidSchema)(J,$[V]));if(H.length===0)return;let B=Q.name(\"valid\");for(let V of H){if(z(V))K(V);else{if(Q.if((0,TB.propertyInData)(Q,W,V,J.opts.ownProperties)),K(V),!J.allErrors)Q.else().var(B,!0);Q.endIf()}X.it.definedProperties.add(V),X.ok(B)}function z(V){return J.opts.useDefaults&&!J.compositeRule&&$[V].default!==void 0}function K(V){X.subschema({keyword:\"properties\",schemaProp:V,dataProp:V},B)}}};xB.default=cj});var lB=P((uB)=>{Object.defineProperty(uB,\"__esModule\",{value:!0});var gB=d0(),t8=p(),fB=e(),hB=e(),dj={keyword:\"patternProperties\",type:\"object\",schemaType:\"object\",code(X){let{gen:Q,schema:$,data:Y,parentSchema:W,it:J}=X,{opts:G}=J,H=(0,gB.allSchemaProperties)($),B=H.filter((q)=>(0,fB.alwaysValidSchema)(J,$[q]));if(H.length===0||B.length===H.length&&(!J.opts.unevaluated||J.props===!0))return;let z=G.strictSchema&&!G.allowMatchingProperties&&W.properties,K=Q.name(\"valid\");if(J.props!==!0&&!(J.props instanceof t8.Name))J.props=(0,hB.evaluatedPropsToName)(Q,J.props);let{props:V}=J;L();function L(){for(let q of H){if(z)U(q);if(J.allErrors)F(q);else Q.var(K,!0),F(q),Q.if(K)}}function U(q){for(let N in z)if(new RegExp(q).test(N))(0,fB.checkStrictMode)(J,`property ${N} matches pattern ${q} (use allowMatchingProperties)`)}function F(q){Q.forIn(\"key\",Y,(N)=>{Q.if(t8._`${(0,gB.usePattern)(X,q)}.test(${N})`,()=>{let w=B.includes(q);if(!w)X.subschema({keyword:\"patternProperties\",schemaProp:q,dataProp:N,dataPropType:hB.Type.Str},K);if(J.opts.unevaluated&&V!==!0)Q.assign(t8._`${V}[${N}]`,!0);else if(!w&&!J.allErrors)Q.if((0,t8.not)(K),()=>Q.break())})})}}};uB.default=dj});var cB=P((mB)=>{Object.defineProperty(mB,\"__esModule\",{value:!0});var nj=e(),rj={keyword:\"not\",schemaType:[\"object\",\"boolean\"],trackErrors:!0,code(X){let{gen:Q,schema:$,it:Y}=X;if((0,nj.alwaysValidSchema)(Y,$)){X.fail();return}let W=Q.name(\"valid\");X.subschema({keyword:\"not\",compositeRule:!0,createErrors:!1,allErrors:!1},W),X.failResult(W,()=>X.reset(),()=>X.error())},error:{message:\"must NOT be valid\"}};mB.default=rj});var dB=P((pB)=>{Object.defineProperty(pB,\"__esModule\",{value:!0});var tj=d0(),aj={keyword:\"anyOf\",schemaType:\"array\",trackErrors:!0,code:tj.validateUnion,error:{message:\"must match a schema in anyOf\"}};pB.default=aj});var nB=P((iB)=>{Object.defineProperty(iB,\"__esModule\",{value:!0});var a8=p(),ej=e(),XR={message:\"must match exactly one schema in oneOf\",params:({params:X})=>a8._`{passingSchemas: ${X.passing}}`},QR={keyword:\"oneOf\",schemaType:\"array\",trackErrors:!0,error:XR,code(X){let{gen:Q,schema:$,parentSchema:Y,it:W}=X;if(!Array.isArray($))throw Error(\"ajv implementation error\");if(W.opts.discriminator&&Y.discriminator)return;let J=$,G=Q.let(\"valid\",!1),H=Q.let(\"passing\",null),B=Q.name(\"_valid\");X.setParams({passing:H}),Q.block(z),X.result(G,()=>X.reset(),()=>X.error(!0));function z(){J.forEach((K,V)=>{let L;if((0,ej.alwaysValidSchema)(W,K))Q.var(B,!0);else L=X.subschema({keyword:\"oneOf\",schemaProp:V,compositeRule:!0},B);if(V>0)Q.if(a8._`${B} && ${G}`).assign(G,!1).assign(H,a8._`[${H}, ${V}]`).else();Q.if(B,()=>{if(Q.assign(G,!0),Q.assign(H,V),L)X.mergeEvaluated(L,a8.Name)})})}}};iB.default=QR});var oB=P((rB)=>{Object.defineProperty(rB,\"__esModule\",{value:!0});var YR=e(),WR={keyword:\"allOf\",schemaType:\"array\",code(X){let{gen:Q,schema:$,it:Y}=X;if(!Array.isArray($))throw Error(\"ajv implementation error\");let W=Q.name(\"valid\");$.forEach((J,G)=>{if((0,YR.alwaysValidSchema)(Y,J))return;let H=X.subschema({keyword:\"allOf\",schemaProp:G},W);X.ok(W),X.mergeEvaluated(H)})}};rB.default=WR});var eB=P((sB)=>{Object.defineProperty(sB,\"__esModule\",{value:!0});var s8=p(),aB=e(),GR={message:({params:X})=>s8.str`must match \"${X.ifClause}\" schema`,params:({params:X})=>s8._`{failingKeyword: ${X.ifClause}}`},HR={keyword:\"if\",schemaType:[\"object\",\"boolean\"],trackErrors:!0,error:GR,code(X){let{gen:Q,parentSchema:$,it:Y}=X;if($.then===void 0&&$.else===void 0)(0,aB.checkStrictMode)(Y,'\"if\" without \"then\" and \"else\" is ignored');let W=tB(Y,\"then\"),J=tB(Y,\"else\");if(!W&&!J)return;let G=Q.let(\"valid\",!0),H=Q.name(\"_valid\");if(B(),X.reset(),W&&J){let K=Q.let(\"ifClause\");X.setParams({ifClause:K}),Q.if(H,z(\"then\",K),z(\"else\",K))}else if(W)Q.if(H,z(\"then\"));else Q.if((0,s8.not)(H),z(\"else\"));X.pass(G,()=>X.error(!0));function B(){let K=X.subschema({keyword:\"if\",compositeRule:!0,createErrors:!1,allErrors:!1},H);X.mergeEvaluated(K)}function z(K,V){return()=>{let L=X.subschema({keyword:K},H);if(Q.assign(G,H),X.mergeValidEvaluated(L,G),V)Q.assign(V,s8._`${K}`);else X.setParams({ifClause:K})}}}};function tB(X,Q){let $=X.schema[Q];return $!==void 0&&!(0,aB.alwaysValidSchema)(X,$)}sB.default=HR});var Qz=P((Xz)=>{Object.defineProperty(Xz,\"__esModule\",{value:!0});var zR=e(),KR={keyword:[\"then\",\"else\"],schemaType:[\"object\",\"boolean\"],code({keyword:X,parentSchema:Q,it:$}){if(Q.if===void 0)(0,zR.checkStrictMode)($,`\"${X}\" without \"if\" is ignored`)}};Xz.default=KR});var Yz=P(($z)=>{Object.defineProperty($z,\"__esModule\",{value:!0});var VR=yY(),LR=OB(),qR=gY(),FR=AB(),NR=jB(),OR=SB(),DR=kB(),wR=hY(),AR=yB(),MR=lB(),jR=cB(),RR=dB(),IR=nB(),ER=oB(),bR=eB(),PR=Qz();function SR(X=!1){let Q=[jR.default,RR.default,IR.default,ER.default,bR.default,PR.default,DR.default,wR.default,OR.default,AR.default,MR.default];if(X)Q.push(LR.default,FR.default);else Q.push(VR.default,qR.default);return Q.push(NR.default),Q}$z.default=SR});var Jz=P((Wz)=>{Object.defineProperty(Wz,\"__esModule\",{value:!0});var L0=p(),CR={message:({schemaCode:X})=>L0.str`must match format \"${X}\"`,params:({schemaCode:X})=>L0._`{format: ${X}}`},kR={keyword:\"format\",type:[\"number\",\"string\"],schemaType:\"string\",$data:!0,error:CR,code(X,Q){let{gen:$,data:Y,$data:W,schema:J,schemaCode:G,it:H}=X,{opts:B,errSchemaPath:z,schemaEnv:K,self:V}=H;if(!B.validateFormats)return;if(W)L();else U();function L(){let F=$.scopeValue(\"formats\",{ref:V.formats,code:B.code.formats}),q=$.const(\"fDef\",L0._`${F}[${G}]`),N=$.let(\"fType\"),w=$.let(\"format\");$.if(L0._`typeof ${q} == \"object\" && !(${q} instanceof RegExp)`,()=>$.assign(N,L0._`${q}.type || \"string\"`).assign(w,L0._`${q}.validate`),()=>$.assign(N,L0._`\"string\"`).assign(w,q)),X.fail$data((0,L0.or)(M(),R()));function M(){if(B.strictSchema===!1)return L0.nil;return L0._`${G} && !${w}`}function R(){let S=K.$async?L0._`(${q}.async ? await ${w}(${Y}) : ${w}(${Y}))`:L0._`${w}(${Y})`,C=L0._`(typeof ${w} == \"function\" ? ${S} : ${w}.test(${Y}))`;return L0._`${w} && ${w} !== true && ${N} === ${Q} && !${C}`}}function U(){let F=V.formats[J];if(!F){M();return}if(F===!0)return;let[q,N,w]=R(F);if(q===Q)X.pass(S());function M(){if(B.strictSchema===!1){V.logger.warn(C());return}throw Error(C());function C(){return`unknown format \"${J}\" ignored in schema at path \"${z}\"`}}function R(C){let K0=C instanceof RegExp?(0,L0.regexpCode)(C):B.code.formats?L0._`${B.code.formats}${(0,L0.getProperty)(J)}`:void 0,U0=$.scopeValue(\"formats\",{key:J,ref:C,code:K0});if(typeof C==\"object\"&&!(C instanceof RegExp))return[C.type||\"string\",C.validate,L0._`${U0}.validate`];return[\"string\",C,U0]}function S(){if(typeof F==\"object\"&&!(F instanceof RegExp)&&F.async){if(!K.$async)throw Error(\"async format in sync schema\");return L0._`await ${w}(${Y})`}return typeof N==\"function\"?L0._`${w}(${Y})`:L0._`${w}.test(${Y})`}}}};Wz.default=kR});var Hz=P((Gz)=>{Object.defineProperty(Gz,\"__esModule\",{value:!0});var TR=Jz(),_R=[TR.default];Gz.default=_R});var Kz=P((Bz)=>{Object.defineProperty(Bz,\"__esModule\",{value:!0});Bz.contentVocabulary=Bz.metadataVocabulary=void 0;Bz.metadataVocabulary=[\"title\",\"description\",\"default\",\"deprecated\",\"readOnly\",\"writeOnly\",\"examples\"];Bz.contentVocabulary=[\"contentMediaType\",\"contentEncoding\",\"contentSchema\"]});var Lz=P((Vz)=>{Object.defineProperty(Vz,\"__esModule\",{value:!0});var gR=xH(),fR=BB(),hR=Yz(),uR=Hz(),Uz=Kz(),lR=[gR.default,fR.default,(0,hR.default)(),uR.default,Uz.metadataVocabulary,Uz.contentVocabulary];Vz.default=lR});var Oz=P((Fz)=>{Object.defineProperty(Fz,\"__esModule\",{value:!0});Fz.DiscrError=void 0;var qz;(function(X){X.Tag=\"tag\",X.Mapping=\"mapping\"})(qz||(Fz.DiscrError=qz={}))});var Az=P((wz)=>{Object.defineProperty(wz,\"__esModule\",{value:!0});var d6=p(),lY=Oz(),Dz=_8(),cR=nX(),pR=e(),dR={message:({params:{discrError:X,tagName:Q}})=>X===lY.DiscrError.Tag?`tag \"${Q}\" must be string`:`value of tag \"${Q}\" must be in oneOf`,params:({params:{discrError:X,tag:Q,tagName:$}})=>d6._`{error: ${X}, tag: ${$}, tagValue: ${Q}}`},iR={keyword:\"discriminator\",type:\"object\",schemaType:\"object\",error:dR,code(X){let{gen:Q,data:$,schema:Y,parentSchema:W,it:J}=X,{oneOf:G}=W;if(!J.opts.discriminator)throw Error(\"discriminator: requires discriminator option\");let H=Y.propertyName;if(typeof H!=\"string\")throw Error(\"discriminator: requires propertyName\");if(Y.mapping)throw Error(\"discriminator: mapping is not supported\");if(!G)throw Error(\"discriminator: requires oneOf keyword\");let B=Q.let(\"valid\",!1),z=Q.const(\"tag\",d6._`${$}${(0,d6.getProperty)(H)}`);Q.if(d6._`typeof ${z} == \"string\"`,()=>K(),()=>X.error(!1,{discrError:lY.DiscrError.Tag,tag:z,tagName:H})),X.ok(B);function K(){let U=L();Q.if(!1);for(let F in U)Q.elseIf(d6._`${z} === ${F}`),Q.assign(B,V(U[F]));Q.else(),X.error(!1,{discrError:lY.DiscrError.Mapping,tag:z,tagName:H}),Q.endIf()}function V(U){let F=Q.name(\"valid\"),q=X.subschema({keyword:\"oneOf\",schemaProp:U},F);return X.mergeEvaluated(q,d6.Name),F}function L(){var U;let F={},q=w(W),N=!0;for(let S=0;S<G.length;S++){let C=G[S];if((C===null||C===void 0?void 0:C.$ref)&&!(0,pR.schemaHasRulesButRef)(C,J.self.RULES)){let U0=C.$ref;if(C=Dz.resolveRef.call(J.self,J.schemaEnv.root,J.baseId,U0),C instanceof Dz.SchemaEnv)C=C.schema;if(C===void 0)throw new cR.default(J.opts.uriResolver,J.baseId,U0)}let K0=(U=C===null||C===void 0?void 0:C.properties)===null||U===void 0?void 0:U[H];if(typeof K0!=\"object\")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${H}\"`);N=N&&(q||w(C)),M(K0,S)}if(!N)throw Error(`discriminator: \"${H}\" must be required`);return F;function w({required:S}){return Array.isArray(S)&&S.includes(H)}function M(S,C){if(S.const)R(S.const,C);else if(S.enum)for(let K0 of S.enum)R(K0,C);else throw Error(`discriminator: \"properties/${H}\" must have \"const\" or \"enum\"`)}function R(S,C){if(typeof S!=\"string\"||S in F)throw Error(`discriminator: \"${H}\" values must be unique strings`);F[S]=C}}}};wz.default=iR});var Mz=P((H_,rR)=>{rR.exports={$schema:\"http://json-schema.org/draft-07/schema#\",$id:\"http://json-schema.org/draft-07/schema#\",title:\"Core schema meta-schema\",definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:\"#/definitions/nonNegativeInteger\"},{default:0}]},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}},type:[\"object\",\"boolean\"],properties:{$id:{type:\"string\",format:\"uri-reference\"},$schema:{type:\"string\",format:\"uri\"},$ref:{type:\"string\",format:\"uri-reference\"},$comment:{type:\"string\"},title:{type:\"string\"},description:{type:\"string\"},default:!0,readOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/definitions/nonNegativeInteger\"},minLength:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},additionalItems:{$ref:\"#\"},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:!0},maxItems:{$ref:\"#/definitions/nonNegativeInteger\"},minItems:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},contains:{$ref:\"#\"},maxProperties:{$ref:\"#/definitions/nonNegativeInteger\"},minProperties:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},required:{$ref:\"#/definitions/stringArray\"},additionalProperties:{$ref:\"#\"},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},propertyNames:{format:\"regex\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},propertyNames:{$ref:\"#\"},const:!0,enum:{type:\"array\",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{type:\"string\"},contentMediaType:{type:\"string\"},contentEncoding:{type:\"string\"},if:{$ref:\"#\"},then:{$ref:\"#\"},else:{$ref:\"#\"},allOf:{$ref:\"#/definitions/schemaArray\"},anyOf:{$ref:\"#/definitions/schemaArray\"},oneOf:{$ref:\"#/definitions/schemaArray\"},not:{$ref:\"#\"}},default:!0}});var cY=P((f0,mY)=>{Object.defineProperty(f0,\"__esModule\",{value:!0});f0.MissingRefError=f0.ValidationError=f0.CodeGen=f0.Name=f0.nil=f0.stringify=f0.str=f0._=f0.KeywordCxt=f0.Ajv=void 0;var oR=EH(),tR=Lz(),aR=Az(),jz=Mz(),sR=[\"/properties\"],e8=\"http://json-schema.org/draft-07/schema\";class J4 extends oR.default{_addVocabularies(){if(super._addVocabularies(),tR.default.forEach((X)=>this.addVocabulary(X)),this.opts.discriminator)this.addKeyword(aR.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let X=this.opts.$data?this.$dataMetaSchema(jz,sR):jz;this.addMetaSchema(X,e8,!1),this.refs[\"http://json-schema.org/schema\"]=e8}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(e8)?e8:void 0)}}f0.Ajv=J4;mY.exports=f0=J4;mY.exports.Ajv=J4;Object.defineProperty(f0,\"__esModule\",{value:!0});f0.default=J4;var eR=iX();Object.defineProperty(f0,\"KeywordCxt\",{enumerable:!0,get:function(){return eR.KeywordCxt}});var i6=p();Object.defineProperty(f0,\"_\",{enumerable:!0,get:function(){return i6._}});Object.defineProperty(f0,\"str\",{enumerable:!0,get:function(){return i6.str}});Object.defineProperty(f0,\"stringify\",{enumerable:!0,get:function(){return i6.stringify}});Object.defineProperty(f0,\"nil\",{enumerable:!0,get:function(){return i6.nil}});Object.defineProperty(f0,\"Name\",{enumerable:!0,get:function(){return i6.Name}});Object.defineProperty(f0,\"CodeGen\",{enumerable:!0,get:function(){return i6.CodeGen}});var XI=v8();Object.defineProperty(f0,\"ValidationError\",{enumerable:!0,get:function(){return XI.default}});var QI=nX();Object.defineProperty(f0,\"MissingRefError\",{enumerable:!0,get:function(){return QI.default}})});var vz=P((Cz)=>{Object.defineProperty(Cz,\"__esModule\",{value:!0});Cz.formatNames=Cz.fastFormats=Cz.fullFormats=void 0;function V1(X,Q){return{validate:X,compare:Q}}Cz.fullFormats={date:V1(bz,nY),time:V1(dY(!0),rY),\"date-time\":V1(Rz(!0),Sz),\"iso-time\":V1(dY(),Pz),\"iso-date-time\":V1(Rz(),Zz),duration:/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,uri:zI,\"uri-reference\":/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\"uri-template\":/^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,url:/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,regex:NI,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\"json-pointer\":/^(?:\\/(?:[^~/]|~0|~1)*)*$/,\"json-pointer-uri-fragment\":/^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\"relative-json-pointer\":/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,byte:KI,int32:{type:\"number\",validate:LI},int64:{type:\"number\",validate:qI},float:{type:\"number\",validate:Ez},double:{type:\"number\",validate:Ez},password:!0,binary:!0};Cz.fastFormats={...Cz.fullFormats,date:V1(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,nY),time:V1(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,rY),\"date-time\":V1(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,Sz),\"iso-time\":V1(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,Pz),\"iso-date-time\":V1(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,Zz),uri:/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\"uri-reference\":/^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Cz.formatNames=Object.keys(Cz.fullFormats);function WI(X){return X%4===0&&(X%100!==0||X%400===0)}var JI=/^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/,GI=[0,31,28,31,30,31,30,31,31,30,31,30,31];function bz(X){let Q=JI.exec(X);if(!Q)return!1;let $=+Q[1],Y=+Q[2],W=+Q[3];return Y>=1&&Y<=12&&W>=1&&W<=(Y===2&&WI($)?29:GI[Y])}function nY(X,Q){if(!(X&&Q))return;if(X>Q)return 1;if(X<Q)return-1;return 0}var pY=/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;function dY(X){return function($){let Y=pY.exec($);if(!Y)return!1;let W=+Y[1],J=+Y[2],G=+Y[3],H=Y[4],B=Y[5]===\"-\"?-1:1,z=+(Y[6]||0),K=+(Y[7]||0);if(z>23||K>59||X&&!H)return!1;if(W<=23&&J<=59&&G<60)return!0;let V=J-K*B,L=W-z*B-(V<0?1:0);return(L===23||L===-1)&&(V===59||V===-1)&&G<61}}function rY(X,Q){if(!(X&&Q))return;let $=new Date(\"2020-01-01T\"+X).valueOf(),Y=new Date(\"2020-01-01T\"+Q).valueOf();if(!($&&Y))return;return $-Y}function Pz(X,Q){if(!(X&&Q))return;let $=pY.exec(X),Y=pY.exec(Q);if(!($&&Y))return;if(X=$[1]+$[2]+$[3],Q=Y[1]+Y[2]+Y[3],X>Q)return 1;if(X<Q)return-1;return 0}var iY=/t|\\s/i;function Rz(X){let Q=dY(X);return function(Y){let W=Y.split(iY);return W.length===2&&bz(W[0])&&Q(W[1])}}function Sz(X,Q){if(!(X&&Q))return;let $=new Date(X).valueOf(),Y=new Date(Q).valueOf();if(!($&&Y))return;return $-Y}function Zz(X,Q){if(!(X&&Q))return;let[$,Y]=X.split(iY),[W,J]=Q.split(iY),G=nY($,W);if(G===void 0)return;return G||rY(Y,J)}var HI=/\\/|:/,BI=/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function zI(X){return HI.test(X)&&BI.test(X)}var Iz=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function KI(X){return Iz.lastIndex=0,Iz.test(X)}var UI=-2147483648,VI=2147483647;function LI(X){return Number.isInteger(X)&&X<=VI&&X>=UI}function qI(X){return Number.isInteger(X)}function Ez(){return!0}var FI=/[^\\\\]\\\\Z/;function NI(X){if(FI.test(X))return!1;try{return new RegExp(X),!0}catch(Q){return!1}}});var _z=P((Tz)=>{Object.defineProperty(Tz,\"__esModule\",{value:!0});Tz.formatLimitDefinition=void 0;var DI=cY(),Y1=p(),n1=Y1.operators,X9={formatMaximum:{okStr:\"<=\",ok:n1.LTE,fail:n1.GT},formatMinimum:{okStr:\">=\",ok:n1.GTE,fail:n1.LT},formatExclusiveMaximum:{okStr:\"<\",ok:n1.LT,fail:n1.GTE},formatExclusiveMinimum:{okStr:\">\",ok:n1.GT,fail:n1.LTE}},wI={message:({keyword:X,schemaCode:Q})=>Y1.str`should be ${X9[X].okStr} ${Q}`,params:({keyword:X,schemaCode:Q})=>Y1._`{comparison: ${X9[X].okStr}, limit: ${Q}}`};Tz.formatLimitDefinition={keyword:Object.keys(X9),type:\"string\",schemaType:\"string\",$data:!0,error:wI,code(X){let{gen:Q,data:$,schemaCode:Y,keyword:W,it:J}=X,{opts:G,self:H}=J;if(!G.validateFormats)return;let B=new DI.KeywordCxt(J,H.RULES.all.format.definition,\"format\");if(B.$data)z();else K();function z(){let L=Q.scopeValue(\"formats\",{ref:H.formats,code:G.code.formats}),U=Q.const(\"fmt\",Y1._`${L}[${B.schemaCode}]`);X.fail$data((0,Y1.or)(Y1._`typeof ${U} != \"object\"`,Y1._`${U} instanceof RegExp`,Y1._`typeof ${U}.compare != \"function\"`,V(U)))}function K(){let L=B.schema,U=H.formats[L];if(!U||U===!0)return;if(typeof U!=\"object\"||U instanceof RegExp||typeof U.compare!=\"function\")throw Error(`\"${W}\": format \"${L}\" does not define \"compare\" function`);let F=Q.scopeValue(\"formats\",{key:L,ref:U,code:G.code.formats?Y1._`${G.code.formats}${(0,Y1.getProperty)(L)}`:void 0});X.fail$data(V(F))}function V(L){return Y1._`${L}.compare(${$}, ${Y}) ${X9[W].fail} 0`}},dependencies:[\"format\"]};var AI=(X)=>{return X.addKeyword(Tz.formatLimitDefinition),X};Tz.default=AI});var fz=P((G4,gz)=>{Object.defineProperty(G4,\"__esModule\",{value:!0});var n6=vz(),jI=_z(),aY=p(),xz=new aY.Name(\"fullFormats\"),RI=new aY.Name(\"fastFormats\"),sY=(X,Q={keywords:!0})=>{if(Array.isArray(Q))return yz(X,Q,n6.fullFormats,xz),X;let[$,Y]=Q.mode===\"fast\"?[n6.fastFormats,RI]:[n6.fullFormats,xz],W=Q.formats||n6.formatNames;if(yz(X,W,$,Y),Q.keywords)(0,jI.default)(X);return X};sY.get=(X,Q=\"full\")=>{let Y=(Q===\"fast\"?n6.fastFormats:n6.fullFormats)[X];if(!Y)throw Error(`Unknown format \"${X}\"`);return Y};function yz(X,Q,$,Y){var W,J;(W=(J=X.opts.code).formats)!==null&&W!==void 0||(J.formats=aY._`require(\"ajv-formats/dist/formats\").${Y}`);for(let G of Q)X.addFormat(G,$[G])}gz.exports=G4=sY;Object.defineProperty(G4,\"__esModule\",{value:!0});G4.default=sY});import{join as tz}from\"path\";import{fileURLToPath as TI}from\"url\";import{setMaxListeners as UK}from\"events\";var VK=50;function F6(X=VK){let Q=new AbortController;return UK(X,Q.signal),Q}import{spawn as XV}from\"child_process\";import{createInterface as QV}from\"readline\";import*as h from\"fs\";import{stat as hU,readdir as uU,unlink as lU,rmdir as mU,rm as cU,open as zP}from\"fs/promises\";var LK=typeof global==\"object\"&&global&&global.Object===Object&&global,q7=LK;var qK=typeof self==\"object\"&&self&&self.Object===Object&&self,FK=q7||qK||Function(\"return this\")(),N6=FK;var NK=N6.Symbol,O6=NK;var F7=Object.prototype,OK=F7.hasOwnProperty,DK=F7.toString,e6=O6?O6.toStringTag:void 0;function wK(X){var Q=OK.call(X,e6),$=X[e6];try{X[e6]=void 0;var Y=!0}catch(J){}var W=DK.call(X);if(Y)if(Q)X[e6]=$;else delete X[e6];return W}var N7=wK;var AK=Object.prototype,MK=AK.toString;function jK(X){return MK.call(X)}var O7=jK;var RK=\"[object Null]\",IK=\"[object Undefined]\",D7=O6?O6.toStringTag:void 0;function EK(X){if(X==null)return X===void 0?IK:RK;return D7&&D7 in Object(X)?N7(X):O7(X)}var w7=EK;function bK(X){var Q=typeof X;return X!=null&&(Q==\"object\"||Q==\"function\")}var z4=bK;var PK=\"[object AsyncFunction]\",SK=\"[object Function]\",ZK=\"[object GeneratorFunction]\",CK=\"[object Proxy]\";function kK(X){if(!z4(X))return!1;var Q=w7(X);return Q==SK||Q==ZK||Q==PK||Q==CK}var A7=kK;var vK=N6[\"__core-js_shared__\"],K4=vK;var M7=function(){var X=/[^.]+$/.exec(K4&&K4.keys&&K4.keys.IE_PROTO||\"\");return X?\"Symbol(src)_1.\"+X:\"\"}();function TK(X){return!!M7&&M7 in X}var j7=TK;var _K=Function.prototype,xK=_K.toString;function yK(X){if(X!=null){try{return xK.call(X)}catch(Q){}try{return X+\"\"}catch(Q){}}return\"\"}var R7=yK;var gK=/[\\\\^$.*+?()[\\]{}|]/g,fK=/^\\[object .+?Constructor\\]$/,hK=Function.prototype,uK=Object.prototype,lK=hK.toString,mK=uK.hasOwnProperty,cK=RegExp(\"^\"+lK.call(mK).replace(gK,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function pK(X){if(!z4(X)||j7(X))return!1;var Q=A7(X)?cK:fK;return Q.test(R7(X))}var I7=pK;function dK(X,Q){return X==null?void 0:X[Q]}var E7=dK;function iK(X,Q){var $=E7(X,Q);return I7($)?$:void 0}var U4=iK;var nK=U4(Object,\"create\"),q1=nK;function rK(){this.__data__=q1?q1(null):{},this.size=0}var b7=rK;function oK(X){var Q=this.has(X)&&delete this.__data__[X];return this.size-=Q?1:0,Q}var P7=oK;var tK=\"__lodash_hash_undefined__\",aK=Object.prototype,sK=aK.hasOwnProperty;function eK(X){var Q=this.__data__;if(q1){var $=Q[X];return $===tK?void 0:$}return sK.call(Q,X)?Q[X]:void 0}var S7=eK;var XU=Object.prototype,QU=XU.hasOwnProperty;function $U(X){var Q=this.__data__;return q1?Q[X]!==void 0:QU.call(Q,X)}var Z7=$U;var YU=\"__lodash_hash_undefined__\";function WU(X,Q){var $=this.__data__;return this.size+=this.has(X)?0:1,$[X]=q1&&Q===void 0?YU:Q,this}var C7=WU;function D6(X){var Q=-1,$=X==null?0:X.length;this.clear();while(++Q<$){var Y=X[Q];this.set(Y[0],Y[1])}}D6.prototype.clear=b7;D6.prototype.delete=P7;D6.prototype.get=S7;D6.prototype.has=Z7;D6.prototype.set=C7;var W9=D6;function JU(){this.__data__=[],this.size=0}var k7=JU;function GU(X,Q){return X===Q||X!==X&&Q!==Q}var v7=GU;function HU(X,Q){var $=X.length;while($--)if(v7(X[$][0],Q))return $;return-1}var Z1=HU;var BU=Array.prototype,zU=BU.splice;function KU(X){var Q=this.__data__,$=Z1(Q,X);if($<0)return!1;var Y=Q.length-1;if($==Y)Q.pop();else zU.call(Q,$,1);return--this.size,!0}var T7=KU;function UU(X){var Q=this.__data__,$=Z1(Q,X);return $<0?void 0:Q[$][1]}var _7=UU;function VU(X){return Z1(this.__data__,X)>-1}var x7=VU;function LU(X,Q){var $=this.__data__,Y=Z1($,X);if(Y<0)++this.size,$.push([X,Q]);else $[Y][1]=Q;return this}var y7=LU;function w6(X){var Q=-1,$=X==null?0:X.length;this.clear();while(++Q<$){var Y=X[Q];this.set(Y[0],Y[1])}}w6.prototype.clear=k7;w6.prototype.delete=T7;w6.prototype.get=_7;w6.prototype.has=x7;w6.prototype.set=y7;var g7=w6;var qU=U4(N6,\"Map\"),f7=qU;function FU(){this.size=0,this.__data__={hash:new W9,map:new(f7||g7),string:new W9}}var h7=FU;function NU(X){var Q=typeof X;return Q==\"string\"||Q==\"number\"||Q==\"symbol\"||Q==\"boolean\"?X!==\"__proto__\":X===null}var u7=NU;function OU(X,Q){var $=X.__data__;return u7(Q)?$[typeof Q==\"string\"?\"string\":\"hash\"]:$.map}var C1=OU;function DU(X){var Q=C1(this,X).delete(X);return this.size-=Q?1:0,Q}var l7=DU;function wU(X){return C1(this,X).get(X)}var m7=wU;function AU(X){return C1(this,X).has(X)}var c7=AU;function MU(X,Q){var $=C1(this,X),Y=$.size;return $.set(X,Q),this.size+=$.size==Y?0:1,this}var p7=MU;function A6(X){var Q=-1,$=X==null?0:X.length;this.clear();while(++Q<$){var Y=X[Q];this.set(Y[0],Y[1])}}A6.prototype.clear=h7;A6.prototype.delete=l7;A6.prototype.get=m7;A6.prototype.has=c7;A6.prototype.set=p7;var J9=A6;var jU=\"Expected a function\";function G9(X,Q){if(typeof X!=\"function\"||Q!=null&&typeof Q!=\"function\")throw TypeError(jU);var $=function(){var Y=arguments,W=Q?Q.apply(this,Y):Y[0],J=$.cache;if(J.has(W))return J.get(W);var G=X.apply(this,Y);return $.cache=J.set(W,G)||J,G};return $.cache=new(G9.Cache||J9),$}G9.Cache=J9;var k1=G9;function RU(X,Q){if(X.destroyed)return;X.write(Q)}function d7(X){RU(process.stderr,X)}var i7=k1((X)=>{if(!X||X.trim()===\"\")return null;let Q=X.split(\",\").map((J)=>J.trim()).filter(Boolean);if(Q.length===0)return null;let $=Q.some((J)=>J.startsWith(\"!\")),Y=Q.some((J)=>!J.startsWith(\"!\"));if($&&Y)return null;let W=Q.map((J)=>J.replace(/^!/,\"\").toLowerCase());return{include:$?[]:W,exclude:$?W:[],isExclusive:$}});function IU(X){let Q=[],$=X.match(/^MCP server [\"']([^\"']+)[\"']/);if($&&$[1])Q.push(\"mcp\"),Q.push($[1].toLowerCase());else{let J=X.match(/^([^:[]+):/);if(J&&J[1])Q.push(J[1].trim().toLowerCase())}let Y=X.match(/^\\[([^\\]]+)]/);if(Y&&Y[1])Q.push(Y[1].trim().toLowerCase());if(X.toLowerCase().includes(\"1p event:\"))Q.push(\"1p\");let W=X.match(/:\\s*([^:]+?)(?:\\s+(?:type|mode|status|event))?:/);if(W&&W[1]){let J=W[1].trim().toLowerCase();if(J.length<30&&!J.includes(\" \"))Q.push(J)}return Array.from(new Set(Q))}function EU(X,Q){if(!Q)return!0;if(X.length===0)return!1;if(Q.isExclusive)return!X.some(($)=>Q.exclude.includes($));else return X.some(($)=>Q.include.includes($))}function n7(X,Q){if(!Q)return!0;let $=IU(X);return EU($,Q)}import{join as bU}from\"path\";import{homedir as PU}from\"os\";function V4(){return process.env.CLAUDE_CONFIG_DIR??bU(PU(),\".claude\")}function H9(X){if(!X)return!1;if(typeof X===\"boolean\")return X;let Q=X.toLowerCase().trim();return[\"1\",\"true\",\"yes\",\"on\"].includes(Q)}import{dirname as z9,join as YW}from\"path\";import{cwd as SU}from\"process\";import{realpathSync as a7}from\"fs\";import{randomUUID as ZU}from\"crypto\";function r7(X){return{name:X,default:30000,validate:(Q)=>{if(!Q)return{effective:30000,status:\"valid\"};let $=parseInt(Q,10);if(isNaN($)||$<=0)return{effective:30000,status:\"invalid\",message:`Invalid value \"${Q}\" (using default: 30000)`};if($>150000)return{effective:150000,status:\"capped\",message:`Capped from ${$} to 150000`};return{effective:$,status:\"valid\"}}}}var o7=r7(\"BASH_MAX_OUTPUT_LENGTH\"),Pb=r7(\"TASK_MAX_OUTPUT_LENGTH\"),t7={name:\"CLAUDE_CODE_MAX_OUTPUT_TOKENS\",default:32000,validate:(X)=>{if(!X)return{effective:32000,status:\"valid\"};let Y=parseInt(X,10);if(isNaN(Y)||Y<=0)return{effective:32000,status:\"invalid\",message:`Invalid value \"${X}\" (using default: 32000)`};if(Y>64000)return{effective:64000,status:\"capped\",message:`Capped from ${Y} to 64000`};return{effective:Y,status:\"valid\"}}};function CU(){let X=\"\";if(typeof process<\"u\"&&typeof process.cwd===\"function\"&&typeof a7===\"function\")X=a7(SU());return{originalCwd:X,projectRoot:X,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:X,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:\"cli\",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:[\"userSettings\",\"projectSettings\",\"localSettings\",\"flagSettings\",\"policySettings\"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:ZU(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[o7,t7],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],promptCacheBreaks:[],sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,directConnectServerUrl:void 0,systemPromptSectionCache:new Map,additionalDirectoriesForClaudeMd:[],resumedTranscriptPath:null}}var kU=CU();function s7(){return kU.sessionId}function e7({writeFn:X,flushIntervalMs:Q=1000,maxBufferSize:$=100,immediateMode:Y=!1}){let W=[],J=null;function G(){if(J)clearTimeout(J),J=null}function H(){if(W.length===0)return;X(W.join(\"\")),W=[],G()}function B(){if(!J)J=setTimeout(H,Q)}return{write(z){if(Y){X(z);return}if(W.push(z),B(),W.length>=$)H()},flush:H,dispose(){H()}}}var XW=new Set;function QW(X){return XW.add(X),()=>XW.delete(X)}var B9=1/0;function vU(X){if(X===null)return\"null\";if(X===void 0)return\"undefined\";if(Array.isArray(X))return`Array[${X.length}]`;if(typeof X===\"object\")return`Object{${Object.keys(X).length} keys}`;if(typeof X===\"string\")return`string(${X.length} chars)`;return typeof X}function $W(X,Q){let $=performance.now();try{return Q()}finally{performance.now()-$>B9}}function Z0(X,Q,$){let Y=vU(X);return $W(`JSON.stringify(${Y})`,()=>JSON.stringify(X,Q,$))}var L4=(X,Q)=>{let $=typeof X===\"string\"?X.length:0;return $W(`JSON.parse(${$} chars)`,()=>JSON.parse(X,Q))};var TU=k1(()=>{return H9(process.env.DEBUG)||H9(process.env.DEBUG_SDK)||process.argv.includes(\"--debug\")||process.argv.includes(\"-d\")||WW()||process.argv.some((X)=>X.startsWith(\"--debug=\"))||JW()!==null}),_U=k1(()=>{let X=process.argv.find(($)=>$.startsWith(\"--debug=\"));if(!X)return null;let Q=X.substring(8);return i7(Q)}),WW=k1(()=>{return process.argv.includes(\"--debug-to-stderr\")||process.argv.includes(\"-d2e\")}),JW=k1(()=>{for(let X=0;X<process.argv.length;X++){let Q=process.argv[X];if(Q.startsWith(\"--debug-file=\"))return Q.substring(13);if(Q===\"--debug-file\"&&X+1<process.argv.length)return process.argv[X+1]}return null});function xU(X){if(typeof process>\"u\"||typeof process.versions>\"u\"||typeof process.versions.node>\"u\")return!1;let Q=_U();return n7(X,Q)}var yU=!1;var q4=null;function gU(){if(!q4)q4=e7({writeFn:(X)=>{let Q=GW();if(!n0().existsSync(z9(Q)))n0().mkdirSync(z9(Q));n0().appendFileSync(Q,X),fU()},flushIntervalMs:1000,maxBufferSize:100,immediateMode:TU()}),QW(async()=>q4?.dispose());return q4}function v1(X,{level:Q}={level:\"debug\"}){if(!xU(X))return;if(yU&&X.includes(`\n`))X=Z0(X);let Y=`${new Date().toISOString()} [${Q.toUpperCase()}] ${X.trim()}\n`;if(WW()){d7(Y);return}gU().write(Y)}function GW(){return JW()??process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??YW(V4(),\"debug\",`${s7()}.txt`)}var fU=k1(()=>{if(process.argv[2]===\"--ripgrep\")return;try{let X=GW(),Q=z9(X),$=YW(Q,\"latest\");if(!n0().existsSync(Q))n0().mkdirSync(Q);if(n0().existsSync($))try{n0().unlinkSync($)}catch{}n0().symlinkSync(X,$)}catch{}});var pU=!1;function F0(X,Q){let $=performance.now();try{return Q()}finally{performance.now()-$>B9}}var dU={cwd(){return process.cwd()},existsSync(X){return F0(`existsSync(${X})`,()=>h.existsSync(X))},async stat(X){return hU(X)},async readdir(X){return uU(X,{withFileTypes:!0})},async unlink(X){return lU(X)},async rmdir(X){return mU(X)},async rm(X,Q){return cU(X,Q)},statSync(X){return F0(`statSync(${X})`,()=>h.statSync(X))},lstatSync(X){return F0(`lstatSync(${X})`,()=>h.lstatSync(X))},readFileSync(X,Q){return F0(`readFileSync(${X})`,()=>h.readFileSync(X,{encoding:Q.encoding}))},readFileBytesSync(X){return F0(`readFileBytesSync(${X})`,()=>h.readFileSync(X))},readSync(X,Q){return F0(`readSync(${X}, ${Q.length} bytes)`,()=>{let $=void 0;try{$=h.openSync(X,\"r\");let Y=Buffer.alloc(Q.length),W=h.readSync($,Y,0,Q.length,0);return{buffer:Y,bytesRead:W}}finally{if($)h.closeSync($)}})},appendFileSync(X,Q,$){return F0(`appendFileSync(${X}, ${Q.length} chars)`,()=>{if(!h.existsSync(X)&&$?.mode!==void 0){let Y=h.openSync(X,\"a\",$.mode);try{h.appendFileSync(Y,Q)}finally{h.closeSync(Y)}}else h.appendFileSync(X,Q)})},copyFileSync(X,Q){return F0(`copyFileSync(${X} → ${Q})`,()=>h.copyFileSync(X,Q))},unlinkSync(X){return F0(`unlinkSync(${X})`,()=>h.unlinkSync(X))},renameSync(X,Q){return F0(`renameSync(${X} → ${Q})`,()=>h.renameSync(X,Q))},linkSync(X,Q){return F0(`linkSync(${X} → ${Q})`,()=>h.linkSync(X,Q))},symlinkSync(X,Q){return F0(`symlinkSync(${X} → ${Q})`,()=>h.symlinkSync(X,Q))},readlinkSync(X){return F0(`readlinkSync(${X})`,()=>h.readlinkSync(X))},realpathSync(X){return F0(`realpathSync(${X})`,()=>h.realpathSync(X))},mkdirSync(X,Q){return F0(`mkdirSync(${X})`,()=>{if(!h.existsSync(X)){let $={recursive:!0};if(Q?.mode!==void 0)$.mode=Q.mode;h.mkdirSync(X,$)}})},readdirSync(X){return F0(`readdirSync(${X})`,()=>h.readdirSync(X,{withFileTypes:!0}))},readdirStringSync(X){return F0(`readdirStringSync(${X})`,()=>h.readdirSync(X))},isDirEmptySync(X){return F0(`isDirEmptySync(${X})`,()=>{return this.readdirSync(X).length===0})},rmdirSync(X){return F0(`rmdirSync(${X})`,()=>h.rmdirSync(X))},rmSync(X,Q){return F0(`rmSync(${X})`,()=>h.rmSync(X,Q))},createWriteStream(X){return h.createWriteStream(X)}},iU=dU;function n0(){return iU}var nU=[\"PreToolUse\",\"PostToolUse\",\"PostToolUseFailure\",\"Notification\",\"UserPromptSubmit\",\"SessionStart\",\"SessionEnd\",\"Stop\",\"SubagentStart\",\"SubagentStop\",\"PreCompact\",\"PermissionRequest\",\"Setup\",\"TeammateIdle\",\"TaskCompleted\"],rU=[\"clear\",\"logout\",\"prompt_input_exit\",\"other\",\"bypass_permissions_disabled\"];class F1 extends Error{}function M6(){return process.versions.bun!==void 0}import{randomUUID as oU}from\"crypto\";import{appendFileSync as tU,existsSync as aU,mkdirSync as sU}from\"fs\";import{join as HW}from\"path\";var F4=null,BW=!1;function eU(){if(BW)return F4;if(BW=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let X=HW(V4(),\"debug\");if(F4=HW(X,`sdk-${oU()}.txt`),!aU(X))sU(X,{recursive:!0});return process.stderr.write(`SDK debug logs: ${F4}\n`),F4}function N1(X){let Q=eU();if(!Q)return;let Y=`${new Date().toISOString()} ${X}\n`;tU(Q,Y)}function zW(X,Q){let $={...X};if(Q){let Y={sandbox:Q};if($.settings)try{Y={...L4($.settings),sandbox:Q}}catch{}$.settings=Z0(Y)}return $}class XX{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(X){this.options=X;this.abortController=X.abortController||F6(),this.initialize()}getDefaultExecutable(){return M6()?\"bun\":\"node\"}spawnLocalProcess(X){let{command:Q,args:$,cwd:Y,env:W,signal:J}=X,G=W.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?\"pipe\":\"ignore\",H=XV(Q,$,{cwd:Y,stdio:[\"pipe\",\"pipe\",G],signal:J,env:W,windowsHide:!0});if(W.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)H.stderr.on(\"data\",(z)=>{let K=z.toString();if(N1(K),this.options.stderr)this.options.stderr(K)});return{stdin:H.stdin,stdout:H.stdout,get killed(){return H.killed},get exitCode(){return H.exitCode},kill:H.kill.bind(H),on:H.on.bind(H),once:H.once.bind(H),off:H.off.bind(H)}}initialize(){try{let{additionalDirectories:X=[],agent:Q,betas:$,cwd:Y,executable:W=this.getDefaultExecutable(),executableArgs:J=[],extraArgs:G={},pathToClaudeCodeExecutable:H,env:B={...process.env},maxThinkingTokens:z,maxTurns:K,maxBudgetUsd:V,model:L,fallbackModel:U,jsonSchema:F,permissionMode:q,allowDangerouslySkipPermissions:N,permissionPromptToolName:w,continueConversation:M,resume:R,settingSources:S,allowedTools:C=[],disallowedTools:K0=[],tools:U0,mcpServers:s,strictMcpConfig:D0,canUseTool:q0,includePartialMessages:L1,plugins:P1,sandbox:o1}=this.options,c=[\"--output-format\",\"stream-json\",\"--verbose\",\"--input-format\",\"stream-json\"];if(z!==void 0)c.push(\"--max-thinking-tokens\",z.toString());if(K)c.push(\"--max-turns\",K.toString());if(V!==void 0)c.push(\"--max-budget-usd\",V.toString());if(L)c.push(\"--model\",L);if(Q)c.push(\"--agent\",Q);if($&&$.length>0)c.push(\"--betas\",$.join(\",\"));if(F)c.push(\"--json-schema\",Z0(F));if(this.options.debugFile)c.push(\"--debug-file\",this.options.debugFile);else if(this.options.debug)c.push(\"--debug\");if(B.DEBUG_CLAUDE_AGENT_SDK)c.push(\"--debug-to-stderr\");if(q0){if(w)throw Error(\"canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.\");c.push(\"--permission-prompt-tool\",\"stdio\")}else if(w)c.push(\"--permission-prompt-tool\",w);if(M)c.push(\"--continue\");if(R)c.push(\"--resume\",R);if(C.length>0)c.push(\"--allowedTools\",C.join(\",\"));if(K0.length>0)c.push(\"--disallowedTools\",K0.join(\",\"));if(U0!==void 0)if(Array.isArray(U0))if(U0.length===0)c.push(\"--tools\",\"\");else c.push(\"--tools\",U0.join(\",\"));else c.push(\"--tools\",\"default\");if(s&&Object.keys(s).length>0)c.push(\"--mcp-config\",Z0({mcpServers:s}));if(S)c.push(\"--setting-sources\",S.join(\",\"));if(D0)c.push(\"--strict-mcp-config\");if(q)c.push(\"--permission-mode\",q);if(N)c.push(\"--allow-dangerously-skip-permissions\");if(U){if(L&&U===L)throw Error(\"Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.\");c.push(\"--fallback-model\",U)}if(L1)c.push(\"--include-partial-messages\");for(let E0 of X)c.push(\"--add-dir\",E0);if(P1&&P1.length>0)for(let E0 of P1)if(E0.type===\"local\")c.push(\"--plugin-dir\",E0.path);else throw Error(`Unsupported plugin type: ${E0.type}`);if(this.options.forkSession)c.push(\"--fork-session\");if(this.options.resumeSessionAt)c.push(\"--resume-session-at\",this.options.resumeSessionAt);if(this.options.sessionId)c.push(\"--session-id\",this.options.sessionId);if(this.options.persistSession===!1)c.push(\"--no-session-persistence\");let Q9=zW(G??{},o1);for(let[E0,S1]of Object.entries(Q9))if(S1===null)c.push(`--${E0}`);else c.push(`--${E0}`,S1);if(!B.CLAUDE_CODE_ENTRYPOINT)B.CLAUDE_CODE_ENTRYPOINT=\"sdk-ts\";if(delete B.NODE_OPTIONS,B.DEBUG_CLAUDE_AGENT_SDK)B.DEBUG=\"1\";else delete B.DEBUG;let r6=$V(H),o6=r6?H:W,t6=r6?[...J,...c]:[...J,H,...c],a6={command:o6,args:t6,cwd:Y,env:B,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)N1(`Spawning Claude Code (custom): ${o6} ${t6.join(\" \")}`),this.process=this.options.spawnClaudeCodeProcess(a6);else{if(!n0().existsSync(H)){let S1=r6?`Claude Code native binary not found at ${H}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${H}. Is options.pathToClaudeCodeExecutable set?`;throw ReferenceError(S1)}N1(`Spawning Claude Code: ${o6} ${t6.join(\" \")}`),this.process=this.spawnLocalProcess(a6)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let B4=()=>{if(this.process&&!this.process.killed)this.process.kill(\"SIGTERM\")};this.processExitHandler=B4,this.abortHandler=B4,process.on(\"exit\",this.processExitHandler),this.abortController.signal.addEventListener(\"abort\",this.abortHandler),this.process.on(\"error\",(E0)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new F1(\"Claude Code process aborted by user\");else this.exitError=Error(`Failed to spawn Claude Code process: ${E0.message}`),N1(this.exitError.message)}),this.process.on(\"exit\",(E0,S1)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new F1(\"Claude Code process aborted by user\");else{let s6=this.getProcessExitError(E0,S1);if(s6)this.exitError=s6,N1(s6.message)}}),this.ready=!0}catch(X){throw this.ready=!1,X}}getProcessExitError(X,Q){if(X!==0&&X!==null)return Error(`Claude Code process exited with code ${X}`);else if(Q)return Error(`Claude Code process terminated by signal ${Q}`);return}write(X){if(this.abortController.signal.aborted)throw new F1(\"Operation aborted\");if(!this.ready||!this.processStdin)throw Error(\"ProcessTransport is not ready for writing\");if(this.process?.killed||this.process?.exitCode!==null)throw Error(\"Cannot write to terminated process\");if(this.exitError)throw Error(`Cannot write to process that exited with error: ${this.exitError.message}`);N1(`[ProcessTransport] Writing to stdin: ${X.substring(0,100)}`);try{if(!this.processStdin.write(X))N1(\"[ProcessTransport] Write buffer full, data queued\")}catch(Q){throw this.ready=!1,Error(`Failed to write to process stdin: ${Q.message}`)}}close(){if(this.processStdin)this.processStdin.end(),this.processStdin=void 0;if(this.abortHandler)this.abortController.signal.removeEventListener(\"abort\",this.abortHandler),this.abortHandler=void 0;for(let{handler:X}of this.exitListeners)this.process?.off(\"exit\",X);if(this.exitListeners=[],this.process&&!this.process.killed)this.process.kill(\"SIGTERM\"),setTimeout(()=>{if(this.process&&!this.process.killed)this.process.kill(\"SIGKILL\")},5000);if(this.ready=!1,this.processExitHandler)process.off(\"exit\",this.processExitHandler),this.processExitHandler=void 0}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw Error(\"ProcessTransport output stream not available\");let X=QV({input:this.processStdout});try{for await(let Q of X)if(Q.trim())try{yield L4(Q)}catch($){throw N1(`Non-JSON stdout: ${Q}`),Error(`CLI output was not valid JSON. This may indicate an error during startup. Output: ${Q.slice(0,200)}${Q.length>200?\"...\":\"\"}`)}await this.waitForExit()}catch(Q){throw Q}finally{X.close()}}endInput(){if(this.processStdin)this.processStdin.end()}getInputStream(){return this.processStdin}onExit(X){if(!this.process)return()=>{};let Q=($,Y)=>{let W=this.getProcessExitError($,Y);X(W)};return this.process.on(\"exit\",Q),this.exitListeners.push({callback:X,handler:Q}),()=>{if(this.process)this.process.off(\"exit\",Q);let $=this.exitListeners.findIndex((Y)=>Y.handler===Q);if($!==-1)this.exitListeners.splice($,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((X,Q)=>{let $=(W,J)=>{if(this.abortController.signal.aborted){Q(new F1(\"Operation aborted\"));return}let G=this.getProcessExitError(W,J);if(G)Q(G);else X()};this.process.once(\"exit\",$);let Y=(W)=>{this.process.off(\"exit\",$),Q(W)};this.process.once(\"error\",Y),this.process.once(\"exit\",()=>{this.process.off(\"error\",Y)})})}}function $V(X){return![\".js\",\".mjs\",\".tsx\",\".ts\",\".jsx\"].some(($)=>X.endsWith($))}class QX{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(X){this.returned=X}[Symbol.asyncIterator](){if(this.started)throw Error(\"Stream can only be iterated once\");return this.started=!0,this}next(){if(this.queue.length>0)return Promise.resolve({done:!1,value:this.queue.shift()});if(this.isDone)return Promise.resolve({done:!0,value:void 0});if(this.hasError)return Promise.reject(this.hasError);return new Promise((X,Q)=>{this.readResolve=X,this.readReject=Q})}enqueue(X){if(this.readResolve){let Q=this.readResolve;this.readResolve=void 0,this.readReject=void 0,Q({done:!1,value:X})}else this.queue.push(X)}done(){if(this.isDone=!0,this.readResolve){let X=this.readResolve;this.readResolve=void 0,this.readReject=void 0,X({done:!0,value:void 0})}}error(X){if(this.hasError=X,this.readReject){let Q=this.readReject;this.readResolve=void 0,this.readReject=void 0,Q(X)}}return(){if(this.isDone=!0,this.returned)this.returned();return Promise.resolve({done:!0,value:void 0})}}class K9{sendMcpMessage;isClosed=!1;constructor(X){this.sendMcpMessage=X}onclose;onerror;onmessage;async start(){}async send(X){if(this.isClosed)throw Error(\"Transport is closed\");this.sendMcpMessage(X)}async close(){if(this.isClosed)return;this.isClosed=!0,this.onclose?.()}}import{randomUUID as YV}from\"crypto\";class $X{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new QX;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(X,Q,$,Y,W,J=new Map,G,H){this.transport=X;this.isSingleUserTurn=Q;this.canUseTool=$;this.hooks=Y;this.abortController=W;this.jsonSchema=G;this.initConfig=H;for(let[B,z]of J)this.connectSdkMcpServer(B,z);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(X){this.inputStream.error(X)}close(){this.cleanup()}cleanup(X){if(this.cleanupPerformed)return;this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let Q of this.sdkMcpTransports.values())try{Q.close()}catch{}if(this.sdkMcpTransports.clear(),X)this.inputStream.error(X);else this.inputStream.done()}catch(Q){}}next(...[X]){return this.sdkMessages.next(...[X])}return(X){return this.sdkMessages.return(X)}throw(X){return this.sdkMessages.throw(X)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let X of this.transport.readMessages()){if(X.type===\"control_response\"){let Q=this.pendingControlResponses.get(X.response.request_id);if(Q)Q(X.response);continue}else if(X.type===\"control_request\"){this.handleControlRequest(X);continue}else if(X.type===\"control_cancel_request\"){this.handleControlCancelRequest(X);continue}else if(X.type===\"keep_alive\")continue;if(X.type===\"streamlined_text\"||X.type===\"streamlined_tool_use_summary\")continue;if(X.type===\"result\"){if(this.firstResultReceived=!0,this.firstResultReceivedResolve)this.firstResultReceivedResolve();if(this.isSingleUserTurn)v1(\"[Query.readMessages] First result received for single-turn query, closing stdin\"),this.transport.endInput()}this.inputStream.enqueue(X)}if(this.firstResultReceivedResolve)this.firstResultReceivedResolve();this.inputStream.done(),this.cleanup()}catch(X){if(this.firstResultReceivedResolve)this.firstResultReceivedResolve();this.inputStream.error(X),this.cleanup(X)}}async handleControlRequest(X){let Q=new AbortController;this.cancelControllers.set(X.request_id,Q);try{let $=await this.processControlRequest(X,Q.signal),Y={type:\"control_response\",response:{subtype:\"success\",request_id:X.request_id,response:$}};await Promise.resolve(this.transport.write(Z0(Y)+`\n`))}catch($){let Y={type:\"control_response\",response:{subtype:\"error\",request_id:X.request_id,error:$.message||String($)}};await Promise.resolve(this.transport.write(Z0(Y)+`\n`))}finally{this.cancelControllers.delete(X.request_id)}}handleControlCancelRequest(X){let Q=this.cancelControllers.get(X.request_id);if(Q)Q.abort(),this.cancelControllers.delete(X.request_id)}async processControlRequest(X,Q){if(X.request.subtype===\"can_use_tool\"){if(!this.canUseTool)throw Error(\"canUseTool callback is not provided.\");return{...await this.canUseTool(X.request.tool_name,X.request.input,{signal:Q,suggestions:X.request.permission_suggestions,blockedPath:X.request.blocked_path,decisionReason:X.request.decision_reason,toolUseID:X.request.tool_use_id,agentID:X.request.agent_id}),toolUseID:X.request.tool_use_id}}else if(X.request.subtype===\"hook_callback\")return await this.handleHookCallbacks(X.request.callback_id,X.request.input,X.request.tool_use_id,Q);else if(X.request.subtype===\"mcp_message\"){let $=X.request,Y=this.sdkMcpTransports.get($.server_name);if(!Y)throw Error(`SDK MCP server not found: ${$.server_name}`);if(\"method\"in $.message&&\"id\"in $.message&&$.message.id!==null)return{mcp_response:await this.handleMcpControlRequest($.server_name,$,Y)};else{if(Y.onmessage)Y.onmessage($.message);return{mcp_response:{jsonrpc:\"2.0\",result:{},id:0}}}}throw Error(\"Unsupported control request subtype: \"+X.request.subtype)}async*readSdkMessages(){for await(let X of this.inputStream)yield X}async initialize(){let X;if(this.hooks){X={};for(let[W,J]of Object.entries(this.hooks))if(J.length>0)X[W]=J.map((G)=>{let H=[];for(let B of G.hooks){let z=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(z,B),H.push(z)}return{matcher:G.matcher,hookCallbackIds:H,timeout:G.timeout}})}let Q=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,$={subtype:\"initialize\",hooks:X,sdkMcpServers:Q,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request($)).response}async interrupt(){await this.request({subtype:\"interrupt\"})}async setPermissionMode(X){await this.request({subtype:\"set_permission_mode\",mode:X})}async setModel(X){await this.request({subtype:\"set_model\",model:X})}async setMaxThinkingTokens(X){await this.request({subtype:\"set_max_thinking_tokens\",max_thinking_tokens:X})}async rewindFiles(X,Q){return(await this.request({subtype:\"rewind_files\",user_message_id:X,dry_run:Q?.dryRun})).response}async processPendingPermissionRequests(X){for(let Q of X)if(Q.request.subtype===\"can_use_tool\")this.handleControlRequest(Q).catch(()=>{})}request(X){let Q=Math.random().toString(36).substring(2,15),$={request_id:Q,type:\"control_request\",request:X};return new Promise((Y,W)=>{this.pendingControlResponses.set(Q,(J)=>{if(J.subtype===\"success\")Y(J);else if(W(Error(J.error)),J.pending_permission_requests)this.processPendingPermissionRequests(J.pending_permission_requests)}),Promise.resolve(this.transport.write(Z0($)+`\n`))})}async initializationResult(){return this.initialization}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async reconnectMcpServer(X){await this.request({subtype:\"mcp_reconnect\",serverName:X})}async toggleMcpServer(X,Q){await this.request({subtype:\"mcp_toggle\",serverName:X,enabled:Q})}async mcpServerStatus(){return(await this.request({subtype:\"mcp_status\"})).response.mcpServers}async setMcpServers(X){let Q={},$={};for(let[H,B]of Object.entries(X))if(B.type===\"sdk\"&&\"instance\"in B)Q[H]=B.instance;else $[H]=B;let Y=new Set(this.sdkMcpServerInstances.keys()),W=new Set(Object.keys(Q));for(let H of Y)if(!W.has(H))await this.disconnectSdkMcpServer(H);for(let[H,B]of Object.entries(Q))if(!Y.has(H))this.connectSdkMcpServer(H,B);let J={};for(let H of Object.keys(Q))J[H]={type:\"sdk\",name:H};return(await this.request({subtype:\"mcp_set_servers\",servers:{...$,...J}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(X){v1(\"[Query.streamInput] Starting to process input stream\");try{let Q=0;for await(let $ of X){if(Q++,v1(`[Query.streamInput] Processing message ${Q}: ${$.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(Z0($)+`\n`))}if(v1(`[Query.streamInput] Finished processing ${Q} messages from input stream`),Q>0&&this.hasBidirectionalNeeds())v1(\"[Query.streamInput] Has bidirectional needs, waiting for first result\"),await this.waitForFirstResult();v1(\"[Query] Calling transport.endInput() to close stdin to CLI process\"),this.transport.endInput()}catch(Q){if(!(Q instanceof F1))throw Q}}waitForFirstResult(){if(this.firstResultReceived)return v1(\"[Query.waitForFirstResult] Result already received, returning immediately\"),Promise.resolve();return new Promise((X)=>{if(this.abortController?.signal.aborted){X();return}this.abortController?.signal.addEventListener(\"abort\",()=>X(),{once:!0}),this.firstResultReceivedResolve=X})}handleHookCallbacks(X,Q,$,Y){let W=this.hookCallbacks.get(X);if(!W)throw Error(`No hook callback found for ID: ${X}`);return W(Q,$,{signal:Y})}connectSdkMcpServer(X,Q){let $=new K9((Y)=>this.sendMcpServerMessageToCli(X,Y));this.sdkMcpTransports.set(X,$),this.sdkMcpServerInstances.set(X,Q),Q.connect($)}async disconnectSdkMcpServer(X){let Q=this.sdkMcpTransports.get(X);if(Q)await Q.close(),this.sdkMcpTransports.delete(X);this.sdkMcpServerInstances.delete(X)}sendMcpServerMessageToCli(X,Q){if(\"id\"in Q&&Q.id!==null&&Q.id!==void 0){let Y=`${X}:${Q.id}`,W=this.pendingMcpResponses.get(Y);if(W){W.resolve(Q),this.pendingMcpResponses.delete(Y);return}}let $={type:\"control_request\",request_id:YV(),request:{subtype:\"mcp_message\",server_name:X,message:Q}};this.transport.write(Z0($)+`\n`)}handleMcpControlRequest(X,Q,$){let Y=\"id\"in Q.message?Q.message.id:null,W=`${X}:${Y}`;return new Promise((J,G)=>{let H=()=>{this.pendingMcpResponses.delete(W)},B=(K)=>{H(),J(K)},z=(K)=>{H(),G(K)};if(this.pendingMcpResponses.set(W,{resolve:B,reject:z}),$.onmessage)$.onmessage(Q.message);else{H(),G(Error(\"No message handler registered\"));return}})}}import{join as KW}from\"path\";import{fileURLToPath as WV}from\"url\";class U9{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw Error(\"Session ID not available until after receiving messages\");return this._sessionId}constructor(X){if(X.resume)this._sessionId=X.resume;this.inputStream=new QX;let Q=X.pathToClaudeCodeExecutable;if(!Q){let W=WV(import.meta.url),J=KW(W,\"..\");Q=KW(J,\"cli.js\")}let $={...X.env??process.env};if(!$.CLAUDE_CODE_ENTRYPOINT)$.CLAUDE_CODE_ENTRYPOINT=\"sdk-ts\";this.abortController=F6();let Y=new XX({abortController:this.abortController,pathToClaudeCodeExecutable:Q,env:$,executable:X.executable??(M6()?\"bun\":\"node\"),executableArgs:X.executableArgs??[],extraArgs:{},maxThinkingTokens:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:X.model,fallbackModel:void 0,permissionMode:X.permissionMode??\"default\",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:X.resume,settingSources:[],allowedTools:X.allowedTools??[],disallowedTools:X.disallowedTools??[],mcpServers:{},strictMcpConfig:!1,canUseTool:!!X.canUseTool,hooks:!!X.hooks,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new $X(Y,!1,X.canUseTool,X.hooks,this.abortController,new Map),this.query.streamInput(this.inputStream)}async send(X){if(this.closed)throw Error(\"Cannot send to closed session\");let Q=typeof X===\"string\"?{type:\"user\",session_id:\"\",message:{role:\"user\",content:[{type:\"text\",text:X}]},parent_tool_use_id:null}:X;this.inputStream.enqueue(Q)}async*stream(){if(!this.queryIterator)this.queryIterator=this.query[Symbol.asyncIterator]();while(!0){let{value:X,done:Q}=await this.queryIterator.next();if(Q)return;if(X.type===\"system\"&&X.subtype===\"init\")this._sessionId=X.session_id;if(yield X,X.type===\"result\")return}}close(){if(this.closed)return;this.closed=!0,this.inputStream.done(),this.abortController.abort()}async[Symbol.asyncDispose](){this.close()}}function V9(X){return new U9(X)}function UW(X,Q){return new U9({...Q,resume:X})}var n;(function(X){X.assertEqual=(W)=>{};function Q(W){}X.assertIs=Q;function $(W){throw Error()}X.assertNever=$,X.arrayToEnum=(W)=>{let J={};for(let G of W)J[G]=G;return J},X.getValidEnumValues=(W)=>{let J=X.objectKeys(W).filter((H)=>typeof W[W[H]]!==\"number\"),G={};for(let H of J)G[H]=W[H];return X.objectValues(G)},X.objectValues=(W)=>{return X.objectKeys(W).map(function(J){return W[J]})},X.objectKeys=typeof Object.keys===\"function\"?(W)=>Object.keys(W):(W)=>{let J=[];for(let G in W)if(Object.prototype.hasOwnProperty.call(W,G))J.push(G);return J},X.find=(W,J)=>{for(let G of W)if(J(G))return G;return},X.isInteger=typeof Number.isInteger===\"function\"?(W)=>Number.isInteger(W):(W)=>typeof W===\"number\"&&Number.isFinite(W)&&Math.floor(W)===W;function Y(W,J=\" | \"){return W.map((G)=>typeof G===\"string\"?`'${G}'`:G).join(J)}X.joinValues=Y,X.jsonStringifyReplacer=(W,J)=>{if(typeof J===\"bigint\")return J.toString();return J}})(n||(n={}));var VW;(function(X){X.mergeShapes=(Q,$)=>{return{...Q,...$}}})(VW||(VW={}));var I=n.arrayToEnum([\"string\",\"nan\",\"number\",\"integer\",\"float\",\"boolean\",\"date\",\"bigint\",\"symbol\",\"function\",\"undefined\",\"null\",\"array\",\"object\",\"unknown\",\"promise\",\"void\",\"never\",\"map\",\"set\"]),O1=(X)=>{switch(typeof X){case\"undefined\":return I.undefined;case\"string\":return I.string;case\"number\":return Number.isNaN(X)?I.nan:I.number;case\"boolean\":return I.boolean;case\"function\":return I.function;case\"bigint\":return I.bigint;case\"symbol\":return I.symbol;case\"object\":if(Array.isArray(X))return I.array;if(X===null)return I.null;if(X.then&&typeof X.then===\"function\"&&X.catch&&typeof X.catch===\"function\")return I.promise;if(typeof Map<\"u\"&&X instanceof Map)return I.map;if(typeof Set<\"u\"&&X instanceof Set)return I.set;if(typeof Date<\"u\"&&X instanceof Date)return I.date;return I.object;default:return I.unknown}};var A=n.arrayToEnum([\"invalid_type\",\"invalid_literal\",\"custom\",\"invalid_union\",\"invalid_union_discriminator\",\"invalid_enum_value\",\"unrecognized_keys\",\"invalid_arguments\",\"invalid_return_type\",\"invalid_date\",\"invalid_string\",\"too_small\",\"too_big\",\"invalid_intersection_types\",\"not_multiple_of\",\"not_finite\"]);class h0 extends Error{get errors(){return this.issues}constructor(X){super();this.issues=[],this.addIssue=($)=>{this.issues=[...this.issues,$]},this.addIssues=($=[])=>{this.issues=[...this.issues,...$]};let Q=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,Q);else this.__proto__=Q;this.name=\"ZodError\",this.issues=X}format(X){let Q=X||function(W){return W.message},$={_errors:[]},Y=(W)=>{for(let J of W.issues)if(J.code===\"invalid_union\")J.unionErrors.map(Y);else if(J.code===\"invalid_return_type\")Y(J.returnTypeError);else if(J.code===\"invalid_arguments\")Y(J.argumentsError);else if(J.path.length===0)$._errors.push(Q(J));else{let G=$,H=0;while(H<J.path.length){let B=J.path[H];if(H!==J.path.length-1)G[B]=G[B]||{_errors:[]};else G[B]=G[B]||{_errors:[]},G[B]._errors.push(Q(J));G=G[B],H++}}};return Y(this),$}static assert(X){if(!(X instanceof h0))throw Error(`Not a ZodError: ${X}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,n.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(X=(Q)=>Q.message){let Q={},$=[];for(let Y of this.issues)if(Y.path.length>0){let W=Y.path[0];Q[W]=Q[W]||[],Q[W].push(X(Y))}else $.push(X(Y));return{formErrors:$,fieldErrors:Q}}get formErrors(){return this.flatten()}}h0.create=(X)=>{return new h0(X)};var JV=(X,Q)=>{let $;switch(X.code){case A.invalid_type:if(X.received===I.undefined)$=\"Required\";else $=`Expected ${X.expected}, received ${X.received}`;break;case A.invalid_literal:$=`Invalid literal value, expected ${JSON.stringify(X.expected,n.jsonStringifyReplacer)}`;break;case A.unrecognized_keys:$=`Unrecognized key(s) in object: ${n.joinValues(X.keys,\", \")}`;break;case A.invalid_union:$=\"Invalid input\";break;case A.invalid_union_discriminator:$=`Invalid discriminator value. Expected ${n.joinValues(X.options)}`;break;case A.invalid_enum_value:$=`Invalid enum value. Expected ${n.joinValues(X.options)}, received '${X.received}'`;break;case A.invalid_arguments:$=\"Invalid function arguments\";break;case A.invalid_return_type:$=\"Invalid function return type\";break;case A.invalid_date:$=\"Invalid date\";break;case A.invalid_string:if(typeof X.validation===\"object\")if(\"includes\"in X.validation){if($=`Invalid input: must include \"${X.validation.includes}\"`,typeof X.validation.position===\"number\")$=`${$} at one or more positions greater than or equal to ${X.validation.position}`}else if(\"startsWith\"in X.validation)$=`Invalid input: must start with \"${X.validation.startsWith}\"`;else if(\"endsWith\"in X.validation)$=`Invalid input: must end with \"${X.validation.endsWith}\"`;else n.assertNever(X.validation);else if(X.validation!==\"regex\")$=`Invalid ${X.validation}`;else $=\"Invalid\";break;case A.too_small:if(X.type===\"array\")$=`Array must contain ${X.exact?\"exactly\":X.inclusive?\"at least\":\"more than\"} ${X.minimum} element(s)`;else if(X.type===\"string\")$=`String must contain ${X.exact?\"exactly\":X.inclusive?\"at least\":\"over\"} ${X.minimum} character(s)`;else if(X.type===\"number\")$=`Number must be ${X.exact?\"exactly equal to \":X.inclusive?\"greater than or equal to \":\"greater than \"}${X.minimum}`;else if(X.type===\"bigint\")$=`Number must be ${X.exact?\"exactly equal to \":X.inclusive?\"greater than or equal to \":\"greater than \"}${X.minimum}`;else if(X.type===\"date\")$=`Date must be ${X.exact?\"exactly equal to \":X.inclusive?\"greater than or equal to \":\"greater than \"}${new Date(Number(X.minimum))}`;else $=\"Invalid input\";break;case A.too_big:if(X.type===\"array\")$=`Array must contain ${X.exact?\"exactly\":X.inclusive?\"at most\":\"less than\"} ${X.maximum} element(s)`;else if(X.type===\"string\")$=`String must contain ${X.exact?\"exactly\":X.inclusive?\"at most\":\"under\"} ${X.maximum} character(s)`;else if(X.type===\"number\")$=`Number must be ${X.exact?\"exactly\":X.inclusive?\"less than or equal to\":\"less than\"} ${X.maximum}`;else if(X.type===\"bigint\")$=`BigInt must be ${X.exact?\"exactly\":X.inclusive?\"less than or equal to\":\"less than\"} ${X.maximum}`;else if(X.type===\"date\")$=`Date must be ${X.exact?\"exactly\":X.inclusive?\"smaller than or equal to\":\"smaller than\"} ${new Date(Number(X.maximum))}`;else $=\"Invalid input\";break;case A.custom:$=\"Invalid input\";break;case A.invalid_intersection_types:$=\"Intersection results could not be merged\";break;case A.not_multiple_of:$=`Number must be a multiple of ${X.multipleOf}`;break;case A.not_finite:$=\"Number must be finite\";break;default:$=Q.defaultError,n.assertNever(X)}return{message:$}},T1=JV;var GV=T1;function YX(){return GV}var N4=(X)=>{let{data:Q,path:$,errorMaps:Y,issueData:W}=X,J=[...$,...W.path||[]],G={...W,path:J};if(W.message!==void 0)return{...W,path:J,message:W.message};let H=\"\",B=Y.filter((z)=>!!z).slice().reverse();for(let z of B)H=z(G,{data:Q,defaultError:H}).message;return{...W,path:J,message:H}};function b(X,Q){let $=YX(),Y=N4({issueData:Q,data:X.data,path:X.path,errorMaps:[X.common.contextualErrorMap,X.schemaErrorMap,$,$===T1?void 0:T1].filter((W)=>!!W)});X.common.issues.push(Y)}class b0{constructor(){this.value=\"valid\"}dirty(){if(this.value===\"valid\")this.value=\"dirty\"}abort(){if(this.value!==\"aborted\")this.value=\"aborted\"}static mergeArray(X,Q){let $=[];for(let Y of Q){if(Y.status===\"aborted\")return g;if(Y.status===\"dirty\")X.dirty();$.push(Y.value)}return{status:X.value,value:$}}static async mergeObjectAsync(X,Q){let $=[];for(let Y of Q){let W=await Y.key,J=await Y.value;$.push({key:W,value:J})}return b0.mergeObjectSync(X,$)}static mergeObjectSync(X,Q){let $={};for(let Y of Q){let{key:W,value:J}=Y;if(W.status===\"aborted\")return g;if(J.status===\"aborted\")return g;if(W.status===\"dirty\")X.dirty();if(J.status===\"dirty\")X.dirty();if(W.value!==\"__proto__\"&&(typeof J.value<\"u\"||Y.alwaysSet))$[W.value]=J.value}return{status:X.value,value:$}}}var g=Object.freeze({status:\"aborted\"}),j6=(X)=>({status:\"dirty\",value:X}),C0=(X)=>({status:\"valid\",value:X}),L9=(X)=>X.status===\"aborted\",q9=(X)=>X.status===\"dirty\",t1=(X)=>X.status===\"valid\",WX=(X)=>typeof Promise<\"u\"&&X instanceof Promise;var Z;(function(X){X.errToObj=(Q)=>typeof Q===\"string\"?{message:Q}:Q||{},X.toString=(Q)=>typeof Q===\"string\"?Q:Q?.message})(Z||(Z={}));class r0{constructor(X,Q,$,Y){this._cachedPath=[],this.parent=X,this.data=Q,this._path=$,this._key=Y}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var LW=(X,Q)=>{if(t1(Q))return{success:!0,data:Q.value};else{if(!X.common.issues.length)throw Error(\"Validation failed but no issues detected.\");return{success:!1,get error(){if(this._error)return this._error;let $=new h0(X.common.issues);return this._error=$,this._error}}}};function l(X){if(!X)return{};let{errorMap:Q,invalid_type_error:$,required_error:Y,description:W}=X;if(Q&&($||Y))throw Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);if(Q)return{errorMap:Q,description:W};return{errorMap:(G,H)=>{let{message:B}=X;if(G.code===\"invalid_enum_value\")return{message:B??H.defaultError};if(typeof H.data>\"u\")return{message:B??Y??H.defaultError};if(G.code!==\"invalid_type\")return{message:H.defaultError};return{message:B??$??H.defaultError}},description:W}}class d{get description(){return this._def.description}_getType(X){return O1(X.data)}_getOrReturnCtx(X,Q){return Q||{common:X.parent.common,data:X.data,parsedType:O1(X.data),schemaErrorMap:this._def.errorMap,path:X.path,parent:X.parent}}_processInputParams(X){return{status:new b0,ctx:{common:X.parent.common,data:X.data,parsedType:O1(X.data),schemaErrorMap:this._def.errorMap,path:X.path,parent:X.parent}}}_parseSync(X){let Q=this._parse(X);if(WX(Q))throw Error(\"Synchronous parse encountered promise.\");return Q}_parseAsync(X){let Q=this._parse(X);return Promise.resolve(Q)}parse(X,Q){let $=this.safeParse(X,Q);if($.success)return $.data;throw $.error}safeParse(X,Q){let $={common:{issues:[],async:Q?.async??!1,contextualErrorMap:Q?.errorMap},path:Q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:X,parsedType:O1(X)},Y=this._parseSync({data:X,path:$.path,parent:$});return LW($,Y)}\"~validate\"(X){let Q={common:{issues:[],async:!!this[\"~standard\"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:X,parsedType:O1(X)};if(!this[\"~standard\"].async)try{let $=this._parseSync({data:X,path:[],parent:Q});return t1($)?{value:$.value}:{issues:Q.common.issues}}catch($){if($?.message?.toLowerCase()?.includes(\"encountered\"))this[\"~standard\"].async=!0;Q.common={issues:[],async:!0}}return this._parseAsync({data:X,path:[],parent:Q}).then(($)=>t1($)?{value:$.value}:{issues:Q.common.issues})}async parseAsync(X,Q){let $=await this.safeParseAsync(X,Q);if($.success)return $.data;throw $.error}async safeParseAsync(X,Q){let $={common:{issues:[],contextualErrorMap:Q?.errorMap,async:!0},path:Q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:X,parsedType:O1(X)},Y=this._parse({data:X,path:$.path,parent:$}),W=await(WX(Y)?Y:Promise.resolve(Y));return LW($,W)}refine(X,Q){let $=(Y)=>{if(typeof Q===\"string\"||typeof Q>\"u\")return{message:Q};else if(typeof Q===\"function\")return Q(Y);else return Q};return this._refinement((Y,W)=>{let J=X(Y),G=()=>W.addIssue({code:A.custom,...$(Y)});if(typeof Promise<\"u\"&&J instanceof Promise)return J.then((H)=>{if(!H)return G(),!1;else return!0});if(!J)return G(),!1;else return!0})}refinement(X,Q){return this._refinement(($,Y)=>{if(!X($))return Y.addIssue(typeof Q===\"function\"?Q($,Y):Q),!1;else return!0})}_refinement(X){return new G1({schema:this,typeName:j.ZodEffects,effect:{type:\"refinement\",refinement:X}})}superRefine(X){return this._refinement(X)}constructor(X){this.spa=this.safeParseAsync,this._def=X,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[\"~standard\"]={version:1,vendor:\"zod\",validate:(Q)=>this[\"~validate\"](Q)}}optional(){return J1.create(this,this._def)}nullable(){return _1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return W1.create(this)}promise(){return P6.create(this,this._def)}or(X){return zX.create([this,X],this._def)}and(X){return KX.create(this,X,this._def)}transform(X){return new G1({...l(this._def),schema:this,typeName:j.ZodEffects,effect:{type:\"transform\",transform:X}})}default(X){let Q=typeof X===\"function\"?X:()=>X;return new qX({...l(this._def),innerType:this,defaultValue:Q,typeName:j.ZodDefault})}brand(){return new D9({typeName:j.ZodBranded,type:this,...l(this._def)})}catch(X){let Q=typeof X===\"function\"?X:()=>X;return new FX({...l(this._def),innerType:this,catchValue:Q,typeName:j.ZodCatch})}describe(X){return new this.constructor({...this._def,description:X})}pipe(X){return I4.create(this,X)}readonly(){return NX.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var HV=/^c[^\\s-]{8,}$/i,BV=/^[0-9a-z]+$/,zV=/^[0-9A-HJKMNP-TV-Z]{26}$/i,KV=/^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i,UV=/^[a-z0-9_-]{21}$/i,VV=/^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,LV=/^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/,qV=/^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i,FV=\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",F9,NV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,OV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,DV=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,wV=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,AV=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,MV=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,qW=\"((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))\",jV=new RegExp(`^${qW}$`);function FW(X){let Q=\"[0-5]\\\\d\";if(X.precision)Q=`${Q}\\\\.\\\\d{${X.precision}}`;else if(X.precision==null)Q=`${Q}(\\\\.\\\\d+)?`;let $=X.precision?\"+\":\"?\";return`([01]\\\\d|2[0-3]):[0-5]\\\\d(:${Q})${$}`}function RV(X){return new RegExp(`^${FW(X)}$`)}function IV(X){let Q=`${qW}T${FW(X)}`,$=[];if($.push(X.local?\"Z?\":\"Z\"),X.offset)$.push(\"([+-]\\\\d{2}:?\\\\d{2})\");return Q=`${Q}(${$.join(\"|\")})`,new RegExp(`^${Q}$`)}function EV(X,Q){if((Q===\"v4\"||!Q)&&NV.test(X))return!0;if((Q===\"v6\"||!Q)&&DV.test(X))return!0;return!1}function bV(X,Q){if(!VV.test(X))return!1;try{let[$]=X.split(\".\");if(!$)return!1;let Y=$.replace(/-/g,\"+\").replace(/_/g,\"/\").padEnd($.length+(4-$.length%4)%4,\"=\"),W=JSON.parse(atob(Y));if(typeof W!==\"object\"||W===null)return!1;if(\"typ\"in W&&W?.typ!==\"JWT\")return!1;if(!W.alg)return!1;if(Q&&W.alg!==Q)return!1;return!0}catch{return!1}}function PV(X,Q){if((Q===\"v4\"||!Q)&&OV.test(X))return!0;if((Q===\"v6\"||!Q)&&wV.test(X))return!0;return!1}class w1 extends d{_parse(X){if(this._def.coerce)X.data=String(X.data);if(this._getType(X)!==I.string){let W=this._getOrReturnCtx(X);return b(W,{code:A.invalid_type,expected:I.string,received:W.parsedType}),g}let $=new b0,Y=void 0;for(let W of this._def.checks)if(W.kind===\"min\"){if(X.data.length<W.value)Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.too_small,minimum:W.value,type:\"string\",inclusive:!0,exact:!1,message:W.message}),$.dirty()}else if(W.kind===\"max\"){if(X.data.length>W.value)Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.too_big,maximum:W.value,type:\"string\",inclusive:!0,exact:!1,message:W.message}),$.dirty()}else if(W.kind===\"length\"){let J=X.data.length>W.value,G=X.data.length<W.value;if(J||G){if(Y=this._getOrReturnCtx(X,Y),J)b(Y,{code:A.too_big,maximum:W.value,type:\"string\",inclusive:!0,exact:!0,message:W.message});else if(G)b(Y,{code:A.too_small,minimum:W.value,type:\"string\",inclusive:!0,exact:!0,message:W.message});$.dirty()}}else if(W.kind===\"email\"){if(!qV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"email\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"emoji\"){if(!F9)F9=new RegExp(FV,\"u\");if(!F9.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"emoji\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"uuid\"){if(!KV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"uuid\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"nanoid\"){if(!UV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"nanoid\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"cuid\"){if(!HV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"cuid\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"cuid2\"){if(!BV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"cuid2\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"ulid\"){if(!zV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"ulid\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"url\")try{new URL(X.data)}catch{Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"url\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"regex\"){if(W.regex.lastIndex=0,!W.regex.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"regex\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"trim\")X.data=X.data.trim();else if(W.kind===\"includes\"){if(!X.data.includes(W.value,W.position))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:{includes:W.value,position:W.position},message:W.message}),$.dirty()}else if(W.kind===\"toLowerCase\")X.data=X.data.toLowerCase();else if(W.kind===\"toUpperCase\")X.data=X.data.toUpperCase();else if(W.kind===\"startsWith\"){if(!X.data.startsWith(W.value))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:{startsWith:W.value},message:W.message}),$.dirty()}else if(W.kind===\"endsWith\"){if(!X.data.endsWith(W.value))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:{endsWith:W.value},message:W.message}),$.dirty()}else if(W.kind===\"datetime\"){if(!IV(W).test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:\"datetime\",message:W.message}),$.dirty()}else if(W.kind===\"date\"){if(!jV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:\"date\",message:W.message}),$.dirty()}else if(W.kind===\"time\"){if(!RV(W).test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.invalid_string,validation:\"time\",message:W.message}),$.dirty()}else if(W.kind===\"duration\"){if(!LV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"duration\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"ip\"){if(!EV(X.data,W.version))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"ip\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"jwt\"){if(!bV(X.data,W.alg))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"jwt\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"cidr\"){if(!PV(X.data,W.version))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"cidr\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"base64\"){if(!AV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"base64\",code:A.invalid_string,message:W.message}),$.dirty()}else if(W.kind===\"base64url\"){if(!MV.test(X.data))Y=this._getOrReturnCtx(X,Y),b(Y,{validation:\"base64url\",code:A.invalid_string,message:W.message}),$.dirty()}else n.assertNever(W);return{status:$.value,value:X.data}}_regex(X,Q,$){return this.refinement((Y)=>X.test(Y),{validation:Q,code:A.invalid_string,...Z.errToObj($)})}_addCheck(X){return new w1({...this._def,checks:[...this._def.checks,X]})}email(X){return this._addCheck({kind:\"email\",...Z.errToObj(X)})}url(X){return this._addCheck({kind:\"url\",...Z.errToObj(X)})}emoji(X){return this._addCheck({kind:\"emoji\",...Z.errToObj(X)})}uuid(X){return this._addCheck({kind:\"uuid\",...Z.errToObj(X)})}nanoid(X){return this._addCheck({kind:\"nanoid\",...Z.errToObj(X)})}cuid(X){return this._addCheck({kind:\"cuid\",...Z.errToObj(X)})}cuid2(X){return this._addCheck({kind:\"cuid2\",...Z.errToObj(X)})}ulid(X){return this._addCheck({kind:\"ulid\",...Z.errToObj(X)})}base64(X){return this._addCheck({kind:\"base64\",...Z.errToObj(X)})}base64url(X){return this._addCheck({kind:\"base64url\",...Z.errToObj(X)})}jwt(X){return this._addCheck({kind:\"jwt\",...Z.errToObj(X)})}ip(X){return this._addCheck({kind:\"ip\",...Z.errToObj(X)})}cidr(X){return this._addCheck({kind:\"cidr\",...Z.errToObj(X)})}datetime(X){if(typeof X===\"string\")return this._addCheck({kind:\"datetime\",precision:null,offset:!1,local:!1,message:X});return this._addCheck({kind:\"datetime\",precision:typeof X?.precision>\"u\"?null:X?.precision,offset:X?.offset??!1,local:X?.local??!1,...Z.errToObj(X?.message)})}date(X){return this._addCheck({kind:\"date\",message:X})}time(X){if(typeof X===\"string\")return this._addCheck({kind:\"time\",precision:null,message:X});return this._addCheck({kind:\"time\",precision:typeof X?.precision>\"u\"?null:X?.precision,...Z.errToObj(X?.message)})}duration(X){return this._addCheck({kind:\"duration\",...Z.errToObj(X)})}regex(X,Q){return this._addCheck({kind:\"regex\",regex:X,...Z.errToObj(Q)})}includes(X,Q){return this._addCheck({kind:\"includes\",value:X,position:Q?.position,...Z.errToObj(Q?.message)})}startsWith(X,Q){return this._addCheck({kind:\"startsWith\",value:X,...Z.errToObj(Q)})}endsWith(X,Q){return this._addCheck({kind:\"endsWith\",value:X,...Z.errToObj(Q)})}min(X,Q){return this._addCheck({kind:\"min\",value:X,...Z.errToObj(Q)})}max(X,Q){return this._addCheck({kind:\"max\",value:X,...Z.errToObj(Q)})}length(X,Q){return this._addCheck({kind:\"length\",value:X,...Z.errToObj(Q)})}nonempty(X){return this.min(1,Z.errToObj(X))}trim(){return new w1({...this._def,checks:[...this._def.checks,{kind:\"trim\"}]})}toLowerCase(){return new w1({...this._def,checks:[...this._def.checks,{kind:\"toLowerCase\"}]})}toUpperCase(){return new w1({...this._def,checks:[...this._def.checks,{kind:\"toUpperCase\"}]})}get isDatetime(){return!!this._def.checks.find((X)=>X.kind===\"datetime\")}get isDate(){return!!this._def.checks.find((X)=>X.kind===\"date\")}get isTime(){return!!this._def.checks.find((X)=>X.kind===\"time\")}get isDuration(){return!!this._def.checks.find((X)=>X.kind===\"duration\")}get isEmail(){return!!this._def.checks.find((X)=>X.kind===\"email\")}get isURL(){return!!this._def.checks.find((X)=>X.kind===\"url\")}get isEmoji(){return!!this._def.checks.find((X)=>X.kind===\"emoji\")}get isUUID(){return!!this._def.checks.find((X)=>X.kind===\"uuid\")}get isNANOID(){return!!this._def.checks.find((X)=>X.kind===\"nanoid\")}get isCUID(){return!!this._def.checks.find((X)=>X.kind===\"cuid\")}get isCUID2(){return!!this._def.checks.find((X)=>X.kind===\"cuid2\")}get isULID(){return!!this._def.checks.find((X)=>X.kind===\"ulid\")}get isIP(){return!!this._def.checks.find((X)=>X.kind===\"ip\")}get isCIDR(){return!!this._def.checks.find((X)=>X.kind===\"cidr\")}get isBase64(){return!!this._def.checks.find((X)=>X.kind===\"base64\")}get isBase64url(){return!!this._def.checks.find((X)=>X.kind===\"base64url\")}get minLength(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"min\"){if(X===null||Q.value>X)X=Q.value}return X}get maxLength(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"max\"){if(X===null||Q.value<X)X=Q.value}return X}}w1.create=(X)=>{return new w1({checks:[],typeName:j.ZodString,coerce:X?.coerce??!1,...l(X)})};function SV(X,Q){let $=(X.toString().split(\".\")[1]||\"\").length,Y=(Q.toString().split(\".\")[1]||\"\").length,W=$>Y?$:Y,J=Number.parseInt(X.toFixed(W).replace(\".\",\"\")),G=Number.parseInt(Q.toFixed(W).replace(\".\",\"\"));return J%G/10**W}class I6 extends d{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(X){if(this._def.coerce)X.data=Number(X.data);if(this._getType(X)!==I.number){let W=this._getOrReturnCtx(X);return b(W,{code:A.invalid_type,expected:I.number,received:W.parsedType}),g}let $=void 0,Y=new b0;for(let W of this._def.checks)if(W.kind===\"int\"){if(!n.isInteger(X.data))$=this._getOrReturnCtx(X,$),b($,{code:A.invalid_type,expected:\"integer\",received:\"float\",message:W.message}),Y.dirty()}else if(W.kind===\"min\"){if(W.inclusive?X.data<W.value:X.data<=W.value)$=this._getOrReturnCtx(X,$),b($,{code:A.too_small,minimum:W.value,type:\"number\",inclusive:W.inclusive,exact:!1,message:W.message}),Y.dirty()}else if(W.kind===\"max\"){if(W.inclusive?X.data>W.value:X.data>=W.value)$=this._getOrReturnCtx(X,$),b($,{code:A.too_big,maximum:W.value,type:\"number\",inclusive:W.inclusive,exact:!1,message:W.message}),Y.dirty()}else if(W.kind===\"multipleOf\"){if(SV(X.data,W.value)!==0)$=this._getOrReturnCtx(X,$),b($,{code:A.not_multiple_of,multipleOf:W.value,message:W.message}),Y.dirty()}else if(W.kind===\"finite\"){if(!Number.isFinite(X.data))$=this._getOrReturnCtx(X,$),b($,{code:A.not_finite,message:W.message}),Y.dirty()}else n.assertNever(W);return{status:Y.value,value:X.data}}gte(X,Q){return this.setLimit(\"min\",X,!0,Z.toString(Q))}gt(X,Q){return this.setLimit(\"min\",X,!1,Z.toString(Q))}lte(X,Q){return this.setLimit(\"max\",X,!0,Z.toString(Q))}lt(X,Q){return this.setLimit(\"max\",X,!1,Z.toString(Q))}setLimit(X,Q,$,Y){return new I6({...this._def,checks:[...this._def.checks,{kind:X,value:Q,inclusive:$,message:Z.toString(Y)}]})}_addCheck(X){return new I6({...this._def,checks:[...this._def.checks,X]})}int(X){return this._addCheck({kind:\"int\",message:Z.toString(X)})}positive(X){return this._addCheck({kind:\"min\",value:0,inclusive:!1,message:Z.toString(X)})}negative(X){return this._addCheck({kind:\"max\",value:0,inclusive:!1,message:Z.toString(X)})}nonpositive(X){return this._addCheck({kind:\"max\",value:0,inclusive:!0,message:Z.toString(X)})}nonnegative(X){return this._addCheck({kind:\"min\",value:0,inclusive:!0,message:Z.toString(X)})}multipleOf(X,Q){return this._addCheck({kind:\"multipleOf\",value:X,message:Z.toString(Q)})}finite(X){return this._addCheck({kind:\"finite\",message:Z.toString(X)})}safe(X){return this._addCheck({kind:\"min\",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Z.toString(X)})._addCheck({kind:\"max\",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Z.toString(X)})}get minValue(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"min\"){if(X===null||Q.value>X)X=Q.value}return X}get maxValue(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"max\"){if(X===null||Q.value<X)X=Q.value}return X}get isInt(){return!!this._def.checks.find((X)=>X.kind===\"int\"||X.kind===\"multipleOf\"&&n.isInteger(X.value))}get isFinite(){let X=null,Q=null;for(let $ of this._def.checks)if($.kind===\"finite\"||$.kind===\"int\"||$.kind===\"multipleOf\")return!0;else if($.kind===\"min\"){if(Q===null||$.value>Q)Q=$.value}else if($.kind===\"max\"){if(X===null||$.value<X)X=$.value}return Number.isFinite(Q)&&Number.isFinite(X)}}I6.create=(X)=>{return new I6({checks:[],typeName:j.ZodNumber,coerce:X?.coerce||!1,...l(X)})};class E6 extends d{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(X){if(this._def.coerce)try{X.data=BigInt(X.data)}catch{return this._getInvalidInput(X)}if(this._getType(X)!==I.bigint)return this._getInvalidInput(X);let $=void 0,Y=new b0;for(let W of this._def.checks)if(W.kind===\"min\"){if(W.inclusive?X.data<W.value:X.data<=W.value)$=this._getOrReturnCtx(X,$),b($,{code:A.too_small,type:\"bigint\",minimum:W.value,inclusive:W.inclusive,message:W.message}),Y.dirty()}else if(W.kind===\"max\"){if(W.inclusive?X.data>W.value:X.data>=W.value)$=this._getOrReturnCtx(X,$),b($,{code:A.too_big,type:\"bigint\",maximum:W.value,inclusive:W.inclusive,message:W.message}),Y.dirty()}else if(W.kind===\"multipleOf\"){if(X.data%W.value!==BigInt(0))$=this._getOrReturnCtx(X,$),b($,{code:A.not_multiple_of,multipleOf:W.value,message:W.message}),Y.dirty()}else n.assertNever(W);return{status:Y.value,value:X.data}}_getInvalidInput(X){let Q=this._getOrReturnCtx(X);return b(Q,{code:A.invalid_type,expected:I.bigint,received:Q.parsedType}),g}gte(X,Q){return this.setLimit(\"min\",X,!0,Z.toString(Q))}gt(X,Q){return this.setLimit(\"min\",X,!1,Z.toString(Q))}lte(X,Q){return this.setLimit(\"max\",X,!0,Z.toString(Q))}lt(X,Q){return this.setLimit(\"max\",X,!1,Z.toString(Q))}setLimit(X,Q,$,Y){return new E6({...this._def,checks:[...this._def.checks,{kind:X,value:Q,inclusive:$,message:Z.toString(Y)}]})}_addCheck(X){return new E6({...this._def,checks:[...this._def.checks,X]})}positive(X){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!1,message:Z.toString(X)})}negative(X){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!1,message:Z.toString(X)})}nonpositive(X){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!0,message:Z.toString(X)})}nonnegative(X){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!0,message:Z.toString(X)})}multipleOf(X,Q){return this._addCheck({kind:\"multipleOf\",value:X,message:Z.toString(Q)})}get minValue(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"min\"){if(X===null||Q.value>X)X=Q.value}return X}get maxValue(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"max\"){if(X===null||Q.value<X)X=Q.value}return X}}E6.create=(X)=>{return new E6({checks:[],typeName:j.ZodBigInt,coerce:X?.coerce??!1,...l(X)})};class O4 extends d{_parse(X){if(this._def.coerce)X.data=Boolean(X.data);if(this._getType(X)!==I.boolean){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.boolean,received:$.parsedType}),g}return C0(X.data)}}O4.create=(X)=>{return new O4({typeName:j.ZodBoolean,coerce:X?.coerce||!1,...l(X)})};class GX extends d{_parse(X){if(this._def.coerce)X.data=new Date(X.data);if(this._getType(X)!==I.date){let W=this._getOrReturnCtx(X);return b(W,{code:A.invalid_type,expected:I.date,received:W.parsedType}),g}if(Number.isNaN(X.data.getTime())){let W=this._getOrReturnCtx(X);return b(W,{code:A.invalid_date}),g}let $=new b0,Y=void 0;for(let W of this._def.checks)if(W.kind===\"min\"){if(X.data.getTime()<W.value)Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.too_small,message:W.message,inclusive:!0,exact:!1,minimum:W.value,type:\"date\"}),$.dirty()}else if(W.kind===\"max\"){if(X.data.getTime()>W.value)Y=this._getOrReturnCtx(X,Y),b(Y,{code:A.too_big,message:W.message,inclusive:!0,exact:!1,maximum:W.value,type:\"date\"}),$.dirty()}else n.assertNever(W);return{status:$.value,value:new Date(X.data.getTime())}}_addCheck(X){return new GX({...this._def,checks:[...this._def.checks,X]})}min(X,Q){return this._addCheck({kind:\"min\",value:X.getTime(),message:Z.toString(Q)})}max(X,Q){return this._addCheck({kind:\"max\",value:X.getTime(),message:Z.toString(Q)})}get minDate(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"min\"){if(X===null||Q.value>X)X=Q.value}return X!=null?new Date(X):null}get maxDate(){let X=null;for(let Q of this._def.checks)if(Q.kind===\"max\"){if(X===null||Q.value<X)X=Q.value}return X!=null?new Date(X):null}}GX.create=(X)=>{return new GX({checks:[],coerce:X?.coerce||!1,typeName:j.ZodDate,...l(X)})};class D4 extends d{_parse(X){if(this._getType(X)!==I.symbol){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.symbol,received:$.parsedType}),g}return C0(X.data)}}D4.create=(X)=>{return new D4({typeName:j.ZodSymbol,...l(X)})};class HX extends d{_parse(X){if(this._getType(X)!==I.undefined){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.undefined,received:$.parsedType}),g}return C0(X.data)}}HX.create=(X)=>{return new HX({typeName:j.ZodUndefined,...l(X)})};class BX extends d{_parse(X){if(this._getType(X)!==I.null){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.null,received:$.parsedType}),g}return C0(X.data)}}BX.create=(X)=>{return new BX({typeName:j.ZodNull,...l(X)})};class w4 extends d{constructor(){super(...arguments);this._any=!0}_parse(X){return C0(X.data)}}w4.create=(X)=>{return new w4({typeName:j.ZodAny,...l(X)})};class a1 extends d{constructor(){super(...arguments);this._unknown=!0}_parse(X){return C0(X.data)}}a1.create=(X)=>{return new a1({typeName:j.ZodUnknown,...l(X)})};class A1 extends d{_parse(X){let Q=this._getOrReturnCtx(X);return b(Q,{code:A.invalid_type,expected:I.never,received:Q.parsedType}),g}}A1.create=(X)=>{return new A1({typeName:j.ZodNever,...l(X)})};class A4 extends d{_parse(X){if(this._getType(X)!==I.undefined){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.void,received:$.parsedType}),g}return C0(X.data)}}A4.create=(X)=>{return new A4({typeName:j.ZodVoid,...l(X)})};class W1 extends d{_parse(X){let{ctx:Q,status:$}=this._processInputParams(X),Y=this._def;if(Q.parsedType!==I.array)return b(Q,{code:A.invalid_type,expected:I.array,received:Q.parsedType}),g;if(Y.exactLength!==null){let J=Q.data.length>Y.exactLength.value,G=Q.data.length<Y.exactLength.value;if(J||G)b(Q,{code:J?A.too_big:A.too_small,minimum:G?Y.exactLength.value:void 0,maximum:J?Y.exactLength.value:void 0,type:\"array\",inclusive:!0,exact:!0,message:Y.exactLength.message}),$.dirty()}if(Y.minLength!==null){if(Q.data.length<Y.minLength.value)b(Q,{code:A.too_small,minimum:Y.minLength.value,type:\"array\",inclusive:!0,exact:!1,message:Y.minLength.message}),$.dirty()}if(Y.maxLength!==null){if(Q.data.length>Y.maxLength.value)b(Q,{code:A.too_big,maximum:Y.maxLength.value,type:\"array\",inclusive:!0,exact:!1,message:Y.maxLength.message}),$.dirty()}if(Q.common.async)return Promise.all([...Q.data].map((J,G)=>{return Y.type._parseAsync(new r0(Q,J,Q.path,G))})).then((J)=>{return b0.mergeArray($,J)});let W=[...Q.data].map((J,G)=>{return Y.type._parseSync(new r0(Q,J,Q.path,G))});return b0.mergeArray($,W)}get element(){return this._def.type}min(X,Q){return new W1({...this._def,minLength:{value:X,message:Z.toString(Q)}})}max(X,Q){return new W1({...this._def,maxLength:{value:X,message:Z.toString(Q)}})}length(X,Q){return new W1({...this._def,exactLength:{value:X,message:Z.toString(Q)}})}nonempty(X){return this.min(1,X)}}W1.create=(X,Q)=>{return new W1({type:X,minLength:null,maxLength:null,exactLength:null,typeName:j.ZodArray,...l(Q)})};function R6(X){if(X instanceof V0){let Q={};for(let $ in X.shape){let Y=X.shape[$];Q[$]=J1.create(R6(Y))}return new V0({...X._def,shape:()=>Q})}else if(X instanceof W1)return new W1({...X._def,type:R6(X.element)});else if(X instanceof J1)return J1.create(R6(X.unwrap()));else if(X instanceof _1)return _1.create(R6(X.unwrap()));else if(X instanceof M1)return M1.create(X.items.map((Q)=>R6(Q)));else return X}class V0 extends d{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let X=this._def.shape(),Q=n.objectKeys(X);return this._cached={shape:X,keys:Q},this._cached}_parse(X){if(this._getType(X)!==I.object){let B=this._getOrReturnCtx(X);return b(B,{code:A.invalid_type,expected:I.object,received:B.parsedType}),g}let{status:$,ctx:Y}=this._processInputParams(X),{shape:W,keys:J}=this._getCached(),G=[];if(!(this._def.catchall instanceof A1&&this._def.unknownKeys===\"strip\")){for(let B in Y.data)if(!J.includes(B))G.push(B)}let H=[];for(let B of J){let z=W[B],K=Y.data[B];H.push({key:{status:\"valid\",value:B},value:z._parse(new r0(Y,K,Y.path,B)),alwaysSet:B in Y.data})}if(this._def.catchall instanceof A1){let B=this._def.unknownKeys;if(B===\"passthrough\")for(let z of G)H.push({key:{status:\"valid\",value:z},value:{status:\"valid\",value:Y.data[z]}});else if(B===\"strict\"){if(G.length>0)b(Y,{code:A.unrecognized_keys,keys:G}),$.dirty()}else if(B===\"strip\");else throw Error(\"Internal ZodObject error: invalid unknownKeys value.\")}else{let B=this._def.catchall;for(let z of G){let K=Y.data[z];H.push({key:{status:\"valid\",value:z},value:B._parse(new r0(Y,K,Y.path,z)),alwaysSet:z in Y.data})}}if(Y.common.async)return Promise.resolve().then(async()=>{let B=[];for(let z of H){let K=await z.key,V=await z.value;B.push({key:K,value:V,alwaysSet:z.alwaysSet})}return B}).then((B)=>{return b0.mergeObjectSync($,B)});else return b0.mergeObjectSync($,H)}get shape(){return this._def.shape()}strict(X){return Z.errToObj,new V0({...this._def,unknownKeys:\"strict\",...X!==void 0?{errorMap:(Q,$)=>{let Y=this._def.errorMap?.(Q,$).message??$.defaultError;if(Q.code===\"unrecognized_keys\")return{message:Z.errToObj(X).message??Y};return{message:Y}}}:{}})}strip(){return new V0({...this._def,unknownKeys:\"strip\"})}passthrough(){return new V0({...this._def,unknownKeys:\"passthrough\"})}extend(X){return new V0({...this._def,shape:()=>({...this._def.shape(),...X})})}merge(X){return new V0({unknownKeys:X._def.unknownKeys,catchall:X._def.catchall,shape:()=>({...this._def.shape(),...X._def.shape()}),typeName:j.ZodObject})}setKey(X,Q){return this.augment({[X]:Q})}catchall(X){return new V0({...this._def,catchall:X})}pick(X){let Q={};for(let $ of n.objectKeys(X))if(X[$]&&this.shape[$])Q[$]=this.shape[$];return new V0({...this._def,shape:()=>Q})}omit(X){let Q={};for(let $ of n.objectKeys(this.shape))if(!X[$])Q[$]=this.shape[$];return new V0({...this._def,shape:()=>Q})}deepPartial(){return R6(this)}partial(X){let Q={};for(let $ of n.objectKeys(this.shape)){let Y=this.shape[$];if(X&&!X[$])Q[$]=Y;else Q[$]=Y.optional()}return new V0({...this._def,shape:()=>Q})}required(X){let Q={};for(let $ of n.objectKeys(this.shape))if(X&&!X[$])Q[$]=this.shape[$];else{let W=this.shape[$];while(W instanceof J1)W=W._def.innerType;Q[$]=W}return new V0({...this._def,shape:()=>Q})}keyof(){return NW(n.objectKeys(this.shape))}}V0.create=(X,Q)=>{return new V0({shape:()=>X,unknownKeys:\"strip\",catchall:A1.create(),typeName:j.ZodObject,...l(Q)})};V0.strictCreate=(X,Q)=>{return new V0({shape:()=>X,unknownKeys:\"strict\",catchall:A1.create(),typeName:j.ZodObject,...l(Q)})};V0.lazycreate=(X,Q)=>{return new V0({shape:X,unknownKeys:\"strip\",catchall:A1.create(),typeName:j.ZodObject,...l(Q)})};class zX extends d{_parse(X){let{ctx:Q}=this._processInputParams(X),$=this._def.options;function Y(W){for(let G of W)if(G.result.status===\"valid\")return G.result;for(let G of W)if(G.result.status===\"dirty\")return Q.common.issues.push(...G.ctx.common.issues),G.result;let J=W.map((G)=>new h0(G.ctx.common.issues));return b(Q,{code:A.invalid_union,unionErrors:J}),g}if(Q.common.async)return Promise.all($.map(async(W)=>{let J={...Q,common:{...Q.common,issues:[]},parent:null};return{result:await W._parseAsync({data:Q.data,path:Q.path,parent:J}),ctx:J}})).then(Y);else{let W=void 0,J=[];for(let H of $){let B={...Q,common:{...Q.common,issues:[]},parent:null},z=H._parseSync({data:Q.data,path:Q.path,parent:B});if(z.status===\"valid\")return z;else if(z.status===\"dirty\"&&!W)W={result:z,ctx:B};if(B.common.issues.length)J.push(B.common.issues)}if(W)return Q.common.issues.push(...W.ctx.common.issues),W.result;let G=J.map((H)=>new h0(H));return b(Q,{code:A.invalid_union,unionErrors:G}),g}}get options(){return this._def.options}}zX.create=(X,Q)=>{return new zX({options:X,typeName:j.ZodUnion,...l(Q)})};var D1=(X)=>{if(X instanceof UX)return D1(X.schema);else if(X instanceof G1)return D1(X.innerType());else if(X instanceof VX)return[X.value];else if(X instanceof s1)return X.options;else if(X instanceof LX)return n.objectValues(X.enum);else if(X instanceof qX)return D1(X._def.innerType);else if(X instanceof HX)return[void 0];else if(X instanceof BX)return[null];else if(X instanceof J1)return[void 0,...D1(X.unwrap())];else if(X instanceof _1)return[null,...D1(X.unwrap())];else if(X instanceof D9)return D1(X.unwrap());else if(X instanceof NX)return D1(X.unwrap());else if(X instanceof FX)return D1(X._def.innerType);else return[]};class O9 extends d{_parse(X){let{ctx:Q}=this._processInputParams(X);if(Q.parsedType!==I.object)return b(Q,{code:A.invalid_type,expected:I.object,received:Q.parsedType}),g;let $=this.discriminator,Y=Q.data[$],W=this.optionsMap.get(Y);if(!W)return b(Q,{code:A.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[$]}),g;if(Q.common.async)return W._parseAsync({data:Q.data,path:Q.path,parent:Q});else return W._parseSync({data:Q.data,path:Q.path,parent:Q})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(X,Q,$){let Y=new Map;for(let W of Q){let J=D1(W.shape[X]);if(!J.length)throw Error(`A discriminator value for key \\`${X}\\` could not be extracted from all schema options`);for(let G of J){if(Y.has(G))throw Error(`Discriminator property ${String(X)} has duplicate value ${String(G)}`);Y.set(G,W)}}return new O9({typeName:j.ZodDiscriminatedUnion,discriminator:X,options:Q,optionsMap:Y,...l($)})}}function N9(X,Q){let $=O1(X),Y=O1(Q);if(X===Q)return{valid:!0,data:X};else if($===I.object&&Y===I.object){let W=n.objectKeys(Q),J=n.objectKeys(X).filter((H)=>W.indexOf(H)!==-1),G={...X,...Q};for(let H of J){let B=N9(X[H],Q[H]);if(!B.valid)return{valid:!1};G[H]=B.data}return{valid:!0,data:G}}else if($===I.array&&Y===I.array){if(X.length!==Q.length)return{valid:!1};let W=[];for(let J=0;J<X.length;J++){let G=X[J],H=Q[J],B=N9(G,H);if(!B.valid)return{valid:!1};W.push(B.data)}return{valid:!0,data:W}}else if($===I.date&&Y===I.date&&+X===+Q)return{valid:!0,data:X};else return{valid:!1}}class KX extends d{_parse(X){let{status:Q,ctx:$}=this._processInputParams(X),Y=(W,J)=>{if(L9(W)||L9(J))return g;let G=N9(W.value,J.value);if(!G.valid)return b($,{code:A.invalid_intersection_types}),g;if(q9(W)||q9(J))Q.dirty();return{status:Q.value,value:G.data}};if($.common.async)return Promise.all([this._def.left._parseAsync({data:$.data,path:$.path,parent:$}),this._def.right._parseAsync({data:$.data,path:$.path,parent:$})]).then(([W,J])=>Y(W,J));else return Y(this._def.left._parseSync({data:$.data,path:$.path,parent:$}),this._def.right._parseSync({data:$.data,path:$.path,parent:$}))}}KX.create=(X,Q,$)=>{return new KX({left:X,right:Q,typeName:j.ZodIntersection,...l($)})};class M1 extends d{_parse(X){let{status:Q,ctx:$}=this._processInputParams(X);if($.parsedType!==I.array)return b($,{code:A.invalid_type,expected:I.array,received:$.parsedType}),g;if($.data.length<this._def.items.length)return b($,{code:A.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),g;if(!this._def.rest&&$.data.length>this._def.items.length)b($,{code:A.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),Q.dirty();let W=[...$.data].map((J,G)=>{let H=this._def.items[G]||this._def.rest;if(!H)return null;return H._parse(new r0($,J,$.path,G))}).filter((J)=>!!J);if($.common.async)return Promise.all(W).then((J)=>{return b0.mergeArray(Q,J)});else return b0.mergeArray(Q,W)}get items(){return this._def.items}rest(X){return new M1({...this._def,rest:X})}}M1.create=(X,Q)=>{if(!Array.isArray(X))throw Error(\"You must pass an array of schemas to z.tuple([ ... ])\");return new M1({items:X,typeName:j.ZodTuple,rest:null,...l(Q)})};class M4 extends d{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(X){let{status:Q,ctx:$}=this._processInputParams(X);if($.parsedType!==I.object)return b($,{code:A.invalid_type,expected:I.object,received:$.parsedType}),g;let Y=[],W=this._def.keyType,J=this._def.valueType;for(let G in $.data)Y.push({key:W._parse(new r0($,G,$.path,G)),value:J._parse(new r0($,$.data[G],$.path,G)),alwaysSet:G in $.data});if($.common.async)return b0.mergeObjectAsync(Q,Y);else return b0.mergeObjectSync(Q,Y)}get element(){return this._def.valueType}static create(X,Q,$){if(Q instanceof d)return new M4({keyType:X,valueType:Q,typeName:j.ZodRecord,...l($)});return new M4({keyType:w1.create(),valueType:X,typeName:j.ZodRecord,...l(Q)})}}class j4 extends d{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(X){let{status:Q,ctx:$}=this._processInputParams(X);if($.parsedType!==I.map)return b($,{code:A.invalid_type,expected:I.map,received:$.parsedType}),g;let Y=this._def.keyType,W=this._def.valueType,J=[...$.data.entries()].map(([G,H],B)=>{return{key:Y._parse(new r0($,G,$.path,[B,\"key\"])),value:W._parse(new r0($,H,$.path,[B,\"value\"]))}});if($.common.async){let G=new Map;return Promise.resolve().then(async()=>{for(let H of J){let B=await H.key,z=await H.value;if(B.status===\"aborted\"||z.status===\"aborted\")return g;if(B.status===\"dirty\"||z.status===\"dirty\")Q.dirty();G.set(B.value,z.value)}return{status:Q.value,value:G}})}else{let G=new Map;for(let H of J){let{key:B,value:z}=H;if(B.status===\"aborted\"||z.status===\"aborted\")return g;if(B.status===\"dirty\"||z.status===\"dirty\")Q.dirty();G.set(B.value,z.value)}return{status:Q.value,value:G}}}}j4.create=(X,Q,$)=>{return new j4({valueType:Q,keyType:X,typeName:j.ZodMap,...l($)})};class b6 extends d{_parse(X){let{status:Q,ctx:$}=this._processInputParams(X);if($.parsedType!==I.set)return b($,{code:A.invalid_type,expected:I.set,received:$.parsedType}),g;let Y=this._def;if(Y.minSize!==null){if($.data.size<Y.minSize.value)b($,{code:A.too_small,minimum:Y.minSize.value,type:\"set\",inclusive:!0,exact:!1,message:Y.minSize.message}),Q.dirty()}if(Y.maxSize!==null){if($.data.size>Y.maxSize.value)b($,{code:A.too_big,maximum:Y.maxSize.value,type:\"set\",inclusive:!0,exact:!1,message:Y.maxSize.message}),Q.dirty()}let W=this._def.valueType;function J(H){let B=new Set;for(let z of H){if(z.status===\"aborted\")return g;if(z.status===\"dirty\")Q.dirty();B.add(z.value)}return{status:Q.value,value:B}}let G=[...$.data.values()].map((H,B)=>W._parse(new r0($,H,$.path,B)));if($.common.async)return Promise.all(G).then((H)=>J(H));else return J(G)}min(X,Q){return new b6({...this._def,minSize:{value:X,message:Z.toString(Q)}})}max(X,Q){return new b6({...this._def,maxSize:{value:X,message:Z.toString(Q)}})}size(X,Q){return this.min(X,Q).max(X,Q)}nonempty(X){return this.min(1,X)}}b6.create=(X,Q)=>{return new b6({valueType:X,minSize:null,maxSize:null,typeName:j.ZodSet,...l(Q)})};class JX extends d{constructor(){super(...arguments);this.validate=this.implement}_parse(X){let{ctx:Q}=this._processInputParams(X);if(Q.parsedType!==I.function)return b(Q,{code:A.invalid_type,expected:I.function,received:Q.parsedType}),g;function $(G,H){return N4({data:G,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,YX(),T1].filter((B)=>!!B),issueData:{code:A.invalid_arguments,argumentsError:H}})}function Y(G,H){return N4({data:G,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,YX(),T1].filter((B)=>!!B),issueData:{code:A.invalid_return_type,returnTypeError:H}})}let W={errorMap:Q.common.contextualErrorMap},J=Q.data;if(this._def.returns instanceof P6){let G=this;return C0(async function(...H){let B=new h0([]),z=await G._def.args.parseAsync(H,W).catch((L)=>{throw B.addIssue($(H,L)),B}),K=await Reflect.apply(J,this,z);return await G._def.returns._def.type.parseAsync(K,W).catch((L)=>{throw B.addIssue(Y(K,L)),B})})}else{let G=this;return C0(function(...H){let B=G._def.args.safeParse(H,W);if(!B.success)throw new h0([$(H,B.error)]);let z=Reflect.apply(J,this,B.data),K=G._def.returns.safeParse(z,W);if(!K.success)throw new h0([Y(z,K.error)]);return K.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...X){return new JX({...this._def,args:M1.create(X).rest(a1.create())})}returns(X){return new JX({...this._def,returns:X})}implement(X){return this.parse(X)}strictImplement(X){return this.parse(X)}static create(X,Q,$){return new JX({args:X?X:M1.create([]).rest(a1.create()),returns:Q||a1.create(),typeName:j.ZodFunction,...l($)})}}class UX extends d{get schema(){return this._def.getter()}_parse(X){let{ctx:Q}=this._processInputParams(X);return this._def.getter()._parse({data:Q.data,path:Q.path,parent:Q})}}UX.create=(X,Q)=>{return new UX({getter:X,typeName:j.ZodLazy,...l(Q)})};class VX extends d{_parse(X){if(X.data!==this._def.value){let Q=this._getOrReturnCtx(X);return b(Q,{received:Q.data,code:A.invalid_literal,expected:this._def.value}),g}return{status:\"valid\",value:X.data}}get value(){return this._def.value}}VX.create=(X,Q)=>{return new VX({value:X,typeName:j.ZodLiteral,...l(Q)})};function NW(X,Q){return new s1({values:X,typeName:j.ZodEnum,...l(Q)})}class s1 extends d{_parse(X){if(typeof X.data!==\"string\"){let Q=this._getOrReturnCtx(X),$=this._def.values;return b(Q,{expected:n.joinValues($),received:Q.parsedType,code:A.invalid_type}),g}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(X.data)){let Q=this._getOrReturnCtx(X),$=this._def.values;return b(Q,{received:Q.data,code:A.invalid_enum_value,options:$}),g}return C0(X.data)}get options(){return this._def.values}get enum(){let X={};for(let Q of this._def.values)X[Q]=Q;return X}get Values(){let X={};for(let Q of this._def.values)X[Q]=Q;return X}get Enum(){let X={};for(let Q of this._def.values)X[Q]=Q;return X}extract(X,Q=this._def){return s1.create(X,{...this._def,...Q})}exclude(X,Q=this._def){return s1.create(this.options.filter(($)=>!X.includes($)),{...this._def,...Q})}}s1.create=NW;class LX extends d{_parse(X){let Q=n.getValidEnumValues(this._def.values),$=this._getOrReturnCtx(X);if($.parsedType!==I.string&&$.parsedType!==I.number){let Y=n.objectValues(Q);return b($,{expected:n.joinValues(Y),received:$.parsedType,code:A.invalid_type}),g}if(!this._cache)this._cache=new Set(n.getValidEnumValues(this._def.values));if(!this._cache.has(X.data)){let Y=n.objectValues(Q);return b($,{received:$.data,code:A.invalid_enum_value,options:Y}),g}return C0(X.data)}get enum(){return this._def.values}}LX.create=(X,Q)=>{return new LX({values:X,typeName:j.ZodNativeEnum,...l(Q)})};class P6 extends d{unwrap(){return this._def.type}_parse(X){let{ctx:Q}=this._processInputParams(X);if(Q.parsedType!==I.promise&&Q.common.async===!1)return b(Q,{code:A.invalid_type,expected:I.promise,received:Q.parsedType}),g;let $=Q.parsedType===I.promise?Q.data:Promise.resolve(Q.data);return C0($.then((Y)=>{return this._def.type.parseAsync(Y,{path:Q.path,errorMap:Q.common.contextualErrorMap})}))}}P6.create=(X,Q)=>{return new P6({type:X,typeName:j.ZodPromise,...l(Q)})};class G1 extends d{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===j.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(X){let{status:Q,ctx:$}=this._processInputParams(X),Y=this._def.effect||null,W={addIssue:(J)=>{if(b($,J),J.fatal)Q.abort();else Q.dirty()},get path(){return $.path}};if(W.addIssue=W.addIssue.bind(W),Y.type===\"preprocess\"){let J=Y.transform($.data,W);if($.common.async)return Promise.resolve(J).then(async(G)=>{if(Q.value===\"aborted\")return g;let H=await this._def.schema._parseAsync({data:G,path:$.path,parent:$});if(H.status===\"aborted\")return g;if(H.status===\"dirty\")return j6(H.value);if(Q.value===\"dirty\")return j6(H.value);return H});else{if(Q.value===\"aborted\")return g;let G=this._def.schema._parseSync({data:J,path:$.path,parent:$});if(G.status===\"aborted\")return g;if(G.status===\"dirty\")return j6(G.value);if(Q.value===\"dirty\")return j6(G.value);return G}}if(Y.type===\"refinement\"){let J=(G)=>{let H=Y.refinement(G,W);if($.common.async)return Promise.resolve(H);if(H instanceof Promise)throw Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");return G};if($.common.async===!1){let G=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(G.status===\"aborted\")return g;if(G.status===\"dirty\")Q.dirty();return J(G.value),{status:Q.value,value:G.value}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((G)=>{if(G.status===\"aborted\")return g;if(G.status===\"dirty\")Q.dirty();return J(G.value).then(()=>{return{status:Q.value,value:G.value}})})}if(Y.type===\"transform\")if($.common.async===!1){let J=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(!t1(J))return g;let G=Y.transform(J.value,W);if(G instanceof Promise)throw Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");return{status:Q.value,value:G}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((J)=>{if(!t1(J))return g;return Promise.resolve(Y.transform(J.value,W)).then((G)=>({status:Q.value,value:G}))});n.assertNever(Y)}}G1.create=(X,Q,$)=>{return new G1({schema:X,typeName:j.ZodEffects,effect:Q,...l($)})};G1.createWithPreprocess=(X,Q,$)=>{return new G1({schema:Q,effect:{type:\"preprocess\",transform:X},typeName:j.ZodEffects,...l($)})};class J1 extends d{_parse(X){if(this._getType(X)===I.undefined)return C0(void 0);return this._def.innerType._parse(X)}unwrap(){return this._def.innerType}}J1.create=(X,Q)=>{return new J1({innerType:X,typeName:j.ZodOptional,...l(Q)})};class _1 extends d{_parse(X){if(this._getType(X)===I.null)return C0(null);return this._def.innerType._parse(X)}unwrap(){return this._def.innerType}}_1.create=(X,Q)=>{return new _1({innerType:X,typeName:j.ZodNullable,...l(Q)})};class qX extends d{_parse(X){let{ctx:Q}=this._processInputParams(X),$=Q.data;if(Q.parsedType===I.undefined)$=this._def.defaultValue();return this._def.innerType._parse({data:$,path:Q.path,parent:Q})}removeDefault(){return this._def.innerType}}qX.create=(X,Q)=>{return new qX({innerType:X,typeName:j.ZodDefault,defaultValue:typeof Q.default===\"function\"?Q.default:()=>Q.default,...l(Q)})};class FX extends d{_parse(X){let{ctx:Q}=this._processInputParams(X),$={...Q,common:{...Q.common,issues:[]}},Y=this._def.innerType._parse({data:$.data,path:$.path,parent:{...$}});if(WX(Y))return Y.then((W)=>{return{status:\"valid\",value:W.status===\"valid\"?W.value:this._def.catchValue({get error(){return new h0($.common.issues)},input:$.data})}});else return{status:\"valid\",value:Y.status===\"valid\"?Y.value:this._def.catchValue({get error(){return new h0($.common.issues)},input:$.data})}}removeCatch(){return this._def.innerType}}FX.create=(X,Q)=>{return new FX({innerType:X,typeName:j.ZodCatch,catchValue:typeof Q.catch===\"function\"?Q.catch:()=>Q.catch,...l(Q)})};class R4 extends d{_parse(X){if(this._getType(X)!==I.nan){let $=this._getOrReturnCtx(X);return b($,{code:A.invalid_type,expected:I.nan,received:$.parsedType}),g}return{status:\"valid\",value:X.data}}}R4.create=(X)=>{return new R4({typeName:j.ZodNaN,...l(X)})};var M2=Symbol(\"zod_brand\");class D9 extends d{_parse(X){let{ctx:Q}=this._processInputParams(X),$=Q.data;return this._def.type._parse({data:$,path:Q.path,parent:Q})}unwrap(){return this._def.type}}class I4 extends d{_parse(X){let{status:Q,ctx:$}=this._processInputParams(X);if($.common.async)return(async()=>{let W=await this._def.in._parseAsync({data:$.data,path:$.path,parent:$});if(W.status===\"aborted\")return g;if(W.status===\"dirty\")return Q.dirty(),j6(W.value);else return this._def.out._parseAsync({data:W.value,path:$.path,parent:$})})();else{let Y=this._def.in._parseSync({data:$.data,path:$.path,parent:$});if(Y.status===\"aborted\")return g;if(Y.status===\"dirty\")return Q.dirty(),{status:\"dirty\",value:Y.value};else return this._def.out._parseSync({data:Y.value,path:$.path,parent:$})}}static create(X,Q){return new I4({in:X,out:Q,typeName:j.ZodPipeline})}}class NX extends d{_parse(X){let Q=this._def.innerType._parse(X),$=(Y)=>{if(t1(Y))Y.value=Object.freeze(Y.value);return Y};return WX(Q)?Q.then((Y)=>$(Y)):$(Q)}unwrap(){return this._def.innerType}}NX.create=(X,Q)=>{return new NX({innerType:X,typeName:j.ZodReadonly,...l(Q)})};var j2={object:V0.lazycreate},j;(function(X){X.ZodString=\"ZodString\",X.ZodNumber=\"ZodNumber\",X.ZodNaN=\"ZodNaN\",X.ZodBigInt=\"ZodBigInt\",X.ZodBoolean=\"ZodBoolean\",X.ZodDate=\"ZodDate\",X.ZodSymbol=\"ZodSymbol\",X.ZodUndefined=\"ZodUndefined\",X.ZodNull=\"ZodNull\",X.ZodAny=\"ZodAny\",X.ZodUnknown=\"ZodUnknown\",X.ZodNever=\"ZodNever\",X.ZodVoid=\"ZodVoid\",X.ZodArray=\"ZodArray\",X.ZodObject=\"ZodObject\",X.ZodUnion=\"ZodUnion\",X.ZodDiscriminatedUnion=\"ZodDiscriminatedUnion\",X.ZodIntersection=\"ZodIntersection\",X.ZodTuple=\"ZodTuple\",X.ZodRecord=\"ZodRecord\",X.ZodMap=\"ZodMap\",X.ZodSet=\"ZodSet\",X.ZodFunction=\"ZodFunction\",X.ZodLazy=\"ZodLazy\",X.ZodLiteral=\"ZodLiteral\",X.ZodEnum=\"ZodEnum\",X.ZodEffects=\"ZodEffects\",X.ZodNativeEnum=\"ZodNativeEnum\",X.ZodOptional=\"ZodOptional\",X.ZodNullable=\"ZodNullable\",X.ZodDefault=\"ZodDefault\",X.ZodCatch=\"ZodCatch\",X.ZodPromise=\"ZodPromise\",X.ZodBranded=\"ZodBranded\",X.ZodPipeline=\"ZodPipeline\",X.ZodReadonly=\"ZodReadonly\"})(j||(j={}));var R2=w1.create,I2=I6.create,E2=R4.create,b2=E6.create,P2=O4.create,S2=GX.create,Z2=D4.create,C2=HX.create,k2=BX.create,v2=w4.create,T2=a1.create,_2=A1.create,x2=A4.create,y2=W1.create,OW=V0.create,g2=V0.strictCreate,f2=zX.create,h2=O9.create,u2=KX.create,l2=M1.create,m2=M4.create,c2=j4.create,p2=b6.create,d2=JX.create,i2=UX.create,n2=VX.create,r2=s1.create,o2=LX.create,t2=P6.create,a2=G1.create,s2=J1.create,e2=_1.create,XS=G1.createWithPreprocess,QS=I4.create;var ZV=Object.freeze({status:\"aborted\"});function O(X,Q,$){function Y(H,B){var z;Object.defineProperty(H,\"_zod\",{value:H._zod??{},enumerable:!1}),(z=H._zod).traits??(z.traits=new Set),H._zod.traits.add(X),Q(H,B);for(let K in G.prototype)if(!(K in H))Object.defineProperty(H,K,{value:G.prototype[K].bind(H)});H._zod.constr=G,H._zod.def=B}let W=$?.Parent??Object;class J extends W{}Object.defineProperty(J,\"name\",{value:X});function G(H){var B;let z=$?.Parent?new J:this;Y(z,H),(B=z._zod).deferred??(B.deferred=[]);for(let K of z._zod.deferred)K();return z}return Object.defineProperty(G,\"init\",{value:Y}),Object.defineProperty(G,Symbol.hasInstance,{value:(H)=>{if($?.Parent&&H instanceof $.Parent)return!0;return H?._zod?.traits?.has(X)}}),Object.defineProperty(G,\"name\",{value:X}),G}var CV=Symbol(\"zod_brand\");class x1 extends Error{constructor(){super(\"Encountered Promise during synchronous parse. Use .parseAsync() instead.\")}}var E4={};function u0(X){if(X)Object.assign(E4,X);return E4}var i={};U7(i,{unwrapMessage:()=>OX,stringifyPrimitive:()=>S4,required:()=>nV,randomString:()=>fV,propertyKeyTypes:()=>I9,promiseAllObject:()=>gV,primitiveTypes:()=>DW,prefixIssues:()=>H1,pick:()=>mV,partial:()=>iV,optionalKeys:()=>E9,omit:()=>cV,numKeys:()=>hV,nullish:()=>AX,normalizeParams:()=>y,merge:()=>dV,jsonStringifyReplacer:()=>A9,joinValues:()=>b4,issue:()=>P9,isPlainObject:()=>Z6,isObject:()=>S6,getSizableOrigin:()=>AW,getParsedType:()=>uV,getLengthableOrigin:()=>jX,getEnumValues:()=>DX,getElementAtPath:()=>yV,floatSafeRemainder:()=>M9,finalizeIssue:()=>o0,extend:()=>pV,escapeRegex:()=>y1,esc:()=>e1,defineLazy:()=>Y0,createTransparentProxy:()=>lV,clone:()=>l0,cleanRegex:()=>MX,cleanEnum:()=>rV,captureStackTrace:()=>P4,cached:()=>wX,assignProp:()=>j9,assertNotEqual:()=>vV,assertNever:()=>_V,assertIs:()=>TV,assertEqual:()=>kV,assert:()=>xV,allowsEval:()=>R9,aborted:()=>X6,NUMBER_FORMAT_RANGES:()=>b9,Class:()=>MW,BIGINT_FORMAT_RANGES:()=>wW});function kV(X){return X}function vV(X){return X}function TV(X){}function _V(X){throw Error()}function xV(X){}function DX(X){let Q=Object.values(X).filter((Y)=>typeof Y===\"number\");return Object.entries(X).filter(([Y,W])=>Q.indexOf(+Y)===-1).map(([Y,W])=>W)}function b4(X,Q=\"|\"){return X.map(($)=>S4($)).join(Q)}function A9(X,Q){if(typeof Q===\"bigint\")return Q.toString();return Q}function wX(X){return{get value(){{let $=X();return Object.defineProperty(this,\"value\",{value:$}),$}throw Error(\"cached value already set\")}}}function AX(X){return X===null||X===void 0}function MX(X){let Q=X.startsWith(\"^\")?1:0,$=X.endsWith(\"$\")?X.length-1:X.length;return X.slice(Q,$)}function M9(X,Q){let $=(X.toString().split(\".\")[1]||\"\").length,Y=(Q.toString().split(\".\")[1]||\"\").length,W=$>Y?$:Y,J=Number.parseInt(X.toFixed(W).replace(\".\",\"\")),G=Number.parseInt(Q.toFixed(W).replace(\".\",\"\"));return J%G/10**W}function Y0(X,Q,$){Object.defineProperty(X,Q,{get(){{let W=$();return X[Q]=W,W}throw Error(\"cached value already set\")},set(W){Object.defineProperty(X,Q,{value:W})},configurable:!0})}function j9(X,Q,$){Object.defineProperty(X,Q,{value:$,writable:!0,enumerable:!0,configurable:!0})}function yV(X,Q){if(!Q)return X;return Q.reduce(($,Y)=>$?.[Y],X)}function gV(X){let Q=Object.keys(X),$=Q.map((Y)=>X[Y]);return Promise.all($).then((Y)=>{let W={};for(let J=0;J<Q.length;J++)W[Q[J]]=Y[J];return W})}function fV(X=10){let $=\"\";for(let Y=0;Y<X;Y++)$+=\"abcdefghijklmnopqrstuvwxyz\"[Math.floor(Math.random()*26)];return $}function e1(X){return JSON.stringify(X)}var P4=Error.captureStackTrace?Error.captureStackTrace:(...X)=>{};function S6(X){return typeof X===\"object\"&&X!==null&&!Array.isArray(X)}var R9=wX(()=>{if(typeof navigator<\"u\"&&navigator?.userAgent?.includes(\"Cloudflare\"))return!1;try{return new Function(\"\"),!0}catch(X){return!1}});function Z6(X){if(S6(X)===!1)return!1;let Q=X.constructor;if(Q===void 0)return!0;let $=Q.prototype;if(S6($)===!1)return!1;if(Object.prototype.hasOwnProperty.call($,\"isPrototypeOf\")===!1)return!1;return!0}function hV(X){let Q=0;for(let $ in X)if(Object.prototype.hasOwnProperty.call(X,$))Q++;return Q}var uV=(X)=>{let Q=typeof X;switch(Q){case\"undefined\":return\"undefined\";case\"string\":return\"string\";case\"number\":return Number.isNaN(X)?\"nan\":\"number\";case\"boolean\":return\"boolean\";case\"function\":return\"function\";case\"bigint\":return\"bigint\";case\"symbol\":return\"symbol\";case\"object\":if(Array.isArray(X))return\"array\";if(X===null)return\"null\";if(X.then&&typeof X.then===\"function\"&&X.catch&&typeof X.catch===\"function\")return\"promise\";if(typeof Map<\"u\"&&X instanceof Map)return\"map\";if(typeof Set<\"u\"&&X instanceof Set)return\"set\";if(typeof Date<\"u\"&&X instanceof Date)return\"date\";if(typeof File<\"u\"&&X instanceof File)return\"file\";return\"object\";default:throw Error(`Unknown data type: ${Q}`)}},I9=new Set([\"string\",\"number\",\"symbol\"]),DW=new Set([\"string\",\"number\",\"bigint\",\"boolean\",\"symbol\",\"undefined\"]);function y1(X){return X.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function l0(X,Q,$){let Y=new X._zod.constr(Q??X._zod.def);if(!Q||$?.parent)Y._zod.parent=X;return Y}function y(X){let Q=X;if(!Q)return{};if(typeof Q===\"string\")return{error:()=>Q};if(Q?.message!==void 0){if(Q?.error!==void 0)throw Error(\"Cannot specify both `message` and `error` params\");Q.error=Q.message}if(delete Q.message,typeof Q.error===\"string\")return{...Q,error:()=>Q.error};return Q}function lV(X){let Q;return new Proxy({},{get($,Y,W){return Q??(Q=X()),Reflect.get(Q,Y,W)},set($,Y,W,J){return Q??(Q=X()),Reflect.set(Q,Y,W,J)},has($,Y){return Q??(Q=X()),Reflect.has(Q,Y)},deleteProperty($,Y){return Q??(Q=X()),Reflect.deleteProperty(Q,Y)},ownKeys($){return Q??(Q=X()),Reflect.ownKeys(Q)},getOwnPropertyDescriptor($,Y){return Q??(Q=X()),Reflect.getOwnPropertyDescriptor(Q,Y)},defineProperty($,Y,W){return Q??(Q=X()),Reflect.defineProperty(Q,Y,W)}})}function S4(X){if(typeof X===\"bigint\")return X.toString()+\"n\";if(typeof X===\"string\")return`\"${X}\"`;return`${X}`}function E9(X){return Object.keys(X).filter((Q)=>{return X[Q]._zod.optin===\"optional\"&&X[Q]._zod.optout===\"optional\"})}var b9={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},wW={int64:[BigInt(\"-9223372036854775808\"),BigInt(\"9223372036854775807\")],uint64:[BigInt(0),BigInt(\"18446744073709551615\")]};function mV(X,Q){let $={},Y=X._zod.def;for(let W in Q){if(!(W in Y.shape))throw Error(`Unrecognized key: \"${W}\"`);if(!Q[W])continue;$[W]=Y.shape[W]}return l0(X,{...X._zod.def,shape:$,checks:[]})}function cV(X,Q){let $={...X._zod.def.shape},Y=X._zod.def;for(let W in Q){if(!(W in Y.shape))throw Error(`Unrecognized key: \"${W}\"`);if(!Q[W])continue;delete $[W]}return l0(X,{...X._zod.def,shape:$,checks:[]})}function pV(X,Q){if(!Z6(Q))throw Error(\"Invalid input to extend: expected a plain object\");let $={...X._zod.def,get shape(){let Y={...X._zod.def.shape,...Q};return j9(this,\"shape\",Y),Y},checks:[]};return l0(X,$)}function dV(X,Q){return l0(X,{...X._zod.def,get shape(){let $={...X._zod.def.shape,...Q._zod.def.shape};return j9(this,\"shape\",$),$},catchall:Q._zod.def.catchall,checks:[]})}function iV(X,Q,$){let Y=Q._zod.def.shape,W={...Y};if($)for(let J in $){if(!(J in Y))throw Error(`Unrecognized key: \"${J}\"`);if(!$[J])continue;W[J]=X?new X({type:\"optional\",innerType:Y[J]}):Y[J]}else for(let J in Y)W[J]=X?new X({type:\"optional\",innerType:Y[J]}):Y[J];return l0(Q,{...Q._zod.def,shape:W,checks:[]})}function nV(X,Q,$){let Y=Q._zod.def.shape,W={...Y};if($)for(let J in $){if(!(J in W))throw Error(`Unrecognized key: \"${J}\"`);if(!$[J])continue;W[J]=new X({type:\"nonoptional\",innerType:Y[J]})}else for(let J in Y)W[J]=new X({type:\"nonoptional\",innerType:Y[J]});return l0(Q,{...Q._zod.def,shape:W,checks:[]})}function X6(X,Q=0){for(let $=Q;$<X.issues.length;$++)if(X.issues[$]?.continue!==!0)return!0;return!1}function H1(X,Q){return Q.map(($)=>{var Y;return(Y=$).path??(Y.path=[]),$.path.unshift(X),$})}function OX(X){return typeof X===\"string\"?X:X?.message}function o0(X,Q,$){let Y={...X,path:X.path??[]};if(!X.message){let W=OX(X.inst?._zod.def?.error?.(X))??OX(Q?.error?.(X))??OX($.customError?.(X))??OX($.localeError?.(X))??\"Invalid input\";Y.message=W}if(delete Y.inst,delete Y.continue,!Q?.reportInput)delete Y.input;return Y}function AW(X){if(X instanceof Set)return\"set\";if(X instanceof Map)return\"map\";if(X instanceof File)return\"file\";return\"unknown\"}function jX(X){if(Array.isArray(X))return\"array\";if(typeof X===\"string\")return\"string\";return\"unknown\"}function P9(...X){let[Q,$,Y]=X;if(typeof Q===\"string\")return{message:Q,code:\"custom\",input:$,inst:Y};return{...Q}}function rV(X){return Object.entries(X).filter(([Q,$])=>{return Number.isNaN(Number.parseInt(Q,10))}).map((Q)=>Q[1])}class MW{constructor(...X){}}var jW=(X,Q)=>{X.name=\"$ZodError\",Object.defineProperty(X,\"_zod\",{value:X._zod,enumerable:!1}),Object.defineProperty(X,\"issues\",{value:Q,enumerable:!1}),Object.defineProperty(X,\"message\",{get(){return JSON.stringify(Q,A9,2)},enumerable:!0})},Z4=O(\"$ZodError\",jW),RX=O(\"$ZodError\",jW,{Parent:Error});function S9(X,Q=($)=>$.message){let $={},Y=[];for(let W of X.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(Q(W));else Y.push(Q(W));return{formErrors:Y,fieldErrors:$}}function Z9(X,Q){let $=Q||function(J){return J.message},Y={_errors:[]},W=(J)=>{for(let G of J.issues)if(G.code===\"invalid_union\"&&G.errors.length)G.errors.map((H)=>W({issues:H}));else if(G.code===\"invalid_key\")W({issues:G.issues});else if(G.code===\"invalid_element\")W({issues:G.issues});else if(G.path.length===0)Y._errors.push($(G));else{let H=Y,B=0;while(B<G.path.length){let z=G.path[B];if(B!==G.path.length-1)H[z]=H[z]||{_errors:[]};else H[z]=H[z]||{_errors:[]},H[z]._errors.push($(G));H=H[z],B++}}};return W(X),Y}var C9=(X)=>(Q,$,Y,W)=>{let J=Y?Object.assign(Y,{async:!1}):{async:!1},G=Q._zod.run({value:$,issues:[]},J);if(G instanceof Promise)throw new x1;if(G.issues.length){let H=new(W?.Err??X)(G.issues.map((B)=>o0(B,J,u0())));throw P4(H,W?.callee),H}return G.value},k9=C9(RX),v9=(X)=>async(Q,$,Y,W)=>{let J=Y?Object.assign(Y,{async:!0}):{async:!0},G=Q._zod.run({value:$,issues:[]},J);if(G instanceof Promise)G=await G;if(G.issues.length){let H=new(W?.Err??X)(G.issues.map((B)=>o0(B,J,u0())));throw P4(H,W?.callee),H}return G.value},T9=v9(RX),_9=(X)=>(Q,$,Y)=>{let W=Y?{...Y,async:!1}:{async:!1},J=Q._zod.run({value:$,issues:[]},W);if(J instanceof Promise)throw new x1;return J.issues.length?{success:!1,error:new(X??Z4)(J.issues.map((G)=>o0(G,W,u0())))}:{success:!0,data:J.value}},Q6=_9(RX),x9=(X)=>async(Q,$,Y)=>{let W=Y?Object.assign(Y,{async:!0}):{async:!0},J=Q._zod.run({value:$,issues:[]},W);if(J instanceof Promise)J=await J;return J.issues.length?{success:!1,error:new X(J.issues.map((G)=>o0(G,W,u0())))}:{success:!0,data:J.value}},$6=x9(RX);var RW=/^[cC][^\\s-]{8,}$/,IW=/^[0-9a-z]+$/,EW=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,bW=/^[0-9a-vA-V]{20}$/,PW=/^[A-Za-z0-9]{27}$/,SW=/^[a-zA-Z0-9_-]{21}$/,ZW=/^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;var CW=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,y9=(X)=>{if(!X)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${X}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var kW=/^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;function vW(){return new RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\"u\")}var TW=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_W=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,xW=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/,yW=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,gW=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,g9=/^[A-Za-z0-9_-]*$/,fW=/^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;var hW=/^\\+(?:[0-9]){6,14}[0-9]$/,uW=\"(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))\",lW=new RegExp(`^${uW}$`);function mW(X){return typeof X.precision===\"number\"?X.precision===-1?\"(?:[01]\\\\d|2[0-3]):[0-5]\\\\d\":X.precision===0?\"(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d\":`(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d\\\\.\\\\d{${X.precision}}`:\"(?:[01]\\\\d|2[0-3]):[0-5]\\\\d(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?\"}function cW(X){return new RegExp(`^${mW(X)}$`)}function pW(X){let Q=mW({precision:X.precision}),$=[\"Z\"];if(X.local)$.push(\"\");if(X.offset)$.push(\"([+-]\\\\d{2}:\\\\d{2})\");let Y=`${Q}(?:${$.join(\"|\")})`;return new RegExp(`^${uW}T(?:${Y})$`)}var dW=(X)=>{let Q=X?`[\\\\s\\\\S]{${X?.minimum??0},${X?.maximum??\"\"}}`:\"[\\\\s\\\\S]*\";return new RegExp(`^${Q}$`)};var iW=/^\\d+$/,nW=/^-?\\d+(?:\\.\\d+)?/i,rW=/true|false/i,oW=/null/i;var tW=/^[^A-Z]*$/,aW=/^[^a-z]*$/;var A0=O(\"$ZodCheck\",(X,Q)=>{var $;X._zod??(X._zod={}),X._zod.def=Q,($=X._zod).onattach??($.onattach=[])}),sW={number:\"number\",bigint:\"bigint\",object:\"date\"},f9=O(\"$ZodCheckLessThan\",(X,Q)=>{A0.init(X,Q);let $=sW[typeof Q.value];X._zod.onattach.push((Y)=>{let W=Y._zod.bag,J=(Q.inclusive?W.maximum:W.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(Q.value<J)if(Q.inclusive)W.maximum=Q.value;else W.exclusiveMaximum=Q.value}),X._zod.check=(Y)=>{if(Q.inclusive?Y.value<=Q.value:Y.value<Q.value)return;Y.issues.push({origin:$,code:\"too_big\",maximum:Q.value,input:Y.value,inclusive:Q.inclusive,inst:X,continue:!Q.abort})}}),h9=O(\"$ZodCheckGreaterThan\",(X,Q)=>{A0.init(X,Q);let $=sW[typeof Q.value];X._zod.onattach.push((Y)=>{let W=Y._zod.bag,J=(Q.inclusive?W.minimum:W.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(Q.value>J)if(Q.inclusive)W.minimum=Q.value;else W.exclusiveMinimum=Q.value}),X._zod.check=(Y)=>{if(Q.inclusive?Y.value>=Q.value:Y.value>Q.value)return;Y.issues.push({origin:$,code:\"too_small\",minimum:Q.value,input:Y.value,inclusive:Q.inclusive,inst:X,continue:!Q.abort})}}),eW=O(\"$ZodCheckMultipleOf\",(X,Q)=>{A0.init(X,Q),X._zod.onattach.push(($)=>{var Y;(Y=$._zod.bag).multipleOf??(Y.multipleOf=Q.value)}),X._zod.check=($)=>{if(typeof $.value!==typeof Q.value)throw Error(\"Cannot mix number and bigint in multiple_of check.\");if(typeof $.value===\"bigint\"?$.value%Q.value===BigInt(0):M9($.value,Q.value)===0)return;$.issues.push({origin:typeof $.value,code:\"not_multiple_of\",divisor:Q.value,input:$.value,inst:X,continue:!Q.abort})}}),XJ=O(\"$ZodCheckNumberFormat\",(X,Q)=>{A0.init(X,Q),Q.format=Q.format||\"float64\";let $=Q.format?.includes(\"int\"),Y=$?\"int\":\"number\",[W,J]=b9[Q.format];X._zod.onattach.push((G)=>{let H=G._zod.bag;if(H.format=Q.format,H.minimum=W,H.maximum=J,$)H.pattern=iW}),X._zod.check=(G)=>{let H=G.value;if($){if(!Number.isInteger(H)){G.issues.push({expected:Y,format:Q.format,code:\"invalid_type\",input:H,inst:X});return}if(!Number.isSafeInteger(H)){if(H>0)G.issues.push({input:H,code:\"too_big\",maximum:Number.MAX_SAFE_INTEGER,note:\"Integers must be within the safe integer range.\",inst:X,origin:Y,continue:!Q.abort});else G.issues.push({input:H,code:\"too_small\",minimum:Number.MIN_SAFE_INTEGER,note:\"Integers must be within the safe integer range.\",inst:X,origin:Y,continue:!Q.abort});return}}if(H<W)G.issues.push({origin:\"number\",input:H,code:\"too_small\",minimum:W,inclusive:!0,inst:X,continue:!Q.abort});if(H>J)G.issues.push({origin:\"number\",input:H,code:\"too_big\",maximum:J,inst:X})}});var QJ=O(\"$ZodCheckMaxLength\",(X,Q)=>{A0.init(X,Q),X._zod.when=($)=>{let Y=$.value;return!AX(Y)&&Y.length!==void 0},X._zod.onattach.push(($)=>{let Y=$._zod.bag.maximum??Number.POSITIVE_INFINITY;if(Q.maximum<Y)$._zod.bag.maximum=Q.maximum}),X._zod.check=($)=>{let Y=$.value;if(Y.length<=Q.maximum)return;let J=jX(Y);$.issues.push({origin:J,code:\"too_big\",maximum:Q.maximum,inclusive:!0,input:Y,inst:X,continue:!Q.abort})}}),$J=O(\"$ZodCheckMinLength\",(X,Q)=>{A0.init(X,Q),X._zod.when=($)=>{let Y=$.value;return!AX(Y)&&Y.length!==void 0},X._zod.onattach.push(($)=>{let Y=$._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(Q.minimum>Y)$._zod.bag.minimum=Q.minimum}),X._zod.check=($)=>{let Y=$.value;if(Y.length>=Q.minimum)return;let J=jX(Y);$.issues.push({origin:J,code:\"too_small\",minimum:Q.minimum,inclusive:!0,input:Y,inst:X,continue:!Q.abort})}}),YJ=O(\"$ZodCheckLengthEquals\",(X,Q)=>{A0.init(X,Q),X._zod.when=($)=>{let Y=$.value;return!AX(Y)&&Y.length!==void 0},X._zod.onattach.push(($)=>{let Y=$._zod.bag;Y.minimum=Q.length,Y.maximum=Q.length,Y.length=Q.length}),X._zod.check=($)=>{let Y=$.value,W=Y.length;if(W===Q.length)return;let J=jX(Y),G=W>Q.length;$.issues.push({origin:J,...G?{code:\"too_big\",maximum:Q.length}:{code:\"too_small\",minimum:Q.length},inclusive:!0,exact:!0,input:$.value,inst:X,continue:!Q.abort})}}),IX=O(\"$ZodCheckStringFormat\",(X,Q)=>{var $,Y;if(A0.init(X,Q),X._zod.onattach.push((W)=>{let J=W._zod.bag;if(J.format=Q.format,Q.pattern)J.patterns??(J.patterns=new Set),J.patterns.add(Q.pattern)}),Q.pattern)($=X._zod).check??($.check=(W)=>{if(Q.pattern.lastIndex=0,Q.pattern.test(W.value))return;W.issues.push({origin:\"string\",code:\"invalid_format\",format:Q.format,input:W.value,...Q.pattern?{pattern:Q.pattern.toString()}:{},inst:X,continue:!Q.abort})});else(Y=X._zod).check??(Y.check=()=>{})}),WJ=O(\"$ZodCheckRegex\",(X,Q)=>{IX.init(X,Q),X._zod.check=($)=>{if(Q.pattern.lastIndex=0,Q.pattern.test($.value))return;$.issues.push({origin:\"string\",code:\"invalid_format\",format:\"regex\",input:$.value,pattern:Q.pattern.toString(),inst:X,continue:!Q.abort})}}),JJ=O(\"$ZodCheckLowerCase\",(X,Q)=>{Q.pattern??(Q.pattern=tW),IX.init(X,Q)}),GJ=O(\"$ZodCheckUpperCase\",(X,Q)=>{Q.pattern??(Q.pattern=aW),IX.init(X,Q)}),HJ=O(\"$ZodCheckIncludes\",(X,Q)=>{A0.init(X,Q);let $=y1(Q.includes),Y=new RegExp(typeof Q.position===\"number\"?`^.{${Q.position}}${$}`:$);Q.pattern=Y,X._zod.onattach.push((W)=>{let J=W._zod.bag;J.patterns??(J.patterns=new Set),J.patterns.add(Y)}),X._zod.check=(W)=>{if(W.value.includes(Q.includes,Q.position))return;W.issues.push({origin:\"string\",code:\"invalid_format\",format:\"includes\",includes:Q.includes,input:W.value,inst:X,continue:!Q.abort})}}),BJ=O(\"$ZodCheckStartsWith\",(X,Q)=>{A0.init(X,Q);let $=new RegExp(`^${y1(Q.prefix)}.*`);Q.pattern??(Q.pattern=$),X._zod.onattach.push((Y)=>{let W=Y._zod.bag;W.patterns??(W.patterns=new Set),W.patterns.add($)}),X._zod.check=(Y)=>{if(Y.value.startsWith(Q.prefix))return;Y.issues.push({origin:\"string\",code:\"invalid_format\",format:\"starts_with\",prefix:Q.prefix,input:Y.value,inst:X,continue:!Q.abort})}}),zJ=O(\"$ZodCheckEndsWith\",(X,Q)=>{A0.init(X,Q);let $=new RegExp(`.*${y1(Q.suffix)}$`);Q.pattern??(Q.pattern=$),X._zod.onattach.push((Y)=>{let W=Y._zod.bag;W.patterns??(W.patterns=new Set),W.patterns.add($)}),X._zod.check=(Y)=>{if(Y.value.endsWith(Q.suffix))return;Y.issues.push({origin:\"string\",code:\"invalid_format\",format:\"ends_with\",suffix:Q.suffix,input:Y.value,inst:X,continue:!Q.abort})}});var KJ=O(\"$ZodCheckOverwrite\",(X,Q)=>{A0.init(X,Q),X._zod.check=($)=>{$.value=Q.tx($.value)}});class u9{constructor(X=[]){if(this.content=[],this.indent=0,this)this.args=X}indented(X){this.indent+=1,X(this),this.indent-=1}write(X){if(typeof X===\"function\"){X(this,{execution:\"sync\"}),X(this,{execution:\"async\"});return}let $=X.split(`\n`).filter((J)=>J),Y=Math.min(...$.map((J)=>J.length-J.trimStart().length)),W=$.map((J)=>J.slice(Y)).map((J)=>\" \".repeat(this.indent*2)+J);for(let J of W)this.content.push(J)}compile(){let X=Function,Q=this?.args,Y=[...(this?.content??[\"\"]).map((W)=>` ${W}`)];return new X(...Q,Y.join(`\n`))}}var VJ={major:4,minor:0,patch:0};var X0=O(\"$ZodType\",(X,Q)=>{var $;X??(X={}),X._zod.def=Q,X._zod.bag=X._zod.bag||{},X._zod.version=VJ;let Y=[...X._zod.def.checks??[]];if(X._zod.traits.has(\"$ZodCheck\"))Y.unshift(X);for(let W of Y)for(let J of W._zod.onattach)J(X);if(Y.length===0)($=X._zod).deferred??($.deferred=[]),X._zod.deferred?.push(()=>{X._zod.run=X._zod.parse});else{let W=(J,G,H)=>{let B=X6(J),z;for(let K of G){if(K._zod.when){if(!K._zod.when(J))continue}else if(B)continue;let V=J.issues.length,L=K._zod.check(J);if(L instanceof Promise&&H?.async===!1)throw new x1;if(z||L instanceof Promise)z=(z??Promise.resolve()).then(async()=>{if(await L,J.issues.length===V)return;if(!B)B=X6(J,V)});else{if(J.issues.length===V)continue;if(!B)B=X6(J,V)}}if(z)return z.then(()=>{return J});return J};X._zod.run=(J,G)=>{let H=X._zod.parse(J,G);if(H instanceof Promise){if(G.async===!1)throw new x1;return H.then((B)=>W(B,Y,G))}return W(H,Y,G)}}X[\"~standard\"]={validate:(W)=>{try{let J=Q6(X,W);return J.success?{value:J.data}:{issues:J.error?.issues}}catch(J){return $6(X,W).then((G)=>G.success?{value:G.data}:{issues:G.error?.issues})}},vendor:\"zod\",version:1}}),EX=O(\"$ZodString\",(X,Q)=>{X0.init(X,Q),X._zod.pattern=[...X?._zod.bag?.patterns??[]].pop()??dW(X._zod.bag),X._zod.parse=($,Y)=>{if(Q.coerce)try{$.value=String($.value)}catch(W){}if(typeof $.value===\"string\")return $;return $.issues.push({expected:\"string\",code:\"invalid_type\",input:$.value,inst:X}),$}}),W0=O(\"$ZodStringFormat\",(X,Q)=>{IX.init(X,Q),EX.init(X,Q)}),m9=O(\"$ZodGUID\",(X,Q)=>{Q.pattern??(Q.pattern=CW),W0.init(X,Q)}),c9=O(\"$ZodUUID\",(X,Q)=>{if(Q.version){let Y={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[Q.version];if(Y===void 0)throw Error(`Invalid UUID version: \"${Q.version}\"`);Q.pattern??(Q.pattern=y9(Y))}else Q.pattern??(Q.pattern=y9());W0.init(X,Q)}),p9=O(\"$ZodEmail\",(X,Q)=>{Q.pattern??(Q.pattern=kW),W0.init(X,Q)}),d9=O(\"$ZodURL\",(X,Q)=>{W0.init(X,Q),X._zod.check=($)=>{try{let Y=$.value,W=new URL(Y),J=W.href;if(Q.hostname){if(Q.hostname.lastIndex=0,!Q.hostname.test(W.hostname))$.issues.push({code:\"invalid_format\",format:\"url\",note:\"Invalid hostname\",pattern:fW.source,input:$.value,inst:X,continue:!Q.abort})}if(Q.protocol){if(Q.protocol.lastIndex=0,!Q.protocol.test(W.protocol.endsWith(\":\")?W.protocol.slice(0,-1):W.protocol))$.issues.push({code:\"invalid_format\",format:\"url\",note:\"Invalid protocol\",pattern:Q.protocol.source,input:$.value,inst:X,continue:!Q.abort})}if(!Y.endsWith(\"/\")&&J.endsWith(\"/\"))$.value=J.slice(0,-1);else $.value=J;return}catch(Y){$.issues.push({code:\"invalid_format\",format:\"url\",input:$.value,inst:X,continue:!Q.abort})}}}),i9=O(\"$ZodEmoji\",(X,Q)=>{Q.pattern??(Q.pattern=vW()),W0.init(X,Q)}),n9=O(\"$ZodNanoID\",(X,Q)=>{Q.pattern??(Q.pattern=SW),W0.init(X,Q)}),r9=O(\"$ZodCUID\",(X,Q)=>{Q.pattern??(Q.pattern=RW),W0.init(X,Q)}),o9=O(\"$ZodCUID2\",(X,Q)=>{Q.pattern??(Q.pattern=IW),W0.init(X,Q)}),t9=O(\"$ZodULID\",(X,Q)=>{Q.pattern??(Q.pattern=EW),W0.init(X,Q)}),a9=O(\"$ZodXID\",(X,Q)=>{Q.pattern??(Q.pattern=bW),W0.init(X,Q)}),s9=O(\"$ZodKSUID\",(X,Q)=>{Q.pattern??(Q.pattern=PW),W0.init(X,Q)}),jJ=O(\"$ZodISODateTime\",(X,Q)=>{Q.pattern??(Q.pattern=pW(Q)),W0.init(X,Q)}),RJ=O(\"$ZodISODate\",(X,Q)=>{Q.pattern??(Q.pattern=lW),W0.init(X,Q)}),IJ=O(\"$ZodISOTime\",(X,Q)=>{Q.pattern??(Q.pattern=cW(Q)),W0.init(X,Q)}),EJ=O(\"$ZodISODuration\",(X,Q)=>{Q.pattern??(Q.pattern=ZW),W0.init(X,Q)}),e9=O(\"$ZodIPv4\",(X,Q)=>{Q.pattern??(Q.pattern=TW),W0.init(X,Q),X._zod.onattach.push(($)=>{let Y=$._zod.bag;Y.format=\"ipv4\"})}),XQ=O(\"$ZodIPv6\",(X,Q)=>{Q.pattern??(Q.pattern=_W),W0.init(X,Q),X._zod.onattach.push(($)=>{let Y=$._zod.bag;Y.format=\"ipv6\"}),X._zod.check=($)=>{try{new URL(`http://[${$.value}]`)}catch{$.issues.push({code:\"invalid_format\",format:\"ipv6\",input:$.value,inst:X,continue:!Q.abort})}}}),QQ=O(\"$ZodCIDRv4\",(X,Q)=>{Q.pattern??(Q.pattern=xW),W0.init(X,Q)}),$Q=O(\"$ZodCIDRv6\",(X,Q)=>{Q.pattern??(Q.pattern=yW),W0.init(X,Q),X._zod.check=($)=>{let[Y,W]=$.value.split(\"/\");try{if(!W)throw Error();let J=Number(W);if(`${J}`!==W)throw Error();if(J<0||J>128)throw Error();new URL(`http://[${Y}]`)}catch{$.issues.push({code:\"invalid_format\",format:\"cidrv6\",input:$.value,inst:X,continue:!Q.abort})}}});function bJ(X){if(X===\"\")return!0;if(X.length%4!==0)return!1;try{return atob(X),!0}catch{return!1}}var YQ=O(\"$ZodBase64\",(X,Q)=>{Q.pattern??(Q.pattern=gW),W0.init(X,Q),X._zod.onattach.push(($)=>{$._zod.bag.contentEncoding=\"base64\"}),X._zod.check=($)=>{if(bJ($.value))return;$.issues.push({code:\"invalid_format\",format:\"base64\",input:$.value,inst:X,continue:!Q.abort})}});function tV(X){if(!g9.test(X))return!1;let Q=X.replace(/[-_]/g,(Y)=>Y===\"-\"?\"+\":\"/\"),$=Q.padEnd(Math.ceil(Q.length/4)*4,\"=\");return bJ($)}var WQ=O(\"$ZodBase64URL\",(X,Q)=>{Q.pattern??(Q.pattern=g9),W0.init(X,Q),X._zod.onattach.push(($)=>{$._zod.bag.contentEncoding=\"base64url\"}),X._zod.check=($)=>{if(tV($.value))return;$.issues.push({code:\"invalid_format\",format:\"base64url\",input:$.value,inst:X,continue:!Q.abort})}}),JQ=O(\"$ZodE164\",(X,Q)=>{Q.pattern??(Q.pattern=hW),W0.init(X,Q)});function aV(X,Q=null){try{let $=X.split(\".\");if($.length!==3)return!1;let[Y]=$;if(!Y)return!1;let W=JSON.parse(atob(Y));if(\"typ\"in W&&W?.typ!==\"JWT\")return!1;if(!W.alg)return!1;if(Q&&(!(\"alg\"in W)||W.alg!==Q))return!1;return!0}catch{return!1}}var GQ=O(\"$ZodJWT\",(X,Q)=>{W0.init(X,Q),X._zod.check=($)=>{if(aV($.value,Q.alg))return;$.issues.push({code:\"invalid_format\",format:\"jwt\",input:$.value,inst:X,continue:!Q.abort})}});var v4=O(\"$ZodNumber\",(X,Q)=>{X0.init(X,Q),X._zod.pattern=X._zod.bag.pattern??nW,X._zod.parse=($,Y)=>{if(Q.coerce)try{$.value=Number($.value)}catch(G){}let W=$.value;if(typeof W===\"number\"&&!Number.isNaN(W)&&Number.isFinite(W))return $;let J=typeof W===\"number\"?Number.isNaN(W)?\"NaN\":!Number.isFinite(W)?\"Infinity\":void 0:void 0;return $.issues.push({expected:\"number\",code:\"invalid_type\",input:W,inst:X,...J?{received:J}:{}}),$}}),HQ=O(\"$ZodNumber\",(X,Q)=>{XJ.init(X,Q),v4.init(X,Q)}),BQ=O(\"$ZodBoolean\",(X,Q)=>{X0.init(X,Q),X._zod.pattern=rW,X._zod.parse=($,Y)=>{if(Q.coerce)try{$.value=Boolean($.value)}catch(J){}let W=$.value;if(typeof W===\"boolean\")return $;return $.issues.push({expected:\"boolean\",code:\"invalid_type\",input:W,inst:X}),$}});var zQ=O(\"$ZodNull\",(X,Q)=>{X0.init(X,Q),X._zod.pattern=oW,X._zod.values=new Set([null]),X._zod.parse=($,Y)=>{let W=$.value;if(W===null)return $;return $.issues.push({expected:\"null\",code:\"invalid_type\",input:W,inst:X}),$}});var KQ=O(\"$ZodUnknown\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($)=>$}),UQ=O(\"$ZodNever\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($,Y)=>{return $.issues.push({expected:\"never\",code:\"invalid_type\",input:$.value,inst:X}),$}});function LJ(X,Q,$){if(X.issues.length)Q.issues.push(...H1($,X.issues));Q.value[$]=X.value}var VQ=O(\"$ZodArray\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($,Y)=>{let W=$.value;if(!Array.isArray(W))return $.issues.push({expected:\"array\",code:\"invalid_type\",input:W,inst:X}),$;$.value=Array(W.length);let J=[];for(let G=0;G<W.length;G++){let H=W[G],B=Q.element._zod.run({value:H,issues:[]},Y);if(B instanceof Promise)J.push(B.then((z)=>LJ(z,$,G)));else LJ(B,$,G)}if(J.length)return Promise.all(J).then(()=>$);return $}});function k4(X,Q,$){if(X.issues.length)Q.issues.push(...H1($,X.issues));Q.value[$]=X.value}function qJ(X,Q,$,Y){if(X.issues.length)if(Y[$]===void 0)if($ in Y)Q.value[$]=void 0;else Q.value[$]=X.value;else Q.issues.push(...H1($,X.issues));else if(X.value===void 0){if($ in Y)Q.value[$]=void 0}else Q.value[$]=X.value}var T4=O(\"$ZodObject\",(X,Q)=>{X0.init(X,Q);let $=wX(()=>{let V=Object.keys(Q.shape);for(let U of V)if(!(Q.shape[U]instanceof X0))throw Error(`Invalid element at key \"${U}\": expected a Zod schema`);let L=E9(Q.shape);return{shape:Q.shape,keys:V,keySet:new Set(V),numKeys:V.length,optionalKeys:new Set(L)}});Y0(X._zod,\"propValues\",()=>{let V=Q.shape,L={};for(let U in V){let F=V[U]._zod;if(F.values){L[U]??(L[U]=new Set);for(let q of F.values)L[U].add(q)}}return L});let Y=(V)=>{let L=new u9([\"shape\",\"payload\",\"ctx\"]),U=$.value,F=(M)=>{let R=e1(M);return`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`};L.write(\"const input = payload.value;\");let q=Object.create(null),N=0;for(let M of U.keys)q[M]=`key_${N++}`;L.write(\"const newResult = {}\");for(let M of U.keys)if(U.optionalKeys.has(M)){let R=q[M];L.write(`const ${R} = ${F(M)};`);let S=e1(M);L.write(`\n if (${R}.issues.length) {\n if (input[${S}] === undefined) {\n if (${S} in input) {\n newResult[${S}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${R}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${S}, ...iss.path] : [${S}],\n }))\n );\n }\n } else if (${R}.value === undefined) {\n if (${S} in input) newResult[${S}] = undefined;\n } else {\n newResult[${S}] = ${R}.value;\n }\n `)}else{let R=q[M];L.write(`const ${R} = ${F(M)};`),L.write(`\n if (${R}.issues.length) payload.issues = payload.issues.concat(${R}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${e1(M)}, ...iss.path] : [${e1(M)}]\n })));`),L.write(`newResult[${e1(M)}] = ${R}.value`)}L.write(\"payload.value = newResult;\"),L.write(\"return payload;\");let w=L.compile();return(M,R)=>w(V,M,R)},W,J=S6,G=!E4.jitless,B=G&&R9.value,z=Q.catchall,K;X._zod.parse=(V,L)=>{K??(K=$.value);let U=V.value;if(!J(U))return V.issues.push({expected:\"object\",code:\"invalid_type\",input:U,inst:X}),V;let F=[];if(G&&B&&L?.async===!1&&L.jitless!==!0){if(!W)W=Y(Q.shape);V=W(V,L)}else{V.value={};let R=K.shape;for(let S of K.keys){let C=R[S],K0=C._zod.run({value:U[S],issues:[]},L),U0=C._zod.optin===\"optional\"&&C._zod.optout===\"optional\";if(K0 instanceof Promise)F.push(K0.then((s)=>U0?qJ(s,V,S,U):k4(s,V,S)));else if(U0)qJ(K0,V,S,U);else k4(K0,V,S)}}if(!z)return F.length?Promise.all(F).then(()=>V):V;let q=[],N=K.keySet,w=z._zod,M=w.def.type;for(let R of Object.keys(U)){if(N.has(R))continue;if(M===\"never\"){q.push(R);continue}let S=w.run({value:U[R],issues:[]},L);if(S instanceof Promise)F.push(S.then((C)=>k4(C,V,R)));else k4(S,V,R)}if(q.length)V.issues.push({code:\"unrecognized_keys\",keys:q,input:U,inst:X});if(!F.length)return V;return Promise.all(F).then(()=>{return V})}});function FJ(X,Q,$,Y){for(let W of X)if(W.issues.length===0)return Q.value=W.value,Q;return Q.issues.push({code:\"invalid_union\",input:Q.value,inst:$,errors:X.map((W)=>W.issues.map((J)=>o0(J,Y,u0())))}),Q}var _4=O(\"$ZodUnion\",(X,Q)=>{X0.init(X,Q),Y0(X._zod,\"optin\",()=>Q.options.some(($)=>$._zod.optin===\"optional\")?\"optional\":void 0),Y0(X._zod,\"optout\",()=>Q.options.some(($)=>$._zod.optout===\"optional\")?\"optional\":void 0),Y0(X._zod,\"values\",()=>{if(Q.options.every(($)=>$._zod.values))return new Set(Q.options.flatMap(($)=>Array.from($._zod.values)));return}),Y0(X._zod,\"pattern\",()=>{if(Q.options.every(($)=>$._zod.pattern)){let $=Q.options.map((Y)=>Y._zod.pattern);return new RegExp(`^(${$.map((Y)=>MX(Y.source)).join(\"|\")})$`)}return}),X._zod.parse=($,Y)=>{let W=!1,J=[];for(let G of Q.options){let H=G._zod.run({value:$.value,issues:[]},Y);if(H instanceof Promise)J.push(H),W=!0;else{if(H.issues.length===0)return H;J.push(H)}}if(!W)return FJ(J,$,X,Y);return Promise.all(J).then((G)=>{return FJ(G,$,X,Y)})}}),LQ=O(\"$ZodDiscriminatedUnion\",(X,Q)=>{_4.init(X,Q);let $=X._zod.parse;Y0(X._zod,\"propValues\",()=>{let W={};for(let J of Q.options){let G=J._zod.propValues;if(!G||Object.keys(G).length===0)throw Error(`Invalid discriminated union option at index \"${Q.options.indexOf(J)}\"`);for(let[H,B]of Object.entries(G)){if(!W[H])W[H]=new Set;for(let z of B)W[H].add(z)}}return W});let Y=wX(()=>{let W=Q.options,J=new Map;for(let G of W){let H=G._zod.propValues[Q.discriminator];if(!H||H.size===0)throw Error(`Invalid discriminated union option at index \"${Q.options.indexOf(G)}\"`);for(let B of H){if(J.has(B))throw Error(`Duplicate discriminator value \"${String(B)}\"`);J.set(B,G)}}return J});X._zod.parse=(W,J)=>{let G=W.value;if(!S6(G))return W.issues.push({code:\"invalid_type\",expected:\"object\",input:G,inst:X}),W;let H=Y.value.get(G?.[Q.discriminator]);if(H)return H._zod.run(W,J);if(Q.unionFallback)return $(W,J);return W.issues.push({code:\"invalid_union\",errors:[],note:\"No matching discriminator\",input:G,path:[Q.discriminator],inst:X}),W}}),qQ=O(\"$ZodIntersection\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($,Y)=>{let W=$.value,J=Q.left._zod.run({value:W,issues:[]},Y),G=Q.right._zod.run({value:W,issues:[]},Y);if(J instanceof Promise||G instanceof Promise)return Promise.all([J,G]).then(([B,z])=>{return NJ($,B,z)});return NJ($,J,G)}});function l9(X,Q){if(X===Q)return{valid:!0,data:X};if(X instanceof Date&&Q instanceof Date&&+X===+Q)return{valid:!0,data:X};if(Z6(X)&&Z6(Q)){let $=Object.keys(Q),Y=Object.keys(X).filter((J)=>$.indexOf(J)!==-1),W={...X,...Q};for(let J of Y){let G=l9(X[J],Q[J]);if(!G.valid)return{valid:!1,mergeErrorPath:[J,...G.mergeErrorPath]};W[J]=G.data}return{valid:!0,data:W}}if(Array.isArray(X)&&Array.isArray(Q)){if(X.length!==Q.length)return{valid:!1,mergeErrorPath:[]};let $=[];for(let Y=0;Y<X.length;Y++){let W=X[Y],J=Q[Y],G=l9(W,J);if(!G.valid)return{valid:!1,mergeErrorPath:[Y,...G.mergeErrorPath]};$.push(G.data)}return{valid:!0,data:$}}return{valid:!1,mergeErrorPath:[]}}function NJ(X,Q,$){if(Q.issues.length)X.issues.push(...Q.issues);if($.issues.length)X.issues.push(...$.issues);if(X6(X))return X;let Y=l9(Q.value,$.value);if(!Y.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Y.mergeErrorPath)}`);return X.value=Y.data,X}var FQ=O(\"$ZodRecord\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($,Y)=>{let W=$.value;if(!Z6(W))return $.issues.push({expected:\"record\",code:\"invalid_type\",input:W,inst:X}),$;let J=[];if(Q.keyType._zod.values){let G=Q.keyType._zod.values;$.value={};for(let B of G)if(typeof B===\"string\"||typeof B===\"number\"||typeof B===\"symbol\"){let z=Q.valueType._zod.run({value:W[B],issues:[]},Y);if(z instanceof Promise)J.push(z.then((K)=>{if(K.issues.length)$.issues.push(...H1(B,K.issues));$.value[B]=K.value}));else{if(z.issues.length)$.issues.push(...H1(B,z.issues));$.value[B]=z.value}}let H;for(let B in W)if(!G.has(B))H=H??[],H.push(B);if(H&&H.length>0)$.issues.push({code:\"unrecognized_keys\",input:W,inst:X,keys:H})}else{$.value={};for(let G of Reflect.ownKeys(W)){if(G===\"__proto__\")continue;let H=Q.keyType._zod.run({value:G,issues:[]},Y);if(H instanceof Promise)throw Error(\"Async schemas not supported in object keys currently\");if(H.issues.length){$.issues.push({origin:\"record\",code:\"invalid_key\",issues:H.issues.map((z)=>o0(z,Y,u0())),input:G,path:[G],inst:X}),$.value[H.value]=H.value;continue}let B=Q.valueType._zod.run({value:W[G],issues:[]},Y);if(B instanceof Promise)J.push(B.then((z)=>{if(z.issues.length)$.issues.push(...H1(G,z.issues));$.value[H.value]=z.value}));else{if(B.issues.length)$.issues.push(...H1(G,B.issues));$.value[H.value]=B.value}}}if(J.length)return Promise.all(J).then(()=>$);return $}});var NQ=O(\"$ZodEnum\",(X,Q)=>{X0.init(X,Q);let $=DX(Q.entries);X._zod.values=new Set($),X._zod.pattern=new RegExp(`^(${$.filter((Y)=>I9.has(typeof Y)).map((Y)=>typeof Y===\"string\"?y1(Y):Y.toString()).join(\"|\")})$`),X._zod.parse=(Y,W)=>{let J=Y.value;if(X._zod.values.has(J))return Y;return Y.issues.push({code:\"invalid_value\",values:$,input:J,inst:X}),Y}}),OQ=O(\"$ZodLiteral\",(X,Q)=>{X0.init(X,Q),X._zod.values=new Set(Q.values),X._zod.pattern=new RegExp(`^(${Q.values.map(($)=>typeof $===\"string\"?y1($):$?$.toString():String($)).join(\"|\")})$`),X._zod.parse=($,Y)=>{let W=$.value;if(X._zod.values.has(W))return $;return $.issues.push({code:\"invalid_value\",values:Q.values,input:W,inst:X}),$}});var DQ=O(\"$ZodTransform\",(X,Q)=>{X0.init(X,Q),X._zod.parse=($,Y)=>{let W=Q.transform($.value,$);if(Y.async)return(W instanceof Promise?W:Promise.resolve(W)).then((G)=>{return $.value=G,$});if(W instanceof Promise)throw new x1;return $.value=W,$}}),wQ=O(\"$ZodOptional\",(X,Q)=>{X0.init(X,Q),X._zod.optin=\"optional\",X._zod.optout=\"optional\",Y0(X._zod,\"values\",()=>{return Q.innerType._zod.values?new Set([...Q.innerType._zod.values,void 0]):void 0}),Y0(X._zod,\"pattern\",()=>{let $=Q.innerType._zod.pattern;return $?new RegExp(`^(${MX($.source)})?$`):void 0}),X._zod.parse=($,Y)=>{if(Q.innerType._zod.optin===\"optional\")return Q.innerType._zod.run($,Y);if($.value===void 0)return $;return Q.innerType._zod.run($,Y)}}),AQ=O(\"$ZodNullable\",(X,Q)=>{X0.init(X,Q),Y0(X._zod,\"optin\",()=>Q.innerType._zod.optin),Y0(X._zod,\"optout\",()=>Q.innerType._zod.optout),Y0(X._zod,\"pattern\",()=>{let $=Q.innerType._zod.pattern;return $?new RegExp(`^(${MX($.source)}|null)$`):void 0}),Y0(X._zod,\"values\",()=>{return Q.innerType._zod.values?new Set([...Q.innerType._zod.values,null]):void 0}),X._zod.parse=($,Y)=>{if($.value===null)return $;return Q.innerType._zod.run($,Y)}}),MQ=O(\"$ZodDefault\",(X,Q)=>{X0.init(X,Q),X._zod.optin=\"optional\",Y0(X._zod,\"values\",()=>Q.innerType._zod.values),X._zod.parse=($,Y)=>{if($.value===void 0)return $.value=Q.defaultValue,$;let W=Q.innerType._zod.run($,Y);if(W instanceof Promise)return W.then((J)=>OJ(J,Q));return OJ(W,Q)}});function OJ(X,Q){if(X.value===void 0)X.value=Q.defaultValue;return X}var jQ=O(\"$ZodPrefault\",(X,Q)=>{X0.init(X,Q),X._zod.optin=\"optional\",Y0(X._zod,\"values\",()=>Q.innerType._zod.values),X._zod.parse=($,Y)=>{if($.value===void 0)$.value=Q.defaultValue;return Q.innerType._zod.run($,Y)}}),RQ=O(\"$ZodNonOptional\",(X,Q)=>{X0.init(X,Q),Y0(X._zod,\"values\",()=>{let $=Q.innerType._zod.values;return $?new Set([...$].filter((Y)=>Y!==void 0)):void 0}),X._zod.parse=($,Y)=>{let W=Q.innerType._zod.run($,Y);if(W instanceof Promise)return W.then((J)=>DJ(J,X));return DJ(W,X)}});function DJ(X,Q){if(!X.issues.length&&X.value===void 0)X.issues.push({code:\"invalid_type\",expected:\"nonoptional\",input:X.value,inst:Q});return X}var IQ=O(\"$ZodCatch\",(X,Q)=>{X0.init(X,Q),X._zod.optin=\"optional\",Y0(X._zod,\"optout\",()=>Q.innerType._zod.optout),Y0(X._zod,\"values\",()=>Q.innerType._zod.values),X._zod.parse=($,Y)=>{let W=Q.innerType._zod.run($,Y);if(W instanceof Promise)return W.then((J)=>{if($.value=J.value,J.issues.length)$.value=Q.catchValue({...$,error:{issues:J.issues.map((G)=>o0(G,Y,u0()))},input:$.value}),$.issues=[];return $});if($.value=W.value,W.issues.length)$.value=Q.catchValue({...$,error:{issues:W.issues.map((J)=>o0(J,Y,u0()))},input:$.value}),$.issues=[];return $}});var EQ=O(\"$ZodPipe\",(X,Q)=>{X0.init(X,Q),Y0(X._zod,\"values\",()=>Q.in._zod.values),Y0(X._zod,\"optin\",()=>Q.in._zod.optin),Y0(X._zod,\"optout\",()=>Q.out._zod.optout),X._zod.parse=($,Y)=>{let W=Q.in._zod.run($,Y);if(W instanceof Promise)return W.then((J)=>wJ(J,Q,Y));return wJ(W,Q,Y)}});function wJ(X,Q,$){if(X6(X))return X;return Q.out._zod.run({value:X.value,issues:X.issues},$)}var bQ=O(\"$ZodReadonly\",(X,Q)=>{X0.init(X,Q),Y0(X._zod,\"propValues\",()=>Q.innerType._zod.propValues),Y0(X._zod,\"values\",()=>Q.innerType._zod.values),Y0(X._zod,\"optin\",()=>Q.innerType._zod.optin),Y0(X._zod,\"optout\",()=>Q.innerType._zod.optout),X._zod.parse=($,Y)=>{let W=Q.innerType._zod.run($,Y);if(W instanceof Promise)return W.then(AJ);return AJ(W)}});function AJ(X){return X.value=Object.freeze(X.value),X}var PQ=O(\"$ZodCustom\",(X,Q)=>{A0.init(X,Q),X0.init(X,Q),X._zod.parse=($,Y)=>{return $},X._zod.check=($)=>{let Y=$.value,W=Q.fn(Y);if(W instanceof Promise)return W.then((J)=>MJ(J,$,Y,X));MJ(W,$,Y,X);return}});function MJ(X,Q,$,Y){if(!X){let W={code:\"custom\",input:$,inst:Y,path:[...Y._zod.def.path??[]],continue:!Y._zod.def.abort};if(Y._zod.def.params)W.params=Y._zod.def.params;Q.issues.push(P9(W))}}var sV=(X)=>{let Q=typeof X;switch(Q){case\"number\":return Number.isNaN(X)?\"NaN\":\"number\";case\"object\":{if(Array.isArray(X))return\"array\";if(X===null)return\"null\";if(Object.getPrototypeOf(X)!==Object.prototype&&X.constructor)return X.constructor.name}}return Q},eV=()=>{let X={string:{unit:\"characters\",verb:\"to have\"},file:{unit:\"bytes\",verb:\"to have\"},array:{unit:\"items\",verb:\"to have\"},set:{unit:\"items\",verb:\"to have\"}};function Q(Y){return X[Y]??null}let $={regex:\"input\",email:\"email address\",url:\"URL\",emoji:\"emoji\",uuid:\"UUID\",uuidv4:\"UUIDv4\",uuidv6:\"UUIDv6\",nanoid:\"nanoid\",guid:\"GUID\",cuid:\"cuid\",cuid2:\"cuid2\",ulid:\"ULID\",xid:\"XID\",ksuid:\"KSUID\",datetime:\"ISO datetime\",date:\"ISO date\",time:\"ISO time\",duration:\"ISO duration\",ipv4:\"IPv4 address\",ipv6:\"IPv6 address\",cidrv4:\"IPv4 range\",cidrv6:\"IPv6 range\",base64:\"base64-encoded string\",base64url:\"base64url-encoded string\",json_string:\"JSON string\",e164:\"E.164 number\",jwt:\"JWT\",template_literal:\"input\"};return(Y)=>{switch(Y.code){case\"invalid_type\":return`Invalid input: expected ${Y.expected}, received ${sV(Y.input)}`;case\"invalid_value\":if(Y.values.length===1)return`Invalid input: expected ${S4(Y.values[0])}`;return`Invalid option: expected one of ${b4(Y.values,\"|\")}`;case\"too_big\":{let W=Y.inclusive?\"<=\":\"<\",J=Q(Y.origin);if(J)return`Too big: expected ${Y.origin??\"value\"} to have ${W}${Y.maximum.toString()} ${J.unit??\"elements\"}`;return`Too big: expected ${Y.origin??\"value\"} to be ${W}${Y.maximum.toString()}`}case\"too_small\":{let W=Y.inclusive?\">=\":\">\",J=Q(Y.origin);if(J)return`Too small: expected ${Y.origin} to have ${W}${Y.minimum.toString()} ${J.unit}`;return`Too small: expected ${Y.origin} to be ${W}${Y.minimum.toString()}`}case\"invalid_format\":{let W=Y;if(W.format===\"starts_with\")return`Invalid string: must start with \"${W.prefix}\"`;if(W.format===\"ends_with\")return`Invalid string: must end with \"${W.suffix}\"`;if(W.format===\"includes\")return`Invalid string: must include \"${W.includes}\"`;if(W.format===\"regex\")return`Invalid string: must match pattern ${W.pattern}`;return`Invalid ${$[W.format]??Y.format}`}case\"not_multiple_of\":return`Invalid number: must be a multiple of ${Y.divisor}`;case\"unrecognized_keys\":return`Unrecognized key${Y.keys.length>1?\"s\":\"\"}: ${b4(Y.keys,\", \")}`;case\"invalid_key\":return`Invalid key in ${Y.origin}`;case\"invalid_union\":return\"Invalid input\";case\"invalid_element\":return`Invalid value in ${Y.origin}`;default:return\"Invalid input\"}}};function SQ(){return{localeError:eV()}}var XL=Symbol(\"ZodOutput\"),QL=Symbol(\"ZodInput\");class x4{constructor(){this._map=new WeakMap,this._idmap=new Map}add(X,...Q){let $=Q[0];if(this._map.set(X,$),$&&typeof $===\"object\"&&\"id\"in $){if(this._idmap.has($.id))throw Error(`ID ${$.id} already exists in the registry`);this._idmap.set($.id,X)}return this}remove(X){return this._map.delete(X),this}get(X){let Q=X._zod.parent;if(Q){let $={...this.get(Q)??{}};return delete $.id,{...$,...this._map.get(X)}}return this._map.get(X)}has(X){return this._map.has(X)}}function PJ(){return new x4}var g1=PJ();function ZQ(X,Q){return new X({type:\"string\",...y(Q)})}function CQ(X,Q){return new X({type:\"string\",format:\"email\",check:\"string_format\",abort:!1,...y(Q)})}function y4(X,Q){return new X({type:\"string\",format:\"guid\",check:\"string_format\",abort:!1,...y(Q)})}function kQ(X,Q){return new X({type:\"string\",format:\"uuid\",check:\"string_format\",abort:!1,...y(Q)})}function vQ(X,Q){return new X({type:\"string\",format:\"uuid\",check:\"string_format\",abort:!1,version:\"v4\",...y(Q)})}function TQ(X,Q){return new X({type:\"string\",format:\"uuid\",check:\"string_format\",abort:!1,version:\"v6\",...y(Q)})}function _Q(X,Q){return new X({type:\"string\",format:\"uuid\",check:\"string_format\",abort:!1,version:\"v7\",...y(Q)})}function xQ(X,Q){return new X({type:\"string\",format:\"url\",check:\"string_format\",abort:!1,...y(Q)})}function yQ(X,Q){return new X({type:\"string\",format:\"emoji\",check:\"string_format\",abort:!1,...y(Q)})}function gQ(X,Q){return new X({type:\"string\",format:\"nanoid\",check:\"string_format\",abort:!1,...y(Q)})}function fQ(X,Q){return new X({type:\"string\",format:\"cuid\",check:\"string_format\",abort:!1,...y(Q)})}function hQ(X,Q){return new X({type:\"string\",format:\"cuid2\",check:\"string_format\",abort:!1,...y(Q)})}function uQ(X,Q){return new X({type:\"string\",format:\"ulid\",check:\"string_format\",abort:!1,...y(Q)})}function lQ(X,Q){return new X({type:\"string\",format:\"xid\",check:\"string_format\",abort:!1,...y(Q)})}function mQ(X,Q){return new X({type:\"string\",format:\"ksuid\",check:\"string_format\",abort:!1,...y(Q)})}function cQ(X,Q){return new X({type:\"string\",format:\"ipv4\",check:\"string_format\",abort:!1,...y(Q)})}function pQ(X,Q){return new X({type:\"string\",format:\"ipv6\",check:\"string_format\",abort:!1,...y(Q)})}function dQ(X,Q){return new X({type:\"string\",format:\"cidrv4\",check:\"string_format\",abort:!1,...y(Q)})}function iQ(X,Q){return new X({type:\"string\",format:\"cidrv6\",check:\"string_format\",abort:!1,...y(Q)})}function nQ(X,Q){return new X({type:\"string\",format:\"base64\",check:\"string_format\",abort:!1,...y(Q)})}function rQ(X,Q){return new X({type:\"string\",format:\"base64url\",check:\"string_format\",abort:!1,...y(Q)})}function oQ(X,Q){return new X({type:\"string\",format:\"e164\",check:\"string_format\",abort:!1,...y(Q)})}function tQ(X,Q){return new X({type:\"string\",format:\"jwt\",check:\"string_format\",abort:!1,...y(Q)})}function SJ(X,Q){return new X({type:\"string\",format:\"datetime\",check:\"string_format\",offset:!1,local:!1,precision:null,...y(Q)})}function ZJ(X,Q){return new X({type:\"string\",format:\"date\",check:\"string_format\",...y(Q)})}function CJ(X,Q){return new X({type:\"string\",format:\"time\",check:\"string_format\",precision:null,...y(Q)})}function kJ(X,Q){return new X({type:\"string\",format:\"duration\",check:\"string_format\",...y(Q)})}function aQ(X,Q){return new X({type:\"number\",checks:[],...y(Q)})}function sQ(X,Q){return new X({type:\"number\",check:\"number_format\",abort:!1,format:\"safeint\",...y(Q)})}function eQ(X,Q){return new X({type:\"boolean\",...y(Q)})}function X$(X,Q){return new X({type:\"null\",...y(Q)})}function Q$(X){return new X({type:\"unknown\"})}function $$(X,Q){return new X({type:\"never\",...y(Q)})}function g4(X,Q){return new f9({check:\"less_than\",...y(Q),value:X,inclusive:!1})}function bX(X,Q){return new f9({check:\"less_than\",...y(Q),value:X,inclusive:!0})}function f4(X,Q){return new h9({check:\"greater_than\",...y(Q),value:X,inclusive:!1})}function PX(X,Q){return new h9({check:\"greater_than\",...y(Q),value:X,inclusive:!0})}function h4(X,Q){return new eW({check:\"multiple_of\",...y(Q),value:X})}function u4(X,Q){return new QJ({check:\"max_length\",...y(Q),maximum:X})}function C6(X,Q){return new $J({check:\"min_length\",...y(Q),minimum:X})}function l4(X,Q){return new YJ({check:\"length_equals\",...y(Q),length:X})}function Y$(X,Q){return new WJ({check:\"string_format\",format:\"regex\",...y(Q),pattern:X})}function W$(X){return new JJ({check:\"string_format\",format:\"lowercase\",...y(X)})}function J$(X){return new GJ({check:\"string_format\",format:\"uppercase\",...y(X)})}function G$(X,Q){return new HJ({check:\"string_format\",format:\"includes\",...y(Q),includes:X})}function H$(X,Q){return new BJ({check:\"string_format\",format:\"starts_with\",...y(Q),prefix:X})}function B$(X,Q){return new zJ({check:\"string_format\",format:\"ends_with\",...y(Q),suffix:X})}function Y6(X){return new KJ({check:\"overwrite\",tx:X})}function z$(X){return Y6((Q)=>Q.normalize(X))}function K$(){return Y6((X)=>X.trim())}function U$(){return Y6((X)=>X.toLowerCase())}function V$(){return Y6((X)=>X.toUpperCase())}function vJ(X,Q,$){return new X({type:\"array\",element:Q,...y($)})}function L$(X,Q,$){let Y=y($);return Y.abort??(Y.abort=!0),new X({type:\"custom\",check:\"custom\",fn:Q,...Y})}function q$(X,Q,$){return new X({type:\"custom\",check:\"custom\",fn:Q,...y($)})}class F${constructor(X){this.counter=0,this.metadataRegistry=X?.metadata??g1,this.target=X?.target??\"draft-2020-12\",this.unrepresentable=X?.unrepresentable??\"throw\",this.override=X?.override??(()=>{}),this.io=X?.io??\"output\",this.seen=new Map}process(X,Q={path:[],schemaPath:[]}){var $;let Y=X._zod.def,W={guid:\"uuid\",url:\"uri\",datetime:\"date-time\",json_string:\"json-string\",regex:\"\"},J=this.seen.get(X);if(J){if(J.count++,Q.schemaPath.includes(X))J.cycle=Q.path;return J.schema}let G={schema:{},count:1,cycle:void 0,path:Q.path};this.seen.set(X,G);let H=X._zod.toJSONSchema?.();if(H)G.schema=H;else{let K={...Q,schemaPath:[...Q.schemaPath,X],path:Q.path},V=X._zod.parent;if(V)G.ref=V,this.process(V,K),this.seen.get(V).isParent=!0;else{let L=G.schema;switch(Y.type){case\"string\":{let U=L;U.type=\"string\";let{minimum:F,maximum:q,format:N,patterns:w,contentEncoding:M}=X._zod.bag;if(typeof F===\"number\")U.minLength=F;if(typeof q===\"number\")U.maxLength=q;if(N){if(U.format=W[N]??N,U.format===\"\")delete U.format}if(M)U.contentEncoding=M;if(w&&w.size>0){let R=[...w];if(R.length===1)U.pattern=R[0].source;else if(R.length>1)G.schema.allOf=[...R.map((S)=>({...this.target===\"draft-7\"?{type:\"string\"}:{},pattern:S.source}))]}break}case\"number\":{let U=L,{minimum:F,maximum:q,format:N,multipleOf:w,exclusiveMaximum:M,exclusiveMinimum:R}=X._zod.bag;if(typeof N===\"string\"&&N.includes(\"int\"))U.type=\"integer\";else U.type=\"number\";if(typeof R===\"number\")U.exclusiveMinimum=R;if(typeof F===\"number\"){if(U.minimum=F,typeof R===\"number\")if(R>=F)delete U.minimum;else delete U.exclusiveMinimum}if(typeof M===\"number\")U.exclusiveMaximum=M;if(typeof q===\"number\"){if(U.maximum=q,typeof M===\"number\")if(M<=q)delete U.maximum;else delete U.exclusiveMaximum}if(typeof w===\"number\")U.multipleOf=w;break}case\"boolean\":{let U=L;U.type=\"boolean\";break}case\"bigint\":{if(this.unrepresentable===\"throw\")throw Error(\"BigInt cannot be represented in JSON Schema\");break}case\"symbol\":{if(this.unrepresentable===\"throw\")throw Error(\"Symbols cannot be represented in JSON Schema\");break}case\"null\":{L.type=\"null\";break}case\"any\":break;case\"unknown\":break;case\"undefined\":case\"never\":{L.not={};break}case\"void\":{if(this.unrepresentable===\"throw\")throw Error(\"Void cannot be represented in JSON Schema\");break}case\"date\":{if(this.unrepresentable===\"throw\")throw Error(\"Date cannot be represented in JSON Schema\");break}case\"array\":{let U=L,{minimum:F,maximum:q}=X._zod.bag;if(typeof F===\"number\")U.minItems=F;if(typeof q===\"number\")U.maxItems=q;U.type=\"array\",U.items=this.process(Y.element,{...K,path:[...K.path,\"items\"]});break}case\"object\":{let U=L;U.type=\"object\",U.properties={};let F=Y.shape;for(let w in F)U.properties[w]=this.process(F[w],{...K,path:[...K.path,\"properties\",w]});let q=new Set(Object.keys(F)),N=new Set([...q].filter((w)=>{let M=Y.shape[w]._zod;if(this.io===\"input\")return M.optin===void 0;else return M.optout===void 0}));if(N.size>0)U.required=Array.from(N);if(Y.catchall?._zod.def.type===\"never\")U.additionalProperties=!1;else if(!Y.catchall){if(this.io===\"output\")U.additionalProperties=!1}else if(Y.catchall)U.additionalProperties=this.process(Y.catchall,{...K,path:[...K.path,\"additionalProperties\"]});break}case\"union\":{let U=L;U.anyOf=Y.options.map((F,q)=>this.process(F,{...K,path:[...K.path,\"anyOf\",q]}));break}case\"intersection\":{let U=L,F=this.process(Y.left,{...K,path:[...K.path,\"allOf\",0]}),q=this.process(Y.right,{...K,path:[...K.path,\"allOf\",1]}),N=(M)=>(\"allOf\"in M)&&Object.keys(M).length===1,w=[...N(F)?F.allOf:[F],...N(q)?q.allOf:[q]];U.allOf=w;break}case\"tuple\":{let U=L;U.type=\"array\";let F=Y.items.map((w,M)=>this.process(w,{...K,path:[...K.path,\"prefixItems\",M]}));if(this.target===\"draft-2020-12\")U.prefixItems=F;else U.items=F;if(Y.rest){let w=this.process(Y.rest,{...K,path:[...K.path,\"items\"]});if(this.target===\"draft-2020-12\")U.items=w;else U.additionalItems=w}if(Y.rest)U.items=this.process(Y.rest,{...K,path:[...K.path,\"items\"]});let{minimum:q,maximum:N}=X._zod.bag;if(typeof q===\"number\")U.minItems=q;if(typeof N===\"number\")U.maxItems=N;break}case\"record\":{let U=L;U.type=\"object\",U.propertyNames=this.process(Y.keyType,{...K,path:[...K.path,\"propertyNames\"]}),U.additionalProperties=this.process(Y.valueType,{...K,path:[...K.path,\"additionalProperties\"]});break}case\"map\":{if(this.unrepresentable===\"throw\")throw Error(\"Map cannot be represented in JSON Schema\");break}case\"set\":{if(this.unrepresentable===\"throw\")throw Error(\"Set cannot be represented in JSON Schema\");break}case\"enum\":{let U=L,F=DX(Y.entries);if(F.every((q)=>typeof q===\"number\"))U.type=\"number\";if(F.every((q)=>typeof q===\"string\"))U.type=\"string\";U.enum=F;break}case\"literal\":{let U=L,F=[];for(let q of Y.values)if(q===void 0){if(this.unrepresentable===\"throw\")throw Error(\"Literal `undefined` cannot be represented in JSON Schema\")}else if(typeof q===\"bigint\")if(this.unrepresentable===\"throw\")throw Error(\"BigInt literals cannot be represented in JSON Schema\");else F.push(Number(q));else F.push(q);if(F.length===0);else if(F.length===1){let q=F[0];U.type=q===null?\"null\":typeof q,U.const=q}else{if(F.every((q)=>typeof q===\"number\"))U.type=\"number\";if(F.every((q)=>typeof q===\"string\"))U.type=\"string\";if(F.every((q)=>typeof q===\"boolean\"))U.type=\"string\";if(F.every((q)=>q===null))U.type=\"null\";U.enum=F}break}case\"file\":{let U=L,F={type:\"string\",format:\"binary\",contentEncoding:\"binary\"},{minimum:q,maximum:N,mime:w}=X._zod.bag;if(q!==void 0)F.minLength=q;if(N!==void 0)F.maxLength=N;if(w)if(w.length===1)F.contentMediaType=w[0],Object.assign(U,F);else U.anyOf=w.map((M)=>{return{...F,contentMediaType:M}});else Object.assign(U,F);break}case\"transform\":{if(this.unrepresentable===\"throw\")throw Error(\"Transforms cannot be represented in JSON Schema\");break}case\"nullable\":{let U=this.process(Y.innerType,K);L.anyOf=[U,{type:\"null\"}];break}case\"nonoptional\":{this.process(Y.innerType,K),G.ref=Y.innerType;break}case\"success\":{let U=L;U.type=\"boolean\";break}case\"default\":{this.process(Y.innerType,K),G.ref=Y.innerType,L.default=JSON.parse(JSON.stringify(Y.defaultValue));break}case\"prefault\":{if(this.process(Y.innerType,K),G.ref=Y.innerType,this.io===\"input\")L._prefault=JSON.parse(JSON.stringify(Y.defaultValue));break}case\"catch\":{this.process(Y.innerType,K),G.ref=Y.innerType;let U;try{U=Y.catchValue(void 0)}catch{throw Error(\"Dynamic catch values are not supported in JSON Schema\")}L.default=U;break}case\"nan\":{if(this.unrepresentable===\"throw\")throw Error(\"NaN cannot be represented in JSON Schema\");break}case\"template_literal\":{let U=L,F=X._zod.pattern;if(!F)throw Error(\"Pattern not found in template literal\");U.type=\"string\",U.pattern=F.source;break}case\"pipe\":{let U=this.io===\"input\"?Y.in._zod.def.type===\"transform\"?Y.out:Y.in:Y.out;this.process(U,K),G.ref=U;break}case\"readonly\":{this.process(Y.innerType,K),G.ref=Y.innerType,L.readOnly=!0;break}case\"promise\":{this.process(Y.innerType,K),G.ref=Y.innerType;break}case\"optional\":{this.process(Y.innerType,K),G.ref=Y.innerType;break}case\"lazy\":{let U=X._zod.innerType;this.process(U,K),G.ref=U;break}case\"custom\":{if(this.unrepresentable===\"throw\")throw Error(\"Custom types cannot be represented in JSON Schema\");break}default:}}}let B=this.metadataRegistry.get(X);if(B)Object.assign(G.schema,B);if(this.io===\"input\"&&w0(X))delete G.schema.examples,delete G.schema.default;if(this.io===\"input\"&&G.schema._prefault)($=G.schema).default??($.default=G.schema._prefault);return delete G.schema._prefault,this.seen.get(X).schema}emit(X,Q){let $={cycles:Q?.cycles??\"ref\",reused:Q?.reused??\"inline\",external:Q?.external??void 0},Y=this.seen.get(X);if(!Y)throw Error(\"Unprocessed schema. This is a bug in Zod.\");let W=(z)=>{let K=this.target===\"draft-2020-12\"?\"$defs\":\"definitions\";if($.external){let F=$.external.registry.get(z[0])?.id;if(F)return{ref:$.external.uri(F)};let q=z[1].defId??z[1].schema.id??`schema${this.counter++}`;return z[1].defId=q,{defId:q,ref:`${$.external.uri(\"__shared\")}#/${K}/${q}`}}if(z[1]===Y)return{ref:\"#\"};let L=`${\"#\"}/${K}/`,U=z[1].schema.id??`__schema${this.counter++}`;return{defId:U,ref:L+U}},J=(z)=>{if(z[1].schema.$ref)return;let K=z[1],{ref:V,defId:L}=W(z);if(K.def={...K.schema},L)K.defId=L;let U=K.schema;for(let F in U)delete U[F];U.$ref=V};for(let z of this.seen.entries()){let K=z[1];if(X===z[0]){J(z);continue}if($.external){let L=$.external.registry.get(z[0])?.id;if(X!==z[0]&&L){J(z);continue}}if(this.metadataRegistry.get(z[0])?.id){J(z);continue}if(K.cycle){if($.cycles===\"throw\")throw Error(`Cycle detected: #/${K.cycle?.join(\"/\")}/<root>\n\nSet the \\`cycles\\` parameter to \\`\"ref\"\\` to resolve cyclical schemas with defs.`);else if($.cycles===\"ref\")J(z);continue}if(K.count>1){if($.reused===\"ref\"){J(z);continue}}}let G=(z,K)=>{let V=this.seen.get(z),L=V.def??V.schema,U={...L};if(V.ref===null)return;let F=V.ref;if(V.ref=null,F){G(F,K);let q=this.seen.get(F).schema;if(q.$ref&&K.target===\"draft-7\")L.allOf=L.allOf??[],L.allOf.push(q);else Object.assign(L,q),Object.assign(L,U)}if(!V.isParent)this.override({zodSchema:z,jsonSchema:L,path:V.path??[]})};for(let z of[...this.seen.entries()].reverse())G(z[0],{target:this.target});let H={};if(this.target===\"draft-2020-12\")H.$schema=\"https://json-schema.org/draft/2020-12/schema\";else if(this.target===\"draft-7\")H.$schema=\"http://json-schema.org/draft-07/schema#\";else console.warn(`Invalid target: ${this.target}`);Object.assign(H,Y.def);let B=$.external?.defs??{};for(let z of this.seen.entries()){let K=z[1];if(K.def&&K.defId)B[K.defId]=K.def}if(!$.external&&Object.keys(B).length>0)if(this.target===\"draft-2020-12\")H.$defs=B;else H.definitions=B;try{return JSON.parse(JSON.stringify(H))}catch(z){throw Error(\"Error converting schema to JSON.\")}}}function N$(X,Q){if(X instanceof x4){let Y=new F$(Q),W={};for(let H of X._idmap.entries()){let[B,z]=H;Y.process(z)}let J={},G={registry:X,uri:Q?.uri||((H)=>H),defs:W};for(let H of X._idmap.entries()){let[B,z]=H;J[B]=Y.emit(z,{...Q,external:G})}if(Object.keys(W).length>0){let H=Y.target===\"draft-2020-12\"?\"$defs\":\"definitions\";J.__shared={[H]:W}}return{schemas:J}}let $=new F$(Q);return $.process(X),$.emit(X,Q)}function w0(X,Q){let $=Q??{seen:new Set};if($.seen.has(X))return!1;$.seen.add(X);let W=X._zod.def;switch(W.type){case\"string\":case\"number\":case\"bigint\":case\"boolean\":case\"date\":case\"symbol\":case\"undefined\":case\"null\":case\"any\":case\"unknown\":case\"never\":case\"void\":case\"literal\":case\"enum\":case\"nan\":case\"file\":case\"template_literal\":return!1;case\"array\":return w0(W.element,$);case\"object\":{for(let J in W.shape)if(w0(W.shape[J],$))return!0;return!1}case\"union\":{for(let J of W.options)if(w0(J,$))return!0;return!1}case\"intersection\":return w0(W.left,$)||w0(W.right,$);case\"tuple\":{for(let J of W.items)if(w0(J,$))return!0;if(W.rest&&w0(W.rest,$))return!0;return!1}case\"record\":return w0(W.keyType,$)||w0(W.valueType,$);case\"map\":return w0(W.keyType,$)||w0(W.valueType,$);case\"set\":return w0(W.valueType,$);case\"promise\":case\"optional\":case\"nonoptional\":case\"nullable\":case\"readonly\":return w0(W.innerType,$);case\"lazy\":return w0(W.getter(),$);case\"default\":return w0(W.innerType,$);case\"prefault\":return w0(W.innerType,$);case\"custom\":return!1;case\"transform\":return!0;case\"pipe\":return w0(W.in,$)||w0(W.out,$);case\"success\":return!1;case\"catch\":return!1;default:}throw Error(`Unknown schema type: ${W.type}`)}var yL=O(\"ZodMiniType\",(X,Q)=>{if(!X._zod)throw Error(\"Uninitialized schema in ZodMiniType.\");X0.init(X,Q),X.def=Q,X.parse=($,Y)=>k9(X,$,Y,{callee:X.parse}),X.safeParse=($,Y)=>Q6(X,$,Y),X.parseAsync=async($,Y)=>T9(X,$,Y,{callee:X.parseAsync}),X.safeParseAsync=async($,Y)=>$6(X,$,Y),X.check=(...$)=>{return X.clone({...Q,checks:[...Q.checks??[],...$.map((Y)=>typeof Y===\"function\"?{_zod:{check:Y,def:{check:\"custom\"},onattach:[]}}:Y)]})},X.clone=($,Y)=>l0(X,$,Y),X.brand=()=>X,X.register=($,Y)=>{return $.add(X,Y),X}});var gL=O(\"ZodMiniObject\",(X,Q)=>{T4.init(X,Q),yL.init(X,Q),i.defineLazy(X,\"shape\",()=>Q.shape)});function O$(X,Q){let $={type:\"object\",get shape(){return i.assignProp(this,\"shape\",{...X}),this.shape},...i.normalizeParams(Q)};return new gL($)}function m0(X){return!!X._zod}function k6(X){let Q=Object.values(X);if(Q.length===0)return O$({});let $=Q.every(m0),Y=Q.every((W)=>!m0(W));if($)return O$(X);if(Y)return OW(X);throw Error(\"Mixed Zod versions detected in object shape.\")}function f1(X,Q){if(m0(X))return Q6(X,Q);return X.safeParse(Q)}async function m4(X,Q){if(m0(X))return await $6(X,Q);return await X.safeParseAsync(Q)}function h1(X){var Q,$;if(!X)return;let Y;if(m0(X))Y=($=(Q=X._zod)===null||Q===void 0?void 0:Q.def)===null||$===void 0?void 0:$.shape;else Y=X.shape;if(!Y)return;if(typeof Y===\"function\")try{return Y()}catch(W){return}return Y}function v6(X){var Q;if(!X)return;if(typeof X===\"object\"){let $=X,Y=X;if(!$._def&&!Y._zod){let W=Object.values(X);if(W.length>0&&W.every((J)=>typeof J===\"object\"&&J!==null&&(J._def!==void 0||J._zod!==void 0||typeof J.parse===\"function\")))return k6(X)}}if(m0(X)){let Y=(Q=X._zod)===null||Q===void 0?void 0:Q.def;if(Y&&(Y.type===\"object\"||Y.shape!==void 0))return X}else if(X.shape!==void 0)return X;return}function c4(X){if(X&&typeof X===\"object\"){if(\"message\"in X&&typeof X.message===\"string\")return X.message;if(\"issues\"in X&&Array.isArray(X.issues)&&X.issues.length>0){let Q=X.issues[0];if(Q&&typeof Q===\"object\"&&\"message\"in Q)return String(Q.message)}try{return JSON.stringify(X)}catch(Q){return String(X)}}return String(X)}function _J(X){var Q,$,Y,W;if(m0(X))return($=(Q=X._zod)===null||Q===void 0?void 0:Q.def)===null||$===void 0?void 0:$.description;let J=X;return(Y=X.description)!==null&&Y!==void 0?Y:(W=J._def)===null||W===void 0?void 0:W.description}function xJ(X){var Q,$,Y;if(m0(X))return(($=(Q=X._zod)===null||Q===void 0?void 0:Q.def)===null||$===void 0?void 0:$.type)===\"optional\";let W=X;if(typeof X.isOptional===\"function\")return X.isOptional();return((Y=W._def)===null||Y===void 0?void 0:Y.typeName)===\"ZodOptional\"}function p4(X){var Q;if(m0(X)){let G=(Q=X._zod)===null||Q===void 0?void 0:Q.def;if(G){if(G.value!==void 0)return G.value;if(Array.isArray(G.values)&&G.values.length>0)return G.values[0]}}let Y=X._def;if(Y){if(Y.value!==void 0)return Y.value;if(Array.isArray(Y.values)&&Y.values.length>0)return Y.values[0]}let W=X.value;if(W!==void 0)return W;return}var SX={};U7(SX,{time:()=>A$,duration:()=>M$,datetime:()=>D$,date:()=>w$,ZodISOTime:()=>fJ,ZodISODuration:()=>hJ,ZodISODateTime:()=>yJ,ZodISODate:()=>gJ});var yJ=O(\"ZodISODateTime\",(X,Q)=>{jJ.init(X,Q),H0.init(X,Q)});function D$(X){return SJ(yJ,X)}var gJ=O(\"ZodISODate\",(X,Q)=>{RJ.init(X,Q),H0.init(X,Q)});function w$(X){return ZJ(gJ,X)}var fJ=O(\"ZodISOTime\",(X,Q)=>{IJ.init(X,Q),H0.init(X,Q)});function A$(X){return CJ(fJ,X)}var hJ=O(\"ZodISODuration\",(X,Q)=>{EJ.init(X,Q),H0.init(X,Q)});function M$(X){return kJ(hJ,X)}var uJ=(X,Q)=>{Z4.init(X,Q),X.name=\"ZodError\",Object.defineProperties(X,{format:{value:($)=>Z9(X,$)},flatten:{value:($)=>S9(X,$)},addIssue:{value:($)=>X.issues.push($)},addIssues:{value:($)=>X.issues.push(...$)},isEmpty:{get(){return X.issues.length===0}}})},HZ=O(\"ZodError\",uJ),ZX=O(\"ZodError\",uJ,{Parent:Error});var lJ=C9(ZX),mJ=v9(ZX),cJ=_9(ZX),pJ=x9(ZX);var z0=O(\"ZodType\",(X,Q)=>{return X0.init(X,Q),X.def=Q,Object.defineProperty(X,\"_def\",{value:Q}),X.check=(...$)=>{return X.clone({...Q,checks:[...Q.checks??[],...$.map((Y)=>typeof Y===\"function\"?{_zod:{check:Y,def:{check:\"custom\"},onattach:[]}}:Y)]})},X.clone=($,Y)=>l0(X,$,Y),X.brand=()=>X,X.register=($,Y)=>{return $.add(X,Y),X},X.parse=($,Y)=>lJ(X,$,Y,{callee:X.parse}),X.safeParse=($,Y)=>cJ(X,$,Y),X.parseAsync=async($,Y)=>mJ(X,$,Y,{callee:X.parseAsync}),X.safeParseAsync=async($,Y)=>pJ(X,$,Y),X.spa=X.safeParseAsync,X.refine=($,Y)=>X.check(_q($,Y)),X.superRefine=($)=>X.check(xq($)),X.overwrite=($)=>X.check(Y6($)),X.optional=()=>v(X),X.nullable=()=>nJ(X),X.nullish=()=>v(nJ(X)),X.nonoptional=($)=>Pq(X,$),X.array=()=>r(X),X.or=($)=>J0([X,$]),X.and=($)=>i4(X,$),X.transform=($)=>R$(X,sJ($)),X.default=($)=>Iq(X,$),X.prefault=($)=>bq(X,$),X.catch=($)=>Zq(X,$),X.pipe=($)=>R$(X,$),X.readonly=()=>vq(X),X.describe=($)=>{let Y=X.clone();return g1.add(Y,{description:$}),Y},Object.defineProperty(X,\"description\",{get(){return g1.get(X)?.description},configurable:!0}),X.meta=(...$)=>{if($.length===0)return g1.get(X);let Y=X.clone();return g1.add(Y,$[0]),Y},X.isOptional=()=>X.safeParse(void 0).success,X.isNullable=()=>X.safeParse(null).success,X}),rJ=O(\"_ZodString\",(X,Q)=>{EX.init(X,Q),z0.init(X,Q);let $=X._zod.bag;X.format=$.format??null,X.minLength=$.minimum??null,X.maxLength=$.maximum??null,X.regex=(...Y)=>X.check(Y$(...Y)),X.includes=(...Y)=>X.check(G$(...Y)),X.startsWith=(...Y)=>X.check(H$(...Y)),X.endsWith=(...Y)=>X.check(B$(...Y)),X.min=(...Y)=>X.check(C6(...Y)),X.max=(...Y)=>X.check(u4(...Y)),X.length=(...Y)=>X.check(l4(...Y)),X.nonempty=(...Y)=>X.check(C6(1,...Y)),X.lowercase=(Y)=>X.check(W$(Y)),X.uppercase=(Y)=>X.check(J$(Y)),X.trim=()=>X.check(K$()),X.normalize=(...Y)=>X.check(z$(...Y)),X.toLowerCase=()=>X.check(U$()),X.toUpperCase=()=>X.check(V$())}),iL=O(\"ZodString\",(X,Q)=>{EX.init(X,Q),rJ.init(X,Q),X.email=($)=>X.check(CQ(nL,$)),X.url=($)=>X.check(xQ(rL,$)),X.jwt=($)=>X.check(tQ(zq,$)),X.emoji=($)=>X.check(yQ(oL,$)),X.guid=($)=>X.check(y4(dJ,$)),X.uuid=($)=>X.check(kQ(d4,$)),X.uuidv4=($)=>X.check(vQ(d4,$)),X.uuidv6=($)=>X.check(TQ(d4,$)),X.uuidv7=($)=>X.check(_Q(d4,$)),X.nanoid=($)=>X.check(gQ(tL,$)),X.guid=($)=>X.check(y4(dJ,$)),X.cuid=($)=>X.check(fQ(aL,$)),X.cuid2=($)=>X.check(hQ(sL,$)),X.ulid=($)=>X.check(uQ(eL,$)),X.base64=($)=>X.check(nQ(Gq,$)),X.base64url=($)=>X.check(rQ(Hq,$)),X.xid=($)=>X.check(lQ(Xq,$)),X.ksuid=($)=>X.check(mQ(Qq,$)),X.ipv4=($)=>X.check(cQ($q,$)),X.ipv6=($)=>X.check(pQ(Yq,$)),X.cidrv4=($)=>X.check(dQ(Wq,$)),X.cidrv6=($)=>X.check(iQ(Jq,$)),X.e164=($)=>X.check(oQ(Bq,$)),X.datetime=($)=>X.check(D$($)),X.date=($)=>X.check(w$($)),X.time=($)=>X.check(A$($)),X.duration=($)=>X.check(M$($))});function D(X){return ZQ(iL,X)}var H0=O(\"ZodStringFormat\",(X,Q)=>{W0.init(X,Q),rJ.init(X,Q)}),nL=O(\"ZodEmail\",(X,Q)=>{p9.init(X,Q),H0.init(X,Q)});var dJ=O(\"ZodGUID\",(X,Q)=>{m9.init(X,Q),H0.init(X,Q)});var d4=O(\"ZodUUID\",(X,Q)=>{c9.init(X,Q),H0.init(X,Q)});var rL=O(\"ZodURL\",(X,Q)=>{d9.init(X,Q),H0.init(X,Q)});var oL=O(\"ZodEmoji\",(X,Q)=>{i9.init(X,Q),H0.init(X,Q)});var tL=O(\"ZodNanoID\",(X,Q)=>{n9.init(X,Q),H0.init(X,Q)});var aL=O(\"ZodCUID\",(X,Q)=>{r9.init(X,Q),H0.init(X,Q)});var sL=O(\"ZodCUID2\",(X,Q)=>{o9.init(X,Q),H0.init(X,Q)});var eL=O(\"ZodULID\",(X,Q)=>{t9.init(X,Q),H0.init(X,Q)});var Xq=O(\"ZodXID\",(X,Q)=>{a9.init(X,Q),H0.init(X,Q)});var Qq=O(\"ZodKSUID\",(X,Q)=>{s9.init(X,Q),H0.init(X,Q)});var $q=O(\"ZodIPv4\",(X,Q)=>{e9.init(X,Q),H0.init(X,Q)});var Yq=O(\"ZodIPv6\",(X,Q)=>{XQ.init(X,Q),H0.init(X,Q)});var Wq=O(\"ZodCIDRv4\",(X,Q)=>{QQ.init(X,Q),H0.init(X,Q)});var Jq=O(\"ZodCIDRv6\",(X,Q)=>{$Q.init(X,Q),H0.init(X,Q)});var Gq=O(\"ZodBase64\",(X,Q)=>{YQ.init(X,Q),H0.init(X,Q)});var Hq=O(\"ZodBase64URL\",(X,Q)=>{WQ.init(X,Q),H0.init(X,Q)});var Bq=O(\"ZodE164\",(X,Q)=>{JQ.init(X,Q),H0.init(X,Q)});var zq=O(\"ZodJWT\",(X,Q)=>{GQ.init(X,Q),H0.init(X,Q)});var oJ=O(\"ZodNumber\",(X,Q)=>{v4.init(X,Q),z0.init(X,Q),X.gt=(Y,W)=>X.check(f4(Y,W)),X.gte=(Y,W)=>X.check(PX(Y,W)),X.min=(Y,W)=>X.check(PX(Y,W)),X.lt=(Y,W)=>X.check(g4(Y,W)),X.lte=(Y,W)=>X.check(bX(Y,W)),X.max=(Y,W)=>X.check(bX(Y,W)),X.int=(Y)=>X.check(iJ(Y)),X.safe=(Y)=>X.check(iJ(Y)),X.positive=(Y)=>X.check(f4(0,Y)),X.nonnegative=(Y)=>X.check(PX(0,Y)),X.negative=(Y)=>X.check(g4(0,Y)),X.nonpositive=(Y)=>X.check(bX(0,Y)),X.multipleOf=(Y,W)=>X.check(h4(Y,W)),X.step=(Y,W)=>X.check(h4(Y,W)),X.finite=()=>X;let $=X._zod.bag;X.minValue=Math.max($.minimum??Number.NEGATIVE_INFINITY,$.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,X.maxValue=Math.min($.maximum??Number.POSITIVE_INFINITY,$.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,X.isInt=($.format??\"\").includes(\"int\")||Number.isSafeInteger($.multipleOf??0.5),X.isFinite=!0,X.format=$.format??null});function Q0(X){return aQ(oJ,X)}var Kq=O(\"ZodNumberFormat\",(X,Q)=>{HQ.init(X,Q),oJ.init(X,Q)});function iJ(X){return sQ(Kq,X)}var Uq=O(\"ZodBoolean\",(X,Q)=>{BQ.init(X,Q),z0.init(X,Q)});function M0(X){return eQ(Uq,X)}var Vq=O(\"ZodNull\",(X,Q)=>{zQ.init(X,Q),z0.init(X,Q)});function I$(X){return X$(Vq,X)}var Lq=O(\"ZodUnknown\",(X,Q)=>{KQ.init(X,Q),z0.init(X,Q)});function N0(){return Q$(Lq)}var qq=O(\"ZodNever\",(X,Q)=>{UQ.init(X,Q),z0.init(X,Q)});function Fq(X){return $$(qq,X)}var Nq=O(\"ZodArray\",(X,Q)=>{VQ.init(X,Q),z0.init(X,Q),X.element=Q.element,X.min=($,Y)=>X.check(C6($,Y)),X.nonempty=($)=>X.check(C6(1,$)),X.max=($,Y)=>X.check(u4($,Y)),X.length=($,Y)=>X.check(l4($,Y)),X.unwrap=()=>X.element});function r(X,Q){return vJ(Nq,X,Q)}var tJ=O(\"ZodObject\",(X,Q)=>{T4.init(X,Q),z0.init(X,Q),i.defineLazy(X,\"shape\",()=>Q.shape),X.keyof=()=>j0(Object.keys(X._zod.def.shape)),X.catchall=($)=>X.clone({...X._zod.def,catchall:$}),X.passthrough=()=>X.clone({...X._zod.def,catchall:N0()}),X.loose=()=>X.clone({...X._zod.def,catchall:N0()}),X.strict=()=>X.clone({...X._zod.def,catchall:Fq()}),X.strip=()=>X.clone({...X._zod.def,catchall:void 0}),X.extend=($)=>{return i.extend(X,$)},X.merge=($)=>i.merge(X,$),X.pick=($)=>i.pick(X,$),X.omit=($)=>i.omit(X,$),X.partial=(...$)=>i.partial(eJ,X,$[0]),X.required=(...$)=>i.required(X5,X,$[0])});function E(X,Q){let $={type:\"object\",get shape(){return i.assignProp(this,\"shape\",{...X}),this.shape},...i.normalizeParams(Q)};return new tJ($)}function c0(X,Q){return new tJ({type:\"object\",get shape(){return i.assignProp(this,\"shape\",{...X}),this.shape},catchall:N0(),...i.normalizeParams(Q)})}var aJ=O(\"ZodUnion\",(X,Q)=>{_4.init(X,Q),z0.init(X,Q),X.options=Q.options});function J0(X,Q){return new aJ({type:\"union\",options:X,...i.normalizeParams(Q)})}var Oq=O(\"ZodDiscriminatedUnion\",(X,Q)=>{aJ.init(X,Q),LQ.init(X,Q)});function E$(X,Q,$){return new Oq({type:\"union\",options:Q,discriminator:X,...i.normalizeParams($)})}var Dq=O(\"ZodIntersection\",(X,Q)=>{qQ.init(X,Q),z0.init(X,Q)});function i4(X,Q){return new Dq({type:\"intersection\",left:X,right:Q})}var wq=O(\"ZodRecord\",(X,Q)=>{FQ.init(X,Q),z0.init(X,Q),X.keyType=Q.keyType,X.valueType=Q.valueType});function O0(X,Q,$){return new wq({type:\"record\",keyType:X,valueType:Q,...i.normalizeParams($)})}var j$=O(\"ZodEnum\",(X,Q)=>{NQ.init(X,Q),z0.init(X,Q),X.enum=Q.entries,X.options=Object.values(Q.entries);let $=new Set(Object.keys(Q.entries));X.extract=(Y,W)=>{let J={};for(let G of Y)if($.has(G))J[G]=Q.entries[G];else throw Error(`Key ${G} not found in enum`);return new j$({...Q,checks:[],...i.normalizeParams(W),entries:J})},X.exclude=(Y,W)=>{let J={...Q.entries};for(let G of Y)if($.has(G))delete J[G];else throw Error(`Key ${G} not found in enum`);return new j$({...Q,checks:[],...i.normalizeParams(W),entries:J})}});function j0(X,Q){let $=Array.isArray(X)?Object.fromEntries(X.map((Y)=>[Y,Y])):X;return new j$({type:\"enum\",entries:$,...i.normalizeParams(Q)})}var Aq=O(\"ZodLiteral\",(X,Q)=>{OQ.init(X,Q),z0.init(X,Q),X.values=new Set(Q.values),Object.defineProperty(X,\"value\",{get(){if(Q.values.length>1)throw Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");return Q.values[0]}})});function T(X,Q){return new Aq({type:\"literal\",values:Array.isArray(X)?X:[X],...i.normalizeParams(Q)})}var Mq=O(\"ZodTransform\",(X,Q)=>{DQ.init(X,Q),z0.init(X,Q),X._zod.parse=($,Y)=>{$.addIssue=(J)=>{if(typeof J===\"string\")$.issues.push(i.issue(J,$.value,Q));else{let G=J;if(G.fatal)G.continue=!1;G.code??(G.code=\"custom\"),G.input??(G.input=$.value),G.inst??(G.inst=X),G.continue??(G.continue=!0),$.issues.push(i.issue(G))}};let W=Q.transform($.value,$);if(W instanceof Promise)return W.then((J)=>{return $.value=J,$});return $.value=W,$}});function sJ(X){return new Mq({type:\"transform\",transform:X})}var eJ=O(\"ZodOptional\",(X,Q)=>{wQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType});function v(X){return new eJ({type:\"optional\",innerType:X})}var jq=O(\"ZodNullable\",(X,Q)=>{AQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType});function nJ(X){return new jq({type:\"nullable\",innerType:X})}var Rq=O(\"ZodDefault\",(X,Q)=>{MQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType,X.removeDefault=X.unwrap});function Iq(X,Q){return new Rq({type:\"default\",innerType:X,get defaultValue(){return typeof Q===\"function\"?Q():Q}})}var Eq=O(\"ZodPrefault\",(X,Q)=>{jQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType});function bq(X,Q){return new Eq({type:\"prefault\",innerType:X,get defaultValue(){return typeof Q===\"function\"?Q():Q}})}var X5=O(\"ZodNonOptional\",(X,Q)=>{RQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType});function Pq(X,Q){return new X5({type:\"nonoptional\",innerType:X,...i.normalizeParams(Q)})}var Sq=O(\"ZodCatch\",(X,Q)=>{IQ.init(X,Q),z0.init(X,Q),X.unwrap=()=>X._zod.def.innerType,X.removeCatch=X.unwrap});function Zq(X,Q){return new Sq({type:\"catch\",innerType:X,catchValue:typeof Q===\"function\"?Q:()=>Q})}var Cq=O(\"ZodPipe\",(X,Q)=>{EQ.init(X,Q),z0.init(X,Q),X.in=Q.in,X.out=Q.out});function R$(X,Q){return new Cq({type:\"pipe\",in:X,out:Q})}var kq=O(\"ZodReadonly\",(X,Q)=>{bQ.init(X,Q),z0.init(X,Q)});function vq(X){return new kq({type:\"readonly\",innerType:X})}var Q5=O(\"ZodCustom\",(X,Q)=>{PQ.init(X,Q),z0.init(X,Q)});function Tq(X,Q){let $=new A0({check:\"custom\",...i.normalizeParams(Q)});return $._zod.check=X,$}function $5(X,Q){return L$(Q5,X??(()=>!0),Q)}function _q(X,Q={}){return q$(Q5,X,Q)}function xq(X,Q){let $=Tq((Y)=>{return Y.addIssue=(W)=>{if(typeof W===\"string\")Y.issues.push(i.issue(W,Y.value,$._zod.def));else{let J=W;if(J.fatal)J.continue=!1;J.code??(J.code=\"custom\"),J.input??(J.input=Y.value),J.inst??(J.inst=$),J.continue??(J.continue=!$._zod.def.abort),Y.issues.push(i.issue(J))}},X(Y.value,Y)},Q);return $}function b$(X,Q){return R$(sJ(X),Q)}u0(SQ());var P$=\"2025-11-25\";var Y5=[P$,\"2025-06-18\",\"2025-03-26\",\"2024-11-05\",\"2024-10-07\"],z1=\"io.modelcontextprotocol/related-task\",r4=\"2.0\",B1=$5((X)=>X!==null&&(typeof X===\"object\"||typeof X===\"function\")),W5=J0([D(),Q0().int()]),J5=D(),yq=c0({ttl:J0([Q0(),I$()]).optional(),pollInterval:Q0().optional()}),S$=c0({taskId:D()}),gq=c0({progressToken:W5.optional(),[z1]:S$.optional()}),_0=c0({task:yq.optional(),_meta:gq.optional()}),R0=E({method:D(),params:_0.optional()}),J6=c0({_meta:E({[z1]:v(S$)}).passthrough().optional()}),p0=E({method:D(),params:J6.optional()}),P0=c0({_meta:c0({[z1]:S$.optional()}).optional()}),o4=J0([D(),Q0().int()]),G5=E({jsonrpc:T(r4),id:o4,...R0.shape}).strict(),Z$=(X)=>G5.safeParse(X).success,H5=E({jsonrpc:T(r4),...p0.shape}).strict(),B5=(X)=>H5.safeParse(X).success,z5=E({jsonrpc:T(r4),id:o4,result:P0}).strict(),CX=(X)=>z5.safeParse(X).success,x;(function(X){X[X.ConnectionClosed=-32000]=\"ConnectionClosed\",X[X.RequestTimeout=-32001]=\"RequestTimeout\",X[X.ParseError=-32700]=\"ParseError\",X[X.InvalidRequest=-32600]=\"InvalidRequest\",X[X.MethodNotFound=-32601]=\"MethodNotFound\",X[X.InvalidParams=-32602]=\"InvalidParams\",X[X.InternalError=-32603]=\"InternalError\",X[X.UrlElicitationRequired=-32042]=\"UrlElicitationRequired\"})(x||(x={}));var K5=E({jsonrpc:T(r4),id:o4,error:E({code:Q0().int(),message:D(),data:v(N0())})}).strict(),U5=(X)=>K5.safeParse(X).success,MZ=J0([G5,H5,z5,K5]),t4=P0.strict(),fq=J6.extend({requestId:o4,reason:D().optional()}),a4=p0.extend({method:T(\"notifications/cancelled\"),params:fq}),hq=E({src:D(),mimeType:D().optional(),sizes:r(D()).optional()}),kX=E({icons:r(hq).optional()}),T6=E({name:D(),title:D().optional()}),V5=T6.extend({...T6.shape,...kX.shape,version:D(),websiteUrl:D().optional()}),uq=i4(E({applyDefaults:M0().optional()}),O0(D(),N0())),lq=b$((X)=>{if(X&&typeof X===\"object\"&&!Array.isArray(X)){if(Object.keys(X).length===0)return{form:{}}}return X},i4(E({form:uq.optional(),url:B1.optional()}),O0(D(),N0()).optional())),mq=E({list:v(E({}).passthrough()),cancel:v(E({}).passthrough()),requests:v(E({sampling:v(E({createMessage:v(E({}).passthrough())}).passthrough()),elicitation:v(E({create:v(E({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),cq=E({list:v(E({}).passthrough()),cancel:v(E({}).passthrough()),requests:v(E({tools:v(E({call:v(E({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),pq=E({experimental:O0(D(),B1).optional(),sampling:E({context:B1.optional(),tools:B1.optional()}).optional(),elicitation:lq.optional(),roots:E({listChanged:M0().optional()}).optional(),tasks:v(mq)}),dq=_0.extend({protocolVersion:D(),capabilities:pq,clientInfo:V5}),C$=R0.extend({method:T(\"initialize\"),params:dq});var iq=E({experimental:O0(D(),B1).optional(),logging:B1.optional(),completions:B1.optional(),prompts:v(E({listChanged:v(M0())})),resources:E({subscribe:M0().optional(),listChanged:M0().optional()}).optional(),tools:E({listChanged:M0().optional()}).optional(),tasks:v(cq)}).passthrough(),nq=P0.extend({protocolVersion:D(),capabilities:iq,serverInfo:V5,instructions:D().optional()}),k$=p0.extend({method:T(\"notifications/initialized\")});var s4=R0.extend({method:T(\"ping\")}),rq=E({progress:Q0(),total:v(Q0()),message:v(D())}),oq=E({...J6.shape,...rq.shape,progressToken:W5}),e4=p0.extend({method:T(\"notifications/progress\"),params:oq}),tq=_0.extend({cursor:J5.optional()}),vX=R0.extend({params:tq.optional()}),TX=P0.extend({nextCursor:v(J5)}),_X=E({taskId:D(),status:j0([\"working\",\"input_required\",\"completed\",\"failed\",\"cancelled\"]),ttl:J0([Q0(),I$()]),createdAt:D(),lastUpdatedAt:D(),pollInterval:v(Q0()),statusMessage:v(D())}),_6=P0.extend({task:_X}),aq=J6.merge(_X),xX=p0.extend({method:T(\"notifications/tasks/status\"),params:aq}),X8=R0.extend({method:T(\"tasks/get\"),params:_0.extend({taskId:D()})}),Q8=P0.merge(_X),$8=R0.extend({method:T(\"tasks/result\"),params:_0.extend({taskId:D()})}),Y8=vX.extend({method:T(\"tasks/list\")}),W8=TX.extend({tasks:r(_X)}),L5=R0.extend({method:T(\"tasks/cancel\"),params:_0.extend({taskId:D()})}),q5=P0.merge(_X),F5=E({uri:D(),mimeType:v(D()),_meta:O0(D(),N0()).optional()}),N5=F5.extend({text:D()}),v$=D().refine((X)=>{try{return atob(X),!0}catch(Q){return!1}},{message:\"Invalid Base64 string\"}),O5=F5.extend({blob:v$}),x6=E({audience:r(j0([\"user\",\"assistant\"])).optional(),priority:Q0().min(0).max(1).optional(),lastModified:SX.datetime({offset:!0}).optional()}),D5=E({...T6.shape,...kX.shape,uri:D(),description:v(D()),mimeType:v(D()),annotations:x6.optional(),_meta:v(c0({}))}),sq=E({...T6.shape,...kX.shape,uriTemplate:D(),description:v(D()),mimeType:v(D()),annotations:x6.optional(),_meta:v(c0({}))}),J8=vX.extend({method:T(\"resources/list\")}),eq=TX.extend({resources:r(D5)}),G8=vX.extend({method:T(\"resources/templates/list\")}),XF=TX.extend({resourceTemplates:r(sq)}),T$=_0.extend({uri:D()}),QF=T$,H8=R0.extend({method:T(\"resources/read\"),params:QF}),$F=P0.extend({contents:r(J0([N5,O5]))}),YF=p0.extend({method:T(\"notifications/resources/list_changed\")}),WF=T$,JF=R0.extend({method:T(\"resources/subscribe\"),params:WF}),GF=T$,HF=R0.extend({method:T(\"resources/unsubscribe\"),params:GF}),BF=J6.extend({uri:D()}),zF=p0.extend({method:T(\"notifications/resources/updated\"),params:BF}),KF=E({name:D(),description:v(D()),required:v(M0())}),UF=E({...T6.shape,...kX.shape,description:v(D()),arguments:v(r(KF)),_meta:v(c0({}))}),B8=vX.extend({method:T(\"prompts/list\")}),VF=TX.extend({prompts:r(UF)}),LF=_0.extend({name:D(),arguments:O0(D(),D()).optional()}),z8=R0.extend({method:T(\"prompts/get\"),params:LF}),_$=E({type:T(\"text\"),text:D(),annotations:x6.optional(),_meta:O0(D(),N0()).optional()}),x$=E({type:T(\"image\"),data:v$,mimeType:D(),annotations:x6.optional(),_meta:O0(D(),N0()).optional()}),y$=E({type:T(\"audio\"),data:v$,mimeType:D(),annotations:x6.optional(),_meta:O0(D(),N0()).optional()}),qF=E({type:T(\"tool_use\"),name:D(),id:D(),input:E({}).passthrough(),_meta:v(E({}).passthrough())}).passthrough(),FF=E({type:T(\"resource\"),resource:J0([N5,O5]),annotations:x6.optional(),_meta:O0(D(),N0()).optional()}),NF=D5.extend({type:T(\"resource_link\")}),g$=J0([_$,x$,y$,NF,FF]),OF=E({role:j0([\"user\",\"assistant\"]),content:g$}),DF=P0.extend({description:v(D()),messages:r(OF)}),wF=p0.extend({method:T(\"notifications/prompts/list_changed\")}),AF=E({title:D().optional(),readOnlyHint:M0().optional(),destructiveHint:M0().optional(),idempotentHint:M0().optional(),openWorldHint:M0().optional()}),MF=E({taskSupport:j0([\"required\",\"optional\",\"forbidden\"]).optional()}),w5=E({...T6.shape,...kX.shape,description:D().optional(),inputSchema:E({type:T(\"object\"),properties:O0(D(),B1).optional(),required:r(D()).optional()}).catchall(N0()),outputSchema:E({type:T(\"object\"),properties:O0(D(),B1).optional(),required:r(D()).optional()}).catchall(N0()).optional(),annotations:v(AF),execution:v(MF),_meta:O0(D(),N0()).optional()}),K8=vX.extend({method:T(\"tools/list\")}),jF=TX.extend({tools:r(w5)}),U8=P0.extend({content:r(g$).default([]),structuredContent:O0(D(),N0()).optional(),isError:v(M0())}),jZ=U8.or(P0.extend({toolResult:N0()})),RF=_0.extend({name:D(),arguments:v(O0(D(),N0()))}),y6=R0.extend({method:T(\"tools/call\"),params:RF}),IF=p0.extend({method:T(\"notifications/tools/list_changed\")}),yX=j0([\"debug\",\"info\",\"notice\",\"warning\",\"error\",\"critical\",\"alert\",\"emergency\"]),EF=_0.extend({level:yX}),f$=R0.extend({method:T(\"logging/setLevel\"),params:EF}),bF=J6.extend({level:yX,logger:D().optional(),data:N0()}),PF=p0.extend({method:T(\"notifications/message\"),params:bF}),SF=E({name:D().optional()}),ZF=E({hints:v(r(SF)),costPriority:v(Q0().min(0).max(1)),speedPriority:v(Q0().min(0).max(1)),intelligencePriority:v(Q0().min(0).max(1))}),CF=E({mode:v(j0([\"auto\",\"required\",\"none\"]))}),kF=E({type:T(\"tool_result\"),toolUseId:D().describe(\"The unique identifier for the corresponding tool call.\"),content:r(g$).default([]),structuredContent:E({}).passthrough().optional(),isError:v(M0()),_meta:v(E({}).passthrough())}).passthrough(),vF=E$(\"type\",[_$,x$,y$]),n4=E$(\"type\",[_$,x$,y$,qF,kF]),TF=E({role:j0([\"user\",\"assistant\"]),content:J0([n4,r(n4)]),_meta:v(E({}).passthrough())}).passthrough(),_F=_0.extend({messages:r(TF),modelPreferences:ZF.optional(),systemPrompt:D().optional(),includeContext:j0([\"none\",\"thisServer\",\"allServers\"]).optional(),temperature:Q0().optional(),maxTokens:Q0().int(),stopSequences:r(D()).optional(),metadata:B1.optional(),tools:v(r(w5)),toolChoice:v(CF)}),xF=R0.extend({method:T(\"sampling/createMessage\"),params:_F}),h$=P0.extend({model:D(),stopReason:v(j0([\"endTurn\",\"stopSequence\",\"maxTokens\"]).or(D())),role:j0([\"user\",\"assistant\"]),content:vF}),u$=P0.extend({model:D(),stopReason:v(j0([\"endTurn\",\"stopSequence\",\"maxTokens\",\"toolUse\"]).or(D())),role:j0([\"user\",\"assistant\"]),content:J0([n4,r(n4)])}),yF=E({type:T(\"boolean\"),title:D().optional(),description:D().optional(),default:M0().optional()}),gF=E({type:T(\"string\"),title:D().optional(),description:D().optional(),minLength:Q0().optional(),maxLength:Q0().optional(),format:j0([\"email\",\"uri\",\"date\",\"date-time\"]).optional(),default:D().optional()}),fF=E({type:j0([\"number\",\"integer\"]),title:D().optional(),description:D().optional(),minimum:Q0().optional(),maximum:Q0().optional(),default:Q0().optional()}),hF=E({type:T(\"string\"),title:D().optional(),description:D().optional(),enum:r(D()),default:D().optional()}),uF=E({type:T(\"string\"),title:D().optional(),description:D().optional(),oneOf:r(E({const:D(),title:D()})),default:D().optional()}),lF=E({type:T(\"string\"),title:D().optional(),description:D().optional(),enum:r(D()),enumNames:r(D()).optional(),default:D().optional()}),mF=J0([hF,uF]),cF=E({type:T(\"array\"),title:D().optional(),description:D().optional(),minItems:Q0().optional(),maxItems:Q0().optional(),items:E({type:T(\"string\"),enum:r(D())}),default:r(D()).optional()}),pF=E({type:T(\"array\"),title:D().optional(),description:D().optional(),minItems:Q0().optional(),maxItems:Q0().optional(),items:E({anyOf:r(E({const:D(),title:D()}))}),default:r(D()).optional()}),dF=J0([cF,pF]),iF=J0([lF,mF,dF]),nF=J0([iF,yF,gF,fF]),rF=_0.extend({mode:T(\"form\").optional(),message:D(),requestedSchema:E({type:T(\"object\"),properties:O0(D(),nF),required:r(D()).optional()})}),oF=_0.extend({mode:T(\"url\"),message:D(),elicitationId:D(),url:D().url()}),tF=J0([rF,oF]),aF=R0.extend({method:T(\"elicitation/create\"),params:tF}),sF=J6.extend({elicitationId:D()}),eF=p0.extend({method:T(\"notifications/elicitation/complete\"),params:sF}),V8=P0.extend({action:j0([\"accept\",\"decline\",\"cancel\"]),content:b$((X)=>X===null?void 0:X,O0(D(),J0([D(),Q0(),M0(),r(D())])).optional())}),XN=E({type:T(\"ref/resource\"),uri:D()});var QN=E({type:T(\"ref/prompt\"),name:D()}),$N=_0.extend({ref:J0([QN,XN]),argument:E({name:D(),value:D()}),context:E({arguments:O0(D(),D()).optional()}).optional()}),L8=R0.extend({method:T(\"completion/complete\"),params:$N});function A5(X){if(X.params.ref.type!==\"ref/prompt\")throw TypeError(`Expected CompleteRequestPrompt, but got ${X.params.ref.type}`)}function M5(X){if(X.params.ref.type!==\"ref/resource\")throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${X.params.ref.type}`)}var YN=P0.extend({completion:c0({values:r(D()).max(100),total:v(Q0().int()),hasMore:v(M0())})}),WN=E({uri:D().startsWith(\"file://\"),name:D().optional(),_meta:O0(D(),N0()).optional()}),JN=R0.extend({method:T(\"roots/list\")}),l$=P0.extend({roots:r(WN)}),GN=p0.extend({method:T(\"notifications/roots/list_changed\")}),RZ=J0([s4,C$,L8,f$,z8,B8,J8,G8,H8,JF,HF,y6,K8,X8,$8,Y8]),IZ=J0([a4,e4,k$,GN,xX]),EZ=J0([t4,h$,u$,V8,l$,Q8,W8,_6]),bZ=J0([s4,xF,aF,JN,X8,$8,Y8]),PZ=J0([a4,e4,PF,zF,YF,IF,wF,xX,eF]),SZ=J0([t4,nq,YN,DF,VF,eq,XF,$F,U8,jF,Q8,W8,_6]);class k extends Error{constructor(X,Q,$){super(`MCP error ${X}: ${Q}`);this.code=X,this.data=$,this.name=\"McpError\"}static fromError(X,Q,$){if(X===x.UrlElicitationRequired&&$){let Y=$;if(Y.elicitations)return new j5(Y.elicitations,Q)}return new k(X,Q,$)}}class j5 extends k{constructor(X,Q=`URL elicitation${X.length>1?\"s\":\"\"} required`){super(x.UrlElicitationRequired,Q,{elicitations:X})}get elicitations(){var X,Q;return(Q=(X=this.data)===null||X===void 0?void 0:X.elicitations)!==null&&Q!==void 0?Q:[]}}function u1(X){return X===\"completed\"||X===\"failed\"||X===\"cancelled\"}var I5=Symbol(\"Let zodToJsonSchema decide on which parser to use\");var R5={name:void 0,$refStrategy:\"root\",basePath:[\"#\"],effectStrategy:\"input\",pipeStrategy:\"all\",dateStrategy:\"format:date-time\",mapStrategy:\"entries\",removeAdditionalStrategy:\"passthrough\",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:\"definitions\",target:\"jsonSchema7\",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:\"escape\",applyRegexFlags:!1,emailStrategy:\"format:email\",base64Strategy:\"contentEncoding:base64\",nameStrategy:\"ref\",openAiAnyTypeName:\"OpenAiAnyType\"},E5=(X)=>typeof X===\"string\"?{...R5,name:X}:{...R5,...X};var b5=(X)=>{let Q=E5(X),$=Q.name!==void 0?[...Q.basePath,Q.definitionPath,Q.name]:Q.basePath;return{...Q,flags:{hasReferencedOpenAiAnyType:!1},currentPath:$,propertyPath:void 0,seen:new Map(Object.entries(Q.definitions).map(([Y,W])=>[W._def,{def:W._def,path:[...Q.basePath,Q.definitionPath,Y],jsonSchema:void 0}]))}};function m$(X,Q,$,Y){if(!Y?.errorMessages)return;if($)X.errorMessage={...X.errorMessage,[Q]:$}}function o(X,Q,$,Y,W){X[Q]=$,m$(X,Q,Y,W)}var q8=(X,Q)=>{let $=0;for(;$<X.length&&$<Q.length;$++)if(X[$]!==Q[$])break;return[(X.length-$).toString(),...Q.slice($)].join(\"/\")};function B0(X){if(X.target!==\"openAi\")return{};let Q=[...X.basePath,X.definitionPath,X.openAiAnyTypeName];return X.flags.hasReferencedOpenAiAnyType=!0,{$ref:X.$refStrategy===\"relative\"?q8(Q,X.currentPath):Q.join(\"/\")}}function P5(X,Q){let $={type:\"array\"};if(X.type?._def&&X.type?._def?.typeName!==j.ZodAny)$.items=f(X.type._def,{...Q,currentPath:[...Q.currentPath,\"items\"]});if(X.minLength)o($,\"minItems\",X.minLength.value,X.minLength.message,Q);if(X.maxLength)o($,\"maxItems\",X.maxLength.value,X.maxLength.message,Q);if(X.exactLength)o($,\"minItems\",X.exactLength.value,X.exactLength.message,Q),o($,\"maxItems\",X.exactLength.value,X.exactLength.message,Q);return $}function S5(X,Q){let $={type:\"integer\",format:\"int64\"};if(!X.checks)return $;for(let Y of X.checks)switch(Y.kind){case\"min\":if(Q.target===\"jsonSchema7\")if(Y.inclusive)o($,\"minimum\",Y.value,Y.message,Q);else o($,\"exclusiveMinimum\",Y.value,Y.message,Q);else{if(!Y.inclusive)$.exclusiveMinimum=!0;o($,\"minimum\",Y.value,Y.message,Q)}break;case\"max\":if(Q.target===\"jsonSchema7\")if(Y.inclusive)o($,\"maximum\",Y.value,Y.message,Q);else o($,\"exclusiveMaximum\",Y.value,Y.message,Q);else{if(!Y.inclusive)$.exclusiveMaximum=!0;o($,\"maximum\",Y.value,Y.message,Q)}break;case\"multipleOf\":o($,\"multipleOf\",Y.value,Y.message,Q);break}return $}function Z5(){return{type:\"boolean\"}}function F8(X,Q){return f(X.type._def,Q)}var C5=(X,Q)=>{return f(X.innerType._def,Q)};function c$(X,Q,$){let Y=$??Q.dateStrategy;if(Array.isArray(Y))return{anyOf:Y.map((W,J)=>c$(X,Q,W))};switch(Y){case\"string\":case\"format:date-time\":return{type:\"string\",format:\"date-time\"};case\"format:date\":return{type:\"string\",format:\"date\"};case\"integer\":return HN(X,Q)}}var HN=(X,Q)=>{let $={type:\"integer\",format:\"unix-time\"};if(Q.target===\"openApi3\")return $;for(let Y of X.checks)switch(Y.kind){case\"min\":o($,\"minimum\",Y.value,Y.message,Q);break;case\"max\":o($,\"maximum\",Y.value,Y.message,Q);break}return $};function k5(X,Q){return{...f(X.innerType._def,Q),default:X.defaultValue()}}function v5(X,Q){return Q.effectStrategy===\"input\"?f(X.schema._def,Q):B0(Q)}function T5(X){return{type:\"string\",enum:Array.from(X.values)}}var BN=(X)=>{if(\"type\"in X&&X.type===\"string\")return!1;return\"allOf\"in X};function _5(X,Q){let $=[f(X.left._def,{...Q,currentPath:[...Q.currentPath,\"allOf\",\"0\"]}),f(X.right._def,{...Q,currentPath:[...Q.currentPath,\"allOf\",\"1\"]})].filter((J)=>!!J),Y=Q.target===\"jsonSchema2019-09\"?{unevaluatedProperties:!1}:void 0,W=[];return $.forEach((J)=>{if(BN(J)){if(W.push(...J.allOf),J.unevaluatedProperties===void 0)Y=void 0}else{let G=J;if(\"additionalProperties\"in J&&J.additionalProperties===!1){let{additionalProperties:H,...B}=J;G=B}else Y=void 0;W.push(G)}}),W.length?{allOf:W,...Y}:void 0}function x5(X,Q){let $=typeof X.value;if($!==\"bigint\"&&$!==\"number\"&&$!==\"boolean\"&&$!==\"string\")return{type:Array.isArray(X.value)?\"array\":\"object\"};if(Q.target===\"openApi3\")return{type:$===\"bigint\"?\"integer\":$,enum:[X.value]};return{type:$===\"bigint\"?\"integer\":$,const:X.value}}var p$=void 0,t0={cuid:/^[cC][^\\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(p$===void 0)p$=RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\"u\");return p$},uuid:/^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/};function N8(X,Q){let $={type:\"string\"};if(X.checks)for(let Y of X.checks)switch(Y.kind){case\"min\":o($,\"minLength\",typeof $.minLength===\"number\"?Math.max($.minLength,Y.value):Y.value,Y.message,Q);break;case\"max\":o($,\"maxLength\",typeof $.maxLength===\"number\"?Math.min($.maxLength,Y.value):Y.value,Y.message,Q);break;case\"email\":switch(Q.emailStrategy){case\"format:email\":a0($,\"email\",Y.message,Q);break;case\"format:idn-email\":a0($,\"idn-email\",Y.message,Q);break;case\"pattern:zod\":k0($,t0.email,Y.message,Q);break}break;case\"url\":a0($,\"uri\",Y.message,Q);break;case\"uuid\":a0($,\"uuid\",Y.message,Q);break;case\"regex\":k0($,Y.regex,Y.message,Q);break;case\"cuid\":k0($,t0.cuid,Y.message,Q);break;case\"cuid2\":k0($,t0.cuid2,Y.message,Q);break;case\"startsWith\":k0($,RegExp(`^${d$(Y.value,Q)}`),Y.message,Q);break;case\"endsWith\":k0($,RegExp(`${d$(Y.value,Q)}$`),Y.message,Q);break;case\"datetime\":a0($,\"date-time\",Y.message,Q);break;case\"date\":a0($,\"date\",Y.message,Q);break;case\"time\":a0($,\"time\",Y.message,Q);break;case\"duration\":a0($,\"duration\",Y.message,Q);break;case\"length\":o($,\"minLength\",typeof $.minLength===\"number\"?Math.max($.minLength,Y.value):Y.value,Y.message,Q),o($,\"maxLength\",typeof $.maxLength===\"number\"?Math.min($.maxLength,Y.value):Y.value,Y.message,Q);break;case\"includes\":{k0($,RegExp(d$(Y.value,Q)),Y.message,Q);break}case\"ip\":{if(Y.version!==\"v6\")a0($,\"ipv4\",Y.message,Q);if(Y.version!==\"v4\")a0($,\"ipv6\",Y.message,Q);break}case\"base64url\":k0($,t0.base64url,Y.message,Q);break;case\"jwt\":k0($,t0.jwt,Y.message,Q);break;case\"cidr\":{if(Y.version!==\"v6\")k0($,t0.ipv4Cidr,Y.message,Q);if(Y.version!==\"v4\")k0($,t0.ipv6Cidr,Y.message,Q);break}case\"emoji\":k0($,t0.emoji(),Y.message,Q);break;case\"ulid\":{k0($,t0.ulid,Y.message,Q);break}case\"base64\":{switch(Q.base64Strategy){case\"format:binary\":{a0($,\"binary\",Y.message,Q);break}case\"contentEncoding:base64\":{o($,\"contentEncoding\",\"base64\",Y.message,Q);break}case\"pattern:zod\":{k0($,t0.base64,Y.message,Q);break}}break}case\"nanoid\":k0($,t0.nanoid,Y.message,Q);case\"toLowerCase\":case\"toUpperCase\":case\"trim\":break;default:((W)=>{})(Y)}return $}function d$(X,Q){return Q.patternStrategy===\"escape\"?KN(X):X}var zN=new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");function KN(X){let Q=\"\";for(let $=0;$<X.length;$++){if(!zN.has(X[$]))Q+=\"\\\\\";Q+=X[$]}return Q}function a0(X,Q,$,Y){if(X.format||X.anyOf?.some((W)=>W.format)){if(!X.anyOf)X.anyOf=[];if(X.format){if(X.anyOf.push({format:X.format,...X.errorMessage&&Y.errorMessages&&{errorMessage:{format:X.errorMessage.format}}}),delete X.format,X.errorMessage){if(delete X.errorMessage.format,Object.keys(X.errorMessage).length===0)delete X.errorMessage}}X.anyOf.push({format:Q,...$&&Y.errorMessages&&{errorMessage:{format:$}}})}else o(X,\"format\",Q,$,Y)}function k0(X,Q,$,Y){if(X.pattern||X.allOf?.some((W)=>W.pattern)){if(!X.allOf)X.allOf=[];if(X.pattern){if(X.allOf.push({pattern:X.pattern,...X.errorMessage&&Y.errorMessages&&{errorMessage:{pattern:X.errorMessage.pattern}}}),delete X.pattern,X.errorMessage){if(delete X.errorMessage.pattern,Object.keys(X.errorMessage).length===0)delete X.errorMessage}}X.allOf.push({pattern:y5(Q,Y),...$&&Y.errorMessages&&{errorMessage:{pattern:$}}})}else o(X,\"pattern\",y5(Q,Y),$,Y)}function y5(X,Q){if(!Q.applyRegexFlags||!X.flags)return X.source;let $={i:X.flags.includes(\"i\"),m:X.flags.includes(\"m\"),s:X.flags.includes(\"s\")},Y=$.i?X.source.toLowerCase():X.source,W=\"\",J=!1,G=!1,H=!1;for(let B=0;B<Y.length;B++){if(J){W+=Y[B],J=!1;continue}if($.i){if(G){if(Y[B].match(/[a-z]/)){if(H)W+=Y[B],W+=`${Y[B-2]}-${Y[B]}`.toUpperCase(),H=!1;else if(Y[B+1]===\"-\"&&Y[B+2]?.match(/[a-z]/))W+=Y[B],H=!0;else W+=`${Y[B]}${Y[B].toUpperCase()}`;continue}}else if(Y[B].match(/[a-z]/)){W+=`[${Y[B]}${Y[B].toUpperCase()}]`;continue}}if($.m){if(Y[B]===\"^\"){W+=`(^|(?<=[\\r\n]))`;continue}else if(Y[B]===\"$\"){W+=`($|(?=[\\r\n]))`;continue}}if($.s&&Y[B]===\".\"){W+=G?`${Y[B]}\\r\n`:`[${Y[B]}\\r\n]`;continue}if(W+=Y[B],Y[B]===\"\\\\\")J=!0;else if(G&&Y[B]===\"]\")G=!1;else if(!G&&Y[B]===\"[\")G=!0}try{new RegExp(W)}catch{return console.warn(`Could not convert regex pattern at ${Q.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`),X.source}return W}function O8(X,Q){if(Q.target===\"openAi\")console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");if(Q.target===\"openApi3\"&&X.keyType?._def.typeName===j.ZodEnum)return{type:\"object\",required:X.keyType._def.values,properties:X.keyType._def.values.reduce((Y,W)=>({...Y,[W]:f(X.valueType._def,{...Q,currentPath:[...Q.currentPath,\"properties\",W]})??B0(Q)}),{}),additionalProperties:Q.rejectedAdditionalProperties};let $={type:\"object\",additionalProperties:f(X.valueType._def,{...Q,currentPath:[...Q.currentPath,\"additionalProperties\"]})??Q.allowedAdditionalProperties};if(Q.target===\"openApi3\")return $;if(X.keyType?._def.typeName===j.ZodString&&X.keyType._def.checks?.length){let{type:Y,...W}=N8(X.keyType._def,Q);return{...$,propertyNames:W}}else if(X.keyType?._def.typeName===j.ZodEnum)return{...$,propertyNames:{enum:X.keyType._def.values}};else if(X.keyType?._def.typeName===j.ZodBranded&&X.keyType._def.type._def.typeName===j.ZodString&&X.keyType._def.type._def.checks?.length){let{type:Y,...W}=F8(X.keyType._def,Q);return{...$,propertyNames:W}}return $}function g5(X,Q){if(Q.mapStrategy===\"record\")return O8(X,Q);let $=f(X.keyType._def,{...Q,currentPath:[...Q.currentPath,\"items\",\"items\",\"0\"]})||B0(Q),Y=f(X.valueType._def,{...Q,currentPath:[...Q.currentPath,\"items\",\"items\",\"1\"]})||B0(Q);return{type:\"array\",maxItems:125,items:{type:\"array\",items:[$,Y],minItems:2,maxItems:2}}}function f5(X){let Q=X.values,Y=Object.keys(X.values).filter((J)=>{return typeof Q[Q[J]]!==\"number\"}).map((J)=>Q[J]),W=Array.from(new Set(Y.map((J)=>typeof J)));return{type:W.length===1?W[0]===\"string\"?\"string\":\"number\":[\"string\",\"number\"],enum:Y}}function h5(X){return X.target===\"openAi\"?void 0:{not:B0({...X,currentPath:[...X.currentPath,\"not\"]})}}function u5(X){return X.target===\"openApi3\"?{enum:[\"null\"],nullable:!0}:{type:\"null\"}}var gX={ZodString:\"string\",ZodNumber:\"number\",ZodBigInt:\"integer\",ZodBoolean:\"boolean\",ZodNull:\"null\"};function m5(X,Q){if(Q.target===\"openApi3\")return l5(X,Q);let $=X.options instanceof Map?Array.from(X.options.values()):X.options;if($.every((Y)=>(Y._def.typeName in gX)&&(!Y._def.checks||!Y._def.checks.length))){let Y=$.reduce((W,J)=>{let G=gX[J._def.typeName];return G&&!W.includes(G)?[...W,G]:W},[]);return{type:Y.length>1?Y:Y[0]}}else if($.every((Y)=>Y._def.typeName===\"ZodLiteral\"&&!Y.description)){let Y=$.reduce((W,J)=>{let G=typeof J._def.value;switch(G){case\"string\":case\"number\":case\"boolean\":return[...W,G];case\"bigint\":return[...W,\"integer\"];case\"object\":if(J._def.value===null)return[...W,\"null\"];case\"symbol\":case\"undefined\":case\"function\":default:return W}},[]);if(Y.length===$.length){let W=Y.filter((J,G,H)=>H.indexOf(J)===G);return{type:W.length>1?W:W[0],enum:$.reduce((J,G)=>{return J.includes(G._def.value)?J:[...J,G._def.value]},[])}}}else if($.every((Y)=>Y._def.typeName===\"ZodEnum\"))return{type:\"string\",enum:$.reduce((Y,W)=>[...Y,...W._def.values.filter((J)=>!Y.includes(J))],[])};return l5(X,Q)}var l5=(X,Q)=>{let $=(X.options instanceof Map?Array.from(X.options.values()):X.options).map((Y,W)=>f(Y._def,{...Q,currentPath:[...Q.currentPath,\"anyOf\",`${W}`]})).filter((Y)=>!!Y&&(!Q.strictUnions||typeof Y===\"object\"&&Object.keys(Y).length>0));return $.length?{anyOf:$}:void 0};function c5(X,Q){if([\"ZodString\",\"ZodNumber\",\"ZodBigInt\",\"ZodBoolean\",\"ZodNull\"].includes(X.innerType._def.typeName)&&(!X.innerType._def.checks||!X.innerType._def.checks.length)){if(Q.target===\"openApi3\")return{type:gX[X.innerType._def.typeName],nullable:!0};return{type:[gX[X.innerType._def.typeName],\"null\"]}}if(Q.target===\"openApi3\"){let Y=f(X.innerType._def,{...Q,currentPath:[...Q.currentPath]});if(Y&&\"$ref\"in Y)return{allOf:[Y],nullable:!0};return Y&&{...Y,nullable:!0}}let $=f(X.innerType._def,{...Q,currentPath:[...Q.currentPath,\"anyOf\",\"0\"]});return $&&{anyOf:[$,{type:\"null\"}]}}function p5(X,Q){let $={type:\"number\"};if(!X.checks)return $;for(let Y of X.checks)switch(Y.kind){case\"int\":$.type=\"integer\",m$($,\"type\",Y.message,Q);break;case\"min\":if(Q.target===\"jsonSchema7\")if(Y.inclusive)o($,\"minimum\",Y.value,Y.message,Q);else o($,\"exclusiveMinimum\",Y.value,Y.message,Q);else{if(!Y.inclusive)$.exclusiveMinimum=!0;o($,\"minimum\",Y.value,Y.message,Q)}break;case\"max\":if(Q.target===\"jsonSchema7\")if(Y.inclusive)o($,\"maximum\",Y.value,Y.message,Q);else o($,\"exclusiveMaximum\",Y.value,Y.message,Q);else{if(!Y.inclusive)$.exclusiveMaximum=!0;o($,\"maximum\",Y.value,Y.message,Q)}break;case\"multipleOf\":o($,\"multipleOf\",Y.value,Y.message,Q);break}return $}function d5(X,Q){let $=Q.target===\"openAi\",Y={type:\"object\",properties:{}},W=[],J=X.shape();for(let H in J){let B=J[H];if(B===void 0||B._def===void 0)continue;let z=VN(B);if(z&&$){if(B._def.typeName===\"ZodOptional\")B=B._def.innerType;if(!B.isNullable())B=B.nullable();z=!1}let K=f(B._def,{...Q,currentPath:[...Q.currentPath,\"properties\",H],propertyPath:[...Q.currentPath,\"properties\",H]});if(K===void 0)continue;if(Y.properties[H]=K,!z)W.push(H)}if(W.length)Y.required=W;let G=UN(X,Q);if(G!==void 0)Y.additionalProperties=G;return Y}function UN(X,Q){if(X.catchall._def.typeName!==\"ZodNever\")return f(X.catchall._def,{...Q,currentPath:[...Q.currentPath,\"additionalProperties\"]});switch(X.unknownKeys){case\"passthrough\":return Q.allowedAdditionalProperties;case\"strict\":return Q.rejectedAdditionalProperties;case\"strip\":return Q.removeAdditionalStrategy===\"strict\"?Q.allowedAdditionalProperties:Q.rejectedAdditionalProperties}}function VN(X){try{return X.isOptional()}catch{return!0}}var i5=(X,Q)=>{if(Q.currentPath.toString()===Q.propertyPath?.toString())return f(X.innerType._def,Q);let $=f(X.innerType._def,{...Q,currentPath:[...Q.currentPath,\"anyOf\",\"1\"]});return $?{anyOf:[{not:B0(Q)},$]}:B0(Q)};var n5=(X,Q)=>{if(Q.pipeStrategy===\"input\")return f(X.in._def,Q);else if(Q.pipeStrategy===\"output\")return f(X.out._def,Q);let $=f(X.in._def,{...Q,currentPath:[...Q.currentPath,\"allOf\",\"0\"]}),Y=f(X.out._def,{...Q,currentPath:[...Q.currentPath,\"allOf\",$?\"1\":\"0\"]});return{allOf:[$,Y].filter((W)=>W!==void 0)}};function r5(X,Q){return f(X.type._def,Q)}function o5(X,Q){let Y={type:\"array\",uniqueItems:!0,items:f(X.valueType._def,{...Q,currentPath:[...Q.currentPath,\"items\"]})};if(X.minSize)o(Y,\"minItems\",X.minSize.value,X.minSize.message,Q);if(X.maxSize)o(Y,\"maxItems\",X.maxSize.value,X.maxSize.message,Q);return Y}function t5(X,Q){if(X.rest)return{type:\"array\",minItems:X.items.length,items:X.items.map(($,Y)=>f($._def,{...Q,currentPath:[...Q.currentPath,\"items\",`${Y}`]})).reduce(($,Y)=>Y===void 0?$:[...$,Y],[]),additionalItems:f(X.rest._def,{...Q,currentPath:[...Q.currentPath,\"additionalItems\"]})};else return{type:\"array\",minItems:X.items.length,maxItems:X.items.length,items:X.items.map(($,Y)=>f($._def,{...Q,currentPath:[...Q.currentPath,\"items\",`${Y}`]})).reduce(($,Y)=>Y===void 0?$:[...$,Y],[])}}function a5(X){return{not:B0(X)}}function s5(X){return B0(X)}var e5=(X,Q)=>{return f(X.innerType._def,Q)};var XG=(X,Q,$)=>{switch(Q){case j.ZodString:return N8(X,$);case j.ZodNumber:return p5(X,$);case j.ZodObject:return d5(X,$);case j.ZodBigInt:return S5(X,$);case j.ZodBoolean:return Z5();case j.ZodDate:return c$(X,$);case j.ZodUndefined:return a5($);case j.ZodNull:return u5($);case j.ZodArray:return P5(X,$);case j.ZodUnion:case j.ZodDiscriminatedUnion:return m5(X,$);case j.ZodIntersection:return _5(X,$);case j.ZodTuple:return t5(X,$);case j.ZodRecord:return O8(X,$);case j.ZodLiteral:return x5(X,$);case j.ZodEnum:return T5(X);case j.ZodNativeEnum:return f5(X);case j.ZodNullable:return c5(X,$);case j.ZodOptional:return i5(X,$);case j.ZodMap:return g5(X,$);case j.ZodSet:return o5(X,$);case j.ZodLazy:return()=>X.getter()._def;case j.ZodPromise:return r5(X,$);case j.ZodNaN:case j.ZodNever:return h5($);case j.ZodEffects:return v5(X,$);case j.ZodAny:return B0($);case j.ZodUnknown:return s5($);case j.ZodDefault:return k5(X,$);case j.ZodBranded:return F8(X,$);case j.ZodReadonly:return e5(X,$);case j.ZodCatch:return C5(X,$);case j.ZodPipeline:return n5(X,$);case j.ZodFunction:case j.ZodVoid:case j.ZodSymbol:return;default:return((Y)=>{return})(Q)}};function f(X,Q,$=!1){let Y=Q.seen.get(X);if(Q.override){let H=Q.override?.(X,Q,Y,$);if(H!==I5)return H}if(Y&&!$){let H=LN(Y,Q);if(H!==void 0)return H}let W={def:X,path:Q.currentPath,jsonSchema:void 0};Q.seen.set(X,W);let J=XG(X,X.typeName,Q),G=typeof J===\"function\"?f(J(),Q):J;if(G)qN(X,Q,G);if(Q.postProcess){let H=Q.postProcess(G,X,Q);return W.jsonSchema=G,H}return W.jsonSchema=G,G}var LN=(X,Q)=>{switch(Q.$refStrategy){case\"root\":return{$ref:X.path.join(\"/\")};case\"relative\":return{$ref:q8(Q.currentPath,X.path)};case\"none\":case\"seen\":{if(X.path.length<Q.currentPath.length&&X.path.every(($,Y)=>Q.currentPath[Y]===$))return console.warn(`Recursive reference detected at ${Q.currentPath.join(\"/\")}! Defaulting to any`),B0(Q);return Q.$refStrategy===\"seen\"?B0(Q):void 0}}},qN=(X,Q,$)=>{if(X.description){if($.description=X.description,Q.markdownDescription)$.markdownDescription=X.description}return $};var i$=(X,Q)=>{let $=b5(Q),Y=typeof Q===\"object\"&&Q.definitions?Object.entries(Q.definitions).reduce((B,[z,K])=>({...B,[z]:f(K._def,{...$,currentPath:[...$.basePath,$.definitionPath,z]},!0)??B0($)}),{}):void 0,W=typeof Q===\"string\"?Q:Q?.nameStrategy===\"title\"?void 0:Q?.name,J=f(X._def,W===void 0?$:{...$,currentPath:[...$.basePath,$.definitionPath,W]},!1)??B0($),G=typeof Q===\"object\"&&Q.name!==void 0&&Q.nameStrategy===\"title\"?Q.name:void 0;if(G!==void 0)J.title=G;if($.flags.hasReferencedOpenAiAnyType){if(!Y)Y={};if(!Y[$.openAiAnyTypeName])Y[$.openAiAnyTypeName]={type:[\"string\",\"number\",\"integer\",\"boolean\",\"array\",\"null\"],items:{$ref:$.$refStrategy===\"relative\"?\"1\":[...$.basePath,$.definitionPath,$.openAiAnyTypeName].join(\"/\")}}}let H=W===void 0?Y?{...J,[$.definitionPath]:Y}:J:{$ref:[...$.$refStrategy===\"relative\"?[]:$.basePath,$.definitionPath,W].join(\"/\"),[$.definitionPath]:{...Y,[W]:J}};if($.target===\"jsonSchema7\")H.$schema=\"http://json-schema.org/draft-07/schema#\";else if($.target===\"jsonSchema2019-09\"||$.target===\"openAi\")H.$schema=\"https://json-schema.org/draft/2019-09/schema#\";if($.target===\"openAi\"&&((\"anyOf\"in H)||(\"oneOf\"in H)||(\"allOf\"in H)||(\"type\"in H)&&Array.isArray(H.type)))console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");return H};function FN(X){if(!X)return\"draft-7\";if(X===\"jsonSchema7\"||X===\"draft-7\")return\"draft-7\";if(X===\"jsonSchema2019-09\"||X===\"draft-2020-12\")return\"draft-2020-12\";return\"draft-7\"}function n$(X,Q){var $,Y,W;if(m0(X))return N$(X,{target:FN(Q===null||Q===void 0?void 0:Q.target),io:($=Q===null||Q===void 0?void 0:Q.pipeStrategy)!==null&&$!==void 0?$:\"input\"});return i$(X,{strictUnions:(Y=Q===null||Q===void 0?void 0:Q.strictUnions)!==null&&Y!==void 0?Y:!0,pipeStrategy:(W=Q===null||Q===void 0?void 0:Q.pipeStrategy)!==null&&W!==void 0?W:\"input\"})}function r$(X){let Q=h1(X),$=Q===null||Q===void 0?void 0:Q.method;if(!$)throw Error(\"Schema is missing a method literal\");let Y=p4($);if(typeof Y!==\"string\")throw Error(\"Schema method literal must be a string\");return Y}function o$(X,Q){let $=f1(X,Q);if(!$.success)throw $.error;return $.data}var NN=60000;class t${constructor(X){if(this._options=X,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(a4,(Q)=>{this._oncancel(Q)}),this.setNotificationHandler(e4,(Q)=>{this._onprogress(Q)}),this.setRequestHandler(s4,(Q)=>({})),this._taskStore=X===null||X===void 0?void 0:X.taskStore,this._taskMessageQueue=X===null||X===void 0?void 0:X.taskMessageQueue,this._taskStore)this.setRequestHandler(X8,async(Q,$)=>{let Y=await this._taskStore.getTask(Q.params.taskId,$.sessionId);if(!Y)throw new k(x.InvalidParams,\"Failed to retrieve task: Task not found\");return{...Y}}),this.setRequestHandler($8,async(Q,$)=>{let Y=async()=>{var W;let J=Q.params.taskId;if(this._taskMessageQueue){let H;while(H=await this._taskMessageQueue.dequeue(J,$.sessionId)){if(H.type===\"response\"||H.type===\"error\"){let B=H.message,z=B.id,K=this._requestResolvers.get(z);if(K)if(this._requestResolvers.delete(z),H.type===\"response\")K(B);else{let V=B,L=new k(V.error.code,V.error.message,V.error.data);K(L)}else{let V=H.type===\"response\"?\"Response\":\"Error\";this._onerror(Error(`${V} handler missing for request ${z}`))}continue}await((W=this._transport)===null||W===void 0?void 0:W.send(H.message,{relatedRequestId:$.requestId}))}}let G=await this._taskStore.getTask(J,$.sessionId);if(!G)throw new k(x.InvalidParams,`Task not found: ${J}`);if(!u1(G.status))return await this._waitForTaskUpdate(J,$.signal),await Y();if(u1(G.status)){let H=await this._taskStore.getTaskResult(J,$.sessionId);return this._clearTaskQueue(J),{...H,_meta:{...H._meta,[z1]:{taskId:J}}}}return await Y()};return await Y()}),this.setRequestHandler(Y8,async(Q,$)=>{var Y;try{let{tasks:W,nextCursor:J}=await this._taskStore.listTasks((Y=Q.params)===null||Y===void 0?void 0:Y.cursor,$.sessionId);return{tasks:W,nextCursor:J,_meta:{}}}catch(W){throw new k(x.InvalidParams,`Failed to list tasks: ${W instanceof Error?W.message:String(W)}`)}}),this.setRequestHandler(L5,async(Q,$)=>{try{let Y=await this._taskStore.getTask(Q.params.taskId,$.sessionId);if(!Y)throw new k(x.InvalidParams,`Task not found: ${Q.params.taskId}`);if(u1(Y.status))throw new k(x.InvalidParams,`Cannot cancel task in terminal status: ${Y.status}`);await this._taskStore.updateTaskStatus(Q.params.taskId,\"cancelled\",\"Client cancelled task execution.\",$.sessionId),this._clearTaskQueue(Q.params.taskId);let W=await this._taskStore.getTask(Q.params.taskId,$.sessionId);if(!W)throw new k(x.InvalidParams,`Task not found after cancellation: ${Q.params.taskId}`);return{_meta:{},...W}}catch(Y){if(Y instanceof k)throw Y;throw new k(x.InvalidRequest,`Failed to cancel task: ${Y instanceof Error?Y.message:String(Y)}`)}})}async _oncancel(X){let Q=this._requestHandlerAbortControllers.get(X.params.requestId);Q===null||Q===void 0||Q.abort(X.params.reason)}_setupTimeout(X,Q,$,Y,W=!1){this._timeoutInfo.set(X,{timeoutId:setTimeout(Y,Q),startTime:Date.now(),timeout:Q,maxTotalTimeout:$,resetTimeoutOnProgress:W,onTimeout:Y})}_resetTimeout(X){let Q=this._timeoutInfo.get(X);if(!Q)return!1;let $=Date.now()-Q.startTime;if(Q.maxTotalTimeout&&$>=Q.maxTotalTimeout)throw this._timeoutInfo.delete(X),k.fromError(x.RequestTimeout,\"Maximum total timeout exceeded\",{maxTotalTimeout:Q.maxTotalTimeout,totalElapsed:$});return clearTimeout(Q.timeoutId),Q.timeoutId=setTimeout(Q.onTimeout,Q.timeout),!0}_cleanupTimeout(X){let Q=this._timeoutInfo.get(X);if(Q)clearTimeout(Q.timeoutId),this._timeoutInfo.delete(X)}async connect(X){var Q,$,Y;this._transport=X;let W=(Q=this.transport)===null||Q===void 0?void 0:Q.onclose;this._transport.onclose=()=>{W===null||W===void 0||W(),this._onclose()};let J=($=this.transport)===null||$===void 0?void 0:$.onerror;this._transport.onerror=(H)=>{J===null||J===void 0||J(H),this._onerror(H)};let G=(Y=this._transport)===null||Y===void 0?void 0:Y.onmessage;this._transport.onmessage=(H,B)=>{if(G===null||G===void 0||G(H,B),CX(H)||U5(H))this._onresponse(H);else if(Z$(H))this._onrequest(H,B);else if(B5(H))this._onnotification(H);else this._onerror(Error(`Unknown message type: ${JSON.stringify(H)}`))},await this._transport.start()}_onclose(){var X;let Q=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let $=k.fromError(x.ConnectionClosed,\"Connection closed\");this._transport=void 0,(X=this.onclose)===null||X===void 0||X.call(this);for(let Y of Q.values())Y($)}_onerror(X){var Q;(Q=this.onerror)===null||Q===void 0||Q.call(this,X)}_onnotification(X){var Q;let $=(Q=this._notificationHandlers.get(X.method))!==null&&Q!==void 0?Q:this.fallbackNotificationHandler;if($===void 0)return;Promise.resolve().then(()=>$(X)).catch((Y)=>this._onerror(Error(`Uncaught error in notification handler: ${Y}`)))}_onrequest(X,Q){var $,Y,W,J,G,H;let B=($=this._requestHandlers.get(X.method))!==null&&$!==void 0?$:this.fallbackRequestHandler,z=this._transport,K=(J=(W=(Y=X.params)===null||Y===void 0?void 0:Y._meta)===null||W===void 0?void 0:W[z1])===null||J===void 0?void 0:J.taskId;if(B===void 0){let q={jsonrpc:\"2.0\",id:X.id,error:{code:x.MethodNotFound,message:\"Method not found\"}};if(K&&this._taskMessageQueue)this._enqueueTaskMessage(K,{type:\"error\",message:q,timestamp:Date.now()},z===null||z===void 0?void 0:z.sessionId).catch((N)=>this._onerror(Error(`Failed to enqueue error response: ${N}`)));else z===null||z===void 0||z.send(q).catch((N)=>this._onerror(Error(`Failed to send an error response: ${N}`)));return}let V=new AbortController;this._requestHandlerAbortControllers.set(X.id,V);let L=(G=X.params)===null||G===void 0?void 0:G.task,U=this._taskStore?this.requestTaskStore(X,z===null||z===void 0?void 0:z.sessionId):void 0,F={signal:V.signal,sessionId:z===null||z===void 0?void 0:z.sessionId,_meta:(H=X.params)===null||H===void 0?void 0:H._meta,sendNotification:async(q)=>{let N={relatedRequestId:X.id};if(K)N.relatedTask={taskId:K};await this.notification(q,N)},sendRequest:async(q,N,w)=>{var M,R;let S={...w,relatedRequestId:X.id};if(K&&!S.relatedTask)S.relatedTask={taskId:K};let C=(R=(M=S.relatedTask)===null||M===void 0?void 0:M.taskId)!==null&&R!==void 0?R:K;if(C&&U)await U.updateTaskStatus(C,\"input_required\");return await this.request(q,N,S)},authInfo:Q===null||Q===void 0?void 0:Q.authInfo,requestId:X.id,requestInfo:Q===null||Q===void 0?void 0:Q.requestInfo,taskId:K,taskStore:U,taskRequestedTtl:L===null||L===void 0?void 0:L.ttl,closeSSEStream:Q===null||Q===void 0?void 0:Q.closeSSEStream,closeStandaloneSSEStream:Q===null||Q===void 0?void 0:Q.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(L)this.assertTaskHandlerCapability(X.method)}).then(()=>B(X,F)).then(async(q)=>{if(V.signal.aborted)return;let N={result:q,jsonrpc:\"2.0\",id:X.id};if(K&&this._taskMessageQueue)await this._enqueueTaskMessage(K,{type:\"response\",message:N,timestamp:Date.now()},z===null||z===void 0?void 0:z.sessionId);else await(z===null||z===void 0?void 0:z.send(N))},async(q)=>{var N;if(V.signal.aborted)return;let w={jsonrpc:\"2.0\",id:X.id,error:{code:Number.isSafeInteger(q.code)?q.code:x.InternalError,message:(N=q.message)!==null&&N!==void 0?N:\"Internal error\",...q.data!==void 0&&{data:q.data}}};if(K&&this._taskMessageQueue)await this._enqueueTaskMessage(K,{type:\"error\",message:w,timestamp:Date.now()},z===null||z===void 0?void 0:z.sessionId);else await(z===null||z===void 0?void 0:z.send(w))}).catch((q)=>this._onerror(Error(`Failed to send response: ${q}`))).finally(()=>{this._requestHandlerAbortControllers.delete(X.id)})}_onprogress(X){let{progressToken:Q,...$}=X.params,Y=Number(Q),W=this._progressHandlers.get(Y);if(!W){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(X)}`));return}let J=this._responseHandlers.get(Y),G=this._timeoutInfo.get(Y);if(G&&J&&G.resetTimeoutOnProgress)try{this._resetTimeout(Y)}catch(H){this._responseHandlers.delete(Y),this._progressHandlers.delete(Y),this._cleanupTimeout(Y),J(H);return}W($)}_onresponse(X){let Q=Number(X.id),$=this._requestResolvers.get(Q);if($){if(this._requestResolvers.delete(Q),CX(X))$(X);else{let J=new k(X.error.code,X.error.message,X.error.data);$(J)}return}let Y=this._responseHandlers.get(Q);if(Y===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(X)}`));return}this._responseHandlers.delete(Q),this._cleanupTimeout(Q);let W=!1;if(CX(X)&&X.result&&typeof X.result===\"object\"){let J=X.result;if(J.task&&typeof J.task===\"object\"){let G=J.task;if(typeof G.taskId===\"string\")W=!0,this._taskProgressTokens.set(G.taskId,Q)}}if(!W)this._progressHandlers.delete(Q);if(CX(X))Y(X);else{let J=k.fromError(X.error.code,X.error.message,X.error.data);Y(J)}}get transport(){return this._transport}async close(){var X;await((X=this._transport)===null||X===void 0?void 0:X.close())}async*requestStream(X,Q,$){var Y,W,J,G;let{task:H}=$!==null&&$!==void 0?$:{};if(!H){try{yield{type:\"result\",result:await this.request(X,Q,$)}}catch(z){yield{type:\"error\",error:z instanceof k?z:new k(x.InternalError,String(z))}}return}let B;try{let z=await this.request(X,_6,$);if(z.task)B=z.task.taskId,yield{type:\"taskCreated\",task:z.task};else throw new k(x.InternalError,\"Task creation did not return a task\");while(!0){let K=await this.getTask({taskId:B},$);if(yield{type:\"taskStatus\",task:K},u1(K.status)){if(K.status===\"completed\")yield{type:\"result\",result:await this.getTaskResult({taskId:B},Q,$)};else if(K.status===\"failed\")yield{type:\"error\",error:new k(x.InternalError,`Task ${B} failed`)};else if(K.status===\"cancelled\")yield{type:\"error\",error:new k(x.InternalError,`Task ${B} was cancelled`)};return}if(K.status===\"input_required\"){yield{type:\"result\",result:await this.getTaskResult({taskId:B},Q,$)};return}let V=(J=(Y=K.pollInterval)!==null&&Y!==void 0?Y:(W=this._options)===null||W===void 0?void 0:W.defaultTaskPollInterval)!==null&&J!==void 0?J:1000;await new Promise((L)=>setTimeout(L,V)),(G=$===null||$===void 0?void 0:$.signal)===null||G===void 0||G.throwIfAborted()}}catch(z){yield{type:\"error\",error:z instanceof k?z:new k(x.InternalError,String(z))}}}request(X,Q,$){let{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:J,task:G,relatedTask:H}=$!==null&&$!==void 0?$:{};return new Promise((B,z)=>{var K,V,L,U,F,q,N;let w=(s)=>{z(s)};if(!this._transport){w(Error(\"Not connected\"));return}if(((K=this._options)===null||K===void 0?void 0:K.enforceStrictCapabilities)===!0)try{if(this.assertCapabilityForMethod(X.method),G)this.assertTaskCapability(X.method)}catch(s){w(s);return}(V=$===null||$===void 0?void 0:$.signal)===null||V===void 0||V.throwIfAborted();let M=this._requestMessageId++,R={...X,jsonrpc:\"2.0\",id:M};if($===null||$===void 0?void 0:$.onprogress)this._progressHandlers.set(M,$.onprogress),R.params={...X.params,_meta:{...((L=X.params)===null||L===void 0?void 0:L._meta)||{},progressToken:M}};if(G)R.params={...R.params,task:G};if(H)R.params={...R.params,_meta:{...((U=R.params)===null||U===void 0?void 0:U._meta)||{},[z1]:H}};let S=(s)=>{var D0;this._responseHandlers.delete(M),this._progressHandlers.delete(M),this._cleanupTimeout(M),(D0=this._transport)===null||D0===void 0||D0.send({jsonrpc:\"2.0\",method:\"notifications/cancelled\",params:{requestId:M,reason:String(s)}},{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:J}).catch((L1)=>this._onerror(Error(`Failed to send cancellation: ${L1}`)));let q0=s instanceof k?s:new k(x.RequestTimeout,String(s));z(q0)};this._responseHandlers.set(M,(s)=>{var D0;if((D0=$===null||$===void 0?void 0:$.signal)===null||D0===void 0?void 0:D0.aborted)return;if(s instanceof Error)return z(s);try{let q0=f1(Q,s.result);if(!q0.success)z(q0.error);else B(q0.data)}catch(q0){z(q0)}}),(F=$===null||$===void 0?void 0:$.signal)===null||F===void 0||F.addEventListener(\"abort\",()=>{var s;S((s=$===null||$===void 0?void 0:$.signal)===null||s===void 0?void 0:s.reason)});let C=(q=$===null||$===void 0?void 0:$.timeout)!==null&&q!==void 0?q:NN,K0=()=>S(k.fromError(x.RequestTimeout,\"Request timed out\",{timeout:C}));this._setupTimeout(M,C,$===null||$===void 0?void 0:$.maxTotalTimeout,K0,(N=$===null||$===void 0?void 0:$.resetTimeoutOnProgress)!==null&&N!==void 0?N:!1);let U0=H===null||H===void 0?void 0:H.taskId;if(U0){let s=(D0)=>{let q0=this._responseHandlers.get(M);if(q0)q0(D0);else this._onerror(Error(`Response handler missing for side-channeled request ${M}`))};this._requestResolvers.set(M,s),this._enqueueTaskMessage(U0,{type:\"request\",message:R,timestamp:Date.now()}).catch((D0)=>{this._cleanupTimeout(M),z(D0)})}else this._transport.send(R,{relatedRequestId:Y,resumptionToken:W,onresumptiontoken:J}).catch((s)=>{this._cleanupTimeout(M),z(s)})})}async getTask(X,Q){return this.request({method:\"tasks/get\",params:X},Q8,Q)}async getTaskResult(X,Q,$){return this.request({method:\"tasks/result\",params:X},Q,$)}async listTasks(X,Q){return this.request({method:\"tasks/list\",params:X},W8,Q)}async cancelTask(X,Q){return this.request({method:\"tasks/cancel\",params:X},q5,Q)}async notification(X,Q){var $,Y,W,J,G;if(!this._transport)throw Error(\"Not connected\");this.assertNotificationCapability(X.method);let H=($=Q===null||Q===void 0?void 0:Q.relatedTask)===null||$===void 0?void 0:$.taskId;if(H){let V={...X,jsonrpc:\"2.0\",params:{...X.params,_meta:{...((Y=X.params)===null||Y===void 0?void 0:Y._meta)||{},[z1]:Q.relatedTask}}};await this._enqueueTaskMessage(H,{type:\"notification\",message:V,timestamp:Date.now()});return}if(((J=(W=this._options)===null||W===void 0?void 0:W.debouncedNotificationMethods)!==null&&J!==void 0?J:[]).includes(X.method)&&!X.params&&!(Q===null||Q===void 0?void 0:Q.relatedRequestId)&&!(Q===null||Q===void 0?void 0:Q.relatedTask)){if(this._pendingDebouncedNotifications.has(X.method))return;this._pendingDebouncedNotifications.add(X.method),Promise.resolve().then(()=>{var V,L;if(this._pendingDebouncedNotifications.delete(X.method),!this._transport)return;let U={...X,jsonrpc:\"2.0\"};if(Q===null||Q===void 0?void 0:Q.relatedTask)U={...U,params:{...U.params,_meta:{...((V=U.params)===null||V===void 0?void 0:V._meta)||{},[z1]:Q.relatedTask}}};(L=this._transport)===null||L===void 0||L.send(U,Q).catch((F)=>this._onerror(F))});return}let K={...X,jsonrpc:\"2.0\"};if(Q===null||Q===void 0?void 0:Q.relatedTask)K={...K,params:{...K.params,_meta:{...((G=K.params)===null||G===void 0?void 0:G._meta)||{},[z1]:Q.relatedTask}}};await this._transport.send(K,Q)}setRequestHandler(X,Q){let $=r$(X);this.assertRequestHandlerCapability($),this._requestHandlers.set($,(Y,W)=>{let J=o$(X,Y);return Promise.resolve(Q(J,W))})}removeRequestHandler(X){this._requestHandlers.delete(X)}assertCanSetRequestHandler(X){if(this._requestHandlers.has(X))throw Error(`A request handler for ${X} already exists, which would be overridden`)}setNotificationHandler(X,Q){let $=r$(X);this._notificationHandlers.set($,(Y)=>{let W=o$(X,Y);return Promise.resolve(Q(W))})}removeNotificationHandler(X){this._notificationHandlers.delete(X)}_cleanupTaskProgressHandler(X){let Q=this._taskProgressTokens.get(X);if(Q!==void 0)this._progressHandlers.delete(Q),this._taskProgressTokens.delete(X)}async _enqueueTaskMessage(X,Q,$){var Y;if(!this._taskStore||!this._taskMessageQueue)throw Error(\"Cannot enqueue task message: taskStore and taskMessageQueue are not configured\");let W=(Y=this._options)===null||Y===void 0?void 0:Y.maxTaskQueueSize;await this._taskMessageQueue.enqueue(X,Q,$,W)}async _clearTaskQueue(X,Q){if(this._taskMessageQueue){let $=await this._taskMessageQueue.dequeueAll(X,Q);for(let Y of $)if(Y.type===\"request\"&&Z$(Y.message)){let W=Y.message.id,J=this._requestResolvers.get(W);if(J)J(new k(x.InternalError,\"Task cancelled or completed\")),this._requestResolvers.delete(W);else this._onerror(Error(`Resolver missing for request ${W} during task ${X} cleanup`))}}}async _waitForTaskUpdate(X,Q){var $,Y,W;let J=(Y=($=this._options)===null||$===void 0?void 0:$.defaultTaskPollInterval)!==null&&Y!==void 0?Y:1000;try{let G=await((W=this._taskStore)===null||W===void 0?void 0:W.getTask(X));if(G===null||G===void 0?void 0:G.pollInterval)J=G.pollInterval}catch(G){}return new Promise((G,H)=>{if(Q.aborted){H(new k(x.InvalidRequest,\"Request cancelled\"));return}let B=setTimeout(G,J);Q.addEventListener(\"abort\",()=>{clearTimeout(B),H(new k(x.InvalidRequest,\"Request cancelled\"))},{once:!0})})}requestTaskStore(X,Q){let $=this._taskStore;if(!$)throw Error(\"No task store configured\");return{createTask:async(Y)=>{if(!X)throw Error(\"No request provided\");return await $.createTask(Y,X.id,{method:X.method,params:X.params},Q)},getTask:async(Y)=>{let W=await $.getTask(Y,Q);if(!W)throw new k(x.InvalidParams,\"Failed to retrieve task: Task not found\");return W},storeTaskResult:async(Y,W,J)=>{await $.storeTaskResult(Y,W,J,Q);let G=await $.getTask(Y,Q);if(G){let H=xX.parse({method:\"notifications/tasks/status\",params:G});if(await this.notification(H),u1(G.status))this._cleanupTaskProgressHandler(Y)}},getTaskResult:(Y)=>{return $.getTaskResult(Y,Q)},updateTaskStatus:async(Y,W,J)=>{let G=await $.getTask(Y,Q);if(!G)throw new k(x.InvalidParams,`Task \"${Y}\" not found - it may have been cleaned up`);if(u1(G.status))throw new k(x.InvalidParams,`Cannot update task \"${Y}\" from terminal status \"${G.status}\" to \"${W}\". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await $.updateTaskStatus(Y,W,J,Q);let H=await $.getTask(Y,Q);if(H){let B=xX.parse({method:\"notifications/tasks/status\",params:H});if(await this.notification(B),u1(H.status))this._cleanupTaskProgressHandler(Y)}},listTasks:(Y)=>{return $.listTasks(Y,Q)}}}}function QG(X){return X!==null&&typeof X===\"object\"&&!Array.isArray(X)}function $G(X,Q){let $={...X};for(let Y in Q){let W=Y,J=Q[W];if(J===void 0)continue;let G=$[W];if(QG(G)&&QG(J))$[W]={...G,...J};else $[W]=J}return $}var hz=K7(cY(),1),uz=K7(fz(),1);function II(){let X=new hz.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return uz.default(X),X}class eY{constructor(X){this._ajv=X!==null&&X!==void 0?X:II()}getValidator(X){var Q;let $=\"$id\"in X&&typeof X.$id===\"string\"?(Q=this._ajv.getSchema(X.$id))!==null&&Q!==void 0?Q:this._ajv.compile(X):this._ajv.compile(X);return(Y)=>{if($(Y))return{valid:!0,data:Y,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText($.errors)}}}}class X7{constructor(X){this._server=X}requestStream(X,Q,$){return this._server.requestStream(X,Q,$)}async getTask(X,Q){return this._server.getTask({taskId:X},Q)}async getTaskResult(X,Q,$){return this._server.getTaskResult({taskId:X},Q,$)}async listTasks(X,Q){return this._server.listTasks(X?{cursor:X}:void 0,Q)}async cancelTask(X,Q){return this._server.cancelTask({taskId:X},Q)}}function lz(X,Q,$){var Y;if(!X)throw Error(`${$} does not support task creation (required for ${Q})`);switch(Q){case\"tools/call\":if(!((Y=X.tools)===null||Y===void 0?void 0:Y.call))throw Error(`${$} does not support task creation for tools/call (required for ${Q})`);break;default:break}}function mz(X,Q,$){var Y,W;if(!X)throw Error(`${$} does not support task creation (required for ${Q})`);switch(Q){case\"sampling/createMessage\":if(!((Y=X.sampling)===null||Y===void 0?void 0:Y.createMessage))throw Error(`${$} does not support task creation for sampling/createMessage (required for ${Q})`);break;case\"elicitation/create\":if(!((W=X.elicitation)===null||W===void 0?void 0:W.create))throw Error(`${$} does not support task creation for elicitation/create (required for ${Q})`);break;default:break}}class Q7 extends t${constructor(X,Q){var $,Y;super(Q);if(this._serverInfo=X,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(yX.options.map((W,J)=>[W,J])),this.isMessageIgnored=(W,J)=>{let G=this._loggingLevels.get(J);return G?this.LOG_LEVEL_SEVERITY.get(W)<this.LOG_LEVEL_SEVERITY.get(G):!1},this._capabilities=($=Q===null||Q===void 0?void 0:Q.capabilities)!==null&&$!==void 0?$:{},this._instructions=Q===null||Q===void 0?void 0:Q.instructions,this._jsonSchemaValidator=(Y=Q===null||Q===void 0?void 0:Q.jsonSchemaValidator)!==null&&Y!==void 0?Y:new eY,this.setRequestHandler(C$,(W)=>this._oninitialize(W)),this.setNotificationHandler(k$,()=>{var W;return(W=this.oninitialized)===null||W===void 0?void 0:W.call(this)}),this._capabilities.logging)this.setRequestHandler(f$,async(W,J)=>{var G;let H=J.sessionId||((G=J.requestInfo)===null||G===void 0?void 0:G.headers[\"mcp-session-id\"])||void 0,{level:B}=W.params,z=yX.safeParse(B);if(z.success)this._loggingLevels.set(H,z.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new X7(this)};return this._experimental}registerCapabilities(X){if(this.transport)throw Error(\"Cannot register capabilities after connecting to transport\");this._capabilities=$G(this._capabilities,X)}setRequestHandler(X,Q){var $,Y,W;let J=h1(X),G=J===null||J===void 0?void 0:J.method;if(!G)throw Error(\"Schema is missing a method literal\");let H;if(m0(G)){let z=G,K=($=z._zod)===null||$===void 0?void 0:$.def;H=(Y=K===null||K===void 0?void 0:K.value)!==null&&Y!==void 0?Y:z.value}else{let z=G,K=z._def;H=(W=K===null||K===void 0?void 0:K.value)!==null&&W!==void 0?W:z.value}if(typeof H!==\"string\")throw Error(\"Schema method literal must be a string\");if(H===\"tools/call\"){let z=async(K,V)=>{let L=f1(y6,K);if(!L.success){let N=L.error instanceof Error?L.error.message:String(L.error);throw new k(x.InvalidParams,`Invalid tools/call request: ${N}`)}let{params:U}=L.data,F=await Promise.resolve(Q(K,V));if(U.task){let N=f1(_6,F);if(!N.success){let w=N.error instanceof Error?N.error.message:String(N.error);throw new k(x.InvalidParams,`Invalid task creation result: ${w}`)}return N.data}let q=f1(U8,F);if(!q.success){let N=q.error instanceof Error?q.error.message:String(q.error);throw new k(x.InvalidParams,`Invalid tools/call result: ${N}`)}return q.data};return super.setRequestHandler(X,z)}return super.setRequestHandler(X,Q)}assertCapabilityForMethod(X){var Q,$,Y;switch(X){case\"sampling/createMessage\":if(!((Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.sampling))throw Error(`Client does not support sampling (required for ${X})`);break;case\"elicitation/create\":if(!(($=this._clientCapabilities)===null||$===void 0?void 0:$.elicitation))throw Error(`Client does not support elicitation (required for ${X})`);break;case\"roots/list\":if(!((Y=this._clientCapabilities)===null||Y===void 0?void 0:Y.roots))throw Error(`Client does not support listing roots (required for ${X})`);break;case\"ping\":break}}assertNotificationCapability(X){var Q,$;switch(X){case\"notifications/message\":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${X})`);break;case\"notifications/resources/updated\":case\"notifications/resources/list_changed\":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${X})`);break;case\"notifications/tools/list_changed\":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${X})`);break;case\"notifications/prompts/list_changed\":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${X})`);break;case\"notifications/elicitation/complete\":if(!(($=(Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.elicitation)===null||$===void 0?void 0:$.url))throw Error(`Client does not support URL elicitation (required for ${X})`);break;case\"notifications/cancelled\":break;case\"notifications/progress\":break}}assertRequestHandlerCapability(X){if(!this._capabilities)return;switch(X){case\"completion/complete\":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${X})`);break;case\"logging/setLevel\":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${X})`);break;case\"prompts/get\":case\"prompts/list\":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${X})`);break;case\"resources/list\":case\"resources/templates/list\":case\"resources/read\":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${X})`);break;case\"tools/call\":case\"tools/list\":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${X})`);break;case\"tasks/get\":case\"tasks/list\":case\"tasks/result\":case\"tasks/cancel\":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${X})`);break;case\"ping\":case\"initialize\":break}}assertTaskCapability(X){var Q,$;mz(($=(Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.tasks)===null||$===void 0?void 0:$.requests,X,\"Client\")}assertTaskHandlerCapability(X){var Q;if(!this._capabilities)return;lz((Q=this._capabilities.tasks)===null||Q===void 0?void 0:Q.requests,X,\"Server\")}async _oninitialize(X){let Q=X.params.protocolVersion;return this._clientCapabilities=X.params.capabilities,this._clientVersion=X.params.clientInfo,{protocolVersion:Y5.includes(Q)?Q:P$,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:\"ping\"},t4)}async createMessage(X,Q){var $,Y;if(X.tools||X.toolChoice){if(!((Y=($=this._clientCapabilities)===null||$===void 0?void 0:$.sampling)===null||Y===void 0?void 0:Y.tools))throw Error(\"Client does not support sampling tools capability.\")}if(X.messages.length>0){let W=X.messages[X.messages.length-1],J=Array.isArray(W.content)?W.content:[W.content],G=J.some((K)=>K.type===\"tool_result\"),H=X.messages.length>1?X.messages[X.messages.length-2]:void 0,B=H?Array.isArray(H.content)?H.content:[H.content]:[],z=B.some((K)=>K.type===\"tool_use\");if(G){if(J.some((K)=>K.type!==\"tool_result\"))throw Error(\"The last message must contain only tool_result content if any is present\");if(!z)throw Error(\"tool_result blocks are not matching any tool_use from the previous message\")}if(z){let K=new Set(B.filter((L)=>L.type===\"tool_use\").map((L)=>L.id)),V=new Set(J.filter((L)=>L.type===\"tool_result\").map((L)=>L.toolUseId));if(K.size!==V.size||![...K].every((L)=>V.has(L)))throw Error(\"ids of tool_result blocks and tool_use blocks from previous message do not match\")}}if(X.tools)return this.request({method:\"sampling/createMessage\",params:X},u$,Q);return this.request({method:\"sampling/createMessage\",params:X},h$,Q)}async elicitInput(X,Q){var $,Y,W,J,G;switch(($=X.mode)!==null&&$!==void 0?$:\"form\"){case\"url\":{if(!((W=(Y=this._clientCapabilities)===null||Y===void 0?void 0:Y.elicitation)===null||W===void 0?void 0:W.url))throw Error(\"Client does not support url elicitation.\");let B=X;return this.request({method:\"elicitation/create\",params:B},V8,Q)}case\"form\":{if(!((G=(J=this._clientCapabilities)===null||J===void 0?void 0:J.elicitation)===null||G===void 0?void 0:G.form))throw Error(\"Client does not support form elicitation.\");let B=X.mode===\"form\"?X:{...X,mode:\"form\"},z=await this.request({method:\"elicitation/create\",params:B},V8,Q);if(z.action===\"accept\"&&z.content&&B.requestedSchema)try{let V=this._jsonSchemaValidator.getValidator(B.requestedSchema)(z.content);if(!V.valid)throw new k(x.InvalidParams,`Elicitation response content does not match requested schema: ${V.errorMessage}`)}catch(K){if(K instanceof k)throw K;throw new k(x.InternalError,`Error validating elicitation response: ${K instanceof Error?K.message:String(K)}`)}return z}}}createElicitationCompletionNotifier(X,Q){var $,Y;if(!((Y=($=this._clientCapabilities)===null||$===void 0?void 0:$.elicitation)===null||Y===void 0?void 0:Y.url))throw Error(\"Client does not support URL elicitation (required for notifications/elicitation/complete)\");return()=>this.notification({method:\"notifications/elicitation/complete\",params:{elicitationId:X}},Q)}async listRoots(X,Q){return this.request({method:\"roots/list\",params:X},l$,Q)}async sendLoggingMessage(X,Q){if(this._capabilities.logging){if(!this.isMessageIgnored(X.level,Q))return this.notification({method:\"notifications/message\",params:X})}}async sendResourceUpdated(X){return this.notification({method:\"notifications/resources/updated\",params:X})}async sendResourceListChanged(){return this.notification({method:\"notifications/resources/list_changed\"})}async sendToolListChanged(){return this.notification({method:\"notifications/tools/list_changed\"})}async sendPromptListChanged(){return this.notification({method:\"notifications/prompts/list_changed\"})}}var pz=Symbol.for(\"mcp.completable\");function dz(X){return!!X&&typeof X===\"object\"&&pz in X}function iz(X){let Q=X[pz];return Q===null||Q===void 0?void 0:Q.complete}var cz;(function(X){X.Completable=\"McpCompletable\"})(cz||(cz={}));var EI=/^[A-Za-z0-9._-]{1,128}$/;function bI(X){let Q=[];if(X.length===0)return{isValid:!1,warnings:[\"Tool name cannot be empty\"]};if(X.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${X.length})`]};if(X.includes(\" \"))Q.push(\"Tool name contains spaces, which may cause parsing issues\");if(X.includes(\",\"))Q.push(\"Tool name contains commas, which may cause parsing issues\");if(X.startsWith(\"-\")||X.endsWith(\"-\"))Q.push(\"Tool name starts or ends with a dash, which may cause parsing issues in some contexts\");if(X.startsWith(\".\")||X.endsWith(\".\"))Q.push(\"Tool name starts or ends with a dot, which may cause parsing issues in some contexts\");if(!EI.test(X)){let $=X.split(\"\").filter((Y)=>!/[A-Za-z0-9._-]/.test(Y)).filter((Y,W,J)=>J.indexOf(Y)===W);return Q.push(`Tool name contains invalid characters: ${$.map((Y)=>`\"${Y}\"`).join(\", \")}`,\"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)\"),{isValid:!1,warnings:Q}}return{isValid:!0,warnings:Q}}function PI(X,Q){if(Q.length>0){console.warn(`Tool name validation warning for \"${X}\":`);for(let $ of Q)console.warn(` - ${$}`);console.warn(\"Tool registration will proceed, but this may cause compatibility issues.\"),console.warn(\"Consider updating the tool name to conform to the MCP tool naming standard.\"),console.warn(\"See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.\")}}function $7(X){let Q=bI(X);return PI(X,Q.warnings),Q.isValid}class Y7{constructor(X){this._mcpServer=X}registerToolTask(X,Q,$){let Y={taskSupport:\"required\",...Q.execution};if(Y.taskSupport===\"forbidden\")throw Error(`Cannot register task-based tool '${X}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(X,Q.title,Q.description,Q.inputSchema,Q.outputSchema,Q.annotations,Y,Q._meta,$)}}class J7{constructor(X,Q){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new Q7(X,Q)}get experimental(){if(!this._experimental)this._experimental={tasks:new Y7(this)};return this._experimental}async connect(X){return await this.server.connect(X)}async close(){await this.server.close()}setToolRequestHandlers(){if(this._toolHandlersInitialized)return;this.server.assertCanSetRequestHandler(r1(K8)),this.server.assertCanSetRequestHandler(r1(y6)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(K8,()=>({tools:Object.entries(this._registeredTools).filter(([,X])=>X.enabled).map(([X,Q])=>{let $={name:X,title:Q.title,description:Q.description,inputSchema:(()=>{let Y=v6(Q.inputSchema);return Y?n$(Y,{strictUnions:!0,pipeStrategy:\"input\"}):SI})(),annotations:Q.annotations,execution:Q.execution,_meta:Q._meta};if(Q.outputSchema){let Y=v6(Q.outputSchema);if(Y)$.outputSchema=n$(Y,{strictUnions:!0,pipeStrategy:\"output\"})}return $})})),this.server.setRequestHandler(y6,async(X,Q)=>{var $;try{let Y=this._registeredTools[X.params.name];if(!Y)throw new k(x.InvalidParams,`Tool ${X.params.name} not found`);if(!Y.enabled)throw new k(x.InvalidParams,`Tool ${X.params.name} disabled`);let W=!!X.params.task,J=($=Y.execution)===null||$===void 0?void 0:$.taskSupport,G=\"createTask\"in Y.handler;if((J===\"required\"||J===\"optional\")&&!G)throw new k(x.InternalError,`Tool ${X.params.name} has taskSupport '${J}' but was not registered with registerToolTask`);if(J===\"required\"&&!W)throw new k(x.MethodNotFound,`Tool ${X.params.name} requires task augmentation (taskSupport: 'required')`);if(J===\"optional\"&&!W&&G)return await this.handleAutomaticTaskPolling(Y,X,Q);let H=await this.validateToolInput(Y,X.params.arguments,X.params.name),B=await this.executeToolHandler(Y,H,Q);if(W)return B;return await this.validateToolOutput(Y,B,X.params.name),B}catch(Y){if(Y instanceof k){if(Y.code===x.UrlElicitationRequired)throw Y}return this.createToolError(Y instanceof Error?Y.message:String(Y))}}),this._toolHandlersInitialized=!0}createToolError(X){return{content:[{type:\"text\",text:X}],isError:!0}}async validateToolInput(X,Q,$){if(!X.inputSchema)return;let Y=v6(X.inputSchema),W=Y!==null&&Y!==void 0?Y:X.inputSchema,J=await m4(W,Q);if(!J.success){let G=\"error\"in J?J.error:\"Unknown error\",H=c4(G);throw new k(x.InvalidParams,`Input validation error: Invalid arguments for tool ${$}: ${H}`)}return J.data}async validateToolOutput(X,Q,$){if(!X.outputSchema)return;if(!(\"content\"in Q))return;if(Q.isError)return;if(!Q.structuredContent)throw new k(x.InvalidParams,`Output validation error: Tool ${$} has an output schema but no structured content was provided`);let Y=v6(X.outputSchema),W=await m4(Y,Q.structuredContent);if(!W.success){let J=\"error\"in W?W.error:\"Unknown error\",G=c4(J);throw new k(x.InvalidParams,`Output validation error: Invalid structured content for tool ${$}: ${G}`)}}async executeToolHandler(X,Q,$){let Y=X.handler;if(\"createTask\"in Y){if(!$.taskStore)throw Error(\"No task store provided.\");let J={...$,taskStore:$.taskStore};if(X.inputSchema)return await Promise.resolve(Y.createTask(Q,J));else return await Promise.resolve(Y.createTask(J))}if(X.inputSchema)return await Promise.resolve(Y(Q,$));else return await Promise.resolve(Y($))}async handleAutomaticTaskPolling(X,Q,$){var Y;if(!$.taskStore)throw Error(\"No task store provided for task-capable tool.\");let W=await this.validateToolInput(X,Q.params.arguments,Q.params.name),J=X.handler,G={...$,taskStore:$.taskStore},H=W?await Promise.resolve(J.createTask(W,G)):await Promise.resolve(J.createTask(G)),B=H.task.taskId,z=H.task,K=(Y=z.pollInterval)!==null&&Y!==void 0?Y:5000;while(z.status!==\"completed\"&&z.status!==\"failed\"&&z.status!==\"cancelled\"){await new Promise((L)=>setTimeout(L,K));let V=await $.taskStore.getTask(B);if(!V)throw new k(x.InternalError,`Task ${B} not found during polling`);z=V}return await $.taskStore.getTaskResult(B)}setCompletionRequestHandler(){if(this._completionHandlerInitialized)return;this.server.assertCanSetRequestHandler(r1(L8)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(L8,async(X)=>{switch(X.params.ref.type){case\"ref/prompt\":return A5(X),this.handlePromptCompletion(X,X.params.ref);case\"ref/resource\":return M5(X),this.handleResourceCompletion(X,X.params.ref);default:throw new k(x.InvalidParams,`Invalid completion reference: ${X.params.ref}`)}}),this._completionHandlerInitialized=!0}async handlePromptCompletion(X,Q){let $=this._registeredPrompts[Q.name];if(!$)throw new k(x.InvalidParams,`Prompt ${Q.name} not found`);if(!$.enabled)throw new k(x.InvalidParams,`Prompt ${Q.name} disabled`);if(!$.argsSchema)return H4;let Y=h1($.argsSchema),W=Y===null||Y===void 0?void 0:Y[X.params.argument.name];if(!dz(W))return H4;let J=iz(W);if(!J)return H4;let G=await J(X.params.argument.value,X.params.context);return rz(G)}async handleResourceCompletion(X,Q){let $=Object.values(this._registeredResourceTemplates).find((J)=>J.resourceTemplate.uriTemplate.toString()===Q.uri);if(!$){if(this._registeredResources[Q.uri])return H4;throw new k(x.InvalidParams,`Resource template ${X.params.ref.uri} not found`)}let Y=$.resourceTemplate.completeCallback(X.params.argument.name);if(!Y)return H4;let W=await Y(X.params.argument.value,X.params.context);return rz(W)}setResourceRequestHandlers(){if(this._resourceHandlersInitialized)return;this.server.assertCanSetRequestHandler(r1(J8)),this.server.assertCanSetRequestHandler(r1(G8)),this.server.assertCanSetRequestHandler(r1(H8)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(J8,async(X,Q)=>{let $=Object.entries(this._registeredResources).filter(([W,J])=>J.enabled).map(([W,J])=>({uri:W,name:J.name,...J.metadata})),Y=[];for(let W of Object.values(this._registeredResourceTemplates)){if(!W.resourceTemplate.listCallback)continue;let J=await W.resourceTemplate.listCallback(Q);for(let G of J.resources)Y.push({...W.metadata,...G})}return{resources:[...$,...Y]}}),this.server.setRequestHandler(G8,async()=>{return{resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([Q,$])=>({name:Q,uriTemplate:$.resourceTemplate.uriTemplate.toString(),...$.metadata}))}}),this.server.setRequestHandler(H8,async(X,Q)=>{let $=new URL(X.params.uri),Y=this._registeredResources[$.toString()];if(Y){if(!Y.enabled)throw new k(x.InvalidParams,`Resource ${$} disabled`);return Y.readCallback($,Q)}for(let W of Object.values(this._registeredResourceTemplates)){let J=W.resourceTemplate.uriTemplate.match($.toString());if(J)return W.readCallback($,J,Q)}throw new k(x.InvalidParams,`Resource ${$} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0}setPromptRequestHandlers(){if(this._promptHandlersInitialized)return;this.server.assertCanSetRequestHandler(r1(B8)),this.server.assertCanSetRequestHandler(r1(z8)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(B8,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,X])=>X.enabled).map(([X,Q])=>{return{name:X,title:Q.title,description:Q.description,arguments:Q.argsSchema?CI(Q.argsSchema):void 0}})})),this.server.setRequestHandler(z8,async(X,Q)=>{let $=this._registeredPrompts[X.params.name];if(!$)throw new k(x.InvalidParams,`Prompt ${X.params.name} not found`);if(!$.enabled)throw new k(x.InvalidParams,`Prompt ${X.params.name} disabled`);if($.argsSchema){let Y=v6($.argsSchema),W=await m4(Y,X.params.arguments);if(!W.success){let H=\"error\"in W?W.error:\"Unknown error\",B=c4(H);throw new k(x.InvalidParams,`Invalid arguments for prompt ${X.params.name}: ${B}`)}let J=W.data,G=$.callback;return await Promise.resolve(G(J,Q))}else{let Y=$.callback;return await Promise.resolve(Y(Q))}}),this.setCompletionRequestHandler(),this._promptHandlersInitialized=!0}resource(X,Q,...$){let Y;if(typeof $[0]===\"object\")Y=$.shift();let W=$[0];if(typeof Q===\"string\"){if(this._registeredResources[Q])throw Error(`Resource ${Q} is already registered`);let J=this._createRegisteredResource(X,void 0,Q,Y,W);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),J}else{if(this._registeredResourceTemplates[X])throw Error(`Resource template ${X} is already registered`);let J=this._createRegisteredResourceTemplate(X,void 0,Q,Y,W);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),J}}registerResource(X,Q,$,Y){if(typeof Q===\"string\"){if(this._registeredResources[Q])throw Error(`Resource ${Q} is already registered`);let W=this._createRegisteredResource(X,$.title,Q,$,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),W}else{if(this._registeredResourceTemplates[X])throw Error(`Resource template ${X} is already registered`);let W=this._createRegisteredResourceTemplate(X,$.title,Q,$,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),W}}_createRegisteredResource(X,Q,$,Y,W){let J={name:X,title:Q,metadata:Y,readCallback:W,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({uri:null}),update:(G)=>{if(typeof G.uri<\"u\"&&G.uri!==$){if(delete this._registeredResources[$],G.uri)this._registeredResources[G.uri]=J}if(typeof G.name<\"u\")J.name=G.name;if(typeof G.title<\"u\")J.title=G.title;if(typeof G.metadata<\"u\")J.metadata=G.metadata;if(typeof G.callback<\"u\")J.readCallback=G.callback;if(typeof G.enabled<\"u\")J.enabled=G.enabled;this.sendResourceListChanged()}};return this._registeredResources[$]=J,J}_createRegisteredResourceTemplate(X,Q,$,Y,W){let J={resourceTemplate:$,title:Q,metadata:Y,readCallback:W,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({name:null}),update:(G)=>{if(typeof G.name<\"u\"&&G.name!==X){if(delete this._registeredResourceTemplates[X],G.name)this._registeredResourceTemplates[G.name]=J}if(typeof G.title<\"u\")J.title=G.title;if(typeof G.template<\"u\")J.resourceTemplate=G.template;if(typeof G.metadata<\"u\")J.metadata=G.metadata;if(typeof G.callback<\"u\")J.readCallback=G.callback;if(typeof G.enabled<\"u\")J.enabled=G.enabled;this.sendResourceListChanged()}};return this._registeredResourceTemplates[X]=J,J}_createRegisteredPrompt(X,Q,$,Y,W){let J={title:Q,description:$,argsSchema:Y===void 0?void 0:k6(Y),callback:W,enabled:!0,disable:()=>J.update({enabled:!1}),enable:()=>J.update({enabled:!0}),remove:()=>J.update({name:null}),update:(G)=>{if(typeof G.name<\"u\"&&G.name!==X){if(delete this._registeredPrompts[X],G.name)this._registeredPrompts[G.name]=J}if(typeof G.title<\"u\")J.title=G.title;if(typeof G.description<\"u\")J.description=G.description;if(typeof G.argsSchema<\"u\")J.argsSchema=k6(G.argsSchema);if(typeof G.callback<\"u\")J.callback=G.callback;if(typeof G.enabled<\"u\")J.enabled=G.enabled;this.sendPromptListChanged()}};return this._registeredPrompts[X]=J,J}_createRegisteredTool(X,Q,$,Y,W,J,G,H,B){$7(X);let z={title:Q,description:$,inputSchema:nz(Y),outputSchema:nz(W),annotations:J,execution:G,_meta:H,handler:B,enabled:!0,disable:()=>z.update({enabled:!1}),enable:()=>z.update({enabled:!0}),remove:()=>z.update({name:null}),update:(K)=>{if(typeof K.name<\"u\"&&K.name!==X){if(typeof K.name===\"string\")$7(K.name);if(delete this._registeredTools[X],K.name)this._registeredTools[K.name]=z}if(typeof K.title<\"u\")z.title=K.title;if(typeof K.description<\"u\")z.description=K.description;if(typeof K.paramsSchema<\"u\")z.inputSchema=k6(K.paramsSchema);if(typeof K.callback<\"u\")z.handler=K.callback;if(typeof K.annotations<\"u\")z.annotations=K.annotations;if(typeof K._meta<\"u\")z._meta=K._meta;if(typeof K.enabled<\"u\")z.enabled=K.enabled;this.sendToolListChanged()}};return this._registeredTools[X]=z,this.setToolRequestHandlers(),this.sendToolListChanged(),z}tool(X,...Q){if(this._registeredTools[X])throw Error(`Tool ${X} is already registered`);let $,Y,W,J;if(typeof Q[0]===\"string\")$=Q.shift();if(Q.length>1){let H=Q[0];if(W7(H)){if(Y=Q.shift(),Q.length>1&&typeof Q[0]===\"object\"&&Q[0]!==null&&!W7(Q[0]))J=Q.shift()}else if(typeof H===\"object\"&&H!==null)J=Q.shift()}let G=Q[0];return this._createRegisteredTool(X,void 0,$,Y,W,J,{taskSupport:\"forbidden\"},void 0,G)}registerTool(X,Q,$){if(this._registeredTools[X])throw Error(`Tool ${X} is already registered`);let{title:Y,description:W,inputSchema:J,outputSchema:G,annotations:H,_meta:B}=Q;return this._createRegisteredTool(X,Y,W,J,G,H,{taskSupport:\"forbidden\"},B,$)}prompt(X,...Q){if(this._registeredPrompts[X])throw Error(`Prompt ${X} is already registered`);let $;if(typeof Q[0]===\"string\")$=Q.shift();let Y;if(Q.length>1)Y=Q.shift();let W=Q[0],J=this._createRegisteredPrompt(X,void 0,$,Y,W);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),J}registerPrompt(X,Q,$){if(this._registeredPrompts[X])throw Error(`Prompt ${X} is already registered`);let{title:Y,description:W,argsSchema:J}=Q,G=this._createRegisteredPrompt(X,Y,W,J,$);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),G}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(X,Q){return this.server.sendLoggingMessage(X,Q)}sendResourceListChanged(){if(this.isConnected())this.server.sendResourceListChanged()}sendToolListChanged(){if(this.isConnected())this.server.sendToolListChanged()}sendPromptListChanged(){if(this.isConnected())this.server.sendPromptListChanged()}}var SI={type:\"object\",properties:{}};function oz(X){return X!==null&&typeof X===\"object\"&&\"parse\"in X&&typeof X.parse===\"function\"&&\"safeParse\"in X&&typeof X.safeParse===\"function\"}function ZI(X){return\"_def\"in X||\"_zod\"in X||oz(X)}function W7(X){if(typeof X!==\"object\"||X===null)return!1;if(ZI(X))return!1;if(Object.keys(X).length===0)return!0;return Object.values(X).some(oz)}function nz(X){if(!X)return;if(W7(X))return k6(X);return X}function CI(X){let Q=h1(X);if(!Q)return[];return Object.entries(Q).map(([$,Y])=>{let W=_J(Y),J=xJ(Y);return{name:$,description:W,required:!J}})}function r1(X){let Q=h1(X),$=Q===null||Q===void 0?void 0:Q.method;if(!$)throw Error(\"Schema is missing a method literal\");let Y=p4($);if(typeof Y===\"string\")return Y;throw Error(\"Schema method literal must be a string\")}function rz(X){return{completion:{values:X.slice(0,100),total:X.length,hasMore:X.length>100}}}var H4={completion:{values:[],hasMore:!1}};function kI(X,Q,$,Y,W){return{name:X,description:Q,inputSchema:$,handler:Y,annotations:W?.annotations}}function vI(X){let Q=new J7({name:X.name,version:X.version??\"1.0.0\"},{capabilities:{tools:X.tools?{}:void 0}});if(X.tools)X.tools.forEach(($)=>{Q.registerTool($.name,{description:$.description,inputSchema:$.inputSchema,annotations:$.annotations},$.handler)});return{type:\"sdk\",name:X.name,instance:Q}}function s_({prompt:X,options:Q}){let{systemPrompt:$,settingSources:Y,sandbox:W,...J}=Q??{},G,H;if($===void 0)G=\"\";else if(typeof $===\"string\")G=$;else if($.type===\"preset\")H=$.append;let B=J.pathToClaudeCodeExecutable;if(!B){let L6=TI(import.meta.url),q6=tz(L6,\"..\");B=tz(q6,\"cli.js\")}process.env.CLAUDE_AGENT_SDK_VERSION=\"0.2.34\";let{abortController:z=F6(),additionalDirectories:K=[],agent:V,agents:L,allowedTools:U=[],betas:F,canUseTool:q,continue:N,cwd:w,debug:M,debugFile:R,disallowedTools:S=[],tools:C,env:K0,executable:U0=M6()?\"bun\":\"node\",executableArgs:s=[],extraArgs:D0={},fallbackModel:q0,enableFileCheckpointing:L1,forkSession:P1,hooks:o1,includePartialMessages:c,persistSession:Q9,maxThinkingTokens:r6,maxTurns:o6,maxBudgetUsd:t6,mcpServers:a6,model:B4,outputFormat:E0,permissionMode:S1=\"default\",allowDangerouslySkipPermissions:s6=!1,permissionPromptToolName:az,plugins:sz,resume:ez,resumeSessionAt:XK,sessionId:QK,stderr:$K,strictMcpConfig:YK}=J,G7=E0?.type===\"json_schema\"?E0.schema:void 0,V6=K0;if(!V6)V6={...process.env};if(!V6.CLAUDE_CODE_ENTRYPOINT)V6.CLAUDE_CODE_ENTRYPOINT=\"sdk-ts\";if(L1)V6.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=\"true\";if(!B)throw Error(\"pathToClaudeCodeExecutable is required\");let $9={},H7=new Map;if(a6)for(let[L6,q6]of Object.entries(a6))if(q6.type===\"sdk\"&&\"instance\"in q6)H7.set(L6,q6.instance),$9[L6]={type:\"sdk\",name:L6};else $9[L6]=q6;let WK=typeof X===\"string\",B7=new XX({abortController:z,additionalDirectories:K,agent:V,betas:F,cwd:w,debug:M,debugFile:R,executable:U0,executableArgs:s,extraArgs:D0,pathToClaudeCodeExecutable:B,env:V6,forkSession:P1,stderr:$K,maxThinkingTokens:r6,maxTurns:o6,maxBudgetUsd:t6,model:B4,fallbackModel:q0,jsonSchema:G7,permissionMode:S1,allowDangerouslySkipPermissions:s6,permissionPromptToolName:az,continueConversation:N,resume:ez,resumeSessionAt:XK,sessionId:QK,settingSources:Y??[],allowedTools:U,disallowedTools:S,tools:C,mcpServers:$9,strictMcpConfig:YK,canUseTool:!!q,hooks:!!o1,includePartialMessages:c,persistSession:Q9,plugins:sz,sandbox:W,spawnClaudeCodeProcess:J.spawnClaudeCodeProcess}),z7=new $X(B7,WK,q,o1,z,H7,G7,{systemPrompt:G,appendSystemPrompt:H,agents:L});if(typeof X===\"string\")B7.write(Z0({type:\"user\",session_id:\"\",message:{role:\"user\",content:[{type:\"text\",text:X}]},parent_tool_use_id:null})+`\n`);else z7.streamInput(X);return z7}function e_(X){return V9(X)}function Xx(X,Q){return UW(X,Q)}async function Qx(X,Q){let Y=[];try{const $=V7(Y,V9(Q),1);await $.send(X);for await(let B of $.stream())if(B.type===\"result\")return B;throw Error(\"Session ended without result message\")}catch(W){var J=W,G=1}finally{var H=L7(Y,J,G);H&&await H}}export{Xx as unstable_v2_resumeSession,Qx as unstable_v2_prompt,e_ as unstable_v2_createSession,kI as tool,s_ as query,vI as createSdkMcpServer,nU as HOOK_EVENTS,rU as EXIT_REASONS,F1 as AbortError};\n","import { Command } from \"commander\";\nimport { ConfigCommand, PromptCommand, ServerCommand } from \"../commands\";\nimport { CommandHandler, HyperdocCommand } from \"../types\";\nimport { LogLevel, logger } from \"@hyperdoc/core\";\nimport packageJson from \"../../package.json\";\n\nexport class CommanderCli {\n private program: Command;\n private commandHandlers: Map<HyperdocCommand, CommandHandler> = new Map();\n\n constructor() {\n this.program = new Command();\n this.setupCommandHandlers();\n this.setupProgram();\n }\n\n private setupCommandHandlers(): void {\n this.commandHandlers.set(\"config\", new ConfigCommand());\n this.commandHandlers.set(\"prompt\", new PromptCommand());\n this.commandHandlers.set(\"server\", new ServerCommand());\n }\n\n private setupProgram(): void {\n this.program\n .name(\"hyper\")\n .description(\"Local Hyperdoc server and tooling\")\n .version(packageJson.version);\n\n this.program\n .option(\"--root <dir>\", \"Project root (defaults to cwd)\")\n .option(\"-v, --verbose\", \"Increase logging verbosity\")\n .option(\"-q, --quiet\", \"Reduce logging output\")\n .option(\"-d, --debug\", \"Enable debug logging\");\n\n this.program\n .command(\"config [key] [value]\")\n .description(\n \"View or set config values (stored in ~/.hyperdoc/config.json)\",\n )\n .action(async (key, value, options, command) => {\n command.setOptionValue(\"configKey\", key);\n command.setOptionValue(\"configValue\", value);\n await this.executeCommand(\"config\", command);\n });\n\n this.program\n .command(\"prompt\")\n .description(\"Print the agent prompt/spec to stdout\")\n .action(async (options, command) => {\n await this.executeCommand(\"prompt\", command);\n });\n\n this.program\n .command(\"server\")\n .description(\"Start the local Hyperdoc server\")\n .option(\"--port <number>\", \"Port to run the server on\", (value) =>\n Number(value),\n )\n .option(\"--projects <path>\", \"Path to projects.json file\")\n .option(\"-o, --open\", \"Open the UI in the browser\")\n .action(async (options, command) => {\n await this.executeCommand(\"server\", command);\n });\n }\n\n private async executeCommand(\n command: HyperdocCommand,\n commandInstance: Command,\n ): Promise<void> {\n const parent = commandInstance.parent!;\n const globalOpts = parent.opts();\n const commandOpts = commandInstance.opts();\n const allOptions = { ...globalOpts, ...commandOpts };\n\n if (allOptions.debug) {\n logger.setLevel(LogLevel.DEBUG);\n } else if (allOptions.verbose) {\n logger.setLevel(LogLevel.INFO);\n } else if (allOptions.quiet) {\n logger.setLevel(LogLevel.WARN);\n }\n\n const handler = this.commandHandlers.get(command);\n\n if (!handler) {\n throw new Error(`No handler found for command: ${command}`);\n }\n\n await handler.execute({ options: allOptions });\n }\n\n async parse(args: string[]): Promise<void> {\n await this.program.parseAsync(args);\n }\n\n getHelp(): string {\n return this.program.helpInformation();\n }\n}\n","import express, { Request, Response, NextFunction } from \"express\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { createExpressMiddleware } from \"@trpc/server/adapters/express\";\nimport type { AnyRouter } from \"@trpc/server\";\nimport {\n type ProjectEntry,\n logger,\n resolveDocsDirs,\n resolveRootDirs,\n} from \"@hyperdoc/core\";\nimport { createProjectRouter } from \"./createProjectRouter\";\nimport { createRouterContext, type RouterContext } from \"./routes/context\";\nimport { loadProjectsFromFile } from \"./paths\";\nimport type { AppContext } from \"./context\";\n\nexport type ServerOptions = {\n projectsFilePath: string;\n staticDir?: string;\n router: AnyRouter;\n};\n\nexport function createApp(options: ServerOptions): express.Express {\n const app = express();\n app.use(express.text({ type: \"*/*\", limit: \"5mb\" }));\n\n if (options.staticDir && fs.existsSync(options.staticDir))\n app.use(express.static(options.staticDir));\n\n const loadProjects = () => loadProjectsFromFile(options.projectsFilePath);\n\n const loadProjectInfos = () =>\n loadProjects().map((p) => ({ id: p.id, name: p.name, emoji: p.emoji }));\n\n // Cached RouterContexts and Express routers — these are derived from\n // the filesystem and are fine to keep in memory (lazy created, never stale\n // since they read files on each operation). The *list* of projects is always\n // re-read from the projects file on every request.\n const projectContexts = new Map<string, RouterContext>();\n const mountedRouters = new Set<string>();\n\n const ensureProjectMounted = (project: ProjectEntry) => {\n if (mountedRouters.has(project.id)) return;\n\n const docsDirs = resolveDocsDirs(project).map((d) => path.resolve(d));\n const codeDirs = resolveRootDirs(project).map((d) => path.resolve(d));\n const rootDir = docsDirs[0];\n\n if (!rootDir || !fs.existsSync(rootDir)) return;\n\n const ctx = createRouterContext(project.id, docsDirs, codeDirs);\n projectContexts.set(project.id, ctx);\n\n const bundlesDir = codeDirs[0] ?? path.join(rootDir, \"bundles\");\n app.use(`/api/projects/${project.id}/bundles`, express.static(bundlesDir));\n\n const router = createProjectRouter({ projectId: project.id, rootDir, ctx });\n app.use(`/api/projects/${project.id}`, router);\n\n mountedRouters.add(project.id);\n logger.info(`Mounted project \"${project.id}\" -> ${rootDir}`);\n };\n\n const resolveProjectContext = (projectId: string): RouterContext => {\n const existing = projectContexts.get(projectId);\n if (existing) return existing;\n\n const projects = loadProjects();\n const project = projects.find((p) => p.id === projectId);\n\n if (!project)\n throw new Error(`Project \"${projectId}\" not found in projects file`);\n\n const docsDirs = resolveDocsDirs(project).map((d) => path.resolve(d));\n const codeDirs = resolveRootDirs(project).map((d) => path.resolve(d));\n const rootDir = docsDirs[0];\n\n if (!rootDir || !fs.existsSync(rootDir))\n throw new Error(\n `Project \"${projectId}\" docs directory does not exist: ${rootDir}`,\n );\n\n const ctx = createRouterContext(projectId, docsDirs, codeDirs);\n projectContexts.set(projectId, ctx);\n\n ensureProjectMounted(project);\n return ctx;\n };\n\n // REST endpoint — reads from file on every request\n app.get(\"/api/projects\", (_req: Request, res: Response) => {\n res.json(loadProjectInfos());\n });\n\n // Lazy-mount Express routes when a project is first accessed via REST\n app.use(\n \"/api/projects/:projectId\",\n (req: Request, _res: Response, next: NextFunction) => {\n const projectId = req.params.projectId as string;\n\n if (!mountedRouters.has(projectId)) {\n const projects = loadProjects();\n const project = projects.find((p) => p.id === projectId);\n if (project) ensureProjectMounted(project);\n }\n\n next();\n },\n );\n\n app.get(\n \"/api/projects/:projectId/app-frame\",\n (req: Request, res: Response) => {\n const { bundle, css, mount, type, bg } = req.query;\n\n if (!bundle || !mount) {\n res.status(400).send(\"Missing bundle or mount param\");\n return;\n }\n\n const esc = (v: unknown) =>\n String(v).replace(/[&<>\"']/g, (c) => `&#${c.charCodeAt(0)};`);\n\n const cssTag = css ? `<link rel=\"stylesheet\" href=\"${esc(css)}\">` : \"\";\n const scriptType = type === \"module\" ? ' type=\"module\"' : \"\";\n const bgStyle = bg ? `background:${esc(bg)};` : \"\";\n\n res.type(\"html\").send(`<!DOCTYPE html>\n<html><head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n${cssTag}\n<style>html,body{margin:0;padding:0;${bgStyle}}</style>\n</head><body>\n<div id=\"${esc(mount)}\"></div>\n<script${scriptType} src=\"${esc(bundle)}\"></script>\n</body></html>`);\n },\n );\n\n app.use(\n \"/trpc\",\n createExpressMiddleware({\n router: options.router,\n createContext: (): AppContext => ({\n loadProjects: loadProjectInfos,\n resolveProjectContext,\n projectsFilePath: options.projectsFilePath,\n }),\n }),\n );\n\n return app;\n}\n","/** @internal */\nexport type UnsetMarker = 'unsetMarker' & {\n __brand: 'unsetMarker';\n};\n\n/**\n * Ensures there are no duplicate keys when building a procedure.\n * @internal\n */\nexport function mergeWithoutOverrides<TType extends Record<string, unknown>>(\n obj1: TType,\n ...objs: Partial<TType>[]\n): TType {\n const newObj: TType = Object.assign(emptyObject(), obj1);\n\n for (const overrides of objs) {\n for (const key in overrides) {\n if (key in newObj && newObj[key] !== overrides[key]) {\n throw new Error(`Duplicate key ${key}`);\n }\n newObj[key as keyof TType] = overrides[key] as TType[keyof TType];\n }\n }\n return newObj;\n}\n\n/**\n * Check that value is object\n * @internal\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return !!value && !Array.isArray(value) && typeof value === 'object';\n}\n\ntype AnyFn = ((...args: any[]) => unknown) & Record<keyof any, unknown>;\nexport function isFunction(fn: unknown): fn is AnyFn {\n return typeof fn === 'function';\n}\n\n/**\n * Create an object without inheriting anything from `Object.prototype`\n * @internal\n */\nexport function emptyObject<TObj extends Record<string, unknown>>(): TObj {\n return Object.create(null);\n}\n\nconst asyncIteratorsSupported =\n typeof Symbol === 'function' && !!Symbol.asyncIterator;\n\nexport function isAsyncIterable<TValue>(\n value: unknown,\n): value is AsyncIterable<TValue> {\n return (\n asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value\n );\n}\n\n/**\n * Run an IIFE\n */\nexport const run = <TValue>(fn: () => TValue): TValue => fn();\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop(): void {}\n\nexport function identity<T>(it: T): T {\n return it;\n}\n\n/**\n * Generic runtime assertion function. Throws, if the condition is not `true`.\n *\n * Can be used as a slightly less dangerous variant of type assertions. Code\n * mistakes would be revealed at runtime then (hopefully during testing).\n */\nexport function assert(\n condition: boolean,\n msg = 'no additional info',\n): asserts condition {\n if (!condition) {\n throw new Error(`AssertionError: ${msg}`);\n }\n}\n\nexport function sleep(ms = 0): Promise<void> {\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n\n/**\n * Ponyfill for\n * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n */\nexport function abortSignalsAnyPonyfill(signals: AbortSignal[]): AbortSignal {\n if (typeof AbortSignal.any === 'function') {\n return AbortSignal.any(signals);\n }\n\n const ac = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n trigger();\n break;\n }\n signal.addEventListener('abort', trigger, { once: true });\n }\n\n return ac.signal;\n\n function trigger() {\n ac.abort();\n for (const signal of signals) {\n signal.removeEventListener('abort', trigger);\n }\n }\n}\n","import type { InvertKeyValue, ValueOf } from '../types';\n\n// reference: https://www.jsonrpc.org/specification\n\n/**\n * JSON-RPC 2.0 Error codes\n *\n * `-32000` to `-32099` are reserved for implementation-defined server-errors.\n * For tRPC we're copying the last digits of HTTP 4XX errors.\n */\nexport const TRPC_ERROR_CODES_BY_KEY = {\n /**\n * Invalid JSON was received by the server.\n * An error occurred on the server while parsing the JSON text.\n */\n PARSE_ERROR: -32700,\n /**\n * The JSON sent is not a valid Request object.\n */\n BAD_REQUEST: -32600, // 400\n\n // Internal JSON-RPC error\n INTERNAL_SERVER_ERROR: -32603, // 500\n NOT_IMPLEMENTED: -32603, // 501\n BAD_GATEWAY: -32603, // 502\n SERVICE_UNAVAILABLE: -32603, // 503\n GATEWAY_TIMEOUT: -32603, // 504\n\n // Implementation specific errors\n UNAUTHORIZED: -32001, // 401\n PAYMENT_REQUIRED: -32002, // 402\n FORBIDDEN: -32003, // 403\n NOT_FOUND: -32004, // 404\n METHOD_NOT_SUPPORTED: -32005, // 405\n TIMEOUT: -32008, // 408\n CONFLICT: -32009, // 409\n PRECONDITION_FAILED: -32012, // 412\n PAYLOAD_TOO_LARGE: -32013, // 413\n UNSUPPORTED_MEDIA_TYPE: -32015, // 415\n UNPROCESSABLE_CONTENT: -32022, // 422\n PRECONDITION_REQUIRED: -32028, // 428\n TOO_MANY_REQUESTS: -32029, // 429\n CLIENT_CLOSED_REQUEST: -32099, // 499\n} as const;\n\n// pure\nexport const TRPC_ERROR_CODES_BY_NUMBER: InvertKeyValue<\n typeof TRPC_ERROR_CODES_BY_KEY\n> = {\n [-32700]: 'PARSE_ERROR',\n [-32600]: 'BAD_REQUEST',\n [-32603]: 'INTERNAL_SERVER_ERROR',\n [-32001]: 'UNAUTHORIZED',\n [-32002]: 'PAYMENT_REQUIRED',\n [-32003]: 'FORBIDDEN',\n [-32004]: 'NOT_FOUND',\n [-32005]: 'METHOD_NOT_SUPPORTED',\n [-32008]: 'TIMEOUT',\n [-32009]: 'CONFLICT',\n [-32012]: 'PRECONDITION_FAILED',\n [-32013]: 'PAYLOAD_TOO_LARGE',\n [-32015]: 'UNSUPPORTED_MEDIA_TYPE',\n [-32022]: 'UNPROCESSABLE_CONTENT',\n [-32028]: 'PRECONDITION_REQUIRED',\n [-32029]: 'TOO_MANY_REQUESTS',\n [-32099]: 'CLIENT_CLOSED_REQUEST',\n};\n\nexport type TRPC_ERROR_CODE_NUMBER = ValueOf<typeof TRPC_ERROR_CODES_BY_KEY>;\nexport type TRPC_ERROR_CODE_KEY = keyof typeof TRPC_ERROR_CODES_BY_KEY;\n\n/**\n * tRPC error codes that are considered retryable\n * With out of the box SSE, the client will reconnect when these errors are encountered\n */\nexport const retryableRpcCodes: TRPC_ERROR_CODE_NUMBER[] = [\n TRPC_ERROR_CODES_BY_KEY.BAD_GATEWAY,\n TRPC_ERROR_CODES_BY_KEY.SERVICE_UNAVAILABLE,\n TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,\n TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR,\n];\n","import { emptyObject } from './utils';\n\ninterface ProxyCallbackOptions {\n path: readonly string[];\n args: readonly unknown[];\n}\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {\n // noop\n};\n\nconst freezeIfAvailable = (obj: object) => {\n if (Object.freeze) {\n Object.freeze(obj);\n }\n};\n\nfunction createInnerProxy(\n callback: ProxyCallback,\n path: readonly string[],\n memo: Record<string, unknown>,\n) {\n const cacheKey = path.join('.');\n\n memo[cacheKey] ??= new Proxy(noop, {\n get(_obj, key) {\n if (typeof key !== 'string' || key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return createInnerProxy(callback, [...path, key], memo);\n },\n apply(_1, _2, args) {\n const lastOfPath = path[path.length - 1];\n\n let opts = { args, path };\n // special handling for e.g. `trpc.hello.call(this, 'there')` and `trpc.hello.apply(this, ['there'])\n if (lastOfPath === 'call') {\n opts = {\n args: args.length >= 2 ? [args[1]] : [],\n path: path.slice(0, -1),\n };\n } else if (lastOfPath === 'apply') {\n opts = {\n args: args.length >= 2 ? args[1] : [],\n path: path.slice(0, -1),\n };\n }\n freezeIfAvailable(opts.args);\n freezeIfAvailable(opts.path);\n return callback(opts);\n },\n });\n\n return memo[cacheKey];\n}\n\n/**\n * Creates a proxy that calls the callback with the path and arguments\n *\n * @internal\n */\nexport const createRecursiveProxy = <TFaux = unknown>(\n callback: ProxyCallback,\n): TFaux => createInnerProxy(callback, [], emptyObject()) as TFaux;\n\n/**\n * Used in place of `new Proxy` where each handler will map 1 level deep to another value.\n *\n * @internal\n */\nexport const createFlatProxy = <TFaux>(\n callback: (path: keyof TFaux) => any,\n): TFaux => {\n return new Proxy(noop, {\n get(_obj, name) {\n if (name === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return callback(name as any);\n },\n }) as TFaux;\n};\n","import type { TRPCError } from '../error/TRPCError';\nimport type { TRPC_ERROR_CODES_BY_KEY, TRPCResponse } from '../rpc';\nimport { TRPC_ERROR_CODES_BY_NUMBER } from '../rpc';\nimport type { InvertKeyValue, ValueOf } from '../types';\nimport { isObject } from '../utils';\n\nexport const JSONRPC2_TO_HTTP_CODE: Record<\n keyof typeof TRPC_ERROR_CODES_BY_KEY,\n number\n> = {\n PARSE_ERROR: 400,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n PAYMENT_REQUIRED: 402,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n METHOD_NOT_SUPPORTED: 405,\n TIMEOUT: 408,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n PRECONDITION_REQUIRED: 428,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500,\n NOT_IMPLEMENTED: 501,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n};\n\nexport const HTTP_CODE_TO_JSONRPC2: InvertKeyValue<\n typeof JSONRPC2_TO_HTTP_CODE\n> = {\n 400: 'BAD_REQUEST',\n 401: 'UNAUTHORIZED',\n 402: 'PAYMENT_REQUIRED',\n 403: 'FORBIDDEN',\n 404: 'NOT_FOUND',\n 405: 'METHOD_NOT_SUPPORTED',\n 408: 'TIMEOUT',\n 409: 'CONFLICT',\n 412: 'PRECONDITION_FAILED',\n 413: 'PAYLOAD_TOO_LARGE',\n 415: 'UNSUPPORTED_MEDIA_TYPE',\n 422: 'UNPROCESSABLE_CONTENT',\n 428: 'PRECONDITION_REQUIRED',\n 429: 'TOO_MANY_REQUESTS',\n 499: 'CLIENT_CLOSED_REQUEST',\n 500: 'INTERNAL_SERVER_ERROR',\n 501: 'NOT_IMPLEMENTED',\n 502: 'BAD_GATEWAY',\n 503: 'SERVICE_UNAVAILABLE',\n 504: 'GATEWAY_TIMEOUT',\n} as const;\n\nexport function getStatusCodeFromKey(\n code: keyof typeof TRPC_ERROR_CODES_BY_KEY,\n) {\n return JSONRPC2_TO_HTTP_CODE[code] ?? 500;\n}\n\nexport function getStatusKeyFromCode(\n code: keyof typeof HTTP_CODE_TO_JSONRPC2,\n): ValueOf<typeof HTTP_CODE_TO_JSONRPC2> {\n return HTTP_CODE_TO_JSONRPC2[code] ?? 'INTERNAL_SERVER_ERROR';\n}\n\nexport function getHTTPStatusCode(json: TRPCResponse | TRPCResponse[]) {\n const arr = Array.isArray(json) ? json : [json];\n const httpStatuses = new Set<number>(\n arr.map((res) => {\n if ('error' in res && isObject(res.error.data)) {\n if (typeof res.error.data?.['httpStatus'] === 'number') {\n return res.error.data['httpStatus'];\n }\n const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];\n return getStatusCodeFromKey(code);\n }\n return 200;\n }),\n );\n\n if (httpStatuses.size !== 1) {\n return 207;\n }\n\n const httpStatus = httpStatuses.values().next().value;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return httpStatus!;\n}\n\nexport function getHTTPStatusCodeFromError(error: TRPCError) {\n return getStatusCodeFromKey(error.code);\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';\nimport type { ProcedureType } from '../procedure';\nimport type { AnyRootTypes, RootConfig } from '../rootConfig';\nimport { TRPC_ERROR_CODES_BY_KEY } from '../rpc';\nimport type { DefaultErrorShape } from './formatter';\nimport type { TRPCError } from './TRPCError';\n\n/**\n * @internal\n */\nexport function getErrorShape<TRoot extends AnyRootTypes>(opts: {\n config: RootConfig<TRoot>;\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TRoot['ctx'] | undefined;\n}): TRoot['errorShape'] {\n const { path, error, config } = opts;\n const { code } = opts.error;\n const shape: DefaultErrorShape = {\n message: error.message,\n code: TRPC_ERROR_CODES_BY_KEY[code],\n data: {\n code,\n httpStatus: getHTTPStatusCodeFromError(error),\n },\n };\n if (config.isDev && typeof opts.error.stack === 'string') {\n shape.data.stack = opts.error.stack;\n }\n if (typeof path === 'string') {\n shape.data.path = path;\n }\n return config.errorFormatter({ ...opts, shape });\n}\n","import type { ProcedureType } from '../procedure';\nimport type {\n TRPC_ERROR_CODE_KEY,\n TRPC_ERROR_CODE_NUMBER,\n TRPCErrorShape,\n} from '../rpc';\nimport type { TRPCError } from './TRPCError';\n\n/**\n * @internal\n */\nexport type ErrorFormatter<TContext, TShape extends TRPCErrorShape> = (opts: {\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TContext | undefined;\n shape: DefaultErrorShape;\n}) => TShape;\n\n/**\n * @internal\n */\nexport type DefaultErrorData = {\n code: TRPC_ERROR_CODE_KEY;\n httpStatus: number;\n /**\n * Path to the procedure that threw the error\n */\n path?: string;\n /**\n * Stack trace of the error (only in development)\n */\n stack?: string;\n};\n\n/**\n * @internal\n */\nexport interface DefaultErrorShape extends TRPCErrorShape<DefaultErrorData> {\n message: string;\n code: TRPC_ERROR_CODE_NUMBER;\n}\n\nexport const defaultFormatter: ErrorFormatter<any, any> = ({ shape }) => {\n return shape;\n};\n","import type { TRPC_ERROR_CODE_KEY } from '../rpc/codes';\nimport { isObject } from '../utils';\n\nclass UnknownCauseError extends Error {\n [key: string]: unknown;\n}\nexport function getCauseFromUnknown(cause: unknown): Error | undefined {\n if (cause instanceof Error) {\n return cause;\n }\n\n const type = typeof cause;\n if (type === 'undefined' || type === 'function' || cause === null) {\n return undefined;\n }\n\n // Primitive types just get wrapped in an error\n if (type !== 'object') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return new Error(String(cause));\n }\n\n // If it's an object, we'll create a synthetic error\n if (isObject(cause)) {\n return Object.assign(new UnknownCauseError(), cause);\n }\n\n return undefined;\n}\n\nexport function getTRPCErrorFromUnknown(cause: unknown): TRPCError {\n if (cause instanceof TRPCError) {\n return cause;\n }\n if (cause instanceof Error && cause.name === 'TRPCError') {\n // https://github.com/trpc/trpc/pull/4848\n return cause as TRPCError;\n }\n\n const trpcError = new TRPCError({\n code: 'INTERNAL_SERVER_ERROR',\n cause,\n });\n\n // Inherit stack from error\n if (cause instanceof Error && cause.stack) {\n trpcError.stack = cause.stack;\n }\n\n return trpcError;\n}\n\nexport class TRPCError extends Error {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore override doesn't work in all environments due to \"This member cannot have an 'override' modifier because it is not declared in the base class 'Error'\"\n public override readonly cause?: Error;\n public readonly code;\n\n constructor(opts: {\n message?: string;\n code: TRPC_ERROR_CODE_KEY;\n cause?: unknown;\n }) {\n const cause = getCauseFromUnknown(opts.cause);\n const message = opts.message ?? cause?.message ?? opts.code;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore https://github.com/tc39/proposal-error-cause\n super(message, { cause });\n\n this.code = opts.code;\n this.name = 'TRPCError';\n this.cause ??= cause;\n }\n}\n","import type { AnyRootTypes, RootConfig } from './rootConfig';\nimport type { AnyRouter, inferRouterError } from './router';\nimport type {\n TRPCResponse,\n TRPCResponseMessage,\n TRPCResultMessage,\n} from './rpc';\nimport { isObject } from './utils';\n\n/**\n * @public\n */\nexport interface DataTransformer {\n serialize(object: any): any;\n deserialize(object: any): any;\n}\n\ninterface InputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the client** before sending the data to the server.\n */\n serialize(object: any): any;\n /**\n * This function runs **on the server** to transform the data before it is passed to the resolver\n */\n deserialize(object: any): any;\n}\n\ninterface OutputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the server** before sending the data to the client.\n */\n serialize(object: any): any;\n /**\n * This function runs **only on the client** to transform the data sent from the server.\n */\n deserialize(object: any): any;\n}\n\n/**\n * @public\n */\nexport interface CombinedDataTransformer {\n /**\n * Specify how the data sent from the client to the server should be transformed.\n */\n input: InputDataTransformer;\n /**\n * Specify how the data sent from the server to the client should be transformed.\n */\n output: OutputDataTransformer;\n}\n\n/**\n * @public\n */\nexport type CombinedDataTransformerClient = {\n input: Pick<CombinedDataTransformer['input'], 'serialize'>;\n output: Pick<CombinedDataTransformer['output'], 'deserialize'>;\n};\n\n/**\n * @public\n */\nexport type DataTransformerOptions = CombinedDataTransformer | DataTransformer;\n\n/**\n * @internal\n */\nexport function getDataTransformer(\n transformer: DataTransformerOptions,\n): CombinedDataTransformer {\n if ('input' in transformer) {\n return transformer;\n }\n return { input: transformer, output: transformer };\n}\n\n/**\n * @internal\n */\nexport const defaultTransformer: CombinedDataTransformer = {\n input: { serialize: (obj) => obj, deserialize: (obj) => obj },\n output: { serialize: (obj) => obj, deserialize: (obj) => obj },\n};\n\nfunction transformTRPCResponseItem<\n TResponseItem extends TRPCResponse | TRPCResponseMessage,\n>(config: RootConfig<AnyRootTypes>, item: TResponseItem): TResponseItem {\n if ('error' in item) {\n return {\n ...item,\n error: config.transformer.output.serialize(item.error),\n };\n }\n\n if ('data' in item.result) {\n return {\n ...item,\n result: {\n ...item.result,\n data: config.transformer.output.serialize(item.result.data),\n },\n };\n }\n\n return item;\n}\n\n/**\n * Takes a unserialized `TRPCResponse` and serializes it with the router's transformers\n **/\nexport function transformTRPCResponse<\n TResponse extends\n | TRPCResponse\n | TRPCResponse[]\n | TRPCResponseMessage\n | TRPCResponseMessage[],\n>(config: RootConfig<AnyRootTypes>, itemOrItems: TResponse) {\n return Array.isArray(itemOrItems)\n ? itemOrItems.map((item) => transformTRPCResponseItem(config, item))\n : transformTRPCResponseItem(config, itemOrItems);\n}\n\n// FIXME:\n// - the generics here are probably unnecessary\n// - the RPC-spec could probably be simplified to combine HTTP + WS\n/** @internal */\nfunction transformResultInner<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n) {\n if ('error' in response) {\n const error = transformer.deserialize(\n response.error,\n ) as inferRouterError<TRouter>;\n return {\n ok: false,\n error: {\n ...response,\n error,\n },\n } as const;\n }\n\n const result = {\n ...response.result,\n ...((!response.result.type || response.result.type === 'data') && {\n type: 'data',\n data: transformer.deserialize(response.result.data),\n }),\n } as TRPCResultMessage<TOutput>['result'];\n return { ok: true, result } as const;\n}\n\nclass TransformResultError extends Error {\n constructor() {\n super('Unable to transform response from server');\n }\n}\n\n/**\n * Transforms and validates that the result is a valid TRPCResponse\n * @internal\n */\nexport function transformResult<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n): ReturnType<typeof transformResultInner> {\n let result: ReturnType<typeof transformResultInner>;\n try {\n // Use the data transformers on the JSON-response\n result = transformResultInner(response, transformer);\n } catch {\n throw new TransformResultError();\n }\n\n // check that output of the transformers is a valid TRPCResponse\n if (\n !result.ok &&\n (!isObject(result.error.error) ||\n typeof result.error.error['code'] !== 'number')\n ) {\n throw new TransformResultError();\n }\n if (result.ok && !isObject(result.result)) {\n throw new TransformResultError();\n }\n return result;\n}\n","import type { Observable } from '../observable';\nimport { createRecursiveProxy } from './createProxy';\nimport { defaultFormatter } from './error/formatter';\nimport { getTRPCErrorFromUnknown, TRPCError } from './error/TRPCError';\nimport type {\n AnyProcedure,\n ErrorHandlerOptions,\n inferProcedureInput,\n inferProcedureOutput,\n LegacyObservableSubscriptionProcedure,\n} from './procedure';\nimport type { ProcedureCallOptions } from './procedureBuilder';\nimport type { AnyRootTypes, RootConfig } from './rootConfig';\nimport { defaultTransformer } from './transformer';\nimport type { MaybePromise, ValueOf } from './types';\nimport {\n emptyObject,\n isFunction,\n isObject,\n mergeWithoutOverrides,\n} from './utils';\n\nexport interface RouterRecord {\n [key: string]: AnyProcedure | RouterRecord;\n}\n\ntype DecorateProcedure<TProcedure extends AnyProcedure> = (\n input: inferProcedureInput<TProcedure>,\n) => Promise<\n TProcedure['_def']['type'] extends 'subscription'\n ? TProcedure extends LegacyObservableSubscriptionProcedure<any>\n ? Observable<inferProcedureOutput<TProcedure>, TRPCError>\n : inferProcedureOutput<TProcedure>\n : inferProcedureOutput<TProcedure>\n>;\n\n/**\n * @internal\n */\nexport type DecorateRouterRecord<TRecord extends RouterRecord> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyProcedure\n ? DecorateProcedure<$Value>\n : $Value extends RouterRecord\n ? DecorateRouterRecord<$Value>\n : never\n : never;\n};\n\n/**\n * @internal\n */\n\nexport type RouterCallerErrorHandler<TContext> = (\n opts: ErrorHandlerOptions<TContext>,\n) => void;\n\n/**\n * @internal\n */\nexport type RouterCaller<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = (\n /**\n * @note\n * If passing a function, we recommend it's a cached function\n * e.g. wrapped in `React.cache` to avoid unnecessary computations\n */\n ctx: TRoot['ctx'] | (() => MaybePromise<TRoot['ctx']>),\n options?: {\n onError?: RouterCallerErrorHandler<TRoot['ctx']>;\n signal?: AbortSignal;\n },\n) => DecorateRouterRecord<TRecord>;\n\n/**\n * @internal\n */\nconst lazyMarker = 'lazyMarker' as 'lazyMarker' & {\n __brand: 'lazyMarker';\n};\nexport type Lazy<TAny> = (() => Promise<TAny>) & { [lazyMarker]: true };\n\ntype LazyLoader<TAny> = {\n load: () => Promise<void>;\n ref: Lazy<TAny>;\n};\n\nfunction once<T>(fn: () => T): () => T {\n const uncalled = Symbol();\n let result: T | typeof uncalled = uncalled;\n return (): T => {\n if (result === uncalled) {\n result = fn();\n }\n return result;\n };\n}\n\n/**\n * Lazy load a router\n * @see https://trpc.io/docs/server/merging-routers#lazy-load\n */\nexport function lazy<TRouter extends AnyRouter>(\n importRouter: () => Promise<\n | TRouter\n | {\n [key: string]: TRouter;\n }\n >,\n): Lazy<NoInfer<TRouter>> {\n async function resolve(): Promise<TRouter> {\n const mod = await importRouter();\n\n // if the module is a router, return it\n if (isRouter(mod)) {\n return mod;\n }\n\n const routers = Object.values(mod);\n\n if (routers.length !== 1 || !isRouter(routers[0])) {\n throw new Error(\n \"Invalid router module - either define exactly 1 export or return the router directly.\\nExample: `lazy(() => import('./slow.js').then((m) => m.slowRouter))`\",\n );\n }\n\n return routers[0];\n }\n\n (resolve as Lazy<NoInfer<TRouter>>)[lazyMarker] = true as const;\n\n return resolve as Lazy<NoInfer<TRouter>>;\n}\n\nfunction isLazy<TAny>(input: unknown): input is Lazy<TAny> {\n return typeof input === 'function' && lazyMarker in input;\n}\n\n/**\n * @internal\n */\nexport interface RouterDef<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> {\n _config: RootConfig<TRoot>;\n router: true;\n procedure?: never;\n procedures: TRecord;\n record: TRecord;\n lazy: Record<string, LazyLoader<AnyRouter>>;\n}\n\nexport interface Router<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> {\n _def: RouterDef<TRoot, TRecord>;\n /**\n * @see https://trpc.io/docs/v11/server/server-side-calls\n */\n createCaller: RouterCaller<TRoot, TRecord>;\n}\n\nexport type BuiltRouter<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = Router<TRoot, TRecord> & TRecord;\n\nexport interface RouterBuilder<TRoot extends AnyRootTypes> {\n <TIn extends CreateRouterOptions>(\n _: TIn,\n ): BuiltRouter<TRoot, DecorateCreateRouterOptions<TIn>>;\n}\n\nexport type AnyRouter = Router<any, any>;\n\nexport type inferRouterRootTypes<TRouter extends AnyRouter> =\n TRouter['_def']['_config']['$types'];\n\nexport type inferRouterContext<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['ctx'];\nexport type inferRouterError<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['errorShape'];\nexport type inferRouterMeta<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['meta'];\n\nfunction isRouter(value: unknown): value is AnyRouter {\n return (\n isObject(value) && isObject(value['_def']) && 'router' in value['_def']\n );\n}\n\nconst emptyRouter = {\n _ctx: null as any,\n _errorShape: null as any,\n _meta: null as any,\n queries: {},\n mutations: {},\n subscriptions: {},\n errorFormatter: defaultFormatter,\n transformer: defaultTransformer,\n};\n\n/**\n * Reserved words that can't be used as router or procedure names\n */\nconst reservedWords = [\n /**\n * Then is a reserved word because otherwise we can't return a promise that returns a Proxy\n * since JS will think that `.then` is something that exists\n */\n 'then',\n /**\n * `fn.call()` and `fn.apply()` are reserved words because otherwise we can't call a function using `.call` or `.apply`\n */\n 'call',\n 'apply',\n];\n\n/** @internal */\nexport type CreateRouterOptions = {\n [key: string]:\n | AnyProcedure\n | AnyRouter\n | CreateRouterOptions\n | Lazy<AnyRouter>;\n};\n\n/** @internal */\nexport type DecorateCreateRouterOptions<\n TRouterOptions extends CreateRouterOptions,\n> = {\n [K in keyof TRouterOptions]: TRouterOptions[K] extends infer $Value\n ? $Value extends AnyProcedure\n ? $Value\n : $Value extends Router<any, infer TRecord>\n ? TRecord\n : $Value extends Lazy<Router<any, infer TRecord>>\n ? TRecord\n : $Value extends CreateRouterOptions\n ? DecorateCreateRouterOptions<$Value>\n : never\n : never;\n};\n\n/**\n * @internal\n */\nexport function createRouterFactory<TRoot extends AnyRootTypes>(\n config: RootConfig<TRoot>,\n) {\n function createRouterInner<TInput extends CreateRouterOptions>(\n input: TInput,\n ): BuiltRouter<TRoot, DecorateCreateRouterOptions<TInput>> {\n const reservedWordsUsed = new Set(\n Object.keys(input).filter((v) => reservedWords.includes(v)),\n );\n if (reservedWordsUsed.size > 0) {\n throw new Error(\n 'Reserved words used in `router({})` call: ' +\n Array.from(reservedWordsUsed).join(', '),\n );\n }\n\n const procedures: Record<string, AnyProcedure> = emptyObject();\n const lazy: Record<string, LazyLoader<AnyRouter>> = emptyObject();\n\n function createLazyLoader(opts: {\n ref: Lazy<AnyRouter>;\n path: readonly string[];\n key: string;\n aggregate: RouterRecord;\n }): LazyLoader<AnyRouter> {\n return {\n ref: opts.ref,\n load: once(async () => {\n const router = await opts.ref();\n const lazyPath = [...opts.path, opts.key];\n const lazyKey = lazyPath.join('.');\n\n opts.aggregate[opts.key] = step(router._def.record, lazyPath);\n\n delete lazy[lazyKey];\n\n // add lazy loaders for nested routers\n for (const [nestedKey, nestedItem] of Object.entries(\n router._def.lazy,\n )) {\n const nestedRouterKey = [...lazyPath, nestedKey].join('.');\n\n // console.log('adding lazy', nestedRouterKey);\n lazy[nestedRouterKey] = createLazyLoader({\n ref: nestedItem.ref,\n path: lazyPath,\n key: nestedKey,\n aggregate: opts.aggregate[opts.key] as RouterRecord,\n });\n }\n }),\n };\n }\n\n function step(from: CreateRouterOptions, path: readonly string[] = []) {\n const aggregate: RouterRecord = emptyObject();\n for (const [key, item] of Object.entries(from ?? {})) {\n if (isLazy(item)) {\n lazy[[...path, key].join('.')] = createLazyLoader({\n path,\n ref: item,\n key,\n aggregate,\n });\n continue;\n }\n if (isRouter(item)) {\n aggregate[key] = step(item._def.record, [...path, key]);\n continue;\n }\n if (!isProcedure(item)) {\n // RouterRecord\n aggregate[key] = step(item, [...path, key]);\n continue;\n }\n\n const newPath = [...path, key].join('.');\n\n if (procedures[newPath]) {\n throw new Error(`Duplicate key: ${newPath}`);\n }\n\n procedures[newPath] = item;\n aggregate[key] = item;\n }\n\n return aggregate;\n }\n const record = step(input);\n\n const _def: AnyRouter['_def'] = {\n _config: config,\n router: true,\n procedures,\n lazy,\n ...emptyRouter,\n record,\n };\n\n const router: BuiltRouter<TRoot, {}> = {\n ...(record as {}),\n _def,\n createCaller: createCallerFactory<TRoot>()({\n _def,\n }),\n };\n return router as BuiltRouter<TRoot, DecorateCreateRouterOptions<TInput>>;\n }\n\n return createRouterInner;\n}\n\nfunction isProcedure(\n procedureOrRouter: ValueOf<CreateRouterOptions>,\n): procedureOrRouter is AnyProcedure {\n return typeof procedureOrRouter === 'function';\n}\n\n/**\n * @internal\n */\nexport async function getProcedureAtPath(\n router: Pick<Router<any, any>, '_def'>,\n path: string,\n): Promise<AnyProcedure | null> {\n const { _def } = router;\n let procedure = _def.procedures[path];\n\n while (!procedure) {\n const key = Object.keys(_def.lazy).find((key) => path.startsWith(key));\n // console.log(`found lazy: ${key ?? 'NOPE'} (fullPath: ${fullPath})`);\n\n if (!key) {\n return null;\n }\n // console.log('loading', key, '.......');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lazyRouter = _def.lazy[key]!;\n await lazyRouter.load();\n\n procedure = _def.procedures[path];\n }\n\n return procedure;\n}\n\n/**\n * @internal\n */\nexport async function callProcedure(\n opts: ProcedureCallOptions<unknown> & {\n router: AnyRouter;\n allowMethodOverride?: boolean;\n },\n) {\n const { type, path } = opts;\n const proc = await getProcedureAtPath(opts.router, path);\n if (\n !proc ||\n !isProcedure(proc) ||\n (proc._def.type !== type && !opts.allowMethodOverride)\n ) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: `No \"${type}\"-procedure on path \"${path}\"`,\n });\n }\n\n /* istanbul ignore if -- @preserve */\n if (\n proc._def.type !== type &&\n opts.allowMethodOverride &&\n proc._def.type === 'subscription'\n ) {\n throw new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message: `Method override is not supported for subscriptions`,\n });\n }\n\n return proc(opts);\n}\n\nexport interface RouterCallerFactory<TRoot extends AnyRootTypes> {\n <TRecord extends RouterRecord>(\n router: Pick<Router<TRoot, TRecord>, '_def'>,\n ): RouterCaller<TRoot, TRecord>;\n}\n\nexport function createCallerFactory<\n TRoot extends AnyRootTypes,\n>(): RouterCallerFactory<TRoot> {\n return function createCallerInner<TRecord extends RouterRecord>(\n router: Pick<Router<TRoot, TRecord>, '_def'>,\n ): RouterCaller<TRoot, TRecord> {\n const { _def } = router;\n type Context = TRoot['ctx'];\n\n return function createCaller(ctxOrCallback, opts) {\n return createRecursiveProxy<ReturnType<RouterCaller<any, any>>>(\n async (innerOpts) => {\n const { path, args } = innerOpts;\n const fullPath = path.join('.');\n\n if (path.length === 1 && path[0] === '_def') {\n return _def;\n }\n\n const procedure = await getProcedureAtPath(router, fullPath);\n\n let ctx: Context | undefined = undefined;\n try {\n if (!procedure) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: `No procedure found on path \"${path}\"`,\n });\n }\n ctx = isFunction(ctxOrCallback)\n ? await Promise.resolve(ctxOrCallback())\n : ctxOrCallback;\n\n return await procedure({\n path: fullPath,\n getRawInput: async () => args[0],\n ctx,\n type: procedure._def.type,\n signal: opts?.signal,\n });\n } catch (cause) {\n opts?.onError?.({\n ctx,\n error: getTRPCErrorFromUnknown(cause),\n input: args[0],\n path: fullPath,\n type: procedure?._def.type ?? 'unknown',\n });\n throw cause;\n }\n },\n );\n };\n };\n}\n\n/** @internal */\nexport type MergeRouters<\n TRouters extends AnyRouter[],\n TRoot extends AnyRootTypes = TRouters[0]['_def']['_config']['$types'],\n TRecord extends RouterRecord = {},\n> = TRouters extends [\n infer Head extends AnyRouter,\n ...infer Tail extends AnyRouter[],\n]\n ? MergeRouters<Tail, TRoot, Head['_def']['record'] & TRecord>\n : BuiltRouter<TRoot, TRecord>;\n\nexport function mergeRouters<TRouters extends AnyRouter[]>(\n ...routerList: [...TRouters]\n): MergeRouters<TRouters> {\n const record = mergeWithoutOverrides(\n {},\n ...routerList.map((r) => r._def.record),\n );\n const errorFormatter = routerList.reduce(\n (currentErrorFormatter, nextRouter) => {\n if (\n nextRouter._def._config.errorFormatter &&\n nextRouter._def._config.errorFormatter !== defaultFormatter\n ) {\n if (\n currentErrorFormatter !== defaultFormatter &&\n currentErrorFormatter !== nextRouter._def._config.errorFormatter\n ) {\n throw new Error('You seem to have several error formatters');\n }\n return nextRouter._def._config.errorFormatter;\n }\n return currentErrorFormatter;\n },\n defaultFormatter,\n );\n\n const transformer = routerList.reduce((prev, current) => {\n if (\n current._def._config.transformer &&\n current._def._config.transformer !== defaultTransformer\n ) {\n if (\n prev !== defaultTransformer &&\n prev !== current._def._config.transformer\n ) {\n throw new Error('You seem to have several transformers');\n }\n return current._def._config.transformer;\n }\n return prev;\n }, defaultTransformer);\n\n const router = createRouterFactory({\n errorFormatter,\n transformer,\n isDev: routerList.every((r) => r._def._config.isDev),\n allowOutsideOfServer: routerList.every(\n (r) => r._def._config.allowOutsideOfServer,\n ),\n isServer: routerList.every((r) => r._def._config.isServer),\n $types: routerList[0]?._def._config.$types,\n sse: routerList[0]?._def._config.sse,\n })(record);\n\n return router as MergeRouters<TRouters>;\n}\n","const trackedSymbol = Symbol();\n\ntype TrackedId = string & {\n __brand: 'TrackedId';\n};\nexport type TrackedEnvelope<TData> = [TrackedId, TData, typeof trackedSymbol];\n\nexport interface TrackedData<TData> {\n /**\n * The id of the message to keep track of in case the connection gets lost\n */\n id: string;\n /**\n * The data field of the message\n */\n data: TData;\n}\n/**\n * Produce a typed server-sent event message\n * @deprecated use `tracked(id, data)` instead\n */\nexport function sse<TData>(event: { id: string; data: TData }) {\n return tracked(event.id, event.data);\n}\n\nexport function isTrackedEnvelope<TData>(\n value: unknown,\n): value is TrackedEnvelope<TData> {\n return Array.isArray(value) && value[2] === trackedSymbol;\n}\n\n/**\n * Automatically track an event so that it can be resumed from a given id if the connection is lost\n */\nexport function tracked<TData>(\n id: string,\n data: TData,\n): TrackedEnvelope<TData> {\n if (id === '') {\n // This limitation could be removed by using different SSE event names / channels for tracked event and non-tracked event\n throw new Error(\n '`id` must not be an empty string as empty string is the same as not setting the id at all',\n );\n }\n return [id as TrackedId, data, trackedSymbol];\n}\n\nexport type inferTrackedOutput<TData> =\n TData extends TrackedEnvelope<infer $Data> ? TrackedData<$Data> : TData;\n","import type { Result } from '../unstable-core-do-not-import';\nimport type {\n Observable,\n Observer,\n OperatorFunction,\n TeardownLogic,\n UnaryFunction,\n Unsubscribable,\n} from './types';\n\n/** @public */\nexport type inferObservableValue<TObservable> =\n TObservable extends Observable<infer TValue, unknown> ? TValue : never;\n\n/** @public */\nexport function isObservable(x: unknown): x is Observable<unknown, unknown> {\n return typeof x === 'object' && x !== null && 'subscribe' in x;\n}\n\n/** @public */\nexport function observable<TValue, TError = unknown>(\n subscribe: (observer: Observer<TValue, TError>) => TeardownLogic,\n): Observable<TValue, TError> {\n const self: Observable<TValue, TError> = {\n subscribe(observer) {\n let teardownRef: TeardownLogic | null = null;\n let isDone = false;\n let unsubscribed = false;\n let teardownImmediately = false;\n function unsubscribe() {\n if (teardownRef === null) {\n teardownImmediately = true;\n return;\n }\n if (unsubscribed) {\n return;\n }\n unsubscribed = true;\n\n if (typeof teardownRef === 'function') {\n teardownRef();\n } else if (teardownRef) {\n teardownRef.unsubscribe();\n }\n }\n teardownRef = subscribe({\n next(value) {\n if (isDone) {\n return;\n }\n observer.next?.(value);\n },\n error(err) {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.error?.(err);\n unsubscribe();\n },\n complete() {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.complete?.();\n unsubscribe();\n },\n });\n if (teardownImmediately) {\n unsubscribe();\n }\n return {\n unsubscribe,\n };\n },\n pipe(\n ...operations: OperatorFunction<any, any, any, any>[]\n ): Observable<any, any> {\n return operations.reduce(pipeReducer, self);\n },\n };\n return self;\n}\n\nfunction pipeReducer(prev: any, fn: UnaryFunction<any, any>) {\n return fn(prev);\n}\n\n/** @internal */\nexport function observableToPromise<TValue>(\n observable: Observable<TValue, unknown>,\n) {\n const ac = new AbortController();\n const promise = new Promise<TValue>((resolve, reject) => {\n let isDone = false;\n function onDone() {\n if (isDone) {\n return;\n }\n isDone = true;\n obs$.unsubscribe();\n }\n ac.signal.addEventListener('abort', () => {\n reject(ac.signal.reason);\n });\n const obs$ = observable.subscribe({\n next(data) {\n isDone = true;\n resolve(data);\n onDone();\n },\n error(data) {\n reject(data);\n },\n complete() {\n ac.abort();\n onDone();\n },\n });\n });\n return promise;\n}\n\n/**\n * @internal\n */\nfunction observableToReadableStream<TValue>(\n observable: Observable<TValue, unknown>,\n signal: AbortSignal,\n): ReadableStream<Result<TValue>> {\n let unsub: Unsubscribable | null = null;\n\n const onAbort = () => {\n unsub?.unsubscribe();\n unsub = null;\n signal.removeEventListener('abort', onAbort);\n };\n\n return new ReadableStream<Result<TValue>>({\n start(controller) {\n unsub = observable.subscribe({\n next(data) {\n controller.enqueue({ ok: true, value: data });\n },\n error(error) {\n controller.enqueue({ ok: false, error });\n controller.close();\n },\n complete() {\n controller.close();\n },\n });\n\n if (signal.aborted) {\n onAbort();\n } else {\n signal.addEventListener('abort', onAbort, { once: true });\n }\n },\n cancel() {\n onAbort();\n },\n });\n}\n\n/** @internal */\nexport function observableToAsyncIterable<TValue>(\n observable: Observable<TValue, unknown>,\n signal: AbortSignal,\n): AsyncIterable<TValue> {\n const stream = observableToReadableStream(observable, signal);\n\n const reader = stream.getReader();\n const iterator: AsyncIterator<TValue> = {\n async next() {\n const value = await reader.read();\n if (value.done) {\n return {\n value: undefined,\n done: true,\n };\n }\n const { value: result } = value;\n if (!result.ok) {\n throw result.error;\n }\n return {\n value: result.value,\n done: false,\n };\n },\n async return() {\n await reader.cancel();\n return {\n value: undefined,\n done: true,\n };\n },\n };\n return {\n [Symbol.asyncIterator]() {\n return iterator;\n },\n };\n}\n","import { TRPCError } from '../error/TRPCError';\nimport { isObject } from '../utils';\nimport type { TRPCRequestInfo } from './types';\n\nexport function parseConnectionParamsFromUnknown(\n parsed: unknown,\n): TRPCRequestInfo['connectionParams'] {\n try {\n if (parsed === null) {\n return null;\n }\n if (!isObject(parsed)) {\n throw new Error('Expected object');\n }\n const nonStringValues = Object.entries(parsed).filter(\n ([_key, value]) => typeof value !== 'string',\n );\n\n if (nonStringValues.length > 0) {\n throw new Error(\n `Expected connectionParams to be string values. Got ${nonStringValues\n .map(([key, value]) => `${key}: ${typeof value}`)\n .join(', ')}`,\n );\n }\n return parsed as Record<string, string>;\n } catch (cause) {\n throw new TRPCError({\n code: 'PARSE_ERROR',\n message: 'Invalid connection params shape',\n cause,\n });\n }\n}\nexport function parseConnectionParamsFromString(\n str: string,\n): TRPCRequestInfo['connectionParams'] {\n let parsed: unknown;\n try {\n parsed = JSON.parse(str);\n } catch (cause) {\n throw new TRPCError({\n code: 'PARSE_ERROR',\n message: 'Not JSON-parsable query params',\n cause,\n });\n }\n return parseConnectionParamsFromUnknown(parsed);\n}\n","import { TRPCError } from '../error/TRPCError';\nimport type { ProcedureType } from '../procedure';\nimport { getProcedureAtPath, type AnyRouter } from '../router';\nimport { emptyObject, isObject } from '../utils';\nimport { parseConnectionParamsFromString } from './parseConnectionParams';\nimport type { TRPCAcceptHeader, TRPCRequestInfo } from './types';\n\ntype GetRequestInfoOptions = {\n path: string;\n req: Request;\n url: URL | null;\n searchParams: URLSearchParams;\n headers: Headers;\n router: AnyRouter;\n};\n\ntype ContentTypeHandler = {\n isMatch: (opts: Request) => boolean;\n parse: (opts: GetRequestInfoOptions) => Promise<TRPCRequestInfo>;\n};\n\n/**\n * Memoize a function that takes no arguments\n * @internal\n */\nfunction memo<TReturn>(fn: () => Promise<TReturn>) {\n let promise: Promise<TReturn> | null = null;\n const sym = Symbol.for('@trpc/server/http/memo');\n let value: TReturn | typeof sym = sym;\n return {\n /**\n * Lazily read the value\n */\n read: async (): Promise<TReturn> => {\n if (value !== sym) {\n return value;\n }\n\n // dedupes promises and catches errors\n promise ??= fn().catch((cause) => {\n if (cause instanceof TRPCError) {\n throw cause;\n }\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: cause instanceof Error ? cause.message : 'Invalid input',\n cause,\n });\n });\n\n value = await promise;\n promise = null;\n\n return value;\n },\n /**\n * Get an already stored result\n */\n result: (): TReturn | undefined => {\n return value !== sym ? value : undefined;\n },\n };\n}\n\nconst jsonContentTypeHandler: ContentTypeHandler = {\n isMatch(req) {\n return !!req.headers.get('content-type')?.startsWith('application/json');\n },\n async parse(opts) {\n const { req } = opts;\n const isBatchCall = opts.searchParams.get('batch') === '1';\n const paths = isBatchCall ? opts.path.split(',') : [opts.path];\n\n type InputRecord = Record<number, unknown>;\n const getInputs = memo(async (): Promise<InputRecord> => {\n let inputs: unknown = undefined;\n if (req.method === 'GET') {\n const queryInput = opts.searchParams.get('input');\n if (queryInput) {\n inputs = JSON.parse(queryInput);\n }\n } else {\n inputs = await req.json();\n }\n if (inputs === undefined) {\n return emptyObject();\n }\n\n if (!isBatchCall) {\n const result: InputRecord = emptyObject();\n result[0] =\n opts.router._def._config.transformer.input.deserialize(inputs);\n return result;\n }\n\n if (!isObject(inputs)) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: '\"input\" needs to be an object when doing a batch call',\n });\n }\n const acc: InputRecord = emptyObject();\n for (const index of paths.keys()) {\n const input = inputs[index];\n if (input !== undefined) {\n acc[index] =\n opts.router._def._config.transformer.input.deserialize(input);\n }\n }\n\n return acc;\n });\n\n const calls = await Promise.all(\n paths.map(\n async (path, index): Promise<TRPCRequestInfo['calls'][number]> => {\n const procedure = await getProcedureAtPath(opts.router, path);\n return {\n path,\n procedure,\n getRawInput: async () => {\n const inputs = await getInputs.read();\n let input = inputs[index];\n\n if (procedure?._def.type === 'subscription') {\n const lastEventId =\n opts.headers.get('last-event-id') ??\n opts.searchParams.get('lastEventId') ??\n opts.searchParams.get('Last-Event-Id');\n\n if (lastEventId) {\n if (isObject(input)) {\n input = {\n ...input,\n lastEventId: lastEventId,\n };\n } else {\n input ??= {\n lastEventId: lastEventId,\n };\n }\n }\n }\n return input;\n },\n result: () => {\n return getInputs.result()?.[index];\n },\n };\n },\n ),\n );\n\n const types = new Set(\n calls.map((call) => call.procedure?._def.type).filter(Boolean),\n );\n\n /* istanbul ignore if -- @preserve */\n if (types.size > 1) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: `Cannot mix procedure types in call: ${Array.from(types).join(\n ', ',\n )}`,\n });\n }\n const type: ProcedureType | 'unknown' =\n types.values().next().value ?? 'unknown';\n\n const connectionParamsStr = opts.searchParams.get('connectionParams');\n\n const info: TRPCRequestInfo = {\n isBatchCall,\n accept: req.headers.get('trpc-accept') as TRPCAcceptHeader | null,\n calls,\n type,\n connectionParams:\n connectionParamsStr === null\n ? null\n : parseConnectionParamsFromString(connectionParamsStr),\n signal: req.signal,\n url: opts.url,\n };\n return info;\n },\n};\n\nconst formDataContentTypeHandler: ContentTypeHandler = {\n isMatch(req) {\n return !!req.headers.get('content-type')?.startsWith('multipart/form-data');\n },\n async parse(opts) {\n const { req } = opts;\n if (req.method !== 'POST') {\n throw new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message:\n 'Only POST requests are supported for multipart/form-data requests',\n });\n }\n const getInputs = memo(async () => {\n const fd = await req.formData();\n return fd;\n });\n const procedure = await getProcedureAtPath(opts.router, opts.path);\n return {\n accept: null,\n calls: [\n {\n path: opts.path,\n getRawInput: getInputs.read,\n result: getInputs.result,\n procedure,\n },\n ],\n isBatchCall: false,\n type: 'mutation',\n connectionParams: null,\n signal: req.signal,\n url: opts.url,\n };\n },\n};\n\nconst octetStreamContentTypeHandler: ContentTypeHandler = {\n isMatch(req) {\n return !!req.headers\n .get('content-type')\n ?.startsWith('application/octet-stream');\n },\n async parse(opts) {\n const { req } = opts;\n if (req.method !== 'POST') {\n throw new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message:\n 'Only POST requests are supported for application/octet-stream requests',\n });\n }\n const getInputs = memo(async () => {\n return req.body;\n });\n return {\n calls: [\n {\n path: opts.path,\n getRawInput: getInputs.read,\n result: getInputs.result,\n procedure: await getProcedureAtPath(opts.router, opts.path),\n },\n ],\n isBatchCall: false,\n accept: null,\n type: 'mutation',\n connectionParams: null,\n signal: req.signal,\n url: opts.url,\n };\n },\n};\n\nconst handlers = [\n jsonContentTypeHandler,\n formDataContentTypeHandler,\n octetStreamContentTypeHandler,\n];\n\nfunction getContentTypeHandler(req: Request): ContentTypeHandler {\n const handler = handlers.find((handler) => handler.isMatch(req));\n if (handler) {\n return handler;\n }\n\n if (!handler && req.method === 'GET') {\n // fallback to JSON for get requests so GET-requests can be opened in browser easily\n return jsonContentTypeHandler;\n }\n\n throw new TRPCError({\n code: 'UNSUPPORTED_MEDIA_TYPE',\n message: req.headers.has('content-type')\n ? `Unsupported content-type \"${req.headers.get('content-type')}`\n : 'Missing content-type header',\n });\n}\n\nexport async function getRequestInfo(\n opts: GetRequestInfoOptions,\n): Promise<TRPCRequestInfo> {\n const handler = getContentTypeHandler(opts.req);\n return await handler.parse(opts);\n}\n","import { isObject } from '../utils';\n\nexport function isAbortError(\n error: unknown,\n): error is DOMException | Error | { name: 'AbortError' } {\n return isObject(error) && error['name'] === 'AbortError';\n}\n\nexport function throwAbortError(message = 'AbortError'): never {\n throw new DOMException(message, 'AbortError');\n}\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o: unknown): o is Record<string, unknown> {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n \nexport function isPlainObject(o: unknown): o is Record<string, unknown> {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","/* eslint-disable @typescript-eslint/unbound-method */\n \n \n\nimport type {\n PromiseExecutor,\n PromiseWithResolvers,\n ProxyPromise,\n SubscribedPromise,\n} from \"./types\";\n\n/** Memory safe (weakmapped) cache of the ProxyPromise for each Promise,\n * which is retained for the lifetime of the original Promise.\n */\nconst subscribableCache = new WeakMap<\n PromiseLike<unknown>,\n ProxyPromise<unknown>\n>();\n\n/** A NOOP function allowing a consistent interface for settled\n * SubscribedPromises (settled promises are not subscribed - they resolve\n * immediately). */\nconst NOOP = () => {\n // noop\n};\n\n/**\n * Every `Promise<T>` can be shadowed by a single `ProxyPromise<T>`. It is\n * created once, cached and reused throughout the lifetime of the Promise. Get a\n * Promise's ProxyPromise using `Unpromise.proxy(promise)`.\n *\n * The `ProxyPromise<T>` attaches handlers to the original `Promise<T>`\n * `.then()` and `.catch()` just once. Promises derived from it use a\n * subscription- (and unsubscription-) based mechanism that monitors these\n * handlers.\n *\n * Every time you call `.subscribe()`, `.then()` `.catch()` or `.finally()` on a\n * `ProxyPromise<T>` it returns a `SubscribedPromise<T>` having an additional\n * `unsubscribe()` method. Calling `unsubscribe()` detaches reference chains\n * from the original, potentially long-lived Promise, eliminating memory leaks.\n *\n * This approach can eliminate the memory leaks that otherwise come about from\n * repeated `race()` or `any()` calls invoking `.then()` and `.catch()` multiple\n * times on the same long-lived native Promise (subscriptions which can never be\n * cleaned up).\n *\n * `Unpromise.race(promises)` is a reference implementation of `Promise.race`\n * avoiding memory leaks when using long-lived unsettled Promises.\n *\n * `Unpromise.any(promises)` is a reference implementation of `Promise.any`\n * avoiding memory leaks when using long-lived unsettled Promises.\n *\n * `Unpromise.resolve(promise)` returns an ephemeral `SubscribedPromise<T>` for\n * any given `Promise<T>` facilitating arbitrary async/await patterns. Behind\n * the scenes, `resolve` is implemented simply as\n * `Unpromise.proxy(promise).subscribe()`. Don't forget to call `.unsubscribe()`\n * to tidy up!\n *\n */\nexport class Unpromise<T> implements ProxyPromise<T> {\n /** INSTANCE IMPLEMENTATION */\n\n /** The promise shadowed by this Unpromise<T> */\n protected readonly promise: Promise<T> | PromiseLike<T>;\n\n /** Promises expecting eventual settlement (unless unsubscribed first). This list is deleted\n * after the original promise settles - no further notifications will be issued. */\n protected subscribers: ReadonlyArray<PromiseWithResolvers<T>> | null = [];\n\n /** The Promise's settlement (recorded when it fulfils or rejects). This is consulted when\n * calling .subscribe() .then() .catch() .finally() to see if an immediately-resolving Promise\n * can be returned, and therefore subscription can be bypassed. */\n protected settlement: PromiseSettledResult<T> | null = null;\n\n /** Constructor accepts a normal Promise executor function like `new\n * Unpromise((resolve, reject) => {...})` or accepts a pre-existing Promise\n * like `new Unpromise(existingPromise)`. Adds `.then()` and `.catch()`\n * handlers to the Promise. These handlers pass fulfilment and rejection\n * notifications to downstream subscribers and maintains records of value\n * or error if the Promise ever settles. */\n protected constructor(promise: Promise<T>);\n protected constructor(promise: PromiseLike<T>);\n protected constructor(executor: PromiseExecutor<T>);\n protected constructor(arg: Promise<T> | PromiseLike<T> | PromiseExecutor<T>) {\n // handle either a Promise or a Promise executor function\n if (typeof arg === \"function\") {\n this.promise = new Promise(arg);\n } else {\n this.promise = arg;\n }\n\n // subscribe for eventual fulfilment and rejection\n\n // handle PromiseLike objects (that at least have .then)\n const thenReturn = this.promise.then((value) => {\n // atomically record fulfilment and detach subscriber list\n const { subscribers } = this;\n this.subscribers = null;\n this.settlement = {\n status: \"fulfilled\",\n value,\n };\n // notify fulfilment to subscriber list\n subscribers?.forEach(({ resolve }) => {\n resolve(value);\n });\n });\n\n // handle Promise (that also have a .catch behaviour)\n if (\"catch\" in thenReturn) {\n thenReturn.catch((reason) => {\n // atomically record rejection and detach subscriber list\n const { subscribers } = this;\n this.subscribers = null;\n this.settlement = {\n status: \"rejected\",\n reason,\n };\n // notify rejection to subscriber list\n subscribers?.forEach(({ reject }) => {\n reject(reason);\n });\n });\n }\n }\n\n /** Create a promise that mitigates uncontrolled subscription to a long-lived\n * Promise via .then() and .catch() - otherwise a source of memory leaks.\n *\n * The returned promise has an `unsubscribe()` method which can be called when\n * the Promise is no longer being tracked by application logic, and which\n * ensures that there is no reference chain from the original promise to the\n * new one, and therefore no memory leak.\n *\n * If original promise has not yet settled, this adds a new unique promise\n * that listens to then/catch events, along with an `unsubscribe()` method to\n * detach it.\n *\n * If original promise has settled, then creates a new Promise.resolve() or\n * Promise.reject() and provided unsubscribe is a noop.\n *\n * If you call `unsubscribe()` before the returned Promise has settled, it\n * will never settle.\n */\n subscribe(): SubscribedPromise<T> {\n // in all cases we will combine some promise with its unsubscribe function\n let promise: Promise<T>;\n let unsubscribe: () => void;\n\n const { settlement } = this;\n if (settlement === null) {\n // not yet settled - subscribe new promise. Expect eventual settlement\n if (this.subscribers === null) {\n // invariant - it is not settled, so it must have subscribers\n throw new Error(\"Unpromise settled but still has subscribers\");\n }\n const subscriber = withResolvers<T>();\n this.subscribers = listWithMember(this.subscribers, subscriber);\n promise = subscriber.promise;\n unsubscribe = () => {\n if (this.subscribers !== null) {\n this.subscribers = listWithoutMember(this.subscribers, subscriber);\n }\n };\n } else {\n // settled - don't create subscribed promise. Just resolve or reject\n const { status } = settlement;\n if (status === \"fulfilled\") {\n promise = Promise.resolve(settlement.value);\n } else {\n promise = Promise.reject(settlement.reason);\n }\n unsubscribe = NOOP;\n }\n\n // extend promise signature with the extra method\n return Object.assign(promise, { unsubscribe });\n }\n\n /** STANDARD PROMISE METHODS (but returning a SubscribedPromise) */\n\n then<TResult1 = T, TResult2 = never>(\n onfulfilled?:\n | ((value: T) => TResult1 | PromiseLike<TResult1>)\n | null\n ,\n onrejected?:\n | ((reason: any) => TResult2 | PromiseLike<TResult2>)\n | null\n \n ): SubscribedPromise<TResult1 | TResult2> {\n const subscribed = this.subscribe();\n const { unsubscribe } = subscribed;\n return Object.assign(subscribed.then(onfulfilled, onrejected), {\n unsubscribe,\n });\n }\n\n catch<TResult = never>(\n onrejected?:\n | ((reason: any) => TResult | PromiseLike<TResult>)\n | null\n \n ): SubscribedPromise<T | TResult> {\n const subscribed = this.subscribe();\n const { unsubscribe } = subscribed;\n return Object.assign(subscribed.catch(onrejected), {\n unsubscribe,\n });\n }\n\n finally(onfinally?: (() => void) | null ): SubscribedPromise<T> {\n const subscribed = this.subscribe();\n const { unsubscribe } = subscribed;\n return Object.assign(subscribed.finally(onfinally), {\n unsubscribe,\n });\n }\n\n /** TOSTRING SUPPORT */\n\n readonly [Symbol.toStringTag] = \"Unpromise\";\n\n /** Unpromise STATIC METHODS */\n\n /** Create or Retrieve the proxy Unpromise (a re-used Unpromise for the VM lifetime\n * of the provided Promise reference) */\n static proxy<T>(promise: PromiseLike<T>): ProxyPromise<T> {\n const cached = Unpromise.getSubscribablePromise(promise);\n return typeof cached !== \"undefined\"\n ? cached\n : Unpromise.createSubscribablePromise(promise);\n }\n\n /** Create and store an Unpromise keyed by an original Promise. */\n protected static createSubscribablePromise<T>(promise: PromiseLike<T>) {\n const created = new Unpromise<T>(promise);\n subscribableCache.set(promise, created as Unpromise<unknown>); // resolve promise to unpromise\n subscribableCache.set(created, created as Unpromise<unknown>); // resolve the unpromise to itself\n return created;\n }\n\n /** Retrieve a previously-created Unpromise keyed by an original Promise. */\n protected static getSubscribablePromise<T>(promise: PromiseLike<T>) {\n return subscribableCache.get(promise) as ProxyPromise<T> | undefined;\n }\n\n /** Promise STATIC METHODS */\n\n /** Lookup the Unpromise for this promise, and derive a SubscribedPromise from\n * it (that can be later unsubscribed to eliminate Memory leaks) */\n static resolve<T>(value: T | PromiseLike<T>) {\n const promise: PromiseLike<T> =\n typeof value === \"object\" &&\n value !== null &&\n \"then\" in value &&\n typeof value.then === \"function\"\n ? value\n : Promise.resolve(value);\n return Unpromise.proxy(promise).subscribe() as SubscribedPromise<\n Awaited<T>\n >;\n }\n\n /** Perform Promise.any() via SubscribedPromises, then unsubscribe them.\n * Equivalent to Promise.any but eliminates memory leaks from long-lived\n * promises accumulating .then() and .catch() subscribers. */\n static async any<T extends readonly unknown[] | []>(\n values: T\n ): Promise<Awaited<T[number]>>;\n static async any<T>(\n values: Iterable<T | PromiseLike<T>>\n ): Promise<Awaited<T>> {\n const valuesArray = Array.isArray(values) ? values : [...values];\n const subscribedPromises = valuesArray.map(Unpromise.resolve);\n try {\n return await Promise.any(subscribedPromises);\n } finally {\n subscribedPromises.forEach(({ unsubscribe }) => {\n unsubscribe();\n });\n }\n }\n\n /** Perform Promise.race via SubscribedPromises, then unsubscribe them.\n * Equivalent to Promise.race but eliminates memory leaks from long-lived\n * promises accumulating .then() and .catch() subscribers. */\n static async race<T extends readonly unknown[] | []>(\n values: T\n ): Promise<Awaited<T[number]>>;\n static async race<T>(\n values: Iterable<T | PromiseLike<T>>\n ): Promise<Awaited<T>> {\n const valuesArray = Array.isArray(values) ? values : [...values];\n const subscribedPromises = valuesArray.map(Unpromise.resolve);\n try {\n return await Promise.race(subscribedPromises);\n } finally {\n subscribedPromises.forEach(({ unsubscribe }) => {\n unsubscribe();\n });\n }\n }\n\n /** Create a race of SubscribedPromises that will fulfil to a single winning\n * Promise (in a 1-Tuple). Eliminates memory leaks from long-lived promises\n * accumulating .then() and .catch() subscribers. Allows simple logic to\n * consume the result, like...\n * ```ts\n * const [ winner ] = await Unpromise.race([ promiseA, promiseB ]);\n * if(winner === promiseB){\n * const result = await promiseB;\n * // do the thing\n * }\n * ```\n * */\n static async raceReferences<TPromise extends Promise<unknown>>(\n promises: readonly TPromise[]\n ) {\n // map each promise to an eventual 1-tuple containing itself\n const selfPromises = promises.map(resolveSelfTuple);\n\n // now race them. They will fulfil to a readonly [P] or reject.\n try {\n return await Promise.race(selfPromises);\n } finally {\n for (const promise of selfPromises) {\n // unsubscribe proxy promises when the race is over to mitigate memory leaks\n promise.unsubscribe();\n }\n }\n }\n}\n\n/** Promises a 1-tuple containing the original promise when it resolves. Allows\n * awaiting the eventual Promise ***reference*** (easy to destructure and\n * exactly compare with ===). Avoids resolving to the Promise ***value*** (which\n * may be ambiguous and therefore hard to identify as the winner of a race).\n * You can call unsubscribe on the Promise to mitigate memory leaks.\n * */\nexport function resolveSelfTuple<TPromise extends Promise<unknown>>(\n promise: TPromise\n): SubscribedPromise<readonly [TPromise]> {\n return Unpromise.proxy(promise).then(() => [promise] as const);\n}\n\n/** VENDORED (Future) PROMISE UTILITIES */\n\n/** Reference implementation of https://github.com/tc39/proposal-promise-with-resolvers */\nfunction withResolvers<T>(): PromiseWithResolvers<T> {\n let resolve!: PromiseWithResolvers<T>[\"resolve\"];\n let reject!: PromiseWithResolvers<T>[\"reject\"];\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n promise,\n resolve,\n reject,\n };\n}\n\n/** IMMUTABLE LIST OPERATIONS */\n\nfunction listWithMember<T>(arr: readonly T[], member: T): readonly T[] {\n return [...arr, member];\n}\n\nfunction listWithoutIndex<T>(arr: readonly T[], index: number) {\n return [...arr.slice(0, index), ...arr.slice(index + 1)];\n}\n\nfunction listWithoutMember<T>(arr: readonly T[], member: unknown) {\n const index = arr.indexOf(member as T);\n if (index !== -1) {\n return listWithoutIndex(arr, index);\n }\n return arr;\n}\n","// @ts-expect-error - polyfilling symbol\n// eslint-disable-next-line no-restricted-syntax\nSymbol.dispose ??= Symbol();\n\n// @ts-expect-error - polyfilling symbol\n// eslint-disable-next-line no-restricted-syntax\nSymbol.asyncDispose ??= Symbol();\n\n/**\n * Takes a value and a dispose function and returns a new object that implements the Disposable interface.\n * The returned object is the original value augmented with a Symbol.dispose method.\n * @param thing The value to make disposable\n * @param dispose Function to call when disposing the resource\n * @returns The original value with Symbol.dispose method added\n */\nexport function makeResource<T>(thing: T, dispose: () => void): T & Disposable {\n const it = thing as T & Partial<Disposable>;\n\n // eslint-disable-next-line no-restricted-syntax\n const existing = it[Symbol.dispose];\n\n // eslint-disable-next-line no-restricted-syntax\n it[Symbol.dispose] = () => {\n dispose();\n existing?.();\n };\n\n return it as T & Disposable;\n}\n\n/**\n * Takes a value and an async dispose function and returns a new object that implements the AsyncDisposable interface.\n * The returned object is the original value augmented with a Symbol.asyncDispose method.\n * @param thing The value to make async disposable\n * @param dispose Async function to call when disposing the resource\n * @returns The original value with Symbol.asyncDispose method added\n */\nexport function makeAsyncResource<T>(\n thing: T,\n dispose: () => Promise<void>,\n): T & AsyncDisposable {\n const it = thing as T & Partial<AsyncDisposable>;\n\n // eslint-disable-next-line no-restricted-syntax\n const existing = it[Symbol.asyncDispose];\n\n // eslint-disable-next-line no-restricted-syntax\n it[Symbol.asyncDispose] = async () => {\n await dispose();\n await existing?.();\n };\n\n return it as T & AsyncDisposable;\n}\n","import { makeResource } from './disposable';\n\nexport const disposablePromiseTimerResult = Symbol();\n\nexport function timerResource(ms: number) {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n return makeResource(\n {\n start() {\n if (timer) {\n throw new Error('Timer already started');\n }\n\n const promise = new Promise<typeof disposablePromiseTimerResult>(\n (resolve) => {\n timer = setTimeout(() => resolve(disposablePromiseTimerResult), ms);\n },\n );\n return promise;\n },\n },\n () => {\n if (timer) {\n clearTimeout(timer);\n }\n },\n );\n}\n","function _usingCtx() {\n var r = \"function\" == typeof SuppressedError ? SuppressedError : function (r, e) {\n var n = Error();\n return n.name = \"SuppressedError\", n.error = r, n.suppressed = e, n;\n },\n e = {},\n n = [];\n function using(r, e) {\n if (null != e) {\n if (Object(e) !== e) throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");\n if (r) var o = e[Symbol.asyncDispose || Symbol[\"for\"](\"Symbol.asyncDispose\")];\n if (void 0 === o && (o = e[Symbol.dispose || Symbol[\"for\"](\"Symbol.dispose\")], r)) var t = o;\n if (\"function\" != typeof o) throw new TypeError(\"Object is not disposable.\");\n t && (o = function o() {\n try {\n t.call(e);\n } catch (r) {\n return Promise.reject(r);\n }\n }), n.push({\n v: e,\n d: o,\n a: r\n });\n } else r && n.push({\n d: e,\n a: r\n });\n return e;\n }\n return {\n e: e,\n u: using.bind(null, !1),\n a: using.bind(null, !0),\n d: function d() {\n var o,\n t = this.e,\n s = 0;\n function next() {\n for (; o = n.pop();) try {\n if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);\n if (o.d) {\n var r = o.d.call(o.v);\n if (o.a) return s |= 2, Promise.resolve(r).then(next, err);\n } else s |= 1;\n } catch (r) {\n return err(r);\n }\n if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();\n if (t !== e) throw t;\n }\n function err(n) {\n return t = t !== e ? new r(n, t) : n, next();\n }\n return next();\n }\n };\n}\nmodule.exports = _usingCtx, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nfunction _awaitAsyncGenerator(e) {\n return new OverloadYield(e, 0);\n}\nmodule.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nfunction _wrapAsyncGenerator(e) {\n return function () {\n return new AsyncGenerator(e.apply(this, arguments));\n };\n}\nfunction AsyncGenerator(e) {\n var r, t;\n function resume(r, t) {\n try {\n var n = e[r](t),\n o = n.value,\n u = o instanceof OverloadYield;\n Promise.resolve(u ? o.v : o).then(function (t) {\n if (u) {\n var i = \"return\" === r ? \"return\" : \"next\";\n if (!o.k || t.done) return resume(i, t);\n t = e[i](t).value;\n }\n settle(n.done ? \"return\" : \"normal\", t);\n }, function (e) {\n resume(\"throw\", e);\n });\n } catch (e) {\n settle(\"throw\", e);\n }\n }\n function settle(e, n) {\n switch (e) {\n case \"return\":\n r.resolve({\n value: n,\n done: !0\n });\n break;\n case \"throw\":\n r.reject(n);\n break;\n default:\n r.resolve({\n value: n,\n done: !1\n });\n }\n (r = r.next) ? resume(r.key, r.arg) : t = null;\n }\n this._invoke = function (e, n) {\n return new Promise(function (o, u) {\n var i = {\n key: e,\n arg: n,\n resolve: o,\n reject: u,\n next: null\n };\n t ? t = t.next = i : (r = t = i, resume(e, n));\n });\n }, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n}\nAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, AsyncGenerator.prototype.next = function (e) {\n return this._invoke(\"next\", e);\n}, AsyncGenerator.prototype[\"throw\"] = function (e) {\n return this._invoke(\"throw\", e);\n}, AsyncGenerator.prototype[\"return\"] = function (e) {\n return this._invoke(\"return\", e);\n};\nmodule.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { Unpromise } from '../../../vendor/unpromise';\nimport { throwAbortError } from '../../http/abortError';\nimport { makeAsyncResource } from './disposable';\nimport { disposablePromiseTimerResult, timerResource } from './timerResource';\n\nexport function iteratorResource<TYield, TReturn, TNext>(\n iterable: AsyncIterable<TYield, TReturn, TNext>,\n): AsyncIterator<TYield, TReturn, TNext> & AsyncDisposable {\n const iterator = iterable[Symbol.asyncIterator]();\n\n // @ts-expect-error - this is added in node 24 which we don't officially support yet\n // eslint-disable-next-line no-restricted-syntax\n if (iterator[Symbol.asyncDispose]) {\n return iterator as AsyncIterator<TYield, TReturn, TNext> & AsyncDisposable;\n }\n\n return makeAsyncResource(iterator, async () => {\n await iterator.return?.();\n });\n}\n\n/**\n * Derives a new {@link AsyncGenerator} based of {@link iterable}, that yields its first\n * {@link count} values. Then, a grace period of {@link gracePeriodMs} is started in which further\n * values may still come through. After this period, the generator aborts.\n */\nexport async function* takeWithGrace<T>(\n iterable: AsyncIterable<T>,\n opts: {\n count: number;\n gracePeriodMs: number;\n },\n): AsyncGenerator<T> {\n await using iterator = iteratorResource(iterable);\n\n // declaration outside the loop for garbage collection reasons\n let result: null | IteratorResult<T> | typeof disposablePromiseTimerResult;\n\n using timer = timerResource(opts.gracePeriodMs);\n\n let count = opts.count;\n\n let timerPromise = new Promise<typeof disposablePromiseTimerResult>(() => {\n // never resolves\n });\n\n while (true) {\n result = await Unpromise.race([iterator.next(), timerPromise]);\n if (result === disposablePromiseTimerResult) {\n throwAbortError();\n }\n if (result.done) {\n return result.value;\n }\n yield result.value;\n if (--count === 0) {\n timerPromise = timer.start();\n }\n // free up reference for garbage collection\n result = null;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nexport function createDeferred<TValue = void>() {\n let resolve: (value: TValue) => void;\n let reject: (error: unknown) => void;\n const promise = new Promise<TValue>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { promise, resolve: resolve!, reject: reject! };\n}\nexport type Deferred<TValue> = ReturnType<typeof createDeferred<TValue>>;\n","import { createDeferred } from './createDeferred';\nimport { makeAsyncResource } from './disposable';\n\ntype ManagedIteratorResult<TYield, TReturn> =\n | { status: 'yield'; value: TYield }\n | { status: 'return'; value: TReturn }\n | { status: 'error'; error: unknown };\nfunction createManagedIterator<TYield, TReturn>(\n iterable: AsyncIterable<TYield, TReturn>,\n onResult: (result: ManagedIteratorResult<TYield, TReturn>) => void,\n) {\n const iterator = iterable[Symbol.asyncIterator]();\n let state: 'idle' | 'pending' | 'done' = 'idle';\n\n function cleanup() {\n state = 'done';\n onResult = () => {\n // noop\n };\n }\n\n function pull() {\n if (state !== 'idle') {\n return;\n }\n state = 'pending';\n\n const next = iterator.next();\n next\n .then((result) => {\n if (result.done) {\n state = 'done';\n onResult({ status: 'return', value: result.value });\n cleanup();\n return;\n }\n state = 'idle';\n onResult({ status: 'yield', value: result.value });\n })\n .catch((cause) => {\n onResult({ status: 'error', error: cause });\n cleanup();\n });\n }\n\n return {\n pull,\n destroy: async () => {\n cleanup();\n await iterator.return?.();\n },\n };\n}\ntype ManagedIterator<TYield, TReturn> = ReturnType<\n typeof createManagedIterator<TYield, TReturn>\n>;\n\ninterface MergedAsyncIterables<TYield>\n extends AsyncIterable<TYield, void, unknown> {\n add(iterable: AsyncIterable<TYield>): void;\n}\n\n/**\n * Creates a new async iterable that merges multiple async iterables into a single stream.\n * Values from the input iterables are yielded in the order they resolve, similar to Promise.race().\n *\n * New iterables can be added dynamically using the returned {@link MergedAsyncIterables.add} method, even after iteration has started.\n *\n * If any of the input iterables throws an error, that error will be propagated through the merged stream.\n * Other iterables will not continue to be processed.\n *\n * @template TYield The type of values yielded by the input iterables\n */\nexport function mergeAsyncIterables<TYield>(): MergedAsyncIterables<TYield> {\n let state: 'idle' | 'pending' | 'done' = 'idle';\n let flushSignal = createDeferred();\n\n /**\n * used while {@link state} is `idle`\n */\n const iterables: AsyncIterable<TYield, void, unknown>[] = [];\n /**\n * used while {@link state} is `pending`\n */\n const iterators = new Set<ManagedIterator<TYield, void>>();\n\n const buffer: Array<\n [\n iterator: ManagedIterator<TYield, void>,\n result: Exclude<\n ManagedIteratorResult<TYield, void>,\n { status: 'return' }\n >,\n ]\n > = [];\n\n function initIterable(iterable: AsyncIterable<TYield, void, unknown>) {\n if (state !== 'pending') {\n // shouldn't happen\n return;\n }\n const iterator = createManagedIterator(iterable, (result) => {\n if (state !== 'pending') {\n // shouldn't happen\n return;\n }\n switch (result.status) {\n case 'yield':\n buffer.push([iterator, result]);\n break;\n case 'return':\n iterators.delete(iterator);\n break;\n case 'error':\n buffer.push([iterator, result]);\n iterators.delete(iterator);\n break;\n }\n flushSignal.resolve();\n });\n iterators.add(iterator);\n iterator.pull();\n }\n\n return {\n add(iterable: AsyncIterable<TYield, void, unknown>) {\n switch (state) {\n case 'idle':\n iterables.push(iterable);\n break;\n case 'pending':\n initIterable(iterable);\n break;\n case 'done': {\n // shouldn't happen\n break;\n }\n }\n },\n async *[Symbol.asyncIterator]() {\n if (state !== 'idle') {\n throw new Error('Cannot iterate twice');\n }\n state = 'pending';\n\n await using _finally = makeAsyncResource({}, async () => {\n state = 'done';\n\n const errors: unknown[] = [];\n await Promise.all(\n Array.from(iterators.values()).map(async (it) => {\n try {\n await it.destroy();\n } catch (cause) {\n errors.push(cause);\n }\n }),\n );\n buffer.length = 0;\n iterators.clear();\n flushSignal.resolve();\n\n if (errors.length > 0) {\n throw new AggregateError(errors);\n }\n });\n\n while (iterables.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n initIterable(iterables.shift()!);\n }\n\n while (iterators.size > 0) {\n await flushSignal.promise;\n\n while (buffer.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const [iterator, result] = buffer.shift()!;\n\n switch (result.status) {\n case 'yield':\n yield result.value;\n iterator.pull();\n break;\n case 'error':\n throw result.error;\n }\n }\n flushSignal = createDeferred();\n }\n },\n };\n}\n","/**\n * Creates a ReadableStream from an AsyncIterable.\n *\n * @param iterable - The source AsyncIterable to stream from\n * @returns A ReadableStream that yields values from the AsyncIterable\n */\nexport function readableStreamFrom<TYield>(\n iterable: AsyncIterable<TYield, void>,\n): ReadableStream<TYield> {\n const iterator = iterable[Symbol.asyncIterator]();\n\n return new ReadableStream({\n async cancel() {\n await iterator.return?.();\n },\n\n async pull(controller) {\n const result = await iterator.next();\n\n if (result.done) {\n controller.close();\n return;\n }\n\n controller.enqueue(result.value);\n },\n });\n}\n","import { Unpromise } from '../../../vendor/unpromise';\nimport { iteratorResource } from './asyncIterable';\nimport { disposablePromiseTimerResult, timerResource } from './timerResource';\n\nexport const PING_SYM = Symbol('ping');\n\n/**\n * Derives a new {@link AsyncGenerator} based of {@link iterable}, that yields {@link PING_SYM}\n * whenever no value has been yielded for {@link pingIntervalMs}.\n */\nexport async function* withPing<TValue>(\n iterable: AsyncIterable<TValue>,\n pingIntervalMs: number,\n): AsyncGenerator<TValue | typeof PING_SYM> {\n await using iterator = iteratorResource(iterable);\n\n // declaration outside the loop for garbage collection reasons\n let result:\n | null\n | IteratorResult<TValue>\n | typeof disposablePromiseTimerResult;\n\n let nextPromise = iterator.next();\n\n while (true) {\n using pingPromise = timerResource(pingIntervalMs);\n\n result = await Unpromise.race([nextPromise, pingPromise.start()]);\n\n if (result === disposablePromiseTimerResult) {\n // cancelled\n\n yield PING_SYM;\n continue;\n }\n\n if (result.done) {\n return result.value;\n }\n\n nextPromise = iterator.next();\n yield result.value;\n\n // free up reference for garbage collection\n result = null;\n }\n}\n","function _asyncIterator(r) {\n var n,\n t,\n o,\n e = 2;\n for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n if (t && null != (n = r[t])) return n.call(r);\n if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n t = \"@@asyncIterator\", o = \"@@iterator\";\n }\n throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n function AsyncFromSyncIteratorContinuation(r) {\n if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n var n = r.done;\n return Promise.resolve(r.value).then(function (r) {\n return {\n value: r,\n done: n\n };\n });\n }\n return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n this.s = r, this.n = r.next;\n }, AsyncFromSyncIterator.prototype = {\n s: null,\n n: null,\n next: function next() {\n return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n },\n \"return\": function _return(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.resolve({\n value: r,\n done: !0\n }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n },\n \"throw\": function _throw(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n }\n }, new AsyncFromSyncIterator(r);\n}\nmodule.exports = _asyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { isPlainObject } from '@trpc/server/vendor/is-plain-object';\nimport {\n emptyObject,\n isAsyncIterable,\n isFunction,\n isObject,\n run,\n} from '../utils';\nimport { iteratorResource } from './utils/asyncIterable';\nimport type { Deferred } from './utils/createDeferred';\nimport { createDeferred } from './utils/createDeferred';\nimport { makeResource } from './utils/disposable';\nimport { mergeAsyncIterables } from './utils/mergeAsyncIterables';\nimport { readableStreamFrom } from './utils/readableStreamFrom';\nimport { PING_SYM, withPing } from './utils/withPing';\n\n/**\n * A subset of the standard ReadableStream properties needed by tRPC internally.\n * @see ReadableStream from lib.dom.d.ts\n */\nexport type WebReadableStreamEsque = {\n getReader: () => ReadableStreamDefaultReader<Uint8Array>;\n};\n\nexport type NodeJSReadableStreamEsque = {\n on(\n eventName: string | symbol,\n listener: (...args: any[]) => void,\n ): NodeJSReadableStreamEsque;\n};\n\n// ---------- types\nconst CHUNK_VALUE_TYPE_PROMISE = 0;\ntype CHUNK_VALUE_TYPE_PROMISE = typeof CHUNK_VALUE_TYPE_PROMISE;\nconst CHUNK_VALUE_TYPE_ASYNC_ITERABLE = 1;\ntype CHUNK_VALUE_TYPE_ASYNC_ITERABLE = typeof CHUNK_VALUE_TYPE_ASYNC_ITERABLE;\n\nconst PROMISE_STATUS_FULFILLED = 0;\ntype PROMISE_STATUS_FULFILLED = typeof PROMISE_STATUS_FULFILLED;\nconst PROMISE_STATUS_REJECTED = 1;\ntype PROMISE_STATUS_REJECTED = typeof PROMISE_STATUS_REJECTED;\n\nconst ASYNC_ITERABLE_STATUS_RETURN = 0;\ntype ASYNC_ITERABLE_STATUS_RETURN = typeof ASYNC_ITERABLE_STATUS_RETURN;\nconst ASYNC_ITERABLE_STATUS_YIELD = 1;\ntype ASYNC_ITERABLE_STATUS_YIELD = typeof ASYNC_ITERABLE_STATUS_YIELD;\nconst ASYNC_ITERABLE_STATUS_ERROR = 2;\ntype ASYNC_ITERABLE_STATUS_ERROR = typeof ASYNC_ITERABLE_STATUS_ERROR;\n\ntype ChunkDefinitionKey =\n // root should be replaced\n | null\n // at array path\n | number\n // at key path\n | string;\n\ntype ChunkIndex = number & { __chunkIndex: true };\ntype ChunkValueType =\n | CHUNK_VALUE_TYPE_PROMISE\n | CHUNK_VALUE_TYPE_ASYNC_ITERABLE;\ntype ChunkDefinition = [\n key: ChunkDefinitionKey,\n type: ChunkValueType,\n chunkId: ChunkIndex,\n];\ntype EncodedValue = [\n // data\n [unknown] | [],\n // chunk descriptions\n ...ChunkDefinition[],\n];\n\ntype Head = Record<string, EncodedValue>;\ntype PromiseChunk =\n | [\n chunkIndex: ChunkIndex,\n status: PROMISE_STATUS_FULFILLED,\n value: EncodedValue,\n ]\n | [chunkIndex: ChunkIndex, status: PROMISE_STATUS_REJECTED, error: unknown];\ntype IterableChunk =\n | [\n chunkIndex: ChunkIndex,\n status: ASYNC_ITERABLE_STATUS_RETURN,\n value: EncodedValue,\n ]\n | [\n chunkIndex: ChunkIndex,\n status: ASYNC_ITERABLE_STATUS_YIELD,\n value: EncodedValue,\n ]\n | [\n chunkIndex: ChunkIndex,\n status: ASYNC_ITERABLE_STATUS_ERROR,\n error: unknown,\n ];\ntype ChunkData = PromiseChunk | IterableChunk;\ntype PlaceholderValue = 0 & { __placeholder: true };\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return (\n (isObject(value) || isFunction(value)) &&\n typeof value?.['then'] === 'function' &&\n typeof value?.['catch'] === 'function'\n );\n}\n\ntype Serialize = (value: any) => any;\ntype Deserialize = (value: any) => any;\n\ntype PathArray = readonly (string | number)[];\nexport type ProducerOnError = (opts: {\n error: unknown;\n path: PathArray;\n}) => void;\nexport interface JSONLProducerOptions {\n serialize?: Serialize;\n data: Record<string, unknown> | unknown[];\n onError?: ProducerOnError;\n formatError?: (opts: { error: unknown; path: PathArray }) => unknown;\n maxDepth?: number;\n /**\n * Interval in milliseconds to send a ping to the client to keep the connection alive\n * This will be sent as a whitespace character\n * @default undefined\n */\n pingMs?: number;\n}\n\nclass MaxDepthError extends Error {\n constructor(public path: (string | number)[]) {\n super('Max depth reached at path: ' + path.join('.'));\n }\n}\n\nasync function* createBatchStreamProducer(\n opts: JSONLProducerOptions,\n): AsyncIterable<Head | ChunkData | typeof PING_SYM, void> {\n const { data } = opts;\n let counter = 0 as ChunkIndex;\n const placeholder = 0 as PlaceholderValue;\n\n const mergedIterables = mergeAsyncIterables<ChunkData>();\n function registerAsync(\n callback: (idx: ChunkIndex) => AsyncIterable<ChunkData, void>,\n ) {\n const idx = counter++ as ChunkIndex;\n\n const iterable = callback(idx);\n mergedIterables.add(iterable);\n\n return idx;\n }\n\n function encodePromise(promise: Promise<unknown>, path: (string | number)[]) {\n return registerAsync(async function* (idx) {\n const error = checkMaxDepth(path);\n if (error) {\n // Catch any errors from the original promise to ensure they're reported\n promise.catch((cause) => {\n opts.onError?.({ error: cause, path });\n });\n // Replace the promise with a rejected one containing the max depth error\n promise = Promise.reject(error);\n }\n try {\n const next = await promise;\n yield [idx, PROMISE_STATUS_FULFILLED, encode(next, path)];\n } catch (cause) {\n opts.onError?.({ error: cause, path });\n yield [\n idx,\n PROMISE_STATUS_REJECTED,\n opts.formatError?.({ error: cause, path }),\n ];\n }\n });\n }\n function encodeAsyncIterable(\n iterable: AsyncIterable<unknown>,\n path: (string | number)[],\n ) {\n return registerAsync(async function* (idx) {\n const error = checkMaxDepth(path);\n if (error) {\n throw error;\n }\n await using iterator = iteratorResource(iterable);\n\n try {\n while (true) {\n const next = await iterator.next();\n if (next.done) {\n yield [idx, ASYNC_ITERABLE_STATUS_RETURN, encode(next.value, path)];\n break;\n }\n yield [idx, ASYNC_ITERABLE_STATUS_YIELD, encode(next.value, path)];\n }\n } catch (cause) {\n opts.onError?.({ error: cause, path });\n\n yield [\n idx,\n ASYNC_ITERABLE_STATUS_ERROR,\n opts.formatError?.({ error: cause, path }),\n ];\n }\n });\n }\n function checkMaxDepth(path: (string | number)[]) {\n if (opts.maxDepth && path.length > opts.maxDepth) {\n return new MaxDepthError(path);\n }\n return null;\n }\n function encodeAsync(\n value: unknown,\n path: (string | number)[],\n ): null | [type: ChunkValueType, chunkId: ChunkIndex] {\n if (isPromise(value)) {\n return [CHUNK_VALUE_TYPE_PROMISE, encodePromise(value, path)];\n }\n if (isAsyncIterable(value)) {\n if (opts.maxDepth && path.length >= opts.maxDepth) {\n throw new Error('Max depth reached');\n }\n return [\n CHUNK_VALUE_TYPE_ASYNC_ITERABLE,\n encodeAsyncIterable(value, path),\n ];\n }\n return null;\n }\n function encode(value: unknown, path: (string | number)[]): EncodedValue {\n if (value === undefined) {\n return [[]];\n }\n const reg = encodeAsync(value, path);\n if (reg) {\n return [[placeholder], [null, ...reg]];\n }\n\n if (!isPlainObject(value)) {\n return [[value]];\n }\n\n const newObj: Record<string, unknown> = emptyObject();\n const asyncValues: ChunkDefinition[] = [];\n for (const [key, item] of Object.entries(value)) {\n const transformed = encodeAsync(item, [...path, key]);\n if (!transformed) {\n newObj[key] = item;\n continue;\n }\n newObj[key] = placeholder;\n asyncValues.push([key, ...transformed]);\n }\n return [[newObj], ...asyncValues];\n }\n\n const newHead: Head = emptyObject();\n for (const [key, item] of Object.entries(data)) {\n newHead[key] = encode(item, [key]);\n }\n\n yield newHead;\n\n let iterable: AsyncIterable<ChunkData | typeof PING_SYM, void> =\n mergedIterables;\n if (opts.pingMs) {\n iterable = withPing(mergedIterables, opts.pingMs);\n }\n\n for await (const value of iterable) {\n yield value;\n }\n}\n/**\n * JSON Lines stream producer\n * @see https://jsonlines.org/\n */\nexport function jsonlStreamProducer(opts: JSONLProducerOptions) {\n let stream = readableStreamFrom(createBatchStreamProducer(opts));\n\n const { serialize } = opts;\n if (serialize) {\n stream = stream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n if (chunk === PING_SYM) {\n controller.enqueue(PING_SYM);\n } else {\n controller.enqueue(serialize(chunk));\n }\n },\n }),\n );\n }\n\n return stream\n .pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n if (chunk === PING_SYM) {\n controller.enqueue(' ');\n } else {\n controller.enqueue(JSON.stringify(chunk) + '\\n');\n }\n },\n }),\n )\n .pipeThrough(new TextEncoderStream());\n}\n\nclass AsyncError extends Error {\n constructor(public readonly data: unknown) {\n super('Received error from server');\n }\n}\nexport type ConsumerOnError = (opts: { error: unknown }) => void;\n\nconst nodeJsStreamToReaderEsque = (source: NodeJSReadableStreamEsque) => {\n return {\n getReader() {\n const stream = new ReadableStream<Uint8Array>({\n start(controller) {\n source.on('data', (chunk) => {\n controller.enqueue(chunk);\n });\n source.on('end', () => {\n controller.close();\n });\n source.on('error', (error) => {\n controller.error(error);\n });\n },\n });\n return stream.getReader();\n },\n };\n};\n\nfunction createLineAccumulator(\n from: NodeJSReadableStreamEsque | WebReadableStreamEsque,\n) {\n const reader =\n 'getReader' in from\n ? from.getReader()\n : nodeJsStreamToReaderEsque(from).getReader();\n\n let lineAggregate = '';\n\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await reader.read();\n\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n cancel() {\n return reader.cancel();\n },\n })\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(\n new TransformStream<string, string>({\n transform(chunk, controller) {\n lineAggregate += chunk;\n const parts = lineAggregate.split('\\n');\n lineAggregate = parts.pop() ?? '';\n for (const part of parts) {\n controller.enqueue(part);\n }\n },\n }),\n );\n}\nfunction createConsumerStream<THead>(\n from: NodeJSReadableStreamEsque | WebReadableStreamEsque,\n) {\n const stream = createLineAccumulator(from);\n\n let sentHead = false;\n return stream.pipeThrough(\n new TransformStream<string, ChunkData | THead>({\n transform(line, controller) {\n if (!sentHead) {\n const head = JSON.parse(line);\n controller.enqueue(head as THead);\n sentHead = true;\n } else {\n const chunk: ChunkData = JSON.parse(line);\n controller.enqueue(chunk);\n }\n },\n }),\n );\n}\n\n/**\n * Creates a handler for managing stream controllers and their lifecycle\n */\nfunction createStreamsManager(abortController: AbortController) {\n const controllerMap = new Map<\n ChunkIndex,\n ReturnType<typeof createStreamController>\n >();\n\n /**\n * Checks if there are no pending controllers or deferred promises\n */\n function isEmpty() {\n return Array.from(controllerMap.values()).every((c) => c.closed);\n }\n\n /**\n * Creates a stream controller\n */\n function createStreamController() {\n let originalController: ReadableStreamDefaultController<ChunkData>;\n const stream = new ReadableStream<ChunkData>({\n start(controller) {\n originalController = controller;\n },\n });\n\n const streamController = {\n enqueue: (v: ChunkData) => originalController.enqueue(v),\n close: () => {\n originalController.close();\n\n clear();\n\n if (isEmpty()) {\n abortController.abort();\n }\n },\n closed: false,\n getReaderResource: () => {\n const reader = stream.getReader();\n\n return makeResource(reader, () => {\n streamController.close();\n reader.releaseLock();\n });\n },\n error: (reason: unknown) => {\n originalController.error(reason);\n\n clear();\n },\n };\n function clear() {\n Object.assign(streamController, {\n closed: true,\n close: () => {\n // noop\n },\n enqueue: () => {\n // noop\n },\n getReaderResource: null,\n error: () => {\n // noop\n },\n });\n }\n\n return streamController;\n }\n\n /**\n * Gets or creates a stream controller\n */\n function getOrCreate(chunkId: ChunkIndex) {\n let c = controllerMap.get(chunkId);\n if (!c) {\n c = createStreamController();\n controllerMap.set(chunkId, c);\n }\n return c;\n }\n\n /**\n * Cancels all pending controllers and rejects deferred promises\n */\n function cancelAll(reason: unknown) {\n for (const controller of controllerMap.values()) {\n controller.error(reason);\n }\n }\n\n return {\n getOrCreate,\n cancelAll,\n };\n}\n\n/**\n * JSON Lines stream consumer\n * @see https://jsonlines.org/\n */\nexport async function jsonlStreamConsumer<THead>(opts: {\n from: NodeJSReadableStreamEsque | WebReadableStreamEsque;\n deserialize?: Deserialize;\n onError?: ConsumerOnError;\n formatError?: (opts: { error: unknown }) => Error;\n /**\n * This `AbortController` will be triggered when there are no more listeners to the stream.\n */\n abortController: AbortController;\n}) {\n const { deserialize = (v) => v } = opts;\n\n let source = createConsumerStream<Head>(opts.from);\n if (deserialize) {\n source = source.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(deserialize(chunk));\n },\n }),\n );\n }\n let headDeferred: null | Deferred<THead> = createDeferred();\n\n const streamManager = createStreamsManager(opts.abortController);\n\n function decodeChunkDefinition(value: ChunkDefinition) {\n const [_path, type, chunkId] = value;\n\n const controller = streamManager.getOrCreate(chunkId);\n\n switch (type) {\n case CHUNK_VALUE_TYPE_PROMISE: {\n return run(async () => {\n using reader = controller.getReaderResource();\n\n const { value } = await reader.read();\n const [_chunkId, status, data] = value as PromiseChunk;\n switch (status) {\n case PROMISE_STATUS_FULFILLED:\n return decode(data);\n case PROMISE_STATUS_REJECTED:\n throw opts.formatError?.({ error: data }) ?? new AsyncError(data);\n }\n });\n }\n case CHUNK_VALUE_TYPE_ASYNC_ITERABLE: {\n return run(async function* () {\n using reader = controller.getReaderResource();\n\n while (true) {\n const { value } = await reader.read();\n\n const [_chunkId, status, data] = value as IterableChunk;\n\n switch (status) {\n case ASYNC_ITERABLE_STATUS_YIELD:\n yield decode(data);\n break;\n case ASYNC_ITERABLE_STATUS_RETURN:\n return decode(data);\n case ASYNC_ITERABLE_STATUS_ERROR:\n throw (\n opts.formatError?.({ error: data }) ?? new AsyncError(data)\n );\n }\n }\n });\n }\n }\n }\n\n function decode(value: EncodedValue): unknown {\n const [[data], ...asyncProps] = value;\n\n for (const value of asyncProps) {\n const [key] = value;\n const decoded = decodeChunkDefinition(value);\n\n if (key === null) {\n return decoded;\n }\n\n (data as any)[key] = decoded;\n }\n return data;\n }\n\n const closeOrAbort = (reason?: unknown) => {\n headDeferred?.reject(reason);\n streamManager.cancelAll(reason);\n };\n\n source\n .pipeTo(\n new WritableStream({\n write(chunkOrHead) {\n if (headDeferred) {\n const head = chunkOrHead as Record<number | string, unknown>;\n\n for (const [key, value] of Object.entries(chunkOrHead)) {\n const parsed = decode(value as any);\n head[key] = parsed;\n }\n headDeferred.resolve(head as THead);\n headDeferred = null;\n\n return;\n }\n const chunk = chunkOrHead as ChunkData;\n const [idx] = chunk;\n\n const controller = streamManager.getOrCreate(idx);\n controller.enqueue(chunk);\n },\n close: closeOrAbort,\n abort: closeOrAbort,\n }),\n )\n .catch((error) => {\n opts.onError?.({ error });\n closeOrAbort(error);\n });\n\n return [await headDeferred.promise] as const;\n}\n","var OverloadYield = require(\"./OverloadYield.js\");\nfunction _asyncGeneratorDelegate(t) {\n var e = {},\n n = !1;\n function pump(e, r) {\n return n = !0, r = new Promise(function (n) {\n n(t[e](r));\n }), {\n done: !1,\n value: new OverloadYield(r, 1)\n };\n }\n return e[\"undefined\" != typeof Symbol && Symbol.iterator || \"@@iterator\"] = function () {\n return this;\n }, e.next = function (t) {\n return n ? (n = !1, t) : pump(\"next\", t);\n }, \"function\" == typeof t[\"throw\"] && (e[\"throw\"] = function (t) {\n if (n) throw n = !1, t;\n return pump(\"throw\", t);\n }), \"function\" == typeof t[\"return\"] && (e[\"return\"] = function (t) {\n return n ? (n = !1, t) : pump(\"return\", t);\n }), e;\n}\nmodule.exports = _asyncGeneratorDelegate, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { Unpromise } from '../../vendor/unpromise';\nimport { getTRPCErrorFromUnknown } from '../error/TRPCError';\nimport { isAbortError } from '../http/abortError';\nimport type { MaybePromise } from '../types';\nimport { emptyObject, identity, run } from '../utils';\nimport type { EventSourceLike } from './sse.types';\nimport type { inferTrackedOutput } from './tracked';\nimport { isTrackedEnvelope } from './tracked';\nimport { takeWithGrace } from './utils/asyncIterable';\nimport { makeAsyncResource } from './utils/disposable';\nimport { readableStreamFrom } from './utils/readableStreamFrom';\nimport {\n disposablePromiseTimerResult,\n timerResource,\n} from './utils/timerResource';\nimport { PING_SYM, withPing } from './utils/withPing';\n\ntype Serialize = (value: any) => any;\ntype Deserialize = (value: any) => any;\n\n/**\n * @internal\n */\nexport interface SSEPingOptions {\n /**\n * Enable ping comments sent from the server\n * @default false\n */\n enabled: boolean;\n /**\n * Interval in milliseconds\n * @default 1000\n */\n intervalMs?: number;\n}\n\nexport interface SSEClientOptions {\n /**\n * Timeout and reconnect after inactivity in milliseconds\n * @default undefined\n */\n reconnectAfterInactivityMs?: number;\n}\n\nexport interface SSEStreamProducerOptions<TValue = unknown> {\n serialize?: Serialize;\n data: AsyncIterable<TValue>;\n\n maxDepth?: number;\n ping?: SSEPingOptions;\n /**\n * Maximum duration in milliseconds for the request before ending the stream\n * @default undefined\n */\n maxDurationMs?: number;\n /**\n * End the request immediately after data is sent\n * Only useful for serverless runtimes that do not support streaming responses\n * @default false\n */\n emitAndEndImmediately?: boolean;\n formatError?: (opts: { error: unknown }) => unknown;\n /**\n * Client-specific options - these will be sent to the client as part of the first message\n * @default {}\n */\n client?: SSEClientOptions;\n}\n\nconst PING_EVENT = 'ping';\nconst SERIALIZED_ERROR_EVENT = 'serialized-error';\nconst CONNECTED_EVENT = 'connected';\nconst RETURN_EVENT = 'return';\n\ninterface SSEvent {\n id?: string;\n data: unknown;\n comment?: string;\n event?: string;\n}\n/**\n *\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n */\nexport function sseStreamProducer<TValue = unknown>(\n opts: SSEStreamProducerOptions<TValue>,\n) {\n const { serialize = identity } = opts;\n\n const ping: Required<SSEPingOptions> = {\n enabled: opts.ping?.enabled ?? false,\n intervalMs: opts.ping?.intervalMs ?? 1000,\n };\n const client: SSEClientOptions = opts.client ?? {};\n\n if (\n ping.enabled &&\n client.reconnectAfterInactivityMs &&\n ping.intervalMs > client.reconnectAfterInactivityMs\n ) {\n throw new Error(\n `Ping interval must be less than client reconnect interval to prevent unnecessary reconnection - ping.intervalMs: ${ping.intervalMs} client.reconnectAfterInactivityMs: ${client.reconnectAfterInactivityMs}`,\n );\n }\n\n async function* generator(): AsyncIterable<SSEvent, void> {\n yield {\n event: CONNECTED_EVENT,\n data: JSON.stringify(client),\n };\n\n type TIteratorValue = Awaited<TValue> | typeof PING_SYM;\n\n let iterable: AsyncIterable<TValue | typeof PING_SYM> = opts.data;\n\n if (opts.emitAndEndImmediately) {\n iterable = takeWithGrace(iterable, {\n count: 1,\n gracePeriodMs: 1,\n });\n }\n\n if (ping.enabled && ping.intervalMs !== Infinity && ping.intervalMs > 0) {\n iterable = withPing(iterable, ping.intervalMs);\n }\n\n // We need those declarations outside the loop for garbage collection reasons. If they were\n // declared inside, they would not be freed until the next value is present.\n let value: null | TIteratorValue;\n let chunk: null | SSEvent;\n\n for await (value of iterable) {\n if (value === PING_SYM) {\n yield { event: PING_EVENT, data: '' };\n continue;\n }\n\n chunk = isTrackedEnvelope(value)\n ? { id: value[0], data: value[1] }\n : { data: value };\n\n chunk.data = JSON.stringify(serialize(chunk.data));\n\n yield chunk;\n\n // free up references for garbage collection\n value = null;\n chunk = null;\n }\n }\n\n async function* generatorWithErrorHandling(): AsyncIterable<SSEvent, void> {\n try {\n yield* generator();\n\n yield {\n event: RETURN_EVENT,\n data: '',\n };\n } catch (cause) {\n if (isAbortError(cause)) {\n // ignore abort errors, send any other errors\n return;\n }\n // `err` must be caused by `opts.data`, `JSON.stringify` or `serialize`.\n // So, a user error in any case.\n const error = getTRPCErrorFromUnknown(cause);\n const data = opts.formatError?.({ error }) ?? null;\n yield {\n event: SERIALIZED_ERROR_EVENT,\n data: JSON.stringify(serialize(data)),\n };\n }\n }\n\n const stream = readableStreamFrom(generatorWithErrorHandling());\n\n return stream\n .pipeThrough(\n new TransformStream({\n transform(chunk, controller: TransformStreamDefaultController<string>) {\n if ('event' in chunk) {\n controller.enqueue(`event: ${chunk.event}\\n`);\n }\n if ('data' in chunk) {\n controller.enqueue(`data: ${chunk.data}\\n`);\n }\n if ('id' in chunk) {\n controller.enqueue(`id: ${chunk.id}\\n`);\n }\n if ('comment' in chunk) {\n controller.enqueue(`: ${chunk.comment}\\n`);\n }\n controller.enqueue('\\n\\n');\n },\n }),\n )\n .pipeThrough(new TextEncoderStream());\n}\n\ninterface ConsumerStreamResultBase<TConfig extends ConsumerConfig> {\n eventSource: InstanceType<TConfig['EventSource']> | null;\n}\n\ninterface ConsumerStreamResultData<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'data';\n data: inferTrackedOutput<TConfig['data']>;\n}\n\ninterface ConsumerStreamResultError<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'serialized-error';\n error: TConfig['error'];\n}\n\ninterface ConsumerStreamResultConnecting<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'connecting';\n event: EventSourceLike.EventOf<TConfig['EventSource']> | null;\n}\ninterface ConsumerStreamResultTimeout<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'timeout';\n ms: number;\n}\ninterface ConsumerStreamResultPing<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'ping';\n}\n\ninterface ConsumerStreamResultConnected<TConfig extends ConsumerConfig>\n extends ConsumerStreamResultBase<TConfig> {\n type: 'connected';\n options: SSEClientOptions;\n}\n\ntype ConsumerStreamResult<TConfig extends ConsumerConfig> =\n | ConsumerStreamResultData<TConfig>\n | ConsumerStreamResultError<TConfig>\n | ConsumerStreamResultConnecting<TConfig>\n | ConsumerStreamResultTimeout<TConfig>\n | ConsumerStreamResultPing<TConfig>\n | ConsumerStreamResultConnected<TConfig>;\n\nexport interface SSEStreamConsumerOptions<TConfig extends ConsumerConfig> {\n url: () => MaybePromise<string>;\n init: () =>\n | MaybePromise<EventSourceLike.InitDictOf<TConfig['EventSource']>>\n | undefined;\n signal: AbortSignal;\n deserialize?: Deserialize;\n EventSource: TConfig['EventSource'];\n}\n\ninterface ConsumerConfig {\n data: unknown;\n error: unknown;\n EventSource: EventSourceLike.AnyConstructor;\n}\n\nasync function withTimeout<T>(opts: {\n promise: Promise<T>;\n timeoutMs: number;\n onTimeout: () => Promise<NoInfer<T>>;\n}): Promise<T> {\n using timeoutPromise = timerResource(opts.timeoutMs);\n const res = await Unpromise.race([opts.promise, timeoutPromise.start()]);\n\n if (res === disposablePromiseTimerResult) {\n return await opts.onTimeout();\n }\n return res;\n}\n\n/**\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n */\nexport function sseStreamConsumer<TConfig extends ConsumerConfig>(\n opts: SSEStreamConsumerOptions<TConfig>,\n): AsyncIterable<ConsumerStreamResult<TConfig>> {\n const { deserialize = (v) => v } = opts;\n\n let clientOptions: SSEClientOptions = emptyObject();\n\n const signal = opts.signal;\n\n let _es: InstanceType<TConfig['EventSource']> | null = null;\n\n const createStream = () =>\n new ReadableStream<ConsumerStreamResult<TConfig>>({\n async start(controller) {\n const [url, init] = await Promise.all([opts.url(), opts.init()]);\n const eventSource = (_es = new opts.EventSource(\n url,\n init,\n ) as InstanceType<TConfig['EventSource']>);\n\n controller.enqueue({\n type: 'connecting',\n eventSource: _es,\n event: null,\n });\n\n eventSource.addEventListener(CONNECTED_EVENT, (_msg) => {\n const msg = _msg as EventSourceLike.MessageEvent;\n\n const options: SSEClientOptions = JSON.parse(msg.data);\n\n clientOptions = options;\n controller.enqueue({\n type: 'connected',\n options,\n eventSource,\n });\n });\n\n eventSource.addEventListener(SERIALIZED_ERROR_EVENT, (_msg) => {\n const msg = _msg as EventSourceLike.MessageEvent;\n\n controller.enqueue({\n type: 'serialized-error',\n error: deserialize(JSON.parse(msg.data)),\n eventSource,\n });\n });\n eventSource.addEventListener(PING_EVENT, () => {\n controller.enqueue({\n type: 'ping',\n eventSource,\n });\n });\n eventSource.addEventListener(RETURN_EVENT, () => {\n eventSource.close();\n controller.close();\n _es = null;\n });\n eventSource.addEventListener('error', (event) => {\n if (eventSource.readyState === eventSource.CLOSED) {\n controller.error(event);\n } else {\n controller.enqueue({\n type: 'connecting',\n eventSource,\n event,\n });\n }\n });\n eventSource.addEventListener('message', (_msg) => {\n const msg = _msg as EventSourceLike.MessageEvent;\n\n const chunk = deserialize(JSON.parse(msg.data));\n\n const def: SSEvent = {\n data: chunk,\n };\n if (msg.lastEventId) {\n def.id = msg.lastEventId;\n }\n controller.enqueue({\n type: 'data',\n data: def as inferTrackedOutput<TConfig['data']>,\n eventSource,\n });\n });\n\n const onAbort = () => {\n try {\n eventSource.close();\n controller.close();\n } catch {\n // ignore errors in case the controller is already closed\n }\n };\n if (signal.aborted) {\n onAbort();\n } else {\n signal.addEventListener('abort', onAbort);\n }\n },\n cancel() {\n _es?.close();\n },\n });\n\n const getStreamResource = () => {\n let stream = createStream();\n let reader = stream.getReader();\n\n async function dispose() {\n await reader.cancel();\n _es = null;\n }\n\n return makeAsyncResource(\n {\n read() {\n return reader.read();\n },\n async recreate() {\n await dispose();\n\n stream = createStream();\n reader = stream.getReader();\n },\n },\n dispose,\n );\n };\n\n return run(async function* () {\n await using stream = getStreamResource();\n\n while (true) {\n let promise = stream.read();\n\n const timeoutMs = clientOptions.reconnectAfterInactivityMs;\n if (timeoutMs) {\n promise = withTimeout({\n promise,\n timeoutMs,\n onTimeout: async () => {\n const res: Awaited<typeof promise> = {\n value: {\n type: 'timeout',\n ms: timeoutMs,\n eventSource: _es,\n },\n done: false,\n };\n // Close and release old reader\n await stream.recreate();\n\n return res;\n },\n });\n }\n\n const result = await promise;\n\n if (result.done) {\n return result.value;\n }\n yield result.value;\n }\n });\n}\n\nexport const sseHeaders = {\n 'Content-Type': 'text/event-stream',\n 'Cache-Control': 'no-cache, no-transform',\n 'X-Accel-Buffering': 'no',\n Connection: 'keep-alive',\n} as const;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport {\n isObservable,\n observableToAsyncIterable,\n} from '../../observable/observable';\nimport { getErrorShape } from '../error/getErrorShape';\nimport { getTRPCErrorFromUnknown, TRPCError } from '../error/TRPCError';\nimport type { ProcedureType } from '../procedure';\nimport {\n type AnyRouter,\n type inferRouterContext,\n type inferRouterError,\n} from '../router';\nimport type { TRPCResponse } from '../rpc';\nimport { isPromise, jsonlStreamProducer } from '../stream/jsonl';\nimport { sseHeaders, sseStreamProducer } from '../stream/sse';\nimport { transformTRPCResponse } from '../transformer';\nimport {\n abortSignalsAnyPonyfill,\n isAsyncIterable,\n isObject,\n run,\n} from '../utils';\nimport { getRequestInfo } from './contentType';\nimport { getHTTPStatusCode } from './getHTTPStatusCode';\nimport type {\n HTTPBaseHandlerOptions,\n ResolveHTTPRequestOptionsContextFn,\n TRPCRequestInfo,\n} from './types';\n\nfunction errorToAsyncIterable(err: TRPCError): AsyncIterable<never> {\n return run(async function* () {\n throw err;\n });\n}\ntype HTTPMethods =\n | 'GET'\n | 'POST'\n | 'HEAD'\n | 'OPTIONS'\n | 'PUT'\n | 'DELETE'\n | 'PATCH';\n\nfunction combinedAbortController(signal: AbortSignal) {\n const controller = new AbortController();\n const combinedSignal = abortSignalsAnyPonyfill([signal, controller.signal]);\n return {\n signal: combinedSignal,\n controller,\n };\n}\n\nconst TYPE_ACCEPTED_METHOD_MAP: Record<ProcedureType, HTTPMethods[]> = {\n mutation: ['POST'],\n query: ['GET'],\n subscription: ['GET'],\n};\nconst TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE: Record<\n ProcedureType,\n HTTPMethods[]\n> = {\n // never allow GET to do a mutation\n mutation: ['POST'],\n query: ['GET', 'POST'],\n subscription: ['GET', 'POST'],\n};\n\ninterface ResolveHTTPRequestOptions<TRouter extends AnyRouter>\n extends HTTPBaseHandlerOptions<TRouter, Request> {\n createContext: ResolveHTTPRequestOptionsContextFn<TRouter>;\n req: Request;\n path: string;\n /**\n * If the request had an issue before reaching the handler\n */\n error: TRPCError | null;\n}\n\nfunction initResponse<TRouter extends AnyRouter, TRequest>(initOpts: {\n ctx: inferRouterContext<TRouter> | undefined;\n info: TRPCRequestInfo | undefined;\n responseMeta?: HTTPBaseHandlerOptions<TRouter, TRequest>['responseMeta'];\n untransformedJSON:\n | TRPCResponse<unknown, inferRouterError<TRouter>>\n | TRPCResponse<unknown, inferRouterError<TRouter>>[]\n | null;\n errors: TRPCError[];\n headers: Headers;\n}) {\n const {\n ctx,\n info,\n responseMeta,\n untransformedJSON,\n errors = [],\n headers,\n } = initOpts;\n\n let status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;\n\n const eagerGeneration = !untransformedJSON;\n const data = eagerGeneration\n ? []\n : Array.isArray(untransformedJSON)\n ? untransformedJSON\n : [untransformedJSON];\n\n const meta =\n responseMeta?.({\n ctx,\n info,\n paths: info?.calls.map((call) => call.path),\n data,\n errors,\n eagerGeneration,\n type:\n info?.calls.find((call) => call.procedure?._def.type)?.procedure?._def\n .type ?? 'unknown',\n }) ?? {};\n\n if (meta.headers) {\n if (meta.headers instanceof Headers) {\n for (const [key, value] of meta.headers.entries()) {\n headers.append(key, value);\n }\n } else {\n /**\n * @deprecated, delete in v12\n */\n for (const [key, value] of Object.entries(meta.headers)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n headers.append(key, v);\n }\n } else if (typeof value === 'string') {\n headers.set(key, value);\n }\n }\n }\n }\n if (meta.status) {\n status = meta.status;\n }\n\n return {\n status,\n };\n}\n\nfunction caughtErrorToData<TRouter extends AnyRouter>(\n cause: unknown,\n errorOpts: {\n opts: Pick<\n ResolveHTTPRequestOptions<TRouter>,\n 'onError' | 'req' | 'router'\n >;\n ctx: inferRouterContext<TRouter> | undefined;\n type: ProcedureType | 'unknown';\n path?: string;\n input?: unknown;\n },\n) {\n const { router, req, onError } = errorOpts.opts;\n const error = getTRPCErrorFromUnknown(cause);\n onError?.({\n error,\n path: errorOpts.path,\n input: errorOpts.input,\n ctx: errorOpts.ctx,\n type: errorOpts.type,\n req,\n });\n const untransformedJSON = {\n error: getErrorShape({\n config: router._def._config,\n error,\n type: errorOpts.type,\n path: errorOpts.path,\n input: errorOpts.input,\n ctx: errorOpts.ctx,\n }),\n };\n const transformedJSON = transformTRPCResponse(\n router._def._config,\n untransformedJSON,\n );\n const body = JSON.stringify(transformedJSON);\n return {\n error,\n untransformedJSON,\n body,\n };\n}\n\n/**\n * Check if a value is a stream-like object\n * - if it's an async iterable\n * - if it's an object with async iterables or promises\n */\nfunction isDataStream(v: unknown) {\n if (!isObject(v)) {\n return false;\n }\n\n if (isAsyncIterable(v)) {\n return true;\n }\n\n return (\n Object.values(v).some(isPromise) || Object.values(v).some(isAsyncIterable)\n );\n}\n\ntype ResultTuple<T> = [undefined, T] | [TRPCError, undefined];\n\nexport async function resolveResponse<TRouter extends AnyRouter>(\n opts: ResolveHTTPRequestOptions<TRouter>,\n): Promise<Response> {\n const { router, req } = opts;\n const headers = new Headers([['vary', 'trpc-accept']]);\n const config = router._def._config;\n\n const url = new URL(req.url);\n\n if (req.method === 'HEAD') {\n // can be used for lambda warmup\n return new Response(null, {\n status: 204,\n });\n }\n\n const allowBatching = opts.allowBatching ?? opts.batching?.enabled ?? true;\n const allowMethodOverride =\n (opts.allowMethodOverride ?? false) && req.method === 'POST';\n\n type $Context = inferRouterContext<TRouter>;\n\n const infoTuple: ResultTuple<TRPCRequestInfo> = await run(async () => {\n try {\n return [\n undefined,\n await getRequestInfo({\n req,\n path: decodeURIComponent(opts.path),\n router,\n searchParams: url.searchParams,\n headers: opts.req.headers,\n url,\n }),\n ];\n } catch (cause) {\n return [getTRPCErrorFromUnknown(cause), undefined];\n }\n });\n\n interface ContextManager {\n valueOrUndefined: () => $Context | undefined;\n value: () => $Context;\n create: (info: TRPCRequestInfo) => Promise<void>;\n }\n const ctxManager: ContextManager = run(() => {\n let result: ResultTuple<$Context> | undefined = undefined;\n return {\n valueOrUndefined: () => {\n if (!result) {\n return undefined;\n }\n return result[1];\n },\n value: () => {\n const [err, ctx] = result!;\n if (err) {\n throw err;\n }\n return ctx;\n },\n create: async (info) => {\n if (result) {\n throw new Error(\n 'This should only be called once - report a bug in tRPC',\n );\n }\n try {\n const ctx = await opts.createContext({\n info,\n });\n result = [undefined, ctx];\n } catch (cause) {\n result = [getTRPCErrorFromUnknown(cause), undefined];\n }\n },\n };\n });\n\n const methodMapper = allowMethodOverride\n ? TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE\n : TYPE_ACCEPTED_METHOD_MAP;\n\n /**\n * @deprecated\n */\n const isStreamCall = req.headers.get('trpc-accept') === 'application/jsonl';\n\n const experimentalSSE = config.sse?.enabled ?? true;\n try {\n const [infoError, info] = infoTuple;\n if (infoError) {\n throw infoError;\n }\n if (info.isBatchCall && !allowBatching) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: `Batching is not enabled on the server`,\n });\n }\n /* istanbul ignore if -- @preserve */\n if (isStreamCall && !info.isBatchCall) {\n throw new TRPCError({\n message: `Streaming requests must be batched (you can do a batch of 1)`,\n code: 'BAD_REQUEST',\n });\n }\n await ctxManager.create(info);\n\n interface RPCResultOk {\n data: unknown;\n }\n type RPCResult = ResultTuple<RPCResultOk>;\n const rpcCalls = info.calls.map(async (call): Promise<RPCResult> => {\n const proc = call.procedure;\n const combinedAbort = combinedAbortController(opts.req.signal);\n try {\n if (opts.error) {\n throw opts.error;\n }\n\n if (!proc) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: `No procedure found on path \"${call.path}\"`,\n });\n }\n\n if (!methodMapper[proc._def.type].includes(req.method as HTTPMethods)) {\n throw new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message: `Unsupported ${req.method}-request to ${proc._def.type} procedure at path \"${call.path}\"`,\n });\n }\n\n if (proc._def.type === 'subscription') {\n /* istanbul ignore if -- @preserve */\n if (info.isBatchCall) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: `Cannot batch subscription calls`,\n });\n }\n\n if (config.sse?.maxDurationMs) {\n function cleanup() {\n clearTimeout(timer);\n combinedAbort.signal.removeEventListener('abort', cleanup);\n\n combinedAbort.controller.abort();\n }\n const timer = setTimeout(cleanup, config.sse.maxDurationMs);\n combinedAbort.signal.addEventListener('abort', cleanup);\n }\n }\n const data: unknown = await proc({\n path: call.path,\n getRawInput: call.getRawInput,\n ctx: ctxManager.value(),\n type: proc._def.type,\n signal: combinedAbort.signal,\n });\n return [undefined, { data }];\n } catch (cause) {\n const error = getTRPCErrorFromUnknown(cause);\n const input = call.result();\n\n opts.onError?.({\n error,\n path: call.path,\n input,\n ctx: ctxManager.valueOrUndefined(),\n type: call.procedure?._def.type ?? 'unknown',\n req: opts.req,\n });\n\n return [error, undefined];\n }\n });\n\n // ----------- response handlers -----------\n if (!info.isBatchCall) {\n const [call] = info.calls;\n const [error, result] = await rpcCalls[0]!;\n\n switch (info.type) {\n case 'unknown':\n case 'mutation':\n case 'query': {\n // httpLink\n headers.set('content-type', 'application/json');\n\n if (isDataStream(result?.data)) {\n throw new TRPCError({\n code: 'UNSUPPORTED_MEDIA_TYPE',\n message:\n 'Cannot use stream-like response in non-streaming request - use httpBatchStreamLink',\n });\n }\n const res: TRPCResponse<unknown, inferRouterError<TRouter>> = error\n ? {\n error: getErrorShape({\n config,\n ctx: ctxManager.valueOrUndefined(),\n error,\n input: call!.result(),\n path: call!.path,\n type: info.type,\n }),\n }\n : { result: { data: result.data } };\n\n const headResponse = initResponse({\n ctx: ctxManager.valueOrUndefined(),\n info,\n responseMeta: opts.responseMeta,\n errors: error ? [error] : [],\n headers,\n untransformedJSON: [res],\n });\n return new Response(\n JSON.stringify(transformTRPCResponse(config, res)),\n {\n status: headResponse.status,\n headers,\n },\n );\n }\n case 'subscription': {\n // httpSubscriptionLink\n\n const iterable: AsyncIterable<unknown> = run(() => {\n if (error) {\n return errorToAsyncIterable(error);\n }\n if (!experimentalSSE) {\n return errorToAsyncIterable(\n new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message: 'Missing experimental flag \"sseSubscriptions\"',\n }),\n );\n }\n\n if (!isObservable(result.data) && !isAsyncIterable(result.data)) {\n return errorToAsyncIterable(\n new TRPCError({\n message: `Subscription ${\n call!.path\n } did not return an observable or a AsyncGenerator`,\n code: 'INTERNAL_SERVER_ERROR',\n }),\n );\n }\n const dataAsIterable = isObservable(result.data)\n ? observableToAsyncIterable(result.data, opts.req.signal)\n : result.data;\n return dataAsIterable;\n });\n\n const stream = sseStreamProducer({\n ...config.sse,\n data: iterable,\n serialize: (v) => config.transformer.output.serialize(v),\n formatError(errorOpts) {\n const error = getTRPCErrorFromUnknown(errorOpts.error);\n const input = call?.result();\n const path = call?.path;\n const type = call?.procedure?._def.type ?? 'unknown';\n\n opts.onError?.({\n error,\n path,\n input,\n ctx: ctxManager.valueOrUndefined(),\n req: opts.req,\n type,\n });\n\n const shape = getErrorShape({\n config,\n ctx: ctxManager.valueOrUndefined(),\n error,\n input,\n path,\n type,\n });\n\n return shape;\n },\n });\n for (const [key, value] of Object.entries(sseHeaders)) {\n headers.set(key, value);\n }\n\n const headResponse = initResponse({\n ctx: ctxManager.valueOrUndefined(),\n info,\n responseMeta: opts.responseMeta,\n errors: [],\n headers,\n untransformedJSON: null,\n });\n\n return new Response(stream, {\n headers,\n status: headResponse.status,\n });\n }\n }\n }\n\n // batch response handlers\n if (info.accept === 'application/jsonl') {\n // httpBatchStreamLink\n headers.set('content-type', 'application/json');\n headers.set('transfer-encoding', 'chunked');\n const headResponse = initResponse({\n ctx: ctxManager.valueOrUndefined(),\n info,\n responseMeta: opts.responseMeta,\n errors: [],\n headers,\n untransformedJSON: null,\n });\n const stream = jsonlStreamProducer({\n ...config.jsonl,\n /**\n * Example structure for `maxDepth: 4`:\n * {\n * // 1\n * 0: {\n * // 2\n * result: {\n * // 3\n * data: // 4\n * }\n * }\n * }\n */\n maxDepth: Infinity,\n data: rpcCalls.map(async (res) => {\n const [error, result] = await res;\n\n const call = info.calls[0];\n\n if (error) {\n return {\n error: getErrorShape({\n config,\n ctx: ctxManager.valueOrUndefined(),\n error,\n input: call!.result(),\n path: call!.path,\n type: call!.procedure?._def.type ?? 'unknown',\n }),\n };\n }\n\n /**\n * Not very pretty, but we need to wrap nested data in promises\n * Our stream producer will only resolve top-level async values or async values that are directly nested in another async value\n */\n const iterable = isObservable(result.data)\n ? observableToAsyncIterable(result.data, opts.req.signal)\n : Promise.resolve(result.data);\n return {\n result: Promise.resolve({\n data: iterable,\n }),\n };\n }),\n serialize: (data) => config.transformer.output.serialize(data),\n onError: (cause) => {\n opts.onError?.({\n error: getTRPCErrorFromUnknown(cause),\n path: undefined,\n input: undefined,\n ctx: ctxManager.valueOrUndefined(),\n req: opts.req,\n type: info?.type ?? 'unknown',\n });\n },\n\n formatError(errorOpts) {\n const call = info?.calls[errorOpts.path[0] as any];\n\n const error = getTRPCErrorFromUnknown(errorOpts.error);\n const input = call?.result();\n const path = call?.path;\n const type = call?.procedure?._def.type ?? 'unknown';\n\n // no need to call `onError` here as it will be propagated through the stream itself\n\n const shape = getErrorShape({\n config,\n ctx: ctxManager.valueOrUndefined(),\n error,\n input,\n path,\n type,\n });\n\n return shape;\n },\n });\n\n return new Response(stream, {\n headers,\n status: headResponse.status,\n });\n }\n\n // httpBatchLink\n /**\n * Non-streaming response:\n * - await all responses in parallel, blocking on the slowest one\n * - create headers with known response body\n * - return a complete HTTPResponse\n */\n headers.set('content-type', 'application/json');\n const results: RPCResult[] = (await Promise.all(rpcCalls)).map(\n (res): RPCResult => {\n const [error, result] = res;\n if (error) {\n return res;\n }\n\n if (isDataStream(result.data)) {\n return [\n new TRPCError({\n code: 'UNSUPPORTED_MEDIA_TYPE',\n message:\n 'Cannot use stream-like response in non-streaming request - use httpBatchStreamLink',\n }),\n undefined,\n ];\n }\n return res;\n },\n );\n const resultAsRPCResponse = results.map(\n (\n [error, result],\n index,\n ): TRPCResponse<unknown, inferRouterError<TRouter>> => {\n const call = info.calls[index]!;\n if (error) {\n return {\n error: getErrorShape({\n config,\n ctx: ctxManager.valueOrUndefined(),\n error,\n input: call.result(),\n path: call.path,\n type: call.procedure?._def.type ?? 'unknown',\n }),\n };\n }\n return {\n result: { data: result.data },\n };\n },\n );\n\n const errors = results\n .map(([error]) => error)\n .filter(Boolean) as TRPCError[];\n\n const headResponse = initResponse({\n ctx: ctxManager.valueOrUndefined(),\n info,\n responseMeta: opts.responseMeta,\n untransformedJSON: resultAsRPCResponse,\n errors,\n headers,\n });\n\n return new Response(\n JSON.stringify(transformTRPCResponse(config, resultAsRPCResponse)),\n {\n status: headResponse.status,\n headers,\n },\n );\n } catch (cause) {\n const [_infoError, info] = infoTuple;\n const ctx = ctxManager.valueOrUndefined();\n // we get here if\n // - batching is called when it's not enabled\n // - `createContext()` throws\n // - `router._def._config.transformer.output.serialize()` throws\n // - post body is too large\n // - input deserialization fails\n // - `errorFormatter` return value is malformed\n const { error, untransformedJSON, body } = caughtErrorToData(cause, {\n opts,\n ctx: ctxManager.valueOrUndefined(),\n type: info?.type ?? 'unknown',\n });\n\n const headResponse = initResponse({\n ctx,\n info,\n responseMeta: opts.responseMeta,\n untransformedJSON,\n errors: [error],\n headers,\n });\n\n return new Response(body, {\n status: headResponse.status,\n headers,\n });\n }\n}\n","import { TRPCError } from './error/TRPCError';\nimport type { ParseFn } from './parser';\nimport type { ProcedureType } from './procedure';\nimport type { GetRawInputFn, Overwrite, Simplify } from './types';\nimport { isObject } from './utils';\n\n/** @internal */\nexport const middlewareMarker = 'middlewareMarker' as 'middlewareMarker' & {\n __brand: 'middlewareMarker';\n};\ntype MiddlewareMarker = typeof middlewareMarker;\n\ninterface MiddlewareResultBase {\n /**\n * All middlewares should pass through their `next()`'s output.\n * Requiring this marker makes sure that can't be forgotten at compile-time.\n */\n readonly marker: MiddlewareMarker;\n}\n\ninterface MiddlewareOKResult<_TContextOverride> extends MiddlewareResultBase {\n ok: true;\n data: unknown;\n // this could be extended with `input`/`rawInput` later\n}\n\ninterface MiddlewareErrorResult<_TContextOverride>\n extends MiddlewareResultBase {\n ok: false;\n error: TRPCError;\n}\n\n/**\n * @internal\n */\nexport type MiddlewareResult<_TContextOverride> =\n | MiddlewareErrorResult<_TContextOverride>\n | MiddlewareOKResult<_TContextOverride>;\n\n/**\n * @internal\n */\nexport interface MiddlewareBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n> {\n /**\n * Create a new builder based on the current middleware builder\n */\n unstable_pipe<$ContextOverridesOut>(\n fn:\n | MiddlewareFunction<\n TContext,\n TMeta,\n TContextOverrides,\n $ContextOverridesOut,\n TInputOut\n >\n | MiddlewareBuilder<\n Overwrite<TContext, TContextOverrides>,\n TMeta,\n $ContextOverridesOut,\n TInputOut\n >,\n ): MiddlewareBuilder<\n TContext,\n TMeta,\n Overwrite<TContextOverrides, $ContextOverridesOut>,\n TInputOut\n >;\n\n /**\n * List of middlewares within this middleware builder\n */\n _middlewares: MiddlewareFunction<\n TContext,\n TMeta,\n TContextOverrides,\n object,\n TInputOut\n >[];\n}\n\n/**\n * @internal\n */\nexport type MiddlewareFunction<\n TContext,\n TMeta,\n TContextOverridesIn,\n $ContextOverridesOut,\n TInputOut,\n> = {\n (opts: {\n ctx: Simplify<Overwrite<TContext, TContextOverridesIn>>;\n type: ProcedureType;\n path: string;\n input: TInputOut;\n getRawInput: GetRawInputFn;\n meta: TMeta | undefined;\n signal: AbortSignal | undefined;\n next: {\n (): Promise<MiddlewareResult<TContextOverridesIn>>;\n <$ContextOverride>(opts: {\n ctx?: $ContextOverride;\n input?: unknown;\n }): Promise<MiddlewareResult<$ContextOverride>>;\n (opts: {\n getRawInput: GetRawInputFn;\n }): Promise<MiddlewareResult<TContextOverridesIn>>;\n };\n }): Promise<MiddlewareResult<$ContextOverridesOut>>;\n _type?: string | undefined;\n};\n\nexport type AnyMiddlewareFunction = MiddlewareFunction<any, any, any, any, any>;\nexport type AnyMiddlewareBuilder = MiddlewareBuilder<any, any, any, any>;\n/**\n * @internal\n */\nexport function createMiddlewareFactory<\n TContext,\n TMeta,\n TInputOut = unknown,\n>() {\n function createMiddlewareInner(\n middlewares: AnyMiddlewareFunction[],\n ): AnyMiddlewareBuilder {\n return {\n _middlewares: middlewares,\n unstable_pipe(middlewareBuilderOrFn) {\n const pipedMiddleware =\n '_middlewares' in middlewareBuilderOrFn\n ? middlewareBuilderOrFn._middlewares\n : [middlewareBuilderOrFn];\n\n return createMiddlewareInner([...middlewares, ...pipedMiddleware]);\n },\n };\n }\n\n function createMiddleware<$ContextOverrides>(\n fn: MiddlewareFunction<\n TContext,\n TMeta,\n object,\n $ContextOverrides,\n TInputOut\n >,\n ): MiddlewareBuilder<TContext, TMeta, $ContextOverrides, TInputOut> {\n return createMiddlewareInner([fn]);\n }\n\n return createMiddleware;\n}\n\n/**\n * Create a standalone middleware\n * @see https://trpc.io/docs/v11/server/middlewares#experimental-standalone-middlewares\n * @deprecated use `.concat()` instead\n */\nexport const experimental_standaloneMiddleware = <\n TCtx extends {\n ctx?: object;\n meta?: object;\n input?: unknown;\n },\n>() => ({\n create: createMiddlewareFactory<\n TCtx extends { ctx: infer T extends object } ? T : any,\n TCtx extends { meta: infer T extends object } ? T : object,\n TCtx extends { input: infer T } ? T : unknown\n >(),\n});\n\n/**\n * @internal\n * Please note, `trpc-openapi` uses this function.\n */\nexport function createInputMiddleware<TInput>(parse: ParseFn<TInput>) {\n const inputMiddleware: AnyMiddlewareFunction =\n async function inputValidatorMiddleware(opts) {\n let parsedInput: ReturnType<typeof parse>;\n\n const rawInput = await opts.getRawInput();\n try {\n parsedInput = await parse(rawInput);\n } catch (cause) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n cause,\n });\n }\n\n // Multiple input parsers\n const combinedInput =\n isObject(opts.input) && isObject(parsedInput)\n ? {\n ...opts.input,\n ...parsedInput,\n }\n : parsedInput;\n\n return opts.next({ input: combinedInput });\n };\n inputMiddleware._type = 'input';\n return inputMiddleware;\n}\n\n/**\n * @internal\n */\nexport function createOutputMiddleware<TOutput>(parse: ParseFn<TOutput>) {\n const outputMiddleware: AnyMiddlewareFunction =\n async function outputValidatorMiddleware({ next }) {\n const result = await next();\n if (!result.ok) {\n // pass through failures without validating\n return result;\n }\n try {\n const data = await parse(result.data);\n return {\n ...result,\n data,\n };\n } catch (cause) {\n throw new TRPCError({\n message: 'Output validation failed',\n code: 'INTERNAL_SERVER_ERROR',\n cause,\n });\n }\n };\n outputMiddleware._type = 'output';\n return outputMiddleware;\n}\n","import type { StandardSchemaV1 } from \"./spec\";\n\n/** A schema error with useful information. */\n\nexport class StandardSchemaV1Error extends Error {\n /** The schema issues. */\n public readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;\n\n /**\n * Creates a schema error with useful information.\n *\n * @param issues The schema issues.\n */\n constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>) {\n super(issues[0]?.message);\n this.name = 'SchemaError';\n this.issues = issues;\n }\n}\n","import { StandardSchemaV1Error } from '../vendor/standard-schema-v1/error';\nimport { type StandardSchemaV1 } from '../vendor/standard-schema-v1/spec';\n\n// zod / typeschema\nexport type ParserZodEsque<TInput, TParsedInput> = {\n _input: TInput;\n _output: TParsedInput;\n};\n\nexport type ParserValibotEsque<TInput, TParsedInput> = {\n schema: {\n _types?: {\n input: TInput;\n output: TParsedInput;\n };\n };\n};\n\nexport type ParserArkTypeEsque<TInput, TParsedInput> = {\n inferIn: TInput;\n infer: TParsedInput;\n};\n\nexport type ParserStandardSchemaEsque<TInput, TParsedInput> = StandardSchemaV1<\n TInput,\n TParsedInput\n>;\n\nexport type ParserMyZodEsque<TInput> = {\n parse: (input: any) => TInput;\n};\n\nexport type ParserSuperstructEsque<TInput> = {\n create: (input: unknown) => TInput;\n};\n\nexport type ParserCustomValidatorEsque<TInput> = (\n input: unknown,\n) => Promise<TInput> | TInput;\n\nexport type ParserYupEsque<TInput> = {\n validateSync: (input: unknown) => TInput;\n};\n\nexport type ParserScaleEsque<TInput> = {\n assert(value: unknown): asserts value is TInput;\n};\n\nexport type ParserWithoutInput<TInput> =\n | ParserCustomValidatorEsque<TInput>\n | ParserMyZodEsque<TInput>\n | ParserScaleEsque<TInput>\n | ParserSuperstructEsque<TInput>\n | ParserYupEsque<TInput>;\n\nexport type ParserWithInputOutput<TInput, TParsedInput> =\n | ParserZodEsque<TInput, TParsedInput>\n | ParserValibotEsque<TInput, TParsedInput>\n | ParserArkTypeEsque<TInput, TParsedInput>\n | ParserStandardSchemaEsque<TInput, TParsedInput>;\n\nexport type Parser = ParserWithInputOutput<any, any> | ParserWithoutInput<any>;\n\nexport type inferParser<TParser extends Parser> =\n TParser extends ParserStandardSchemaEsque<infer $TIn, infer $TOut>\n ? {\n in: $TIn;\n out: $TOut;\n }\n : TParser extends ParserWithInputOutput<infer $TIn, infer $TOut>\n ? {\n in: $TIn;\n out: $TOut;\n }\n : TParser extends ParserWithoutInput<infer $InOut>\n ? {\n in: $InOut;\n out: $InOut;\n }\n : never;\n\nexport type ParseFn<TType> = (value: unknown) => Promise<TType> | TType;\n\nexport function getParseFn<TType>(procedureParser: Parser): ParseFn<TType> {\n const parser = procedureParser as any;\n const isStandardSchema = '~standard' in parser;\n\n if (typeof parser === 'function' && typeof parser.assert === 'function') {\n // ParserArkTypeEsque - arktype schemas shouldn't be called as a function because they return a union type instead of throwing\n return parser.assert.bind(parser);\n }\n\n if (typeof parser === 'function' && !isStandardSchema) {\n // ParserValibotEsque (>= v0.31.0)\n // ParserCustomValidatorEsque - note the check for standard-schema conformance - some libraries like `effect` use function schemas which are *not* a \"parse\" function.\n return parser;\n }\n\n if (typeof parser.parseAsync === 'function') {\n // ParserZodEsque\n return parser.parseAsync.bind(parser);\n }\n\n if (typeof parser.parse === 'function') {\n // ParserZodEsque\n // ParserValibotEsque (< v0.13.0)\n return parser.parse.bind(parser);\n }\n\n if (typeof parser.validateSync === 'function') {\n // ParserYupEsque\n return parser.validateSync.bind(parser);\n }\n\n if (typeof parser.create === 'function') {\n // ParserSuperstructEsque\n return parser.create.bind(parser);\n }\n\n if (typeof parser.assert === 'function') {\n // ParserScaleEsque\n return (value) => {\n parser.assert(value);\n return value as TType;\n };\n }\n\n if (isStandardSchema) {\n // StandardSchemaEsque\n return async (value) => {\n const result = await parser['~standard'].validate(value);\n if (result.issues) {\n throw new StandardSchemaV1Error(result.issues);\n }\n return result.value;\n };\n }\n\n throw new Error('Could not find a validator fn');\n}\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type { inferObservableValue, Observable } from '../observable';\nimport { getTRPCErrorFromUnknown, TRPCError } from './error/TRPCError';\nimport type {\n AnyMiddlewareFunction,\n MiddlewareBuilder,\n MiddlewareFunction,\n MiddlewareResult,\n} from './middleware';\nimport {\n createInputMiddleware,\n createOutputMiddleware,\n middlewareMarker,\n} from './middleware';\nimport type { inferParser, Parser } from './parser';\nimport { getParseFn } from './parser';\nimport type {\n AnyMutationProcedure,\n AnyProcedure,\n AnyQueryProcedure,\n LegacyObservableSubscriptionProcedure,\n MutationProcedure,\n ProcedureType,\n QueryProcedure,\n SubscriptionProcedure,\n} from './procedure';\nimport type { inferTrackedOutput } from './stream/tracked';\nimport type {\n GetRawInputFn,\n MaybePromise,\n Overwrite,\n Simplify,\n TypeError,\n} from './types';\nimport type { UnsetMarker } from './utils';\nimport { mergeWithoutOverrides } from './utils';\n\ntype IntersectIfDefined<TType, TWith> = TType extends UnsetMarker\n ? TWith\n : TWith extends UnsetMarker\n ? TType\n : Simplify<TType & TWith>;\n\ntype DefaultValue<TValue, TFallback> = TValue extends UnsetMarker\n ? TFallback\n : TValue;\n\ntype inferAsyncIterable<TOutput> =\n TOutput extends AsyncIterable<infer $Yield, infer $Return, infer $Next>\n ? {\n yield: $Yield;\n return: $Return;\n next: $Next;\n }\n : never;\ntype inferSubscriptionOutput<TOutput> =\n TOutput extends AsyncIterable<any>\n ? AsyncIterable<\n inferTrackedOutput<inferAsyncIterable<TOutput>['yield']>,\n inferAsyncIterable<TOutput>['return'],\n inferAsyncIterable<TOutput>['next']\n >\n : TypeError<'Subscription output could not be inferred'>;\n\nexport type CallerOverride<TContext> = (opts: {\n args: unknown[];\n invoke: (opts: ProcedureCallOptions<TContext>) => Promise<unknown>;\n _def: AnyProcedure['_def'];\n}) => Promise<unknown>;\ntype ProcedureBuilderDef<TMeta> = {\n procedure: true;\n inputs: Parser[];\n output?: Parser;\n meta?: TMeta;\n resolver?: ProcedureBuilderResolver;\n middlewares: AnyMiddlewareFunction[];\n /**\n * @deprecated use `type` instead\n */\n mutation?: boolean;\n /**\n * @deprecated use `type` instead\n */\n query?: boolean;\n /**\n * @deprecated use `type` instead\n */\n subscription?: boolean;\n type?: ProcedureType;\n caller?: CallerOverride<unknown>;\n};\n\ntype AnyProcedureBuilderDef = ProcedureBuilderDef<any>;\n\n/**\n * Procedure resolver options (what the `.query()`, `.mutation()`, and `.subscription()` functions receive)\n * @internal\n */\nexport interface ProcedureResolverOptions<\n TContext,\n _TMeta,\n TContextOverridesIn,\n TInputOut,\n> {\n ctx: Simplify<Overwrite<TContext, TContextOverridesIn>>;\n input: TInputOut extends UnsetMarker ? undefined : TInputOut;\n /**\n * The AbortSignal of the request\n */\n signal: AbortSignal | undefined;\n /**\n * The path of the procedure\n */\n path: string;\n}\n\n/**\n * A procedure resolver\n */\ntype ProcedureResolver<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n TOutputParserIn,\n $Output,\n> = (\n opts: ProcedureResolverOptions<TContext, TMeta, TContextOverrides, TInputOut>,\n) => MaybePromise<\n // If an output parser is defined, we need to return what the parser expects, otherwise we return the inferred type\n DefaultValue<TOutputParserIn, $Output>\n>;\n\ntype AnyResolver = ProcedureResolver<any, any, any, any, any, any>;\nexport type AnyProcedureBuilder = ProcedureBuilder<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n>;\n\n/**\n * Infer the context type from a procedure builder\n * Useful to create common helper functions for different procedures\n */\nexport type inferProcedureBuilderResolverOptions<\n TProcedureBuilder extends AnyProcedureBuilder,\n> =\n TProcedureBuilder extends ProcedureBuilder<\n infer TContext,\n infer TMeta,\n infer TContextOverrides,\n infer _TInputIn,\n infer TInputOut,\n infer _TOutputIn,\n infer _TOutputOut,\n infer _TCaller\n >\n ? ProcedureResolverOptions<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut extends UnsetMarker\n ? // if input is not set, we don't want to infer it as `undefined` since a procedure further down the chain might have set an input\n unknown\n : TInputOut extends object\n ? Simplify<\n TInputOut & {\n /**\n * Extra input params might have been added by a `.input()` further down the chain\n */\n [keyAddedByInputCallFurtherDown: string]: unknown;\n }\n >\n : TInputOut\n >\n : never;\n\nexport interface ProcedureBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n TInputIn,\n TInputOut,\n TOutputIn,\n TOutputOut,\n TCaller extends boolean,\n> {\n /**\n * Add an input parser to the procedure.\n * @see https://trpc.io/docs/v11/server/validators\n */\n input<$Parser extends Parser>(\n schema: TInputOut extends UnsetMarker\n ? $Parser\n : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined\n ? TInputOut extends Record<string, unknown> | undefined\n ? undefined extends inferParser<$Parser>['out'] // if current is optional the previous must be too\n ? undefined extends TInputOut\n ? $Parser\n : TypeError<'Cannot chain an optional parser to a required parser'>\n : $Parser\n : TypeError<'All input parsers did not resolve to an object'>\n : TypeError<'All input parsers did not resolve to an object'>,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n IntersectIfDefined<TInputIn, inferParser<$Parser>['in']>,\n IntersectIfDefined<TInputOut, inferParser<$Parser>['out']>,\n TOutputIn,\n TOutputOut,\n TCaller\n >;\n /**\n * Add an output parser to the procedure.\n * @see https://trpc.io/docs/v11/server/validators\n */\n output<$Parser extends Parser>(\n schema: $Parser,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n TInputIn,\n TInputOut,\n IntersectIfDefined<TOutputIn, inferParser<$Parser>['in']>,\n IntersectIfDefined<TOutputOut, inferParser<$Parser>['out']>,\n TCaller\n >;\n /**\n * Add a meta data to the procedure.\n * @see https://trpc.io/docs/v11/server/metadata\n */\n meta(\n meta: TMeta,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n TInputIn,\n TInputOut,\n TOutputIn,\n TOutputOut,\n TCaller\n >;\n /**\n * Add a middleware to the procedure.\n * @see https://trpc.io/docs/v11/server/middlewares\n */\n use<$ContextOverridesOut>(\n fn:\n | MiddlewareBuilder<\n Overwrite<TContext, TContextOverrides>,\n TMeta,\n $ContextOverridesOut,\n TInputOut\n >\n | MiddlewareFunction<\n TContext,\n TMeta,\n TContextOverrides,\n $ContextOverridesOut,\n TInputOut\n >,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n Overwrite<TContextOverrides, $ContextOverridesOut>,\n TInputIn,\n TInputOut,\n TOutputIn,\n TOutputOut,\n TCaller\n >;\n\n /**\n * @deprecated use {@link concat} instead\n */\n unstable_concat<\n $Context,\n $Meta,\n $ContextOverrides,\n $InputIn,\n $InputOut,\n $OutputIn,\n $OutputOut,\n >(\n builder: Overwrite<TContext, TContextOverrides> extends $Context\n ? TMeta extends $Meta\n ? ProcedureBuilder<\n $Context,\n $Meta,\n $ContextOverrides,\n $InputIn,\n $InputOut,\n $OutputIn,\n $OutputOut,\n TCaller\n >\n : TypeError<'Meta mismatch'>\n : TypeError<'Context mismatch'>,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n Overwrite<TContextOverrides, $ContextOverrides>,\n IntersectIfDefined<TInputIn, $InputIn>,\n IntersectIfDefined<TInputOut, $InputOut>,\n IntersectIfDefined<TOutputIn, $OutputIn>,\n IntersectIfDefined<TOutputOut, $OutputOut>,\n TCaller\n >;\n\n /**\n * Combine two procedure builders\n */\n concat<\n $Context,\n $Meta,\n $ContextOverrides,\n $InputIn,\n $InputOut,\n $OutputIn,\n $OutputOut,\n >(\n builder: Overwrite<TContext, TContextOverrides> extends $Context\n ? TMeta extends $Meta\n ? ProcedureBuilder<\n $Context,\n $Meta,\n $ContextOverrides,\n $InputIn,\n $InputOut,\n $OutputIn,\n $OutputOut,\n TCaller\n >\n : TypeError<'Meta mismatch'>\n : TypeError<'Context mismatch'>,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n Overwrite<TContextOverrides, $ContextOverrides>,\n IntersectIfDefined<TInputIn, $InputIn>,\n IntersectIfDefined<TInputOut, $InputOut>,\n IntersectIfDefined<TOutputIn, $OutputIn>,\n IntersectIfDefined<TOutputOut, $OutputOut>,\n TCaller\n >;\n /**\n * Query procedure\n * @see https://trpc.io/docs/v11/concepts#vocabulary\n */\n query<$Output>(\n resolver: ProcedureResolver<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n TOutputIn,\n $Output\n >,\n ): TCaller extends true\n ? (\n input: DefaultValue<TInputIn, void>,\n ) => Promise<DefaultValue<TOutputOut, $Output>>\n : QueryProcedure<{\n input: DefaultValue<TInputIn, void>;\n output: DefaultValue<TOutputOut, $Output>;\n meta: TMeta;\n }>;\n\n /**\n * Mutation procedure\n * @see https://trpc.io/docs/v11/concepts#vocabulary\n */\n mutation<$Output>(\n resolver: ProcedureResolver<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n TOutputIn,\n $Output\n >,\n ): TCaller extends true\n ? (\n input: DefaultValue<TInputIn, void>,\n ) => Promise<DefaultValue<TOutputOut, $Output>>\n : MutationProcedure<{\n input: DefaultValue<TInputIn, void>;\n output: DefaultValue<TOutputOut, $Output>;\n meta: TMeta;\n }>;\n\n /**\n * Subscription procedure\n * @see https://trpc.io/docs/v11/server/subscriptions\n */\n subscription<$Output extends AsyncIterable<any, void, any>>(\n resolver: ProcedureResolver<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n TOutputIn,\n $Output\n >,\n ): TCaller extends true\n ? TypeError<'Not implemented'>\n : SubscriptionProcedure<{\n input: DefaultValue<TInputIn, void>;\n output: inferSubscriptionOutput<DefaultValue<TOutputOut, $Output>>;\n meta: TMeta;\n }>;\n /**\n * @deprecated Using subscriptions with an observable is deprecated. Use an async generator instead.\n * This feature will be removed in v12 of tRPC.\n * @see https://trpc.io/docs/v11/server/subscriptions\n */\n subscription<$Output extends Observable<any, any>>(\n resolver: ProcedureResolver<\n TContext,\n TMeta,\n TContextOverrides,\n TInputOut,\n TOutputIn,\n $Output\n >,\n ): TCaller extends true\n ? TypeError<'Not implemented'>\n : LegacyObservableSubscriptionProcedure<{\n input: DefaultValue<TInputIn, void>;\n output: inferObservableValue<DefaultValue<TOutputOut, $Output>>;\n meta: TMeta;\n }>;\n /**\n * Overrides the way a procedure is invoked\n * Do not use this unless you know what you're doing - this is an experimental API\n */\n experimental_caller(\n caller: CallerOverride<TContext>,\n ): ProcedureBuilder<\n TContext,\n TMeta,\n TContextOverrides,\n TInputIn,\n TInputOut,\n TOutputIn,\n TOutputOut,\n true\n >;\n /**\n * @internal\n */\n _def: ProcedureBuilderDef<TMeta>;\n}\n\ntype ProcedureBuilderResolver = (\n opts: ProcedureResolverOptions<any, any, any, any>,\n) => Promise<unknown>;\n\nfunction createNewBuilder(\n def1: AnyProcedureBuilderDef,\n def2: Partial<AnyProcedureBuilderDef>,\n): AnyProcedureBuilder {\n const { middlewares = [], inputs, meta, ...rest } = def2;\n\n // TODO: maybe have a fn here to warn about calls\n return createBuilder({\n ...mergeWithoutOverrides(def1, rest),\n inputs: [...def1.inputs, ...(inputs ?? [])],\n middlewares: [...def1.middlewares, ...middlewares],\n meta: def1.meta && meta ? { ...def1.meta, ...meta } : (meta ?? def1.meta),\n });\n}\n\nexport function createBuilder<TContext, TMeta>(\n initDef: Partial<AnyProcedureBuilderDef> = {},\n): ProcedureBuilder<\n TContext,\n TMeta,\n object,\n UnsetMarker,\n UnsetMarker,\n UnsetMarker,\n UnsetMarker,\n false\n> {\n const _def: AnyProcedureBuilderDef = {\n procedure: true,\n inputs: [],\n middlewares: [],\n ...initDef,\n };\n\n const builder: AnyProcedureBuilder = {\n _def,\n input(input) {\n const parser = getParseFn(input as Parser);\n return createNewBuilder(_def, {\n inputs: [input as Parser],\n middlewares: [createInputMiddleware(parser)],\n });\n },\n output(output: Parser) {\n const parser = getParseFn(output);\n return createNewBuilder(_def, {\n output,\n middlewares: [createOutputMiddleware(parser)],\n });\n },\n meta(meta) {\n return createNewBuilder(_def, {\n meta,\n });\n },\n use(middlewareBuilderOrFn) {\n // Distinguish between a middleware builder and a middleware function\n const middlewares =\n '_middlewares' in middlewareBuilderOrFn\n ? middlewareBuilderOrFn._middlewares\n : [middlewareBuilderOrFn];\n\n return createNewBuilder(_def, {\n middlewares: middlewares,\n });\n },\n unstable_concat(builder) {\n return createNewBuilder(_def, (builder as AnyProcedureBuilder)._def);\n },\n concat(builder) {\n return createNewBuilder(_def, (builder as AnyProcedureBuilder)._def);\n },\n query(resolver) {\n return createResolver(\n { ..._def, type: 'query' },\n resolver,\n ) as AnyQueryProcedure;\n },\n mutation(resolver) {\n return createResolver(\n { ..._def, type: 'mutation' },\n resolver,\n ) as AnyMutationProcedure;\n },\n subscription(resolver: ProcedureResolver<any, any, any, any, any, any>) {\n return createResolver({ ..._def, type: 'subscription' }, resolver) as any;\n },\n experimental_caller(caller) {\n return createNewBuilder(_def, {\n caller,\n }) as any;\n },\n };\n\n return builder;\n}\n\nfunction createResolver(\n _defIn: AnyProcedureBuilderDef & { type: ProcedureType },\n resolver: AnyResolver,\n) {\n const finalBuilder = createNewBuilder(_defIn, {\n resolver,\n middlewares: [\n async function resolveMiddleware(opts) {\n const data = await resolver(opts);\n return {\n marker: middlewareMarker,\n ok: true,\n data,\n ctx: opts.ctx,\n } as const;\n },\n ],\n });\n const _def: AnyProcedure['_def'] = {\n ...finalBuilder._def,\n type: _defIn.type,\n experimental_caller: Boolean(finalBuilder._def.caller),\n meta: finalBuilder._def.meta,\n $types: null as any,\n };\n\n const invoke = createProcedureCaller(finalBuilder._def);\n const callerOverride = finalBuilder._def.caller;\n if (!callerOverride) {\n return invoke;\n }\n const callerWrapper = async (...args: unknown[]) => {\n return await callerOverride({\n args,\n invoke,\n _def: _def,\n });\n };\n\n callerWrapper._def = _def;\n\n return callerWrapper;\n}\n\n/**\n * @internal\n */\nexport interface ProcedureCallOptions<TContext> {\n ctx: TContext;\n getRawInput: GetRawInputFn;\n input?: unknown;\n path: string;\n type: ProcedureType;\n signal: AbortSignal | undefined;\n}\n\nconst codeblock = `\nThis is a client-only function.\nIf you want to call this function on the server, see https://trpc.io/docs/v11/server/server-side-calls\n`.trim();\n\n// run the middlewares recursively with the resolver as the last one\nasync function callRecursive(\n index: number,\n _def: AnyProcedureBuilderDef,\n opts: ProcedureCallOptions<any>,\n): Promise<MiddlewareResult<any>> {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const middleware = _def.middlewares[index]!;\n const result = await middleware({\n ...opts,\n meta: _def.meta,\n input: opts.input,\n next(_nextOpts?: any) {\n const nextOpts = _nextOpts as\n | {\n ctx?: Record<string, unknown>;\n input?: unknown;\n getRawInput?: GetRawInputFn;\n }\n | undefined;\n\n return callRecursive(index + 1, _def, {\n ...opts,\n ctx: nextOpts?.ctx ? { ...opts.ctx, ...nextOpts.ctx } : opts.ctx,\n input: nextOpts && 'input' in nextOpts ? nextOpts.input : opts.input,\n getRawInput: nextOpts?.getRawInput ?? opts.getRawInput,\n });\n },\n });\n\n return result;\n } catch (cause) {\n return {\n ok: false,\n error: getTRPCErrorFromUnknown(cause),\n marker: middlewareMarker,\n };\n }\n}\n\nfunction createProcedureCaller(_def: AnyProcedureBuilderDef): AnyProcedure {\n async function procedure(opts: ProcedureCallOptions<unknown>) {\n // is direct server-side call\n if (!opts || !('getRawInput' in opts)) {\n throw new Error(codeblock);\n }\n\n // there's always at least one \"next\" since we wrap this.resolver in a middleware\n const result = await callRecursive(0, _def, opts);\n\n if (!result) {\n throw new TRPCError({\n code: 'INTERNAL_SERVER_ERROR',\n message:\n 'No result from middlewares - did you forget to `return next()`?',\n });\n }\n if (!result.ok) {\n // re-throw original error\n throw result.error;\n }\n return result.data;\n }\n\n procedure._def = _def;\n procedure.procedure = true;\n procedure.meta = _def.meta;\n\n // FIXME typecast shouldn't be needed - fixittt\n return procedure as unknown as AnyProcedure;\n}\n","import type { CombinedDataTransformer } from '../unstable-core-do-not-import';\nimport type { DefaultErrorShape, ErrorFormatter } from './error/formatter';\nimport type { JSONLProducerOptions } from './stream/jsonl';\nimport type { SSEStreamProducerOptions } from './stream/sse';\n\n/**\n * The initial generics that are used in the init function\n * @internal\n */\nexport interface RootTypes {\n ctx: object;\n meta: object;\n errorShape: DefaultErrorShape;\n transformer: boolean;\n}\n\n/**\n * The default check to see if we're in a server\n */\nexport const isServerDefault: boolean =\n typeof window === 'undefined' ||\n 'Deno' in window ||\n // eslint-disable-next-line @typescript-eslint/dot-notation\n globalThis.process?.env?.['NODE_ENV'] === 'test' ||\n !!globalThis.process?.env?.['JEST_WORKER_ID'] ||\n !!globalThis.process?.env?.['VITEST_WORKER_ID'];\n\n/**\n * The tRPC root config\n * @internal\n */\nexport interface RootConfig<TTypes extends RootTypes> {\n /**\n * The types that are used in the config\n * @internal\n */\n $types: TTypes;\n /**\n * Use a data transformer\n * @see https://trpc.io/docs/v11/data-transformers\n */\n transformer: CombinedDataTransformer;\n /**\n * Use custom error formatting\n * @see https://trpc.io/docs/v11/error-formatting\n */\n errorFormatter: ErrorFormatter<TTypes['ctx'], TTypes['errorShape']>;\n /**\n * Allow `@trpc/server` to run in non-server environments\n * @warning **Use with caution**, this should likely mainly be used within testing.\n * @default false\n */\n allowOutsideOfServer: boolean;\n /**\n * Is this a server environment?\n * @warning **Use with caution**, this should likely mainly be used within testing.\n * @default typeof window === 'undefined' || 'Deno' in window || process.env.NODE_ENV === 'test'\n */\n isServer: boolean;\n /**\n * Is this development?\n * Will be used to decide if the API should return stack traces\n * @default process.env.NODE_ENV !== 'production'\n */\n isDev: boolean;\n\n defaultMeta?: TTypes['meta'] extends object ? TTypes['meta'] : never;\n\n /**\n * Options for server-sent events (SSE) subscriptions\n * @see https://trpc.io/docs/client/links/httpSubscriptionLink\n */\n sse?: {\n /**\n * Enable server-sent events (SSE) subscriptions\n * @default true\n */\n enabled?: boolean;\n } & Pick<\n SSEStreamProducerOptions,\n 'ping' | 'emitAndEndImmediately' | 'maxDurationMs' | 'client'\n >;\n\n /**\n * Options for batch stream\n * @see https://trpc.io/docs/client/links/httpBatchStreamLink\n */\n jsonl?: Pick<JSONLProducerOptions, 'pingMs'>;\n experimental?: {};\n}\n\n/**\n * @internal\n */\nexport type CreateRootTypes<TGenerics extends RootTypes> = TGenerics;\n\nexport type AnyRootTypes = CreateRootTypes<{\n ctx: any;\n meta: any;\n errorShape: any;\n transformer: any;\n}>;\n\ntype PartialIf<TCondition extends boolean, TType> = TCondition extends true\n ? Partial<TType>\n : TType;\n\n/**\n * Adds a `createContext` option with a given callback function\n * If context is the default value, then the `createContext` option is optional\n */\nexport type CreateContextCallback<\n TContext,\n TFunction extends (...args: any[]) => any,\n> = PartialIf<\n object extends TContext ? true : false,\n {\n /**\n * @see https://trpc.io/docs/v11/context\n **/\n createContext: TFunction;\n }\n>;\n","import {\n defaultFormatter,\n type DefaultErrorShape,\n type ErrorFormatter,\n} from './error/formatter';\nimport type { MiddlewareBuilder, MiddlewareFunction } from './middleware';\nimport { createMiddlewareFactory } from './middleware';\nimport type { ProcedureBuilder } from './procedureBuilder';\nimport { createBuilder } from './procedureBuilder';\nimport type { AnyRootTypes, CreateRootTypes } from './rootConfig';\nimport { isServerDefault, type RootConfig } from './rootConfig';\nimport type {\n AnyRouter,\n MergeRouters,\n RouterBuilder,\n RouterCallerFactory,\n} from './router';\nimport {\n createCallerFactory,\n createRouterFactory,\n mergeRouters,\n} from './router';\nimport type { DataTransformerOptions } from './transformer';\nimport { defaultTransformer, getDataTransformer } from './transformer';\nimport type { Unwrap, ValidateShape } from './types';\nimport type { UnsetMarker } from './utils';\n\ntype inferErrorFormatterShape<TType> =\n TType extends ErrorFormatter<any, infer TShape> ? TShape : DefaultErrorShape;\n/** @internal */\nexport interface RuntimeConfigOptions<\n TContext extends object,\n TMeta extends object,\n> extends Partial<\n Omit<\n RootConfig<{\n ctx: TContext;\n meta: TMeta;\n errorShape: any;\n transformer: any;\n }>,\n '$types' | 'transformer'\n >\n > {\n /**\n * Use a data transformer\n * @see https://trpc.io/docs/v11/data-transformers\n */\n transformer?: DataTransformerOptions;\n}\n\ntype ContextCallback = (...args: any[]) => object | Promise<object>;\n\nexport interface TRPCRootObject<\n TContext extends object,\n TMeta extends object,\n TOptions extends RuntimeConfigOptions<TContext, TMeta>,\n $Root extends AnyRootTypes = {\n ctx: TContext;\n meta: TMeta;\n errorShape: undefined extends TOptions['errorFormatter']\n ? DefaultErrorShape\n : inferErrorFormatterShape<TOptions['errorFormatter']>;\n transformer: undefined extends TOptions['transformer'] ? false : true;\n },\n> {\n /**\n * Your router config\n * @internal\n */\n _config: RootConfig<$Root>;\n\n /**\n * Builder object for creating procedures\n * @see https://trpc.io/docs/v11/server/procedures\n */\n procedure: ProcedureBuilder<\n TContext,\n TMeta,\n object,\n UnsetMarker,\n UnsetMarker,\n UnsetMarker,\n UnsetMarker,\n false\n >;\n\n /**\n * Create reusable middlewares\n * @see https://trpc.io/docs/v11/server/middlewares\n */\n middleware: <$ContextOverrides>(\n fn: MiddlewareFunction<TContext, TMeta, object, $ContextOverrides, unknown>,\n ) => MiddlewareBuilder<TContext, TMeta, $ContextOverrides, unknown>;\n\n /**\n * Create a router\n * @see https://trpc.io/docs/v11/server/routers\n */\n router: RouterBuilder<$Root>;\n\n /**\n * Merge Routers\n * @see https://trpc.io/docs/v11/server/merging-routers\n */\n mergeRouters: <TRouters extends AnyRouter[]>(\n ...routerList: [...TRouters]\n ) => MergeRouters<TRouters>;\n\n /**\n * Create a server-side caller for a router\n * @see https://trpc.io/docs/v11/server/server-side-calls\n */\n createCallerFactory: RouterCallerFactory<$Root>;\n}\n\nclass TRPCBuilder<TContext extends object, TMeta extends object> {\n /**\n * Add a context shape as a generic to the root object\n * @see https://trpc.io/docs/v11/server/context\n */\n context<TNewContext extends object | ContextCallback>() {\n return new TRPCBuilder<\n TNewContext extends ContextCallback ? Unwrap<TNewContext> : TNewContext,\n TMeta\n >();\n }\n\n /**\n * Add a meta shape as a generic to the root object\n * @see https://trpc.io/docs/v11/quickstart\n */\n meta<TNewMeta extends object>() {\n return new TRPCBuilder<TContext, TNewMeta>();\n }\n\n /**\n * Create the root object\n * @see https://trpc.io/docs/v11/server/routers#initialize-trpc\n */\n create<TOptions extends RuntimeConfigOptions<TContext, TMeta>>(\n opts?: ValidateShape<TOptions, RuntimeConfigOptions<TContext, TMeta>>,\n ): TRPCRootObject<TContext, TMeta, TOptions> {\n type $Root = CreateRootTypes<{\n ctx: TContext;\n meta: TMeta;\n errorShape: undefined extends TOptions['errorFormatter']\n ? DefaultErrorShape\n : inferErrorFormatterShape<TOptions['errorFormatter']>;\n transformer: undefined extends TOptions['transformer'] ? false : true;\n }>;\n\n const config: RootConfig<$Root> = {\n ...opts,\n transformer: getDataTransformer(opts?.transformer ?? defaultTransformer),\n isDev:\n opts?.isDev ??\n // eslint-disable-next-line @typescript-eslint/dot-notation\n globalThis.process?.env['NODE_ENV'] !== 'production',\n allowOutsideOfServer: opts?.allowOutsideOfServer ?? false,\n errorFormatter: opts?.errorFormatter ?? defaultFormatter,\n isServer: opts?.isServer ?? isServerDefault,\n /**\n * These are just types, they can't be used at runtime\n * @internal\n */\n $types: null as any,\n };\n\n {\n // Server check\n const isServer: boolean = opts?.isServer ?? isServerDefault;\n\n if (!isServer && opts?.allowOutsideOfServer !== true) {\n throw new Error(\n `You're trying to use @trpc/server in a non-server environment. This is not supported by default.`,\n );\n }\n }\n return {\n /**\n * Your router config\n * @internal\n */\n _config: config,\n /**\n * Builder object for creating procedures\n * @see https://trpc.io/docs/v11/server/procedures\n */\n procedure: createBuilder<$Root['ctx'], $Root['meta']>({\n meta: opts?.defaultMeta,\n }),\n /**\n * Create reusable middlewares\n * @see https://trpc.io/docs/v11/server/middlewares\n */\n middleware: createMiddlewareFactory<$Root['ctx'], $Root['meta']>(),\n /**\n * Create a router\n * @see https://trpc.io/docs/v11/server/routers\n */\n router: createRouterFactory<$Root>(config),\n /**\n * Merge Routers\n * @see https://trpc.io/docs/v11/server/merging-routers\n */\n mergeRouters,\n /**\n * Create a server-side caller for a router\n * @see https://trpc.io/docs/v11/server/server-side-calls\n */\n createCallerFactory: createCallerFactory<$Root>(),\n };\n }\n}\n\n/**\n * Builder to initialize the tRPC root object - use this exactly once per backend\n * @see https://trpc.io/docs/v11/quickstart\n */\nexport const initTRPC = new TRPCBuilder();\nexport type { TRPCBuilder };\n","import type * as http from 'http';\nimport { IncomingMessage } from 'node:http';\nimport { TRPCError } from '../../@trpc/server';\nimport type { NodeHTTPRequest, NodeHTTPResponse } from './types';\n\nfunction createBody(\n req: NodeHTTPRequest,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): RequestInit['body'] {\n // Some adapters will pre-parse the body and add it to the request object\n if ('body' in req) {\n if (req.body === undefined) {\n // If body property exists but is undefined, return undefined\n return undefined;\n }\n // If the body is already a string, return it directly\n if (typeof req.body === 'string') {\n return req.body;\n }\n // formData use\n if (req.body instanceof IncomingMessage) {\n return req.body as any;\n }\n // If body exists but isn't a string, stringify it as JSON\n return JSON.stringify(req.body);\n }\n let size = 0;\n let hasClosed = false;\n\n return new ReadableStream({\n start(controller) {\n const onData = (chunk: Buffer) => {\n size += chunk.length;\n if (!opts.maxBodySize || size <= opts.maxBodySize) {\n controller.enqueue(\n new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength),\n );\n return;\n }\n controller.error(\n new TRPCError({\n code: 'PAYLOAD_TOO_LARGE',\n }),\n );\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n };\n\n const onEnd = () => {\n if (hasClosed) {\n return;\n }\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n controller.close();\n };\n\n req.on('data', onData);\n req.on('end', onEnd);\n },\n cancel() {\n req.destroy();\n },\n });\n}\nexport function createURL(req: NodeHTTPRequest): URL {\n try {\n const protocol =\n // http2\n (req.headers[':scheme'] && req.headers[':scheme'] === 'https') ||\n // http1\n (req.socket && 'encrypted' in req.socket && req.socket.encrypted)\n ? 'https:'\n : 'http:';\n\n const host = req.headers.host ?? req.headers[':authority'] ?? 'localhost';\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new URL(req.url!, `${protocol}//${host}`);\n } catch (cause) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: 'Invalid URL',\n cause,\n });\n }\n}\n\nfunction createHeaders(incoming: http.IncomingHttpHeaders): Headers {\n const headers = new Headers();\n\n for (const key in incoming) {\n const value = incoming[key];\n if (typeof key === 'string' && key.startsWith(':')) {\n // Skip HTTP/2 pseudo-headers\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n } else if (value != null) {\n headers.append(key, value);\n }\n }\n\n return headers;\n}\n\n/**\n * Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n */\nexport function incomingMessageToRequest(\n req: NodeHTTPRequest,\n res: NodeHTTPResponse,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): Request {\n const ac = new AbortController();\n\n const onAbort = () => {\n res.off('close', onAbort);\n req.off('aborted', onAbort);\n\n // abort the request\n ac.abort();\n };\n\n res.once('close', onAbort);\n req.once('aborted', onAbort);\n\n // Get host from either regular header or HTTP/2 pseudo-header\n const url = createURL(req);\n\n const init: RequestInit = {\n headers: createHeaders(req.headers),\n method: req.method,\n signal: ac.signal,\n };\n\n if (req.method !== 'GET' && req.method !== 'HEAD') {\n init.body = createBody(req, opts);\n\n // init.duplex = 'half' must be set when body is a ReadableStream, and Node follows the spec.\n // However, this property is not defined in the TypeScript types for RequestInit, so we have\n // to cast it here in order to set it without a type error.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex\n // @ts-expect-error this is fine\n init.duplex = 'half';\n }\n\n const request = new Request(url, init);\n\n return request;\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { isAbortError } from '../../unstable-core-do-not-import';\nimport type { NodeHTTPResponse } from './types';\n\nasync function writeResponseBodyChunk(\n res: NodeHTTPResponse,\n chunk: Uint8Array,\n) {\n // useful for debugging 🙃\n // console.debug('writing', new TextDecoder().decode(chunk));\n\n if (res.write(chunk) === false) {\n await new Promise<void>((resolve, reject) => {\n const onError = (err: unknown) => {\n reject(err);\n cleanup();\n };\n const onDrain = () => {\n resolve();\n cleanup();\n };\n const cleanup = () => {\n res.off('error', onError);\n res.off('drain', onDrain);\n };\n res.once('error', onError);\n res.once('drain', onDrain);\n });\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponseBody(opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}) {\n const { res } = opts;\n\n try {\n const writableStream = new WritableStream({\n async write(chunk) {\n await writeResponseBodyChunk(res, chunk);\n res.flush?.();\n },\n });\n\n await opts.body.pipeTo(writableStream, {\n signal: opts.signal,\n });\n } catch (err) {\n if (isAbortError(err)) {\n return;\n }\n throw err;\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponse(opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}) {\n const { response, rawResponse } = opts;\n\n // Only override status code if it hasn't been explicitly set in a procedure etc\n if (rawResponse.statusCode === 200) {\n rawResponse.statusCode = response.status;\n }\n for (const [key, value] of response.headers) {\n rawResponse.setHeader(key, value);\n }\n try {\n if (response.body) {\n await writeResponseBody({\n res: rawResponse,\n signal: opts.request.signal,\n body: response.body,\n });\n }\n } catch (err) {\n if (!rawResponse.headersSent) {\n rawResponse.statusCode = 500;\n }\n throw err;\n } finally {\n rawResponse.end();\n }\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n\n// @trpc/server\n\nimport {\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n type AnyRouter,\n} from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\n// eslint-disable-next-line no-restricted-imports\nimport { getErrorShape, run } from '../../unstable-core-do-not-import';\nimport { incomingMessageToRequest } from './incomingMessageToRequest';\nimport type {\n NodeHTTPRequest,\n NodeHTTPRequestHandlerOptions,\n NodeHTTPResponse,\n} from './types';\nimport { writeResponse } from './writeResponse';\n\n/**\n * @internal\n */\nexport function internal_exceptionHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return (cause: unknown) => {\n const { res, req } = opts;\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getErrorShape({\n config: opts.router._def._config,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n opts.onError?.({\n req,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n const transformed = transformTRPCResponse(opts.router._def._config, {\n error: shape,\n });\n\n res.statusCode = shape.data.httpStatus;\n res.end(JSON.stringify(transformed));\n };\n}\n\n/**\n * @remark the promise never rejects\n */\nexport async function nodeHTTPRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return new Promise<void>((resolve) => {\n const handleViaMiddleware =\n opts.middleware ?? ((_req, _res, next) => next());\n\n opts.res.once('finish', () => {\n resolve();\n });\n return handleViaMiddleware(opts.req, opts.res, (err: unknown) => {\n run(async () => {\n const request = incomingMessageToRequest(opts.req, opts.res, {\n maxBodySize: opts.maxBodySize ?? null,\n });\n\n // Build tRPC dependencies\n const createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n > = async (innerOpts) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const response = await resolveResponse({\n ...opts,\n req: request,\n error: err ? getTRPCErrorFromUnknown(err) : null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await writeResponse({\n request,\n response,\n rawResponse: opts.res,\n });\n }).catch(internal_exceptionHandler(opts));\n });\n });\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\nimport type * as express from 'express';\nimport type { AnyRouter } from '../@trpc/server';\n// eslint-disable-next-line no-restricted-imports\nimport { run } from '../unstable-core-do-not-import';\nimport type {\n NodeHTTPCreateContextFnOptions,\n NodeHTTPHandlerOptions,\n} from './node-http';\nimport { internal_exceptionHandler, nodeHTTPRequestHandler } from './node-http';\n\nexport type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<\n express.Request,\n express.Response\n>;\n\nexport function createExpressMiddleware<TRouter extends AnyRouter>(\n opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,\n): express.Handler {\n return (req, res) => {\n let path = '';\n run(async () => {\n path = req.path.slice(req.path.lastIndexOf('/') + 1);\n\n await nodeHTTPRequestHandler({\n ...(opts as any),\n req,\n res,\n path,\n });\n }).catch(\n internal_exceptionHandler({\n req,\n res,\n path,\n ...opts,\n }),\n );\n };\n}\n","export class HyperdocError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"HyperdocError\";\n }\n}\n\nexport class NotFoundError extends Error {\n readonly code = \"NOT_FOUND\" as const;\n constructor(message = \"Not found\") {\n super(message);\n this.name = \"NotFoundError\";\n }\n}\n\nexport function formatError(error: unknown, includeStack: boolean): string {\n if (error instanceof Error) {\n if (includeStack && error.stack) {\n return error.stack;\n }\n\n return error.message;\n }\n\n if (typeof error === \"string\") {\n return error;\n }\n\n return \"Unknown error\";\n}\n","type LogFn = (message: string) => void;\n\nexport enum LogLevel {\n DEBUG = 10,\n INFO = 20,\n WARN = 30,\n ERROR = 40,\n}\n\nclass Logger {\n private level: LogLevel = LogLevel.INFO;\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n private logIf(level: LogLevel, fn: LogFn, message: string): void {\n if (this.level <= level) {\n fn(message);\n }\n }\n\n debug(message: string): void {\n this.logIf(LogLevel.DEBUG, console.log, message);\n }\n\n info(message: string): void {\n this.logIf(LogLevel.INFO, console.log, message);\n }\n\n warn(message: string): void {\n this.logIf(LogLevel.WARN, console.warn, message);\n }\n\n error(message: string): void {\n this.logIf(LogLevel.ERROR, console.error, message);\n }\n}\n\nexport const logger = new Logger();\n","import { z } from \"zod\";\n\nexport const projectConfigSchema = z\n .object({\n name: z.string().trim().min(1).max(200).optional(),\n })\n .strict();\n\nexport type ProjectConfig = z.infer<typeof projectConfigSchema>;\n\nexport const projectEntrySchema = z.object({\n emoji: z.string().trim().min(1).max(10).nullable().optional(),\n id: z\n .string()\n .trim()\n .min(1)\n .max(100)\n .regex(\n /^[a-z0-9][a-z0-9-]*$/,\n \"ID must be lowercase alphanumeric with dashes\",\n ),\n name: z.string().trim().min(1).max(200),\n docsDirs: z.array(z.string().trim().min(1)).min(1),\n rootDirs: z.array(z.string().trim().min(1)).optional(),\n});\n\nexport const projectsFileSchema = z.array(projectEntrySchema);\n\nexport type ProjectEntry = z.infer<typeof projectEntrySchema>;\n\nexport function resolveDocsDirs(project: ProjectEntry): string[] {\n return project.docsDirs;\n}\n\nexport function resolveRootDirs(project: ProjectEntry): string[] {\n return project.rootDirs ?? [];\n}\n","export type DocType = \"markdown\" | \"prompt\" | \"json\" | \"app\" | \"tasks\";\n\nexport const DOC_TYPE_CONFIG = [\n { type: \"markdown\", extension: \".md\" },\n { type: \"prompt\", extension: \".prompt.txt\" },\n { type: \"json\", extension: \".table.json\" },\n { type: \"app\", extension: \".app.json\" },\n { type: \"tasks\", extension: \".tasks.json\" },\n] as const;\n\ntype DocTypeConfig = (typeof DOC_TYPE_CONFIG)[number];\n\nconst DOC_TYPE_CONFIG_MAP = DOC_TYPE_CONFIG.reduce<\n Record<DocType, DocTypeConfig>\n>(\n (acc, config) => {\n acc[config.type] = config;\n return acc;\n },\n {} as Record<DocType, DocTypeConfig>,\n);\n\nconst EXTENSION_ORDER = [...DOC_TYPE_CONFIG].sort(\n (a, b) => b.extension.length - a.extension.length,\n);\n\nexport const getDocExtension = (type: DocType | string | null | undefined) => {\n if (!type) return \"\";\n return DOC_TYPE_CONFIG_MAP[type as DocType]?.extension ?? \"\";\n};\n\nexport const isDocType = (value: string): value is DocType =>\n DOC_TYPE_CONFIG.some((config) => config.type === value);\n\nexport const getDocTypeFromName = (name: string): DocType | null => {\n const lower = name.toLowerCase();\n\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n return config.type;\n }\n }\n\n return null;\n};\n\nexport const toKebab = (value: string): string =>\n value\n .trim()\n .toLowerCase()\n .replace(/[\\s_]+/g, \"-\")\n .replace(/-{2,}/g, \"-\")\n .replace(/^-|-$/g, \"\");\n\nexport const normalizeDocName = (name: string, type: DocType): string => {\n const trimmed = name.trim();\n if (!trimmed) return \"\";\n const targetExtension = getDocExtension(type);\n if (!targetExtension) return toKebab(trimmed);\n const lower = trimmed.toLowerCase();\n\n let stem = trimmed;\n\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n stem = trimmed.slice(0, trimmed.length - config.extension.length);\n break;\n }\n }\n\n // Handle legacy prompt extensions\n if (stem === trimmed && type === \"prompt\") {\n if (lower.endsWith(\".prompt.yaml\")) {\n stem = trimmed.slice(0, trimmed.length - \".prompt.yaml\".length);\n } else if (lower.endsWith(\".yaml.prompt.txt\")) {\n stem = trimmed.slice(0, trimmed.length - \".yaml.prompt.txt\".length);\n } else if (lower.endsWith(\".prompt.txt\")) {\n stem = trimmed.slice(0, trimmed.length - \".prompt.txt\".length);\n } else if (lower.endsWith(\".yaml\")) {\n stem = trimmed.slice(0, trimmed.length - \".yaml\".length);\n }\n }\n\n const kebabStem = toKebab(stem);\n if (!kebabStem) return targetExtension;\n return `${kebabStem}${targetExtension}`;\n};\n\nexport const stripDocExtension = (name: string): string => {\n const lower = name.toLowerCase();\n\n for (const config of EXTENSION_ORDER) {\n if (lower.endsWith(config.extension.toLowerCase())) {\n return name.slice(0, name.length - config.extension.length);\n }\n }\n\n return name;\n};\n","import { z } from \"zod\";\n\nexport const taskItemSchema = z\n .object({\n label: z.string().min(1),\n status: z.string().optional().default(\"todo\"),\n priority: z.number().int().min(0).max(4).optional().default(0),\n tags: z.array(z.string()).optional().default([]),\n linkedDoc: z.string().optional(),\n })\n .passthrough();\n\nexport type TaskItem = z.infer<typeof taskItemSchema>;\n\nexport const tasksMetadataSchema = z\n .object({\n tags: z.array(z.string()).nullable().optional(),\n pinned: z.boolean().nullable().optional(),\n })\n .partial()\n .passthrough();\n\nexport type TasksMetadata = z.infer<typeof tasksMetadataSchema>;\n\nexport const tasksViewSchema = z\n .object({\n groupBy: z.enum([\"status\", \"priority\", \"tag\"]).nullable().optional(),\n sortBy: z.enum([\"priority\", \"status\", \"label\"]).nullable().optional(),\n sortDesc: z.boolean().optional().default(false),\n filters: z\n .object({\n status: z\n .object({ exclude: z.array(z.string()).optional() })\n .optional(),\n priority: z\n .object({ exclude: z.array(z.number()).optional() })\n .optional(),\n })\n .optional(),\n })\n .optional();\n\nexport type TasksView = z.infer<typeof tasksViewSchema>;\n\nexport const tasksPayloadSchema = z\n .object({\n data: z.array(taskItemSchema).default([]),\n statuses: z.array(z.string().min(1)),\n view: tasksViewSchema.optional(),\n metadata: tasksMetadataSchema.optional(),\n })\n .passthrough();\n\nexport type TasksPayload = z.infer<typeof tasksPayloadSchema>;\n","import { Router } from \"express\";\nimport { createRouterContext, type RouterContext } from \"./routes/context\";\nimport { createProjectRoutes } from \"./routes/project\";\nimport { createDocsRoutes } from \"./routes/docs\";\nimport { createDocRoutes } from \"./routes/doc\";\nimport { createAgentsRoutes } from \"./routes/agents\";\nimport { createTagsRoutes } from \"./routes/tags\";\nimport { createFoldersRoutes } from \"./routes/folders\";\nimport { createEventsRoutes } from \"./routes/events\";\nimport { createSystemRoutes } from \"./routes/system\";\n\nexport type ProjectRouterOptions = {\n projectId: string;\n rootDir: string;\n ctx?: RouterContext;\n};\n\nexport function createProjectRouter(options: ProjectRouterOptions): Router {\n const router = Router();\n\n const ctx =\n options.ctx ??\n createRouterContext(options.projectId, [options.rootDir], []);\n\n router.use(createProjectRoutes(ctx));\n router.use(createDocsRoutes(ctx));\n router.use(createDocRoutes(ctx));\n router.use(createAgentsRoutes(ctx));\n router.use(createTagsRoutes(ctx));\n router.use(createFoldersRoutes(ctx));\n router.use(createEventsRoutes(ctx));\n router.use(createSystemRoutes(ctx));\n\n return router;\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport type { Response } from \"express\";\nimport { getMarkdownMetadata } from \"@hyperdoc/adapter-markdown\";\nimport {\n DOC_TYPE_CONFIG,\n getDocTypeFromName,\n projectConfigSchema,\n stripDocExtension,\n type ProjectConfig,\n} from \"@hyperdoc/core\";\nimport { logger } from \"@hyperdoc/core\";\nimport { loadAgentsForProject } from \"../paths\";\n\nexport type PermissionMode = \"default\" | \"acceptEdits\";\n\nexport type AgentEntry = {\n id: string;\n projectId: string;\n name: string | null;\n createdAt: number;\n updatedAt?: number;\n archived?: boolean;\n permissionMode?: PermissionMode;\n messages: Array<{\n role: \"user\" | \"assistant\";\n content: string;\n isThinking?: boolean;\n }>;\n sessionId?: string;\n queryInstance?: unknown;\n isInterrupting?: boolean;\n pendingPermissions: Map<\n string,\n {\n toolName: string;\n toolUseID: string;\n input: Record<string, unknown>;\n decisionReason?: string;\n blockedPath?: string;\n suggestions?: unknown[];\n resolve: (result: {\n behavior: \"allow\" | \"deny\";\n message?: string;\n updatedPermissions?: unknown[];\n }) => void;\n }\n >;\n};\n\nexport type RouterContext = {\n projectId: string;\n rootDir: string;\n codeDir?: string;\n docsDirs: string[];\n codeDirs: string[];\n rootDirPrefix: string;\n hyperdocDir: string;\n projectFilePath: string;\n docExtensions: string[];\n\n resolveDocPath: (name: string, dirIndex?: number) => string;\n isDocPathSafe: (filePath: string, dirIndex?: number) => boolean;\n isMetadataName: (name: string) => boolean;\n isIgnoredDir: (name: string) => boolean;\n walkDir: (\n dir: string,\n prefix: string,\n ) => { files: { name: string; relPath: string }[]; folders: string[] };\n walkDocsDirs: () => {\n dirs: Array<{\n rootLabel: string;\n files: { name: string; relPath: string }[];\n folders: string[];\n }>;\n };\n walkCodeDir: () => {\n files: string[];\n folders: string[];\n } | null;\n walkCodeDirs: () => Array<{\n rootLabel: string;\n files: string[];\n folders: string[];\n }>;\n readCodeFile: (relPath: string, dirIndex?: number) => string | null;\n ensureHyperdocDir: () => void;\n readProjectConfig: () => {\n config: ProjectConfig | null;\n error: unknown;\n };\n writeProjectConfig: (config: ProjectConfig) => void;\n decodeJsonMetadata: (\n content: string,\n ) => { tags: string[]; pinned?: boolean } | null;\n normalizeTags: (value: unknown) => string[];\n tagsFromContent: (name: string, content: string) => string[];\n indexFileTags: (name: string) => void;\n rebuildTagIndex: () => void;\n validateDocName: (name: string) => string | null;\n validateFolderPath: (name: string) => string | null;\n displayNameFromFileName: (name: string) => string;\n\n fileTags: Map<string, string[]>;\n tagIndex: Set<string>;\n agents: Map<string, AgentEntry>;\n recentWrites: Map<string, { clientId: string; ts: number; mtimeMs: number }>;\n sseClients: Set<Response>;\n};\n\nexport function createRouterContext(\n projectId: string,\n docsDirs: string[],\n codeDirs: string[],\n): RouterContext {\n const resolvedDocsDirs = docsDirs.map((d) => path.resolve(d));\n const resolvedCodeDirs = codeDirs.map((d) => path.resolve(d));\n const resolvedRoot = resolvedDocsDirs[0];\n\n const rootDirPrefix = resolvedRoot.endsWith(path.sep)\n ? resolvedRoot\n : `${resolvedRoot}${path.sep}`;\n\n const metadataFileName = \"metadata.json\";\n const hyperdocDirName = \".hyperdoc\";\n const projectFileName = \"project.json\";\n const docExtensions = DOC_TYPE_CONFIG.map((config) => config.extension);\n\n const ignoredDirs = new Set([\n \".git\",\n hyperdocDirName,\n \".trash\",\n \".archive\",\n \"node_modules\",\n \"dist\",\n \"bundles\",\n ]);\n\n const hyperdocDir = path.join(resolvedRoot, hyperdocDirName);\n const projectFilePath = path.join(hyperdocDir, projectFileName);\n\n const resolveDocPath = (name: string, dirIndex = 0) => {\n const dir = resolvedDocsDirs[dirIndex] ?? resolvedRoot;\n return path.resolve(dir, name);\n };\n\n const isDocPathSafe = (filePath: string, dirIndex = 0) => {\n const dir = resolvedDocsDirs[dirIndex] ?? resolvedRoot;\n const prefix = dir.endsWith(path.sep) ? dir : `${dir}${path.sep}`;\n return filePath.startsWith(prefix);\n };\n\n const isMetadataName = (name: string) =>\n path.basename(name) === metadataFileName;\n\n const isIgnoredDir = (name: string) => ignoredDirs.has(name);\n\n const walkDir = (\n dir: string,\n prefix: string,\n ): { files: { name: string; relPath: string }[]; folders: string[] } => {\n const files: { name: string; relPath: string }[] = [];\n const folders: string[] = [];\n let entries: fs.Dirent[];\n\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return { files, folders };\n }\n\n for (const entry of entries) {\n if (entry.isDirectory()) {\n if (isIgnoredDir(entry.name)) continue;\n if (entry.name.startsWith(\".\")) continue;\n const relFolder = prefix ? `${prefix}/${entry.name}` : entry.name;\n folders.push(relFolder);\n const sub = walkDir(path.join(dir, entry.name), relFolder);\n files.push(...sub.files);\n folders.push(...sub.folders);\n } else if (entry.isFile()) {\n const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n\n if (\n docExtensions.some((ext) => entry.name.endsWith(ext)) &&\n !isMetadataName(entry.name)\n )\n files.push({ name: entry.name, relPath });\n }\n }\n\n return { files, folders };\n };\n\n const walkCodeDir = (): {\n files: string[];\n folders: string[];\n } | null => {\n const resolvedCode = resolvedCodeDirs[0];\n if (!resolvedCode || !fs.existsSync(resolvedCode)) return null;\n\n const files: string[] = [];\n const folders: string[] = [];\n\n const walk = (dir: string, prefix: string) => {\n let entries: fs.Dirent[];\n\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return;\n }\n\n for (const entry of entries) {\n if (entry.name.startsWith(\".\")) continue;\n\n if (entry.isDirectory()) {\n if (isIgnoredDir(entry.name)) continue;\n const relFolder = prefix ? `${prefix}/${entry.name}` : entry.name;\n folders.push(relFolder);\n walk(path.join(dir, entry.name), relFolder);\n } else if (entry.isFile()) {\n const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n files.push(relPath);\n }\n }\n };\n\n walk(resolvedCode, \"\");\n return { files: files.sort(), folders: folders.sort() };\n };\n\n const walkDocsDirs = () => {\n const dirs = resolvedDocsDirs.map((dir) => {\n const label = path.basename(dir);\n if (!fs.existsSync(dir))\n return {\n rootLabel: label,\n files: [] as { name: string; relPath: string }[],\n folders: [] as string[],\n };\n const result = walkDir(dir, \"\");\n return { rootLabel: label, ...result };\n });\n\n return { dirs };\n };\n\n const walkCodeDirsImpl = () => {\n return resolvedCodeDirs\n .filter((dir) => fs.existsSync(dir))\n .map((dir) => {\n const label = path.basename(dir);\n const files: string[] = [];\n const folders: string[] = [];\n\n const walk = (d: string, prefix: string) => {\n let entries: fs.Dirent[];\n\n try {\n entries = fs.readdirSync(d, { withFileTypes: true });\n } catch {\n return;\n }\n\n for (const entry of entries) {\n if (entry.name.startsWith(\".\")) continue;\n\n if (entry.isDirectory()) {\n if (isIgnoredDir(entry.name)) continue;\n const relFolder = prefix ? `${prefix}/${entry.name}` : entry.name;\n folders.push(relFolder);\n walk(path.join(d, entry.name), relFolder);\n } else if (entry.isFile()) {\n const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n files.push(relPath);\n }\n }\n };\n\n walk(dir, \"\");\n return {\n rootLabel: label,\n files: files.sort(),\n folders: folders.sort(),\n };\n });\n };\n\n const readCodeFile = (relPath: string, dirIndex = 0): string | null => {\n const resolvedCode = resolvedCodeDirs[dirIndex];\n\n if (!resolvedCode) return null;\n\n if (relPath.includes(\"..\") || relPath.startsWith(\"/\")) return null;\n\n const filePath = path.resolve(resolvedCode, relPath);\n\n const codeDirPfx = resolvedCode.endsWith(path.sep)\n ? resolvedCode\n : `${resolvedCode}${path.sep}`;\n\n if (!filePath.startsWith(codeDirPfx)) return null;\n\n try {\n return fs.readFileSync(filePath, \"utf-8\");\n } catch {\n return null;\n }\n };\n\n const ensureHyperdocDir = () => {\n if (!fs.existsSync(hyperdocDir))\n fs.mkdirSync(hyperdocDir, { recursive: true });\n };\n\n const readProjectConfig = () => {\n if (!fs.existsSync(projectFilePath))\n return { config: null as ProjectConfig | null, error: null };\n\n try {\n const raw = fs.readFileSync(projectFilePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n const result = projectConfigSchema.safeParse(parsed);\n if (!result.success)\n return { config: null as ProjectConfig | null, error: result.error };\n return { config: result.data, error: null };\n } catch (error) {\n return { config: null as ProjectConfig | null, error };\n }\n };\n\n const writeProjectConfig = (config: ProjectConfig) => {\n ensureHyperdocDir();\n const payload = JSON.stringify(config, null, 2);\n fs.writeFileSync(projectFilePath, `${payload}\\n`, \"utf-8\");\n };\n\n const decodeJsonMetadata = (content: string) => {\n try {\n const parsed = JSON.parse(content);\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed))\n return null;\n const metadataRaw = (parsed as { metadata?: unknown }).metadata;\n if (\n !metadataRaw ||\n typeof metadataRaw !== \"object\" ||\n Array.isArray(metadataRaw)\n )\n return { tags: [] as string[] };\n const metadata = metadataRaw as { tags?: unknown; pinned?: unknown };\n\n const tags = Array.isArray(metadata.tags)\n ? metadata.tags.filter((tag) => typeof tag === \"string\")\n : [];\n\n const pinned = metadata.pinned === true;\n return { tags, pinned };\n } catch {\n return null;\n }\n };\n\n const normalizeTags = (value: unknown) => {\n if (!Array.isArray(value)) return [];\n\n const cleaned = value\n .map((tag) => (typeof tag === \"string\" ? tag.trim() : \"\"))\n .filter((tag) => tag.length > 0 && /^[a-z]+$/.test(tag));\n\n return Array.from(new Set(cleaned)).sort();\n };\n\n const tagsFromContent = (name: string, content: string) => {\n const type = getDocTypeFromName(name);\n if (type === \"markdown\" || type === \"prompt\")\n return getMarkdownMetadata(content)?.tags ?? [];\n if (type === \"json\" || type === \"app\")\n return decodeJsonMetadata(content)?.tags ?? [];\n return [];\n };\n\n const fileTags = new Map<string, string[]>();\n const tagIndex = new Set<string>();\n\n const indexFileTags = (name: string) => {\n const filePath = resolveDocPath(name);\n if (!fs.existsSync(filePath)) return;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const tags = normalizeTags(tagsFromContent(name, content));\n fileTags.set(name, tags);\n } catch {\n fileTags.set(name, []);\n }\n };\n\n const rebuildTagIndex = () => {\n tagIndex.clear();\n for (const tags of fileTags.values())\n for (const tag of tags) tagIndex.add(tag);\n };\n\n // Initial tag scan\n fileTags.clear();\n const { files } = walkDir(resolvedRoot, \"\");\n for (const file of files) indexFileTags(file.relPath);\n rebuildTagIndex();\n\n const validateDocName = (name: string) => {\n if (!name) return \"Missing name\";\n if (name.includes(\"\\\\\") || name.includes(\"..\")) return \"Invalid name\";\n if (name.startsWith(\"/\") || name.endsWith(\"/\")) return \"Invalid name\";\n return null;\n };\n\n const validateFolderPath = (name: string) => {\n if (!name) return \"Missing path\";\n if (name.includes(\"\\\\\") || name.includes(\"..\")) return \"Invalid path\";\n if (name.startsWith(\"/\") || name.endsWith(\"/\")) return \"Invalid path\";\n return null;\n };\n\n const displayNameFromFileName = (name: string) => {\n const basename = path.basename(name);\n const base = stripDocExtension(basename);\n const spaced = base.replace(/-+/g, \" \").trim();\n if (!spaced) return base;\n return `${spaced.charAt(0).toUpperCase()}${spaced.slice(1)}`;\n };\n\n const agents = new Map<string, AgentEntry>();\n const persistedAgents = loadAgentsForProject(projectId);\n\n for (const persisted of persistedAgents) {\n agents.set(persisted.id, {\n ...persisted,\n name: persisted.name ?? null,\n projectId,\n pendingPermissions: new Map(),\n queryInstance: undefined,\n });\n }\n\n if (persistedAgents.length > 0) {\n logger.info(\n `[agents] loaded ${persistedAgents.length} agent(s) for project=${projectId}: ${persistedAgents.map((a) => `${a.id}(${a.messages.length}msgs)`).join(\", \")}`,\n );\n }\n\n return {\n projectId,\n rootDir: resolvedRoot,\n codeDir: resolvedCodeDirs[0] as string | undefined,\n docsDirs: resolvedDocsDirs,\n codeDirs: resolvedCodeDirs,\n rootDirPrefix,\n hyperdocDir,\n projectFilePath,\n docExtensions,\n resolveDocPath,\n isDocPathSafe,\n isMetadataName,\n isIgnoredDir,\n walkDir,\n walkDocsDirs,\n walkCodeDir,\n walkCodeDirs: walkCodeDirsImpl,\n readCodeFile,\n ensureHyperdocDir,\n readProjectConfig,\n writeProjectConfig,\n decodeJsonMetadata,\n normalizeTags,\n tagsFromContent,\n indexFileTags,\n rebuildTagIndex,\n validateDocName,\n validateFolderPath,\n displayNameFromFileName,\n fileTags,\n tagIndex,\n agents,\n recentWrites: new Map(),\n sseClients: new Set(),\n };\n}\n","export type MarkdownMetadata = {\n tags: string[];\n pinned: boolean;\n title: string | null;\n};\n\nexport const getMarkdownMetadata = (\n content: string,\n): MarkdownMetadata | null => {\n const match = content.match(\n /^\\uFEFF?\\s*<!--\\s*hyperdoc:([A-Za-z0-9+/=]+)\\s*-->\\s*(?:\\r?\\n|$)/i,\n );\n\n if (!match) return null;\n\n try {\n const json = Buffer.from(match[1], \"base64\").toString(\"utf-8\");\n const parsed = JSON.parse(json);\n\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return null;\n }\n\n const tagsRaw = (parsed as { tags?: unknown; pinned?: unknown }).tags;\n\n const tags = Array.isArray(tagsRaw)\n ? tagsRaw.filter((tag) => typeof tag === \"string\")\n : [];\n\n const pinned = (parsed as { pinned?: unknown }).pinned === true;\n\n const title =\n typeof (parsed as { title?: unknown }).title === \"string\"\n ? ((parsed as { title?: string }).title ?? null)\n : null;\n\n return { tags, pinned, title };\n } catch {\n return null;\n }\n};\n\nconst metadataHeaderStrip =\n /^\\uFEFF?\\s*<!--\\s*hyperdoc:[A-Za-z0-9+/=]+\\s*-->\\s*(?:\\r?\\n|$)/i;\n\nconst stripMetadataSpacer = (value: string) => {\n if (!value) return value;\n const match = value.match(/^\\s*(?:\\r?\\n)/);\n\n if (match) {\n return value.slice(match[0].length);\n }\n\n return value;\n};\n\nexport const stripMarkdownMetadataHeader = (content: string) => {\n let output = content.replace(/^\\uFEFF/, \"\");\n let previous = \"\";\n\n while (output !== previous) {\n previous = output;\n output = output.replace(metadataHeaderStrip, \"\");\n }\n\n return stripMetadataSpacer(output);\n};\n\nconst parseLegacyTitle = (content: string) => {\n const match = content.match(/^\\s*<!--\\s*title:\\s*(.+?)\\s*-->\\s*(?:\\r?\\n|$)/i);\n return match ? match[1].trim() : null;\n};\n\nexport const extractMarkdownTitle = (content: string) =>\n parseLegacyTitle(content);\n","import os from \"os\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { z } from \"zod\";\nimport { logger, projectsFileSchema, type ProjectEntry } from \"@hyperdoc/core\";\n\n/**\n * Returns the hyperdoc home directory.\n * Override with HYPERDOC_HOME env var (useful for local development).\n * Defaults to ~/.hyperdoc.\n */\nexport function getHyperdocHome(): string {\n if (process.env.HYPERDOC_HOME) return path.resolve(process.env.HYPERDOC_HOME);\n return path.join(os.homedir(), \".hyperdoc\");\n}\n\nexport function getDefaultProjectsPath(): string {\n return path.join(getHyperdocHome(), \"projects.json\");\n}\n\nexport function loadProjectsFromFile(filePath: string): ProjectEntry[] {\n if (!fs.existsSync(filePath)) return [];\n\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n const result = projectsFileSchema.safeParse(parsed);\n\n if (!result.success) {\n logger.warn(`Invalid ${filePath}: ${result.error.message}`);\n return [];\n }\n\n return result.data;\n } catch (error) {\n logger.warn(`Failed to read ${filePath}: ${error}`);\n return [];\n }\n}\n\n// --- Config (persisted user settings in ~/.hyperdoc/config.json) ---\n\nconst configSchema = z\n .object({\n anthropicApiKey: z.string().optional(),\n })\n .passthrough();\n\nexport type HyperdocConfig = z.infer<typeof configSchema>;\n\nfunction getConfigPath(): string {\n return path.join(getHyperdocHome(), \"config.json\");\n}\n\nexport function readConfig(): HyperdocConfig {\n const configPath = getConfigPath();\n if (!fs.existsSync(configPath)) return {};\n\n try {\n const raw = fs.readFileSync(configPath, \"utf-8\");\n const parsed = JSON.parse(raw);\n const result = configSchema.safeParse(parsed);\n\n if (!result.success) {\n logger.warn(`Invalid config at ${configPath}: ${result.error.message}`);\n return {};\n }\n\n return result.data;\n } catch (error) {\n logger.warn(`Failed to read config at ${configPath}: ${error}`);\n return {};\n }\n}\n\nexport function writeConfig(config: HyperdocConfig): void {\n const configPath = getConfigPath();\n const dir = path.dirname(configPath);\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n}\n\nexport function updateConfig(updates: Partial<HyperdocConfig>): HyperdocConfig {\n const config = { ...readConfig(), ...updates };\n writeConfig(config);\n return config;\n}\n\n/**\n * Resolves the Anthropic API key.\n * Priority: ANTHROPIC_API_KEY env var > ~/.hyperdoc/config.json\n */\nexport function getAnthropicApiKey(): string | undefined {\n return process.env.ANTHROPIC_API_KEY || readConfig().anthropicApiKey;\n}\n\n// --- Agent persistence (per-project in ~/.hyperdoc/agents.json) ---\n\ntype PersistedAgent = {\n id: string;\n projectId: string;\n name: string | null;\n createdAt: number;\n updatedAt: number;\n archived: boolean;\n messages: Array<{\n role: \"user\" | \"assistant\";\n content: string;\n isThinking?: boolean;\n }>;\n sessionId?: string;\n};\n\nfunction getAgentsPath(): string {\n return path.join(getHyperdocHome(), \"agents.json\");\n}\n\nfunction readAllAgents(): PersistedAgent[] {\n const filePath = getAgentsPath();\n if (!fs.existsSync(filePath)) return [];\n\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n if (!Array.isArray(parsed)) return [];\n return parsed.map((a: Record<string, unknown>) => ({\n ...a,\n name: a.name ?? null,\n })) as PersistedAgent[];\n } catch {\n return [];\n }\n}\n\nfunction writeAllAgents(agents: PersistedAgent[]): void {\n const filePath = getAgentsPath();\n const dir = path.dirname(filePath);\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(filePath, JSON.stringify(agents, null, 2) + \"\\n\", \"utf-8\");\n}\n\nexport function loadAgentsForProject(projectId: string): PersistedAgent[] {\n return readAllAgents().filter((a) => a.projectId === projectId);\n}\n\nexport function persistAgent(\n projectId: string,\n agent: {\n id: string;\n name: string | null;\n createdAt: number;\n updatedAt?: number;\n archived?: boolean;\n messages: PersistedAgent[\"messages\"];\n sessionId?: string;\n },\n): void {\n const all = readAllAgents();\n const idx = all.findIndex((a) => a.id === agent.id);\n\n const existing = idx >= 0 ? all[idx] : undefined;\n\n const entry: PersistedAgent = {\n id: agent.id,\n projectId,\n name: agent.name,\n createdAt: agent.createdAt,\n updatedAt: agent.updatedAt ?? existing?.updatedAt ?? agent.createdAt,\n archived: agent.archived ?? existing?.archived ?? false,\n messages: agent.messages,\n sessionId: agent.sessionId,\n };\n\n if (idx >= 0) all[idx] = entry;\n else all.push(entry);\n writeAllAgents(all);\n}\n\nexport function removePersistedAgent(agentId: string): void {\n writeAllAgents(readAllAgents().filter((a) => a.id !== agentId));\n}\n","import { Router, Request, Response } from \"express\";\nimport { projectConfigSchema } from \"@hyperdoc/core\";\nimport type { RouterContext } from \"./context\";\n\nexport function createProjectRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.get(\"/project\", (req: Request, res: Response) => {\n const { config, error } = ctx.readProjectConfig();\n\n if (error) {\n res.status(400).json({ error: \"Invalid project config\" });\n return;\n }\n\n res.json({ name: config?.name ?? null, exists: config !== null });\n });\n\n router.put(\"/project\", (req: Request, res: Response) => {\n const raw = typeof req.body === \"string\" ? req.body : \"\";\n\n if (!raw.trim()) {\n res.status(400).send(\"Missing body\");\n return;\n }\n\n let parsed: unknown;\n\n try {\n parsed = JSON.parse(raw);\n } catch {\n res.status(400).send(\"Invalid JSON\");\n return;\n }\n\n const result = projectConfigSchema.safeParse(parsed);\n\n if (!result.success) {\n res.status(400).json({ error: \"Invalid project config\" });\n return;\n }\n\n ctx.writeProjectConfig(result.data);\n res.json({ name: result.data.name ?? null });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n extractMarkdownTitle,\n getMarkdownMetadata,\n} from \"@hyperdoc/adapter-markdown\";\nimport {\n type DocType,\n getDocTypeFromName,\n isDocType,\n logger,\n normalizeDocName,\n} from \"@hyperdoc/core\";\nimport type { RouterContext } from \"./context\";\n\nexport function createDocsRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.get(\"/docs\", (req: Request, res: Response) => {\n const { files, folders } = ctx.walkDir(ctx.rootDir, \"\");\n\n const docs = files\n .map((file) => {\n const type = getDocTypeFromName(file.name);\n return type ? { name: file.relPath, type } : null;\n })\n .filter(\n (entry): entry is { name: string; type: DocType } => entry !== null,\n )\n .map((entry) => {\n const filePath = ctx.resolveDocPath(entry.name);\n\n if (entry.type === \"markdown\") {\n let title: string | null = null;\n let tags: string[] = [];\n let pinned = false;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n title = extractMarkdownTitle(content);\n const metadata = getMarkdownMetadata(content);\n tags = ctx.normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n title = null;\n tags = [];\n pinned = false;\n }\n\n return {\n ...entry,\n title,\n tags,\n pinned,\n displayName:\n title && title.length > 0\n ? title\n : ctx.displayNameFromFileName(entry.name),\n };\n }\n\n if (\n entry.type === \"json\" ||\n entry.type === \"app\" ||\n entry.type === \"tasks\"\n ) {\n let tags: string[] = [];\n let pinned = false;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const metadata = ctx.decodeJsonMetadata(content);\n tags = ctx.normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n tags = [];\n pinned = false;\n }\n\n return {\n ...entry,\n title: null,\n tags,\n pinned,\n displayName: ctx.displayNameFromFileName(entry.name),\n };\n }\n\n return {\n ...entry,\n title: null,\n tags: [],\n pinned: false,\n displayName: ctx.displayNameFromFileName(entry.name),\n };\n });\n\n res.json({ docs, folders: folders.sort() });\n });\n\n router.get(\"/docs/exists\", (req: Request, res: Response) => {\n const name = String(req.query.name ?? \"\");\n const nameError = ctx.validateDocName(name);\n\n if (nameError) {\n res.status(400).send(nameError);\n return;\n }\n\n const filePath = ctx.resolveDocPath(name);\n\n if (!ctx.isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n res.json({ exists: fs.existsSync(filePath) });\n });\n\n router.post(\"/docs\", (req: Request, res: Response) => {\n let payload: {\n name?: string;\n type?: DocType;\n content?: string;\n title?: string;\n } | null = null;\n\n if (typeof req.body === \"string\") {\n try {\n payload = JSON.parse(req.body);\n } catch {\n payload = null;\n }\n } else if (req.body && typeof req.body === \"object\") {\n payload = req.body as {\n name?: string;\n type?: DocType;\n content?: string;\n title?: string;\n };\n }\n\n const payloadSummary = {\n hasPayload: Boolean(payload),\n keys: payload && typeof payload === \"object\" ? Object.keys(payload) : [],\n nameType: typeof payload?.name,\n typeValue: payload?.type ?? null,\n typeType: typeof payload?.type,\n titleType: typeof payload?.title,\n contentType: typeof payload?.content,\n contentLength:\n typeof payload?.content === \"string\" ? payload.content.length : null,\n };\n\n const rawName = String(payload?.name ?? \"\");\n const rawType = payload?.type ?? null;\n\n if (!rawType) {\n logger.warn(\n `[api/docs] Missing type. payload=${JSON.stringify(payloadSummary)}`,\n );\n\n res.status(400).send(\"Missing type\");\n return;\n }\n\n if (!isDocType(rawType)) {\n logger.warn(\n `[api/docs] Invalid type. payload=${JSON.stringify(payloadSummary)}`,\n );\n\n res.status(400).send(\"Invalid type\");\n return;\n }\n\n let name = \"\";\n\n try {\n name = normalizeDocName(rawName, rawType);\n logger.info(\n `[api/docs] normalizeDocName: rawName=\"${rawName}\", rawType=\"${rawType}\", normalized=\"${name}\"`,\n );\n } catch (error) {\n logger.error(\n `[api/docs] normalizeDocName failed. payload=${JSON.stringify(\n payloadSummary,\n )} error=${error instanceof Error ? (error.stack ?? error.message) : String(error)}`,\n );\n\n res.status(500).send(\"Failed to normalize doc name\");\n return;\n }\n\n const nameError = ctx.validateDocName(name);\n\n if (nameError) {\n res.status(400).send(nameError);\n return;\n }\n\n const fileName = name;\n const filePath = ctx.resolveDocPath(fileName);\n\n if (!ctx.isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (fs.existsSync(filePath)) {\n res.status(409).send(\"Name already exists\");\n return;\n }\n\n const parentDir = path.dirname(filePath);\n if (!fs.existsSync(parentDir)) fs.mkdirSync(parentDir, { recursive: true });\n\n let content =\n payload?.content ??\n (rawType === \"tasks\"\n ? JSON.stringify(\n { data: [], statuses: [\"todo\", \"in progress\", \"done\"] },\n null,\n 2,\n )\n : rawType === \"json\"\n ? JSON.stringify({ data: [] }, null, 2)\n : \"\");\n\n if (rawType === \"prompt\") {\n const formatPromptText = (data: {\n prompts: string[];\n activeVersion: number;\n }): string => {\n const { prompts, activeVersion } = data;\n const lines: string[] = [];\n\n // Header with active version\n lines.push(`{\"activeVersion\":${activeVersion}}`);\n lines.push(\"\");\n\n // Each version\n for (let i = 0; i < prompts.length; i++) {\n const versionNum = i + 1;\n lines.push(`=== version ${versionNum} ===`);\n lines.push(\"\");\n lines.push(prompts[i] ?? \"\");\n lines.push(\"\");\n }\n\n return lines.join(\"\\n\");\n };\n\n if (!content) {\n content = formatPromptText({ prompts: [\"\"], activeVersion: 1 });\n } else {\n try {\n const parsed = JSON.parse(content) as\n | { prompts?: string[]; activeVersion?: number }\n | string[];\n\n let prompts: string[];\n let activeVersion: number;\n\n if (Array.isArray(parsed)) {\n prompts = parsed.length > 0 ? parsed : [\"\"];\n activeVersion = prompts.length;\n } else if (parsed && typeof parsed === \"object\") {\n prompts =\n parsed.prompts &&\n Array.isArray(parsed.prompts) &&\n parsed.prompts.length > 0\n ? parsed.prompts\n : [\"\"];\n\n activeVersion =\n typeof parsed.activeVersion === \"number\" &&\n parsed.activeVersion > 0\n ? Math.min(parsed.activeVersion, prompts.length)\n : prompts.length;\n } else {\n prompts = [\"\"];\n activeVersion = 1;\n }\n\n content = formatPromptText({ prompts, activeVersion });\n } catch {\n content = formatPromptText({ prompts: [\"\"], activeVersion: 1 });\n }\n }\n }\n\n fs.writeFileSync(filePath, content, \"utf-8\");\n ctx.indexFileTags(fileName);\n ctx.rebuildTagIndex();\n\n const createdTags = ctx.normalizeTags(\n ctx.tagsFromContent(fileName, content),\n );\n\n const createdTitle =\n rawType === \"markdown\" ? extractMarkdownTitle(content) : null;\n\n res.status(201).json({\n name: fileName,\n type: rawType,\n title: createdTitle,\n tags: createdTags,\n displayName:\n createdTitle && createdTitle.length > 0\n ? createdTitle\n : ctx.displayNameFromFileName(fileName),\n });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n getMarkdownMetadata,\n stripMarkdownMetadataHeader,\n} from \"@hyperdoc/adapter-markdown\";\nimport { getDocTypeFromName, logger } from \"@hyperdoc/core\";\nimport type { RouterContext } from \"./context\";\n\ntype PromptData = {\n prompts: string[];\n activeVersion: number;\n};\n\nconst formatPromptText = (data: PromptData): string => {\n const { prompts, activeVersion } = data;\n const lines: string[] = [];\n\n // Header with active version\n lines.push(`{\"activeVersion\":${activeVersion}}`);\n lines.push(\"\");\n\n // Each version\n for (let i = 0; i < prompts.length; i++) {\n const versionNum = i + 1;\n lines.push(`=== version ${versionNum} ===`);\n lines.push(\"\");\n lines.push(prompts[i] ?? \"\");\n lines.push(\"\");\n }\n\n return lines.join(\"\\n\");\n};\n\nconst parsePromptText = (content: string): PromptData => {\n const stripped = stripMarkdownMetadataHeader(content);\n const lines = stripped.split(\"\\n\");\n\n let activeVersion = 1;\n const prompts: string[] = [];\n let currentVersion: string[] = [];\n let inVersion = false;\n\n // Parse header\n if (lines.length > 0 && lines[0].trim().startsWith(\"{\")) {\n try {\n const header = JSON.parse(lines[0].trim());\n\n if (typeof header.activeVersion === \"number\") {\n activeVersion = header.activeVersion;\n }\n } catch {\n // Invalid header, use default\n }\n }\n\n // Parse versions\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n const versionMatch = line.match(/^=== version (\\d+) ===$/);\n\n if (versionMatch) {\n // Save previous version if we were in one\n if (inVersion) {\n prompts.push(currentVersion.join(\"\\n\").trimEnd());\n currentVersion = [];\n }\n\n inVersion = true;\n } else if (inVersion) {\n currentVersion.push(line);\n }\n }\n\n // Save last version\n if (inVersion && currentVersion.length > 0) {\n prompts.push(currentVersion.join(\"\\n\").trimEnd());\n }\n\n // Ensure at least one prompt\n if (prompts.length === 0) {\n prompts.push(\"\");\n }\n\n // Ensure activeVersion is valid\n if (activeVersion < 1 || activeVersion > prompts.length) {\n activeVersion = prompts.length;\n }\n\n return { prompts, activeVersion };\n};\n\nexport function createDocRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.post(\"/doc/rename\", (req: Request, res: Response) => {\n let payload: { from?: string; to?: string } | null = null;\n\n if (typeof req.body === \"string\") {\n try {\n payload = JSON.parse(req.body);\n } catch {\n payload = null;\n }\n } else if (req.body && typeof req.body === \"object\") {\n payload = req.body as { from?: string; to?: string };\n }\n\n const from = String(payload?.from ?? \"\").trim();\n const to = String(payload?.to ?? \"\").trim();\n\n if (!from || !to) {\n res.status(400).send(\"Missing rename target\");\n return;\n }\n\n const fromError = ctx.validateDocName(from);\n\n if (fromError) {\n res.status(400).send(fromError);\n return;\n }\n\n const toError = ctx.validateDocName(to);\n\n if (toError) {\n res.status(400).send(toError);\n return;\n }\n\n if (ctx.isMetadataName(from) || ctx.isMetadataName(to)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n\n const fromPath = ctx.resolveDocPath(from);\n const toPath = ctx.resolveDocPath(to);\n\n if (!ctx.isDocPathSafe(fromPath) || !ctx.isDocPathSafe(toPath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(fromPath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n\n if (fs.existsSync(toPath)) {\n res.status(409).send(\"Name already exists\");\n return;\n }\n\n const fromType = getDocTypeFromName(from);\n const toType = getDocTypeFromName(to);\n\n if (!fromType || !toType || fromType !== toType) {\n res.status(400).send(\"Name extension does not match type\");\n return;\n }\n\n const toParent = path.dirname(toPath);\n if (!fs.existsSync(toParent)) fs.mkdirSync(toParent, { recursive: true });\n fs.renameSync(fromPath, toPath);\n\n if (fromType) {\n ctx.fileTags.delete(from);\n ctx.indexFileTags(to);\n ctx.rebuildTagIndex();\n }\n\n res.json({\n name: to,\n type: fromType,\n title: null,\n displayName: ctx.displayNameFromFileName(to),\n });\n });\n\n router.post(\"/doc/:name/archive\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n\n if (ctx.isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n\n const nameError = ctx.validateDocName(name);\n\n if (nameError) {\n res.status(400).send(nameError);\n return;\n }\n\n const filePath = ctx.resolveDocPath(name);\n\n if (!ctx.isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n\n const archiveDir = path.join(ctx.hyperdocDir, \"archive\");\n ctx.ensureHyperdocDir();\n if (!fs.existsSync(archiveDir))\n fs.mkdirSync(archiveDir, { recursive: true });\n const flatName = name.replace(/\\//g, \"--\");\n const archivePath = path.join(archiveDir, flatName);\n\n if (fs.existsSync(archivePath)) {\n res.status(409).send(\"Archived file already exists with that name\");\n return;\n }\n\n fs.renameSync(filePath, archivePath);\n ctx.fileTags.delete(name);\n ctx.rebuildTagIndex();\n res.json({ archived: true, name });\n });\n\n router.get(\"/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n\n if (ctx.isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n\n const filePath = ctx.resolveDocPath(name);\n\n if (!ctx.isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n\n const content = fs.readFileSync(filePath, \"utf-8\");\n const stat = fs.statSync(filePath);\n const type = getDocTypeFromName(name);\n\n if (type === \"markdown\") {\n const metadata = getMarkdownMetadata(content);\n res.json({\n content: stripMarkdownMetadataHeader(content),\n mtimeMs: stat.mtimeMs,\n metadata,\n });\n\n return;\n }\n\n if (type === \"prompt\") {\n try {\n const parsed = parsePromptText(content);\n res.json({\n content: JSON.stringify({\n prompts: parsed.prompts,\n activeVersion: parsed.activeVersion,\n }),\n mtimeMs: stat.mtimeMs,\n });\n\n return;\n } catch (error) {\n logger.error(`[doc/${name}] Failed to parse prompt: ${error}`);\n }\n\n res.json({\n content: JSON.stringify({ prompts: [\"\"], activeVersion: 1 }),\n mtimeMs: stat.mtimeMs,\n });\n\n return;\n }\n\n res.json({ content, mtimeMs: stat.mtimeMs });\n });\n\n router.put(\"/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n logger.info(`[doc/${name}] PUT request received`);\n\n if (ctx.isMetadataName(name)) {\n logger.warn(`[doc/${name}] Reserved name, rejecting`);\n res.status(400).send(\"Reserved name\");\n return;\n }\n\n const filePath = ctx.resolveDocPath(name);\n logger.info(`[doc/${name}] Resolved file path: ${filePath}`);\n\n if (!ctx.isDocPathSafe(filePath)) {\n logger.warn(`[doc/${name}] Invalid path, rejecting`);\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(filePath)) {\n logger.warn(`[doc/${name}] File not found: ${filePath}`);\n res.status(404).send(\"Not found\");\n return;\n }\n\n const baseHeader = req.header(\"x-hyperdoc-base-version\");\n\n if (baseHeader !== undefined) {\n const baseVersion = Number(baseHeader);\n\n if (!Number.isFinite(baseVersion)) {\n res.status(400).send(\"Invalid base version\");\n return;\n }\n\n const currentStat = fs.statSync(filePath);\n\n if (currentStat.mtimeMs !== baseVersion) {\n res.status(409).json({ mtimeMs: currentStat.mtimeMs });\n return;\n }\n }\n\n const type = getDocTypeFromName(name);\n let writeContent = typeof req.body === \"string\" ? req.body : \"\";\n\n logger.info(\n `[doc/${name}] PUT request - type: ${type}, body type: ${typeof req.body}, body length: ${writeContent.length}`,\n );\n\n if (type === \"prompt\") {\n try {\n logger.info(\n `[doc/${name}] Processing prompt - raw content: ${writeContent.substring(0, 200)}`,\n );\n\n // Strip markdown metadata header if present\n const strippedContent = stripMarkdownMetadataHeader(writeContent);\n logger.info(\n `[doc/${name}] After stripping metadata, content: ${strippedContent.substring(0, 200)}`,\n );\n\n if (!strippedContent || strippedContent.trim() === \"\") {\n writeContent = formatPromptText({ prompts: [\"\"], activeVersion: 1 });\n logger.info(`[doc/${name}] Empty content, using default`);\n } else {\n const parsed = JSON.parse(strippedContent) as\n | { prompts?: string[]; activeVersion?: number }\n | string[];\n\n // Handle both old format (array) and new format (object)\n let prompts: string[];\n let activeVersion: number;\n\n if (Array.isArray(parsed)) {\n // Legacy format: just an array\n prompts = parsed.length > 0 ? parsed : [\"\"];\n activeVersion = prompts.length;\n } else if (parsed && typeof parsed === \"object\") {\n prompts =\n parsed.prompts &&\n Array.isArray(parsed.prompts) &&\n parsed.prompts.length > 0\n ? parsed.prompts\n : [\"\"];\n\n activeVersion =\n typeof parsed.activeVersion === \"number\" &&\n parsed.activeVersion > 0\n ? Math.min(parsed.activeVersion, prompts.length)\n : prompts.length;\n } else {\n prompts = [\"\"];\n activeVersion = 1;\n }\n\n logger.info(\n `[doc/${name}] Parsed prompts array, length: ${prompts.length}, activeVersion: ${activeVersion}`,\n );\n\n writeContent = formatPromptText({ prompts, activeVersion });\n logger.info(\n `[doc/${name}] Formatted text, length: ${writeContent.length}, preview: ${writeContent.substring(0, 200)}`,\n );\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n\n logger.error(\n `[doc/${name}] Failed to parse prompt content: ${errorMessage}`,\n );\n\n logger.error(\n `[doc/${name}] Content was: ${writeContent.substring(0, 200)}`,\n );\n\n writeContent = formatPromptText({ prompts: [\"\"], activeVersion: 1 });\n }\n }\n\n try {\n logger.info(`[doc/${name}] Writing to file: ${filePath}`);\n logger.info(\n `[doc/${name}] Content to write (first 500 chars): ${writeContent.substring(0, 500)}`,\n );\n\n fs.writeFileSync(filePath, writeContent, \"utf-8\");\n const verifyContent = fs.readFileSync(filePath, \"utf-8\");\n logger.info(\n `[doc/${name}] File written successfully, verified length: ${verifyContent.length}`,\n );\n\n logger.info(\n `[doc/${name}] Verified content (first 500 chars): ${verifyContent.substring(0, 500)}`,\n );\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n\n logger.error(`[doc/${name}] Failed to write file: ${errorMessage}`);\n logger.error(`[doc/${name}] File path: ${filePath}`);\n res.status(500).json({ error: \"Failed to write file\" });\n return;\n }\n\n const stat = fs.statSync(filePath);\n const clientId = req.header(\"x-hyperdoc-client-id\");\n if (clientId)\n ctx.recentWrites.set(name, {\n clientId,\n ts: Date.now(),\n mtimeMs: stat.mtimeMs,\n });\n logger.info(`[doc/${name}] Successfully saved, mtimeMs: ${stat.mtimeMs}`);\n res.json({ mtimeMs: stat.mtimeMs });\n });\n\n router.delete(\"/doc/:name\", (req: Request, res: Response) => {\n const name = String(req.params.name);\n\n if (ctx.isMetadataName(name)) {\n res.status(400).send(\"Reserved name\");\n return;\n }\n\n const nameError = ctx.validateDocName(name);\n\n if (nameError) {\n res.status(400).send(nameError);\n return;\n }\n\n const filePath = ctx.resolveDocPath(name);\n\n if (!ctx.isDocPathSafe(filePath)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(filePath)) {\n res.status(404).send(\"Not found\");\n return;\n }\n\n const trashDir = path.join(ctx.hyperdocDir, \"trash\");\n ctx.ensureHyperdocDir();\n\n if (!fs.existsSync(trashDir)) {\n fs.mkdirSync(trashDir, { recursive: true });\n fs.writeFileSync(path.join(trashDir, \".gitignore\"), \"*\\n!.gitignore\\n\");\n }\n\n const flatName = name.replace(/\\//g, \"--\");\n const trashPath = path.join(trashDir, flatName);\n\n if (fs.existsSync(trashPath)) {\n const ext = path.extname(flatName);\n const base = flatName.slice(0, -ext.length);\n const timestamp = Date.now();\n const uniqueName = `${base}-${timestamp}${ext}`;\n fs.renameSync(filePath, path.join(trashDir, uniqueName));\n } else {\n fs.renameSync(filePath, trashPath);\n }\n\n ctx.fileTags.delete(name);\n ctx.rebuildTagIndex();\n res.json({ deleted: true });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { execSync } from \"child_process\";\nimport type { PermissionResult } from \"@anthropic-ai/claude-agent-sdk\";\nimport { logger, getDocTypeFromName, DOC_TYPE_CONFIG } from \"@hyperdoc/core\";\nimport type { RouterContext, AgentEntry, PermissionMode } from \"./context\";\nimport {\n getAnthropicApiKey,\n persistAgent,\n removePersistedAgent,\n} from \"../paths\";\n\nconst AGENT_PLUGIN_PATH = path.resolve(__dirname, \"../../../agent-plugin\");\n\nasync function createHyperdocMcpServer(docsDirs: string[], codeDirs: string[]) {\n const projectRoot = docsDirs[0];\n const codeDir = codeDirs[0] as string | undefined;\n\n const { createSdkMcpServer, tool } =\n await import(\"@anthropic-ai/claude-agent-sdk\");\n\n const z = await import(\"zod/v4\");\n\n const docExtensions = DOC_TYPE_CONFIG.map((c) => c.extension);\n\n const ignoredDirs = new Set([\n \".git\",\n \".hyperdoc\",\n \".trash\",\n \".archive\",\n \"node_modules\",\n \"dist\",\n \"bundles\",\n ]);\n\n function walkDocs(\n dir: string,\n prefix: string,\n ): { name: string; type: string }[] {\n const results: { name: string; type: string }[] = [];\n let entries: fs.Dirent[];\n\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return results;\n }\n\n for (const entry of entries) {\n if (entry.isDirectory()) {\n if (ignoredDirs.has(entry.name) || entry.name.startsWith(\".\")) continue;\n const sub = prefix ? `${prefix}/${entry.name}` : entry.name;\n results.push(...walkDocs(path.join(dir, entry.name), sub));\n } else if (entry.isFile()) {\n const hasDocExt = docExtensions.some((ext) => entry.name.endsWith(ext));\n\n if (!hasDocExt) continue;\n const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n const docType = getDocTypeFromName(entry.name);\n if (docType) results.push({ name: relPath, type: docType });\n }\n }\n\n return results;\n }\n\n const APP_TEMPLATE_DIR = path.join(AGENT_PLUGIN_PATH, \"templates\", \"app\");\n\n function toCamelCase(kebab: string): string {\n return kebab.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n }\n\n function copyTemplate(\n srcDir: string,\n destDir: string,\n replacements: Record<string, string>,\n ) {\n fs.mkdirSync(destDir, { recursive: true });\n\n for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {\n const srcPath = path.join(srcDir, entry.name);\n const destPath = path.join(destDir, entry.name);\n\n if (entry.isDirectory()) {\n copyTemplate(srcPath, destPath, replacements);\n } else {\n let content = fs.readFileSync(srcPath, \"utf-8\");\n\n for (const [placeholder, value] of Object.entries(replacements))\n content = content.split(placeholder).join(value);\n\n fs.writeFileSync(destPath, content);\n }\n }\n }\n\n function scaffoldApp(name: string): string {\n const baseDir = codeDir ?? projectRoot;\n const appDir = path.join(baseDir, name);\n const configFile = path.join(projectRoot, `${name}.app.json`);\n\n if (fs.existsSync(appDir))\n throw new Error(`Directory \"${name}\" already exists`);\n\n if (fs.existsSync(configFile))\n throw new Error(`Config \"${name}.app.json\" already exists`);\n\n if (!fs.existsSync(APP_TEMPLATE_DIR))\n throw new Error(`App template not found at ${APP_TEMPLATE_DIR}`);\n\n fs.mkdirSync(baseDir, { recursive: true });\n\n copyTemplate(APP_TEMPLATE_DIR, appDir, {\n __APP_NAME_CAMEL__: toCamelCase(name),\n __APP_NAME__: name,\n });\n\n const bundlePath = codeDir\n ? `${name}/dist/${name}.bundle.js`\n : `${name}.bundle.js`;\n\n const cssPath = codeDir ? `${name}/dist/${name}.css` : `${name}.css`;\n\n fs.writeFileSync(\n configFile,\n JSON.stringify(\n { bundlePath, cssPath, mountId: name, bundleType: \"classic\" },\n null,\n 2,\n ),\n );\n\n try {\n execSync(\"npm install\", { cwd: appDir, stdio: \"pipe\", timeout: 60000 });\n } catch (err) {\n return [\n `Scaffolded app \"${name}\" but npm install failed — run it manually.`,\n \"\",\n `Project directory: ${appDir}`,\n `Config file: ${name}.app.json`,\n `Entry point: ${name}/src/main.tsx`,\n `Build: cd ${appDir} && npm run build`,\n \"\",\n `Error: ${err instanceof Error ? err.message : String(err)}`,\n ].join(\"\\n\");\n }\n\n return [\n `Scaffolded app \"${name}\" successfully.`,\n \"\",\n `Project directory: ${appDir}`,\n `Config file: ${name}.app.json (in docs)`,\n `Entry point: ${name}/src/main.tsx (edit this to build your app)`,\n `Build command: cd ${appDir} && npm run build`,\n \"\",\n \"Next steps:\",\n `1. Edit ${name}/src/main.tsx with your app code`,\n `2. Run the build command to compile the bundle`,\n `3. The bundle outputs to ${name}/dist/${name}.bundle.js automatically`,\n ].join(\"\\n\");\n }\n\n return createSdkMcpServer({\n name: \"hyperdoc\",\n version: \"1.0.0\",\n tools: [\n tool(\n \"list_docs\",\n \"List all documents in the Hyperdoc project with their types\",\n { folder: z.string().optional() },\n async (args) => {\n const allDocs: { name: string; type: string; root?: string }[] = [];\n\n for (const dir of docsDirs) {\n const targetDir = args.folder\n ? path.resolve(dir, args.folder)\n : dir;\n\n if (!targetDir.startsWith(dir)) continue;\n\n const docs = walkDocs(targetDir, args.folder ?? \"\");\n const label = docsDirs.length > 1 ? path.basename(dir) : undefined;\n for (const doc of docs)\n allDocs.push({ ...doc, ...(label ? { root: label } : {}) });\n }\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(allDocs, null, 2),\n },\n ],\n };\n },\n ),\n tool(\n \"scaffold_app\",\n \"Create a new Hyperdoc app project with Vite + React. Sets up the build pipeline, config file, and entry point. After scaffolding, edit src/main.tsx to build the app, then run the build command.\",\n {\n name: z\n .string()\n .describe(\n \"App name in kebab-case (e.g. 'dashboard', 'task-tracker')\",\n ),\n },\n async (args) => {\n try {\n const result = scaffoldApp(args.name);\n\n return {\n content: [{ type: \"text\" as const, text: result }],\n };\n } catch (err) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Error: ${err instanceof Error ? err.message : String(err)}`,\n },\n ],\n };\n }\n },\n ),\n tool(\n \"validate_app\",\n \"Validate an .app.json configuration file\",\n { filePath: z.string() },\n async (args) => {\n const fullPath = path.resolve(projectRoot, args.filePath);\n\n if (!fullPath.startsWith(projectRoot))\n return { content: [{ type: \"text\", text: \"Invalid file path\" }] };\n\n if (!fs.existsSync(fullPath))\n return {\n content: [\n { type: \"text\", text: `File not found: ${args.filePath}` },\n ],\n };\n\n try {\n const raw = fs.readFileSync(fullPath, \"utf-8\");\n const parsed = JSON.parse(raw);\n const errors: string[] = [];\n\n if (typeof parsed !== \"object\" || Array.isArray(parsed))\n errors.push(\"Must be a JSON object\");\n\n if (!parsed.bundlePath && !parsed.bundleUrl)\n errors.push(\"Must have bundlePath or bundleUrl\");\n\n if (!parsed.mountId) errors.push(\"Missing required field: mountId\");\n else if (typeof parsed.mountId !== \"string\")\n errors.push(\"mountId must be a string\");\n\n if (\n parsed.bundleType &&\n parsed.bundleType !== \"module\" &&\n parsed.bundleType !== \"classic\"\n )\n errors.push(\"bundleType must be 'module' or 'classic'\");\n\n if (parsed.bundlePath) {\n const bundleBaseDir =\n codeDir ?? path.join(projectRoot, \"bundles\");\n\n const bundleFullPath = path.resolve(\n bundleBaseDir,\n parsed.bundlePath,\n );\n\n const bundleExists = fs.existsSync(bundleFullPath);\n\n if (!bundleExists)\n errors.push(`Bundle file not found at ${parsed.bundlePath}`);\n }\n\n if (errors.length > 0)\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Validation failed:\\n${errors.map((e) => `- ${e}`).join(\"\\n\")}`,\n },\n ],\n };\n\n return {\n content: [\n { type: \"text\" as const, text: \"Valid app configuration.\" },\n ],\n };\n } catch (err) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Error: ${err instanceof Error ? err.message : String(err)}`,\n },\n ],\n };\n }\n },\n ),\n ],\n });\n}\n\nfunction getHyperdocSystemPrompt(\n docsDirs: string[],\n codeDirs: string[],\n): string {\n const lines = [\n \"You are an AI assistant working inside a Hyperdoc project.\",\n \"Your job is to help users create and edit documents in their project.\",\n \"\",\n \"Hyperdoc is a document-oriented workspace backed by flat files on disk.\",\n \"Users work with several document types. When they ask you to create or edit\",\n \"a document, they are always referring to one of these Hyperdoc document types:\",\n \"\",\n \" Document (or Markdown) → .md file\",\n \" App → .app.json config + JS bundle\",\n \" Table (or Data table) → .table.json data file\",\n \" Prompt → .prompt.yaml file\",\n \"\",\n 'IMPORTANT: When a user says \"build an app\" or \"create an app\", they mean',\n 'a Hyperdoc app — not a general-purpose application. Similarly, \"table\" means',\n \"a Hyperdoc data table, not a database table or HTML table.\",\n \"\",\n \"You have skills installed for each custom document type. You MUST read the\",\n \"appropriate skill before creating or editing these documents, because the\",\n \"skills contain the exact schemas, constraints, and conventions you need to follow:\",\n \"\",\n ' \"app\" or \"app extension\" → use skill: hyperdoc:app-extensions (and scaffold_app tool)',\n ' \"table\" or \"data table\" → use skill: hyperdoc:data-tables',\n ' \"document\" or \"markdown\" → use skill: hyperdoc:markdown-docs',\n \"\",\n \"For prompts (.prompt.yaml), no skill is needed — they are simple YAML files\",\n \"containing an array of prompt strings.\",\n \"\",\n \"ZAPPER (dev environment runner):\",\n \"When you are helping the user set up a project that involves long-running\",\n \"processes (web servers, API servers, workers, databases, etc.), and there is\",\n 'no existing zap.yaml in the project, you should offer: \"Would you like me to',\n \"set up a Zap config? It lets you start all your services with a single command\",\n '(zap up) and manage them from the Hyperdoc UI via ⌘K → Show Zapper.\"',\n \"Only offer this when it is relevant — when the project genuinely has processes\",\n \"that would benefit from being orchestrated together.\",\n \"If the user agrees, read skill: hyperdoc:zapper before writing the config.\",\n \"The skill contains a quick reference and tells you how to fetch the full\",\n \"documentation so you write a correct zap.yaml.\",\n \"\",\n \"CODING STYLE — be extremely conservative:\",\n \"- Write the simplest possible code. Less is more.\",\n \"- Use CSS classes, not inline style={{}} objects.\",\n \"- Do NOT install packages, add dependencies, or modify config files.\",\n \"- Do NOT use CSS-in-JS, styled-components, or style jsx.\",\n \"- Do NOT write complex animations, hover effects in JS, or e.target.style mutations.\",\n \"- Keep components under 50 lines of JSX. Extract helpers if needed.\",\n \"- The scaffold provides base CSS — use it. Only add to src/styles.css if needed.\",\n \"- Only edit src/main.tsx and src/styles.css. Never touch vite.config.ts, tsconfig.json, or package.json.\",\n ];\n\n if (codeDirs.length > 0) {\n lines.push(\n \"\",\n \"DIRECTORY STRUCTURE:\",\n \"\",\n \"DOCS directories (for documents, tables, prompts, app configs):\",\n );\n\n for (const dir of docsDirs) lines.push(` - ${dir}`);\n\n lines.push(\"\", \"CODE directories (for app source code):\");\n\n for (const dir of codeDirs) lines.push(` - ${dir}`);\n\n lines.push(\n \"\",\n `Your current working directory (cwd) is: ${docsDirs[0]}`,\n \"When scaffolding apps (scaffold_app tool), source code is created in the first code directory.\",\n \"Each app lives in its own subfolder with a standard Vite project layout.\",\n \"\",\n \"When writing code, put it in a CODE directory.\",\n \"When creating docs, tables, prompts, or app configs, put them in a DOCS directory.\",\n );\n } else {\n lines.push(\"\", \"DOCS directories:\");\n\n for (const dir of docsDirs) lines.push(` - ${dir}`);\n\n lines.push(\n \"\",\n \"- `.hyperdoc/project.json` has optional project metadata.\",\n \"- `bundles/` holds built JS bundles for apps.\",\n );\n }\n\n lines.push(\n \"- `.hyperdoc/archive/` and `.hyperdoc/trash/` hold archived/deleted docs — ignore unless asked.\",\n \"- `node_modules/`, `dist/` are build artifacts — ignore.\",\n );\n\n return lines.join(\"\\n\");\n}\n\ntype EventCallback = (data: Record<string, unknown>) => void;\n\nconst EDIT_TOOLS = new Set([\"Edit\", \"Write\", \"MultiEdit\"]);\n\nconst createClaudeQuery = async (\n docsDirs: string[],\n codeDirs: string[],\n message: string,\n agentId: string,\n pendingPermissions: AgentEntry[\"pendingPermissions\"],\n resumeSessionId: string | undefined,\n permissionMode: PermissionMode = \"default\",\n onEvent?: EventCallback,\n) => {\n const apiKey = getAnthropicApiKey();\n\n if (!apiKey) {\n throw new Error(\n \"Anthropic API key not found. Set it in ~/.hyperdoc/config.json or via the ANTHROPIC_API_KEY environment variable.\",\n );\n }\n\n const { query } = await import(\"@anthropic-ai/claude-agent-sdk\");\n const resolvedDocsDirs = docsDirs.map((d) => path.resolve(d));\n const resolvedCodeDirs = codeDirs.map((d) => path.resolve(d));\n const resolvedProjectRoot = resolvedDocsDirs[0];\n\n const hyperdocMcp = await createHyperdocMcpServer(\n resolvedDocsDirs,\n resolvedCodeDirs,\n );\n\n logger.info(\n `[agents] createClaudeQuery agentId=${agentId} cwd=${resolvedProjectRoot} docsDirs=${resolvedDocsDirs.length} codeDirs=${resolvedCodeDirs.length} resume=${resumeSessionId ?? \"none\"}`,\n );\n\n if (!fs.existsSync(resolvedProjectRoot))\n throw new Error(`Project root does not exist: ${resolvedProjectRoot}`);\n\n const allAllowedDirs = [...resolvedDocsDirs, ...resolvedCodeDirs];\n\n const canUseTool = async (\n toolName: string,\n input: Record<string, unknown>,\n options: {\n toolUseID: string;\n decisionReason?: string;\n blockedPath?: string;\n suggestions?: unknown[];\n signal: AbortSignal;\n },\n ): Promise<PermissionResult> => {\n const { toolUseID, decisionReason, suggestions, signal } = options;\n\n if (permissionMode === \"acceptEdits\" && EDIT_TOOLS.has(toolName)) {\n logger.info(\n `[agents] auto-allowing edit tool=${toolName} agentId=${agentId}`,\n );\n\n onEvent?.({\n type: \"permission_auto_allowed\",\n toolName,\n toolUseID,\n input,\n });\n\n return { behavior: \"allow\", updatedInput: input, toolUseID };\n }\n\n const filePath = (input as { file_path?: string })?.file_path;\n const isAbsolutePath = filePath ? path.isAbsolute(filePath) : false;\n\n const isInAllowedDir =\n filePath && allAllowedDirs.some((dir) => filePath.startsWith(dir));\n\n const isWrongDirectory = filePath && isAbsolutePath && !isInAllowedDir;\n\n if (isWrongDirectory && filePath) {\n const correctedPath = path.join(\n resolvedProjectRoot,\n path.basename(filePath),\n );\n\n logger.warn(\n `[agents] correcting file path from=${filePath} to=${correctedPath}`,\n );\n\n (input as { file_path?: string }).file_path = correctedPath;\n }\n\n const correctedInput =\n isWrongDirectory && filePath\n ? {\n ...input,\n file_path: path.join(resolvedProjectRoot, path.basename(filePath)),\n }\n : input;\n\n const permissionId = `${agentId}-${toolUseID}-${Date.now()}`;\n\n logger.info(\n `[agents] permission request agentId=${agentId} permissionId=${permissionId} tool=${toolName} reason=${decisionReason ?? \"none\"}`,\n );\n\n onEvent?.({\n type: \"permission_request\",\n permissionId,\n toolName,\n toolUseID,\n input: correctedInput,\n decisionReason,\n blockedPath: options.blockedPath,\n });\n\n return new Promise<PermissionResult>((resolve) => {\n pendingPermissions.set(permissionId, {\n toolName,\n toolUseID,\n input: correctedInput,\n decisionReason,\n blockedPath: options.blockedPath,\n suggestions,\n resolve: (result) => {\n pendingPermissions.delete(permissionId);\n\n try {\n if (result.behavior === \"allow\") {\n resolve(\n buildAllowResponse(\n toolUseID,\n input,\n isWrongDirectory,\n filePath,\n resolvedProjectRoot,\n decisionReason,\n suggestions,\n result,\n ),\n );\n } else {\n resolve({\n behavior: \"deny\",\n message: result.message || \"Permission denied\",\n toolUseID,\n });\n }\n } catch (error) {\n logger.error(\n `[agents] error in permission resolve: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n resolve({\n behavior: \"deny\",\n message: `Error processing permission: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n toolUseID,\n });\n }\n },\n });\n\n signal.addEventListener(\"abort\", () => {\n pendingPermissions.delete(permissionId);\n resolve({\n behavior: \"deny\",\n message: \"Request aborted\",\n toolUseID,\n });\n });\n });\n };\n\n const additionalDirectories = [\n ...resolvedDocsDirs.slice(1),\n ...resolvedCodeDirs,\n ].filter(Boolean);\n\n const queryInstance = query({\n prompt: message,\n options: {\n cwd: resolvedProjectRoot,\n model: \"claude-sonnet-4-20250514\",\n ...(resumeSessionId ? { resume: resumeSessionId } : {}),\n ...(additionalDirectories.length > 0 ? { additionalDirectories } : {}),\n env: { ...process.env, PWD: resolvedProjectRoot },\n canUseTool,\n systemPrompt: {\n type: \"preset\" as const,\n preset: \"claude_code\" as const,\n append: getHyperdocSystemPrompt(resolvedDocsDirs, resolvedCodeDirs),\n },\n plugins: [{ type: \"local\" as const, path: AGENT_PLUGIN_PATH }],\n mcpServers: { hyperdoc: hyperdocMcp },\n },\n });\n\n return queryInstance;\n};\n\nfunction buildAllowResponse(\n toolUseID: string,\n input: Record<string, unknown>,\n isWrongDirectory: boolean | \"\" | null | undefined,\n filePath: string | undefined,\n resolvedProjectRoot: string,\n decisionReason: string | undefined,\n suggestions: unknown[] | undefined,\n result: {\n behavior: \"allow\" | \"deny\";\n message?: string;\n updatedPermissions?: unknown[];\n },\n): PermissionResult {\n let updatedInput: Record<string, unknown> | undefined;\n\n if (isWrongDirectory && filePath) {\n updatedInput = {\n ...input,\n file_path: path.join(resolvedProjectRoot, path.basename(filePath)),\n };\n }\n\n let updatedPermissions = result.updatedPermissions;\n\n const finalFilePath =\n updatedInput?.file_path ?? (input as { file_path?: string })?.file_path;\n\n const isWithinProjectRoot =\n finalFilePath && String(finalFilePath).startsWith(resolvedProjectRoot);\n\n if (\n decisionReason?.includes(\"outside allowed working directories\") &&\n isWithinProjectRoot &&\n suggestions &&\n suggestions.length > 0\n )\n updatedPermissions = suggestions;\n\n const response: PermissionResult = {\n behavior: \"allow\" as const,\n updatedInput: updatedInput || input,\n };\n\n if (\n updatedPermissions &&\n Array.isArray(updatedPermissions) &&\n updatedPermissions.length > 0\n )\n (response as { updatedPermissions?: unknown[] }).updatedPermissions =\n updatedPermissions;\n\n if (toolUseID) response.toolUseID = toolUseID;\n\n return response;\n}\n\nfunction sendSSE(res: Response, data: unknown): boolean {\n try {\n res.write(`data: ${JSON.stringify(data)}\\n\\n`);\n return true;\n } catch (error) {\n logger.error(\n `[agents] failed to send SSE: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n return false;\n }\n}\n\nfunction extractToolUse(\n msg: unknown,\n): { toolName: string; input: Record<string, unknown> } | null {\n const typed = msg as {\n message?: {\n content?: Array<{\n type: string;\n name?: string;\n input?: Record<string, unknown>;\n }>;\n };\n };\n\n if (!typed.message?.content) return null;\n const toolBlock = typed.message.content.find((b) => b.type === \"tool_use\");\n if (!toolBlock) return null;\n return {\n toolName: toolBlock.name ?? \"unknown\",\n input: toolBlock.input ?? {},\n };\n}\n\nconst HEARTBEAT_INTERVAL_MS = 15_000;\n\nasync function streamQueryResponse(\n res: Response,\n queryInstance: AsyncIterable<unknown> & { close: () => void },\n agent: AgentEntry,\n agentId: string,\n projectId: string,\n) {\n let messageCount = 0;\n let lastPersistAt = Date.now();\n let clientDisconnected = false;\n\n let currentAssistantIdx = -1;\n let currentAssistantText = \"\";\n let needsNewMessage = true;\n\n const heartbeatInterval = setInterval(() => {\n if (clientDisconnected) return;\n sendSSE(res, { type: \"heartbeat\", ts: Date.now() });\n }, HEARTBEAT_INTERVAL_MS);\n\n const cleanup = () => {\n clearInterval(heartbeatInterval);\n };\n\n res.on(\"close\", () => {\n if (clientDisconnected) return;\n clientDisconnected = true;\n logger.info(`[agents] client disconnected agentId=${agentId}`);\n cleanup();\n\n try {\n queryInstance.close();\n } catch {\n // ignore close errors\n }\n });\n\n const finalizePreviousMessage = () => {\n if (currentAssistantIdx >= 0 && currentAssistantText.trim()) {\n sendSSE(res, {\n type: \"step_complete\",\n content: currentAssistantText,\n isThinking: agent.messages[currentAssistantIdx]?.isThinking ?? false,\n });\n }\n };\n\n const startNewAssistantMessage = (isThinking = false) => {\n currentAssistantText = \"\";\n\n agent.messages.push({\n role: \"assistant\",\n content: \"\",\n ...(isThinking && { isThinking: true }),\n });\n\n currentAssistantIdx = agent.messages.length - 1;\n };\n\n const appendToCurrentMessage = (text: string) => {\n if (currentAssistantIdx === -1) startNewAssistantMessage();\n currentAssistantText += text;\n agent.messages[currentAssistantIdx].content = currentAssistantText;\n const now = Date.now();\n\n if (now - lastPersistAt > 5000) {\n lastPersistAt = now;\n persistAgent(projectId, agent);\n }\n };\n\n const ensureCurrentMessage = (isThinking = false) => {\n if (needsNewMessage) {\n finalizePreviousMessage();\n startNewAssistantMessage(isThinking);\n needsNewMessage = false;\n }\n };\n\n const sendDebug = (subtype: string, details?: Record<string, unknown>) => {\n const event = { type: \"debug\" as const, subtype, ...details };\n logger.info(\n `[agents] debug agentId=${agentId} ${subtype} ${JSON.stringify(details ?? {}).substring(0, 300)}`,\n );\n\n sendSSE(res, event);\n };\n\n try {\n for await (const msg of queryInstance) {\n messageCount++;\n const typedMsg = msg as Record<string, unknown>;\n const msgType = typedMsg.type as string | undefined;\n\n sendDebug(\"sdk_message\", { msgType, messageNumber: messageCount });\n\n const msgSessionId = (typedMsg as { session_id?: string }).session_id;\n if (msgSessionId && !agent.sessionId) agent.sessionId = msgSessionId;\n\n if (msgType === \"assistant\") {\n const toolUse = extractToolUse(msg);\n if (toolUse) sendDebug(\"tool_use\", toolUse);\n\n const hasToolUse = toolUse !== null;\n ensureCurrentMessage(hasToolUse);\n\n if (hasToolUse && currentAssistantIdx >= 0)\n agent.messages[currentAssistantIdx].isThinking = true;\n\n const delta = extractAssistantText(msg);\n\n if (delta) {\n appendToCurrentMessage(delta);\n sendSSE(res, {\n type: \"text_delta\",\n text: delta,\n accumulated: currentAssistantText,\n isThinking:\n agent.messages[currentAssistantIdx]?.isThinking ?? false,\n });\n }\n }\n\n if (msgType === \"user\") {\n if ((typedMsg as { isSynthetic?: boolean }).isSynthetic) continue;\n handleUserMessage(res, msg, agentId, messageCount);\n\n const userTyped = msg as {\n message?: {\n content?: Array<{\n type: string;\n content?: string;\n is_error?: boolean;\n }>;\n };\n };\n\n if (userTyped.message?.content) {\n for (const item of userTyped.message.content) {\n if (item.type === \"tool_result\") {\n const snippet =\n typeof item.content === \"string\"\n ? item.content.substring(0, 200)\n : JSON.stringify(item.content).substring(0, 200);\n\n sendDebug(\"tool_result\", { is_error: item.is_error, snippet });\n }\n }\n }\n\n needsNewMessage = true;\n }\n\n if (msgType === \"stream_event\") {\n const streamMsg = msg as {\n event?: { delta?: { text?: string } };\n };\n\n if (streamMsg.event?.delta?.text) {\n ensureCurrentMessage();\n appendToCurrentMessage(streamMsg.event.delta.text);\n sendSSE(res, {\n type: \"text_delta\",\n text: streamMsg.event.delta.text,\n accumulated: currentAssistantText,\n isThinking:\n agent.messages[currentAssistantIdx]?.isThinking ?? false,\n });\n }\n }\n\n if (msgType === \"result\") {\n const resultMsg = msg as {\n text?: string;\n message?: { content?: Array<{ type: string; text?: string }> };\n subtype?: string;\n is_error?: boolean;\n };\n\n sendDebug(\"result\", {\n subtype: resultMsg.subtype,\n is_error: resultMsg.is_error,\n });\n\n sendSSE(res, {\n type: \"result\",\n subtype: resultMsg.subtype,\n is_error: resultMsg.is_error,\n });\n\n const resultText = resultMsg.text || extractAssistantText(resultMsg);\n\n if (resultText) {\n ensureCurrentMessage();\n appendToCurrentMessage(resultText);\n sendSSE(res, {\n type: \"text_delta\",\n text: resultText,\n accumulated: currentAssistantText,\n });\n }\n }\n }\n\n // Remove empty assistant messages\n agent.messages = agent.messages.filter(\n (m) => m.role !== \"assistant\" || m.content.trim() !== \"\",\n );\n\n if (!agent.messages.some((m) => m.role === \"assistant\")) {\n agent.messages.push({\n role: \"assistant\",\n content: \"No response received\",\n });\n }\n\n persistAgent(projectId, agent);\n sendSSE(res, {\n type: \"complete\",\n finalMessage: currentAssistantText || \"No response received\",\n messageCount,\n });\n } catch (error) {\n if (agent.isInterrupting) {\n logger.info(`[agents] agent interrupted agentId=${agentId}`);\n\n // Remove empty trailing assistant messages\n while (\n agent.messages.length > 0 &&\n agent.messages[agent.messages.length - 1].role === \"assistant\" &&\n agent.messages[agent.messages.length - 1].content.trim() === \"\"\n ) {\n agent.messages.pop();\n }\n\n persistAgent(projectId, agent);\n sendSSE(res, {\n type: \"complete\",\n finalMessage: currentAssistantText || \"(interrupted)\",\n messageCount,\n });\n } else {\n logger.error(\n `[agents] stream error agentId=${agentId}: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n const errorMessage = `Error processing message: ${error instanceof Error ? error.message : \"Unknown error\"}`;\n\n if (currentAssistantIdx >= 0 && currentAssistantText) {\n agent.messages[currentAssistantIdx].content =\n `${currentAssistantText}\\n\\n${errorMessage}`;\n } else {\n agent.messages.push({ role: \"assistant\", content: errorMessage });\n }\n\n persistAgent(projectId, agent);\n sendSSE(res, { type: \"error\", error: errorMessage });\n }\n }\n\n cleanup();\n\n if (!clientDisconnected) {\n try {\n queryInstance.close();\n } catch {\n // ignore close errors\n }\n }\n\n agent.queryInstance = undefined;\n\n if (!clientDisconnected) res.end();\n}\n\nfunction extractAssistantText(msg: unknown): string {\n const assistantMsg = msg as {\n message?: { content?: Array<{ type: string; text?: string }> };\n };\n\n if (!assistantMsg.message?.content) return \"\";\n\n return assistantMsg.message.content\n .filter((item) => item.type === \"text\")\n .map((item) => item.text || \"\")\n .join(\"\");\n}\n\nfunction handleUserMessage(\n res: Response,\n msg: unknown,\n agentId: string,\n messageCount: number,\n) {\n const userMsg = msg as {\n message?: {\n role?: string;\n content?: Array<{\n type: string;\n content?: string;\n is_error?: boolean;\n }>;\n };\n };\n\n if (!userMsg.message?.content) return;\n\n for (const contentItem of userMsg.message.content) {\n if (contentItem.type !== \"tool_result\" || !contentItem.content) continue;\n if (!contentItem.is_error) continue;\n\n const contentStr =\n typeof contentItem.content === \"string\"\n ? contentItem.content\n : JSON.stringify(contentItem.content);\n\n logger.error(\n `[agents] SDK error in user message agentId=${agentId} msg#${messageCount}: ${contentStr.substring(0, 200)}`,\n );\n\n sendSSE(res, {\n type: \"error\",\n error: contentStr,\n source: \"sdk_validation\",\n });\n }\n}\n\nfunction serializeAgent(agent: AgentEntry) {\n return {\n id: agent.id,\n name: agent.name,\n createdAt: agent.createdAt,\n updatedAt: agent.updatedAt ?? agent.createdAt,\n archived: agent.archived ?? false,\n permissionMode: agent.permissionMode ?? \"default\",\n messages: agent.messages,\n sessionId: agent.sessionId,\n isBusy: Boolean(agent.queryInstance),\n };\n}\n\nfunction serializeAgentSummary(agent: AgentEntry) {\n return {\n id: agent.id,\n name: agent.name,\n createdAt: agent.createdAt,\n updatedAt: agent.updatedAt ?? agent.createdAt,\n archived: agent.archived ?? false,\n messageCount: agent.messages.length,\n };\n}\n\nexport function createAgentsRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.post(\"/agents\", (req: Request, res: Response) => {\n try {\n const body = req.body as { name?: string } | string;\n const name = (typeof body === \"string\" ? undefined : body?.name) ?? null;\n const id = crypto.randomUUID();\n const now = Date.now();\n\n const agent: AgentEntry = {\n id,\n projectId: ctx.projectId,\n name,\n createdAt: now,\n updatedAt: now,\n archived: false,\n messages: [],\n pendingPermissions: new Map(),\n };\n\n ctx.agents.set(id, agent);\n persistAgent(ctx.projectId, agent);\n res.json(serializeAgent(agent));\n } catch (error) {\n logger.error(\n `[agents] failed to create agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to create agent\" });\n }\n });\n\n router.get(\"/agents\", (req: Request, res: Response) => {\n try {\n const includeArchived = req.query.includeArchived === \"true\";\n\n const agentList = Array.from(ctx.agents.values())\n .filter((agent) => includeArchived || !agent.archived)\n .map(serializeAgentSummary);\n\n res.json({ agents: agentList });\n } catch (error) {\n logger.error(\n `[agents] failed to list agents: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to list agents\" });\n }\n });\n\n router.post(\"/agents/:id/message\", async (req: Request, res: Response) => {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n const body = req.body as { message: string } | string;\n const message = typeof body === \"string\" ? body : body?.message;\n\n if (!message || typeof message !== \"string\") {\n res.status(400).json({ error: \"Message is required\" });\n return;\n }\n\n try {\n agent.messages.push({ role: \"user\", content: message });\n agent.updatedAt = Date.now();\n persistAgent(ctx.projectId, agent);\n\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache\");\n res.setHeader(\"Connection\", \"keep-alive\");\n res.setHeader(\"X-Accel-Buffering\", \"no\");\n res.write(`data: ${JSON.stringify({ type: \"connected\" })}\\n\\n`);\n\n const onEvent: EventCallback = (data) => sendSSE(res, data);\n\n let queryInstance;\n const mode = agent.permissionMode ?? \"default\";\n\n try {\n queryInstance = await createClaudeQuery(\n ctx.docsDirs,\n ctx.codeDirs,\n message,\n id,\n agent.pendingPermissions,\n agent.sessionId,\n mode,\n onEvent,\n );\n } catch (sessionError) {\n if (agent.sessionId) {\n logger.warn(\n `[agents] session resume failed agentId=${id}, retrying without session: ${sessionError instanceof Error ? sessionError.message : String(sessionError)}`,\n );\n\n agent.sessionId = undefined;\n persistAgent(ctx.projectId, agent);\n\n queryInstance = await createClaudeQuery(\n ctx.docsDirs,\n ctx.codeDirs,\n message,\n id,\n agent.pendingPermissions,\n undefined,\n mode,\n onEvent,\n );\n } else {\n throw sessionError;\n }\n }\n\n agent.queryInstance = queryInstance;\n agent.isInterrupting = false;\n\n await streamQueryResponse(res, queryInstance, agent, id, ctx.projectId);\n } catch (error) {\n logger.error(\n `[agents] failed to send message: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n persistAgent(ctx.projectId, agent);\n\n if (!res.headersSent) {\n res.status(500).json({ error: \"Failed to send message\" });\n } else {\n const errMsg =\n error instanceof Error ? error.message : \"Failed to send message\";\n\n sendSSE(res, { type: \"error\", error: errMsg });\n\n res.end();\n }\n }\n });\n\n router.get(\"/agents/:id\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n logger.warn(\n `[agents] GET agent not found id=${id} known_ids=[${Array.from(ctx.agents.keys()).join(\",\")}]`,\n );\n\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n logger.info(\n `[agents] GET agent id=${id} messages=${agent.messages.length}`,\n );\n\n res.json(serializeAgent(agent));\n } catch (error) {\n logger.error(\n `[agents] failed to get agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to get agent\" });\n }\n });\n\n router.patch(\"/agents/:id\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n const body = req.body as { name?: string } | string;\n const updates = typeof body === \"string\" ? JSON.parse(body) : body;\n\n if (updates.name !== undefined) {\n agent.name = updates.name;\n }\n\n agent.updatedAt = Date.now();\n persistAgent(ctx.projectId, agent);\n res.json(serializeAgent(agent));\n } catch (error) {\n logger.error(\n `[agents] failed to update agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to update agent\" });\n }\n });\n\n router.post(\"/agents/:id/permission-mode\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n const body = req.body as { mode?: string } | string;\n const parsed = typeof body === \"string\" ? JSON.parse(body) : body;\n const mode = parsed.mode;\n\n if (mode !== \"default\" && mode !== \"acceptEdits\") {\n res.status(400).json({\n error: \"Invalid mode. Must be 'default' or 'acceptEdits'\",\n });\n\n return;\n }\n\n agent.permissionMode = mode;\n agent.updatedAt = Date.now();\n persistAgent(ctx.projectId, agent);\n res.json({ success: true, permissionMode: mode });\n } catch (error) {\n logger.error(\n `[agents] failed to set permission mode: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to set permission mode\" });\n }\n });\n\n router.delete(\"/agents/:id\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const deleted = ctx.agents.delete(id);\n\n if (!deleted) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n removePersistedAgent(id);\n res.json({ success: true });\n } catch (error) {\n logger.error(\n `[agents] failed to delete agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to delete agent\" });\n }\n });\n\n router.post(\"/agents/:id/archive\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n agent.archived = !agent.archived;\n agent.updatedAt = Date.now();\n persistAgent(ctx.projectId, agent);\n res.json({ success: true, archived: agent.archived });\n } catch (error) {\n logger.error(\n `[agents] failed to archive agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to archive agent\" });\n }\n });\n\n router.post(\"/agents/:id/interrupt\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n agent.isInterrupting = true;\n\n const qi = agent.queryInstance as\n | { close?: () => void }\n | null\n | undefined;\n\n if (qi?.close) {\n logger.info(`[agents] interrupting agent agentId=${id}`);\n qi.close();\n agent.queryInstance = undefined;\n }\n\n for (const [permId, perm] of agent.pendingPermissions.entries()) {\n perm.resolve({\n behavior: \"deny\",\n message: \"Interrupted by user\",\n });\n\n agent.pendingPermissions.delete(permId);\n }\n\n res.json({ success: true });\n } catch (error) {\n logger.error(\n `[agents] failed to interrupt agent: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to interrupt agent\" });\n }\n });\n\n router.get(\"/agents/:id/permissions\", (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n const permissions = Array.from(agent.pendingPermissions.entries()).map(\n ([permissionId, perm]) => ({\n permissionId,\n toolName: perm.toolName,\n toolUseID: perm.toolUseID,\n input: perm.input,\n decisionReason: perm.decisionReason,\n blockedPath: perm.blockedPath,\n suggestions: perm.suggestions,\n }),\n );\n\n res.json({ permissions });\n } catch (error) {\n logger.error(\n `[agents] failed to get permissions: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to get permissions\" });\n }\n });\n\n router.post(\n \"/agents/:id/permissions/:permissionId/respond\",\n (req: Request, res: Response) => {\n try {\n const id = String(req.params.id);\n const permissionId = String(req.params.permissionId);\n const agent = ctx.agents.get(id);\n\n if (!agent) {\n res.status(404).json({ code: \"NOT_FOUND\", error: \"Agent not found\" });\n return;\n }\n\n const permission = agent.pendingPermissions.get(permissionId);\n\n if (!permission) {\n res\n .status(404)\n .json({ code: \"NOT_FOUND\", error: \"Permission request not found\" });\n\n return;\n }\n\n const body = req.body as\n | {\n behavior: \"allow\" | \"deny\";\n message?: string;\n updatedPermissions?: unknown[];\n }\n | string;\n\n const response = typeof body === \"string\" ? JSON.parse(body) : body;\n\n if (response.behavior !== \"allow\" && response.behavior !== \"deny\") {\n res.status(400).json({\n error: \"Invalid behavior. Must be 'allow' or 'deny'\",\n });\n\n return;\n }\n\n let finalUpdatedPermissions = response.updatedPermissions;\n\n if (\n response.behavior === \"allow\" &&\n permission.suggestions &&\n permission.suggestions.length > 0\n ) {\n const filePath = (permission.input as { file_path?: string })\n ?.file_path;\n\n const isWithinProjectRoot =\n filePath &&\n [...ctx.docsDirs, ...ctx.codeDirs].some((dir) =>\n filePath.startsWith(dir),\n );\n\n if (\n permission.decisionReason?.includes(\n \"outside allowed working directories\",\n ) &&\n isWithinProjectRoot\n )\n finalUpdatedPermissions = permission.suggestions;\n }\n\n const permissionResponse:\n | {\n behavior: \"allow\";\n updatedPermissions?: unknown[];\n toolUseID?: string;\n }\n | {\n behavior: \"deny\";\n message: string;\n toolUseID?: string;\n } =\n response.behavior === \"allow\"\n ? {\n behavior: \"allow\",\n ...(finalUpdatedPermissions || response.updatedPermissions\n ? {\n updatedPermissions:\n finalUpdatedPermissions || response.updatedPermissions,\n }\n : {}),\n ...(permission.toolUseID\n ? { toolUseID: permission.toolUseID }\n : {}),\n }\n : {\n behavior: \"deny\",\n message: response.message || \"Permission denied\",\n ...(permission.toolUseID\n ? { toolUseID: permission.toolUseID }\n : {}),\n };\n\n logger.info(\n `[agents] permission response agentId=${id} permissionId=${permissionId} behavior=${permissionResponse.behavior}`,\n );\n\n permission.resolve(permissionResponse);\n res.json({ success: true });\n } catch (error) {\n logger.error(\n `[agents] failed to respond to permission: ${error instanceof Error ? error.message : String(error)}`,\n );\n\n res.status(500).json({ error: \"Failed to respond to permission\" });\n }\n },\n );\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport type { RouterContext } from \"./context\";\n\nexport function createTagsRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.get(\"/tags\", (req: Request, res: Response) => {\n res.json({ tags: Array.from(ctx.tagIndex).sort() });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport type { RouterContext } from \"./context\";\n\nexport function createFoldersRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.post(\"/folders\", (req: Request, res: Response) => {\n let payload: { path?: string } | null = null;\n\n if (typeof req.body === \"string\") {\n try {\n payload = JSON.parse(req.body);\n } catch {\n payload = null;\n }\n } else if (req.body && typeof req.body === \"object\") {\n payload = req.body as { path?: string };\n }\n\n const folderPath = String(payload?.path ?? \"\").trim();\n const pathError = ctx.validateFolderPath(folderPath);\n\n if (pathError) {\n res.status(400).send(pathError);\n return;\n }\n\n const resolved = path.resolve(ctx.rootDir, folderPath);\n\n if (!resolved.startsWith(ctx.rootDirPrefix)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (fs.existsSync(resolved)) {\n res.status(409).send(\"Folder already exists\");\n return;\n }\n\n fs.mkdirSync(resolved, { recursive: true });\n res.status(201).json({ path: folderPath });\n });\n\n router.delete(\"/folders/:path(*)\", (req: Request, res: Response) => {\n const folderPath = String(req.params.path ?? \"\").trim();\n const pathError = ctx.validateFolderPath(folderPath);\n\n if (pathError) {\n res.status(400).send(pathError);\n return;\n }\n\n const resolved = path.resolve(ctx.rootDir, folderPath);\n\n if (!resolved.startsWith(ctx.rootDirPrefix)) {\n res.status(400).send(\"Invalid path\");\n return;\n }\n\n if (!fs.existsSync(resolved) || !fs.statSync(resolved).isDirectory()) {\n res.status(404).send(\"Folder not found\");\n return;\n }\n\n const { files } = ctx.walkDir(resolved, folderPath);\n\n if (files.length > 0) {\n res.status(409).json({\n error: \"Folder is not empty\",\n fileCount: files.length,\n });\n\n return;\n }\n\n fs.rmSync(resolved, { recursive: true });\n res.json({ deleted: true, path: folderPath });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport chokidar from \"chokidar\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport type { RouterContext } from \"./context\";\n\nexport function createEventsRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n const watcher = chokidar.watch(ctx.rootDir, {\n ignoreInitial: true,\n ignored: (target) => {\n const rel = path.relative(ctx.rootDir, target);\n if (!rel) return false;\n if (rel.startsWith(\".git\")) return true;\n if (rel.startsWith(\".hyperdoc\")) return true;\n if (rel.startsWith(\".trash\")) return true;\n if (rel.startsWith(\".archive\")) return true;\n if (rel.startsWith(\"node_modules\")) return true;\n if (rel.startsWith(\"dist\")) return true;\n return false;\n },\n });\n\n watcher.on(\"all\", (event, filePath) => {\n if (!ctx.docExtensions.some((extension) => filePath.endsWith(extension)))\n return;\n if (path.basename(filePath) === \"metadata.json\") return;\n const name = path.relative(ctx.rootDir, filePath);\n if (!name) return;\n\n if (ctx.docExtensions.some((extension) => name.endsWith(extension))) {\n if (event === \"unlink\") {\n ctx.fileTags.delete(name);\n ctx.recentWrites.delete(name);\n } else {\n ctx.indexFileTags(name);\n }\n\n ctx.rebuildTagIndex();\n }\n\n let mtimeMs: number | undefined;\n\n if (event !== \"unlink\") {\n try {\n const stat = fs.statSync(filePath);\n mtimeMs = stat.mtimeMs;\n } catch {\n mtimeMs = undefined;\n }\n }\n\n const recent = ctx.recentWrites.get(name);\n\n const sourceId =\n recent && Date.now() - recent.ts < 2000 ? recent.clientId : undefined;\n\n const payload = JSON.stringify({ type: event, name, mtimeMs, sourceId });\n for (const client of ctx.sseClients) client.write(`data: ${payload}\\n\\n`);\n });\n\n router.get(\"/events\", (req: Request, res: Response) => {\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache\");\n res.setHeader(\"Connection\", \"keep-alive\");\n res.flushHeaders();\n ctx.sseClients.add(res);\n req.on(\"close\", () => {\n ctx.sseClients.delete(res);\n });\n });\n\n return router;\n}\n","import { Router, Request, Response } from \"express\";\nimport { spawn } from \"child_process\";\nimport type { RouterContext } from \"./context\";\n\nexport function createSystemRoutes(ctx: RouterContext): Router {\n const router = Router();\n\n router.post(\"/system/open-terminal\", (req: Request, res: Response) => {\n console.log(\"🔧 System: Open terminal request received\");\n console.log(`📁 Project directory: ${ctx.rootDir}`);\n\n const platform = process.platform;\n console.log(`🖥️ Platform: ${platform}`);\n\n if (platform !== \"darwin\") {\n console.log(\"❌ Platform not supported\");\n res.status(400).json({\n error: \"Opening terminal is currently only supported on macOS\",\n });\n\n return;\n }\n\n try {\n // Use osascript to open Terminal with the project directory\n const script = `tell application \"Terminal\"\n activate\n do script \"cd '${ctx.rootDir.replace(/'/g, \"'\\\"'\\\"'\")}'\"\n end tell`;\n\n console.log(\"🚀 Executing AppleScript:\", script);\n\n const child = spawn(\"osascript\", [\"-e\", script], {\n detached: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n child.stdout?.on(\"data\", (data) => {\n console.log(`📤 osascript stdout: ${data}`);\n });\n\n child.stderr?.on(\"data\", (data) => {\n console.error(`📥 osascript stderr: ${data}`);\n });\n\n child.on(\"close\", (code) => {\n console.log(`✅ osascript process exited with code: ${code}`);\n });\n\n child.on(\"error\", (error) => {\n console.error(`❌ osascript process error: ${error.message}`);\n });\n\n child.unref();\n\n console.log(\"✅ Terminal command sent successfully\");\n res.json({\n success: true,\n message: \"Terminal opened in project directory\",\n });\n } catch (error) {\n console.error(\"❌ Error in open-terminal:\", error);\n res.status(500).json({\n error: \"Failed to open terminal\",\n details: error instanceof Error ? error.message : String(error),\n });\n }\n });\n\n return router;\n}\n",null,null,null,null,null,null,null,null,null,null,"/** Returns the object type of the given payload */\nexport function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n","import { getType } from './getType.js';\n/** Returns whether the payload is an array */\nexport function isArray(payload) {\n return getType(payload) === 'Array';\n}\n","import { getType } from './getType.js';\n/**\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects\n * with other prototypes)\n */\nexport function isPlainObject(payload) {\n if (getType(payload) !== 'Object')\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n","import { isArray, isPlainObject } from 'is-what';\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key)\n ? 'enumerable'\n : 'nonenumerable';\n if (propType === 'enumerable')\n carry[key] = newVal;\n if (includeNonenumerable && propType === 'nonenumerable') {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n }\n}\n/**\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the\n * original object. Arrays are also cloned, however objects inside arrays are still linked.\n *\n * @param target Target can be anything\n * @param [options={}] See type {@link Options} for more details.\n *\n * - `{ props: ['key1'] }` will only copy the `key1` property. When using this you will need to cast\n * the return type manually (in order to keep the TS implementation in here simple I didn't\n * built a complex auto resolved type for those few cases people want to use this option)\n * - `{ nonenumerable: true }` will copy all non-enumerable properties. Default is `{}`\n *\n * @returns The target with replaced values\n */\nexport function copy(target, options = {}) {\n if (isArray(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [...props, ...symbols].reduce((carry, key) => {\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n return carry;\n if (isArray(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n",null,"import { initTRPC } from \"@trpc/server\";\nimport superjson from \"superjson\";\nimport type { AppContext } from \"./context\";\n\nexport const t = initTRPC.context<AppContext>().create({\n transformer: superjson,\n});\n\nexport type TRPCInstance = typeof t;\n","import { exec, spawn } from \"child_process\";\nimport { promisify } from \"util\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nconst execAsync = promisify(exec);\n\nexport type ZapService = {\n name: string;\n status: string;\n type: \"native\" | \"docker\";\n enabled: boolean;\n};\n\nexport type ZapTask = {\n name: string;\n};\n\nexport type ZapLink = {\n name: string;\n url: string;\n};\n\nexport type ZapProfilesInfo = {\n profiles: string[];\n activeProfile: string | null;\n};\n\nexport function findZapRoot(dirs: string[]): string | null {\n const matches = dirs.filter((d) => fs.existsSync(path.join(d, \"zap.yaml\")));\n\n if (matches.length === 0) return null;\n\n if (matches.length > 1)\n throw new Error(\n \"Multiple zap.yaml files found across project roots — not implemented\",\n );\n\n return matches[0];\n}\n\nasync function execZap(\n command: string,\n cwd: string,\n timeout = 15_000,\n): Promise<string> {\n const { stdout } = await execAsync(`zap ${command}`, {\n cwd,\n timeout,\n env: process.env,\n maxBuffer: 50 * 1024 * 1024,\n });\n\n return stdout;\n}\n\nfunction spawnZap(\n command: string,\n cwd: string,\n timeout = 120_000,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const args = command.split(/\\s+/);\n\n const child = spawn(\"zap\", args, {\n cwd,\n stdio: \"ignore\",\n });\n\n const timer = setTimeout(() => {\n child.kill();\n reject(new Error(`zap ${command} timed out after ${timeout}ms`));\n }, timeout);\n\n child.on(\"close\", (code) => {\n clearTimeout(timer);\n if (code === 0) resolve();\n else reject(new Error(`zap ${command} exited with code ${code}`));\n });\n\n child.on(\"error\", (err) => {\n clearTimeout(timer);\n reject(err);\n });\n });\n}\n\nexport async function getZapperStatus(cwd: string): Promise<ZapService[]> {\n try {\n const output = await execZap(\"status --json\", cwd);\n const raw = JSON.parse(output);\n const services: ZapService[] = [];\n\n const nativeList = raw.bareMetal ?? raw.native ?? raw.bare_metal ?? [];\n for (const s of nativeList)\n services.push({\n name: s.service,\n status: s.status,\n type: \"native\",\n enabled: s.enabled !== false,\n });\n\n const dockerList = raw.docker ?? [];\n for (const s of dockerList)\n services.push({\n name: s.service,\n status: s.status,\n type: \"docker\",\n enabled: s.enabled !== false,\n });\n\n return services;\n } catch {\n return [];\n }\n}\n\nexport async function getZapperTasks(cwd: string): Promise<ZapTask[]> {\n try {\n const output = await execZap(\"task --json\", cwd);\n const raw = JSON.parse(output);\n if (!Array.isArray(raw)) return [];\n return raw.map((t: { name: string }) => ({ name: t.name }));\n } catch {\n return [];\n }\n}\n\nexport async function getZapperProfiles(cwd: string): Promise<ZapProfilesInfo> {\n try {\n const [profilesOut, stateOut] = await Promise.all([\n execZap(\"profile --list --json\", cwd),\n execZap(\"state\", cwd),\n ]);\n\n const profiles = JSON.parse(profilesOut);\n const state = JSON.parse(stateOut);\n\n return {\n profiles: Array.isArray(profiles) ? profiles : [],\n activeProfile: state?.activeProfile ?? null,\n };\n } catch {\n return { profiles: [], activeProfile: null };\n }\n}\n\nexport async function zapEnableProfile(\n profile: string,\n cwd: string,\n): Promise<void> {\n await spawnZap(`profile ${profile}`, cwd, 60_000);\n}\n\nexport async function zapDisableProfile(cwd: string): Promise<void> {\n await spawnZap(\"profile --disable\", cwd, 60_000);\n}\n\nexport async function zapStartAll(cwd: string): Promise<void> {\n await spawnZap(\"up\", cwd, 120_000);\n}\n\nexport async function zapStopAll(cwd: string): Promise<void> {\n await spawnZap(\"down\", cwd, 120_000);\n}\n\nexport async function zapStart(service: string, cwd: string): Promise<void> {\n await spawnZap(`up ${service}`, cwd, 60_000);\n}\n\nexport async function zapStop(service: string, cwd: string): Promise<void> {\n await spawnZap(`down ${service}`, cwd, 60_000);\n}\n\nexport async function zapRestart(service: string, cwd: string): Promise<void> {\n await spawnZap(`restart ${service}`, cwd, 60_000);\n}\n\nexport async function zapRunTask(\n taskName: string,\n cwd: string,\n): Promise<string> {\n return execZap(`task ${taskName}`, cwd);\n}\n\nexport function zapRunTaskInTerminal(taskName: string, cwd: string): void {\n openInTerminal(`zap task ${taskName}`, cwd);\n}\n\nexport function zapShowLogsInTerminal(service: string, cwd: string): void {\n openInTerminal(`zap logs ${service}`, cwd);\n}\n\nexport type ZapLinksResult = {\n projectLinks: ZapLink[];\n serviceLinks: Record<string, string>;\n};\n\nexport async function getZapperLinks(cwd: string): Promise<ZapLinksResult> {\n try {\n const output = await execZap(\"config --pretty\", cwd);\n const raw = JSON.parse(output);\n const projectLinks: ZapLink[] = [];\n const serviceLinks: Record<string, string> = {};\n\n if (Array.isArray(raw.links))\n for (const l of raw.links)\n if (l.name && l.url) projectLinks.push({ name: l.name, url: l.url });\n\n const processes = raw.processes ?? [];\n for (const p of processes) if (p.link) serviceLinks[p.name] = p.link;\n\n const containers = raw.containers ?? [];\n for (const c of containers) if (c.link) serviceLinks[c.name] = c.link;\n\n return { projectLinks, serviceLinks };\n } catch {\n return { projectLinks: [], serviceLinks: {} };\n }\n}\n\nexport function zapLaunchLink(url: string): void {\n const child = spawn(\"open\", [url], {\n detached: true,\n stdio: \"ignore\",\n });\n\n child.unref();\n}\n\nfunction openInTerminal(command: string, cwd: string): void {\n const escaped = cwd.replace(/'/g, \"'\\\"'\\\"'\");\n\n const script = `tell application \"Terminal\"\n activate\n do script \"cd '${escaped}' && ${command}\"\n end tell`;\n\n const child = spawn(\"osascript\", [\"-e\", script], {\n detached: true,\n stdio: \"ignore\",\n });\n\n child.unref();\n}\n","import { CommandContext, CommandHandler } from \"../types\";\nimport { readConfig, updateConfig, getHyperdocHome } from \"@hyperdoc/server\";\n\nexport class ConfigCommand implements CommandHandler {\n async execute(context: CommandContext): Promise<void> {\n const { configKey, configValue } = context.options;\n\n if (!configKey) {\n const config = readConfig();\n const home = getHyperdocHome();\n console.log(`Config location: ${home}/config.json\\n`);\n\n const entries = Object.entries(config);\n\n if (entries.length === 0) {\n console.log(\"No config values set.\");\n return;\n }\n\n for (const [key, value] of entries) {\n const display =\n key === \"anthropicApiKey\" && typeof value === \"string\"\n ? value.slice(0, 8) + \"...\"\n : value;\n\n console.log(`${key} = ${display}`);\n }\n\n return;\n }\n\n if (configValue === undefined) {\n const config = readConfig();\n const value = config[configKey as keyof typeof config];\n\n if (value === undefined) {\n console.log(`${configKey} is not set.`);\n } else {\n console.log(value);\n }\n\n return;\n }\n\n updateConfig({ [configKey]: configValue });\n console.log(\n `Set ${configKey} = ${configKey === \"anthropicApiKey\" ? configValue.slice(0, 8) + \"...\" : configValue}`,\n );\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport { CommandContext, CommandHandler } from \"../types\";\n\nexport class PromptCommand implements CommandHandler {\n async execute(context: CommandContext): Promise<void> {\n void context;\n const promptPath = path.join(__dirname, \"..\", \"prompts\", \"agent.txt\");\n const prompt = fs.readFileSync(promptPath, \"utf-8\");\n process.stdout.write(prompt);\n\n if (!prompt.endsWith(\"\\n\")) {\n process.stdout.write(\"\\n\");\n }\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport open from \"open\";\nimport { CommandContext, CommandHandler } from \"../types\";\nimport { logger } from \"@hyperdoc/core\";\nimport { createApp, t, getDefaultProjectsPath } from \"@hyperdoc/server\";\nimport { createTrpcRouter } from \"@hyperdoc/trpc\";\n\nconst DEFAULT_PORT = 4986;\n\nexport class ServerCommand implements CommandHandler {\n async execute(context: CommandContext): Promise<void> {\n const port = Number(\n context.options.port ?? process.env.HYPERDOC_PORT ?? DEFAULT_PORT,\n );\n\n let projectsFilePath: string;\n\n if (context.options.projects) {\n projectsFilePath = path.resolve(context.options.projects);\n } else if (context.options.root) {\n // Single-project mode: write a temp projects file\n const rootDir = path.resolve(context.options.root);\n const dirName = path.basename(rootDir);\n const tmpDir = path.join(rootDir, \".hyperdoc\");\n if (!fs.existsSync(tmpDir)) fs.mkdirSync(tmpDir, { recursive: true });\n projectsFilePath = path.join(tmpDir, \"projects.json\");\n const entry = [{ id: dirName, name: dirName, docsDirs: [rootDir] }];\n fs.writeFileSync(\n projectsFilePath,\n JSON.stringify(entry, null, 2) + \"\\n\",\n \"utf-8\",\n );\n } else {\n projectsFilePath = getDefaultProjectsPath();\n }\n\n logger.info(`Projects file: ${projectsFilePath}`);\n\n const webDirCandidates = [\n path.join(__dirname, \"web\"),\n path.join(__dirname, \"..\", \"web\"),\n path.join(__dirname, \"..\", \"..\", \"..\", \"web\", \"dist\"),\n ];\n\n const webDir = webDirCandidates.find((candidate) =>\n fs.existsSync(candidate),\n );\n\n if (!webDir) {\n logger.warn(\n `Web bundle not found at ${webDirCandidates.join(\", \")}. Run pnpm --filter hyperdoc-web build.`,\n );\n }\n\n const router = createTrpcRouter(t);\n\n const app = createApp({\n projectsFilePath,\n staticDir: webDir ?? \"\",\n router,\n });\n\n app.get(\"*\", (req, res) => {\n const indexPath = webDir ? path.join(webDir, \"index.html\") : \"\";\n\n if (indexPath && fs.existsSync(indexPath)) {\n res.sendFile(indexPath);\n } else {\n res.status(500).send(\"Web bundle missing. Run pnpm build:web.\");\n }\n });\n\n app.listen(port, () => {\n const url = `http://localhost:${port}`;\n logger.info(`Hyperdoc server running at ${url}`);\n\n if (context.options.open) {\n open(url).catch(() => undefined);\n }\n });\n }\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport { z } from \"zod/v4\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nexport const listProjects = (t: TRPCInstance) =>\n t.procedure.query(({ ctx }) => ctx.loadProjects());\n\nexport const createProject = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n id: z\n .string()\n .trim()\n .min(1)\n .max(100)\n .regex(/^[a-z0-9][a-z0-9-]*$/),\n name: z.string().trim().min(1).max(200),\n docsDirs: z.array(z.string().trim().min(1)).min(1),\n rootDirs: z.array(z.string().trim().min(1)).optional(),\n emoji: z.string().trim().max(10).nullable().optional(),\n }),\n )\n .mutation(({ ctx, input }) => {\n const existing = ctx.loadProjects();\n\n if (existing.some((p) => p.id === input.id))\n throw new TRPCError({\n code: \"CONFLICT\",\n message: `Project \"${input.id}\" already exists`,\n });\n\n const resolvedDocsDirs = input.docsDirs.map((d) => path.resolve(d));\n\n const resolvedRootDirs = (input.rootDirs ?? []).map((d) =>\n path.resolve(d),\n );\n\n for (const dir of resolvedDocsDirs) {\n if (!fs.existsSync(dir))\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: `Directory does not exist: ${dir}`,\n });\n }\n\n for (const dir of resolvedRootDirs) {\n if (!fs.existsSync(dir))\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: `Directory does not exist: ${dir}`,\n });\n }\n\n if (!ctx.projectsFilePath)\n throw new TRPCError({\n code: \"INTERNAL_SERVER_ERROR\",\n message: \"No projects file configured\",\n });\n\n const entry: Record<string, unknown> = {\n id: input.id,\n name: input.name,\n emoji: input.emoji ?? null,\n docsDirs: resolvedDocsDirs,\n };\n\n if (resolvedRootDirs.length > 0) entry.rootDirs = resolvedRootDirs;\n\n let fileContents: unknown[] = [];\n\n try {\n const raw = fs.readFileSync(ctx.projectsFilePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n if (Array.isArray(parsed)) fileContents = parsed;\n } catch {\n // file doesn't exist yet or is invalid\n }\n\n fileContents.push(entry);\n const dir = path.dirname(ctx.projectsFilePath);\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(\n ctx.projectsFilePath,\n JSON.stringify(fileContents, null, 2) + \"\\n\",\n \"utf-8\",\n );\n\n return { id: input.id, name: input.name, emoji: input.emoji };\n });\n","import { z } from \"zod/v4\";\nimport { projectConfigSchema } from \"@hyperdoc/core\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nconst projectInput = z.object({ projectId: z.string() });\n\nexport const getProjectConfig = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(({ ctx, input }) => {\n const projectCtx = ctx.resolveProjectContext(input.projectId);\n const { config, error } = projectCtx.readProjectConfig();\n if (error)\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Invalid project config\",\n });\n return { name: config?.name ?? null, exists: config !== null };\n });\n\nexport const updateProjectConfig = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), config: projectConfigSchema }))\n .mutation(({ ctx, input }) => {\n const projectCtx = ctx.resolveProjectContext(input.projectId);\n projectCtx.writeProjectConfig(input.config);\n return { name: input.config.name ?? null };\n });\n","import { z } from \"zod/v4\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\nimport { readConfig, updateConfig } from \"@hyperdoc/server\";\n\nexport const getConfig = (t: TRPCInstance) =>\n t.procedure.query(() => {\n const config = readConfig();\n return {\n anthropicApiKey: config.anthropicApiKey\n ? config.anthropicApiKey.slice(0, 8) + \"...\"\n : null,\n hasAnthropicApiKey: !!config.anthropicApiKey,\n };\n });\n\nexport const setConfig = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n anthropicApiKey: z.string().optional(),\n }),\n )\n .mutation(({ input }) => {\n updateConfig(input);\n return { ok: true };\n });\n","import fs from \"fs\";\nimport path from \"path\";\nimport { z } from \"zod/v4\";\nimport {\n extractMarkdownTitle,\n getMarkdownMetadata,\n} from \"@hyperdoc/adapter-markdown\";\nimport {\n type DocType,\n getDocTypeFromName,\n isDocType,\n normalizeDocName,\n} from \"@hyperdoc/core\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nconst projectInput = z.object({ projectId: z.string() });\n\nexport const listDocs = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const { files, folders } = pCtx.walkDir(pCtx.rootDir, \"\");\n\n const docs = files\n .map((file) => {\n const type = getDocTypeFromName(file.name);\n return type ? { name: file.relPath, type } : null;\n })\n .filter(\n (entry): entry is { name: string; type: DocType } => entry !== null,\n )\n .map((entry) => {\n const filePath = pCtx.resolveDocPath(entry.name);\n\n if (entry.type === \"markdown\") {\n let title: string | null = null;\n let tags: string[] = [];\n let pinned = false;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n title = extractMarkdownTitle(content);\n const metadata = getMarkdownMetadata(content);\n tags = pCtx.normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n title = null;\n tags = [];\n pinned = false;\n }\n\n return {\n ...entry,\n title,\n tags,\n pinned,\n displayName:\n title && title.length > 0\n ? title\n : pCtx.displayNameFromFileName(entry.name),\n };\n }\n\n if (entry.type === \"json\" || entry.type === \"app\") {\n let tags: string[] = [];\n let pinned = false;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const metadata = pCtx.decodeJsonMetadata(content);\n tags = pCtx.normalizeTags(metadata?.tags ?? []);\n pinned = metadata?.pinned ?? false;\n } catch {\n tags = [];\n pinned = false;\n }\n\n return {\n ...entry,\n title: null,\n tags,\n pinned,\n displayName: pCtx.displayNameFromFileName(entry.name),\n };\n }\n\n return {\n ...entry,\n title: null,\n tags: [] as string[],\n pinned: false,\n displayName: pCtx.displayNameFromFileName(entry.name),\n };\n });\n\n return { docs, folders: folders.sort() };\n });\n\nexport const checkDocExists = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), name: z.string() }))\n .query(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const nameError = pCtx.validateDocName(input.name);\n if (nameError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: nameError });\n\n const filePath = pCtx.resolveDocPath(input.name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n return { exists: fs.existsSync(filePath) };\n });\n\nexport const createDoc = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n projectId: z.string(),\n name: z.string().optional(),\n type: z.enum([\"markdown\", \"prompt\", \"json\", \"app\"]),\n content: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const rawName = input.name ?? \"\";\n\n if (!isDocType(input.type))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid type\" });\n\n let name: string;\n\n try {\n name = normalizeDocName(rawName, input.type);\n } catch {\n throw new TRPCError({\n code: \"INTERNAL_SERVER_ERROR\",\n message: \"Failed to normalize doc name\",\n });\n }\n\n const nameError = pCtx.validateDocName(name);\n if (nameError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: nameError });\n\n const filePath = pCtx.resolveDocPath(name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (fs.existsSync(filePath))\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"Name already exists\",\n });\n\n const parentDir = path.dirname(filePath);\n if (!fs.existsSync(parentDir))\n fs.mkdirSync(parentDir, { recursive: true });\n\n const content =\n input.content ??\n (input.type === \"json\" ? JSON.stringify({ data: [] }, null, 2) : \"\");\n\n fs.writeFileSync(filePath, content, \"utf-8\");\n pCtx.indexFileTags(name);\n pCtx.rebuildTagIndex();\n\n const createdTags = pCtx.normalizeTags(\n pCtx.tagsFromContent(name, content),\n );\n\n const createdTitle =\n input.type === \"markdown\" ? extractMarkdownTitle(content) : null;\n\n return {\n name,\n type: input.type,\n title: createdTitle,\n tags: createdTags,\n pinned: false,\n displayName:\n createdTitle && createdTitle.length > 0\n ? createdTitle\n : pCtx.displayNameFromFileName(name),\n };\n });\n","import fs from \"fs\";\nimport path from \"path\";\nimport { z } from \"zod/v4\";\nimport {\n getMarkdownMetadata,\n stripMarkdownMetadataHeader,\n} from \"@hyperdoc/adapter-markdown\";\nimport { getDocTypeFromName } from \"@hyperdoc/core\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nexport const getDoc = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), name: z.string() }))\n .query(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n\n if (pCtx.isMetadataName(input.name))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Reserved name\" });\n\n const filePath = pCtx.resolveDocPath(input.name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(filePath))\n throw new TRPCError({ code: \"NOT_FOUND\", message: \"Not found\" });\n\n const content = fs.readFileSync(filePath, \"utf-8\");\n const stat = fs.statSync(filePath);\n const ext = path.extname(input.name).toLowerCase();\n\n if (ext === \".md\") {\n const metadata = getMarkdownMetadata(content);\n return {\n content: stripMarkdownMetadataHeader(content),\n mtimeMs: stat.mtimeMs,\n metadata,\n };\n }\n\n return { content, mtimeMs: stat.mtimeMs, metadata: null };\n });\n\nexport const updateDoc = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n projectId: z.string(),\n name: z.string(),\n content: z.string(),\n baseVersion: z.number().optional(),\n clientId: z.string().optional(),\n }),\n )\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n\n if (pCtx.isMetadataName(input.name))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Reserved name\" });\n\n const filePath = pCtx.resolveDocPath(input.name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(filePath))\n throw new TRPCError({ code: \"NOT_FOUND\", message: \"Not found\" });\n\n if (input.baseVersion !== undefined) {\n const currentStat = fs.statSync(filePath);\n if (currentStat.mtimeMs !== input.baseVersion)\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"File changed on disk\",\n });\n }\n\n fs.writeFileSync(filePath, input.content, \"utf-8\");\n const stat = fs.statSync(filePath);\n\n if (input.clientId)\n pCtx.recentWrites.set(input.name, {\n clientId: input.clientId,\n ts: Date.now(),\n mtimeMs: stat.mtimeMs,\n });\n\n return { mtimeMs: stat.mtimeMs };\n });\n\nexport const renameDoc = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n projectId: z.string(),\n from: z.string(),\n to: z.string(),\n }),\n )\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const { from, to } = input;\n\n if (!from.trim() || !to.trim())\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Missing rename target\",\n });\n\n const fromError = pCtx.validateDocName(from);\n if (fromError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: fromError });\n\n const toError = pCtx.validateDocName(to);\n if (toError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: toError });\n\n if (pCtx.isMetadataName(from) || pCtx.isMetadataName(to))\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Reserved name\",\n });\n\n const fromPath = pCtx.resolveDocPath(from);\n const toPath = pCtx.resolveDocPath(to);\n\n if (!pCtx.isDocPathSafe(fromPath) || !pCtx.isDocPathSafe(toPath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(fromPath))\n throw new TRPCError({ code: \"NOT_FOUND\", message: \"Not found\" });\n\n if (fs.existsSync(toPath))\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"Name already exists\",\n });\n\n const fromType = getDocTypeFromName(from);\n const toType = getDocTypeFromName(to);\n\n if (!fromType || !toType || fromType !== toType)\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Name extension does not match type\",\n });\n\n const toParent = path.dirname(toPath);\n if (!fs.existsSync(toParent)) fs.mkdirSync(toParent, { recursive: true });\n fs.renameSync(fromPath, toPath);\n\n pCtx.fileTags.delete(from);\n pCtx.indexFileTags(to);\n pCtx.rebuildTagIndex();\n\n return {\n name: to,\n type: fromType,\n title: null,\n displayName: pCtx.displayNameFromFileName(to),\n };\n });\n\nexport const archiveDoc = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), name: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n\n if (pCtx.isMetadataName(input.name))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Reserved name\" });\n\n const nameError = pCtx.validateDocName(input.name);\n if (nameError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: nameError });\n\n const filePath = pCtx.resolveDocPath(input.name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(filePath))\n throw new TRPCError({ code: \"NOT_FOUND\", message: \"Not found\" });\n\n const archiveDir = path.join(pCtx.hyperdocDir, \"archive\");\n pCtx.ensureHyperdocDir();\n if (!fs.existsSync(archiveDir))\n fs.mkdirSync(archiveDir, { recursive: true });\n\n const flatName = input.name.replace(/\\//g, \"--\");\n const archivePath = path.join(archiveDir, flatName);\n\n if (fs.existsSync(archivePath))\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"Archived file already exists with that name\",\n });\n\n fs.renameSync(filePath, archivePath);\n pCtx.fileTags.delete(input.name);\n pCtx.rebuildTagIndex();\n\n return { archived: true, name: input.name };\n });\n\nexport const deleteDoc = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), name: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n\n if (pCtx.isMetadataName(input.name))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Reserved name\" });\n\n const nameError = pCtx.validateDocName(input.name);\n if (nameError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: nameError });\n\n const filePath = pCtx.resolveDocPath(input.name);\n if (!pCtx.isDocPathSafe(filePath))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(filePath))\n throw new TRPCError({ code: \"NOT_FOUND\", message: \"Not found\" });\n\n const trashDir = path.join(pCtx.hyperdocDir, \"trash\");\n pCtx.ensureHyperdocDir();\n\n if (!fs.existsSync(trashDir)) {\n fs.mkdirSync(trashDir, { recursive: true });\n fs.writeFileSync(path.join(trashDir, \".gitignore\"), \"*\\n!.gitignore\\n\");\n }\n\n const flatName = input.name.replace(/\\//g, \"--\");\n const trashPath = path.join(trashDir, flatName);\n\n if (fs.existsSync(trashPath)) {\n const ext = path.extname(flatName);\n const base = flatName.slice(0, -ext.length);\n const timestamp = Date.now();\n fs.renameSync(\n filePath,\n path.join(trashDir, `${base}-${timestamp}${ext}`),\n );\n } else {\n fs.renameSync(filePath, trashPath);\n }\n\n pCtx.fileTags.delete(input.name);\n pCtx.rebuildTagIndex();\n\n return { deleted: true };\n });\n","import { z } from \"zod/v4\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nexport const listTags = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string() }))\n .query(({ ctx, input }) => {\n const projectCtx = ctx.resolveProjectContext(input.projectId);\n return { tags: Array.from(projectCtx.tagIndex).sort() };\n });\n","import fs from \"fs\";\nimport path from \"path\";\nimport { z } from \"zod/v4\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nexport const createFolder = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), path: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const folderPath = input.path.trim();\n const pathError = pCtx.validateFolderPath(folderPath);\n if (pathError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: pathError });\n\n const resolved = path.resolve(pCtx.rootDir, folderPath);\n if (!resolved.startsWith(pCtx.rootDirPrefix))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (fs.existsSync(resolved))\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"Folder already exists\",\n });\n\n fs.mkdirSync(resolved, { recursive: true });\n return { path: folderPath };\n });\n\nexport const deleteFolder = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), path: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const folderPath = input.path.trim();\n const pathError = pCtx.validateFolderPath(folderPath);\n if (pathError)\n throw new TRPCError({ code: \"BAD_REQUEST\", message: pathError });\n\n const resolved = path.resolve(pCtx.rootDir, folderPath);\n if (!resolved.startsWith(pCtx.rootDirPrefix))\n throw new TRPCError({ code: \"BAD_REQUEST\", message: \"Invalid path\" });\n\n if (!fs.existsSync(resolved) || !fs.statSync(resolved).isDirectory())\n throw new TRPCError({\n code: \"NOT_FOUND\",\n message: \"Folder not found\",\n });\n\n const { files } = pCtx.walkDir(resolved, folderPath);\n if (files.length > 0)\n throw new TRPCError({\n code: \"CONFLICT\",\n message: \"Folder is not empty\",\n });\n\n fs.rmSync(resolved, { recursive: true });\n return { deleted: true, path: folderPath };\n });\n","import { z } from \"zod/v4\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance } from \"@hyperdoc/server\";\n\nconst projectInput = z.object({ projectId: z.string() });\n\nexport const listCodeFiles = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const dirs = pCtx.walkCodeDirs();\n\n if (dirs.length === 0) {\n const result = pCtx.walkCodeDir();\n if (!result)\n return { files: [], folders: [], hasCodeDir: false, dirs: [] };\n return {\n ...result,\n hasCodeDir: true,\n dirs: [{ rootLabel: \"code\", ...result }],\n };\n }\n\n const merged = { files: [] as string[], folders: [] as string[] };\n\n for (const d of dirs) {\n merged.files.push(...d.files);\n merged.folders.push(...d.folders);\n }\n\n return { ...merged, hasCodeDir: true, dirs };\n });\n\nexport const getCodeFile = (t: TRPCInstance) =>\n t.procedure\n .input(\n z.object({\n projectId: z.string(),\n path: z.string(),\n dirIndex: z.number().optional(),\n }),\n )\n .query(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const content = pCtx.readCodeFile(input.path, input.dirIndex ?? 0);\n\n if (content === null)\n throw new TRPCError({\n code: \"NOT_FOUND\",\n message: \"File not found\",\n });\n\n return { content, path: input.path };\n });\n","import { z } from \"zod/v4\";\nimport { TRPCError } from \"@trpc/server\";\nimport type { TRPCInstance, RouterContext } from \"@hyperdoc/server\";\nimport {\n findZapRoot,\n getZapperStatus,\n getZapperTasks,\n getZapperLinks,\n getZapperProfiles,\n zapEnableProfile,\n zapDisableProfile,\n zapStartAll,\n zapStopAll,\n zapStart,\n zapStop,\n zapRestart,\n zapRunTaskInTerminal,\n zapShowLogsInTerminal,\n zapLaunchLink,\n} from \"@hyperdoc/server\";\n\nconst projectInput = z.object({ projectId: z.string() });\n\nconst resolveZapRoot = (pCtx: RouterContext) => {\n const zapRoot = findZapRoot(pCtx.codeDirs);\n if (!zapRoot)\n throw new TRPCError({\n code: \"NOT_FOUND\",\n message: \"No zap.yaml found in project root directories\",\n });\n return zapRoot;\n};\n\nexport const zapperStatus = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const zapRoot = findZapRoot(pCtx.codeDirs);\n if (!zapRoot) return { available: false, services: [] };\n\n const services = await getZapperStatus(zapRoot);\n return { available: true, services };\n });\n\nexport const zapperTasks = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const zapRoot = findZapRoot(pCtx.codeDirs);\n if (!zapRoot) return [];\n return getZapperTasks(zapRoot);\n });\n\nexport const zapperProfiles = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const zapRoot = findZapRoot(pCtx.codeDirs);\n if (!zapRoot) return { profiles: [], activeProfile: null };\n return getZapperProfiles(zapRoot);\n });\n\nexport const zapperEnableProfile = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), profile: z.string() }))\n .mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapEnableProfile(input.profile, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperDisableProfile = (t: TRPCInstance) =>\n t.procedure.input(projectInput).mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapDisableProfile(resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperStartAll = (t: TRPCInstance) =>\n t.procedure.input(projectInput).mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapStartAll(resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperStopAll = (t: TRPCInstance) =>\n t.procedure.input(projectInput).mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapStopAll(resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperStart = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), service: z.string() }))\n .mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapStart(input.service, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperStop = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), service: z.string() }))\n .mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapStop(input.service, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperRestart = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), service: z.string() }))\n .mutation(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n await zapRestart(input.service, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperRunTask = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), task: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n zapRunTaskInTerminal(input.task, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperLinks = (t: TRPCInstance) =>\n t.procedure.input(projectInput).query(async ({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n const zapRoot = findZapRoot(pCtx.codeDirs);\n if (!zapRoot) return [];\n return getZapperLinks(zapRoot);\n });\n\nexport const zapperShowLogs = (t: TRPCInstance) =>\n t.procedure\n .input(z.object({ projectId: z.string(), service: z.string() }))\n .mutation(({ ctx, input }) => {\n const pCtx = ctx.resolveProjectContext(input.projectId);\n zapShowLogsInTerminal(input.service, resolveZapRoot(pCtx));\n return { ok: true };\n });\n\nexport const zapperLaunch = (t: TRPCInstance) =>\n t.procedure.input(z.object({ url: z.string() })).mutation(({ input }) => {\n zapLaunchLink(input.url);\n return { ok: true };\n });\n","import type { TRPCInstance } from \"@hyperdoc/server\";\nimport { listProjects, createProject } from \"./procedures/projects\";\nimport { getProjectConfig, updateProjectConfig } from \"./procedures/project\";\nimport { getConfig, setConfig } from \"./procedures/config\";\nimport { listDocs, checkDocExists, createDoc } from \"./procedures/docs\";\nimport {\n getDoc,\n updateDoc,\n renameDoc,\n archiveDoc,\n deleteDoc,\n} from \"./procedures/doc\";\nimport { listTags } from \"./procedures/tags\";\nimport { createFolder, deleteFolder } from \"./procedures/folders\";\nimport { listCodeFiles, getCodeFile } from \"./procedures/code\";\nimport {\n zapperStatus,\n zapperTasks,\n zapperLinks,\n zapperProfiles,\n zapperEnableProfile,\n zapperDisableProfile,\n zapperStartAll,\n zapperStopAll,\n zapperStart,\n zapperStop,\n zapperRestart,\n zapperRunTask,\n zapperShowLogs,\n zapperLaunch,\n} from \"./procedures/zapper\";\n\nexport const createTrpcRouter = (t: TRPCInstance) =>\n t.router({\n config: t.router({\n get: getConfig(t),\n set: setConfig(t),\n }),\n projects: t.router({\n list: listProjects(t),\n create: createProject(t),\n }),\n project: t.router({\n get: getProjectConfig(t),\n update: updateProjectConfig(t),\n }),\n docs: t.router({\n list: listDocs(t),\n exists: checkDocExists(t),\n create: createDoc(t),\n }),\n doc: t.router({\n get: getDoc(t),\n update: updateDoc(t),\n rename: renameDoc(t),\n archive: archiveDoc(t),\n delete: deleteDoc(t),\n }),\n tags: t.router({\n list: listTags(t),\n }),\n folders: t.router({\n create: createFolder(t),\n delete: deleteFolder(t),\n }),\n code: t.router({\n list: listCodeFiles(t),\n get: getCodeFile(t),\n }),\n zapper: t.router({\n status: zapperStatus(t),\n tasks: zapperTasks(t),\n links: zapperLinks(t),\n profiles: zapperProfiles(t),\n enableProfile: zapperEnableProfile(t),\n disableProfile: zapperDisableProfile(t),\n startAll: zapperStartAll(t),\n stopAll: zapperStopAll(t),\n start: zapperStart(t),\n stop: zapperStop(t),\n restart: zapperRestart(t),\n runTask: zapperRunTask(t),\n showLogs: zapperShowLogs(t),\n launch: zapperLaunch(t),\n }),\n });\n\nexport type AppRouter = ReturnType<typeof createTrpcRouter>;\n","{\n \"name\": \"@maplab/hyperdoc\",\n \"version\": \"0.3.0\",\n \"description\": \"Hyperdoc CLI and local server\",\n \"type\": \"commonjs\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"hyper\": \"dist/index.js\"\n },\n \"files\": [\n \"dist\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup && node scripts/copy-prompts.js && node scripts/copy-web.js\",\n \"dev\": \"tsx src/index.ts\",\n \"start\": \"node dist/index.js\",\n \"typecheck\": \"tsc -p tsconfig.json --noEmit\"\n },\n \"dependencies\": {\n \"chokidar\": \"^5.0.0\",\n \"commander\": \"^14.0.0\",\n \"markdown-it\": \"^14.1.0\",\n \"open\": \"^9.1.0\",\n \"express\": \"^4.19.2\",\n \"zod\": \"^4.1.5\"\n },\n \"devDependencies\": {\n \"@hyperdoc/core\": \"workspace:*\",\n \"@hyperdoc/server\": \"workspace:*\",\n \"@hyperdoc/trpc\": \"workspace:*\",\n \"tsup\": \"^8.5.0\"\n }\n}\n","import { CommanderCli } from \"./cli\";\nimport { LogLevel, formatError, logger } from \"@hyperdoc/core\";\n\ndeclare const process: {\n argv: string[];\n exit: (code: number) => never;\n};\n\nconst cli = new CommanderCli();\n\nasync function main() {\n try {\n await cli.parse(process.argv);\n } catch (error) {\n const showStackTrace = logger.getLevel() === LogLevel.DEBUG;\n const formattedError = formatError(error, showStackTrace);\n console.error(formattedError);\n process.exit(1);\n }\n}\n\nmain();\n"],"mappings":"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","names":["UK","bU","PU","a7","SU","ZU","z","z9","YW","HW","oU","aU","sU","tU","TI","tz","z7","import_path","import_os","import_fs","import_crypto","import_url","t","z3","z6","hU","uU","lU","mU","cU","XV","QV","YV","WV","KW","import_express","import_fs","import_path","obj1: TType","newObj: TType","value: unknown","fn: unknown","fn: () => TValue","it: T","signals: AbortSignal[]","TRPC_ERROR_CODES_BY_NUMBER: InvertKeyValue<\n typeof TRPC_ERROR_CODES_BY_KEY\n>","retryableRpcCodes: TRPC_ERROR_CODE_NUMBER[]","obj: object","callback: ProxyCallback","path: readonly string[]","memo: Record<string, unknown>","path","memo","_1","_2","JSONRPC2_TO_HTTP_CODE: Record<\n keyof typeof TRPC_ERROR_CODES_BY_KEY,\n number\n>","code: keyof typeof TRPC_ERROR_CODES_BY_KEY","json: TRPCResponse | TRPCResponse[]","error: TRPCError","_typeof","o","module","toPrimitive","t","r","e","i","toPropertyKey","opts: {\n config: RootConfig<TRoot>;\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TRoot['ctx'] | undefined;\n}","path","shape: DefaultErrorShape","defaultFormatter: ErrorFormatter<any, any>","cause: unknown","opts: {\n message?: string;\n code: TRPC_ERROR_CODE_KEY;\n cause?: unknown;\n }","transformer: DataTransformerOptions","defaultTransformer: CombinedDataTransformer","config: RootConfig<AnyRootTypes>","item: TResponseItem","itemOrItems: TResponse","fn: () => T","result: T | typeof uncalled","input: unknown","value: unknown","config: RootConfig<TRoot>","input: TInput","v","procedures: Record<string, AnyProcedure>","lazy: Record<string, LazyLoader<AnyRouter>>","opts: {\n ref: Lazy<AnyRouter>;\n path: readonly string[];\n key: string;\n aggregate: RouterRecord;\n }","router","lazy","from: CreateRouterOptions","path: readonly string[]","aggregate: RouterRecord","path","_def: AnyRouter['_def']","router: BuiltRouter<TRoot, {}>","procedureOrRouter: ValueOf<CreateRouterOptions>","router: Pick<Router<any, any>, '_def'>","path: string","key","router: Pick<Router<TRoot, TRecord>, '_def'>","path","ctx: Context | undefined","r","value: unknown","x: unknown","x","observable: Observable<TValue, unknown>","signal: AbortSignal","unsub: Unsubscribable | null","observable","iterator: AsyncIterator<TValue>","parsed: unknown","str: string","fn: () => Promise<TReturn>","promise: Promise<TReturn> | null","value: TReturn | typeof sym","jsonContentTypeHandler: ContentTypeHandler","inputs: unknown","result: InputRecord","acc: InputRecord","path","import_objectSpread2$1","type: ProcedureType | 'unknown'","info: TRPCRequestInfo","formDataContentTypeHandler: ContentTypeHandler","octetStreamContentTypeHandler: ContentTypeHandler","req: Request","handler","opts: GetRequestInfoOptions","error: unknown","isObject","o: unknown","o","Unpromise","arg: Promise<T> | PromiseLike<T> | PromiseExecutor<T>","promise: Promise<T>","unsubscribe: () => void","onfulfilled?:\n | ((value: T) => TResult1 | PromiseLike<TResult1>)\n | null","onrejected?:\n | ((reason: any) => TResult2 | PromiseLike<TResult2>)\n | null","onrejected?:\n | ((reason: any) => TResult | PromiseLike<TResult>)\n | null","onfinally?: (() => void) | null","promise: PromiseLike<T>","value: T | PromiseLike<T>","values: Iterable<T | PromiseLike<T>>","promises: readonly TPromise[]","promise: TPromise","resolve!: PromiseWithResolvers<T>[\"resolve\"]","reject!: PromiseWithResolvers<T>[\"reject\"]","arr: readonly T[]","member: T","index: number","member: unknown","thing: T","dispose: () => void","dispose: () => Promise<void>","ms: number","timer: ReturnType<typeof setTimeout> | null","r","e","n","t","d","module","OverloadYield","_awaitAsyncGenerator","_wrapAsyncGenerator","i","iterable: AsyncIterable<TYield, TReturn, TNext>","iterable: AsyncIterable<T>","opts: {\n count: number;\n gracePeriodMs: number;\n }","result: null | IteratorResult<T> | typeof disposablePromiseTimerResult","resolve: (value: TValue) => void","reject: (error: unknown) => void","iterable: AsyncIterable<TYield, TReturn>","onResult: (result: ManagedIteratorResult<TYield, TReturn>) => void","state: 'idle' | 'pending' | 'done'","iterables: AsyncIterable<TYield, void, unknown>[]","buffer: Array<\n [\n iterator: ManagedIterator<TYield, void>,\n result: Exclude<\n ManagedIteratorResult<TYield, void>,\n { status: 'return' }\n >,\n ]\n >","iterable: AsyncIterable<TYield, void, unknown>","errors: unknown[]","iterable: AsyncIterable<TYield, void>","iterable: AsyncIterable<TValue>","pingIntervalMs: number","result:\n | null\n | IteratorResult<TValue>\n | typeof disposablePromiseTimerResult","_asyncIterator","AsyncFromSyncIterator","value: unknown","path: (string | number)[]","opts: JSONLProducerOptions","callback: (idx: ChunkIndex) => AsyncIterable<ChunkData, void>","iterable","promise: Promise<unknown>","iterable: AsyncIterable<unknown>","newObj: Record<string, unknown>","asyncValues: ChunkDefinition[]","newHead: Head","iterable: AsyncIterable<ChunkData | typeof PING_SYM, void>","serialize","_asyncGeneratorDelegate","t","e","n","r","module","opts: SSEStreamProducerOptions<TValue>","serialize","ping: Required<SSEPingOptions>","client: SSEClientOptions","iterable: AsyncIterable<TValue | typeof PING_SYM>","value: null | TIteratorValue","chunk: null | SSEvent","controller: TransformStreamDefaultController<string>","err: TRPCError","signal: AbortSignal","TYPE_ACCEPTED_METHOD_MAP: Record<ProcedureType, HTTPMethods[]>","TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE: Record<\n ProcedureType,\n HTTPMethods[]\n>","initOpts: {\n ctx: inferRouterContext<TRouter> | undefined;\n info: TRPCRequestInfo | undefined;\n responseMeta?: HTTPBaseHandlerOptions<TRouter, TRequest>['responseMeta'];\n untransformedJSON:\n | TRPCResponse<unknown, inferRouterError<TRouter>>\n | TRPCResponse<unknown, inferRouterError<TRouter>>[]\n | null;\n errors: TRPCError[];\n headers: Headers;\n}","v","cause: unknown","errorOpts: {\n opts: Pick<\n ResolveHTTPRequestOptions<TRouter>,\n 'onError' | 'req' | 'router'\n >;\n ctx: inferRouterContext<TRouter> | undefined;\n type: ProcedureType | 'unknown';\n path?: string;\n input?: unknown;\n }","v: unknown","opts: ResolveHTTPRequestOptions<TRouter>","infoTuple: ResultTuple<TRPCRequestInfo>","ctxManager: ContextManager","result: ResultTuple<$Context> | undefined","cleanup","data: unknown","res: TRPCResponse<unknown, inferRouterError<TRouter>>","headResponse","iterable: AsyncIterable<unknown>","import_objectSpread2","error","path","results: RPCResult[]","middlewares: AnyMiddlewareFunction[]","fn: MiddlewareFunction<\n TContext,\n TMeta,\n object,\n $ContextOverrides,\n TInputOut\n >","parse: ParseFn<TInput>","inputMiddleware: AnyMiddlewareFunction","parsedInput: ReturnType<typeof parse>","parse","parse: ParseFn<TOutput>","outputMiddleware: AnyMiddlewareFunction","issues: ReadonlyArray<StandardSchemaV1.Issue>","procedureParser: Parser","r","e","t","n","module","_objectWithoutProperties","o","i","def1: AnyProcedureBuilderDef","def2: Partial<AnyProcedureBuilderDef>","import_objectSpread2$1","initDef: Partial<AnyProcedureBuilderDef>","_def: AnyProcedureBuilderDef","builder: AnyProcedureBuilder","output: Parser","builder","resolver: ProcedureResolver<any, any, any, any, any, any>","_defIn: AnyProcedureBuilderDef & { type: ProcedureType }","resolver: AnyResolver","_def: AnyProcedure['_def']","index: number","opts: ProcedureCallOptions<any>","_nextOpts?: any","opts: ProcedureCallOptions<unknown>","isServerDefault: boolean","TRPCBuilder","opts?: ValidateShape<TOptions, RuntimeConfigOptions<TContext, TMeta>>","config: RootConfig<$Root>","isServer: boolean","req: NodeHTTPRequest","opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n }","chunk: Buffer","incoming: http.IncomingHttpHeaders","res: NodeHTTPResponse","init: RequestInit","chunk: Uint8Array","err: unknown","opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}","opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}","opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>","cause: unknown","createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n >","import_objectSpread2","o","opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>","path","import_objectSpread2","b","import_zod","import_express","import_fs","import_path","import_zod","path","os","fs","d","path","files","fs","import_express","import_fs","import_path","fs","path","formatPromptText","i","import_express","import_fs","import_path","i","fs","path","import_express","import_fs","import_path","import_child_process","path","z","fs","e","d","b","import_express","import_express","import_fs","import_path","path","fs","import_express","import_fs","import_path","chokidar","path","fs","import_express","import_child_process","express","fs","p","d","path","v","i","run","v","isPlainObject","path","i","v","e","n","path","i","isPlainObject","walker","path","v","isPlainObject","b","transformed","result","getType","isArray","getType","isPlainObject","getType","isArray","isPlainObject","v","import_child_process","import_util","import_fs","import_path","d","fs","path","t","l","p","import_fs","import_path","path","fs","import_fs","import_path","import_fs","import_path","t","p","d","path","dir","fs","import_v4","t","import_v4","t","import_fs","import_path","import_v4","projectInput","t","fs","path","import_fs","import_path","import_v4","t","fs","path","import_v4","t","import_fs","import_path","import_v4","t","path","fs","import_v4","projectInput","t","d","import_v4","projectInput","t","t","path","fs","open"]}