padrone 1.5.0 → 1.7.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/CHANGELOG.md +44 -0
- package/README.md +15 -11
- package/dist/{args-D5PNDyNu.mjs → args-Cnq0nwSM.mjs} +91 -41
- package/dist/args-Cnq0nwSM.mjs.map +1 -0
- package/dist/codegen/index.mjs +4 -4
- package/dist/codegen/index.mjs.map +1 -1
- package/dist/commands-B_gufyR9.mjs +514 -0
- package/dist/commands-B_gufyR9.mjs.map +1 -0
- package/dist/{completion.mjs → completion-BEuflbDO.mjs} +12 -82
- package/dist/completion-BEuflbDO.mjs.map +1 -0
- package/dist/docs/index.d.mts +4 -4
- package/dist/docs/index.d.mts.map +1 -1
- package/dist/docs/index.mjs +10 -12
- package/dist/docs/index.mjs.map +1 -1
- package/dist/{errors-BiVrBgi6.mjs → errors-DA4KzK1M.mjs} +26 -3
- package/dist/errors-DA4KzK1M.mjs.map +1 -0
- package/dist/{formatter-DtHzbP22.d.mts → formatter-DrvhDMrq.d.mts} +3 -3
- package/dist/formatter-DrvhDMrq.d.mts.map +1 -0
- package/dist/{help-bbmu9-qd.mjs → help-BtxLgrF_.mjs} +190 -43
- package/dist/help-BtxLgrF_.mjs.map +1 -0
- package/dist/{types-Ch8Mk6Qb.d.mts → index-D6-7dz0l.d.mts} +634 -745
- package/dist/index-D6-7dz0l.d.mts.map +1 -0
- package/dist/index.d.mts +869 -36
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3884 -1699
- package/dist/index.mjs.map +1 -1
- package/dist/{mcp-mLWIdUIu.mjs → mcp-6-Jw4Bpq.mjs} +13 -15
- package/dist/mcp-6-Jw4Bpq.mjs.map +1 -0
- package/dist/{serve-B0u43DK7.mjs → serve-YVTPzBCl.mjs} +12 -14
- package/dist/serve-YVTPzBCl.mjs.map +1 -0
- package/dist/{stream-BcC146Ud.mjs → stream-DC4H8YTx.mjs} +24 -3
- package/dist/stream-DC4H8YTx.mjs.map +1 -0
- package/dist/test.d.mts +5 -8
- package/dist/test.d.mts.map +1 -1
- package/dist/test.mjs +2 -13
- package/dist/test.mjs.map +1 -1
- package/dist/{update-check-CFX1FV3v.mjs → update-check-CZ2VqjnV.mjs} +16 -17
- package/dist/update-check-CZ2VqjnV.mjs.map +1 -0
- package/dist/zod.d.mts +2 -2
- package/dist/zod.d.mts.map +1 -1
- package/dist/zod.mjs +2 -2
- package/dist/zod.mjs.map +1 -1
- package/package.json +15 -12
- package/src/cli/completions.ts +14 -11
- package/src/cli/docs.ts +13 -10
- package/src/cli/doctor.ts +22 -18
- package/src/cli/index.ts +28 -82
- package/src/cli/init.ts +10 -7
- package/src/cli/link.ts +20 -16
- package/src/cli/wrap.ts +14 -11
- package/src/codegen/schema-to-code.ts +2 -2
- package/src/{args.ts → core/args.ts} +32 -225
- package/src/core/commands.ts +373 -0
- package/src/core/create.ts +301 -0
- package/src/core/default-runtime.ts +239 -0
- package/src/{errors.ts → core/errors.ts} +22 -0
- package/src/core/exec.ts +259 -0
- package/src/core/interceptors.ts +302 -0
- package/src/{parse.ts → core/parse.ts} +36 -89
- package/src/core/program-methods.ts +301 -0
- package/src/core/results.ts +229 -0
- package/src/core/runtime.ts +246 -0
- package/src/core/validate.ts +247 -0
- package/src/docs/index.ts +12 -13
- package/src/extension/auto-output.ts +146 -0
- package/src/extension/color.ts +38 -0
- package/src/extension/completion.ts +49 -0
- package/src/extension/config.ts +262 -0
- package/src/extension/env.ts +101 -0
- package/src/extension/help.ts +192 -0
- package/src/extension/index.ts +44 -0
- package/src/extension/ink.ts +93 -0
- package/src/extension/interactive.ts +106 -0
- package/src/extension/logger.ts +262 -0
- package/src/extension/man.ts +51 -0
- package/src/extension/mcp.ts +52 -0
- package/src/extension/progress-renderer.ts +338 -0
- package/src/extension/progress.ts +299 -0
- package/src/extension/repl.ts +94 -0
- package/src/extension/serve.ts +48 -0
- package/src/extension/signal.ts +87 -0
- package/src/extension/stdin.ts +62 -0
- package/src/extension/suggestions.ts +114 -0
- package/src/extension/timing.ts +81 -0
- package/src/extension/tracing.ts +175 -0
- package/src/extension/update-check.ts +77 -0
- package/src/extension/utils.ts +51 -0
- package/src/extension/version.ts +63 -0
- package/src/{completion.ts → feature/completion.ts} +12 -12
- package/src/{interactive.ts → feature/interactive.ts} +4 -4
- package/src/{mcp.ts → feature/mcp.ts} +12 -15
- package/src/{repl-loop.ts → feature/repl-loop.ts} +10 -13
- package/src/{serve.ts → feature/serve.ts} +11 -15
- package/src/feature/test.ts +262 -0
- package/src/{update-check.ts → feature/update-check.ts} +16 -16
- package/src/{wrap.ts → feature/wrap.ts} +10 -8
- package/src/index.ts +115 -30
- package/src/{formatter.ts → output/formatter.ts} +124 -176
- package/src/{help.ts → output/help.ts} +22 -8
- package/src/output/output-indicator.ts +87 -0
- package/src/output/primitives.ts +335 -0
- package/src/output/styling.ts +221 -0
- package/src/{zod.d.ts → schema/zod.d.ts} +1 -1
- package/src/schema/zod.ts +50 -0
- package/src/test.ts +2 -276
- package/src/types/args-meta.ts +151 -0
- package/src/types/builder.ts +718 -0
- package/src/types/command.ts +157 -0
- package/src/types/index.ts +60 -0
- package/src/types/interceptor.ts +296 -0
- package/src/types/preferences.ts +83 -0
- package/src/types/result.ts +71 -0
- package/src/types/schema.ts +19 -0
- package/src/util/dotenv.ts +244 -0
- package/src/{shell-utils.ts → util/shell-utils.ts} +26 -9
- package/src/{stream.ts → util/stream.ts} +27 -1
- package/src/{type-helpers.ts → util/type-helpers.ts} +23 -16
- package/src/{type-utils.ts → util/type-utils.ts} +71 -33
- package/src/util/utils.ts +51 -0
- package/src/zod.ts +1 -50
- package/dist/args-D5PNDyNu.mjs.map +0 -1
- package/dist/chunk-CjcI7cDX.mjs +0 -15
- package/dist/command-utils-B1D-HqCd.mjs +0 -1117
- package/dist/command-utils-B1D-HqCd.mjs.map +0 -1
- package/dist/completion.d.mts +0 -64
- package/dist/completion.d.mts.map +0 -1
- package/dist/completion.mjs.map +0 -1
- package/dist/errors-BiVrBgi6.mjs.map +0 -1
- package/dist/formatter-DtHzbP22.d.mts.map +0 -1
- package/dist/help-bbmu9-qd.mjs.map +0 -1
- package/dist/mcp-mLWIdUIu.mjs.map +0 -1
- package/dist/serve-B0u43DK7.mjs.map +0 -1
- package/dist/stream-BcC146Ud.mjs.map +0 -1
- package/dist/types-Ch8Mk6Qb.d.mts.map +0 -1
- package/dist/update-check-CFX1FV3v.mjs.map +0 -1
- package/src/command-utils.ts +0 -882
- package/src/create.ts +0 -1829
- package/src/runtime.ts +0 -497
- package/src/types.ts +0 -1291
- package/src/utils.ts +0 -140
- /package/src/{colorizer.ts → output/colorizer.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serve-B0u43DK7.mjs","names":[],"sources":["../src/serve.ts"],"sourcesContent":["import { buildInputSchema, type CollectedEndpoint, collectEndpoints, serializeArgsToFlags } from './command-utils.ts';\nimport { RoutingError, ValidationError } from './errors.ts';\nimport { generateHelp } from './help.ts';\nimport type { AnyPadroneCommand, AnyPadroneProgram } from './types.ts';\n\nexport type PadroneServePreferences = {\n /** Port to listen on. Default: 3000 */\n port?: number;\n /** Host to bind to. Default: '127.0.0.1' */\n host?: string;\n /** Base path prefix for all routes. Default: '/' */\n basePath?: string;\n /** CORS allowed origin. Default: '*'. Set to `false` to disable CORS headers. */\n cors?: string | false;\n /** Control built-in utility endpoints. All enabled by default. */\n builtins?: {\n /** GET /_health — returns 200 OK. */\n health?: boolean;\n /** GET /_help and GET /_help/:command — returns help text. */\n help?: boolean;\n /** GET /_schema and GET /_schema/:command — returns JSON Schema. */\n schema?: boolean;\n /** GET /_docs — Scalar OpenAPI docs viewer. */\n docs?: boolean;\n };\n /** Hook to run before each request. Return a Response to short-circuit. */\n onRequest?: (req: Request) => Response | void | Promise<Response | void>;\n /** Transform errors into responses. */\n onError?: (error: unknown, req: Request) => Response;\n};\n\n/** Convert an endpoint dot-path to a URL path segment. */\nfunction toUrlPath(name: string): string {\n return name.replace(/\\./g, '/');\n}\n\n/** Convert a URL path segment back to a command path (slash → space). */\nfunction toCommandPath(urlPath: string): string {\n return urlPath.replace(/\\//g, ' ');\n}\n\nfunction jsonResponse(body: unknown, status = 200, headers?: Record<string, string>): Response {\n return new Response(JSON.stringify(body), {\n status,\n headers: { 'Content-Type': 'application/json', ...headers },\n });\n}\n\nfunction errorToStatus(error: unknown): number {\n if (error instanceof RoutingError) return 404;\n if (error instanceof ValidationError) return 400;\n return 500;\n}\n\nfunction errorToResponse(error: unknown): Response {\n const status = errorToStatus(error);\n if (error instanceof ValidationError) {\n return jsonResponse(\n {\n ok: false,\n error: 'validation',\n message: error.message,\n issues: error.issues.map((i) => ({ path: i.path?.map(String), message: i.message })),\n },\n status,\n );\n }\n if (error instanceof RoutingError) {\n return jsonResponse({ ok: false, error: 'not_found', message: error.message, suggestions: error.suggestions }, status);\n }\n const message = error instanceof Error ? error.message : String(error);\n return jsonResponse({ ok: false, error: 'action_error', message }, status);\n}\n\n/** Generate an OpenAPI 3.1.0 spec from the command tree. */\nfunction buildOpenApiSpec(existingCommand: AnyPadroneCommand, endpoints: CollectedEndpoint[], basePath: string): Record<string, unknown> {\n const paths: Record<string, unknown> = {};\n\n const responseSchema = {\n '200': {\n description: 'Successful response',\n content: { 'application/json': { schema: { type: 'object', properties: { ok: { type: 'boolean', const: true }, result: {} } } } },\n },\n '400': {\n description: 'Validation error',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n ok: { type: 'boolean', const: false },\n error: { type: 'string', const: 'validation' },\n message: { type: 'string' },\n issues: { type: 'array', items: { type: 'object', properties: { path: { type: 'array' }, message: { type: 'string' } } } },\n },\n },\n },\n },\n },\n '404': {\n description: 'Command not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n ok: { type: 'boolean', const: false },\n error: { type: 'string', const: 'not_found' },\n message: { type: 'string' },\n },\n },\n },\n },\n },\n '500': {\n description: 'Action error',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n ok: { type: 'boolean', const: false },\n error: { type: 'string', const: 'action_error' },\n message: { type: 'string' },\n },\n },\n },\n },\n },\n };\n\n for (const { name, command: cmd } of endpoints) {\n const urlPath = `${basePath}${toUrlPath(name)}`;\n const inputSchema = buildInputSchema(cmd);\n const description = cmd.description || cmd.title || `Run the \"${name}\" command`;\n const pathItem: Record<string, unknown> = {};\n\n const postOp = {\n summary: cmd.title || name,\n description,\n operationId: `post_${name.replace(/\\./g, '_')}`,\n requestBody: { content: { 'application/json': { schema: inputSchema } } },\n responses: responseSchema,\n };\n\n if (cmd.mutation) {\n pathItem.post = postOp;\n } else {\n // GET: args as query parameters\n const properties = (inputSchema.properties ?? {}) as Record<string, Record<string, unknown>>;\n const queryParams = Object.entries(properties).map(([key, schema]) => ({\n name: key,\n in: 'query',\n schema,\n required: (inputSchema.required as string[] | undefined)?.includes(key) ?? false,\n }));\n pathItem.get = {\n summary: cmd.title || name,\n description,\n operationId: `get_${name.replace(/\\./g, '_')}`,\n parameters: queryParams,\n responses: responseSchema,\n };\n pathItem.post = postOp;\n }\n\n paths[urlPath] = pathItem;\n }\n\n return {\n openapi: '3.1.0',\n info: {\n title: existingCommand.title || existingCommand.name,\n description: existingCommand.description,\n version: existingCommand.version ?? '0.0.0',\n },\n paths,\n };\n}\n\nfunction scalarDocsHtml(openapiUrl: string, title: string): string {\n return `<!doctype html>\n<html>\n<head>\n <title>${title} — API Docs</title>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n</head>\n<body>\n <script id=\"api-reference\" data-url=\"${openapiUrl}\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/@scalar/api-reference\"></script>\n</body>\n</html>`;\n}\n\n/** Create the serve request handler. */\nexport function createServeHandler(\n existingCommand: AnyPadroneCommand,\n evalCommand: AnyPadroneProgram['eval'],\n prefs?: PadroneServePreferences,\n): (req: Request) => Promise<Response> {\n const basePath = (prefs?.basePath ?? '/').replace(/\\/$/, '/');\n const corsOrigin = prefs?.cors !== false ? (prefs?.cors ?? '*') : undefined;\n const builtins = { health: true, help: true, schema: true, docs: true, ...prefs?.builtins };\n\n const endpoints = collectEndpoints(existingCommand.commands, '');\n if (existingCommand.action || existingCommand.argsSchema) {\n endpoints.unshift({ name: '', command: existingCommand });\n }\n\n const routeMap = new Map<string, CollectedEndpoint>();\n for (const ep of endpoints) {\n routeMap.set(toUrlPath(ep.name), ep);\n }\n\n let cachedOpenApiSpec: Record<string, unknown> | undefined;\n const getOpenApiSpec = () => (cachedOpenApiSpec ??= buildOpenApiSpec(existingCommand, endpoints, basePath));\n\n function addCorsHeaders(res: Response): Response {\n if (!corsOrigin) return res;\n const headers = new Headers(res.headers);\n headers.set('Access-Control-Allow-Origin', corsOrigin);\n headers.set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');\n headers.set('Access-Control-Allow-Headers', 'Content-Type');\n return new Response(res.body, { status: res.status, statusText: res.statusText, headers });\n }\n\n async function evalAndRespond(commandString: string, request: Request): Promise<Response> {\n const output: string[] = [];\n const errors: string[] = [];\n const result = await evalCommand(commandString || (undefined as any), {\n autoOutput: false,\n runtime: {\n output: (...args: unknown[]) => output.push(args.map(String).join(' ')),\n error: (text: string) => errors.push(text),\n interactive: 'unsupported',\n format: 'json',\n },\n });\n\n if (result.error) {\n return prefs?.onError ? prefs.onError(result.error, request) : errorToResponse(result.error);\n }\n\n if (result.argsResult?.issues) {\n const issues = (result.argsResult.issues as { path?: PropertyKey[]; message: string }[]).map((i) => ({\n path: i.path?.map(String),\n message: i.message,\n }));\n return jsonResponse({ ok: false, error: 'validation', issues }, 400);\n }\n\n return jsonResponse({ ok: true, result: result.result ?? null });\n }\n\n return async function handleRequest(req: Request): Promise<Response> {\n // CORS preflight\n if (req.method === 'OPTIONS') {\n return addCorsHeaders(new Response(null, { status: corsOrigin ? 204 : 405 }));\n }\n\n // onRequest hook\n if (prefs?.onRequest) {\n const hookResponse = await prefs.onRequest(req);\n if (hookResponse) return addCorsHeaders(hookResponse);\n }\n\n const url = new URL(req.url, 'http://localhost');\n let pathname = url.pathname;\n\n // Strip basePath prefix\n if (basePath !== '/' && pathname.startsWith(basePath)) {\n pathname = pathname.slice(basePath.length - 1);\n }\n // Remove leading slash for route matching\n const routePath = pathname.replace(/^\\//, '');\n\n // Built-in endpoints\n if (req.method === 'GET') {\n if (builtins.health && routePath === '_health') {\n return addCorsHeaders(jsonResponse({ status: 'ok' }));\n }\n\n if (builtins.schema && routePath === '_schema') {\n const schemaMap: Record<string, unknown> = {};\n for (const ep of endpoints) {\n schemaMap[toUrlPath(ep.name) || '/'] = buildInputSchema(ep.command);\n }\n return addCorsHeaders(jsonResponse(schemaMap));\n }\n\n if (builtins.schema && routePath.startsWith('_schema/')) {\n const cmdPath = routePath.slice('_schema/'.length);\n const ep = routeMap.get(cmdPath);\n if (!ep) return addCorsHeaders(jsonResponse({ ok: false, error: 'not_found', message: `Command not found: ${cmdPath}` }, 404));\n return addCorsHeaders(jsonResponse(buildInputSchema(ep.command)));\n }\n\n if (builtins.help && routePath === '_help') {\n const accept = req.headers.get('accept') ?? '';\n const format = accept.includes('application/json') ? 'json' : 'markdown';\n const helpText = generateHelp(existingCommand, existingCommand, { format, detail: 'full' });\n if (format === 'json') return addCorsHeaders(jsonResponse(JSON.parse(helpText)));\n return addCorsHeaders(new Response(helpText, { status: 200, headers: { 'Content-Type': 'text/markdown' } }));\n }\n\n if (builtins.help && routePath.startsWith('_help/')) {\n const cmdPath = routePath.slice('_help/'.length);\n const ep = routeMap.get(cmdPath);\n if (!ep) return addCorsHeaders(jsonResponse({ ok: false, error: 'not_found', message: `Command not found: ${cmdPath}` }, 404));\n const accept = req.headers.get('accept') ?? '';\n const format = accept.includes('application/json') ? 'json' : 'markdown';\n const helpText = generateHelp(existingCommand, ep.command, { format, detail: 'full' });\n if (format === 'json') return addCorsHeaders(jsonResponse(JSON.parse(helpText)));\n return addCorsHeaders(new Response(helpText, { status: 200, headers: { 'Content-Type': 'text/markdown' } }));\n }\n\n if (builtins.docs && routePath === '_openapi') {\n return addCorsHeaders(jsonResponse(getOpenApiSpec()));\n }\n\n if (builtins.docs && routePath === '_docs') {\n const openapiUrl = `${basePath}_openapi`;\n const title = existingCommand.title || existingCommand.name;\n const html = scalarDocsHtml(openapiUrl, title);\n return addCorsHeaders(new Response(html, { status: 200, headers: { 'Content-Type': 'text/html' } }));\n }\n }\n\n // Route to command\n const endpoint = routeMap.get(routePath);\n if (!endpoint) {\n return addCorsHeaders(jsonResponse({ ok: false, error: 'not_found', message: `Command not found: ${routePath || '/'}` }, 404));\n }\n\n // Enforce method based on mutation flag\n if (endpoint.command.mutation && req.method === 'GET') {\n return addCorsHeaders(\n new Response(JSON.stringify({ ok: false, error: 'method_not_allowed', message: 'Mutation commands only accept POST' }), {\n status: 405,\n headers: { 'Content-Type': 'application/json', Allow: 'POST' },\n }),\n );\n }\n\n if (req.method !== 'GET' && req.method !== 'POST') {\n return addCorsHeaders(new Response(null, { status: 405, headers: { Allow: endpoint.command.mutation ? 'POST' : 'GET, POST' } }));\n }\n\n // Build command string from request\n const commandPath = toCommandPath(routePath);\n let argParts: string[];\n\n if (req.method === 'POST') {\n try {\n const body = (await req.json()) as Record<string, unknown>;\n argParts = serializeArgsToFlags(body);\n } catch {\n return addCorsHeaders(jsonResponse({ ok: false, error: 'bad_request', message: 'Invalid JSON body' }, 400));\n }\n } else {\n // GET: query string → flags\n argParts = [];\n for (const [key, value] of url.searchParams.entries()) {\n if (key === '_') {\n // Positional args\n argParts.push(value);\n } else {\n argParts.push(value === '' ? `--${key}` : `--${key}=${value}`);\n }\n }\n }\n\n const commandString = [commandPath, ...argParts].filter(Boolean).join(' ');\n const response = await evalAndRespond(commandString, req);\n return addCorsHeaders(response);\n };\n}\n\n/** Start the serve HTTP server. */\nexport async function startServeServer(\n _program: AnyPadroneProgram,\n existingCommand: AnyPadroneCommand,\n evalCommand: AnyPadroneProgram['eval'],\n prefs?: PadroneServePreferences,\n): Promise<void> {\n const handler = createServeHandler(existingCommand, evalCommand, prefs);\n const http = await import('node:http');\n\n const port = prefs?.port ?? 3000;\n const host = prefs?.host ?? '127.0.0.1';\n const basePath = (prefs?.basePath ?? '/').replace(/\\/$/, '/');\n\n const server = http.createServer(async (req, res) => {\n const url = `http://${host}:${port}${req.url}`;\n const headers = new Headers();\n for (const [key, value] of Object.entries(req.headers)) {\n if (value) headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n\n const fetchReq = new Request(url, {\n method: req.method,\n headers,\n body: req.method !== 'GET' && req.method !== 'HEAD' ? await readBody(req) : undefined,\n });\n\n const response = await handler(fetchReq);\n const resHeaders: Record<string, string> = {};\n response.headers.forEach((v, k) => {\n resHeaders[k] = v;\n });\n res.writeHead(response.status, resHeaders);\n const body = await response.text();\n res.end(body);\n });\n\n const { getCommandRuntime } = await import('./command-utils.ts');\n const runtime = getCommandRuntime(existingCommand);\n\n return new Promise<void>((resolve, reject) => {\n server.listen(port, host, () => {\n runtime.error(`REST server listening on http://${host}:${port}${basePath}`);\n const builtins = { health: true, help: true, schema: true, docs: true, ...prefs?.builtins };\n if (builtins.docs) runtime.error(`API docs: http://${host}:${port}${basePath}_docs`);\n });\n server.on('error', reject);\n const onSignal = () => {\n server.close(() => resolve());\n };\n process.on('SIGINT', onSignal);\n process.on('SIGTERM', onSignal);\n });\n}\n\n/** Read the full body from a Node.js IncomingMessage. */\nasync function readBody(req: import('node:http').IncomingMessage): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of req) {\n chunks.push(chunk as Buffer);\n }\n return Buffer.concat(chunks).toString('utf-8');\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-BcC146Ud.mjs","names":[],"sources":["../src/stream.ts"],"sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { PadroneSchema } from './types.ts';\n\nexport interface AsyncStreamMeta {\n [x: string]: unknown;\n readonly asyncStream: number;\n readonly itemSchema?: StandardSchemaV1;\n}\n\nlet asyncStreamIdCounter = 1;\nexport const asyncStreamRegistry = new Map<number, AsyncStreamMeta>();\n\n/**\n * Returns metadata to mark a schema field as an async stream via `.meta()`.\n *\n * When used with `stdin`, padrone pipes stdin data as an `AsyncIterable` instead of\n * buffering it. Each line is validated against the item schema (if provided) as it arrives.\n *\n * @param itemSchema - Optional item schema for per-item validation.\n * Non-string schemas cause each stdin line to be `JSON.parse`'d before validation.\n *\n * @example\n * ```ts\n * import { asyncStream } from 'padrone';\n *\n * // String lines\n * z.object({ lines: z.custom<AsyncIterable<string>>().meta(asyncStream()) })\n *\n * // Typed items — each line JSON.parse'd and validated\n * z.object({ records: z.custom<AsyncIterable<{ name: string }>>().meta(asyncStream(recordSchema)) })\n * ```\n */\nexport function asyncStream<T = string>(itemSchema?: PadroneSchema<T>): AsyncStreamMeta {\n const id = asyncStreamIdCounter++;\n const meta: AsyncStreamMeta = itemSchema ? { asyncStream: id, itemSchema } : { asyncStream: id };\n asyncStreamRegistry.set(id, meta);\n return meta;\n}\n\n/** Stdin interface matching PadroneRuntime.stdin */\ninterface StdinSource {\n isTTY?: boolean;\n text(): Promise<string>;\n lines(): AsyncIterable<string>;\n}\n\n/**\n * Creates an `AsyncIterable` from a stdin source, optionally validating each item.\n * When no stdin is available (TTY / undefined), yields nothing.\n *\n * - No item schema: yields raw string lines\n * - With item schema: `JSON.parse`s each line, validates, then yields\n */\nexport function createStdinStream(stdin: StdinSource | undefined, itemSchema?: StandardSchemaV1): AsyncIterable<unknown> {\n if (!stdin) return emptyAsyncIterable;\n\n if (!itemSchema) return stdin.lines();\n\n return {\n async *[Symbol.asyncIterator]() {\n for await (const line of stdin.lines()) {\n const result = itemSchema['~standard'].validate(line);\n const resolved = result instanceof Promise ? await result : result;\n if ('issues' in resolved && resolved.issues) {\n throw new Error(`Stream item validation failed: ${resolved.issues.map((i) => i.message).join(', ')}`);\n }\n yield (resolved as { value: unknown }).value;\n }\n },\n };\n}\n\nconst emptyAsyncIterable: AsyncIterable<never> = {\n async *[Symbol.asyncIterator]() {},\n};\n"],"mappings":";AASA,IAAI,uBAAuB;AAC3B,MAAa,sCAAsB,IAAI,KAA8B;;;;;;;;;;;;;;;;;;;;;AAsBrE,SAAgB,YAAwB,YAAgD;CACtF,MAAM,KAAK;CACX,MAAM,OAAwB,aAAa;EAAE,aAAa;EAAI;EAAY,GAAG,EAAE,aAAa,IAAI;AAChG,qBAAoB,IAAI,IAAI,KAAK;AACjC,QAAO;;;;;;;;;AAiBT,SAAgB,kBAAkB,OAAgC,YAAuD;AACvH,KAAI,CAAC,MAAO,QAAO;AAEnB,KAAI,CAAC,WAAY,QAAO,MAAM,OAAO;AAErC,QAAO,EACL,QAAQ,OAAO,iBAAiB;AAC9B,aAAW,MAAM,QAAQ,MAAM,OAAO,EAAE;GACtC,MAAM,SAAS,WAAW,aAAa,SAAS,KAAK;GACrD,MAAM,WAAW,kBAAkB,UAAU,MAAM,SAAS;AAC5D,OAAI,YAAY,YAAY,SAAS,OACnC,OAAM,IAAI,MAAM,kCAAkC,SAAS,OAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,GAAG;AAEvG,SAAO,SAAgC;;IAG5C;;AAGH,MAAM,qBAA2C,EAC/C,QAAQ,OAAO,iBAAiB,IACjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-Ch8Mk6Qb.d.mts","names":[],"sources":["../src/args.ts","../src/help.ts","../src/mcp.ts","../src/runtime.ts","../src/serve.ts","../src/type-utils.ts","../src/update-check.ts","../src/wrap.ts","../src/types.ts"],"mappings":";;;;;KAGK,MAAA;;KA6BO,UAAA,GAAa,MAAA,GAAS,SAAA,CAAU,MAAA;AAAA,UAE3B,gBAAA;EACf,WAAA;EAhCS;EAkCT,KAAA,YAAiB,UAAA,KAAe,UAAA;EAlCvB;EAoCT,KAAA;EACA,UAAA;EACA,MAAA;EACA,QAAA;EAVuB;EAYvB,KAAA;AAAA;AAAA,KAGG,cAAA,SACH,IAAA,SAAa,MAAA,8BAEK,IAAA,GAAO,WAAA,CAAY,IAAA,CAAK,CAAA,WAAY,KAAA,cAAmB,CAAA,eAAgB,CAAA,aAAc,CAAA,kBAC3F,IAAA;;;;;AAjBd;;;;;;;;;;;;;;KAsCY,WAAA,QAAmB,MAAA,uBAA6B,IAAA;AAAA,UAE3C,qBAAA,QAA6B,MAAA;EA3B3B;;;;;EAiCjB,UAAA,YAAsB,cAAA,CAAe,IAAA;EA9BK;;;EAkC1C,MAAA,iBAAuB,IAAA,IAAQ,gBAAA;EAjCnB;;;;;;;;;;;;;;;EAiDZ,SAAA;EAjDgB;;AAqBlB;;;;;;;;;AAEA;;;;;;;;EA8CE,KAAA,GAAQ,WAAA,CAAY,IAAA;EAAZ;;;;;;;;;;;;;;;;EAiBR,WAAA,0BAAqC,IAAA;EAjBjB;;;;;;;;;;ACxGtB;;;;EDwIE,mBAAA,0BAA6C,IAAA;AAAA;;;KCxInC,eAAA;EACV,MAAA,GAAS,UAAA;EACT,MAAA,GAAS,UAAA;EACT,KAAA,GAAQ,UAAA,GAAa,WAAA;EAErB,GAAA;AAAA;;;KCjBU,qBAAA;mDAEV,IAAA;EAEA,OAAA;EFLS;;;;AA6BX;EElBE,SAAA;EAEA,IAAA,WFgB0C;EEd1C,IAAA,WFcyC;EEZzC,QAAA,WFYuB;EEVvB,IAAA;AAAA;;;;;;AFtBkF;KGQxE,wBAAA;sCAEV,MAAA,GAAS,OAAA,mBHPA;EGST,OAAA,GAAU,OAAA,kBAAyB,OAAA;IAAY,SAAA;EAAA,YHoBxB;EGlBvB,IAAA,GAAO,OAAA,kBAAyB,OAAA;IAAY,SAAA;EAAA,YHkBH;EGhBzC,IAAA,cHgBgC;EGdhC,KAAA,cHcgD;EGZhD,MAAA;AAAA;;KAIU,oBAAA;;;;;;;KAQA,oBAAA,GAAuB,oBAAA;EAAyB,MAAA;EAAmB,QAAA;AAAA;;;AHa9E;KGRW,sBAAA;EACV,OAAA,GAAU,oBAAA,EHUV;EGRA,gBAAA,WHUkB;EGRlB,cAAA;AAAA;;;;;;;;KAUU,eAAA;;;;;KAMA,uBAAA;EHRe,qCGUzB,IAAA,UHV0C;EGY1C,OAAA,UHZyE;EGczE,IAAA,+DHduG;EGgBvG,OAAA;IAAY,KAAA;IAAe,KAAA;EAAA,KHMN;EGJrB,OAAA;AAAA;;;;;;AHMF;;KGIY,cAAA;EHJkC,uGGM5C,MAAA,OAAa,IAAA,sBHAS;EGEtB,KAAA,IAAS,IAAA,mBHEsB;EGA/B,IAAA,mBHoCQ;EGlCR,GAAA,SAAY,MAAA,8BHkEiC;EGhE7C,MAAA,GAAS,UAAA,WHgEwC;EG9DjD,KAAA,GAAQ,UAAA,GAAa,WAAA,EHhBuB;EGkB5C,cAAA,IAAkB,IAAA,aAAiB,MAAA,+BHZb;EGctB,QAAA,IAAY,KAAA;EHVZ;;;;;;;;EGmBA,KAAA;IHkCqC,oEGhCnC,KAAA,YH+C2C;IG7C3C,IAAA,QAAY,OAAA,UH6CmC;IG3C/C,KAAA,QAAa,aAAA;EAAA;;AF7FjB;;;;;;;;;EEyGE,WAAA,GAAc,eAAA;EFxGL;;;;EE6GT,MAAA,IAAU,MAAA,EAAQ,uBAAA,KAA4B,OAAA;EF3GzB;;;;;EEiHrB,QAAA,IAAY,OAAA,UAAiB,OAAA,GAAU,sBAAA,KAA2B,wBAAA;;ADhIpE;;;;;;;;EC0IE,QAAA,IAAY,MAAA,aAAmB,OAAA,iBAAwB,WAAA;AAAA;;;;;KAO7C,sBAAA,GAAyB,QAAA,CACnC,IAAA,CAAK,cAAA,6EAEL,IAAA,CAAK,cAAA;;;;;;;;;;cA+CM,WAAA;;;KClMD,uBAAA;yCAEV,IAAA;EAEA,IAAA,WJNS;EIQT,QAAA,WJRS;EIUT,IAAA,mBJmBU;EIjBV,QAAA;IJiBoB,qCIflB,MAAA,YJewC;IIbxC,IAAA,YJauC;IIXvC,MAAA,YJWqB;IITrB,IAAA;EAAA,GJS8C;EINhD,SAAA,IAAa,GAAA,EAAK,OAAA,KAAY,QAAA,UAAkB,OAAA,CAAQ,QAAA,UJQzC;EINf,OAAA,IAAW,KAAA,WAAgB,GAAA,EAAK,OAAA,KAAY,QAAA;AAAA;;;KCpBlC,UAAA;AAAA,KACP,SAAA,sBAA+B,CAAA;AAAA,KAC/B,KAAA,kBAAuB,CAAA;AAAA,KACvB,OAAA,OAAc,CAAA;AAAA,KAEP,SAAA,MAAe,KAAA,CAAM,CAAA,wBAAyB,SAAA,CAAU,CAAA,wBAAyB,OAAA,CAAQ,CAAA;;;;;;;;KASzF,aAAA,MAAmB,KAAA,CAAM,CAAA,yBAA0B,CAAA;EAAY,QAAA;AAAA;;;ALY3E;;KKNY,OAAA,uCAA8C,SAAA,uBAEtD,aAAA,CAAc,OAAA;;;;;KAQN,cAAA,UAAwB,KAAA;EAAgB,WAAA;AAAA,WAEhD,KAAA;EAAgB,mBAAA;AAAA;;;;ALKnB;KKGW,WAAA,qCAAgD,SAAA,uBAExD,cAAA,CAAe,KAAA;;;;;;;;KAWP,OAAA,MACV,CAAA,SAAU,OAAA,YACN,OAAA,CAAQ,CAAA,IACR,CAAA,SAAU,aAAA,YACR,CAAA,KACA,CAAA,kBACE,CAAA,GACA,CAAA,SAAU,QAAA,YACR,CAAA,KACA,CAAA;;;;;KAMA,QAAA,MAAc,CAAA,GAAI,WAAA,CAAY,CAAA;EAAO,KAAA,EAAO,OAAA,CAAQ,CAAA;EAAa,OAAA,EAAS,OAAA,CAAQ,CAAA;AAAA;;;;;;;;KASlF,YAAA,cAA0B,KAAA,CAAM,MAAA,iBAAuB,CAAA,gBAAiB,MAAA,GAAS,OAAA,CAAQ,CAAA,IAAK,QAAA,CAAS,CAAA;AAAA,KAE9G,WAAA,wDAAmE,KAAA,8BAAmC,QAAA,wBACtG,SAAA,KAAc,WAAA,CAAY,SAAA,EAAW,QAAA,MACrC,KAAA;AAAA,KAEA,UAAA,0DAAoE,MAAA,iFAIrE,SAAA,cACE,SAAA,MACG,SAAA,GAAY,OAAA,GAAU,UAAA,CAAW,SAAA,EAAW,OAAA,MACjD,MAAA,mBAEE,MAAA;AAAA,KAED,cAAA,qBACH,WAAA,CAAY,CAAA,wEACR,IAAA,eACG,CAAA,YACA,UAAA,CAAW,IAAA,GAAO,IAAA,KACpB,CAAA;AAAA,KAEF,cAAA,UAAwB,CAAA,4BAA6B,CAAA,gBAAiB,CAAA,SAAU,CAAA;AAAA,KAEzE,eAAA,0DAAyE,WAAA,cACjF,KAAA,MACG,WAAA,IAAe,KAAA;;;;KAKjB,cAAA,+DAA6E,QAAA,wEAI9E,eAAA,CAAgB,KAAA,EAAO,WAAA,IAAe,cAAA,CAAe,IAAA,EAAM,WAAA;;;;KAM1D,yBAAA,kBAA2C,iBAAA,IAAqB,QAAA,uDACjE,QAAA,+DACE,QAAA,mEACE,IAAA,GAAO,cAAA,CAAe,OAAA,EAAS,UAAA,IAC/B,IAAA,GACF,IAAA;;;;;KAOM,eAAA,mBAAkC,iBAAA,4BAA6C,SAAA,8BACrE,iBAAA,wBACE,iBAAA,MAEpB,KAAA,2BAAgC,KAAA,GAC9B,KAAA,GACA,eAAA,CAAgB,IAAA,EAAM,KAAA;;;;;KAOhB,sBAAA,uBAA6C,iBAAA,wCAAyD,iBAAA,IAChH,cAAA,CAAe,SAAA,EAAW,KAAA,iBAAsB,cAAA,CAAe,SAAA,EAAW,KAAA,EAAO,IAAA,QAAY,SAAA,EAAW,IAAA;AAAA,KAErG,cAAA,mBAAiC,iBAAA,4BAA6C,SAAA,8BAC7D,iBAAA,wBACE,iBAAA,MAEpB,KAAA,2BAAgC,KAAA,UAE9B,cAAA,CAAe,IAAA,EAAM,KAAA;AAAA,KAGtB,cAAA,mBAAiC,iBAAA,uCAAwD,iBAAA,IAAqB,SAAA,8BAC7F,iBAAA,wBACE,iBAAA,MAEpB,KAAA,2BAAgC,KAAA,IAC7B,IAAA,KAAS,IAAA,KACT,KAAA,KAAU,cAAA,CAAe,IAAA,EAAM,KAAA,EAAO,IAAA;AAAA,KAGjC,iBAAA,mBACQ,iBAAA,2BACK,iBAAA,IACrB,KAAA,SAAc,iBAAA,GACd,KAAA,GACA,eAAA,CAAgB,SAAA,4BAAqC,iBAAA,GACnD,GAAA,SAAY,iBAAA,GACV,KAAA,SAAc,yBAAA,CAA0B,GAAA,IACtC,GAAA;AAAA,KAKE,eAAA,mBAAkC,iBAAA,MAAuB,SAAA,sBAEjE,SAAA,wDAEO,YAAA,SAAqB,iBAAA,KAAsB,eAAA,CAAgB,YAAA,cAC3D,YAAA,SAAqB,iBAAA,GAAoB,eAAA,CAAgB,YAAA,0BAAsC,YAAA,YACpG,KAAA,CAAM,SAAA,iCAEJ,SAAA;;;;KAKH,wBAAA,mBAA2C,iBAAA,MAAuB,yBAAA,CAA0B,eAAA,CAAgB,SAAA;;;;;AJxLjH;;;;KIkMK,gBAAA,mBAAmC,iBAAA,MACtC,wBAAA,CAAyB,SAAA,+BACrB,YAAA,kBACE,cAAA,CAAe,wBAAA,CAAyB,SAAA,MAAe,YAAA,wCAElD,YAAA;;;;;KAQD,gBAAA,mBACQ,iBAAA,yHAKhB,wBAAA,CAAyB,SAAA,KACxB,aAAA,gBAA6B,gBAAA,CAAiB,SAAA,cAC9C,YAAA,gBAA4B,eAAA,CAAgB,SAAA,cAC5C,aAAA,gBAA6B,UAAA;AAAA,KAE7B,oBAAA,aACH,SAAA,CAAU,QAAA,uCAA+C,QAAA,UAAkB,UAAA,SAAmB,QAAA;;;;;;;;;;KAWpF,cAAA,uBAAqC,iBAAA,sCAAuD,SAAA,8BAClF,iBAAA,wBACE,iBAAA,OAEnB,aAAA,CAAc,KAAA,EAAO,cAAA,MAAoB,cAAA,CAAe,IAAA,EAAM,cAAA;AAAA,KAG9D,aAAA,kBAA+B,iBAAA,mCAAoD,cAAA,CACtF,QAAA,oBACA,cAAA,EACA,QAAA,0BACA,QAAA,sBACA,cAAA,CAAe,QAAA,wBAAgC,eAAA,CAAgB,QAAA,oBAA4B,cAAA,IAC3F,QAAA,uBACA,QAAA,4BACA,QAAA,yBACA,QAAA;AAAA,KAGU,6BAAA,mBACQ,iBAAA,qBACD,gBAAA,CAAiB,SAAA,gBAAyB,UAAA,IAE3D,oBAAA,CAAqB,QAAA,iBACjB,eAAA,CAAgB,SAAA,IAChB,QAAA,SAAiB,iBAAA,GACf,QAAA,GACA,QAAA,kBACE,QAAA,SAAiB,wBAAA,CAAyB,SAAA,IACxC,iBAAA,CAAkB,SAAA,EAAW,QAAA,IAC7B,cAAA,CAAe,QAAA,sDACb,OAAA,CAAQ,IAAA,iBACN,iBAAA,CAAkB,SAAA,EAAW,MAAA,IAC7B,6BAAA,CAA8B,SAAA,EAAW,MAAA;;;;;;KClR7C,iBAAA;ENFP;;;EMMH,WAAA;ENNS;AA6BX;;;;EMjBE,QAAA;ENiBgC;;;;EMZhC,QAAA;ENY0C;;;AAE5C;EMTE,KAAA;;;;;;EAMA,aAAA;AAAA;;;;;;KCxBU,UAAA,sBAAgC,aAAA,GAAgB,aAAA,oBAAiC,aAAA,GAAgB,YAAA;EPJlG;;;EOQT,OAAA;EPqBU;;;EOjBV,IAAA;EPiB0C;;;;EOZ1C,UAAA;EPYgC;;;;EOPhC,YAAA;EPS+B;;;;;;EOF/B,MAAA,GAAS,SAAA,KAAc,gBAAA,EAAkB,YAAA,KAAiB,SAAA;AAAA;;;;KAMhD,UAAA;EPML;;AACN;EOHC,QAAA;EPKiB;;;EODjB,MAAA;EPIqC;;;EOArC,MAAA;EPAyE;;;EOIzE,OAAA;AAAA;;;KC5BG,aAAA,GAAgB,MAAA;AAAA,KAChB,WAAA,GAAc,MAAA;AAAA,KACd,WAAA,GAAc,aAAA;;;;;KAMP,oBAAA;ERFa,sEQIvB,OAAA,EAAS,sBAAA,ERJiC;EQM1C,OAAA,EAAS,iBAAA,ERNuC;EQQhD,OAAA,EAAS,iBAAA;ERNsB;;;;EQW/B,QAAA,EAAU,wBAAA;AAAA;;;;;KAOA,aAAA,2BAAwC,KAAA,IAAS,gBAAA,CAAiB,KAAA,EAAO,MAAA,IAAU,oBAAA,CAAqB,KAAA,EAAO,MAAA;;;;ARP1H;;;;;;;KQmBW,kBAAA,2BAA6C,KAAA,IAAS,aAAA,CAAc,KAAA,EAAO,MAAA;EAAY,QAAA;AAAA;;;;;KAM9F,WAAA,kBAA6B,iBAAA,+BAAgD,IAAA,CAAK,QAAA;EACrF,OAAA,GAAU,QAAA;EACV,QAAA,EAAU,IAAA,CAAK,QAAA;IAAmC,OAAA,EAAS,QAAA;EAAA;AAAA;;;;;KAOxD,eAAA,uBACmB,iBAAA,8DAGpB,QAAA,cACA,eAAA,CAAgB,SAAA,EAAW,WAAA,0BAAqC,iBAAA,GAC9D,CAAA,6BAEF,QAAA;;;;;;KAOC,qBAAA,0GAIiB,aAAA,wBACE,iBAAA,QACnB,eAAA,CAAgB,SAAA,EAAW,WAAA,qBAC5B,cAAA,CACE,YAAA,EACA,WAAA,EACA,WAAA,EACA,aAAA,kBAGA,WAAA,EACA,aAAA,QACA,aAAA,iBAGF,eAAA,CAAgB,SAAA,EAAW,WAAA,0BAAqC,iBAAA,GAC9D,cAAA,CACE,YAAA,EACA,WAAA,EACA,WAAA,EACA,CAAA,0BACA,CAAA,sBACA,CAAA,wBACA,WAAA,EACA,CAAA,4BACA,CAAA,yBACA,CAAA,uBAEF,cAAA,CACE,YAAA,EACA,WAAA,EACA,WAAA,EACA,aAAA,kBAGA,WAAA,EACA,aAAA,QACA,aAAA;AAAA,KAII,iBAAA,GAAoB,qBAAA,kCAAuD,iBAAA;;;;;KAMlF,qBAAA,0GAIiB,aAAA,wBACE,iBAAA,QACnB,eAAA,CAAgB,SAAA,EAAW,WAAA,qBAC5B,cAAA,CAAe,YAAA,EAAc,WAAA,EAAa,WAAA,iBAA4B,WAAA,qBACtE,eAAA,CAAgB,SAAA,EAAW,WAAA,0BAAqC,iBAAA,GAC9D,cAAA,CACE,YAAA,EACA,WAAA,EACA,WAAA,EACA,CAAA,0BACA,CAAA,sBACA,CAAA,wBACA,WAAA,EACA,CAAA,4BACA,CAAA,yBACA,CAAA,uBAEF,cAAA,CAAe,YAAA,EAAc,WAAA,EAAa,WAAA,iBAA4B,WAAA;AAAA,KAEhE,cAAA,+EAGI,aAAA,GAAgB,aAAA,CAAc,WAAA,sCAEtB,iBAAA,gEAEN,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA,qBAChE,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA;EAG1E,IAAA,EAAM,KAAA;EACN,IAAA,EAAM,eAAA,CAAgB,KAAA,EAAO,WAAA;EAC7B,KAAA;EACA,WAAA;EACA,OAAA,WRvGsB;EQyGtB,OAAA,GAAU,QAAA;EACV,UAAA;EACA,MAAA,YRnEQ;EQqER,KAAA,WRrC6C;EQuC7C,QAAA;EACA,aAAA,eAA4B,IAAA,EAAM,KAAA,KAAU,OAAA;EAC5C,UAAA,YRvH4C;EQyH5C,QAAA;ERnHsB;;;;;;;;;EQ6HtB,QAAA,sBAA8B,oBAAA;EAC9B,UAAA,GAAa,KAAA;EACb,YAAA,GAAe,OAAA;EACf,SAAA,GAAY,IAAA;EACZ,IAAA,GAAO,WAAA,CAAY,KAAA;EACnB,MAAA,IAAU,IAAA,EAAM,gBAAA,CAAiB,WAAA,CAAY,KAAA,GAAQ,GAAA,EAAK,oBAAA,KAAyB,IAAA,ER1DlC;EQ4DjD,WAAA;EAEA,OAAA,YPtMU;EOwMV,OAAA,GAAU,cAAA;EAGV,OAAA,GAAU,aAAA,cPzMD;EO4MT,WAAA,GAAc,iBAAA;EAEd,MAAA,GAAS,iBAAA;EACT,QAAA,GAAW,SAAA,EP9MqB;EOiNhC,QAAA;IACE,IAAA,EAAM,KAAA;IACN,UAAA,EAAY,WAAA;IACZ,IAAA,EAAM,eAAA,CAAgB,KAAA,EAAO,WAAA;IAC7B,OAAA,EAAS,QAAA;IACT,UAAA,EAAY,KAAA;IACZ,SAAA,EAAW,gBAAA,CAAiB,UAAA,CAAW,KAAA;IACvC,UAAA,EAAY,gBAAA,CAAiB,WAAA,CAAY,KAAA;IACzC,MAAA,EAAQ,IAAA;IACR,QAAA,EAAU,SAAA;IACV,YAAA,EAAc,OAAA;IACd,SAAA,EAAW,IAAA;IACX,KAAA,EAAO,MAAA;EAAA;AAAA;AAAA,KAIC,iBAAA,GAAoB,cAAA,4BAA0C,iBAAA;;;;;KAMrE,gBAAA;EACH,QAAA;IACE,OAAA,EAAS,iBAAA;EAAA;AAAA;;;;;ALpPb;;KK8PY,sBAAA;EAA2C,OAAA;EAAyB,SAAA;AAAA;;;;;;;;;;KAWpE,oBAAA;EL7PV,8EK+PA,UAAA,WL/PM;EKiQN,QAAA,WL7P8B;EK+P9B,OAAA,GAAU,sBAAA,KAA2B,MAAA,EAAQ,IAAA,KAAS,sBAAA,GL/PxB;EKiQ9B,KAAA,GAAQ,sBAAA,KAA2B,KAAA,cAAmB,sBAAA,GLzP5C;EK2PV,OAAA,GAAU,oBAAA;AAAA;AAAA,KAGA,oBAAA;EL9PuB,wDKgQjC,KAAA,WLhQ6E;EKkQ7E,WAAA,WLlQqF;EKoQrF,OAAA,WL/PgC;EKiQhC,UAAA,qBLhQ8B;EKkQ9B,MAAA,YLlQU;EKoQV,KAAA;ELhQA;;;AAUF;;EK4PE,UAAA,YL5PyB;EK8PzB,QAAA;ELxPU;;;;;;EK+PV,QAAA;AAAA;;;;;KAOG,gBAAA,qIAKW,aAAA,8BAEQ,iBAAA,yBACF,aAAA,kBACJ,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,iBACtD,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,8BAE9D,OAAA,qBACA,cAAA,CAAe,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA,IACrG,cAAA,CAAe,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;ALhQzG;;;;AAAA,KKsQY,qBAAA,8FAII,aAAA,8BAEQ,iBAAA,yBACF,aAAA,kBACJ,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,iBACtD,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA;ELjQ7B;;;;;;;;;;;;;;;;;;;;;;EK4RnC,WAAA,GACE,MAAA,GAAS,iBAAA,KACN,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;ELhShG;;;;;;;;EK0SrB,GAAA,GACE,MAAA,EAAQ,aAAA,CAAc,gBAAA,CAAiB,WAAA,CAAY,KAAA,GAAQ,IAAA,MACxD,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EAErH,SAAA,GACE,MAAA,EAAQ,oBAAA,KACL,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EL7RnH;;;;;;;;;;;;;;EK6SF,OAAA,GACE,OAAA,EAAS,cAAA,KACN,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EL9QtF;;;;AAOjC;;;;;;;;;;;EKwRE,KAAA,QAAa,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA;ELvRlH;;;;;AAiDP;;;;;;;;AClMA;;;;;;;;;;;;;;;;;EIwcE,SAAA,oBAA6B,aAAA,GAAgB,aAAA,sBAAmC,WAAA,CAAY,QAAA,IAAY,WAAA,CAAY,QAAA,GAClH,MAAA,GAAS,QAAA,KAAa,YAAA,EAAc,WAAA,KAAgB,QAAA,GACpD,IAAA,GAAO,KAAA,KACJ,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,QAAA,EACA,IAAA,EACA,SAAA,EACA,WAAA,EACA,OAAA,EACA,IAAA,EACA,WAAA,CAAY,OAAA,CAAQ,MAAA,EAAQ,QAAA,GAAW,KAAA;EJtcvC;;;;;;;EIgdF,UAAA,sBAAgC,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,KAAA,EAC3F,IAAA,iCACA,MAAA,GAAS,UAAA,KAAe,UAAA,EAAY,KAAA,KAAU,UAAA,MAC3C,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,KAAA,EACA,IAAA,EACA,SAAA,EACA,WAAA,EACA,UAAA,EACA,IAAA,EACA,OAAA,CAAQ,MAAA,EAAQ,UAAA;EJvdlB;;;;;;;;;EImeA,GAAA,mBAAsB,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,KAAA,EACjF,MAAA,EAAQ,OAAA,KAAY,UAAA,EAAY,KAAA,KAAU,OAAA,MACvC,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,KAAA,EACA,IAAA,EACA,SAAA,EACA,WAAA,EACA,OAAA,EACA,OAAA,EACA,OAAA,CAAQ,MAAA,EAAQ,OAAA;EHpgBR;;;;;AAAyB;;;;;AACA;;;;;AACR;;;;;AAG7B;EGuhBE,QAAA,GACE,MAAA,sBAA4B,oBAAA,CAAqB,OAAA,CAAQ,IAAA,OACtD,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EHzhBlG;;;;EG+hBnB,MAAA,YACE,OAAA,IACE,IAAA,EAAM,gBAAA,CAAiB,WAAA,CAAY,KAAA,GACnC,GAAA,EAAK,oBAAA,EACL,IAAA,GAAO,IAAA,EAAM,gBAAA,CAAiB,WAAA,CAAY,KAAA,GAAQ,GAAA,EAAK,oBAAA,KAAyB,IAAA,KAC7E,OAAA,KACF,gBAAA,CAAiB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EHriBrB;;;;;;;;;;;;;AASrG;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;;;AAUA;;;;;;;;;;;AAUA;;;;EG8jBE,IAAA,qBAAyB,aAAA,GAAgB,KAAA,EACvC,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,SAAA,MACvB,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,KAAA,EACA,OAAA,CAAQ,UAAA,GACR,SAAA,EACA,WAAA,EACA,OAAA,EACA,IAAA,EACA,MAAA;EHzkBA;;;;;;;;;;AAWJ;;;;;;;;;;;;;;EGylBE,OAAA,gFAGmB,gBAAA,GAAmB,qBAAA,CAClC,YAAA,EACA,WAAA,EACA,eAAA,CAAgB,KAAA,EAAO,WAAA,GACvB,KAAA,EACA,SAAA,GAGF,IAAA,EAAM,WAAA,aAAwB,WAAA,KAAgB,QAAA,GAC9C,SAAA,IACE,OAAA,EAAS,qBAAA,CAAsB,YAAA,EAAc,WAAA,EAAa,eAAA,CAAgB,KAAA,EAAO,WAAA,GAAc,KAAA,EAAO,SAAA,MACnG,QAAA,KACF,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,KAAA,EACA,IAAA,EACA,SAAA,eACK,WAAA,CAAY,QAAA,uBAA+B,QAAA,KAC5C,iBAAA,WAA4B,SAAA,IACzB,WAAA,CAAY,QAAA,uBAA+B,QAAA,KAC5C,sBAAA,CACE,SAAA,EACA,WAAA,EACA,WAAA,CAAY,QAAA,uBAA+B,eAAA,CAAgB,SAAA,EAAW,WAAA,EAAa,QAAA,KAE3F,WAAA,EACA,OAAA,EACA,IAAA,EACA,MAAA;EHlnBQ;;;;;;;;;;;;;;;;;;;;EGyoBV,KAAA,gFAAqF,gBAAA,GAAmB,gBAAA,EACtG,IAAA,EAAM,WAAA,aAAwB,WAAA,KAAgB,QAAA,GAC9C,OAAA,EAAS,QAAA,KACN,gBAAA,CACH,OAAA,EACA,YAAA,EACA,KAAA,EACA,WAAA,EACA,KAAA,EACA,IAAA,EACA,SAAA,eAEM,WAAA,CACE,cAAA,CACE,WAAA,EACA,eAAA,CAAgB,KAAA,EAAO,WAAA,GACvB,QAAA,+CACA,QAAA,2CACA,cAAA,CACE,QAAA,6CACA,eAAA,CAAgB,WAAA,EAAa,eAAA,CAAgB,KAAA,EAAO,WAAA,SAGtD,QAAA,iDACA,QAAA,8CACA,QAAA,2CAEF,QAAA,KAGJ,iBAAA,WAA4B,SAAA,IAExB,WAAA,CACE,cAAA,CACE,WAAA,EACA,eAAA,CAAgB,KAAA,EAAO,WAAA,GACvB,QAAA,+CACA,QAAA,2CACA,cAAA,CACE,QAAA,6CACA,eAAA,CAAgB,WAAA,EAAa,eAAA,CAAgB,KAAA,EAAO,WAAA,SAGtD,QAAA,iDACA,QAAA,8CACA,QAAA,2CAEF,QAAA,KAGJ,sBAAA,CACE,SAAA,EACA,WAAA,EACA,WAAA,CACE,cAAA,CACE,WAAA,EACA,eAAA,CAAgB,KAAA,EAAO,WAAA,GACvB,QAAA,+CACA,QAAA,2CACA,cAAA,CACE,QAAA,6CACA,eAAA,CAAgB,WAAA,EAAa,eAAA,CAAgB,KAAA,EAAO,WAAA,SAGtD,QAAA,iDACA,QAAA,8CACA,QAAA,2CAEF,eAAA,CAAgB,SAAA,EAAW,WAAA,EAAa,QAAA,KAGlD,WAAA,EACA,OAAA,EACA,IAAA,EACA,MAAA,GH7sB4D;EGitB9D,QAAA;IACE,WAAA,EAAa,YAAA;IACb,IAAA,EAAM,KAAA;IACN,UAAA,EAAY,WAAA;IACZ,IAAA,EAAM,eAAA,CAAgB,KAAA,EAAO,WAAA;IAC7B,OAAA;IACA,UAAA,EAAY,KAAA;IACZ,MAAA,EAAQ,IAAA;IACR,QAAA,EAAU,SAAA;IACV,KAAA,EAAO,MAAA;IACP,OAAA,EAAS,cAAA,CAAe,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,MAAe,OAAA,EAAS,IAAA,EAAM,MAAA;EAAA;AAAA;AAAA,KAI/E,cAAA,iHAII,aAAA,GAAgB,aAAA,CAAc,WAAA,sCAEtB,iBAAA,8BACF,aAAA,GAAgB,aAAA,wBACpB,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA,qBAChE,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA,0CAExE,qBAAA,CAAsB,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;AAAA,KAEpG,cAAA,iHAII,aAAA,GAAgB,aAAA,CAAc,WAAA,sCAEtB,iBAAA,8BACF,aAAA,GAAgB,aAAA,wBACpB,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA,qBAChE,aAAA,UAAuB,gBAAA,CAAiB,UAAA,CAAW,KAAA,KAAU,aAAA,0CAExE,qBAAA,CAAsB,YAAA,EAAc,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAA,EAAS,IAAA,EAAM,MAAA;EHvvBjB;;AAS/F;EGkvBE,GAAA,0BAA6B,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,iBACjF,IAAA,EAAM,QAAA,GAAW,UAAA,EACjB,IAAA,EAAM,OAAA,CAAQ,YAAA,OAAmB,iBAAA,EAAmB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA,QAClG,oBAAA,CAAqB,iBAAA,EAAmB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA;EHrvBxE;;;;;;;;;;;;;EGowBtB,IAAA,0BAA8B,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,iBAClF,KAAA,EAAO,QAAA,GAAW,UAAA,EAClB,KAAA,GAAQ,sBAAA,KACL,yBAAA,CACH,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA,GAChF,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA;EHzwBxC;;;;;EGixB1C,GAAA,GACE,KAAA,GAAQ,qBAAA,CAAsB,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,SACjF,yBAAA,CAA0B,eAAA,EAAiB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,KAAc,MAAA;EHnxBe;;;EGwxBjH,KAAA,0BAA+B,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,kBACnF,KAAA,GAAQ,QAAA,GAAW,UAAA,KAChB,YAAA,CACH,kBAAA,CAAmB,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA,IACnG,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA;EH1xBpE;;;EGgyBd,SAAA,0BAAmC,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,kBACvF,OAAA,GAAU,QAAA,GAAW,UAAA,EACrB,IAAA,GAAO,YAAA,QAAoB,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,QAAA;EHjyB1G;;;EGuyBH,IAAA,uBAA2B,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,kBAC/E,OAAA,EAAS,KAAA,GAAQ,UAAA,KACd,6BAAA,EAA+B,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,IAAa,KAAA;EHxyBlF;;;EG6yBH,GAAA,QAAW,UAAA,CAAW,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA;EH/yBrB;;;;;;;;;;;;AAE7B;;;;;;EGi0BR,IAAA,GAAO,OAAA,GAAU,sBAAA,CAAuB,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,SAAkB,aAAA,CAC9G,oBAAA,CAAqB,eAAA,EAAiB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA;IAE1E,KAAA,QAAa,OAAA,CAAQ,kBAAA,CAAmB,oBAAA,CAAqB,eAAA,EAAiB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA;EAAA;EH3zBlH;;;EGi0BF,IAAA,QAAY,IAAA;IAAO,OAAA;EAAA;EHx0BoD;;;EG60BvE,IAAA,0BAA8B,gBAAA,EAAkB,cAAA,SAAuB,KAAA,EAAO,IAAA,EAAM,SAAA,kBAClF,OAAA,GAAU,QAAA,EACV,KAAA,GAAQ,eAAA;EH10BN;;;;;;;;;;AAIM;;;;EGu1BV,UAAA,GAAa,KAAA,8CAAmD,OAAA;EHl1BzD;;;;;;;;;;;;EGg2BP,GAAA,GAAM,KAAA,GAAQ,qBAAA,KAA0B,OAAA;EHh2BjC;;;;;;;AAED;;;;;EG42BN,KAAA,GAAQ,KAAA,GAAQ,uBAAA,KAA4B,OAAA;AAAA;AAAA,KAGlC,iBAAA,GAAoB,cAAA,uCAAqD,iBAAA;;;;;KAMzE,kBAAA;AAAA,KAEA,sBAAA;EHr3ByE,kHGu3BnF,MAAA;EHv3BoF;AAEtF;;;;EG23BE,QAAA;EHz3BK;;;;;EG+3BL,IAAA,mBHj4BmF;EGm4BnF,OAAA,aHj4BK;EGm4BL,UAAA;EHn4ByB;;AAAG;;;;;;;EG64B5B,OAAA,GAAU,kBAAA;IAAuB,MAAA,GAAS,kBAAA;IAAoB,KAAA,GAAQ,kBAAA;EAAA,GHp4BhB;EGs4BtD,YAAA;EH14B6C;;;;;EGg5B7C,KAAA,GAAQ,MAAA;EH54BiB;;;;;EGm5BzB,UAAA;AAAA;;;;KAMU,sBAAA;EHl5BR;;;;;;;;EG25BF,WAAA;EH55B8C;;;;;;;;;;EGw6B9C,UAAA;EHp6BM;;;;AAQR;EGm6BE,OAAA,GAAU,cAAA;AAAA;;;;KAMA,qBAAA,mCAAwD,sBAAA;EHr6BhE,uGGu6BF,IAAA,GAAO,sBAAA,CAAuB,MAAA,WHr6BV;EGu6BpB,GAAA,GAAM,qBAAA,UHv6BF;EGy6BJ,KAAA,GAAQ,uBAAA;AAAA;;;;;KAOE,kBAAA;EAAgC,KAAA,EAAO,OAAA,CAAQ,OAAA;EAAU,KAAA;AAAA;EAAoB,KAAA;EAAgB,KAAA;AAAA;;;;;;AHz6BzG;;KGk7BY,oBAAA,kBAAsC,iBAAA,GAAoB,iBAAA,KACjE,kBAAA,CAAmB,QAAA;EAClB,MAAA,EAAQ,UAAA,CAAW,QAAA;EACnB,KAAA,UHp7BW;EGs7BX,KAAA,QAAa,OAAA,CAAQ,kBAAA,CAAmB,UAAA,CAAW,QAAA;AAAA;EAGnD,OAAA,GAAU,QAAA;EACV,IAAA,GAAO,YAAA,QAAoB,QAAA;EAC3B,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,YAAA,QAAoB,QAAA;EACzD,KAAA;EACA,MAAA,UH77BoG;EG+7BpG,KAAA,QAAa,OAAA,CAAQ,kBAAA,CAAmB,UAAA,CAAW,QAAA;AAAA;;;;;KAOpD,yBAAA,kBAA2C,iBAAA,YAA6B,YAAA,CAAa,oBAAA,CAAqB,QAAA,GAAW,MAAA;EACxH,KAAA,QAAa,OAAA,CAAQ,kBAAA,CAAmB,UAAA,CAAW,QAAA;AAAA;AAAA,KAGzC,kBAAA,kBAAoC,iBAAA,GAAoB,iBAAA;EAClE,OAAA,EAAS,QAAA;EACT,IAAA,GAAO,YAAA,QAAoB,QAAA;EAC3B,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,YAAA,QAAoB,QAAA;AAAA;AAAA,KAG/C,UAAA,kBAA4B,iBAAA,IAAqB,iBAAA,CAAkB,QAAA,YACvE,QAAA,kCAA0C,CAAA,WAAY,UAAA,CAAW,CAAA;AAAA,KAGpE,iBAAA,kBAAmC,iBAAA,KAAsB,IAAA,EAAM,YAAA,OAAmB,QAAA,MAAc,UAAA,CAAW,QAAA;AAAA,KAE3G,kBAAA,UAA4B,SAAA,CAAU,KAAA,wBAA6B,WAAA,GAAc,KAAA;AAAA,KACjF,YAAA,6CAAyD,iBAAA,IAAqB,IAAA,gBAC/E,kBAAA,CAAmB,QAAA,2BACnB,kBAAA,CAAmB,QAAA;AAAA,KAElB,UAAA,kBAA4B,iBAAA,IAAqB,UAAA,CAAW,WAAA,CAAY,QAAA;AAAA,KAExE,WAAA,eAA0B,aAAA,IAAiB,qBAAA,CAAsB,WAAA,CAAY,gBAAA,CAAiB,UAAA,CAAW,KAAA;;KAOlG,iBAAA;EHh+BY,6FGk+BtB,OAAA,EAAS,iBAAA,EHh+ByB;EGk+BlC,KAAA,EAAO,MAAA;AAAA;;KAIG,kBAAA,GAAqB,iBAAA;EHp+Bb,uEGs+BlB,KAAA;AAAA;;KAIU,iBAAA;EACV,OAAA,EAAS,iBAAA;EACT,OAAA,EAAS,MAAA;EACT,cAAA;AAAA;;KAIU,qBAAA,GAAwB,iBAAA;EHj/B9B,+GGm/BJ,OAAA,EAAS,MAAA,mBHn/BgB;EGq/BzB,cAAA;AAAA;AHr/B8B;AAAA,KGy/BpB,oBAAA;EACV,IAAA,EAAM,KAAA;EACN,UAAA,EAAY,gBAAA,CAAiB,MAAA,CAAO,KAAA;AAAA;;KAI1B,oBAAA,oBAAwC,iBAAA;EH1/B5B,2GG4/BtB,IAAA,EAAM,KAAA;AAAA;;KAII,mBAAA;EACV,MAAA,EAAQ,OAAA;AAAA;;KAIE,kBAAA,GAAqB,iBAAA;EHjgChB,uEGmgCf,KAAA;AAAA;;KAIU,kBAAA,GAAqB,iBAAA;EH7gC0B,iCG+gCzD,KAAA;AAAA;;KAIU,iBAAA;EHlhCU,kFGohCpB,KAAA,YHnhCsB;EGqhCtB,MAAA,GAAS,OAAA;AAAA;;KAIC,qBAAA,sBAA2C,iBAAA;EHrhChD,wEGuhCL,KAAA,YHvhC8B;EGyhC9B,MAAA,GAAS,OAAA;AAAA;;;AHthCX;;;;;;KGiiCK,kBAAA,8BAAgD,WAAA,KACnD,GAAA,EAAK,IAAA,EACL,IAAA,QAAY,WAAA,GAAc,OAAA,CAAQ,WAAA,MAC/B,OAAA,GAAU,OAAA,CAAQ,OAAA;;;;;;;;;;;;;;;;;;;;KAqBX,aAAA;EHpjC6C,mFGsjCvD,IAAA;EHrjCgB;;;;;EG2jChB,EAAA;EHzjCW;AAKb;;;EGyjCE,KAAA;EHzjCmE;;;;EG8jCnE,KAAA,GAAQ,kBAAA,CAAmB,kBAAA,YHzjCG;EG2jC9B,KAAA,GAAQ,kBAAA,CAAmB,kBAAA,EAAoB,iBAAA,GH3jCG;EG6jClD,QAAA,GAAW,kBAAA,CAAmB,qBAAA,EAAuB,oBAAA,CAAqB,KAAA,GAAQ,oBAAA,GH5jCxE;EG8jCV,OAAA,GAAU,kBAAA,CAAmB,oBAAA,CAAqB,KAAA,GAAQ,mBAAA,CAAoB,OAAA,GAAU,mBAAA;EH5jClF;;;;EGikCN,KAAA,GAAQ,kBAAA,CAAmB,kBAAA,EAAoB,iBAAA,CAAkB,OAAA,GAAU,iBAAA;EHzkCR;;;;EG8kCnE,QAAA,GAAW,kBAAA,CAAmB,qBAAA,CAAsB,OAAA;AAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-check-CFX1FV3v.mjs","names":[],"sources":["../src/update-check.ts"],"sourcesContent":["import type { ResolvedPadroneRuntime } from './runtime.ts';\n\n/**\n * Configuration for the update check feature.\n */\nexport type UpdateCheckConfig = {\n /**\n * The npm package name to check. Defaults to the program name.\n */\n packageName?: string;\n /**\n * Registry to check for updates.\n * - `'npm'` — checks the npm registry (default)\n * - A URL string — custom registry endpoint that returns JSON with a `version` or `dist-tags.latest` field\n */\n registry?: 'npm' | string;\n /**\n * How often to check for updates. Accepts shorthand like `'1d'`, `'12h'`, `'30m'`.\n * Defaults to `'1d'` (once per day).\n */\n interval?: string;\n /**\n * Path to the cache file for storing the last check timestamp and latest version.\n * Defaults to `~/.config/<programName>-update-check.json`.\n */\n cache?: string;\n /**\n * Environment variable name to disable update checks (e.g. `'MYAPP_NO_UPDATE_CHECK'`).\n * When set to a truthy value, update checks are skipped.\n * Defaults to `'<PROGRAM_NAME>_NO_UPDATE_CHECK'` (uppercased, hyphens to underscores).\n */\n disableEnvVar?: string;\n};\n\ntype CacheData = {\n lastCheck: number;\n latestVersion: string;\n};\n\n/**\n * Parses an interval string like '1d', '12h', '30m', '1w' into milliseconds.\n */\nexport function parseInterval(interval: string): number {\n const match = interval.match(/^(\\d+)\\s*(ms|s|m|h|d|w)$/);\n if (!match) return 86_400_000; // default 1d\n\n const value = parseInt(match[1]!, 10);\n const unit = match[2]!;\n\n switch (unit) {\n case 'ms':\n return value;\n case 's':\n return value * 1000;\n case 'm':\n return value * 60_000;\n case 'h':\n return value * 3_600_000;\n case 'd':\n return value * 86_400_000;\n case 'w':\n return value * 604_800_000;\n default:\n return 86_400_000;\n }\n}\n\n/**\n * Compares two semver version strings.\n * Returns true if `latest` is newer than `current`.\n */\nexport function isNewerVersion(current: string, latest: string): boolean {\n const parse = (v: string) => {\n const cleaned = v.replace(/^v/, '');\n const parts = cleaned.split('-');\n const nums = parts[0]!.split('.').map(Number);\n return { major: nums[0] ?? 0, minor: nums[1] ?? 0, patch: nums[2] ?? 0, prerelease: parts[1] };\n };\n\n const c = parse(current);\n const l = parse(latest);\n\n // Don't notify about pre-release versions unless user is already on a pre-release\n if (l.prerelease && !c.prerelease) return false;\n\n if (l.major !== c.major) return l.major > c.major;\n if (l.minor !== c.minor) return l.minor > c.minor;\n if (l.patch !== c.patch) return l.patch > c.patch;\n return false;\n}\n\n/**\n * Reads the update check cache file.\n */\nfunction readCache(cachePath: string): CacheData | undefined {\n try {\n const { existsSync, readFileSync } = require('node:fs') as typeof import('node:fs');\n if (!existsSync(cachePath)) return undefined;\n const data = JSON.parse(readFileSync(cachePath, 'utf-8'));\n if (typeof data.lastCheck === 'number' && typeof data.latestVersion === 'string') {\n return data as CacheData;\n }\n } catch {\n // Ignore errors\n }\n return undefined;\n}\n\n/**\n * Writes the update check cache file.\n */\nfunction writeCache(cachePath: string, data: CacheData): void {\n try {\n const { existsSync, mkdirSync, writeFileSync } = require('node:fs') as typeof import('node:fs');\n const { dirname } = require('node:path') as typeof import('node:path');\n const dir = dirname(cachePath);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n writeFileSync(cachePath, JSON.stringify(data), 'utf-8');\n } catch {\n // Ignore errors — cache is best-effort\n }\n}\n\n/**\n * Resolves the cache path, expanding `~` to the home directory.\n */\nfunction resolveCachePath(cachePath: string): string {\n const { homedir } = require('node:os') as typeof import('node:os');\n const { resolve } = require('node:path') as typeof import('node:path');\n if (cachePath.startsWith('~')) {\n return cachePath.replace('~', homedir());\n }\n return resolve(cachePath);\n}\n\n/**\n * Fetches the latest version from the registry.\n */\nasync function fetchLatestVersion(packageName: string, registry: string): Promise<string | undefined> {\n const url = registry === 'npm' ? `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest` : registry;\n\n try {\n const response = await fetch(url);\n if (!response.ok) return undefined;\n const data = (await response.json()) as Record<string, unknown>;\n\n // npm registry returns { version: \"x.y.z\" }\n if (typeof data.version === 'string') return data.version;\n\n // Custom endpoint may return { \"dist-tags\": { latest: \"x.y.z\" } }\n const distTags = data['dist-tags'] as Record<string, string> | undefined;\n if (distTags?.latest) return distTags.latest;\n } catch {\n // Network errors are expected (offline, firewall, etc.)\n }\n return undefined;\n}\n\n/**\n * Formats the update notification message.\n */\nexport function formatUpdateMessage(currentVersion: string, latestVersion: string, packageName: string): string {\n const updateCommand = `npm update -g ${packageName}`;\n return `\\n Update available: ${currentVersion} \\u2192 ${latestVersion}\\n Run \"${updateCommand}\" to update\\n`;\n}\n\n/**\n * Checks for updates in the background. Returns a function that, when called,\n * prints the update notification if a newer version was found.\n *\n * This is designed to be non-blocking: the check starts immediately but the\n * result is only consumed after command execution completes.\n */\nexport function createUpdateChecker(\n programName: string,\n currentVersion: string,\n config: UpdateCheckConfig,\n runtime: ResolvedPadroneRuntime,\n): () => void {\n const packageName = config.packageName ?? programName;\n const registry = config.registry ?? 'npm';\n const intervalMs = parseInterval(config.interval ?? '1d');\n const disableEnvVar = config.disableEnvVar ?? `${programName.toUpperCase().replace(/-/g, '_')}_NO_UPDATE_CHECK`;\n\n const defaultCachePath = `~/.config/${programName}-update-check.json`;\n const cachePath = resolveCachePath(config.cache ?? defaultCachePath);\n\n // Check if disabled\n const env = runtime.env();\n if (env.CI || env.CONTINUOUS_INTEGRATION) return noop;\n if (env[disableEnvVar]) return noop;\n if (typeof process !== 'undefined' && !process.stdout?.isTTY) return noop;\n\n // Check cache — if we checked recently, use cached result\n const cached = readCache(cachePath);\n if (cached && Date.now() - cached.lastCheck < intervalMs) {\n // Use cached version for display\n if (isNewerVersion(currentVersion, cached.latestVersion)) {\n return () => {\n runtime.error(formatUpdateMessage(currentVersion, cached.latestVersion, packageName));\n };\n }\n return noop;\n }\n\n // Start background fetch\n const fetchPromise = fetchLatestVersion(packageName, registry).then((latestVersion) => {\n if (latestVersion) {\n writeCache(cachePath, { lastCheck: Date.now(), latestVersion });\n if (isNewerVersion(currentVersion, latestVersion)) {\n return latestVersion;\n }\n }\n return undefined;\n });\n\n // Return a function that blocks on the result (briefly — the fetch should be done by now)\n let resolved: string | undefined | null = null; // null = not yet resolved\n fetchPromise.then(\n (v) => {\n resolved = v;\n },\n () => {\n resolved = undefined;\n },\n );\n\n return () => {\n // If the fetch already resolved, use the result synchronously\n if (resolved !== null) {\n if (resolved) {\n runtime.error(formatUpdateMessage(currentVersion, resolved, packageName));\n }\n return;\n }\n\n // Otherwise, we can't block — just skip this time.\n // The cache will be written when the promise resolves, so next invocation will show the message.\n };\n}\n\nfunction noop() {}\n"],"mappings":"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"}
|