@bendyline/docblocks 2.1.0 → 2.1.2

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.
Files changed (72) hide show
  1. package/README.md +2 -2
  2. package/dist/{chunk-WJKYY5QR.js → chunk-4437YWLE.js} +5 -6
  3. package/dist/{chunk-XUML3MKV.js → chunk-45T5AFCN.js} +5 -6
  4. package/dist/{chunk-COYQXQK3.js → chunk-6L3JRDE7.js} +4 -5
  5. package/dist/{chunk-BNKV7MTO.js → chunk-6XHOOBYF.js} +0 -1
  6. package/dist/{chunk-U722UUFN.js → chunk-73OOROXH.js} +0 -1
  7. package/dist/{chunk-JS6XFWQK.js → chunk-AYWKIZLD.js} +0 -1
  8. package/dist/{chunk-VTCSF7VS.js → chunk-BVY7GGNV.js} +4 -5
  9. package/dist/{chunk-B56KWCSE.js → chunk-DOV5VRTD.js} +61 -10
  10. package/dist/{chunk-AEHCVWU5.js → chunk-DZB666V7.js} +0 -1
  11. package/dist/{chunk-GM5YXU4L.js → chunk-KQ6756AJ.js} +1 -2
  12. package/dist/{chunk-BXMF5YQJ.js → chunk-LMMOFRGQ.js} +0 -1
  13. package/dist/{chunk-FNW556FN.js → chunk-M2PUNKHS.js} +0 -1
  14. package/dist/{chunk-FA7UNOXK.js → chunk-M5ZNQGR5.js} +1 -2
  15. package/dist/{chunk-P4WATND4.js → chunk-M62ZGJ5I.js} +0 -1
  16. package/dist/{chunk-RVPGQBWR.js → chunk-OQCPBOQA.js} +0 -1
  17. package/dist/{chunk-MNSZ7EZN.js → chunk-QI6YKTQV.js} +2 -3
  18. package/dist/{chunk-P3DVZQ6S.js → chunk-SJBB5OD7.js} +2 -3
  19. package/dist/{chunk-EZKJZUNJ.js → chunk-XAMILHQP.js} +0 -1
  20. package/dist/{chunk-6IYMTYMQ.js → chunk-YM7O3PWO.js} +7 -8
  21. package/dist/{chunk-DN7A33LL.js → chunk-ZO7G53QP.js} +4 -5
  22. package/dist/document/index.js +5 -6
  23. package/dist/filesystem/electron.js +6 -7
  24. package/dist/filesystem/index.js +16 -17
  25. package/dist/filesystem/indexeddb.js +8 -9
  26. package/dist/filesystem/memory.js +5 -6
  27. package/dist/filesystem/native.js +6 -7
  28. package/dist/host/index.js +2 -3
  29. package/dist/index.js +19 -20
  30. package/dist/mcp/index.d.ts +6 -3
  31. package/dist/mcp/index.js +4 -3
  32. package/dist/mcp/zod.d.ts +1859 -648
  33. package/dist/mcp/zod.js +78 -7
  34. package/dist/share/index.js +1 -2
  35. package/dist/{types-CX893hgH.d.ts → types-B7BBB5az.d.ts} +63 -2
  36. package/dist/vscode/index.d.ts +5 -0
  37. package/dist/vscode/index.js +11 -5
  38. package/dist/workspace/index.js +3 -4
  39. package/package.json +3 -2
  40. package/dist/chunk-6IYMTYMQ.js.map +0 -1
  41. package/dist/chunk-AEHCVWU5.js.map +0 -1
  42. package/dist/chunk-B56KWCSE.js.map +0 -1
  43. package/dist/chunk-BNKV7MTO.js.map +0 -1
  44. package/dist/chunk-BXMF5YQJ.js.map +0 -1
  45. package/dist/chunk-COYQXQK3.js.map +0 -1
  46. package/dist/chunk-DN7A33LL.js.map +0 -1
  47. package/dist/chunk-EZKJZUNJ.js.map +0 -1
  48. package/dist/chunk-FA7UNOXK.js.map +0 -1
  49. package/dist/chunk-FNW556FN.js.map +0 -1
  50. package/dist/chunk-GM5YXU4L.js.map +0 -1
  51. package/dist/chunk-JS6XFWQK.js.map +0 -1
  52. package/dist/chunk-MNSZ7EZN.js.map +0 -1
  53. package/dist/chunk-P3DVZQ6S.js.map +0 -1
  54. package/dist/chunk-P4WATND4.js.map +0 -1
  55. package/dist/chunk-RVPGQBWR.js.map +0 -1
  56. package/dist/chunk-U722UUFN.js.map +0 -1
  57. package/dist/chunk-VTCSF7VS.js.map +0 -1
  58. package/dist/chunk-WJKYY5QR.js.map +0 -1
  59. package/dist/chunk-XUML3MKV.js.map +0 -1
  60. package/dist/document/index.js.map +0 -1
  61. package/dist/filesystem/electron.js.map +0 -1
  62. package/dist/filesystem/index.js.map +0 -1
  63. package/dist/filesystem/indexeddb.js.map +0 -1
  64. package/dist/filesystem/memory.js.map +0 -1
  65. package/dist/filesystem/native.js.map +0 -1
  66. package/dist/host/index.js.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/mcp/index.js.map +0 -1
  69. package/dist/mcp/zod.js.map +0 -1
  70. package/dist/share/index.js.map +0 -1
  71. package/dist/vscode/index.js.map +0 -1
  72. package/dist/workspace/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/mcp/zod.ts"],"sourcesContent":["import { z } from 'zod';\nimport { z as z4 } from 'zod/v4';\nimport {\n MCP_WIRE_LIMITS,\n parseArtifactRef,\n parseComparisonResult,\n parseConversionResult,\n parseInspectionResult,\n parsePreviewResult,\n parseValidationResult,\n} from './wire.js';\nimport type {\n DescribeTemplateResult,\n DescribeThemeResult,\n DocBlocksMcpToolName,\n FormatCapabilitySummary,\n FormatDirectionCapability,\n InferThemeResult,\n InspectPptxLayoutsResult,\n ListFormatsResult,\n ListRootsResult,\n ListTemplatesResult,\n ListThemesResult,\n ListTransformStylesResult,\n PptxLayoutSummary,\n RecommendTemplatesResult,\n RootGrantSummary,\n TemplateContentProfile,\n TemplateInputSummary,\n TemplateRecommendation,\n TemplateSummary,\n ThemeCatalogEntry,\n ThemeDescription,\n TransformStyleSummary,\n} from './types.js';\n\n/** Canonical Zod projection of the exact MCP wire contract for protocol SDKs. */\n\nexport const MAX_MARKDOWN_CHARACTERS = 20 * 1024 * 1024;\nexport const MAX_PATH_CHARACTERS = 4_096;\nconst MAX_ID_CHARACTERS = 256;\n\nconst IDENTIFIER_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/u;\nconst FORMAT_PATTERN = /^[a-z0-9][a-z0-9.+_-]*$/u;\nconst INPUT_FORMAT_PATTERN = /^[A-Za-z0-9][A-Za-z0-9.+_-]*$/u;\nconst MIME_TYPE_PATTERN = /^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$/iu;\nconst ARTIFACT_URI_PATTERN = /^docblocks:\\/\\/artifacts\\/[A-Za-z0-9][A-Za-z0-9._:-]*$/u;\nconst ISO_TIMESTAMP_PATTERN = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/u;\n/* eslint-disable no-control-regex -- Wire contracts must publish explicit control-byte exclusions. */\nconst WIRE_STRING_PATTERN = new RegExp('^[^\\\\u0000\\\\u007f]*$', 'u');\nconst WORKSPACE_PATH_PATTERN = new RegExp(\n '^(?!/)(?![A-Za-z]:)(?!.*(?:^|/)(?:\\\\.{1,2})(?:/|$))(?!.*//)(?!.*[\\\\\\\\\\\\u0000-\\\\u001f\\\\u007f])(?!.*/$).+$',\n 'u',\n);\nconst SAFE_FILENAME_PATTERN = new RegExp('^(?!\\\\.{1,2}$)[^/\\\\\\\\\\\\u0000\\\\u007f]+$', 'u');\n/* eslint-enable no-control-regex */\n\nconst boundedString = z\n .string()\n .max(MCP_WIRE_LIMITS.messageCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst boundedNonEmptyString = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.messageCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst labelSchema = z\n .string()\n .max(MCP_WIRE_LIMITS.labelCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst nonEmptyLabelSchema = labelSchema.min(1);\nconst excerptSchema = z\n .string()\n .max(MCP_WIRE_LIMITS.excerptCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst uriTextSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.uriCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst nonNegativeSafeIntegerSchema = z.number().int().min(0).max(Number.MAX_SAFE_INTEGER);\nconst idSchema = z.string().min(1).max(MAX_ID_CHARACTERS).regex(IDENTIFIER_PATTERN);\nexport const formatSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.formatCharacters)\n .regex(FORMAT_PATTERN);\n/** Case-insensitive format input which handlers normalize before publishing it on the wire. */\nexport const formatInputSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.formatCharacters)\n .regex(INPUT_FORMAT_PATTERN);\nconst mimeTypeSchema = z\n .string()\n .min(3)\n .max(MCP_WIRE_LIMITS.mimeTypeCharacters)\n .regex(MIME_TYPE_PATTERN);\nconst isoTimestampSchema = z\n .string()\n .regex(ISO_TIMESTAMP_PATTERN)\n .refine((value) => {\n const timestamp = Date.parse(value);\n return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;\n }, 'Expected a canonical UTC timestamp with millisecond precision');\nconst engineNameSchema = z\n .string()\n .min(1)\n .max(MAX_ID_CHARACTERS)\n .regex(\n /^(?:[A-Za-z0-9][A-Za-z0-9._:-]*|@[A-Za-z0-9][A-Za-z0-9._-]*\\/[A-Za-z0-9][A-Za-z0-9._-]*)$/u,\n );\nconst workspacePathSchema = z\n .string()\n .min(1)\n .max(MAX_PATH_CHARACTERS)\n .regex(WORKSPACE_PATH_PATTERN, 'Expected a canonical root-relative forward-slash path')\n .refine(\n (value) =>\n !value.includes('\\\\') &&\n !value.startsWith('/') &&\n !/^[a-zA-Z]:/u.test(value) &&\n !value.split('/').some((segment) => !segment || segment === '.' || segment === '..') &&\n ![...value].some((character) => {\n const codePoint = character.codePointAt(0) ?? 0;\n return codePoint <= 0x1f || codePoint === 0x7f;\n }),\n 'Expected a canonical root-relative forward-slash path',\n );\nexport const artifactUriSchema = z\n .string()\n .max('docblocks://artifacts/'.length + MAX_ID_CHARACTERS)\n .regex(ARTIFACT_URI_PATTERN);\n\nconst assetSourceSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('file'), rootId: idSchema, path: workspacePathSchema }).strict(),\n z.object({ kind: z.literal('artifact'), uri: artifactUriSchema }).strict(),\n]);\n\nexport const bundleAssetSchema = z\n .object({\n path: workspacePathSchema,\n source: assetSourceSchema,\n mimeType: mimeTypeSchema.nullable(),\n altText: labelSchema.nullable(),\n credit: labelSchema.nullable(),\n license: labelSchema.nullable(),\n })\n .strict();\n\nexport const bundleDocumentSourceSchema = z\n .object({\n kind: z.literal('bundle'),\n markdown: z\n .string()\n .max(MAX_MARKDOWN_CHARACTERS)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire'),\n assets: z.array(bundleAssetSchema).max(MCP_WIRE_LIMITS.bundleAssets),\n name: labelSchema.nullable(),\n })\n .strict();\n\nexport const documentSourceSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('markdown'),\n markdown: z\n .string()\n .max(MAX_MARKDOWN_CHARACTERS)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire'),\n name: labelSchema.nullable(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('file'),\n rootId: idSchema,\n path: workspacePathSchema,\n format: formatSchema.nullable(),\n })\n .strict(),\n z.object({ kind: z.literal('artifact'), uri: artifactUriSchema }).strict(),\n bundleDocumentSourceSchema,\n]);\n\nconst appliedOptionSchema = z\n .object({\n name: idSchema,\n value: z.union([boundedString, z.number().finite(), z.boolean(), z.null()]),\n })\n .strict();\nconst engineVersionSchema = z\n .object({ name: engineNameSchema, version: boundedNonEmptyString })\n .strict();\n\nexport const artifactRefSchema = z\n .object({\n id: idSchema,\n uri: artifactUriSchema,\n format: formatSchema,\n mimeType: mimeTypeSchema,\n size: z.number().int().nonnegative().max(MCP_WIRE_LIMITS.artifactBytes),\n sha256: z.string().regex(/^[a-f0-9]{64}$/u),\n sourceFormat: formatSchema.nullable(),\n sourceSha256: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .nullable(),\n suggestedFilename: z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.labelCharacters)\n .regex(SAFE_FILENAME_PATTERN),\n appliedOptions: z.array(appliedOptionSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n engineVersions: z.array(engineVersionSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n createdAt: isoTimestampSchema,\n expiresAt: isoTimestampSchema.nullable(),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseArtifactRef(value), context));\n\nconst diagnosticLocationSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('source'),\n line: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n column: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n })\n .strict(),\n z.object({ kind: z.literal('block'), blockId: idSchema, nodeType: idSchema }).strict(),\n z.object({ kind: z.literal('asset'), path: workspacePathSchema }).strict(),\n z\n .object({\n kind: z.literal('item'),\n itemKind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n })\n .strict(),\n]);\n\nexport const diagnosticSchema = z\n .object({\n code: idSchema,\n severity: z.enum(['info', 'warning', 'error']),\n stage: z.enum([\n 'resolve',\n 'import',\n 'parse',\n 'inspect',\n 'validate',\n 'transform',\n 'convert',\n 'render',\n 'export',\n 'materialize',\n 'compare',\n ]),\n format: formatSchema.nullable(),\n count: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n message: boundedString,\n remediation: boundedString.nullable(),\n retryable: z.boolean(),\n location: diagnosticLocationSchema.nullable(),\n })\n .strict();\n\nexport const mcpErrorDetailSchema = z\n .object({\n code: idSchema,\n message: boundedNonEmptyString,\n stage: z\n .enum([\n 'resolve',\n 'import',\n 'parse',\n 'inspect',\n 'validate',\n 'transform',\n 'convert',\n 'render',\n 'export',\n 'materialize',\n 'compare',\n ])\n .nullable(),\n format: formatSchema.nullable(),\n hint: boundedString.nullable(),\n retryable: z.boolean(),\n operationLoad: z\n .object({\n active: z.number().int().nonnegative().max(32),\n capacity: z.number().int().positive().max(32),\n })\n .strict()\n .nullable(),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.operationLoad && value.operationLoad.active > value.operationLoad.capacity) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['operationLoad', 'active'],\n message: 'Active operation count cannot exceed capacity',\n });\n }\n });\n\nexport const mcpErrorResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('error'),\n result: z.null(),\n error: mcpErrorDetailSchema,\n })\n .strict();\n\n/**\n * Root-object output schema compatible with MCP SDK 1.29's object normalizer.\n *\n * The SDK must see an object at the root, while clients must see the two exact\n * wire branches rather than independently-nullable fields. A Zod 4 object lets\n * us publish the branch schemas through standard JSON Schema `oneOf` metadata;\n * runtime validation still delegates to the original Zod 3 schemas so custom\n * exact-wire refinements remain authoritative.\n */\nexport function toolOutputSchema<T extends z.ZodTypeAny>(success: T) {\n const successEnvelope = z\n .object({\n version: z.literal(1),\n kind: z.literal('success'),\n result: success,\n error: z.null(),\n })\n .strict();\n const errorEnvelope = z\n .object({\n version: z.literal(1),\n kind: z.literal('error'),\n result: z.null(),\n error: mcpErrorDetailSchema,\n })\n .strict();\n const publishedSuccess = z4\n .object({\n version: z4.literal(1),\n kind: z4.literal('success'),\n result: projectZod3Schema(success),\n error: z4.null(),\n })\n .strict();\n const publishedError = z4\n .object({\n version: z4.literal(1),\n kind: z4.literal('error'),\n result: z4.null(),\n error: projectZod3Schema(mcpErrorDetailSchema),\n })\n .strict();\n const oneOf = [\n jsonSchemaWithoutDialect(publishedSuccess),\n jsonSchemaWithoutDialect(publishedError),\n ];\n\n return z4\n .object({\n version: z4.literal(1),\n kind: z4.enum(['success', 'error']),\n result: z4.unknown(),\n error: z4.unknown(),\n })\n .strict()\n .superRefine((value, context) => {\n const branch = value.kind === 'success' ? successEnvelope : errorEnvelope;\n const parsed = branch.safeParse(value);\n if (parsed.success) return;\n for (const issue of parsed.error.issues) {\n context.addIssue({\n code: 'custom',\n path: issue.path,\n message: issue.message,\n });\n }\n })\n .meta({ oneOf });\n}\n\nconst assetSummarySchema = z\n .object({\n path: workspacePathSchema,\n mimeType: mimeTypeSchema,\n size: z.number().int().nonnegative().max(MCP_WIRE_LIMITS.artifactBytes),\n sha256: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .nullable(),\n altText: labelSchema.nullable(),\n credit: labelSchema.nullable(),\n license: labelSchema.nullable(),\n })\n .strict();\n\nexport const conversionResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('conversion'),\n sourceFormat: formatSchema,\n targetFormat: formatSchema,\n artifact: artifactRefSchema,\n fidelity: z.enum(['semantic', 'editable-native', 'rendered-fidelity', 'hybrid']),\n appliedThemeId: idSchema.nullable(),\n appliedTransformId: idSchema.nullable(),\n sourceAssets: z.array(assetSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n sourceAssetCount: z.number().int().min(0).max(MCP_WIRE_LIMITS.arrayEntries),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseConversionResult(value), context));\n\nconst metadataSchema = z\n .object({\n title: labelSchema.nullable(),\n author: labelSchema.nullable(),\n description: boundedString.nullable(),\n })\n .strict();\nconst statisticsSchema = z\n .object({\n blockCount: nonNegativeSafeIntegerSchema,\n wordCount: nonNegativeSafeIntegerSchema,\n characterCount: nonNegativeSafeIntegerSchema,\n tableCount: nonNegativeSafeIntegerSchema,\n linkCount: nonNegativeSafeIntegerSchema,\n assetCount: nonNegativeSafeIntegerSchema,\n pageCount: nonNegativeSafeIntegerSchema.nullable(),\n slideCount: nonNegativeSafeIntegerSchema.nullable(),\n sheetCount: nonNegativeSafeIntegerSchema.nullable(),\n })\n .strict();\nconst outlineEntrySchema = z\n .object({\n id: idSchema,\n title: nonEmptyLabelSchema,\n level: z.number().int().min(1).max(6),\n blockIndex: nonNegativeSafeIntegerSchema,\n })\n .strict();\nconst blockSummarySchema = z\n .object({\n id: idSchema,\n type: idSchema,\n text: excerptSchema,\n wordCount: nonNegativeSafeIntegerSchema,\n templateId: idSchema.nullable(),\n sourceRange: z\n .object({ start: nonNegativeSafeIntegerSchema, end: nonNegativeSafeIntegerSchema })\n .strict()\n .nullable(),\n })\n .strict();\nconst tableSummarySchema = z\n .object({\n index: nonNegativeSafeIntegerSchema,\n rowCount: nonNegativeSafeIntegerSchema,\n columnCount: nonNegativeSafeIntegerSchema,\n headers: z.array(labelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\nconst linkSummarySchema = z\n .object({\n index: nonNegativeSafeIntegerSchema,\n text: labelSchema,\n target: uriTextSchema,\n })\n .strict();\nconst documentItemSummarySchema = z\n .object({\n kind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n label: labelSchema.nullable(),\n blockIds: z.array(idSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\nconst themeSummarySchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n source: z.enum(['built-in', 'document', 'inferred']),\n layouts: z.array(nonEmptyLabelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\n\nexport const inspectionResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('inspection'),\n sourceFormat: formatSchema,\n metadata: metadataSchema,\n statistics: statisticsSchema,\n outline: z.array(outlineEntrySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n blocks: z.array(blockSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n blockOffset: z.number().int().min(0).max(MCP_WIRE_LIMITS.arrayEntries),\n nextCursor: z\n .string()\n .max(MCP_WIRE_LIMITS.identifierCharacters)\n .regex(WIRE_STRING_PATTERN)\n .nullable(),\n tables: z.array(tableSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n links: z.array(linkSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n items: z.array(documentItemSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n assets: z.array(assetSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n theme: themeSummarySchema.nullable(),\n truncated: z.boolean(),\n detailsTruncated: z.boolean(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseInspectionResult(value), context));\n\nexport const validationResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('validation'),\n sourceFormat: formatSchema,\n targetFormat: formatSchema.nullable(),\n valid: z.boolean(),\n summary: z\n .object({\n errorCount: nonNegativeSafeIntegerSchema,\n warningCount: nonNegativeSafeIntegerSchema,\n infoCount: nonNegativeSafeIntegerSchema,\n })\n .strict(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseValidationResult(value), context));\n\nconst previewItemSchema = z\n .object({\n kind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n label: labelSchema.nullable(),\n artifact: artifactRefSchema,\n width: z.number().int().min(1).max(MCP_WIRE_LIMITS.imageDimension),\n height: z.number().int().min(1).max(MCP_WIRE_LIMITS.imageDimension),\n })\n .strict();\nexport const previewResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('preview'),\n sourceFormat: formatSchema,\n previewBasis: z.enum(['source-render', 'reconstructed-import', 'native-extracted']),\n totalItems: nonNegativeSafeIntegerSchema,\n items: z.array(previewItemSchema).max(MCP_WIRE_LIMITS.previewItems),\n truncated: z.boolean(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parsePreviewResult(value), context));\n\nconst comparisonChangeSchema = z\n .object({\n category: z.enum([\n 'text',\n 'structure',\n 'table',\n 'media',\n 'theme',\n 'layout',\n 'metadata',\n 'timing',\n 'accessibility',\n ]),\n status: z.enum(['retained', 'changed', 'degraded', 'omitted', 'added']),\n path: z.string().max(MCP_WIRE_LIMITS.pathCharacters).regex(WIRE_STRING_PATTERN).nullable(),\n message: boundedNonEmptyString,\n })\n .strict();\nconst comparisonMetricSchema = z\n .object({\n name: idSchema,\n leftValue: z.number().finite(),\n rightValue: z.number().finite(),\n similarity: z.number().min(0).max(1),\n })\n .strict();\nexport const comparisonResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('comparison'),\n leftFormat: formatSchema,\n rightFormat: formatSchema,\n equivalent: z.boolean(),\n score: z.number().min(0).max(1),\n changes: z.array(comparisonChangeSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n metrics: z.array(comparisonMetricSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseComparisonResult(value), context));\n\nconst boundedPathTextSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.pathCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst sha256Schema = z.string().regex(/^[a-f0-9]{64}$/u);\n\nexport const convertDocumentResultSchema = z\n .object({ results: z.array(conversionResultSchema).min(1).max(12) })\n .strict();\n\nexport const rootGrantSummarySchema = z\n .object({\n id: idSchema,\n label: nonEmptyLabelSchema,\n read: z.boolean(),\n write: z.boolean(),\n })\n .strict() satisfies z.ZodType<RootGrantSummary>;\n\nexport const listRootsResultSchema = z\n .object({ roots: z.array(rootGrantSummarySchema).max(64) })\n .strict() satisfies z.ZodType<ListRootsResult>;\n\nexport const saveArtifactResultSchema = z\n .object({\n artifact: artifactRefSchema,\n destination: z.object({ rootId: idSchema, path: workspacePathSchema }).strict(),\n sha256: sha256Schema,\n })\n .strict();\n\nexport const formatDirectionCapabilitySchema = z.discriminatedUnion('supported', [\n z\n .object({\n supported: z.literal(true),\n tool: z.enum(['inspect_document', 'convert_document']),\n })\n .strict(),\n z.object({ supported: z.literal(false), excludedReason: boundedString }).strict(),\n]) satisfies z.ZodType<FormatDirectionCapability>;\n\nexport const formatCapabilitySummarySchema = z\n .object({\n id: formatSchema,\n label: nonEmptyLabelSchema,\n mimeType: mimeTypeSchema,\n extensions: z.array(nonEmptyLabelSchema).max(64),\n import: formatDirectionCapabilitySchema,\n export: formatDirectionCapabilitySchema,\n })\n .strict() satisfies z.ZodType<FormatCapabilitySummary>;\n\nexport const listFormatsResultSchema = z\n .object({ formats: z.array(formatCapabilitySummarySchema).max(64) })\n .strict() satisfies z.ZodType<ListFormatsResult>;\n\nexport const themeCatalogEntrySchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n description: boundedString.optional(),\n })\n .strict() satisfies z.ZodType<ThemeCatalogEntry>;\n\nexport const listThemesResultSchema = z\n .object({ themes: z.array(themeCatalogEntrySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict() satisfies z.ZodType<ListThemesResult>;\n\nexport const transformStyleSummarySchema = z\n .object({ id: idSchema, name: nonEmptyLabelSchema, description: boundedString })\n .strict() satisfies z.ZodType<TransformStyleSummary>;\n\nexport const listTransformStylesResultSchema = z\n .object({\n styles: z.array(transformStyleSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict() satisfies z.ZodType<ListTransformStylesResult>;\n\nexport const templateSummarySchema = z\n .object({ id: idSchema, label: nonEmptyLabelSchema, description: boundedString })\n .strict() satisfies z.ZodType<TemplateSummary>;\n\nexport const listTemplatesResultSchema = z\n .object({ templates: z.array(templateSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict() satisfies z.ZodType<ListTemplatesResult>;\n\nexport const templateInputSummarySchema = z\n .object({\n key: idSchema,\n description: boundedString,\n type: nonEmptyLabelSchema,\n required: z.boolean(),\n values: z.array(labelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n valueHint: labelSchema.nullable(),\n })\n .strict() satisfies z.ZodType<TemplateInputSummary>;\n\nexport const describeTemplateResultSchema = z\n .object({\n template: templateSummarySchema\n .extend({ inputs: z.array(templateInputSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict(),\n annotationExample: boundedString,\n })\n .strict() satisfies z.ZodType<DescribeTemplateResult>;\n\nexport const templateContentProfileSchema = z\n .object({\n hasImage: z.boolean(),\n imageCount: nonNegativeSafeIntegerSchema,\n hasVideo: z.boolean(),\n hasBlockquote: z.boolean(),\n hasList: z.boolean(),\n hasTable: z.boolean(),\n hasDate: z.boolean(),\n hasNumberHighlight: z.boolean(),\n wordCount: nonNegativeSafeIntegerSchema,\n hasAsciiDiagram: z.boolean(),\n hasTimeline: z.boolean(),\n hasTree: z.boolean(),\n })\n .strict() satisfies z.ZodType<TemplateContentProfile>;\n\nexport const templateRecommendationSchema = z\n .object({\n blockId: idSchema,\n title: labelSchema.nullable(),\n profile: templateContentProfileSchema,\n recommendedTemplateIds: z.array(idSchema).max(256),\n })\n .strict() satisfies z.ZodType<TemplateRecommendation>;\n\nexport const recommendTemplatesResultSchema = z\n .object({\n recommendations: z.array(templateRecommendationSchema).max(100),\n totalBlocks: nonNegativeSafeIntegerSchema,\n truncated: z.boolean(),\n })\n .strict() satisfies z.ZodType<RecommendTemplatesResult>;\n\nexport const themeDescriptionSchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n description: boundedString,\n colors: z\n .object({\n primary: nonEmptyLabelSchema,\n secondary: nonEmptyLabelSchema,\n background: nonEmptyLabelSchema,\n text: nonEmptyLabelSchema,\n highlight: nonEmptyLabelSchema,\n })\n .strict(),\n bodyFont: boundedString,\n titleFont: boundedString,\n })\n .strict() satisfies z.ZodType<ThemeDescription>;\n\nexport const describeThemeResultSchema = z\n .object({ theme: themeDescriptionSchema, source: z.enum(['built-in', 'document']) })\n .strict() satisfies z.ZodType<DescribeThemeResult>;\n\nexport const inferredLayoutSummarySchema = z\n .object({ id: nonEmptyLabelSchema, name: nonEmptyLabelSchema, description: boundedString })\n .strict();\n\nexport const inferThemeResultSchema = z\n .object({\n sourceFormat: formatSchema,\n sourceSha256: sha256Schema,\n theme: themeDescriptionSchema,\n layouts: z.array(inferredLayoutSummarySchema).max(1_000),\n warnings: z.array(boundedString).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict() satisfies z.ZodType<InferThemeResult>;\n\nexport const pptxLayoutSummarySchema = z\n .object({\n layoutPath: boundedPathTextSchema,\n name: nonEmptyLabelSchema,\n masterName: labelSchema.nullable(),\n type: labelSchema.nullable(),\n slideCount: nonNegativeSafeIntegerSchema,\n verdict: z.enum(['builtin', 'custom', 'plain', 'skip']),\n templateId: labelSchema.nullable(),\n notes: z.array(boundedString).max(1_000),\n })\n .strict() satisfies z.ZodType<PptxLayoutSummary>;\n\nexport const inspectPptxLayoutsResultSchema = z\n .object({\n slideSize: z\n .object({ cx: nonNegativeSafeIntegerSchema, cy: nonNegativeSafeIntegerSchema })\n .strict(),\n layouts: z.array(pptxLayoutSummarySchema).max(2_048),\n })\n .strict() satisfies z.ZodType<InspectPptxLayoutsResult>;\n\nexport const applyInferredThemeResultSchema = z\n .object({\n result: conversionResultSchema,\n theme: themeDescriptionSchema,\n layoutIds: z.array(labelSchema).max(1_000),\n warnings: z.array(boundedString).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\n\n/** Core-owned success payload schemas for every advertised canonical MCP tool. */\nexport const DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS: Readonly<\n Record<DocBlocksMcpToolName, z.ZodTypeAny>\n> = Object.freeze({\n list_roots: listRootsResultSchema,\n get_conversion_report: conversionResultSchema,\n convert_document: convertDocumentResultSchema,\n create_document_bundle: conversionResultSchema,\n save_artifact: saveArtifactResultSchema,\n inspect_document: inspectionResultSchema,\n validate_document: validationResultSchema,\n preview_document: previewResultSchema,\n compare_documents: comparisonResultSchema,\n list_templates: listTemplatesResultSchema,\n describe_template: describeTemplateResultSchema,\n recommend_templates: recommendTemplatesResultSchema,\n describe_theme: describeThemeResultSchema,\n infer_theme_from_file: inferThemeResultSchema,\n inspect_pptx_layouts: inspectPptxLayoutsResultSchema,\n apply_inferred_theme: applyInferredThemeResultSchema,\n list_formats: listFormatsResultSchema,\n list_themes: listThemesResultSchema,\n list_transform_styles: listTransformStylesResultSchema,\n});\n\n/** Exact success/error envelopes consumed directly by MCP tool registration. */\ntype DocBlocksMcpToolOutputSchema = ReturnType<typeof toolOutputSchema>;\nexport const DOCBLOCKS_MCP_TOOL_OUTPUT_SCHEMAS: Readonly<\n Record<DocBlocksMcpToolName, DocBlocksMcpToolOutputSchema>\n> = Object.freeze({\n list_roots: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_roots),\n get_conversion_report: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.get_conversion_report),\n convert_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.convert_document),\n create_document_bundle: toolOutputSchema(\n DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.create_document_bundle,\n ),\n save_artifact: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.save_artifact),\n inspect_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.inspect_document),\n validate_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.validate_document),\n preview_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.preview_document),\n compare_documents: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.compare_documents),\n list_templates: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_templates),\n describe_template: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.describe_template),\n recommend_templates: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.recommend_templates),\n describe_theme: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.describe_theme),\n infer_theme_from_file: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.infer_theme_from_file),\n inspect_pptx_layouts: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.inspect_pptx_layouts),\n apply_inferred_theme: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.apply_inferred_theme),\n list_formats: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_formats),\n list_themes: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_themes),\n list_transform_styles: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_transform_styles),\n});\n\nexport const materializationOptionsSchema = z.discriminatedUnion('ifExists', [\n z\n .object({\n rootId: idSchema,\n path: workspacePathSchema,\n ifExists: z.literal('error'),\n expectedSha256: z.null(),\n })\n .strict(),\n z\n .object({\n rootId: idSchema,\n path: workspacePathSchema,\n ifExists: z.literal('replace'),\n expectedSha256: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n]);\n\nfunction addExactWireIssue<T>(parsed: T | null, context: z.RefinementCtx): void {\n if (parsed !== null) return;\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Value does not satisfy the exact DocBlocks MCP wire invariants',\n });\n}\n\n/** Project the Zod 3 subset used by tool outputs into Zod 4 for SDK JSON Schema publication. */\nfunction projectZod3Schema(schema: z.ZodTypeAny): z4.ZodType {\n if (schema instanceof z.ZodEffects) return projectZod3Schema(schema.innerType());\n if (schema instanceof z.ZodOptional) return projectZod3Schema(schema.unwrap()).optional();\n if (schema instanceof z.ZodNullable) return projectZod3Schema(schema.unwrap()).nullable();\n if (schema instanceof z.ZodString) {\n let projected = z4.string();\n for (const check of schema._def.checks) {\n switch (check.kind) {\n case 'min':\n projected = projected.min(check.value);\n break;\n case 'max':\n projected = projected.max(check.value);\n break;\n case 'length':\n projected = projected.length(check.value);\n break;\n case 'regex':\n projected = projected.regex(check.regex);\n break;\n default:\n throw new Error(`Unsupported Zod string check in MCP output schema: ${check.kind}`);\n }\n }\n return projected;\n }\n if (schema instanceof z.ZodNumber) {\n let projected = z4.number();\n for (const check of schema._def.checks) {\n switch (check.kind) {\n case 'min':\n projected = check.inclusive ? projected.min(check.value) : projected.gt(check.value);\n break;\n case 'max':\n projected = check.inclusive ? projected.max(check.value) : projected.lt(check.value);\n break;\n case 'int':\n projected = projected.int();\n break;\n case 'multipleOf':\n projected = projected.multipleOf(check.value);\n break;\n case 'finite':\n // Zod 4 numbers reject infinities by default.\n break;\n }\n }\n return projected;\n }\n if (schema instanceof z.ZodBoolean) return z4.boolean();\n if (schema instanceof z.ZodNull) return z4.null();\n if (schema instanceof z.ZodAny) return z4.any();\n if (schema instanceof z.ZodUnknown) return z4.unknown();\n if (schema instanceof z.ZodNever) return z4.never();\n if (schema instanceof z.ZodLiteral) {\n const value: unknown = schema.value;\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'bigint' ||\n value === null\n ) {\n return z4.literal(value);\n }\n throw new Error('Unsupported Zod literal in MCP output schema');\n }\n if (schema instanceof z.ZodEnum) {\n const [first, ...rest] = schema.options;\n if (first === undefined) throw new Error('Empty Zod enum in MCP output schema');\n return z4.enum([first, ...rest]);\n }\n if (schema instanceof z.ZodArray) {\n let projected = z4.array(projectZod3Schema(schema.element));\n if (schema._def.minLength) projected = projected.min(schema._def.minLength.value);\n if (schema._def.maxLength) projected = projected.max(schema._def.maxLength.value);\n if (schema._def.exactLength) projected = projected.length(schema._def.exactLength.value);\n return projected;\n }\n if (schema instanceof z.ZodObject) {\n const sourceShape = schema.shape as z.ZodRawShape;\n const shape = Object.fromEntries(\n Object.entries(sourceShape).map(([key, value]) => [key, projectZod3Schema(value)]),\n );\n if (schema._def.unknownKeys === 'passthrough') return z4.looseObject(shape);\n return z4.object(shape);\n }\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const options = schema.options as readonly z.ZodTypeAny[];\n return projectUnion(options.map((option) => projectZod3Schema(option)));\n }\n if (schema instanceof z.ZodUnion) {\n const options = schema.options as readonly z.ZodTypeAny[];\n return projectUnion(options.map((option) => projectZod3Schema(option)));\n }\n throw new Error(`Unsupported Zod type in MCP output schema: ${schema._def.typeName}`);\n}\n\nfunction projectUnion(options: z4.ZodType[]): z4.ZodType {\n const [first, second, ...rest] = options;\n if (!first || !second) throw new Error('MCP output unions require at least two alternatives');\n return z4.union([first, second, ...rest]);\n}\n\nfunction jsonSchemaWithoutDialect(schema: z4.ZodType): Record<string, unknown> {\n const { $schema: _dialect, ...jsonSchema } = z4.toJSONSchema(schema, { target: 'draft-7' });\n return jsonSchema;\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/vscode/messages.ts"],"sourcesContent":["/**\n * Typed message protocol between the extension host and webview.\n */\n\nimport { HOST_WIRE_LIMITS, isBoundedString } from '../host/wire-policy.js';\n\nconst MAX_REQUEST_ID = 2_147_483_647;\n\nexport type DocumentSessionMessageStatus =\n | 'idle'\n | 'saved'\n | 'dirty'\n | 'saving'\n | 'error'\n | 'conflict'\n | 'closed';\n\nexport type DocumentConflictChoice = 'use-local' | 'use-external';\n\n/** Host-observed details that help a user distinguish two text branches. */\nexport interface DocumentConflictDetailsMessage {\n /** VS Code document version on which the DocBlocks draft was based. */\n localBaseDocumentVersion: number;\n /** Current VS Code document version observed outside the DocBlocks edit pipeline. */\n externalDocumentVersion: number;\n /** UTF-8 encoded sizes of the complete text snapshots. */\n localBytes: number;\n externalBytes: number | null;\n /** Times are extension-host observations, not filesystem-authoritative mtimes. */\n localEditedAt: number | null;\n externalObservedAt: number | null;\n /** Whether VS Code reported the external document snapshot as not yet saved. */\n externalIsDirty: boolean | null;\n}\n\nexport const DOCBLOCKS_ACCENT_COLORS = [\n 'brown',\n 'green',\n 'blue',\n 'purple',\n 'maroon',\n 'orange',\n 'gray',\n] as const;\n\nexport type DocBlocksAccentColor = (typeof DOCBLOCKS_ACCENT_COLORS)[number];\n\nexport const DOCBLOCKS_WRITE_CANVAS_TEXT_SIZE_MIN = 12;\nexport const DOCBLOCKS_WRITE_CANVAS_TEXT_SIZE_MAX = 32;\nexport const DOCBLOCKS_WRITE_CANVAS_LINE_SPACING_MIN = 1.2;\nexport const DOCBLOCKS_WRITE_CANVAS_LINE_SPACING_MAX = 2.4;\n\nexport interface VscodeWriteCanvasSettings {\n textSize: number;\n lineSpacing: number;\n}\n\nexport const DEFAULT_VSCODE_WRITE_CANVAS_SETTINGS: Readonly<VscodeWriteCanvasSettings> = {\n textSize: 16,\n lineSpacing: 1.7,\n};\n\nexport interface VscodeEditorSettings {\n autoSave: boolean;\n accentColor: DocBlocksAccentColor;\n writeCanvasSettings: VscodeWriteCanvasSettings;\n}\n\n/**\n * An opaque, one-shot authority to write one host-owned export target.\n * The label is presentation-only and must never be interpreted as a path.\n */\nexport interface ExportTargetGrantMessage {\n grantId: string;\n displayLabel: string;\n}\n\n/** Messages sent from the extension host to the webview. */\nexport type ExtensionToWebviewMessage =\n | {\n type: 'setContent';\n content: string;\n documentVersion: number;\n fileName: string;\n sessionId: string;\n sessionRevision: number;\n acknowledgedClientRevision: number;\n }\n | {\n type: 'editAcknowledged';\n sessionId: string;\n clientRevision: number;\n sessionRevision: number;\n accepted: boolean;\n message: string | null;\n }\n | {\n type: 'sessionState';\n sessionId: string;\n status: DocumentSessionMessageStatus;\n revision: number;\n persistedRevision: number;\n acknowledgedClientRevision: number;\n documentVersion: number;\n error: string | null;\n conflict: DocumentConflictDetailsMessage | null;\n }\n | {\n type: 'saveResult';\n sessionId: string;\n requestId: number;\n ok: boolean;\n revision: number;\n persistedRevision: number;\n documentVersion: number;\n message: string | null;\n }\n | { type: 'themeChange'; theme: 'light' | 'dark' }\n | { type: 'editorSettings'; settings: VscodeEditorSettings }\n | { type: 'mediaResolved'; requestId: number; url: string }\n | { type: 'mediaListed'; requestId: number; entries: MediaEntryMessage[] }\n | { type: 'mediaAdded'; requestId: number; path: string }\n | { type: 'mediaRemoved'; requestId: number }\n | { type: 'mediaError'; requestId: number; message: string }\n | { type: 'exportSaved'; requestId: number; target: ExportTargetGrantMessage | null }\n | { type: 'exportError'; requestId: number; message: string }\n | { type: 'exportTargetResolved'; requestId: number; target: ExportTargetGrantMessage | null }\n | { type: 'exportTargetPicked'; requestId: number; target: ExportTargetGrantMessage | null }\n | { type: 'workspaceFileRead'; requestId: number; dataBase64: string | null }\n | { type: 'workspaceFileError'; requestId: number; message: string };\n\n/** Messages sent from the webview to the extension host. */\nexport type WebviewToExtensionMessage =\n | { type: 'ready' }\n | { type: 'setAutoSave'; enabled: boolean }\n | { type: 'setAccentColor'; accentColor: DocBlocksAccentColor }\n | { type: 'setWriteCanvasSettings'; settings: VscodeWriteCanvasSettings }\n | {\n type: 'edit';\n content: string;\n sessionId: string;\n clientRevision: number;\n baseDocumentVersion: number;\n }\n | {\n type: 'save';\n sessionId: string;\n requestId: number;\n clientRevision: number;\n baseDocumentVersion: number;\n }\n | { type: 'resolveConflict'; sessionId: string; choice: DocumentConflictChoice }\n | { type: 'resolveMedia'; requestId: number; ref: string }\n | { type: 'listMedia'; requestId: number }\n | { type: 'addMedia'; requestId: number; name: string; dataBase64: string; mimeType: string }\n | { type: 'removeMedia'; requestId: number; ref: string }\n | {\n type: 'saveExport';\n requestId: number;\n filename: string;\n dataBase64: string;\n mimeType: string;\n grantId: string | null;\n }\n | { type: 'resolveExportTarget'; requestId: number; filename: string }\n | {\n type: 'pickExportTarget';\n requestId: number;\n filename: string;\n currentGrantId: string | null;\n }\n | { type: 'readWorkspaceFile'; requestId: number; path: string };\n\nexport interface MediaEntryMessage {\n name: string;\n mimeType: string;\n size: number;\n}\n\n/**\n * The webview boundary is untrusted at runtime. Keep malformed or stale\n * messages out of the document session instead of relying on a TypeScript\n * assertion in the extension host.\n */\nexport function parseWebviewToExtensionMessage(value: unknown): WebviewToExtensionMessage | null {\n if (!isRecord(value) || typeof value.type !== 'string') return null;\n\n switch (value.type) {\n case 'ready':\n return hasOnlyKeys(value, ['type']) ? { type: 'ready' } : null;\n case 'setAutoSave':\n return hasOnlyKeys(value, ['type', 'enabled']) && typeof value.enabled === 'boolean'\n ? { type: 'setAutoSave', enabled: value.enabled }\n : null;\n case 'setAccentColor':\n return hasOnlyKeys(value, ['type', 'accentColor']) &&\n isDocBlocksAccentColor(value.accentColor)\n ? { type: 'setAccentColor', accentColor: value.accentColor }\n : null;\n case 'setWriteCanvasSettings': {\n if (!hasOnlyKeys(value, ['type', 'settings'])) return null;\n const settings = parseVscodeWriteCanvasSettings(value.settings);\n return settings ? { type: 'setWriteCanvasSettings', settings } : null;\n }\n case 'edit':\n return hasOnlyKeys(value, [\n 'type',\n 'content',\n 'sessionId',\n 'clientRevision',\n 'baseDocumentVersion',\n ]) &&\n hasBoundedString(value, 'content', HOST_WIRE_LIMITS.documentCharacters) &&\n isSessionEnvelope(value)\n ? {\n type: 'edit',\n content: value.content,\n sessionId: value.sessionId,\n clientRevision: value.clientRevision,\n baseDocumentVersion: value.baseDocumentVersion,\n }\n : null;\n case 'save':\n return hasOnlyKeys(value, [\n 'type',\n 'sessionId',\n 'requestId',\n 'clientRevision',\n 'baseDocumentVersion',\n ]) &&\n isSessionEnvelope(value) &&\n hasRequestId(value)\n ? {\n type: 'save',\n sessionId: value.sessionId,\n requestId: value.requestId,\n clientRevision: value.clientRevision,\n baseDocumentVersion: value.baseDocumentVersion,\n }\n : null;\n case 'resolveConflict':\n return hasOnlyKeys(value, ['type', 'sessionId', 'choice']) &&\n hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n (value.choice === 'use-local' || value.choice === 'use-external')\n ? { type: 'resolveConflict', sessionId: value.sessionId, choice: value.choice }\n : null;\n case 'resolveMedia':\n return hasOnlyKeys(value, ['type', 'requestId', 'ref']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'ref', HOST_WIRE_LIMITS.pathCharacters, 1)\n ? { type: 'resolveMedia', requestId: value.requestId, ref: value.ref }\n : null;\n case 'listMedia':\n return hasOnlyKeys(value, ['type', 'requestId']) && hasRequestId(value)\n ? { type: 'listMedia', requestId: value.requestId }\n : null;\n case 'addMedia':\n return hasOnlyKeys(value, ['type', 'requestId', 'name', 'dataBase64', 'mimeType']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'name', HOST_WIRE_LIMITS.pathCharacters, 1) &&\n hasBoundedString(value, 'dataBase64', HOST_WIRE_LIMITS.base64Characters) &&\n hasMimeType(value, 'mimeType')\n ? {\n type: 'addMedia',\n requestId: value.requestId,\n name: value.name,\n dataBase64: value.dataBase64,\n mimeType: value.mimeType,\n }\n : null;\n case 'removeMedia':\n return hasOnlyKeys(value, ['type', 'requestId', 'ref']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'ref', HOST_WIRE_LIMITS.pathCharacters, 1)\n ? { type: 'removeMedia', requestId: value.requestId, ref: value.ref }\n : null;\n case 'saveExport':\n return hasOnlyKeys(value, [\n 'type',\n 'requestId',\n 'filename',\n 'dataBase64',\n 'mimeType',\n 'grantId',\n ]) &&\n hasRequestId(value) &&\n hasSafeFilename(value, 'filename') &&\n hasBoundedString(value, 'dataBase64', HOST_WIRE_LIMITS.base64Characters) &&\n hasMimeType(value, 'mimeType') &&\n hasNullableBoundedString(value, 'grantId', HOST_WIRE_LIMITS.identifierCharacters, 1)\n ? {\n type: 'saveExport',\n requestId: value.requestId,\n filename: value.filename,\n dataBase64: value.dataBase64,\n mimeType: value.mimeType,\n grantId: value.grantId,\n }\n : null;\n case 'resolveExportTarget':\n return hasOnlyKeys(value, ['type', 'requestId', 'filename']) &&\n hasRequestId(value) &&\n hasSafeFilename(value, 'filename')\n ? { type: 'resolveExportTarget', requestId: value.requestId, filename: value.filename }\n : null;\n case 'pickExportTarget':\n return hasOnlyKeys(value, ['type', 'requestId', 'filename', 'currentGrantId']) &&\n hasRequestId(value) &&\n hasSafeFilename(value, 'filename') &&\n hasNullableBoundedString(value, 'currentGrantId', HOST_WIRE_LIMITS.identifierCharacters, 1)\n ? {\n type: 'pickExportTarget',\n requestId: value.requestId,\n filename: value.filename,\n currentGrantId: value.currentGrantId,\n }\n : null;\n case 'readWorkspaceFile':\n return hasOnlyKeys(value, ['type', 'requestId', 'path']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'path', HOST_WIRE_LIMITS.pathCharacters, 1)\n ? { type: 'readWorkspaceFile', requestId: value.requestId, path: value.path }\n : null;\n default:\n return null;\n }\n}\n\n/**\n * Validate host responses before they influence webview state. This protects\n * the browser side from protocol drift and from messages injected by another\n * script in the webview document; a TypeScript MessageEvent annotation is not\n * runtime validation.\n */\nexport function parseExtensionToWebviewMessage(value: unknown): ExtensionToWebviewMessage | null {\n if (!isRecord(value) || typeof value.type !== 'string') return null;\n\n switch (value.type) {\n case 'setContent':\n return hasOnlyKeys(value, [\n 'type',\n 'content',\n 'documentVersion',\n 'fileName',\n 'sessionId',\n 'sessionRevision',\n 'acknowledgedClientRevision',\n ]) &&\n hasBoundedString(value, 'content', HOST_WIRE_LIMITS.documentCharacters) &&\n hasNonNegativeInteger(value, 'documentVersion') &&\n hasBoundedString(value, 'fileName', HOST_WIRE_LIMITS.pathCharacters, 1) &&\n hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n hasNonNegativeInteger(value, 'sessionRevision') &&\n hasNonNegativeInteger(value, 'acknowledgedClientRevision')\n ? {\n type: 'setContent',\n content: value.content,\n documentVersion: value.documentVersion,\n fileName: value.fileName,\n sessionId: value.sessionId,\n sessionRevision: value.sessionRevision,\n acknowledgedClientRevision: value.acknowledgedClientRevision,\n }\n : null;\n case 'editAcknowledged':\n return hasOnlyKeys(value, [\n 'type',\n 'sessionId',\n 'clientRevision',\n 'sessionRevision',\n 'accepted',\n 'message',\n ]) &&\n hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n hasNonNegativeInteger(value, 'clientRevision') &&\n hasNonNegativeInteger(value, 'sessionRevision') &&\n typeof value.accepted === 'boolean' &&\n hasNullableBoundedString(value, 'message', HOST_WIRE_LIMITS.messageCharacters)\n ? {\n type: 'editAcknowledged',\n sessionId: value.sessionId,\n clientRevision: value.clientRevision,\n sessionRevision: value.sessionRevision,\n accepted: value.accepted,\n message: value.message,\n }\n : null;\n case 'sessionState': {\n if (\n !hasOnlyKeys(value, [\n 'type',\n 'sessionId',\n 'status',\n 'revision',\n 'persistedRevision',\n 'acknowledgedClientRevision',\n 'documentVersion',\n 'error',\n 'conflict',\n ]) ||\n !hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) ||\n !isDocumentSessionMessageStatus(value.status) ||\n !hasNonNegativeInteger(value, 'revision') ||\n !hasNonNegativeInteger(value, 'persistedRevision') ||\n value.persistedRevision > value.revision ||\n !hasNonNegativeInteger(value, 'acknowledgedClientRevision') ||\n !hasNonNegativeInteger(value, 'documentVersion') ||\n !hasNullableBoundedString(value, 'error', HOST_WIRE_LIMITS.messageCharacters)\n ) {\n return null;\n }\n const conflict = parseDocumentConflictDetails(value.conflict);\n if (\n conflict === undefined ||\n (value.status === 'conflict' && conflict === null) ||\n (value.status !== 'conflict' && conflict !== null)\n ) {\n return null;\n }\n return {\n type: 'sessionState',\n sessionId: value.sessionId,\n status: value.status,\n revision: value.revision,\n persistedRevision: value.persistedRevision,\n acknowledgedClientRevision: value.acknowledgedClientRevision,\n documentVersion: value.documentVersion,\n error: value.error,\n conflict,\n };\n }\n case 'saveResult':\n return hasOnlyKeys(value, [\n 'type',\n 'sessionId',\n 'requestId',\n 'ok',\n 'revision',\n 'persistedRevision',\n 'documentVersion',\n 'message',\n ]) &&\n hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n hasRequestId(value) &&\n typeof value.ok === 'boolean' &&\n hasNonNegativeInteger(value, 'revision') &&\n hasNonNegativeInteger(value, 'persistedRevision') &&\n value.persistedRevision <= value.revision &&\n hasNonNegativeInteger(value, 'documentVersion') &&\n hasNullableBoundedString(value, 'message', HOST_WIRE_LIMITS.messageCharacters)\n ? {\n type: 'saveResult',\n sessionId: value.sessionId,\n requestId: value.requestId,\n ok: value.ok,\n revision: value.revision,\n persistedRevision: value.persistedRevision,\n documentVersion: value.documentVersion,\n message: value.message,\n }\n : null;\n case 'themeChange':\n return hasOnlyKeys(value, ['type', 'theme']) &&\n (value.theme === 'light' || value.theme === 'dark')\n ? { type: 'themeChange', theme: value.theme }\n : null;\n case 'editorSettings': {\n if (!hasOnlyKeys(value, ['type', 'settings'])) return null;\n const settings = parseVscodeEditorSettings(value.settings);\n return settings ? { type: 'editorSettings', settings } : null;\n }\n case 'mediaResolved':\n return hasOnlyKeys(value, ['type', 'requestId', 'url']) &&\n hasRequestId(value) &&\n isBoundedMediaDataUrl(value.url)\n ? { type: 'mediaResolved', requestId: value.requestId, url: value.url }\n : null;\n case 'mediaListed': {\n if (!hasOnlyKeys(value, ['type', 'requestId', 'entries']) || !hasRequestId(value)) {\n return null;\n }\n const entries = parseMediaEntries(value.entries);\n return entries ? { type: 'mediaListed', requestId: value.requestId, entries } : null;\n }\n case 'mediaAdded':\n return hasOnlyKeys(value, ['type', 'requestId', 'path']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'path', HOST_WIRE_LIMITS.pathCharacters, 1)\n ? { type: 'mediaAdded', requestId: value.requestId, path: value.path }\n : null;\n case 'mediaRemoved':\n return hasOnlyKeys(value, ['type', 'requestId']) && hasRequestId(value)\n ? { type: 'mediaRemoved', requestId: value.requestId }\n : null;\n case 'mediaError':\n case 'exportError':\n case 'workspaceFileError':\n return hasOnlyKeys(value, ['type', 'requestId', 'message']) &&\n hasRequestId(value) &&\n hasBoundedString(value, 'message', HOST_WIRE_LIMITS.messageCharacters, 1)\n ? { type: value.type, requestId: value.requestId, message: value.message }\n : null;\n case 'exportSaved':\n case 'exportTargetResolved':\n case 'exportTargetPicked': {\n if (!hasOnlyKeys(value, ['type', 'requestId', 'target']) || !hasRequestId(value)) {\n return null;\n }\n const target = parseExportTargetGrant(value.target);\n return target !== undefined ? { type: value.type, requestId: value.requestId, target } : null;\n }\n case 'workspaceFileRead':\n return hasOnlyKeys(value, ['type', 'requestId', 'dataBase64']) &&\n hasRequestId(value) &&\n hasNullableBoundedString(value, 'dataBase64', HOST_WIRE_LIMITS.base64Characters)\n ? { type: 'workspaceFileRead', requestId: value.requestId, dataBase64: value.dataBase64 }\n : null;\n default:\n return null;\n }\n}\n\nfunction parseExportTargetGrant(value: unknown): ExportTargetGrantMessage | null | undefined {\n if (value === null) return null;\n if (\n !isRecord(value) ||\n !hasOnlyKeys(value, ['grantId', 'displayLabel']) ||\n !hasBoundedString(value, 'grantId', HOST_WIRE_LIMITS.identifierCharacters, 1) ||\n !hasBoundedString(value, 'displayLabel', HOST_WIRE_LIMITS.pathCharacters, 1)\n ) {\n return undefined;\n }\n return { grantId: value.grantId, displayLabel: value.displayLabel };\n}\n\nfunction parseDocumentConflictDetails(\n value: unknown,\n): DocumentConflictDetailsMessage | null | undefined {\n if (value === null) return null;\n if (\n !isRecord(value) ||\n !hasOnlyKeys(value, [\n 'localBaseDocumentVersion',\n 'externalDocumentVersion',\n 'localBytes',\n 'externalBytes',\n 'localEditedAt',\n 'externalObservedAt',\n 'externalIsDirty',\n ]) ||\n !hasNonNegativeInteger(value, 'localBaseDocumentVersion') ||\n !hasNonNegativeInteger(value, 'externalDocumentVersion') ||\n !hasNonNegativeInteger(value, 'localBytes') ||\n !isNullableNonNegativeInteger(value.externalBytes) ||\n !isNullableNonNegativeInteger(value.localEditedAt) ||\n !isNullableNonNegativeInteger(value.externalObservedAt) ||\n (value.externalIsDirty !== null && typeof value.externalIsDirty !== 'boolean')\n ) {\n return undefined;\n }\n return {\n localBaseDocumentVersion: value.localBaseDocumentVersion,\n externalDocumentVersion: value.externalDocumentVersion,\n localBytes: value.localBytes,\n externalBytes: value.externalBytes,\n localEditedAt: value.localEditedAt,\n externalObservedAt: value.externalObservedAt,\n externalIsDirty: value.externalIsDirty,\n };\n}\n\nfunction parseVscodeEditorSettings(value: unknown): VscodeEditorSettings | null {\n if (\n !isRecord(value) ||\n !hasOnlyKeys(value, ['autoSave', 'accentColor', 'writeCanvasSettings']) ||\n typeof value.autoSave !== 'boolean' ||\n !isDocBlocksAccentColor(value.accentColor)\n ) {\n return null;\n }\n const writeCanvasSettings = parseVscodeWriteCanvasSettings(value.writeCanvasSettings);\n return writeCanvasSettings\n ? { autoSave: value.autoSave, accentColor: value.accentColor, writeCanvasSettings }\n : null;\n}\n\nexport function isDocBlocksAccentColor(value: unknown): value is DocBlocksAccentColor {\n return DOCBLOCKS_ACCENT_COLORS.some((color) => color === value);\n}\n\nexport function isDocBlocksWriteCanvasTextSize(value: unknown): value is number {\n return numberInRange(\n value,\n DOCBLOCKS_WRITE_CANVAS_TEXT_SIZE_MIN,\n DOCBLOCKS_WRITE_CANVAS_TEXT_SIZE_MAX,\n );\n}\n\nexport function isDocBlocksWriteCanvasLineSpacing(value: unknown): value is number {\n return numberInRange(\n value,\n DOCBLOCKS_WRITE_CANVAS_LINE_SPACING_MIN,\n DOCBLOCKS_WRITE_CANVAS_LINE_SPACING_MAX,\n );\n}\n\nfunction parseVscodeWriteCanvasSettings(value: unknown): VscodeWriteCanvasSettings | null {\n return isRecord(value) &&\n hasOnlyKeys(value, ['textSize', 'lineSpacing']) &&\n isDocBlocksWriteCanvasTextSize(value.textSize) &&\n isDocBlocksWriteCanvasLineSpacing(value.lineSpacing)\n ? { textSize: value.textSize, lineSpacing: value.lineSpacing }\n : null;\n}\n\nfunction numberInRange(value: unknown, min: number, max: number): value is number {\n return typeof value === 'number' && Number.isFinite(value) && value >= min && value <= max;\n}\n\nfunction parseMediaEntries(value: unknown): MediaEntryMessage[] | null {\n if (!Array.isArray(value) || value.length > HOST_WIRE_LIMITS.arrayEntries) return null;\n const entries: MediaEntryMessage[] = [];\n for (const entry of value) {\n if (\n !isRecord(entry) ||\n !hasOnlyKeys(entry, ['name', 'mimeType', 'size']) ||\n !hasBoundedString(entry, 'name', HOST_WIRE_LIMITS.pathCharacters, 1) ||\n !hasMimeType(entry, 'mimeType') ||\n !hasNonNegativeInteger(entry, 'size') ||\n entry.size > HOST_WIRE_LIMITS.binaryBytes\n ) {\n return null;\n }\n entries.push({ name: entry.name, mimeType: entry.mimeType, size: entry.size });\n }\n return entries;\n}\n\nfunction isBoundedMediaDataUrl(value: unknown): value is string {\n if (!isBoundedString(value, HOST_WIRE_LIMITS.base64Characters + 512, 1)) return false;\n if (!value.startsWith('data:')) return false;\n const separator = value.indexOf(';base64,');\n return separator > 5 && separator <= HOST_WIRE_LIMITS.identifierCharacters;\n}\n\nfunction isDocumentSessionMessageStatus(value: unknown): value is DocumentSessionMessageStatus {\n return (\n value === 'idle' ||\n value === 'saved' ||\n value === 'dirty' ||\n value === 'saving' ||\n value === 'error' ||\n value === 'conflict' ||\n value === 'closed'\n );\n}\n\nfunction isSessionEnvelope(value: Record<string, unknown>): value is Record<string, unknown> & {\n sessionId: string;\n clientRevision: number;\n baseDocumentVersion: number;\n} {\n return (\n hasBoundedString(value, 'sessionId', HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n hasNonNegativeInteger(value, 'clientRevision') &&\n hasNonNegativeInteger(value, 'baseDocumentVersion')\n );\n}\n\nfunction hasRequestId(\n value: Record<string, unknown>,\n): value is Record<string, unknown> & { requestId: number } {\n return hasNonNegativeInteger(value, 'requestId') && value.requestId <= MAX_REQUEST_ID;\n}\n\nfunction hasBoundedString<K extends string>(\n value: Record<string, unknown>,\n key: K,\n maximumCharacters: number,\n minimumCharacters = 0,\n): value is Record<string, unknown> & Record<K, string> {\n return isBoundedString(value[key], maximumCharacters, minimumCharacters);\n}\n\nfunction hasNullableBoundedString<K extends string>(\n value: Record<string, unknown>,\n key: K,\n maximumCharacters: number,\n minimumCharacters = 0,\n): value is Record<string, unknown> & Record<K, string | null> {\n return value[key] === null || isBoundedString(value[key], maximumCharacters, minimumCharacters);\n}\n\nfunction hasNonNegativeInteger<K extends string>(\n value: Record<string, unknown>,\n key: K,\n): value is Record<string, unknown> & Record<K, number> {\n const entry = value[key];\n return typeof entry === 'number' && Number.isSafeInteger(entry) && entry >= 0;\n}\n\nfunction isNullableNonNegativeInteger(value: unknown): value is number | null {\n return value === null || (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction hasOnlyKeys(value: Record<string, unknown>, keys: readonly string[]): boolean {\n const expected = new Set(keys);\n const actual = Object.keys(value);\n return actual.length === expected.size && actual.every((key) => expected.has(key));\n}\n\nfunction hasSafeFilename<K extends string>(\n value: Record<string, unknown>,\n key: K,\n): value is Record<string, unknown> & Record<K, string> {\n return isSafeExportFilename(value[key]);\n}\n\nexport function isSafeExportFilename(value: unknown): value is string {\n return (\n isBoundedString(value, 255, 1) &&\n value.trim() === value &&\n !/[\\\\/:*?\"<>|]/.test(value) &&\n !hasControlCharacter(value) &&\n value !== '.' &&\n value !== '..' &&\n !value.endsWith('.') &&\n !value.endsWith(' ')\n );\n}\n\nfunction hasControlCharacter(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code <= 0x1f || code === 0x7f) return true;\n }\n return false;\n}\n\nfunction hasMimeType<K extends string>(\n value: Record<string, unknown>,\n key: K,\n): value is Record<string, unknown> & Record<K, string> {\n return isSafeMimeType(value[key]);\n}\n\nexport function isSafeMimeType(value: unknown): value is string {\n return (\n isBoundedString(value, HOST_WIRE_LIMITS.identifierCharacters, 1) &&\n /^[A-Za-z0-9!#$&^_.+-]+\\/[A-Za-z0-9!#$&^_.+-]+(?:\\s*;\\s*[A-Za-z0-9!#$&^_.+-]+=[^;\\r\\n]+)*$/.test(\n value,\n )\n );\n}\n"],"mappings":";;;;;;AAMA,IAAM,iBAAiB;AA6BhB,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,uCAAuC;AAC7C,IAAM,uCAAuC;AAC7C,IAAM,0CAA0C;AAChD,IAAM,0CAA0C;AAOhD,IAAM,uCAA4E;AAAA,EACvF,UAAU;AAAA,EACV,aAAa;AACf;AA4HO,SAAS,+BAA+B,OAAkD;AAC/F,MAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,SAAS,SAAU,QAAO;AAE/D,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,QAAQ,IAAI;AAAA,IAC5D,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,SAAS,CAAC,KAAK,OAAO,MAAM,YAAY,YACvE,EAAE,MAAM,eAAe,SAAS,MAAM,QAAQ,IAC9C;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,CAAC,KAC/C,uBAAuB,MAAM,WAAW,IACtC,EAAE,MAAM,kBAAkB,aAAa,MAAM,YAAY,IACzD;AAAA,IACN,KAAK,0BAA0B;AAC7B,UAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,UAAU,CAAC,EAAG,QAAO;AACtD,YAAM,WAAW,+BAA+B,MAAM,QAAQ;AAC9D,aAAO,WAAW,EAAE,MAAM,0BAA0B,SAAS,IAAI;AAAA,IACnE;AAAA,IACA,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,iBAAiB,OAAO,WAAW,iBAAiB,kBAAkB,KACtE,kBAAkB,KAAK,IACrB;AAAA,QACE,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,QACf,WAAW,MAAM;AAAA,QACjB,gBAAgB,MAAM;AAAA,QACtB,qBAAqB,MAAM;AAAA,MAC7B,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,kBAAkB,KAAK,KACvB,aAAa,KAAK,IAChB;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,WAAW,MAAM;AAAA,QACjB,gBAAgB,MAAM;AAAA,QACtB,qBAAqB,MAAM;AAAA,MAC7B,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,QAAQ,CAAC,KACvD,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,MAC5E,MAAM,WAAW,eAAe,MAAM,WAAW,kBAChD,EAAE,MAAM,mBAAmB,WAAW,MAAM,WAAW,QAAQ,MAAM,OAAO,IAC5E;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,KAAK,CAAC,KACpD,aAAa,KAAK,KAClB,iBAAiB,OAAO,OAAO,iBAAiB,gBAAgB,CAAC,IAC/D,EAAE,MAAM,gBAAgB,WAAW,MAAM,WAAW,KAAK,MAAM,IAAI,IACnE;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,WAAW,CAAC,KAAK,aAAa,KAAK,IAClE,EAAE,MAAM,aAAa,WAAW,MAAM,UAAU,IAChD;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,QAAQ,cAAc,UAAU,CAAC,KAC/E,aAAa,KAAK,KAClB,iBAAiB,OAAO,QAAQ,iBAAiB,gBAAgB,CAAC,KAClE,iBAAiB,OAAO,cAAc,iBAAiB,gBAAgB,KACvE,YAAY,OAAO,UAAU,IAC3B;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,MAAM,MAAM;AAAA,QACZ,YAAY,MAAM;AAAA,QAClB,UAAU,MAAM;AAAA,MAClB,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,KAAK,CAAC,KACpD,aAAa,KAAK,KAClB,iBAAiB,OAAO,OAAO,iBAAiB,gBAAgB,CAAC,IAC/D,EAAE,MAAM,eAAe,WAAW,MAAM,WAAW,KAAK,MAAM,IAAI,IAClE;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,aAAa,KAAK,KAClB,gBAAgB,OAAO,UAAU,KACjC,iBAAiB,OAAO,cAAc,iBAAiB,gBAAgB,KACvE,YAAY,OAAO,UAAU,KAC7B,yBAAyB,OAAO,WAAW,iBAAiB,sBAAsB,CAAC,IACjF;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,UAAU,MAAM;AAAA,QAChB,YAAY,MAAM;AAAA,QAClB,UAAU,MAAM;AAAA,QAChB,SAAS,MAAM;AAAA,MACjB,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,UAAU,CAAC,KACzD,aAAa,KAAK,KAClB,gBAAgB,OAAO,UAAU,IAC/B,EAAE,MAAM,uBAAuB,WAAW,MAAM,WAAW,UAAU,MAAM,SAAS,IACpF;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,YAAY,gBAAgB,CAAC,KAC3E,aAAa,KAAK,KAClB,gBAAgB,OAAO,UAAU,KACjC,yBAAyB,OAAO,kBAAkB,iBAAiB,sBAAsB,CAAC,IACxF;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,UAAU,MAAM;AAAA,QAChB,gBAAgB,MAAM;AAAA,MACxB,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,MAAM,CAAC,KACrD,aAAa,KAAK,KAClB,iBAAiB,OAAO,QAAQ,iBAAiB,gBAAgB,CAAC,IAChE,EAAE,MAAM,qBAAqB,WAAW,MAAM,WAAW,MAAM,MAAM,KAAK,IAC1E;AAAA,IACN;AACE,aAAO;AAAA,EACX;AACF;AAQO,SAAS,+BAA+B,OAAkD;AAC/F,MAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,SAAS,SAAU,QAAO;AAE/D,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,iBAAiB,OAAO,WAAW,iBAAiB,kBAAkB,KACtE,sBAAsB,OAAO,iBAAiB,KAC9C,iBAAiB,OAAO,YAAY,iBAAiB,gBAAgB,CAAC,KACtE,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,KAC7E,sBAAsB,OAAO,iBAAiB,KAC9C,sBAAsB,OAAO,4BAA4B,IACvD;AAAA,QACE,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,QACf,iBAAiB,MAAM;AAAA,QACvB,UAAU,MAAM;AAAA,QAChB,WAAW,MAAM;AAAA,QACjB,iBAAiB,MAAM;AAAA,QACvB,4BAA4B,MAAM;AAAA,MACpC,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,KAC7E,sBAAsB,OAAO,gBAAgB,KAC7C,sBAAsB,OAAO,iBAAiB,KAC9C,OAAO,MAAM,aAAa,aAC1B,yBAAyB,OAAO,WAAW,iBAAiB,iBAAiB,IAC3E;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,gBAAgB,MAAM;AAAA,QACtB,iBAAiB,MAAM;AAAA,QACvB,UAAU,MAAM;AAAA,QAChB,SAAS,MAAM;AAAA,MACjB,IACA;AAAA,IACN,KAAK,gBAAgB;AACnB,UACE,CAAC,YAAY,OAAO;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACD,CAAC,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,KAC9E,CAAC,+BAA+B,MAAM,MAAM,KAC5C,CAAC,sBAAsB,OAAO,UAAU,KACxC,CAAC,sBAAsB,OAAO,mBAAmB,KACjD,MAAM,oBAAoB,MAAM,YAChC,CAAC,sBAAsB,OAAO,4BAA4B,KAC1D,CAAC,sBAAsB,OAAO,iBAAiB,KAC/C,CAAC,yBAAyB,OAAO,SAAS,iBAAiB,iBAAiB,GAC5E;AACA,eAAO;AAAA,MACT;AACA,YAAM,WAAW,6BAA6B,MAAM,QAAQ;AAC5D,UACE,aAAa,UACZ,MAAM,WAAW,cAAc,aAAa,QAC5C,MAAM,WAAW,cAAc,aAAa,MAC7C;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,QACL,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,QAAQ,MAAM;AAAA,QACd,UAAU,MAAM;AAAA,QAChB,mBAAmB,MAAM;AAAA,QACzB,4BAA4B,MAAM;AAAA,QAClC,iBAAiB,MAAM;AAAA,QACvB,OAAO,MAAM;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK;AACH,aAAO,YAAY,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,KACC,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,KAC7E,aAAa,KAAK,KAClB,OAAO,MAAM,OAAO,aACpB,sBAAsB,OAAO,UAAU,KACvC,sBAAsB,OAAO,mBAAmB,KAChD,MAAM,qBAAqB,MAAM,YACjC,sBAAsB,OAAO,iBAAiB,KAC9C,yBAAyB,OAAO,WAAW,iBAAiB,iBAAiB,IAC3E;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM;AAAA,QACjB,WAAW,MAAM;AAAA,QACjB,IAAI,MAAM;AAAA,QACV,UAAU,MAAM;AAAA,QAChB,mBAAmB,MAAM;AAAA,QACzB,iBAAiB,MAAM;AAAA,QACvB,SAAS,MAAM;AAAA,MACjB,IACA;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,OAAO,CAAC,MACxC,MAAM,UAAU,WAAW,MAAM,UAAU,UAC1C,EAAE,MAAM,eAAe,OAAO,MAAM,MAAM,IAC1C;AAAA,IACN,KAAK,kBAAkB;AACrB,UAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,UAAU,CAAC,EAAG,QAAO;AACtD,YAAM,WAAW,0BAA0B,MAAM,QAAQ;AACzD,aAAO,WAAW,EAAE,MAAM,kBAAkB,SAAS,IAAI;AAAA,IAC3D;AAAA,IACA,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,KAAK,CAAC,KACpD,aAAa,KAAK,KAClB,sBAAsB,MAAM,GAAG,IAC7B,EAAE,MAAM,iBAAiB,WAAW,MAAM,WAAW,KAAK,MAAM,IAAI,IACpE;AAAA,IACN,KAAK,eAAe;AAClB,UAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,aAAa,SAAS,CAAC,KAAK,CAAC,aAAa,KAAK,GAAG;AACjF,eAAO;AAAA,MACT;AACA,YAAM,UAAU,kBAAkB,MAAM,OAAO;AAC/C,aAAO,UAAU,EAAE,MAAM,eAAe,WAAW,MAAM,WAAW,QAAQ,IAAI;AAAA,IAClF;AAAA,IACA,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,MAAM,CAAC,KACrD,aAAa,KAAK,KAClB,iBAAiB,OAAO,QAAQ,iBAAiB,gBAAgB,CAAC,IAChE,EAAE,MAAM,cAAc,WAAW,MAAM,WAAW,MAAM,MAAM,KAAK,IACnE;AAAA,IACN,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,WAAW,CAAC,KAAK,aAAa,KAAK,IAClE,EAAE,MAAM,gBAAgB,WAAW,MAAM,UAAU,IACnD;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,SAAS,CAAC,KACxD,aAAa,KAAK,KAClB,iBAAiB,OAAO,WAAW,iBAAiB,mBAAmB,CAAC,IACtE,EAAE,MAAM,MAAM,MAAM,WAAW,MAAM,WAAW,SAAS,MAAM,QAAQ,IACvE;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,sBAAsB;AACzB,UAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,aAAa,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,GAAG;AAChF,eAAO;AAAA,MACT;AACA,YAAM,SAAS,uBAAuB,MAAM,MAAM;AAClD,aAAO,WAAW,SAAY,EAAE,MAAM,MAAM,MAAM,WAAW,MAAM,WAAW,OAAO,IAAI;AAAA,IAC3F;AAAA,IACA,KAAK;AACH,aAAO,YAAY,OAAO,CAAC,QAAQ,aAAa,YAAY,CAAC,KAC3D,aAAa,KAAK,KAClB,yBAAyB,OAAO,cAAc,iBAAiB,gBAAgB,IAC7E,EAAE,MAAM,qBAAqB,WAAW,MAAM,WAAW,YAAY,MAAM,WAAW,IACtF;AAAA,IACN;AACE,aAAO;AAAA,EACX;AACF;AAEA,SAAS,uBAAuB,OAA6D;AAC3F,MAAI,UAAU,KAAM,QAAO;AAC3B,MACE,CAAC,SAAS,KAAK,KACf,CAAC,YAAY,OAAO,CAAC,WAAW,cAAc,CAAC,KAC/C,CAAC,iBAAiB,OAAO,WAAW,iBAAiB,sBAAsB,CAAC,KAC5E,CAAC,iBAAiB,OAAO,gBAAgB,iBAAiB,gBAAgB,CAAC,GAC3E;AACA,WAAO;AAAA,EACT;AACA,SAAO,EAAE,SAAS,MAAM,SAAS,cAAc,MAAM,aAAa;AACpE;AAEA,SAAS,6BACP,OACmD;AACnD,MAAI,UAAU,KAAM,QAAO;AAC3B,MACE,CAAC,SAAS,KAAK,KACf,CAAC,YAAY,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,KACD,CAAC,sBAAsB,OAAO,0BAA0B,KACxD,CAAC,sBAAsB,OAAO,yBAAyB,KACvD,CAAC,sBAAsB,OAAO,YAAY,KAC1C,CAAC,6BAA6B,MAAM,aAAa,KACjD,CAAC,6BAA6B,MAAM,aAAa,KACjD,CAAC,6BAA6B,MAAM,kBAAkB,KACrD,MAAM,oBAAoB,QAAQ,OAAO,MAAM,oBAAoB,WACpE;AACA,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,0BAA0B,MAAM;AAAA,IAChC,yBAAyB,MAAM;AAAA,IAC/B,YAAY,MAAM;AAAA,IAClB,eAAe,MAAM;AAAA,IACrB,eAAe,MAAM;AAAA,IACrB,oBAAoB,MAAM;AAAA,IAC1B,iBAAiB,MAAM;AAAA,EACzB;AACF;AAEA,SAAS,0BAA0B,OAA6C;AAC9E,MACE,CAAC,SAAS,KAAK,KACf,CAAC,YAAY,OAAO,CAAC,YAAY,eAAe,qBAAqB,CAAC,KACtE,OAAO,MAAM,aAAa,aAC1B,CAAC,uBAAuB,MAAM,WAAW,GACzC;AACA,WAAO;AAAA,EACT;AACA,QAAM,sBAAsB,+BAA+B,MAAM,mBAAmB;AACpF,SAAO,sBACH,EAAE,UAAU,MAAM,UAAU,aAAa,MAAM,aAAa,oBAAoB,IAChF;AACN;AAEO,SAAS,uBAAuB,OAA+C;AACpF,SAAO,wBAAwB,KAAK,CAAC,UAAU,UAAU,KAAK;AAChE;AAEO,SAAS,+BAA+B,OAAiC;AAC9E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,kCAAkC,OAAiC;AACjF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,+BAA+B,OAAkD;AACxF,SAAO,SAAS,KAAK,KACnB,YAAY,OAAO,CAAC,YAAY,aAAa,CAAC,KAC9C,+BAA+B,MAAM,QAAQ,KAC7C,kCAAkC,MAAM,WAAW,IACjD,EAAE,UAAU,MAAM,UAAU,aAAa,MAAM,YAAY,IAC3D;AACN;AAEA,SAAS,cAAc,OAAgB,KAAa,KAA8B;AAChF,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,SAAS,OAAO,SAAS;AACzF;AAEA,SAAS,kBAAkB,OAA4C;AACrE,MAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,iBAAiB,aAAc,QAAO;AAClF,QAAM,UAA+B,CAAC;AACtC,aAAW,SAAS,OAAO;AACzB,QACE,CAAC,SAAS,KAAK,KACf,CAAC,YAAY,OAAO,CAAC,QAAQ,YAAY,MAAM,CAAC,KAChD,CAAC,iBAAiB,OAAO,QAAQ,iBAAiB,gBAAgB,CAAC,KACnE,CAAC,YAAY,OAAO,UAAU,KAC9B,CAAC,sBAAsB,OAAO,MAAM,KACpC,MAAM,OAAO,iBAAiB,aAC9B;AACA,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,EAAE,MAAM,MAAM,MAAM,UAAU,MAAM,UAAU,MAAM,MAAM,KAAK,CAAC;AAAA,EAC/E;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,OAAiC;AAC9D,MAAI,CAAC,gBAAgB,OAAO,iBAAiB,mBAAmB,KAAK,CAAC,EAAG,QAAO;AAChF,MAAI,CAAC,MAAM,WAAW,OAAO,EAAG,QAAO;AACvC,QAAM,YAAY,MAAM,QAAQ,UAAU;AAC1C,SAAO,YAAY,KAAK,aAAa,iBAAiB;AACxD;AAEA,SAAS,+BAA+B,OAAuD;AAC7F,SACE,UAAU,UACV,UAAU,WACV,UAAU,WACV,UAAU,YACV,UAAU,WACV,UAAU,cACV,UAAU;AAEd;AAEA,SAAS,kBAAkB,OAIzB;AACA,SACE,iBAAiB,OAAO,aAAa,iBAAiB,sBAAsB,CAAC,KAC7E,sBAAsB,OAAO,gBAAgB,KAC7C,sBAAsB,OAAO,qBAAqB;AAEtD;AAEA,SAAS,aACP,OAC0D;AAC1D,SAAO,sBAAsB,OAAO,WAAW,KAAK,MAAM,aAAa;AACzE;AAEA,SAAS,iBACP,OACA,KACA,mBACA,oBAAoB,GACkC;AACtD,SAAO,gBAAgB,MAAM,GAAG,GAAG,mBAAmB,iBAAiB;AACzE;AAEA,SAAS,yBACP,OACA,KACA,mBACA,oBAAoB,GACyC;AAC7D,SAAO,MAAM,GAAG,MAAM,QAAQ,gBAAgB,MAAM,GAAG,GAAG,mBAAmB,iBAAiB;AAChG;AAEA,SAAS,sBACP,OACA,KACsD;AACtD,QAAM,QAAQ,MAAM,GAAG;AACvB,SAAO,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK,KAAK,SAAS;AAC9E;AAEA,SAAS,6BAA6B,OAAwC;AAC5E,SAAO,UAAU,QAAS,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK,KAAK,SAAS;AACjG;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,YAAY,OAAgC,MAAkC;AACrF,QAAM,WAAW,IAAI,IAAI,IAAI;AAC7B,QAAM,SAAS,OAAO,KAAK,KAAK;AAChC,SAAO,OAAO,WAAW,SAAS,QAAQ,OAAO,MAAM,CAAC,QAAQ,SAAS,IAAI,GAAG,CAAC;AACnF;AAEA,SAAS,gBACP,OACA,KACsD;AACtD,SAAO,qBAAqB,MAAM,GAAG,CAAC;AACxC;AAEO,SAAS,qBAAqB,OAAiC;AACpE,SACE,gBAAgB,OAAO,KAAK,CAAC,KAC7B,MAAM,KAAK,MAAM,SACjB,CAAC,eAAe,KAAK,KAAK,KAC1B,CAAC,oBAAoB,KAAK,KAC1B,UAAU,OACV,UAAU,QACV,CAAC,MAAM,SAAS,GAAG,KACnB,CAAC,MAAM,SAAS,GAAG;AAEvB;AAEA,SAAS,oBAAoB,OAAwB;AACnD,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AACpD,UAAM,OAAO,MAAM,WAAW,KAAK;AACnC,QAAI,QAAQ,MAAQ,SAAS,IAAM,QAAO;AAAA,EAC5C;AACA,SAAO;AACT;AAEA,SAAS,YACP,OACA,KACsD;AACtD,SAAO,eAAe,MAAM,GAAG,CAAC;AAClC;AAEO,SAAS,eAAe,OAAiC;AAC9D,SACE,gBAAgB,OAAO,iBAAiB,sBAAsB,CAAC,KAC/D,4FAA4F;AAAA,IAC1F;AAAA,EACF;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}