@opengeni/contracts 0.39.0 → 0.44.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atlassian.d.ts +278 -0
- package/dist/atlassian.js +55 -0
- package/dist/atlassian.js.map +1 -0
- package/dist/chunk-52SGB2QO.js +688 -0
- package/dist/chunk-52SGB2QO.js.map +1 -0
- package/dist/{chunk-7JZMI22I.js → chunk-5UDNP7AO.js} +34 -2
- package/dist/chunk-5UDNP7AO.js.map +1 -0
- package/dist/chunk-BVGIYW7D.js +11 -0
- package/dist/chunk-BVGIYW7D.js.map +1 -0
- package/dist/chunk-CADSX6UN.js +1145 -0
- package/dist/chunk-CADSX6UN.js.map +1 -0
- package/dist/chunk-D2HKF2EF.js +1460 -0
- package/dist/chunk-D2HKF2EF.js.map +1 -0
- package/dist/chunk-FJBG5E4O.js +194 -0
- package/dist/chunk-FJBG5E4O.js.map +1 -0
- package/dist/chunk-H5BVCZKF.js +382 -0
- package/dist/chunk-H5BVCZKF.js.map +1 -0
- package/dist/chunk-LSB7GRLG.js +779 -0
- package/dist/chunk-LSB7GRLG.js.map +1 -0
- package/dist/chunk-MYBZRDTY.js +340 -0
- package/dist/chunk-MYBZRDTY.js.map +1 -0
- package/dist/chunk-RIY7GYQS.js +1204 -0
- package/dist/chunk-RIY7GYQS.js.map +1 -0
- package/dist/chunk-TZ6YEYN4.js +386 -0
- package/dist/chunk-TZ6YEYN4.js.map +1 -0
- package/dist/chunk-VA22KRHS.js +15177 -0
- package/dist/chunk-VA22KRHS.js.map +1 -0
- package/dist/chunk-Y3MLSLB4.js +392 -0
- package/dist/chunk-Y3MLSLB4.js.map +1 -0
- package/dist/chunk-YRKRZ6OF.js +134 -0
- package/dist/chunk-YRKRZ6OF.js.map +1 -0
- package/dist/company-profile.d.ts +629 -0
- package/dist/document-artifact-commands.d.ts +282 -0
- package/dist/document-artifact-commands.js +54 -0
- package/dist/document-artifact-commands.js.map +1 -0
- package/dist/document-artifact-query.d.ts +2 -0
- package/dist/document-artifact-query.js +54 -0
- package/dist/document-artifact-query.js.map +1 -0
- package/dist/editable-artifact-binary.d.ts +56 -0
- package/dist/editable-artifact-causal-frontier.d.ts +12 -0
- package/dist/editable-artifact-causal-frontier.js +18 -0
- package/dist/editable-artifact-causal-frontier.js.map +1 -0
- package/dist/editable-artifact-codec-registry.d.ts +48 -0
- package/dist/editable-artifact-codec-registry.js +20 -0
- package/dist/editable-artifact-codec-registry.js.map +1 -0
- package/dist/editable-artifact-committed-transaction.d.ts +35 -0
- package/dist/editable-artifact-committed-transaction.js +19 -0
- package/dist/editable-artifact-committed-transaction.js.map +1 -0
- package/dist/editable-artifact-live.d.ts +276 -0
- package/dist/editable-artifact-live.js +907 -0
- package/dist/editable-artifact-live.js.map +1 -0
- package/dist/editable-artifact-serialized-commit.d.ts +53 -0
- package/dist/editable-artifact-serialized-commit.js +26 -0
- package/dist/editable-artifact-serialized-commit.js.map +1 -0
- package/dist/editable-artifact-versions.d.ts +6 -0
- package/dist/editable-artifact-versions.js +11 -0
- package/dist/editable-artifact-versions.js.map +1 -0
- package/dist/editable-artifacts.d.ts +46 -0
- package/dist/editable-artifacts.js +236 -0
- package/dist/editable-artifacts.js.map +1 -0
- package/dist/event-preview.d.ts +7 -7
- package/dist/google-drive.d.ts +114 -2
- package/dist/google-drive.js +70 -14
- package/dist/google-drive.js.map +1 -1
- package/dist/image-generation.d.ts +70 -0
- package/dist/index.d.ts +5180 -329
- package/dist/index.js +1173 -40
- package/dist/interaction.d.ts +6895 -0
- package/dist/mcp-receipts.d.ts +96 -0
- package/dist/memory-slack-delivery.d.ts +397 -0
- package/dist/presentation-artifact-commands.d.ts +349 -0
- package/dist/presentation-artifact-commands.js +66 -0
- package/dist/presentation-artifact-commands.js.map +1 -0
- package/dist/presentation-artifact-query.d.ts +2 -0
- package/dist/presentation-artifact-query.js +66 -0
- package/dist/presentation-artifact-query.js.map +1 -0
- package/dist/retained-output.d.ts +83 -6
- package/dist/sandbox-snapshots.d.ts +9 -0
- package/dist/scoped-knowledge.d.ts +14 -13
- package/dist/slack-bot-scopes.d.ts +4 -0
- package/dist/slack-bot-scopes.js +3 -1
- package/dist/spreadsheet-artifact-commands.d.ts +101 -0
- package/dist/spreadsheet-artifact-commands.js +27 -0
- package/dist/spreadsheet-artifact-commands.js.map +1 -0
- package/dist/spreadsheet-artifact-date.d.ts +4 -0
- package/dist/spreadsheet-artifact-query.d.ts +120 -0
- package/dist/spreadsheet-artifact-query.js +48 -0
- package/dist/spreadsheet-artifact-query.js.map +1 -0
- package/dist/tool-catalog.d.ts +576 -0
- package/dist/video-generation.d.ts +532 -0
- package/dist/video-generation.js +51 -0
- package/dist/video-generation.js.map +1 -0
- package/dist/workspace-learning-policy.d.ts +208 -0
- package/package.json +61 -1
- package/src/atlassian.ts +160 -0
- package/src/company-profile.ts +306 -0
- package/src/document-artifact-commands.ts +1709 -0
- package/src/document-artifact-query.ts +2 -0
- package/src/editable-artifact-binary.ts +396 -0
- package/src/editable-artifact-causal-frontier.ts +154 -0
- package/src/editable-artifact-codec-registry.ts +261 -0
- package/src/editable-artifact-committed-transaction.ts +478 -0
- package/src/editable-artifact-live.ts +1379 -0
- package/src/editable-artifact-serialized-commit.ts +494 -0
- package/src/editable-artifact-versions.ts +8 -0
- package/src/editable-artifacts.ts +473 -0
- package/src/event-preview.ts +6 -6
- package/src/google-drive.ts +68 -15
- package/src/image-generation.ts +106 -0
- package/src/index.ts +2535 -282
- package/src/interaction.ts +2292 -0
- package/src/mcp-receipts.ts +281 -0
- package/src/memory-slack-delivery.ts +183 -0
- package/src/presentation-artifact-commands.ts +2035 -0
- package/src/presentation-artifact-query.ts +2 -0
- package/src/retained-output.ts +248 -8
- package/src/sandbox-snapshots.ts +28 -1
- package/src/scoped-knowledge.ts +18 -4
- package/src/slack-bot-scopes.ts +34 -1
- package/src/spreadsheet-artifact-commands.ts +999 -0
- package/src/spreadsheet-artifact-date.ts +21 -0
- package/src/spreadsheet-artifact-query.ts +1411 -0
- package/src/tool-catalog.ts +334 -0
- package/src/video-generation.ts +394 -0
- package/src/workspace-learning-policy.ts +233 -0
- package/dist/chunk-7JZMI22I.js.map +0 -1
- package/dist/chunk-PCTCJEAF.js +0 -10799
- package/dist/chunk-PCTCJEAF.js.map +0 -1
- package/dist/secret-redaction.d.ts +0 -40
- package/src/secret-redaction.ts +0 -364
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/presentation-artifact-commands.ts"],"sourcesContent":["/** Canonical identity-free OGAPC001/OGAPQ001/OGAPV001 presentation ABI. */\n\nimport {\n ArtifactBinaryReader,\n ArtifactBinaryWriter,\n decodeCountedEnvelope,\n encodeCountedEnvelope,\n equalBytes,\n fnv1a64,\n strictUtf8,\n} from \"./editable-artifact-binary\";\n\nexport const PRESENTATION_ARTIFACT_COMMAND_VERSION = 1 as const;\nexport const PRESENTATION_ARTIFACT_QUERY_VERSION = 1 as const;\nexport const PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION = 1 as const;\nexport const PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES = 4 * 1024 * 1024;\nexport const PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS = 10_000;\nexport const PRESENTATION_ARTIFACT_QUERY_MAX_BYTES = 96;\nexport const PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES = 8 * 1024 * 1024;\nexport const PRESENTATION_ARTIFACT_QUERY_MAX_NODES = 16_384;\nexport const PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES = 10_000;\nexport const PRESENTATION_ARTIFACT_QUERY_MAX_TEXT_BYTES = 4 * 1024 * 1024;\nexport const PRESENTATION_ARTIFACT_MAX_COORDINATE = 9_525_000_000_000;\nexport const PRESENTATION_ARTIFACT_MAX_NAME_BYTES = 1_024;\nexport const PRESENTATION_ARTIFACT_MAX_TEXT_BYTES = 16 * 1024 * 1024;\nexport const PRESENTATION_ARTIFACT_MAX_TEXT_PARAGRAPHS = 100_000;\nexport const PRESENTATION_ARTIFACT_MAX_TEXT_RUNS = 250_000;\nexport const PRESENTATION_ARTIFACT_MAX_TABLE_ROWS = 10_000;\nexport const PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS = 1_024;\nexport const PRESENTATION_ARTIFACT_MAX_TABLE_CELLS = 1_000_000;\nexport const PRESENTATION_ARTIFACT_MAX_CHART_SERIES = 16_384;\nexport const PRESENTATION_ARTIFACT_MAX_CHART_POINTS = 1_000_000;\nexport const PRESENTATION_ARTIFACT_MAX_GROUP_CHILDREN = 100_000;\n\nconst COMMAND_MAGIC = \"OGAPC001\";\nconst QUERY_MAGIC = strictUtf8(\"OGAPQ001\", \"presentation query magic\");\nconst RESPONSE_MAGIC = strictUtf8(\"OGAPV001\", \"presentation response magic\");\nconst QUERY_HEADER_BYTES = 28;\nconst RESPONSE_HEADER_BYTES = 32;\nconst CHECKSUM_BYTES = 8;\n\nexport type PresentationArtifactStableId = string;\nexport type PresentationArtifactFill =\n | Readonly<{ kind: \"none\" }>\n | Readonly<{ kind: \"solid\"; color: number }>;\nexport type PresentationArtifactLine = Readonly<{\n fill: PresentationArtifactFill;\n width: number;\n dash: \"solid\" | \"dash\" | \"dot\";\n}>;\nexport type PresentationArtifactRect = Readonly<{\n x: number;\n y: number;\n width: number;\n height: number;\n}>;\nexport type PresentationArtifactTransform = Readonly<{\n rotation: number;\n flipHorizontal: boolean;\n flipVertical: boolean;\n}>;\nexport type PresentationArtifactOwner = Readonly<{\n kind: \"master\" | \"layout\" | \"slide\";\n id: PresentationArtifactStableId;\n}>;\nexport type PresentationArtifactTextStyle = Readonly<{\n fontFamily: string;\n fontSizeCentipoints: number;\n color: number;\n bold: boolean;\n italic: boolean;\n underline: boolean;\n language: string | null;\n}>;\nexport type PresentationArtifactTextRun = Readonly<{\n text: string;\n style: PresentationArtifactTextStyle;\n}>;\nexport type PresentationArtifactTextParagraph = Readonly<{\n runs: readonly PresentationArtifactTextRun[];\n alignment: \"left\" | \"center\" | \"right\" | \"justify\";\n}>;\nexport type PresentationArtifactRichText = Readonly<{\n paragraphs: readonly PresentationArtifactTextParagraph[];\n verticalAlignment: \"top\" | \"middle\" | \"bottom\";\n}>;\nexport type PresentationArtifactConnectorEndpoint = Readonly<{\n nodeId: PresentationArtifactStableId | null;\n x: number;\n y: number;\n}>;\nexport type PresentationArtifactChartSeries = Readonly<{\n name: string;\n categories: readonly string[];\n values: readonly number[];\n xValues: readonly number[];\n bubbleSizes: readonly number[];\n}>;\nexport type PresentationArtifactTableCell = Readonly<{\n text: PresentationArtifactRichText;\n fill: PresentationArtifactFill;\n rowSpan: number;\n columnSpan: number;\n}>;\nexport type PresentationArtifactNodeKind =\n | Readonly<{\n kind: \"shape\";\n geometry:\n | \"text-box\"\n | \"rectangle\"\n | \"rounded-rectangle\"\n | \"ellipse\"\n | \"triangle\"\n | \"right-arrow\"\n | \"line\";\n fill: PresentationArtifactFill;\n line: PresentationArtifactLine;\n text: PresentationArtifactRichText | null;\n placeholder: Readonly<{ kind: string; index: number | null }> | null;\n }>\n | Readonly<{\n kind: \"group\";\n childOffsetX: number;\n childOffsetY: number;\n childExtentWidth: number;\n childExtentHeight: number;\n children: readonly PresentationArtifactStableId[];\n }>\n | Readonly<{\n kind: \"connector\";\n connectorKind: \"straight\" | \"elbow\" | \"curved\";\n start: PresentationArtifactConnectorEndpoint;\n end: PresentationArtifactConnectorEndpoint;\n line: PresentationArtifactLine;\n }>\n | Readonly<{\n kind: \"chart\";\n chartType: \"bar\" | \"line\" | \"area\" | \"pie\" | \"doughnut\" | \"scatter\" | \"bubble\" | \"radar\";\n title: PresentationArtifactRichText;\n series: readonly PresentationArtifactChartSeries[];\n hasLegend: boolean;\n }>\n | Readonly<{\n kind: \"table\";\n rows: readonly (readonly (PresentationArtifactTableCell | null)[])[];\n columnWidths: readonly number[];\n rowHeights: readonly number[];\n line: PresentationArtifactLine;\n }>\n | Readonly<{\n kind: \"media\";\n digest: Uint8Array;\n contentType: string;\n altText: string;\n fit: \"contain\" | \"cover\";\n intrinsicWidth: number;\n intrinsicHeight: number;\n }>;\n\nexport type PresentationArtifactNewNode = Readonly<{\n id: PresentationArtifactStableId;\n name: string;\n bounds: PresentationArtifactRect;\n transform: PresentationArtifactTransform;\n content: PresentationArtifactNodeKind;\n}>;\n\nexport type PresentationArtifactCommand =\n | Readonly<{\n kind: \"master.create\";\n id: PresentationArtifactStableId;\n name: string;\n background: PresentationArtifactFill;\n }>\n | Readonly<{\n kind: \"layout.create\";\n id: PresentationArtifactStableId;\n name: string;\n masterId: PresentationArtifactStableId | null;\n background: PresentationArtifactFill;\n }>\n | Readonly<{\n kind: \"slide.create\";\n id: PresentationArtifactStableId;\n index: number;\n title: string;\n layoutId: PresentationArtifactStableId | null;\n background: PresentationArtifactFill;\n }>\n | Readonly<{ kind: \"master.delete\"; id: PresentationArtifactStableId }>\n | Readonly<{ kind: \"layout.delete\"; id: PresentationArtifactStableId }>\n | Readonly<{ kind: \"slide.delete\"; id: PresentationArtifactStableId }>\n | Readonly<{ kind: \"slide.title.set\"; id: PresentationArtifactStableId; title: string }>\n | Readonly<{\n kind: \"slide.layout.set\";\n id: PresentationArtifactStableId;\n layoutId: PresentationArtifactStableId | null;\n }>\n | Readonly<{\n kind: \"slide.notes.set\";\n id: PresentationArtifactStableId;\n notes: PresentationArtifactRichText;\n }>\n | Readonly<{\n kind: \"node.insert\";\n owner: PresentationArtifactOwner;\n parentId: PresentationArtifactStableId | null;\n index: number;\n node: PresentationArtifactNewNode;\n }>\n | Readonly<{ kind: \"node.delete\"; id: PresentationArtifactStableId }>\n | Readonly<{\n kind: \"node.move\";\n id: PresentationArtifactStableId;\n newParentId: PresentationArtifactStableId | null;\n index: number;\n }>\n | Readonly<{\n kind: \"node.bounds.set\";\n id: PresentationArtifactStableId;\n bounds: PresentationArtifactRect;\n }>\n | Readonly<{\n kind: \"node.transform.set\";\n id: PresentationArtifactStableId;\n transform: PresentationArtifactTransform;\n }>\n | Readonly<{\n kind: \"node.content.set\";\n id: PresentationArtifactStableId;\n content: PresentationArtifactNodeKind;\n }>\n | Readonly<{\n kind: \"presentation.size.set\";\n size: Readonly<{ width: number; height: number }>;\n }>;\n\nexport type PresentationArtifactCommandBatch = Readonly<{\n version: typeof PRESENTATION_ARTIFACT_COMMAND_VERSION;\n commands: readonly PresentationArtifactCommand[];\n}>;\n\nexport function encodePresentationArtifactCommandBatch(\n input: PresentationArtifactCommandBatch,\n): Uint8Array {\n if (input?.version !== 1 || !Array.isArray(input.commands))\n throw new TypeError(\"presentation command batch is invalid\");\n if (input.commands.length > PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS)\n throw new RangeError(\"presentation command count exceeds its limit\");\n const payload = new ArtifactBinaryWriter(PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES - 32);\n for (const command of input.commands) writeCommand(payload, command);\n return encodeCountedEnvelope(\n COMMAND_MAGIC,\n 1,\n input.commands.length,\n payload.finish(),\n PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,\n );\n}\n\nexport function decodePresentationArtifactCommandBatch(\n bytes: Uint8Array,\n): PresentationArtifactCommandBatch {\n const envelope = decodeCountedEnvelope(\n bytes,\n COMMAND_MAGIC,\n 1,\n PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,\n PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,\n );\n const reader = new ArtifactBinaryReader(envelope.payload);\n const commands: PresentationArtifactCommand[] = [];\n for (let index = 0; index < envelope.count; index += 1) commands.push(readCommand(reader));\n reader.done(\"presentation command payload contains trailing bytes\");\n return Object.freeze({ version: 1, commands: Object.freeze(commands) });\n}\n\nexport function assertCanonicalPresentationArtifactCommandBytes(bytes: Uint8Array): void {\n if (\n !equalBytes(\n bytes,\n encodePresentationArtifactCommandBatch(decodePresentationArtifactCommandBatch(bytes)),\n )\n ) {\n throw new TypeError(\"presentation command batch is not canonically encoded\");\n }\n}\n\nfunction writeCommand(writer: ArtifactBinaryWriter, command: PresentationArtifactCommand): void {\n switch (command.kind) {\n case \"master.create\":\n writer.u8(0);\n writeId(writer, command.id);\n writeString(writer, command.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeFill(writer, command.background);\n return;\n case \"layout.create\":\n writer.u8(1);\n writeId(writer, command.id);\n writeString(writer, command.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeOptionalId(writer, command.masterId);\n writeFill(writer, command.background);\n return;\n case \"slide.create\":\n writer.u8(2);\n writeId(writer, command.id);\n writer.u32(command.index);\n writeString(writer, command.title, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeOptionalId(writer, command.layoutId);\n writeFill(writer, command.background);\n return;\n case \"master.delete\":\n writer.u8(3);\n writeId(writer, command.id);\n return;\n case \"layout.delete\":\n writer.u8(4);\n writeId(writer, command.id);\n return;\n case \"slide.delete\":\n writer.u8(5);\n writeId(writer, command.id);\n return;\n case \"slide.title.set\":\n writer.u8(6);\n writeId(writer, command.id);\n writeString(writer, command.title, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n return;\n case \"slide.layout.set\":\n writer.u8(7);\n writeId(writer, command.id);\n writeOptionalId(writer, command.layoutId);\n return;\n case \"slide.notes.set\":\n writer.u8(8);\n writeId(writer, command.id);\n writeRichText(writer, command.notes);\n return;\n case \"node.insert\":\n writer.u8(9);\n writeOwner(writer, command.owner);\n writeOptionalId(writer, command.parentId);\n writer.u32(command.index);\n writeNewNode(writer, command.node);\n return;\n case \"node.delete\":\n writer.u8(10);\n writeId(writer, command.id);\n return;\n case \"node.move\":\n writer.u8(11);\n writeId(writer, command.id);\n writeOptionalId(writer, command.newParentId);\n writer.u32(command.index);\n return;\n case \"node.bounds.set\":\n writer.u8(12);\n writeId(writer, command.id);\n writeRect(writer, command.bounds);\n return;\n case \"node.transform.set\":\n writer.u8(13);\n writeId(writer, command.id);\n writeTransform(writer, command.transform);\n return;\n case \"node.content.set\":\n writer.u8(14);\n writeId(writer, command.id);\n writeNodeKind(writer, command.content);\n return;\n case \"presentation.size.set\":\n writer.u8(15);\n writeSlideSize(writer, command.size);\n return;\n default:\n throw new TypeError(\"invalid presentation command kind\");\n }\n}\n\nfunction readCommand(reader: ArtifactBinaryReader): PresentationArtifactCommand {\n switch (reader.u8()) {\n case 0:\n return Object.freeze({\n kind: \"master.create\",\n id: readId(reader),\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n background: readFill(reader),\n });\n case 1:\n return Object.freeze({\n kind: \"layout.create\",\n id: readId(reader),\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n masterId: readOptionalId(reader),\n background: readFill(reader),\n });\n case 2:\n return Object.freeze({\n kind: \"slide.create\",\n id: readId(reader),\n index: reader.u32(),\n title: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n layoutId: readOptionalId(reader),\n background: readFill(reader),\n });\n case 3:\n return Object.freeze({ kind: \"master.delete\", id: readId(reader) });\n case 4:\n return Object.freeze({ kind: \"layout.delete\", id: readId(reader) });\n case 5:\n return Object.freeze({ kind: \"slide.delete\", id: readId(reader) });\n case 6:\n return Object.freeze({\n kind: \"slide.title.set\",\n id: readId(reader),\n title: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n });\n case 7:\n return Object.freeze({\n kind: \"slide.layout.set\",\n id: readId(reader),\n layoutId: readOptionalId(reader),\n });\n case 8:\n return Object.freeze({\n kind: \"slide.notes.set\",\n id: readId(reader),\n notes: readRichText(reader),\n });\n case 9:\n return Object.freeze({\n kind: \"node.insert\",\n owner: readOwner(reader),\n parentId: readOptionalId(reader),\n index: reader.u32(),\n node: readNewNode(reader),\n });\n case 10:\n return Object.freeze({ kind: \"node.delete\", id: readId(reader) });\n case 11:\n return Object.freeze({\n kind: \"node.move\",\n id: readId(reader),\n newParentId: readOptionalId(reader),\n index: reader.u32(),\n });\n case 12:\n return Object.freeze({\n kind: \"node.bounds.set\",\n id: readId(reader),\n bounds: readRect(reader),\n });\n case 13:\n return Object.freeze({\n kind: \"node.transform.set\",\n id: readId(reader),\n transform: readTransform(reader),\n });\n case 14:\n return Object.freeze({\n kind: \"node.content.set\",\n id: readId(reader),\n content: readNodeKind(reader),\n });\n case 15:\n return Object.freeze({\n kind: \"presentation.size.set\",\n size: readSlideSize(reader),\n });\n default:\n throw new TypeError(\"invalid presentation command tag\");\n }\n}\n\nfunction writeId(writer: ArtifactBinaryWriter, id: string): void {\n writer.stableId(id, \"presentation id\");\n}\nfunction readId(reader: ArtifactBinaryReader): string {\n return reader.stableId(\"presentation id\");\n}\nfunction writeOptionalId(writer: ArtifactBinaryWriter, id: string | null): void {\n writer.bool(id !== null);\n if (id !== null) writeId(writer, id);\n}\nfunction readOptionalId(reader: ArtifactBinaryReader): string | null {\n return reader.bool(\"optional presentation id\") ? readId(reader) : null;\n}\n\nfunction writeString(writer: ArtifactBinaryWriter, value: string, maximum: number): void {\n writer.string(value, maximum, \"presentation string\");\n}\nfunction readString(reader: ArtifactBinaryReader, maximum: number): string {\n return reader.string(maximum, \"presentation string\");\n}\n\nfunction writeOwner(writer: ArtifactBinaryWriter, owner: PresentationArtifactOwner): void {\n writer.u8(\n owner.kind === \"master\"\n ? 0\n : owner.kind === \"layout\"\n ? 1\n : owner.kind === \"slide\"\n ? 2\n : bad(\"presentation owner\"),\n );\n writeId(writer, owner.id);\n}\nfunction readOwner(reader: ArtifactBinaryReader): PresentationArtifactOwner {\n const tag = reader.u8();\n const id = readId(reader);\n return Object.freeze({\n kind:\n tag === 0 ? \"master\" : tag === 1 ? \"layout\" : tag === 2 ? \"slide\" : bad(\"presentation owner\"),\n id,\n });\n}\n\nfunction writeFill(writer: ArtifactBinaryWriter, fill: PresentationArtifactFill): void {\n if (fill.kind === \"none\") writer.u8(0);\n else if (fill.kind === \"solid\") {\n writer.u8(1);\n writer.u32(fill.color);\n } else bad(\"presentation fill\");\n}\nfunction readFill(reader: ArtifactBinaryReader): PresentationArtifactFill {\n const tag = reader.u8();\n if (tag === 0) return Object.freeze({ kind: \"none\" });\n if (tag === 1) return Object.freeze({ kind: \"solid\", color: reader.u32() });\n return bad(\"presentation fill\");\n}\n\nfunction writeLine(writer: ArtifactBinaryWriter, line: PresentationArtifactLine): void {\n writeFill(writer, line.fill);\n writer.i64(coordinate(line.width, \"presentation line width\"));\n writer.u8(\n line.dash === \"solid\"\n ? 0\n : line.dash === \"dash\"\n ? 1\n : line.dash === \"dot\"\n ? 2\n : bad(\"presentation line dash\"),\n );\n}\nfunction readLine(reader: ArtifactBinaryReader): PresentationArtifactLine {\n const fill = readFill(reader);\n const width = readCoordinate(reader, \"presentation line width\");\n const tag = reader.u8();\n return Object.freeze({\n fill,\n width,\n dash:\n tag === 0 ? \"solid\" : tag === 1 ? \"dash\" : tag === 2 ? \"dot\" : bad(\"presentation line dash\"),\n });\n}\n\nfunction writeRect(writer: ArtifactBinaryWriter, rect: PresentationArtifactRect): void {\n const x = coordinate(rect.x, \"presentation x\");\n const y = coordinate(rect.y, \"presentation y\");\n const width = coordinate(rect.width, \"presentation width\");\n const height = coordinate(rect.height, \"presentation height\");\n if (\n width <= 0 ||\n height <= 0 ||\n Math.abs(x + width) > PRESENTATION_ARTIFACT_MAX_COORDINATE ||\n Math.abs(y + height) > PRESENTATION_ARTIFACT_MAX_COORDINATE\n )\n bad(\"presentation rectangle\");\n writer.i64(x);\n writer.i64(y);\n writer.i64(width);\n writer.i64(height);\n}\nfunction writeSlideSize(\n writer: ArtifactBinaryWriter,\n size: Readonly<{ width: number; height: number }>,\n): void {\n const width = coordinate(size.width, \"presentation slide width\");\n const height = coordinate(size.height, \"presentation slide height\");\n if (width <= 0 || height <= 0) throw new TypeError(\"invalid presentation slide size\");\n writer.i64(width);\n writer.i64(height);\n}\nfunction readSlideSize(reader: ArtifactBinaryReader): Readonly<{ width: number; height: number }> {\n const size = Object.freeze({\n width: readCoordinate(reader, \"presentation slide width\"),\n height: readCoordinate(reader, \"presentation slide height\"),\n });\n if (size.width <= 0 || size.height <= 0) throw new TypeError(\"invalid presentation slide size\");\n return size;\n}\nfunction readRect(reader: ArtifactBinaryReader): PresentationArtifactRect {\n const rect = Object.freeze({\n x: readCoordinate(reader, \"presentation x\"),\n y: readCoordinate(reader, \"presentation y\"),\n width: readCoordinate(reader, \"presentation width\"),\n height: readCoordinate(reader, \"presentation height\"),\n });\n if (\n rect.width <= 0 ||\n rect.height <= 0 ||\n Math.abs(rect.x + rect.width) > PRESENTATION_ARTIFACT_MAX_COORDINATE ||\n Math.abs(rect.y + rect.height) > PRESENTATION_ARTIFACT_MAX_COORDINATE\n )\n bad(\"presentation rectangle\");\n return rect;\n}\n\nfunction writeTransform(\n writer: ArtifactBinaryWriter,\n transform: PresentationArtifactTransform,\n): void {\n if (\n !Number.isInteger(transform.rotation) ||\n transform.rotation < -21_600_000 ||\n transform.rotation > 21_600_000\n )\n bad(\"presentation rotation\");\n writer.i32(transform.rotation);\n writer.bool(transform.flipHorizontal);\n writer.bool(transform.flipVertical);\n}\nfunction readTransform(reader: ArtifactBinaryReader): PresentationArtifactTransform {\n const rotation = reader.i32();\n if (rotation < -21_600_000 || rotation > 21_600_000) bad(\"presentation rotation\");\n return Object.freeze({\n rotation,\n flipHorizontal: reader.bool(\"presentation boolean\"),\n flipVertical: reader.bool(\"presentation boolean\"),\n });\n}\n\nfunction writeRichText(writer: ArtifactBinaryWriter, text: PresentationArtifactRichText): void {\n writer.u8(\n text.verticalAlignment === \"top\"\n ? 0\n : text.verticalAlignment === \"middle\"\n ? 1\n : text.verticalAlignment === \"bottom\"\n ? 2\n : bad(\"vertical alignment\"),\n );\n writer.count(\n text.paragraphs.length,\n PRESENTATION_ARTIFACT_MAX_TEXT_PARAGRAPHS,\n \"presentation paragraphs\",\n );\n let totalRuns = 0;\n let totalBytes = 0;\n for (const paragraph of text.paragraphs) {\n writer.u8(\n paragraph.alignment === \"left\"\n ? 0\n : paragraph.alignment === \"center\"\n ? 1\n : paragraph.alignment === \"right\"\n ? 2\n : paragraph.alignment === \"justify\"\n ? 3\n : bad(\"horizontal alignment\"),\n );\n totalRuns += paragraph.runs.length;\n if (totalRuns > PRESENTATION_ARTIFACT_MAX_TEXT_RUNS)\n throw new RangeError(\"presentation text runs exceed their limit\");\n writer.count(\n paragraph.runs.length,\n PRESENTATION_ARTIFACT_MAX_TEXT_RUNS,\n \"presentation text runs\",\n );\n for (const run of paragraph.runs) {\n const bytes = strictUtf8(run.text, \"presentation text\");\n totalBytes += bytes.byteLength;\n if (totalBytes > PRESENTATION_ARTIFACT_MAX_TEXT_BYTES)\n throw new RangeError(\"presentation text exceeds its byte limit\");\n writer.u32(bytes.byteLength);\n writer.bytes(bytes);\n writeTextStyle(writer, run.style);\n }\n }\n}\n\nfunction readRichText(reader: ArtifactBinaryReader): PresentationArtifactRichText {\n const verticalTag = reader.u8();\n const verticalAlignment =\n verticalTag === 0\n ? \"top\"\n : verticalTag === 1\n ? \"middle\"\n : verticalTag === 2\n ? \"bottom\"\n : bad(\"vertical alignment\");\n const count = reader.count(PRESENTATION_ARTIFACT_MAX_TEXT_PARAGRAPHS, \"presentation paragraphs\");\n const paragraphs: PresentationArtifactTextParagraph[] = [];\n let totalRuns = 0;\n let totalBytes = 0;\n for (let index = 0; index < count; index += 1) {\n const alignmentTag = reader.u8();\n const alignment =\n alignmentTag === 0\n ? \"left\"\n : alignmentTag === 1\n ? \"center\"\n : alignmentTag === 2\n ? \"right\"\n : alignmentTag === 3\n ? \"justify\"\n : bad(\"horizontal alignment\");\n const runCount = reader.count(PRESENTATION_ARTIFACT_MAX_TEXT_RUNS, \"presentation text runs\");\n totalRuns += runCount;\n if (totalRuns > PRESENTATION_ARTIFACT_MAX_TEXT_RUNS)\n throw new RangeError(\"presentation text runs exceed their limit\");\n const runs: PresentationArtifactTextRun[] = [];\n for (let runIndex = 0; runIndex < runCount; runIndex += 1) {\n const text = readString(reader, PRESENTATION_ARTIFACT_MAX_TEXT_BYTES);\n totalBytes += strictUtf8(text, \"presentation text\").byteLength;\n if (totalBytes > PRESENTATION_ARTIFACT_MAX_TEXT_BYTES)\n throw new RangeError(\"presentation text exceeds its byte limit\");\n runs.push(Object.freeze({ text, style: readTextStyle(reader) }));\n }\n paragraphs.push(Object.freeze({ runs: Object.freeze(runs), alignment }));\n }\n return Object.freeze({ paragraphs: Object.freeze(paragraphs), verticalAlignment });\n}\n\nfunction writeTextStyle(writer: ArtifactBinaryWriter, style: PresentationArtifactTextStyle): void {\n writeString(writer, style.fontFamily, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writer.u32(style.fontSizeCentipoints);\n writer.u32(style.color);\n writer.bool(style.bold);\n writer.bool(style.italic);\n writer.bool(style.underline);\n writer.bool(style.language !== null);\n if (style.language !== null) writeString(writer, style.language, 128);\n}\nfunction readTextStyle(reader: ArtifactBinaryReader): PresentationArtifactTextStyle {\n return Object.freeze({\n fontFamily: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n fontSizeCentipoints: reader.u32(),\n color: reader.u32(),\n bold: reader.bool(\"presentation boolean\"),\n italic: reader.bool(\"presentation boolean\"),\n underline: reader.bool(\"presentation boolean\"),\n language: reader.bool(\"optional presentation language\") ? readString(reader, 128) : null,\n });\n}\n\nfunction writeNewNode(writer: ArtifactBinaryWriter, node: PresentationArtifactNewNode): void {\n writeId(writer, node.id);\n writeString(writer, node.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeRect(writer, node.bounds);\n writeTransform(writer, node.transform);\n writeNodeKind(writer, node.content);\n}\nfunction readNewNode(reader: ArtifactBinaryReader): PresentationArtifactNewNode {\n return Object.freeze({\n id: readId(reader),\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n bounds: readRect(reader),\n transform: readTransform(reader),\n content: readNodeKind(reader),\n });\n}\n\nfunction writeNodeKind(writer: ArtifactBinaryWriter, node: PresentationArtifactNodeKind): void {\n if (node.kind === \"shape\") {\n writer.u8(0);\n writer.u8(\n (\n {\n \"text-box\": 0,\n rectangle: 1,\n \"rounded-rectangle\": 2,\n ellipse: 3,\n triangle: 4,\n \"right-arrow\": 5,\n line: 6,\n } as const\n )[node.geometry] ?? bad(\"shape geometry\"),\n );\n writeFill(writer, node.fill);\n writeLine(writer, node.line);\n writer.bool(node.text !== null);\n if (node.text !== null) writeRichText(writer, node.text);\n writer.bool(node.placeholder !== null);\n if (node.placeholder !== null) {\n writeString(writer, node.placeholder.kind, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writer.bool(node.placeholder.index !== null);\n if (node.placeholder.index !== null) writer.u32(node.placeholder.index);\n }\n return;\n }\n if (node.kind === \"group\") {\n writer.u8(1);\n for (const value of [\n node.childOffsetX,\n node.childOffsetY,\n node.childExtentWidth,\n node.childExtentHeight,\n ])\n writer.i64(coordinate(value, \"presentation group coordinate\"));\n writer.count(\n node.children.length,\n PRESENTATION_ARTIFACT_MAX_GROUP_CHILDREN,\n \"presentation group children\",\n );\n for (const id of node.children) writeId(writer, id);\n return;\n }\n if (node.kind === \"connector\") {\n writer.u8(2);\n writer.u8(\n node.connectorKind === \"straight\"\n ? 0\n : node.connectorKind === \"elbow\"\n ? 1\n : node.connectorKind === \"curved\"\n ? 2\n : bad(\"connector kind\"),\n );\n writeEndpoint(writer, node.start);\n writeEndpoint(writer, node.end);\n writeLine(writer, node.line);\n return;\n }\n if (node.kind === \"chart\") {\n writer.u8(3);\n writer.u8(\n ({ bar: 0, line: 1, area: 2, pie: 3, doughnut: 4, scatter: 5, bubble: 6, radar: 7 } as const)[\n node.chartType\n ] ?? bad(\"chart type\"),\n );\n writeRichText(writer, node.title);\n writer.count(\n node.series.length,\n PRESENTATION_ARTIFACT_MAX_CHART_SERIES,\n \"presentation chart series\",\n );\n let points = 0;\n for (const series of node.series) {\n writeString(writer, series.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n points +=\n series.categories.length +\n series.values.length +\n series.xValues.length +\n series.bubbleSizes.length;\n if (points > PRESENTATION_ARTIFACT_MAX_CHART_POINTS)\n throw new RangeError(\"presentation chart points exceed their limit\");\n writeStringVector(writer, series.categories);\n writeNumberVector(writer, series.values);\n writeNumberVector(writer, series.xValues);\n writeNumberVector(writer, series.bubbleSizes);\n }\n writer.bool(node.hasLegend);\n return;\n }\n if (node.kind === \"table\") {\n writer.u8(4);\n const columns = node.rows[0]?.length ?? 0;\n const cells = node.rows.length * columns;\n if (\n node.rows.length === 0 ||\n columns === 0 ||\n node.rows.length > PRESENTATION_ARTIFACT_MAX_TABLE_ROWS ||\n columns > PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS ||\n cells > PRESENTATION_ARTIFACT_MAX_TABLE_CELLS ||\n node.rows.some((row) => row.length !== columns)\n )\n throw new RangeError(\"presentation table dimensions are invalid\");\n writer.u32(node.rows.length);\n writer.u32(columns);\n for (const row of node.rows)\n for (const cell of row) {\n writer.bool(cell !== null);\n if (cell !== null) {\n writeRichText(writer, cell.text);\n writeFill(writer, cell.fill);\n writer.u16(cell.rowSpan);\n writer.u16(cell.columnSpan);\n }\n }\n writer.count(\n node.columnWidths.length,\n PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS,\n \"presentation table widths\",\n );\n for (const width of node.columnWidths)\n writer.i64(coordinate(width, \"presentation table width\"));\n writer.count(\n node.rowHeights.length,\n PRESENTATION_ARTIFACT_MAX_TABLE_ROWS,\n \"presentation table heights\",\n );\n for (const height of node.rowHeights)\n writer.i64(coordinate(height, \"presentation table height\"));\n writeLine(writer, node.line);\n return;\n }\n if (node.kind === \"media\") {\n if (!(node.digest instanceof Uint8Array) || node.digest.byteLength !== 32)\n throw new TypeError(\"presentation media digest must be 32 bytes\");\n writer.u8(5);\n writer.bytes(node.digest);\n writeString(writer, node.contentType, 255);\n writeString(writer, node.altText, PRESENTATION_ARTIFACT_MAX_TEXT_BYTES);\n writer.u8(node.fit === \"contain\" ? 0 : node.fit === \"cover\" ? 1 : bad(\"media fit\"));\n writer.u32(node.intrinsicWidth);\n writer.u32(node.intrinsicHeight);\n return;\n }\n return bad(\"presentation node kind\");\n}\n\nfunction readNodeKind(reader: ArtifactBinaryReader): PresentationArtifactNodeKind {\n const tag = reader.u8();\n if (tag === 0) {\n const geometryTag = reader.u8();\n const geometries = [\n \"text-box\",\n \"rectangle\",\n \"rounded-rectangle\",\n \"ellipse\",\n \"triangle\",\n \"right-arrow\",\n \"line\",\n ] as const;\n const geometry = geometries[geometryTag];\n if (!geometry) return bad(\"shape geometry\");\n const fill = readFill(reader);\n const line = readLine(reader);\n const text = reader.bool(\"optional presentation text\") ? readRichText(reader) : null;\n const placeholder = reader.bool(\"optional presentation placeholder\")\n ? Object.freeze({\n kind: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n index: reader.bool(\"optional placeholder index\") ? reader.u32() : null,\n })\n : null;\n return Object.freeze({ kind: \"shape\", geometry, fill, line, text, placeholder });\n }\n if (tag === 1) {\n const childOffsetX = readCoordinate(reader, \"presentation group coordinate\");\n const childOffsetY = readCoordinate(reader, \"presentation group coordinate\");\n const childExtentWidth = readCoordinate(reader, \"presentation group coordinate\");\n const childExtentHeight = readCoordinate(reader, \"presentation group coordinate\");\n const count = reader.count(\n PRESENTATION_ARTIFACT_MAX_GROUP_CHILDREN,\n \"presentation group children\",\n 16,\n );\n const children: string[] = [];\n for (let index = 0; index < count; index += 1) children.push(readId(reader));\n return Object.freeze({\n kind: \"group\",\n childOffsetX,\n childOffsetY,\n childExtentWidth,\n childExtentHeight,\n children: Object.freeze(children),\n });\n }\n if (tag === 2) {\n const kindTag = reader.u8();\n return Object.freeze({\n kind: \"connector\",\n connectorKind:\n kindTag === 0\n ? \"straight\"\n : kindTag === 1\n ? \"elbow\"\n : kindTag === 2\n ? \"curved\"\n : bad(\"connector kind\"),\n start: readEndpoint(reader),\n end: readEndpoint(reader),\n line: readLine(reader),\n });\n }\n if (tag === 3) {\n const chartTag = reader.u8();\n const types = [\"bar\", \"line\", \"area\", \"pie\", \"doughnut\", \"scatter\", \"bubble\", \"radar\"] as const;\n const chartType = types[chartTag];\n if (!chartType) return bad(\"chart type\");\n const title = readRichText(reader);\n const count = reader.count(PRESENTATION_ARTIFACT_MAX_CHART_SERIES, \"presentation chart series\");\n const series: PresentationArtifactChartSeries[] = [];\n let points = 0;\n for (let index = 0; index < count; index += 1) {\n const item = Object.freeze({\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n categories: readStringVector(reader),\n values: readNumberVector(reader),\n xValues: readNumberVector(reader),\n bubbleSizes: readNumberVector(reader),\n });\n points +=\n item.categories.length + item.values.length + item.xValues.length + item.bubbleSizes.length;\n if (points > PRESENTATION_ARTIFACT_MAX_CHART_POINTS)\n throw new RangeError(\"presentation chart points exceed their limit\");\n series.push(item);\n }\n return Object.freeze({\n kind: \"chart\",\n chartType,\n title,\n series: Object.freeze(series),\n hasLegend: reader.bool(\"presentation boolean\"),\n });\n }\n if (tag === 4) {\n const rowCount = reader.count(PRESENTATION_ARTIFACT_MAX_TABLE_ROWS, \"presentation table rows\");\n const columnCount = reader.count(\n PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS,\n \"presentation table columns\",\n );\n const cells = rowCount * columnCount;\n if (rowCount === 0 || columnCount === 0 || cells > PRESENTATION_ARTIFACT_MAX_TABLE_CELLS)\n throw new RangeError(\"presentation table dimensions are invalid\");\n const rows: (readonly (PresentationArtifactTableCell | null)[])[] = [];\n for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n const row: (PresentationArtifactTableCell | null)[] = [];\n for (let columnIndex = 0; columnIndex < columnCount; columnIndex += 1)\n row.push(\n reader.bool(\"optional table cell\")\n ? Object.freeze({\n text: readRichText(reader),\n fill: readFill(reader),\n rowSpan: reader.u16(),\n columnSpan: reader.u16(),\n })\n : null,\n );\n rows.push(Object.freeze(row));\n }\n const widthCount = reader.count(\n PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS,\n \"presentation table widths\",\n 8,\n );\n const columnWidths: number[] = [];\n for (let index = 0; index < widthCount; index += 1)\n columnWidths.push(readCoordinate(reader, \"presentation table width\"));\n const heightCount = reader.count(\n PRESENTATION_ARTIFACT_MAX_TABLE_ROWS,\n \"presentation table heights\",\n 8,\n );\n const rowHeights: number[] = [];\n for (let index = 0; index < heightCount; index += 1)\n rowHeights.push(readCoordinate(reader, \"presentation table height\"));\n return Object.freeze({\n kind: \"table\",\n rows: Object.freeze(rows),\n columnWidths: Object.freeze(columnWidths),\n rowHeights: Object.freeze(rowHeights),\n line: readLine(reader),\n });\n }\n if (tag === 5) {\n const digest = reader.bytes(32).slice();\n const contentType = readString(reader, 255);\n const altText = readString(reader, PRESENTATION_ARTIFACT_MAX_TEXT_BYTES);\n const fitTag = reader.u8();\n return Object.freeze({\n kind: \"media\",\n digest,\n contentType,\n altText,\n fit: fitTag === 0 ? \"contain\" : fitTag === 1 ? \"cover\" : bad(\"media fit\"),\n intrinsicWidth: reader.u32(),\n intrinsicHeight: reader.u32(),\n });\n }\n return bad(\"presentation node kind\");\n}\n\nfunction writeEndpoint(\n writer: ArtifactBinaryWriter,\n endpoint: PresentationArtifactConnectorEndpoint,\n): void {\n writeOptionalId(writer, endpoint.nodeId);\n writer.i64(coordinate(endpoint.x, \"connector x\"));\n writer.i64(coordinate(endpoint.y, \"connector y\"));\n}\nfunction readEndpoint(reader: ArtifactBinaryReader): PresentationArtifactConnectorEndpoint {\n return Object.freeze({\n nodeId: readOptionalId(reader),\n x: readCoordinate(reader, \"connector x\"),\n y: readCoordinate(reader, \"connector y\"),\n });\n}\nfunction writeStringVector(writer: ArtifactBinaryWriter, values: readonly string[]): void {\n writer.count(values.length, PRESENTATION_ARTIFACT_MAX_CHART_POINTS, \"presentation chart points\");\n for (const value of values) writeString(writer, value, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n}\nfunction readStringVector(reader: ArtifactBinaryReader): readonly string[] {\n const count = reader.count(PRESENTATION_ARTIFACT_MAX_CHART_POINTS, \"presentation chart points\");\n const values: string[] = [];\n for (let index = 0; index < count; index += 1)\n values.push(readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES));\n return Object.freeze(values);\n}\nfunction writeNumberVector(writer: ArtifactBinaryWriter, values: readonly number[]): void {\n writer.count(values.length, PRESENTATION_ARTIFACT_MAX_CHART_POINTS, \"presentation chart points\");\n for (const value of values) writer.f64(value, \"presentation chart value\");\n}\nfunction readNumberVector(reader: ArtifactBinaryReader): readonly number[] {\n const count = reader.count(\n PRESENTATION_ARTIFACT_MAX_CHART_POINTS,\n \"presentation chart points\",\n 8,\n );\n const values: number[] = [];\n for (let index = 0; index < count; index += 1)\n values.push(reader.f64(\"presentation chart value\"));\n return Object.freeze(values);\n}\nfunction coordinate(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || Math.abs(value) > PRESENTATION_ARTIFACT_MAX_COORDINATE)\n throw new RangeError(`${label} exceeds its bound`);\n return value;\n}\nfunction readCoordinate(reader: ArtifactBinaryReader, label: string): number {\n return coordinate(reader.i64Safe(label), label);\n}\n\nexport type PresentationArtifactQuery =\n | Readonly<{\n kind: \"viewport\";\n owner: PresentationArtifactOwner;\n viewport: PresentationArtifactRect;\n maxNodes: number;\n maxBytes: number;\n }>\n | Readonly<{\n kind: \"hit-test\";\n owner: PresentationArtifactOwner;\n x: number;\n y: number;\n maxNodes: number;\n maxBytes: number;\n }>\n | Readonly<{\n kind: \"resolved-slide\";\n slideId: PresentationArtifactStableId;\n maxNodes: number;\n maxBytes: number;\n }>\n | Readonly<{ kind: \"metadata\"; maxBytes: number }>\n | Readonly<{\n kind: \"slide-catalog\";\n startSlide: number;\n maxSlides: number;\n maxTextBytes: number;\n maxBytes: number;\n }>\n | Readonly<{\n kind: \"editor-slide\";\n slideId: PresentationArtifactStableId;\n maxNodes: number;\n maxTextBytes: number;\n maxBytes: number;\n }>;\n\nexport function encodePresentationArtifactQuery(query: PresentationArtifactQuery): Uint8Array {\n const payload = new ArtifactBinaryWriter(PRESENTATION_ARTIFACT_QUERY_MAX_BYTES);\n let tag: number;\n let maxItems = 0;\n if (query.kind === \"viewport\") {\n tag = 0;\n maxItems = query.maxNodes;\n validateQueryLimits(maxItems, query.maxBytes, 49);\n writeOwner(payload, query.owner);\n writeRect(payload, query.viewport);\n } else if (query.kind === \"hit-test\") {\n tag = 1;\n maxItems = query.maxNodes;\n validateQueryLimits(maxItems, query.maxBytes, 49);\n writeOwner(payload, query.owner);\n payload.i64(coordinate(query.x, \"presentation hit-test x\"));\n payload.i64(coordinate(query.y, \"presentation hit-test y\"));\n } else if (query.kind === \"resolved-slide\") {\n tag = 2;\n maxItems = query.maxNodes;\n validateQueryLimits(maxItems, query.maxBytes, 16);\n writeId(payload, query.slideId);\n } else if (query.kind === \"metadata\") {\n tag = 3;\n validateResponseBytes(query.maxBytes, 44);\n } else if (query.kind === \"slide-catalog\") {\n tag = 4;\n maxItems = query.maxSlides;\n validateCatalogQueryLimits(maxItems, query.maxTextBytes, query.maxBytes);\n validateResponseBytes(query.maxBytes, 13);\n payload.u32(query.startSlide);\n payload.u32(query.maxTextBytes);\n } else if (query.kind === \"editor-slide\") {\n tag = 5;\n maxItems = query.maxNodes;\n validateQueryLimits(maxItems, query.maxBytes, 35);\n validateQueryTextBytes(query.maxTextBytes);\n writeId(payload, query.slideId);\n payload.u32(query.maxTextBytes);\n } else return bad(\"presentation query kind\");\n const maxBytes = query.maxBytes;\n const writer = new ArtifactBinaryWriter(PRESENTATION_ARTIFACT_QUERY_MAX_BYTES);\n writer.bytes(QUERY_MAGIC);\n writer.u16(1);\n writer.u16(0);\n writer.u8(tag);\n writer.bytes(new Uint8Array(3));\n writer.u32(maxItems);\n writer.u32(maxBytes);\n writer.u32(payload.length);\n writer.bytes(payload.finish());\n writer.u64(fnv1a64(writer.view()));\n return writer.finish();\n}\n\nexport function decodePresentationArtifactQuery(bytes: Uint8Array): PresentationArtifactQuery {\n const envelope = decodePresentationQueryEnvelope(bytes);\n const reader = new ArtifactBinaryReader(envelope.payload);\n let query: PresentationArtifactQuery;\n if (envelope.tag === 0) {\n validateQueryLimits(envelope.maxItems, envelope.maxBytes, 49);\n query = Object.freeze({\n kind: \"viewport\",\n owner: readOwner(reader),\n viewport: readRect(reader),\n maxNodes: envelope.maxItems,\n maxBytes: envelope.maxBytes,\n });\n } else if (envelope.tag === 1) {\n validateQueryLimits(envelope.maxItems, envelope.maxBytes, 49);\n query = Object.freeze({\n kind: \"hit-test\",\n owner: readOwner(reader),\n x: readCoordinate(reader, \"presentation hit-test x\"),\n y: readCoordinate(reader, \"presentation hit-test y\"),\n maxNodes: envelope.maxItems,\n maxBytes: envelope.maxBytes,\n });\n } else if (envelope.tag === 2) {\n validateQueryLimits(envelope.maxItems, envelope.maxBytes, 16);\n query = Object.freeze({\n kind: \"resolved-slide\",\n slideId: readId(reader),\n maxNodes: envelope.maxItems,\n maxBytes: envelope.maxBytes,\n });\n } else if (envelope.tag === 3) {\n if (envelope.maxItems !== 0)\n throw new TypeError(\"presentation metadata max items must be zero\");\n validateResponseBytes(envelope.maxBytes, 44);\n query = Object.freeze({ kind: \"metadata\", maxBytes: envelope.maxBytes });\n } else if (envelope.tag === 4) {\n const startSlide = reader.u32();\n const maxTextBytes = reader.u32();\n validateCatalogQueryLimits(envelope.maxItems, maxTextBytes, envelope.maxBytes);\n validateResponseBytes(envelope.maxBytes, 13);\n query = Object.freeze({\n kind: \"slide-catalog\",\n startSlide,\n maxSlides: envelope.maxItems,\n maxTextBytes,\n maxBytes: envelope.maxBytes,\n });\n } else {\n validateQueryLimits(envelope.maxItems, envelope.maxBytes, 35);\n const slideId = readId(reader);\n const maxTextBytes = reader.u32();\n validateQueryTextBytes(maxTextBytes);\n query = Object.freeze({\n kind: \"editor-slide\",\n slideId,\n maxNodes: envelope.maxItems,\n maxTextBytes,\n maxBytes: envelope.maxBytes,\n });\n }\n reader.done(\"presentation query contains trailing bytes\");\n return query;\n}\n\nexport function assertCanonicalPresentationArtifactQueryBytes(bytes: Uint8Array): void {\n if (!equalBytes(bytes, encodePresentationArtifactQuery(decodePresentationArtifactQuery(bytes))))\n throw new TypeError(\"presentation query is not canonically encoded\");\n}\n\nfunction decodePresentationQueryEnvelope(bytes: Uint8Array): {\n tag: number;\n maxItems: number;\n maxBytes: number;\n payload: Uint8Array;\n} {\n if (\n !(bytes instanceof Uint8Array) ||\n bytes.length > PRESENTATION_ARTIFACT_QUERY_MAX_BYTES ||\n bytes.length < QUERY_HEADER_BYTES + CHECKSUM_BYTES\n )\n throw new TypeError(\"invalid presentation query envelope\");\n const reader = new ArtifactBinaryReader(bytes);\n if (!equalBytes(reader.bytes(8), QUERY_MAGIC))\n throw new TypeError(\"invalid presentation query magic\");\n if (reader.u16() !== 1) throw new TypeError(\"unsupported presentation query version\");\n if (reader.u16() !== 0) throw new TypeError(\"reserved presentation query flags must be zero\");\n const tag = reader.u8();\n if (tag > 5) throw new TypeError(\"invalid presentation query tag\");\n if (!reader.bytes(3).every((value) => value === 0))\n throw new TypeError(\"reserved presentation query bytes must be zero\");\n const maxItems = reader.u32();\n const maxBytes = reader.u32();\n const payloadLength = reader.u32();\n const expected = QUERY_HEADER_BYTES + payloadLength + CHECKSUM_BYTES;\n if (bytes.length !== expected)\n throw new TypeError(\n bytes.length < expected\n ? \"truncated presentation query\"\n : \"presentation query contains trailing bytes\",\n );\n const payload = reader.bytes(payloadLength);\n const checksum = reader.u64BigInt();\n if (checksum !== fnv1a64(bytes.subarray(0, -8)))\n throw new TypeError(\"presentation query checksum does not match\");\n return { tag, maxItems, maxBytes, payload };\n}\n\nexport type PresentationArtifactProjectedNode = Readonly<{\n id: string;\n owner: PresentationArtifactOwner;\n parentId: string | null;\n nodeKind: PresentationArtifactNodeKind[\"kind\"];\n bounds: PresentationArtifactRect;\n paintOrder: number;\n}>;\nexport type PresentationArtifactResolvedNode = Readonly<{\n id: string;\n source: PresentationArtifactOwner;\n inherited: boolean;\n}>;\nexport type PresentationArtifactSlideLayoutFacts = Readonly<{\n id: PresentationArtifactStableId;\n name: string;\n masterId: PresentationArtifactStableId | null;\n background: PresentationArtifactFill;\n}>;\nexport type PresentationArtifactSlideCatalogItem = Readonly<{\n index: number;\n id: PresentationArtifactStableId;\n title: string;\n background: PresentationArtifactFill;\n layout: PresentationArtifactSlideLayoutFacts | null;\n}>;\nexport type PresentationArtifactEditorSceneNode = Readonly<{\n id: PresentationArtifactStableId;\n source: PresentationArtifactOwner;\n inherited: boolean;\n parentId: PresentationArtifactStableId | null;\n order: number;\n name: string;\n bounds: PresentationArtifactRect;\n transform: PresentationArtifactTransform;\n content: PresentationArtifactNodeKind;\n}>;\nexport type PresentationArtifactQueryResponse =\n | Readonly<{\n kind: \"viewport\";\n revision: bigint;\n owner: PresentationArtifactOwner;\n viewport: PresentationArtifactRect;\n nodes: readonly PresentationArtifactProjectedNode[];\n truncated: boolean;\n }>\n | Readonly<{\n kind: \"hit-test\";\n revision: bigint;\n owner: PresentationArtifactOwner;\n viewport: PresentationArtifactRect;\n nodes: readonly PresentationArtifactProjectedNode[];\n truncated: boolean;\n }>\n | Readonly<{\n kind: \"resolved-slide\";\n revision: bigint;\n slideId: string;\n nodes: readonly PresentationArtifactResolvedNode[];\n truncated: boolean;\n }>\n | Readonly<{\n kind: \"metadata\";\n revision: bigint;\n presentationId: string;\n slideSize: Readonly<{ width: number; height: number }>;\n masters: number;\n layouts: number;\n slides: number;\n }>\n | Readonly<{\n kind: \"slide-catalog\";\n revision: bigint;\n startSlide: number;\n nextSlide: number | null;\n projectedTextBytes: number;\n slides: readonly PresentationArtifactSlideCatalogItem[];\n truncated: boolean;\n }>\n | Readonly<{\n kind: \"editor-slide\";\n revision: bigint;\n slide: PresentationArtifactSlideCatalogItem;\n notes: PresentationArtifactRichText | null;\n projectedTextBytes: number;\n nodes: readonly PresentationArtifactEditorSceneNode[];\n truncated: boolean;\n }>;\nexport type PresentationArtifactSlideCatalogResponse = Extract<\n PresentationArtifactQueryResponse,\n { kind: \"slide-catalog\" }\n>;\nexport type PresentationArtifactEditorSlideResponse = Extract<\n PresentationArtifactQueryResponse,\n { kind: \"editor-slide\" }\n>;\n\nexport function encodePresentationArtifactQueryResponse(\n response: PresentationArtifactQueryResponse,\n maximumBytes = PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,\n): Uint8Array {\n validateResponseBytes(maximumBytes, 0);\n const payload = new ArtifactBinaryWriter(maximumBytes - RESPONSE_HEADER_BYTES - CHECKSUM_BYTES);\n let tag: number;\n let itemCount: number;\n let truncated = false;\n if (response.kind === \"viewport\" || response.kind === \"hit-test\") {\n tag = response.kind === \"viewport\" ? 0 : 1;\n itemCount = response.nodes.length;\n truncated = response.truncated;\n validateProjectedResponse(response);\n writeOwner(payload, response.owner);\n writeRect(payload, response.viewport);\n for (const node of response.nodes) {\n writeId(payload, node.id);\n writeOwner(payload, node.owner);\n writeOptionalId(payload, node.parentId);\n payload.u8(nodeKindTag(node.nodeKind));\n writeRect(payload, node.bounds);\n payload.u32(node.paintOrder);\n }\n } else if (response.kind === \"resolved-slide\") {\n tag = 2;\n itemCount = response.nodes.length;\n truncated = response.truncated;\n validateResolvedResponse(response);\n writeId(payload, response.slideId);\n for (const node of response.nodes) {\n writeId(payload, node.id);\n writeOwner(payload, node.source);\n payload.bool(node.inherited);\n }\n } else if (response.kind === \"metadata\") {\n tag = 3;\n itemCount = 1;\n assertAllocatedId(response.presentationId, \"presentation metadata id\");\n if (response.slideSize.width <= 0 || response.slideSize.height <= 0)\n throw new TypeError(\"invalid presentation slide size\");\n writeId(payload, response.presentationId);\n payload.i64(coordinate(response.slideSize.width, \"presentation slide width\"));\n payload.i64(coordinate(response.slideSize.height, \"presentation slide height\"));\n payload.u32(response.masters);\n payload.u32(response.layouts);\n payload.u32(response.slides);\n } else if (response.kind === \"slide-catalog\") {\n tag = 4;\n itemCount = response.slides.length;\n truncated = response.truncated;\n validateSlideCatalogResponse(response);\n payload.u32(response.startSlide);\n payload.bool(response.nextSlide !== null);\n if (response.nextSlide !== null) payload.u32(response.nextSlide);\n payload.u32(response.projectedTextBytes);\n for (const slide of response.slides) writeSlideCatalogItem(payload, slide);\n } else if (response.kind === \"editor-slide\") {\n tag = 5;\n itemCount = response.nodes.length;\n truncated = response.truncated;\n validateEditorSlideResponse(response);\n writeSlideCatalogItem(payload, response.slide);\n payload.bool(response.notes !== null);\n if (response.notes !== null) writeRichText(payload, response.notes);\n payload.u32(response.projectedTextBytes);\n for (const node of response.nodes) writeEditorSceneNode(payload, node);\n } else return bad(\"presentation response kind\");\n const writer = new ArtifactBinaryWriter(maximumBytes);\n writer.bytes(RESPONSE_MAGIC);\n writer.u16(1);\n writer.u16(truncated ? 1 : 0);\n writer.u8(tag);\n writer.bytes(new Uint8Array(3));\n writer.u64(response.revision);\n writer.u32(itemCount);\n writer.u32(payload.length);\n writer.bytes(payload.finish());\n writer.u64(fnv1a64(writer.view()));\n return writer.finish();\n}\n\nexport function decodePresentationArtifactQueryResponse(\n bytes: Uint8Array,\n): PresentationArtifactQueryResponse {\n if (\n !(bytes instanceof Uint8Array) ||\n bytes.length > PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES ||\n bytes.length < RESPONSE_HEADER_BYTES + CHECKSUM_BYTES\n )\n throw new TypeError(\"invalid presentation response envelope\");\n const header = new ArtifactBinaryReader(bytes);\n if (!equalBytes(header.bytes(8), RESPONSE_MAGIC))\n throw new TypeError(\"invalid presentation response magic\");\n if (header.u16() !== 1) throw new TypeError(\"unsupported presentation response version\");\n const flags = header.u16();\n if ((flags & ~1) !== 0) throw new TypeError(\"reserved presentation response flags are set\");\n const tag = header.u8();\n if (tag > 5) throw new TypeError(\"invalid presentation response tag\");\n if (!header.bytes(3).every((value) => value === 0))\n throw new TypeError(\"reserved presentation response bytes are set\");\n const revision = header.u64BigInt();\n const itemCount = header.u32();\n const payloadLength = header.u32();\n const expected = RESPONSE_HEADER_BYTES + payloadLength + CHECKSUM_BYTES;\n if (bytes.length !== expected)\n throw new TypeError(\n bytes.length < expected\n ? \"truncated presentation response\"\n : \"presentation response contains trailing bytes\",\n );\n const reader = new ArtifactBinaryReader(header.bytes(payloadLength));\n const checksum = header.u64BigInt();\n if (checksum !== fnv1a64(bytes.subarray(0, -8)))\n throw new TypeError(\"presentation response checksum does not match\");\n const truncated = (flags & 1) !== 0;\n let response: PresentationArtifactQueryResponse;\n if (tag === 0 || tag === 1) {\n if (itemCount > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation response has too many nodes\");\n const owner = readOwner(reader);\n assertAllocatedId(owner.id, \"presentation response owner\");\n const viewport = readRect(reader);\n const nodes: PresentationArtifactProjectedNode[] = [];\n const ids = new Set<string>();\n let previous: number | null = null;\n for (let index = 0; index < itemCount; index += 1) {\n const id = readId(reader);\n const nodeOwner = readOwner(reader);\n const parentId = readOptionalId(reader);\n const kindTag = reader.u8();\n const nodeKind = readNodeKindTag(kindTag);\n const bounds = readRect(reader);\n const paintOrder = reader.u32();\n assertAllocatedId(id, \"presentation response node\");\n if (\n nodeOwner.kind !== owner.kind ||\n nodeOwner.id !== owner.id ||\n ids.has(id) ||\n parentId === id ||\n (parentId !== null && !isAllocatedId(parentId)) ||\n (previous !== null && (tag === 0 ? paintOrder <= previous : paintOrder >= previous))\n )\n throw new TypeError(\"invalid presentation projection node\");\n ids.add(id);\n previous = paintOrder;\n nodes.push(Object.freeze({ id, owner: nodeOwner, parentId, nodeKind, bounds, paintOrder }));\n }\n response = Object.freeze({\n kind: tag === 0 ? \"viewport\" : \"hit-test\",\n revision,\n owner,\n viewport,\n nodes: Object.freeze(nodes),\n truncated,\n });\n } else if (tag === 2) {\n if (itemCount > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation response has too many nodes\");\n const slideId = readId(reader);\n assertAllocatedId(slideId, \"resolved presentation slide\");\n const ids = new Set<string>();\n const nodes: PresentationArtifactResolvedNode[] = [];\n for (let index = 0; index < itemCount; index += 1) {\n const id = readId(reader);\n const source = readOwner(reader);\n const inherited = reader.bool(\"presentation inherited flag\");\n assertAllocatedId(id, \"resolved presentation node\");\n assertAllocatedId(source.id, \"resolved presentation owner\");\n if (\n ids.has(id) ||\n (source.kind === \"slide\" && source.id !== slideId) ||\n inherited !== !(source.kind === \"slide\" && source.id === slideId)\n )\n throw new TypeError(\"invalid resolved presentation node\");\n ids.add(id);\n nodes.push(Object.freeze({ id, source, inherited }));\n }\n response = Object.freeze({\n kind: \"resolved-slide\",\n revision,\n slideId,\n nodes: Object.freeze(nodes),\n truncated,\n });\n } else if (tag === 3) {\n if (itemCount !== 1 || truncated) throw new TypeError(\"invalid presentation metadata response\");\n const presentationId = readId(reader);\n assertAllocatedId(presentationId, \"presentation metadata id\");\n const width = readCoordinate(reader, \"presentation slide width\");\n const height = readCoordinate(reader, \"presentation slide height\");\n if (width <= 0 || height <= 0) throw new TypeError(\"invalid presentation slide size\");\n response = Object.freeze({\n kind: \"metadata\",\n revision,\n presentationId,\n slideSize: Object.freeze({ width, height }),\n masters: reader.u32(),\n layouts: reader.u32(),\n slides: reader.u32(),\n });\n } else if (tag === 4) {\n if (itemCount > PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES)\n throw new RangeError(\"presentation slide catalog has too many slides\");\n const startSlide = reader.u32();\n const nextSlide = reader.bool(\"optional next presentation slide\") ? reader.u32() : null;\n const projectedTextBytes = reader.u32();\n validateProjectedTextBytes(projectedTextBytes);\n const slides: PresentationArtifactSlideCatalogItem[] = [];\n const ids = new Set<string>();\n for (let offset = 0; offset < itemCount; offset += 1) {\n const slide = readSlideCatalogItem(reader);\n if (slide.index !== startSlide + offset || ids.has(slide.id))\n throw new TypeError(\"invalid presentation slide catalog order\");\n ids.add(slide.id);\n slides.push(slide);\n }\n const expectedNext = startSlide + itemCount;\n if (\n expectedNext > 0xffff_ffff ||\n truncated !== (nextSlide !== null) ||\n (nextSlide !== null && nextSlide !== expectedNext)\n )\n throw new TypeError(\"invalid presentation slide catalog boundary\");\n response = Object.freeze({\n kind: \"slide-catalog\",\n revision,\n startSlide,\n nextSlide,\n projectedTextBytes,\n slides: Object.freeze(slides),\n truncated,\n });\n validateSlideCatalogResponse(response);\n } else {\n if (itemCount > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation editor scene has too many nodes\");\n const slide = readSlideCatalogItem(reader);\n const notes = reader.bool(\"optional presentation notes\") ? readRichText(reader) : null;\n if (notes === null && !truncated)\n throw new TypeError(\"omitted presentation notes require truncation\");\n const projectedTextBytes = reader.u32();\n validateProjectedTextBytes(projectedTextBytes);\n const nodes: PresentationArtifactEditorSceneNode[] = [];\n for (let index = 0; index < itemCount; index += 1) nodes.push(readEditorSceneNode(reader));\n response = Object.freeze({\n kind: \"editor-slide\",\n revision,\n slide,\n notes,\n projectedTextBytes,\n nodes: Object.freeze(nodes),\n truncated,\n });\n validateEditorSlideResponse(response);\n }\n reader.done(\"presentation response contains trailing bytes\");\n return response;\n}\n\nexport function assertCanonicalPresentationArtifactQueryResponseBytes(bytes: Uint8Array): void {\n const response = decodePresentationArtifactQueryResponse(bytes);\n if (!equalBytes(bytes, encodePresentationArtifactQueryResponse(response, bytes.length)))\n throw new TypeError(\"presentation response is not canonically encoded\");\n}\n\nfunction validateQueryLimits(maxNodes: number, maxBytes: number, mandatory: number): void {\n if (\n !Number.isInteger(maxNodes) ||\n maxNodes < 1 ||\n maxNodes > PRESENTATION_ARTIFACT_QUERY_MAX_NODES\n )\n throw new RangeError(\"presentation query node limit is invalid\");\n validateResponseBytes(maxBytes, mandatory);\n}\nfunction validateResponseBytes(maxBytes: number, mandatory: number): void {\n const minimum = RESPONSE_HEADER_BYTES + CHECKSUM_BYTES + mandatory;\n if (\n !Number.isInteger(maxBytes) ||\n maxBytes < minimum ||\n maxBytes > PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES\n )\n throw new RangeError(\"presentation response byte limit is invalid\");\n}\nfunction validateCatalogQueryLimits(\n maxSlides: number,\n maxTextBytes: number,\n maxBytes: number,\n): void {\n if (\n !Number.isInteger(maxSlides) ||\n maxSlides < 1 ||\n maxSlides > PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES\n )\n throw new RangeError(\"presentation slide catalog limit is invalid\");\n validateQueryTextBytes(maxTextBytes);\n validateResponseBytes(maxBytes, 13);\n}\nfunction validateQueryTextBytes(maxTextBytes: number): void {\n if (\n !Number.isInteger(maxTextBytes) ||\n maxTextBytes < 1 ||\n maxTextBytes > PRESENTATION_ARTIFACT_QUERY_MAX_TEXT_BYTES\n )\n throw new RangeError(\"presentation query text limit is invalid\");\n}\nfunction validateProjectedTextBytes(projectedTextBytes: number): void {\n if (\n !Number.isInteger(projectedTextBytes) ||\n projectedTextBytes < 0 ||\n projectedTextBytes > PRESENTATION_ARTIFACT_QUERY_MAX_TEXT_BYTES\n )\n throw new RangeError(\"presentation projected text limit is invalid\");\n}\nfunction writeSlideCatalogItem(\n writer: ArtifactBinaryWriter,\n item: PresentationArtifactSlideCatalogItem,\n): void {\n validateSlideCatalogItem(item);\n writer.u32(item.index);\n writeId(writer, item.id);\n writeString(writer, item.title, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeFill(writer, item.background);\n writer.bool(item.layout !== null);\n if (item.layout !== null) {\n writeId(writer, item.layout.id);\n writeString(writer, item.layout.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeOptionalId(writer, item.layout.masterId);\n writeFill(writer, item.layout.background);\n }\n}\nfunction readSlideCatalogItem(reader: ArtifactBinaryReader): PresentationArtifactSlideCatalogItem {\n const index = reader.u32();\n const id = readId(reader);\n const title = readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n const background = readFill(reader);\n const layout = reader.bool(\"optional presentation layout\")\n ? Object.freeze({\n id: readId(reader),\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n masterId: readOptionalId(reader),\n background: readFill(reader),\n })\n : null;\n const item = Object.freeze({ index, id, title, background, layout });\n validateSlideCatalogItem(item);\n return item;\n}\nfunction validateSlideCatalogItem(item: PresentationArtifactSlideCatalogItem): void {\n assertAllocatedId(item.id, \"presentation slide catalog id\");\n if (item.layout !== null) {\n assertAllocatedId(item.layout.id, \"presentation slide layout id\");\n if (item.layout.masterId !== null)\n assertAllocatedId(item.layout.masterId, \"presentation slide master id\");\n }\n}\nfunction writeEditorSceneNode(\n writer: ArtifactBinaryWriter,\n node: PresentationArtifactEditorSceneNode,\n): void {\n writeId(writer, node.id);\n writeOwner(writer, node.source);\n writer.bool(node.inherited);\n writeOptionalId(writer, node.parentId);\n writer.u32(node.order);\n writeString(writer, node.name, PRESENTATION_ARTIFACT_MAX_NAME_BYTES);\n writeRect(writer, node.bounds);\n writeTransform(writer, node.transform);\n writeNodeKind(writer, node.content);\n}\nfunction readEditorSceneNode(reader: ArtifactBinaryReader): PresentationArtifactEditorSceneNode {\n return Object.freeze({\n id: readId(reader),\n source: readOwner(reader),\n inherited: reader.bool(\"presentation inherited flag\"),\n parentId: readOptionalId(reader),\n order: reader.u32(),\n name: readString(reader, PRESENTATION_ARTIFACT_MAX_NAME_BYTES),\n bounds: readRect(reader),\n transform: readTransform(reader),\n content: readNodeKind(reader),\n });\n}\nfunction validateSlideCatalogResponse(\n response: Extract<PresentationArtifactQueryResponse, { kind: \"slide-catalog\" }>,\n): void {\n if (response.slides.length > PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES)\n throw new RangeError(\"presentation slide catalog has too many slides\");\n validateProjectedTextBytes(response.projectedTextBytes);\n const ids = new Set<string>();\n let measured = 0;\n for (let offset = 0; offset < response.slides.length; offset += 1) {\n const slide = response.slides[offset]!;\n validateSlideCatalogItem(slide);\n if (slide.index !== response.startSlide + offset || ids.has(slide.id))\n throw new TypeError(\"invalid presentation slide catalog order\");\n ids.add(slide.id);\n measured = addProjectedText(measured, slideCatalogItemTextBytes(slide));\n }\n const expectedNext = response.startSlide + response.slides.length;\n if (\n !Number.isInteger(response.startSlide) ||\n response.startSlide < 0 ||\n expectedNext > 0xffff_ffff ||\n response.truncated !== (response.nextSlide !== null) ||\n (response.nextSlide !== null && response.nextSlide !== expectedNext) ||\n (response.nextSlide !== null && response.slides.length === 0) ||\n measured !== response.projectedTextBytes\n )\n throw new TypeError(\"invalid presentation slide catalog boundary\");\n}\nfunction validateEditorSlideResponse(\n response: Extract<PresentationArtifactQueryResponse, { kind: \"editor-slide\" }>,\n): void {\n if (response.nodes.length > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation editor scene has too many nodes\");\n if (response.notes === null && !response.truncated)\n throw new TypeError(\"omitted presentation notes require truncation\");\n validateSlideCatalogItem(response.slide);\n validateProjectedTextBytes(response.projectedTextBytes);\n let measured = slideCatalogItemTextBytes(response.slide);\n if (response.notes !== null)\n measured = addProjectedText(measured, richTextProjectionBytes(response.notes));\n const ids = new Set<string>();\n const sources = new Map<string, string>();\n const positions = new Set<string>();\n for (const node of response.nodes) {\n assertAllocatedId(node.id, \"presentation editor node id\");\n assertAllocatedId(node.source.id, \"presentation editor node owner\");\n const sourceKey = `${node.source.kind}:${node.source.id}`;\n const expectedInherited = !(\n node.source.kind === \"slide\" && node.source.id === response.slide.id\n );\n const position = `${sourceKey}:${node.parentId ?? \"root\"}:${node.order}`;\n if (\n ids.has(node.id) ||\n (node.source.kind === \"slide\" && node.source.id !== response.slide.id) ||\n node.inherited !== expectedInherited ||\n node.parentId === node.id ||\n (node.parentId !== null &&\n (!isAllocatedId(node.parentId) || sources.get(node.parentId) !== sourceKey)) ||\n positions.has(position)\n )\n throw new TypeError(\"invalid presentation editor scene node\");\n validateEditorNodeReferences(node);\n ids.add(node.id);\n sources.set(node.id, sourceKey);\n positions.add(position);\n measured = addProjectedText(measured, editorSceneNodeTextBytes(node));\n }\n if (measured !== response.projectedTextBytes)\n throw new TypeError(\"presentation editor projected text mismatch\");\n}\nfunction validateEditorNodeReferences(node: PresentationArtifactEditorSceneNode): void {\n if (node.content.kind === \"group\") {\n const children = new Set<string>();\n for (const id of node.content.children) {\n if (!isAllocatedId(id) || id === node.id || children.has(id))\n throw new TypeError(\"invalid presentation editor group children\");\n children.add(id);\n }\n } else if (node.content.kind === \"connector\") {\n for (const endpoint of [node.content.start, node.content.end])\n if (\n endpoint.nodeId !== null &&\n (!isAllocatedId(endpoint.nodeId) || endpoint.nodeId === node.id)\n )\n throw new TypeError(\"invalid presentation editor connector endpoint\");\n }\n}\nfunction slideCatalogItemTextBytes(item: PresentationArtifactSlideCatalogItem): number {\n let total = textProjectionBytes(item.title);\n if (item.layout !== null) total = addProjectedText(total, textProjectionBytes(item.layout.name));\n return total;\n}\nfunction editorSceneNodeTextBytes(node: PresentationArtifactEditorSceneNode): number {\n return addProjectedText(textProjectionBytes(node.name), nodeKindProjectionBytes(node.content));\n}\nfunction nodeKindProjectionBytes(content: PresentationArtifactNodeKind): number {\n if (content.kind === \"shape\") {\n let total = content.text === null ? 0 : richTextProjectionBytes(content.text);\n if (content.placeholder !== null)\n total = addProjectedText(total, textProjectionBytes(content.placeholder.kind));\n return total;\n }\n if (content.kind === \"group\" || content.kind === \"connector\") return 0;\n if (content.kind === \"chart\") {\n let total = richTextProjectionBytes(content.title);\n for (const series of content.series) {\n total = addProjectedText(total, textProjectionBytes(series.name));\n for (const category of series.categories)\n total = addProjectedText(total, textProjectionBytes(category));\n }\n return total;\n }\n if (content.kind === \"table\") {\n let total = 0;\n for (const row of content.rows)\n for (const cell of row)\n if (cell !== null) total = addProjectedText(total, richTextProjectionBytes(cell.text));\n return total;\n }\n return addProjectedText(\n textProjectionBytes(content.contentType),\n textProjectionBytes(content.altText),\n );\n}\nfunction richTextProjectionBytes(text: PresentationArtifactRichText): number {\n let total = 0;\n for (const paragraph of text.paragraphs)\n for (const run of paragraph.runs) {\n total = addProjectedText(total, textProjectionBytes(run.text));\n total = addProjectedText(total, textProjectionBytes(run.style.fontFamily));\n if (run.style.language !== null)\n total = addProjectedText(total, textProjectionBytes(run.style.language));\n }\n return total;\n}\nfunction textProjectionBytes(value: string): number {\n return strictUtf8(value, \"presentation projected text\").byteLength;\n}\nfunction addProjectedText(left: number, right: number): number {\n const total = left + right;\n if (!Number.isSafeInteger(total)) throw new RangeError(\"presentation projected text is invalid\");\n return total;\n}\nfunction nodeKindTag(kind: PresentationArtifactNodeKind[\"kind\"]): number {\n return kind === \"shape\"\n ? 0\n : kind === \"group\"\n ? 1\n : kind === \"connector\"\n ? 2\n : kind === \"chart\"\n ? 3\n : kind === \"table\"\n ? 4\n : kind === \"media\"\n ? 5\n : bad(\"presentation node kind\");\n}\nfunction readNodeKindTag(tag: number): PresentationArtifactNodeKind[\"kind\"] {\n return tag === 0\n ? \"shape\"\n : tag === 1\n ? \"group\"\n : tag === 2\n ? \"connector\"\n : tag === 3\n ? \"chart\"\n : tag === 4\n ? \"table\"\n : tag === 5\n ? \"media\"\n : bad(\"presentation node kind\");\n}\nfunction isAllocatedId(id: string): boolean {\n return (\n /^[0-9a-f]{32}$/u.test(id) &&\n id.slice(0, 16) !== \"0000000000000000\" &&\n id.slice(16) !== \"0000000000000000\"\n );\n}\nfunction assertAllocatedId(id: string, label: string): void {\n if (!isAllocatedId(id)) throw new TypeError(`${label} is invalid`);\n}\nfunction validateProjectedResponse(\n response: Extract<PresentationArtifactQueryResponse, { kind: \"viewport\" | \"hit-test\" }>,\n): void {\n if (response.nodes.length > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation response has too many nodes\");\n assertAllocatedId(response.owner.id, \"presentation response owner\");\n const ids = new Set<string>();\n let previous: number | null = null;\n for (const node of response.nodes) {\n assertAllocatedId(node.id, \"presentation response node\");\n if (\n node.owner.kind !== response.owner.kind ||\n node.owner.id !== response.owner.id ||\n ids.has(node.id) ||\n node.parentId === node.id ||\n (node.parentId !== null && !isAllocatedId(node.parentId)) ||\n (previous !== null &&\n (response.kind === \"viewport\" ? node.paintOrder <= previous : node.paintOrder >= previous))\n ) {\n throw new TypeError(\"invalid presentation projection node\");\n }\n ids.add(node.id);\n previous = node.paintOrder;\n }\n}\nfunction validateResolvedResponse(\n response: Extract<PresentationArtifactQueryResponse, { kind: \"resolved-slide\" }>,\n): void {\n if (response.nodes.length > PRESENTATION_ARTIFACT_QUERY_MAX_NODES)\n throw new RangeError(\"presentation response has too many nodes\");\n assertAllocatedId(response.slideId, \"resolved presentation slide\");\n const ids = new Set<string>();\n for (const node of response.nodes) {\n assertAllocatedId(node.id, \"resolved presentation node\");\n assertAllocatedId(node.source.id, \"resolved presentation owner\");\n if (\n ids.has(node.id) ||\n (node.source.kind === \"slide\" && node.source.id !== response.slideId) ||\n node.inherited !== !(node.source.kind === \"slide\" && node.source.id === response.slideId)\n )\n throw new TypeError(\"invalid resolved presentation node\");\n ids.add(node.id);\n }\n}\nfunction bad(label: string): never {\n throw new TypeError(`invalid ${label}`);\n}\n"],"mappings":";;;;;;;;;;;AAYO,IAAM,wCAAwC;AAC9C,IAAM,sCAAsC;AAC5C,IAAM,+CAA+C;AACrD,IAAM,0CAA0C,IAAI,OAAO;AAC3D,IAAM,6CAA6C;AACnD,IAAM,wCAAwC;AAC9C,IAAM,iDAAiD,IAAI,OAAO;AAClE,IAAM,wCAAwC;AAC9C,IAAM,yCAAyC;AAC/C,IAAM,6CAA6C,IAAI,OAAO;AAC9D,IAAM,uCAAuC;AAC7C,IAAM,uCAAuC;AAC7C,IAAM,uCAAuC,KAAK,OAAO;AACzD,IAAM,4CAA4C;AAClD,IAAM,sCAAsC;AAC5C,IAAM,uCAAuC;AAC7C,IAAM,0CAA0C;AAChD,IAAM,wCAAwC;AAC9C,IAAM,yCAAyC;AAC/C,IAAM,yCAAyC;AAC/C,IAAM,2CAA2C;AAExD,IAAM,gBAAgB;AACtB,IAAM,cAAc,WAAW,YAAY,0BAA0B;AACrE,IAAM,iBAAiB,WAAW,YAAY,6BAA6B;AAC3E,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAC9B,IAAM,iBAAiB;AA2MhB,SAAS,uCACd,OACY;AACZ,MAAI,OAAO,YAAY,KAAK,CAAC,MAAM,QAAQ,MAAM,QAAQ;AACvD,UAAM,IAAI,UAAU,uCAAuC;AAC7D,MAAI,MAAM,SAAS,SAAS;AAC1B,UAAM,IAAI,WAAW,8CAA8C;AACrE,QAAM,UAAU,IAAI,qBAAqB,0CAA0C,EAAE;AACrF,aAAW,WAAW,MAAM,SAAU,cAAa,SAAS,OAAO;AACnE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM,SAAS;AAAA,IACf,QAAQ,OAAO;AAAA,IACf;AAAA,EACF;AACF;AAEO,SAAS,uCACd,OACkC;AAClC,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,SAAS,IAAI,qBAAqB,SAAS,OAAO;AACxD,QAAM,WAA0C,CAAC;AACjD,WAAS,QAAQ,GAAG,QAAQ,SAAS,OAAO,SAAS,EAAG,UAAS,KAAK,YAAY,MAAM,CAAC;AACzF,SAAO,KAAK,sDAAsD;AAClE,SAAO,OAAO,OAAO,EAAE,SAAS,GAAG,UAAU,OAAO,OAAO,QAAQ,EAAE,CAAC;AACxE;AAEO,SAAS,gDAAgD,OAAyB;AACvF,MACE,CAAC;AAAA,IACC;AAAA,IACA,uCAAuC,uCAAuC,KAAK,CAAC;AAAA,EACtF,GACA;AACA,UAAM,IAAI,UAAU,uDAAuD;AAAA,EAC7E;AACF;AAEA,SAAS,aAAa,QAA8B,SAA4C;AAC9F,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,kBAAY,QAAQ,QAAQ,MAAM,oCAAoC;AACtE,gBAAU,QAAQ,QAAQ,UAAU;AACpC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,kBAAY,QAAQ,QAAQ,MAAM,oCAAoC;AACtE,sBAAgB,QAAQ,QAAQ,QAAQ;AACxC,gBAAU,QAAQ,QAAQ,UAAU;AACpC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,aAAO,IAAI,QAAQ,KAAK;AACxB,kBAAY,QAAQ,QAAQ,OAAO,oCAAoC;AACvE,sBAAgB,QAAQ,QAAQ,QAAQ;AACxC,gBAAU,QAAQ,QAAQ,UAAU;AACpC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,kBAAY,QAAQ,QAAQ,OAAO,oCAAoC;AACvE;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,sBAAgB,QAAQ,QAAQ,QAAQ;AACxC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,oBAAc,QAAQ,QAAQ,KAAK;AACnC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,CAAC;AACX,iBAAW,QAAQ,QAAQ,KAAK;AAChC,sBAAgB,QAAQ,QAAQ,QAAQ;AACxC,aAAO,IAAI,QAAQ,KAAK;AACxB,mBAAa,QAAQ,QAAQ,IAAI;AACjC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,cAAQ,QAAQ,QAAQ,EAAE;AAC1B;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,sBAAgB,QAAQ,QAAQ,WAAW;AAC3C,aAAO,IAAI,QAAQ,KAAK;AACxB;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,gBAAU,QAAQ,QAAQ,MAAM;AAChC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,qBAAe,QAAQ,QAAQ,SAAS;AACxC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,cAAQ,QAAQ,QAAQ,EAAE;AAC1B,oBAAc,QAAQ,QAAQ,OAAO;AACrC;AAAA,IACF,KAAK;AACH,aAAO,GAAG,EAAE;AACZ,qBAAe,QAAQ,QAAQ,IAAI;AACnC;AAAA,IACF;AACE,YAAM,IAAI,UAAU,mCAAmC;AAAA,EAC3D;AACF;AAEA,SAAS,YAAY,QAA2D;AAC9E,UAAQ,OAAO,GAAG,GAAG;AAAA,IACnB,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,QAC7D,YAAY,SAAS,MAAM;AAAA,MAC7B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,QAC7D,UAAU,eAAe,MAAM;AAAA,QAC/B,YAAY,SAAS,MAAM;AAAA,MAC7B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,OAAO,OAAO,IAAI;AAAA,QAClB,OAAO,WAAW,QAAQ,oCAAoC;AAAA,QAC9D,UAAU,eAAe,MAAM;AAAA,QAC/B,YAAY,SAAS,MAAM;AAAA,MAC7B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO,EAAE,MAAM,iBAAiB,IAAI,OAAO,MAAM,EAAE,CAAC;AAAA,IACpE,KAAK;AACH,aAAO,OAAO,OAAO,EAAE,MAAM,iBAAiB,IAAI,OAAO,MAAM,EAAE,CAAC;AAAA,IACpE,KAAK;AACH,aAAO,OAAO,OAAO,EAAE,MAAM,gBAAgB,IAAI,OAAO,MAAM,EAAE,CAAC;AAAA,IACnE,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,OAAO,WAAW,QAAQ,oCAAoC;AAAA,MAChE,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,UAAU,eAAe,MAAM;AAAA,MACjC,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,OAAO,aAAa,MAAM;AAAA,MAC5B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,OAAO,UAAU,MAAM;AAAA,QACvB,UAAU,eAAe,MAAM;AAAA,QAC/B,OAAO,OAAO,IAAI;AAAA,QAClB,MAAM,YAAY,MAAM;AAAA,MAC1B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO,EAAE,MAAM,eAAe,IAAI,OAAO,MAAM,EAAE,CAAC;AAAA,IAClE,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,aAAa,eAAe,MAAM;AAAA,QAClC,OAAO,OAAO,IAAI;AAAA,MACpB,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,QAAQ,SAAS,MAAM;AAAA,MACzB,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,WAAW,cAAc,MAAM;AAAA,MACjC,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,IAAI,OAAO,MAAM;AAAA,QACjB,SAAS,aAAa,MAAM;AAAA,MAC9B,CAAC;AAAA,IACH,KAAK;AACH,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,MAAM,cAAc,MAAM;AAAA,MAC5B,CAAC;AAAA,IACH;AACE,YAAM,IAAI,UAAU,kCAAkC;AAAA,EAC1D;AACF;AAEA,SAAS,QAAQ,QAA8B,IAAkB;AAC/D,SAAO,SAAS,IAAI,iBAAiB;AACvC;AACA,SAAS,OAAO,QAAsC;AACpD,SAAO,OAAO,SAAS,iBAAiB;AAC1C;AACA,SAAS,gBAAgB,QAA8B,IAAyB;AAC9E,SAAO,KAAK,OAAO,IAAI;AACvB,MAAI,OAAO,KAAM,SAAQ,QAAQ,EAAE;AACrC;AACA,SAAS,eAAe,QAA6C;AACnE,SAAO,OAAO,KAAK,0BAA0B,IAAI,OAAO,MAAM,IAAI;AACpE;AAEA,SAAS,YAAY,QAA8B,OAAe,SAAuB;AACvF,SAAO,OAAO,OAAO,SAAS,qBAAqB;AACrD;AACA,SAAS,WAAW,QAA8B,SAAyB;AACzE,SAAO,OAAO,OAAO,SAAS,qBAAqB;AACrD;AAEA,SAAS,WAAW,QAA8B,OAAwC;AACxF,SAAO;AAAA,IACL,MAAM,SAAS,WACX,IACA,MAAM,SAAS,WACb,IACA,MAAM,SAAS,UACb,IACA,IAAI,oBAAoB;AAAA,EAClC;AACA,UAAQ,QAAQ,MAAM,EAAE;AAC1B;AACA,SAAS,UAAU,QAAyD;AAC1E,QAAM,MAAM,OAAO,GAAG;AACtB,QAAM,KAAK,OAAO,MAAM;AACxB,SAAO,OAAO,OAAO;AAAA,IACnB,MACE,QAAQ,IAAI,WAAW,QAAQ,IAAI,WAAW,QAAQ,IAAI,UAAU,IAAI,oBAAoB;AAAA,IAC9F;AAAA,EACF,CAAC;AACH;AAEA,SAAS,UAAU,QAA8B,MAAsC;AACrF,MAAI,KAAK,SAAS,OAAQ,QAAO,GAAG,CAAC;AAAA,WAC5B,KAAK,SAAS,SAAS;AAC9B,WAAO,GAAG,CAAC;AACX,WAAO,IAAI,KAAK,KAAK;AAAA,EACvB,MAAO,KAAI,mBAAmB;AAChC;AACA,SAAS,SAAS,QAAwD;AACxE,QAAM,MAAM,OAAO,GAAG;AACtB,MAAI,QAAQ,EAAG,QAAO,OAAO,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,MAAI,QAAQ,EAAG,QAAO,OAAO,OAAO,EAAE,MAAM,SAAS,OAAO,OAAO,IAAI,EAAE,CAAC;AAC1E,SAAO,IAAI,mBAAmB;AAChC;AAEA,SAAS,UAAU,QAA8B,MAAsC;AACrF,YAAU,QAAQ,KAAK,IAAI;AAC3B,SAAO,IAAI,WAAW,KAAK,OAAO,yBAAyB,CAAC;AAC5D,SAAO;AAAA,IACL,KAAK,SAAS,UACV,IACA,KAAK,SAAS,SACZ,IACA,KAAK,SAAS,QACZ,IACA,IAAI,wBAAwB;AAAA,EACtC;AACF;AACA,SAAS,SAAS,QAAwD;AACxE,QAAM,OAAO,SAAS,MAAM;AAC5B,QAAM,QAAQ,eAAe,QAAQ,yBAAyB;AAC9D,QAAM,MAAM,OAAO,GAAG;AACtB,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,IACA;AAAA,IACA,MACE,QAAQ,IAAI,UAAU,QAAQ,IAAI,SAAS,QAAQ,IAAI,QAAQ,IAAI,wBAAwB;AAAA,EAC/F,CAAC;AACH;AAEA,SAAS,UAAU,QAA8B,MAAsC;AACrF,QAAM,IAAI,WAAW,KAAK,GAAG,gBAAgB;AAC7C,QAAM,IAAI,WAAW,KAAK,GAAG,gBAAgB;AAC7C,QAAM,QAAQ,WAAW,KAAK,OAAO,oBAAoB;AACzD,QAAM,SAAS,WAAW,KAAK,QAAQ,qBAAqB;AAC5D,MACE,SAAS,KACT,UAAU,KACV,KAAK,IAAI,IAAI,KAAK,IAAI,wCACtB,KAAK,IAAI,IAAI,MAAM,IAAI;AAEvB,QAAI,wBAAwB;AAC9B,SAAO,IAAI,CAAC;AACZ,SAAO,IAAI,CAAC;AACZ,SAAO,IAAI,KAAK;AAChB,SAAO,IAAI,MAAM;AACnB;AACA,SAAS,eACP,QACA,MACM;AACN,QAAM,QAAQ,WAAW,KAAK,OAAO,0BAA0B;AAC/D,QAAM,SAAS,WAAW,KAAK,QAAQ,2BAA2B;AAClE,MAAI,SAAS,KAAK,UAAU,EAAG,OAAM,IAAI,UAAU,iCAAiC;AACpF,SAAO,IAAI,KAAK;AAChB,SAAO,IAAI,MAAM;AACnB;AACA,SAAS,cAAc,QAA2E;AAChG,QAAM,OAAO,OAAO,OAAO;AAAA,IACzB,OAAO,eAAe,QAAQ,0BAA0B;AAAA,IACxD,QAAQ,eAAe,QAAQ,2BAA2B;AAAA,EAC5D,CAAC;AACD,MAAI,KAAK,SAAS,KAAK,KAAK,UAAU,EAAG,OAAM,IAAI,UAAU,iCAAiC;AAC9F,SAAO;AACT;AACA,SAAS,SAAS,QAAwD;AACxE,QAAM,OAAO,OAAO,OAAO;AAAA,IACzB,GAAG,eAAe,QAAQ,gBAAgB;AAAA,IAC1C,GAAG,eAAe,QAAQ,gBAAgB;AAAA,IAC1C,OAAO,eAAe,QAAQ,oBAAoB;AAAA,IAClD,QAAQ,eAAe,QAAQ,qBAAqB;AAAA,EACtD,CAAC;AACD,MACE,KAAK,SAAS,KACd,KAAK,UAAU,KACf,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,wCAChC,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,IAAI;AAEjC,QAAI,wBAAwB;AAC9B,SAAO;AACT;AAEA,SAAS,eACP,QACA,WACM;AACN,MACE,CAAC,OAAO,UAAU,UAAU,QAAQ,KACpC,UAAU,WAAW,UACrB,UAAU,WAAW;AAErB,QAAI,uBAAuB;AAC7B,SAAO,IAAI,UAAU,QAAQ;AAC7B,SAAO,KAAK,UAAU,cAAc;AACpC,SAAO,KAAK,UAAU,YAAY;AACpC;AACA,SAAS,cAAc,QAA6D;AAClF,QAAM,WAAW,OAAO,IAAI;AAC5B,MAAI,WAAW,UAAe,WAAW,MAAY,KAAI,uBAAuB;AAChF,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,IACA,gBAAgB,OAAO,KAAK,sBAAsB;AAAA,IAClD,cAAc,OAAO,KAAK,sBAAsB;AAAA,EAClD,CAAC;AACH;AAEA,SAAS,cAAc,QAA8B,MAA0C;AAC7F,SAAO;AAAA,IACL,KAAK,sBAAsB,QACvB,IACA,KAAK,sBAAsB,WACzB,IACA,KAAK,sBAAsB,WACzB,IACA,IAAI,oBAAoB;AAAA,EAClC;AACA,SAAO;AAAA,IACL,KAAK,WAAW;AAAA,IAChB;AAAA,IACA;AAAA,EACF;AACA,MAAI,YAAY;AAChB,MAAI,aAAa;AACjB,aAAW,aAAa,KAAK,YAAY;AACvC,WAAO;AAAA,MACL,UAAU,cAAc,SACpB,IACA,UAAU,cAAc,WACtB,IACA,UAAU,cAAc,UACtB,IACA,UAAU,cAAc,YACtB,IACA,IAAI,sBAAsB;AAAA,IACtC;AACA,iBAAa,UAAU,KAAK;AAC5B,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,2CAA2C;AAClE,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf;AAAA,MACA;AAAA,IACF;AACA,eAAW,OAAO,UAAU,MAAM;AAChC,YAAM,QAAQ,WAAW,IAAI,MAAM,mBAAmB;AACtD,oBAAc,MAAM;AACpB,UAAI,aAAa;AACf,cAAM,IAAI,WAAW,0CAA0C;AACjE,aAAO,IAAI,MAAM,UAAU;AAC3B,aAAO,MAAM,KAAK;AAClB,qBAAe,QAAQ,IAAI,KAAK;AAAA,IAClC;AAAA,EACF;AACF;AAEA,SAAS,aAAa,QAA4D;AAChF,QAAM,cAAc,OAAO,GAAG;AAC9B,QAAM,oBACJ,gBAAgB,IACZ,QACA,gBAAgB,IACd,WACA,gBAAgB,IACd,WACA,IAAI,oBAAoB;AAClC,QAAM,QAAQ,OAAO,MAAM,2CAA2C,yBAAyB;AAC/F,QAAM,aAAkD,CAAC;AACzD,MAAI,YAAY;AAChB,MAAI,aAAa;AACjB,WAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS,GAAG;AAC7C,UAAM,eAAe,OAAO,GAAG;AAC/B,UAAM,YACJ,iBAAiB,IACb,SACA,iBAAiB,IACf,WACA,iBAAiB,IACf,UACA,iBAAiB,IACf,YACA,IAAI,sBAAsB;AACtC,UAAM,WAAW,OAAO,MAAM,qCAAqC,wBAAwB;AAC3F,iBAAa;AACb,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,2CAA2C;AAClE,UAAM,OAAsC,CAAC;AAC7C,aAAS,WAAW,GAAG,WAAW,UAAU,YAAY,GAAG;AACzD,YAAM,OAAO,WAAW,QAAQ,oCAAoC;AACpE,oBAAc,WAAW,MAAM,mBAAmB,EAAE;AACpD,UAAI,aAAa;AACf,cAAM,IAAI,WAAW,0CAA0C;AACjE,WAAK,KAAK,OAAO,OAAO,EAAE,MAAM,OAAO,cAAc,MAAM,EAAE,CAAC,CAAC;AAAA,IACjE;AACA,eAAW,KAAK,OAAO,OAAO,EAAE,MAAM,OAAO,OAAO,IAAI,GAAG,UAAU,CAAC,CAAC;AAAA,EACzE;AACA,SAAO,OAAO,OAAO,EAAE,YAAY,OAAO,OAAO,UAAU,GAAG,kBAAkB,CAAC;AACnF;AAEA,SAAS,eAAe,QAA8B,OAA4C;AAChG,cAAY,QAAQ,MAAM,YAAY,oCAAoC;AAC1E,SAAO,IAAI,MAAM,mBAAmB;AACpC,SAAO,IAAI,MAAM,KAAK;AACtB,SAAO,KAAK,MAAM,IAAI;AACtB,SAAO,KAAK,MAAM,MAAM;AACxB,SAAO,KAAK,MAAM,SAAS;AAC3B,SAAO,KAAK,MAAM,aAAa,IAAI;AACnC,MAAI,MAAM,aAAa,KAAM,aAAY,QAAQ,MAAM,UAAU,GAAG;AACtE;AACA,SAAS,cAAc,QAA6D;AAClF,SAAO,OAAO,OAAO;AAAA,IACnB,YAAY,WAAW,QAAQ,oCAAoC;AAAA,IACnE,qBAAqB,OAAO,IAAI;AAAA,IAChC,OAAO,OAAO,IAAI;AAAA,IAClB,MAAM,OAAO,KAAK,sBAAsB;AAAA,IACxC,QAAQ,OAAO,KAAK,sBAAsB;AAAA,IAC1C,WAAW,OAAO,KAAK,sBAAsB;AAAA,IAC7C,UAAU,OAAO,KAAK,gCAAgC,IAAI,WAAW,QAAQ,GAAG,IAAI;AAAA,EACtF,CAAC;AACH;AAEA,SAAS,aAAa,QAA8B,MAAyC;AAC3F,UAAQ,QAAQ,KAAK,EAAE;AACvB,cAAY,QAAQ,KAAK,MAAM,oCAAoC;AACnE,YAAU,QAAQ,KAAK,MAAM;AAC7B,iBAAe,QAAQ,KAAK,SAAS;AACrC,gBAAc,QAAQ,KAAK,OAAO;AACpC;AACA,SAAS,YAAY,QAA2D;AAC9E,SAAO,OAAO,OAAO;AAAA,IACnB,IAAI,OAAO,MAAM;AAAA,IACjB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,IAC7D,QAAQ,SAAS,MAAM;AAAA,IACvB,WAAW,cAAc,MAAM;AAAA,IAC/B,SAAS,aAAa,MAAM;AAAA,EAC9B,CAAC;AACH;AAEA,SAAS,cAAc,QAA8B,MAA0C;AAC7F,MAAI,KAAK,SAAS,SAAS;AACzB,WAAO,GAAG,CAAC;AACX,WAAO;AAAA,MAEH;AAAA,QACE,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,qBAAqB;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,eAAe;AAAA,QACf,MAAM;AAAA,MACR,EACA,KAAK,QAAQ,KAAK,IAAI,gBAAgB;AAAA,IAC1C;AACA,cAAU,QAAQ,KAAK,IAAI;AAC3B,cAAU,QAAQ,KAAK,IAAI;AAC3B,WAAO,KAAK,KAAK,SAAS,IAAI;AAC9B,QAAI,KAAK,SAAS,KAAM,eAAc,QAAQ,KAAK,IAAI;AACvD,WAAO,KAAK,KAAK,gBAAgB,IAAI;AACrC,QAAI,KAAK,gBAAgB,MAAM;AAC7B,kBAAY,QAAQ,KAAK,YAAY,MAAM,oCAAoC;AAC/E,aAAO,KAAK,KAAK,YAAY,UAAU,IAAI;AAC3C,UAAI,KAAK,YAAY,UAAU,KAAM,QAAO,IAAI,KAAK,YAAY,KAAK;AAAA,IACxE;AACA;AAAA,EACF;AACA,MAAI,KAAK,SAAS,SAAS;AACzB,WAAO,GAAG,CAAC;AACX,eAAW,SAAS;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACE,aAAO,IAAI,WAAW,OAAO,+BAA+B,CAAC;AAC/D,WAAO;AAAA,MACL,KAAK,SAAS;AAAA,MACd;AAAA,MACA;AAAA,IACF;AACA,eAAW,MAAM,KAAK,SAAU,SAAQ,QAAQ,EAAE;AAClD;AAAA,EACF;AACA,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO,GAAG,CAAC;AACX,WAAO;AAAA,MACL,KAAK,kBAAkB,aACnB,IACA,KAAK,kBAAkB,UACrB,IACA,KAAK,kBAAkB,WACrB,IACA,IAAI,gBAAgB;AAAA,IAC9B;AACA,kBAAc,QAAQ,KAAK,KAAK;AAChC,kBAAc,QAAQ,KAAK,GAAG;AAC9B,cAAU,QAAQ,KAAK,IAAI;AAC3B;AAAA,EACF;AACA,MAAI,KAAK,SAAS,SAAS;AACzB,WAAO,GAAG,CAAC;AACX,WAAO;AAAA,MACJ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,EAAE,EAChF,KAAK,SACP,KAAK,IAAI,YAAY;AAAA,IACvB;AACA,kBAAc,QAAQ,KAAK,KAAK;AAChC,WAAO;AAAA,MACL,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,IACF;AACA,QAAI,SAAS;AACb,eAAW,UAAU,KAAK,QAAQ;AAChC,kBAAY,QAAQ,OAAO,MAAM,oCAAoC;AACrE,gBACE,OAAO,WAAW,SAClB,OAAO,OAAO,SACd,OAAO,QAAQ,SACf,OAAO,YAAY;AACrB,UAAI,SAAS;AACX,cAAM,IAAI,WAAW,8CAA8C;AACrE,wBAAkB,QAAQ,OAAO,UAAU;AAC3C,wBAAkB,QAAQ,OAAO,MAAM;AACvC,wBAAkB,QAAQ,OAAO,OAAO;AACxC,wBAAkB,QAAQ,OAAO,WAAW;AAAA,IAC9C;AACA,WAAO,KAAK,KAAK,SAAS;AAC1B;AAAA,EACF;AACA,MAAI,KAAK,SAAS,SAAS;AACzB,WAAO,GAAG,CAAC;AACX,UAAM,UAAU,KAAK,KAAK,CAAC,GAAG,UAAU;AACxC,UAAM,QAAQ,KAAK,KAAK,SAAS;AACjC,QACE,KAAK,KAAK,WAAW,KACrB,YAAY,KACZ,KAAK,KAAK,SAAS,wCACnB,UAAU,2CACV,QAAQ,yCACR,KAAK,KAAK,KAAK,CAAC,QAAQ,IAAI,WAAW,OAAO;AAE9C,YAAM,IAAI,WAAW,2CAA2C;AAClE,WAAO,IAAI,KAAK,KAAK,MAAM;AAC3B,WAAO,IAAI,OAAO;AAClB,eAAW,OAAO,KAAK;AACrB,iBAAW,QAAQ,KAAK;AACtB,eAAO,KAAK,SAAS,IAAI;AACzB,YAAI,SAAS,MAAM;AACjB,wBAAc,QAAQ,KAAK,IAAI;AAC/B,oBAAU,QAAQ,KAAK,IAAI;AAC3B,iBAAO,IAAI,KAAK,OAAO;AACvB,iBAAO,IAAI,KAAK,UAAU;AAAA,QAC5B;AAAA,MACF;AACF,WAAO;AAAA,MACL,KAAK,aAAa;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AACA,eAAW,SAAS,KAAK;AACvB,aAAO,IAAI,WAAW,OAAO,0BAA0B,CAAC;AAC1D,WAAO;AAAA,MACL,KAAK,WAAW;AAAA,MAChB;AAAA,MACA;AAAA,IACF;AACA,eAAW,UAAU,KAAK;AACxB,aAAO,IAAI,WAAW,QAAQ,2BAA2B,CAAC;AAC5D,cAAU,QAAQ,KAAK,IAAI;AAC3B;AAAA,EACF;AACA,MAAI,KAAK,SAAS,SAAS;AACzB,QAAI,EAAE,KAAK,kBAAkB,eAAe,KAAK,OAAO,eAAe;AACrE,YAAM,IAAI,UAAU,4CAA4C;AAClE,WAAO,GAAG,CAAC;AACX,WAAO,MAAM,KAAK,MAAM;AACxB,gBAAY,QAAQ,KAAK,aAAa,GAAG;AACzC,gBAAY,QAAQ,KAAK,SAAS,oCAAoC;AACtE,WAAO,GAAG,KAAK,QAAQ,YAAY,IAAI,KAAK,QAAQ,UAAU,IAAI,IAAI,WAAW,CAAC;AAClF,WAAO,IAAI,KAAK,cAAc;AAC9B,WAAO,IAAI,KAAK,eAAe;AAC/B;AAAA,EACF;AACA,SAAO,IAAI,wBAAwB;AACrC;AAEA,SAAS,aAAa,QAA4D;AAChF,QAAM,MAAM,OAAO,GAAG;AACtB,MAAI,QAAQ,GAAG;AACb,UAAM,cAAc,OAAO,GAAG;AAC9B,UAAM,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,WAAW,WAAW;AACvC,QAAI,CAAC,SAAU,QAAO,IAAI,gBAAgB;AAC1C,UAAM,OAAO,SAAS,MAAM;AAC5B,UAAM,OAAO,SAAS,MAAM;AAC5B,UAAM,OAAO,OAAO,KAAK,4BAA4B,IAAI,aAAa,MAAM,IAAI;AAChF,UAAM,cAAc,OAAO,KAAK,mCAAmC,IAC/D,OAAO,OAAO;AAAA,MACZ,MAAM,WAAW,QAAQ,oCAAoC;AAAA,MAC7D,OAAO,OAAO,KAAK,4BAA4B,IAAI,OAAO,IAAI,IAAI;AAAA,IACpE,CAAC,IACD;AACJ,WAAO,OAAO,OAAO,EAAE,MAAM,SAAS,UAAU,MAAM,MAAM,MAAM,YAAY,CAAC;AAAA,EACjF;AACA,MAAI,QAAQ,GAAG;AACb,UAAM,eAAe,eAAe,QAAQ,+BAA+B;AAC3E,UAAM,eAAe,eAAe,QAAQ,+BAA+B;AAC3E,UAAM,mBAAmB,eAAe,QAAQ,+BAA+B;AAC/E,UAAM,oBAAoB,eAAe,QAAQ,+BAA+B;AAChF,UAAM,QAAQ,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAqB,CAAC;AAC5B,aAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS,EAAG,UAAS,KAAK,OAAO,MAAM,CAAC;AAC3E,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,OAAO,OAAO,QAAQ;AAAA,IAClC,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,GAAG;AACb,UAAM,UAAU,OAAO,GAAG;AAC1B,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,eACE,YAAY,IACR,aACA,YAAY,IACV,UACA,YAAY,IACV,WACA,IAAI,gBAAgB;AAAA,MAC9B,OAAO,aAAa,MAAM;AAAA,MAC1B,KAAK,aAAa,MAAM;AAAA,MACxB,MAAM,SAAS,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,GAAG;AACb,UAAM,WAAW,OAAO,GAAG;AAC3B,UAAM,QAAQ,CAAC,OAAO,QAAQ,QAAQ,OAAO,YAAY,WAAW,UAAU,OAAO;AACrF,UAAM,YAAY,MAAM,QAAQ;AAChC,QAAI,CAAC,UAAW,QAAO,IAAI,YAAY;AACvC,UAAM,QAAQ,aAAa,MAAM;AACjC,UAAM,QAAQ,OAAO,MAAM,wCAAwC,2BAA2B;AAC9F,UAAM,SAA4C,CAAC;AACnD,QAAI,SAAS;AACb,aAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS,GAAG;AAC7C,YAAM,OAAO,OAAO,OAAO;AAAA,QACzB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,QAC7D,YAAY,iBAAiB,MAAM;AAAA,QACnC,QAAQ,iBAAiB,MAAM;AAAA,QAC/B,SAAS,iBAAiB,MAAM;AAAA,QAChC,aAAa,iBAAiB,MAAM;AAAA,MACtC,CAAC;AACD,gBACE,KAAK,WAAW,SAAS,KAAK,OAAO,SAAS,KAAK,QAAQ,SAAS,KAAK,YAAY;AACvF,UAAI,SAAS;AACX,cAAM,IAAI,WAAW,8CAA8C;AACrE,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ,OAAO,OAAO,MAAM;AAAA,MAC5B,WAAW,OAAO,KAAK,sBAAsB;AAAA,IAC/C,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,GAAG;AACb,UAAM,WAAW,OAAO,MAAM,sCAAsC,yBAAyB;AAC7F,UAAM,cAAc,OAAO;AAAA,MACzB;AAAA,MACA;AAAA,IACF;AACA,UAAM,QAAQ,WAAW;AACzB,QAAI,aAAa,KAAK,gBAAgB,KAAK,QAAQ;AACjD,YAAM,IAAI,WAAW,2CAA2C;AAClE,UAAM,OAA8D,CAAC;AACrE,aAAS,WAAW,GAAG,WAAW,UAAU,YAAY,GAAG;AACzD,YAAM,MAAgD,CAAC;AACvD,eAAS,cAAc,GAAG,cAAc,aAAa,eAAe;AAClE,YAAI;AAAA,UACF,OAAO,KAAK,qBAAqB,IAC7B,OAAO,OAAO;AAAA,YACZ,MAAM,aAAa,MAAM;AAAA,YACzB,MAAM,SAAS,MAAM;AAAA,YACrB,SAAS,OAAO,IAAI;AAAA,YACpB,YAAY,OAAO,IAAI;AAAA,UACzB,CAAC,IACD;AAAA,QACN;AACF,WAAK,KAAK,OAAO,OAAO,GAAG,CAAC;AAAA,IAC9B;AACA,UAAM,aAAa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,eAAyB,CAAC;AAChC,aAAS,QAAQ,GAAG,QAAQ,YAAY,SAAS;AAC/C,mBAAa,KAAK,eAAe,QAAQ,0BAA0B,CAAC;AACtE,UAAM,cAAc,OAAO;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,aAAuB,CAAC;AAC9B,aAAS,QAAQ,GAAG,QAAQ,aAAa,SAAS;AAChD,iBAAW,KAAK,eAAe,QAAQ,2BAA2B,CAAC;AACrE,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,MAAM,OAAO,OAAO,IAAI;AAAA,MACxB,cAAc,OAAO,OAAO,YAAY;AAAA,MACxC,YAAY,OAAO,OAAO,UAAU;AAAA,MACpC,MAAM,SAAS,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,GAAG;AACb,UAAM,SAAS,OAAO,MAAM,EAAE,EAAE,MAAM;AACtC,UAAM,cAAc,WAAW,QAAQ,GAAG;AAC1C,UAAM,UAAU,WAAW,QAAQ,oCAAoC;AACvE,UAAM,SAAS,OAAO,GAAG;AACzB,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,WAAW,IAAI,YAAY,WAAW,IAAI,UAAU,IAAI,WAAW;AAAA,MACxE,gBAAgB,OAAO,IAAI;AAAA,MAC3B,iBAAiB,OAAO,IAAI;AAAA,IAC9B,CAAC;AAAA,EACH;AACA,SAAO,IAAI,wBAAwB;AACrC;AAEA,SAAS,cACP,QACA,UACM;AACN,kBAAgB,QAAQ,SAAS,MAAM;AACvC,SAAO,IAAI,WAAW,SAAS,GAAG,aAAa,CAAC;AAChD,SAAO,IAAI,WAAW,SAAS,GAAG,aAAa,CAAC;AAClD;AACA,SAAS,aAAa,QAAqE;AACzF,SAAO,OAAO,OAAO;AAAA,IACnB,QAAQ,eAAe,MAAM;AAAA,IAC7B,GAAG,eAAe,QAAQ,aAAa;AAAA,IACvC,GAAG,eAAe,QAAQ,aAAa;AAAA,EACzC,CAAC;AACH;AACA,SAAS,kBAAkB,QAA8B,QAAiC;AACxF,SAAO,MAAM,OAAO,QAAQ,wCAAwC,2BAA2B;AAC/F,aAAW,SAAS,OAAQ,aAAY,QAAQ,OAAO,oCAAoC;AAC7F;AACA,SAAS,iBAAiB,QAAiD;AACzE,QAAM,QAAQ,OAAO,MAAM,wCAAwC,2BAA2B;AAC9F,QAAM,SAAmB,CAAC;AAC1B,WAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC1C,WAAO,KAAK,WAAW,QAAQ,oCAAoC,CAAC;AACtE,SAAO,OAAO,OAAO,MAAM;AAC7B;AACA,SAAS,kBAAkB,QAA8B,QAAiC;AACxF,SAAO,MAAM,OAAO,QAAQ,wCAAwC,2BAA2B;AAC/F,aAAW,SAAS,OAAQ,QAAO,IAAI,OAAO,0BAA0B;AAC1E;AACA,SAAS,iBAAiB,QAAiD;AACzE,QAAM,QAAQ,OAAO;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,SAAmB,CAAC;AAC1B,WAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC1C,WAAO,KAAK,OAAO,IAAI,0BAA0B,CAAC;AACpD,SAAO,OAAO,OAAO,MAAM;AAC7B;AACA,SAAS,WAAW,OAAe,OAAuB;AACxD,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI;AACpD,UAAM,IAAI,WAAW,GAAG,KAAK,oBAAoB;AACnD,SAAO;AACT;AACA,SAAS,eAAe,QAA8B,OAAuB;AAC3E,SAAO,WAAW,OAAO,QAAQ,KAAK,GAAG,KAAK;AAChD;AAwCO,SAAS,gCAAgC,OAA8C;AAC5F,QAAM,UAAU,IAAI,qBAAqB,qCAAqC;AAC9E,MAAI;AACJ,MAAI,WAAW;AACf,MAAI,MAAM,SAAS,YAAY;AAC7B,UAAM;AACN,eAAW,MAAM;AACjB,wBAAoB,UAAU,MAAM,UAAU,EAAE;AAChD,eAAW,SAAS,MAAM,KAAK;AAC/B,cAAU,SAAS,MAAM,QAAQ;AAAA,EACnC,WAAW,MAAM,SAAS,YAAY;AACpC,UAAM;AACN,eAAW,MAAM;AACjB,wBAAoB,UAAU,MAAM,UAAU,EAAE;AAChD,eAAW,SAAS,MAAM,KAAK;AAC/B,YAAQ,IAAI,WAAW,MAAM,GAAG,yBAAyB,CAAC;AAC1D,YAAQ,IAAI,WAAW,MAAM,GAAG,yBAAyB,CAAC;AAAA,EAC5D,WAAW,MAAM,SAAS,kBAAkB;AAC1C,UAAM;AACN,eAAW,MAAM;AACjB,wBAAoB,UAAU,MAAM,UAAU,EAAE;AAChD,YAAQ,SAAS,MAAM,OAAO;AAAA,EAChC,WAAW,MAAM,SAAS,YAAY;AACpC,UAAM;AACN,0BAAsB,MAAM,UAAU,EAAE;AAAA,EAC1C,WAAW,MAAM,SAAS,iBAAiB;AACzC,UAAM;AACN,eAAW,MAAM;AACjB,+BAA2B,UAAU,MAAM,cAAc,MAAM,QAAQ;AACvE,0BAAsB,MAAM,UAAU,EAAE;AACxC,YAAQ,IAAI,MAAM,UAAU;AAC5B,YAAQ,IAAI,MAAM,YAAY;AAAA,EAChC,WAAW,MAAM,SAAS,gBAAgB;AACxC,UAAM;AACN,eAAW,MAAM;AACjB,wBAAoB,UAAU,MAAM,UAAU,EAAE;AAChD,2BAAuB,MAAM,YAAY;AACzC,YAAQ,SAAS,MAAM,OAAO;AAC9B,YAAQ,IAAI,MAAM,YAAY;AAAA,EAChC,MAAO,QAAO,IAAI,yBAAyB;AAC3C,QAAM,WAAW,MAAM;AACvB,QAAM,SAAS,IAAI,qBAAqB,qCAAqC;AAC7E,SAAO,MAAM,WAAW;AACxB,SAAO,IAAI,CAAC;AACZ,SAAO,IAAI,CAAC;AACZ,SAAO,GAAG,GAAG;AACb,SAAO,MAAM,IAAI,WAAW,CAAC,CAAC;AAC9B,SAAO,IAAI,QAAQ;AACnB,SAAO,IAAI,QAAQ;AACnB,SAAO,IAAI,QAAQ,MAAM;AACzB,SAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,SAAO,IAAI,QAAQ,OAAO,KAAK,CAAC,CAAC;AACjC,SAAO,OAAO,OAAO;AACvB;AAEO,SAAS,gCAAgC,OAA8C;AAC5F,QAAM,WAAW,gCAAgC,KAAK;AACtD,QAAM,SAAS,IAAI,qBAAqB,SAAS,OAAO;AACxD,MAAI;AACJ,MAAI,SAAS,QAAQ,GAAG;AACtB,wBAAoB,SAAS,UAAU,SAAS,UAAU,EAAE;AAC5D,YAAQ,OAAO,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,OAAO,UAAU,MAAM;AAAA,MACvB,UAAU,SAAS,MAAM;AAAA,MACzB,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,EACH,WAAW,SAAS,QAAQ,GAAG;AAC7B,wBAAoB,SAAS,UAAU,SAAS,UAAU,EAAE;AAC5D,YAAQ,OAAO,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,OAAO,UAAU,MAAM;AAAA,MACvB,GAAG,eAAe,QAAQ,yBAAyB;AAAA,MACnD,GAAG,eAAe,QAAQ,yBAAyB;AAAA,MACnD,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,EACH,WAAW,SAAS,QAAQ,GAAG;AAC7B,wBAAoB,SAAS,UAAU,SAAS,UAAU,EAAE;AAC5D,YAAQ,OAAO,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,SAAS,OAAO,MAAM;AAAA,MACtB,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,EACH,WAAW,SAAS,QAAQ,GAAG;AAC7B,QAAI,SAAS,aAAa;AACxB,YAAM,IAAI,UAAU,8CAA8C;AACpE,0BAAsB,SAAS,UAAU,EAAE;AAC3C,YAAQ,OAAO,OAAO,EAAE,MAAM,YAAY,UAAU,SAAS,SAAS,CAAC;AAAA,EACzE,WAAW,SAAS,QAAQ,GAAG;AAC7B,UAAM,aAAa,OAAO,IAAI;AAC9B,UAAM,eAAe,OAAO,IAAI;AAChC,+BAA2B,SAAS,UAAU,cAAc,SAAS,QAAQ;AAC7E,0BAAsB,SAAS,UAAU,EAAE;AAC3C,YAAQ,OAAO,OAAO;AAAA,MACpB,MAAM;AAAA,MACN;AAAA,MACA,WAAW,SAAS;AAAA,MACpB;AAAA,MACA,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,EACH,OAAO;AACL,wBAAoB,SAAS,UAAU,SAAS,UAAU,EAAE;AAC5D,UAAM,UAAU,OAAO,MAAM;AAC7B,UAAM,eAAe,OAAO,IAAI;AAChC,2BAAuB,YAAY;AACnC,YAAQ,OAAO,OAAO;AAAA,MACpB,MAAM;AAAA,MACN;AAAA,MACA,UAAU,SAAS;AAAA,MACnB;AAAA,MACA,UAAU,SAAS;AAAA,IACrB,CAAC;AAAA,EACH;AACA,SAAO,KAAK,4CAA4C;AACxD,SAAO;AACT;AAEO,SAAS,8CAA8C,OAAyB;AACrF,MAAI,CAAC,WAAW,OAAO,gCAAgC,gCAAgC,KAAK,CAAC,CAAC;AAC5F,UAAM,IAAI,UAAU,+CAA+C;AACvE;AAEA,SAAS,gCAAgC,OAKvC;AACA,MACE,EAAE,iBAAiB,eACnB,MAAM,SAAS,yCACf,MAAM,SAAS,qBAAqB;AAEpC,UAAM,IAAI,UAAU,qCAAqC;AAC3D,QAAM,SAAS,IAAI,qBAAqB,KAAK;AAC7C,MAAI,CAAC,WAAW,OAAO,MAAM,CAAC,GAAG,WAAW;AAC1C,UAAM,IAAI,UAAU,kCAAkC;AACxD,MAAI,OAAO,IAAI,MAAM,EAAG,OAAM,IAAI,UAAU,wCAAwC;AACpF,MAAI,OAAO,IAAI,MAAM,EAAG,OAAM,IAAI,UAAU,gDAAgD;AAC5F,QAAM,MAAM,OAAO,GAAG;AACtB,MAAI,MAAM,EAAG,OAAM,IAAI,UAAU,gCAAgC;AACjE,MAAI,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,UAAU,CAAC;AAC/C,UAAM,IAAI,UAAU,gDAAgD;AACtE,QAAM,WAAW,OAAO,IAAI;AAC5B,QAAM,WAAW,OAAO,IAAI;AAC5B,QAAM,gBAAgB,OAAO,IAAI;AACjC,QAAM,WAAW,qBAAqB,gBAAgB;AACtD,MAAI,MAAM,WAAW;AACnB,UAAM,IAAI;AAAA,MACR,MAAM,SAAS,WACX,iCACA;AAAA,IACN;AACF,QAAM,UAAU,OAAO,MAAM,aAAa;AAC1C,QAAM,WAAW,OAAO,UAAU;AAClC,MAAI,aAAa,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5C,UAAM,IAAI,UAAU,4CAA4C;AAClE,SAAO,EAAE,KAAK,UAAU,UAAU,QAAQ;AAC5C;AAmGO,SAAS,wCACd,UACA,eAAe,gDACH;AACZ,wBAAsB,cAAc,CAAC;AACrC,QAAM,UAAU,IAAI,qBAAqB,eAAe,wBAAwB,cAAc;AAC9F,MAAI;AACJ,MAAI;AACJ,MAAI,YAAY;AAChB,MAAI,SAAS,SAAS,cAAc,SAAS,SAAS,YAAY;AAChE,UAAM,SAAS,SAAS,aAAa,IAAI;AACzC,gBAAY,SAAS,MAAM;AAC3B,gBAAY,SAAS;AACrB,8BAA0B,QAAQ;AAClC,eAAW,SAAS,SAAS,KAAK;AAClC,cAAU,SAAS,SAAS,QAAQ;AACpC,eAAW,QAAQ,SAAS,OAAO;AACjC,cAAQ,SAAS,KAAK,EAAE;AACxB,iBAAW,SAAS,KAAK,KAAK;AAC9B,sBAAgB,SAAS,KAAK,QAAQ;AACtC,cAAQ,GAAG,YAAY,KAAK,QAAQ,CAAC;AACrC,gBAAU,SAAS,KAAK,MAAM;AAC9B,cAAQ,IAAI,KAAK,UAAU;AAAA,IAC7B;AAAA,EACF,WAAW,SAAS,SAAS,kBAAkB;AAC7C,UAAM;AACN,gBAAY,SAAS,MAAM;AAC3B,gBAAY,SAAS;AACrB,6BAAyB,QAAQ;AACjC,YAAQ,SAAS,SAAS,OAAO;AACjC,eAAW,QAAQ,SAAS,OAAO;AACjC,cAAQ,SAAS,KAAK,EAAE;AACxB,iBAAW,SAAS,KAAK,MAAM;AAC/B,cAAQ,KAAK,KAAK,SAAS;AAAA,IAC7B;AAAA,EACF,WAAW,SAAS,SAAS,YAAY;AACvC,UAAM;AACN,gBAAY;AACZ,sBAAkB,SAAS,gBAAgB,0BAA0B;AACrE,QAAI,SAAS,UAAU,SAAS,KAAK,SAAS,UAAU,UAAU;AAChE,YAAM,IAAI,UAAU,iCAAiC;AACvD,YAAQ,SAAS,SAAS,cAAc;AACxC,YAAQ,IAAI,WAAW,SAAS,UAAU,OAAO,0BAA0B,CAAC;AAC5E,YAAQ,IAAI,WAAW,SAAS,UAAU,QAAQ,2BAA2B,CAAC;AAC9E,YAAQ,IAAI,SAAS,OAAO;AAC5B,YAAQ,IAAI,SAAS,OAAO;AAC5B,YAAQ,IAAI,SAAS,MAAM;AAAA,EAC7B,WAAW,SAAS,SAAS,iBAAiB;AAC5C,UAAM;AACN,gBAAY,SAAS,OAAO;AAC5B,gBAAY,SAAS;AACrB,iCAA6B,QAAQ;AACrC,YAAQ,IAAI,SAAS,UAAU;AAC/B,YAAQ,KAAK,SAAS,cAAc,IAAI;AACxC,QAAI,SAAS,cAAc,KAAM,SAAQ,IAAI,SAAS,SAAS;AAC/D,YAAQ,IAAI,SAAS,kBAAkB;AACvC,eAAW,SAAS,SAAS,OAAQ,uBAAsB,SAAS,KAAK;AAAA,EAC3E,WAAW,SAAS,SAAS,gBAAgB;AAC3C,UAAM;AACN,gBAAY,SAAS,MAAM;AAC3B,gBAAY,SAAS;AACrB,gCAA4B,QAAQ;AACpC,0BAAsB,SAAS,SAAS,KAAK;AAC7C,YAAQ,KAAK,SAAS,UAAU,IAAI;AACpC,QAAI,SAAS,UAAU,KAAM,eAAc,SAAS,SAAS,KAAK;AAClE,YAAQ,IAAI,SAAS,kBAAkB;AACvC,eAAW,QAAQ,SAAS,MAAO,sBAAqB,SAAS,IAAI;AAAA,EACvE,MAAO,QAAO,IAAI,4BAA4B;AAC9C,QAAM,SAAS,IAAI,qBAAqB,YAAY;AACpD,SAAO,MAAM,cAAc;AAC3B,SAAO,IAAI,CAAC;AACZ,SAAO,IAAI,YAAY,IAAI,CAAC;AAC5B,SAAO,GAAG,GAAG;AACb,SAAO,MAAM,IAAI,WAAW,CAAC,CAAC;AAC9B,SAAO,IAAI,SAAS,QAAQ;AAC5B,SAAO,IAAI,SAAS;AACpB,SAAO,IAAI,QAAQ,MAAM;AACzB,SAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,SAAO,IAAI,QAAQ,OAAO,KAAK,CAAC,CAAC;AACjC,SAAO,OAAO,OAAO;AACvB;AAEO,SAAS,wCACd,OACmC;AACnC,MACE,EAAE,iBAAiB,eACnB,MAAM,SAAS,kDACf,MAAM,SAAS,wBAAwB;AAEvC,UAAM,IAAI,UAAU,wCAAwC;AAC9D,QAAM,SAAS,IAAI,qBAAqB,KAAK;AAC7C,MAAI,CAAC,WAAW,OAAO,MAAM,CAAC,GAAG,cAAc;AAC7C,UAAM,IAAI,UAAU,qCAAqC;AAC3D,MAAI,OAAO,IAAI,MAAM,EAAG,OAAM,IAAI,UAAU,2CAA2C;AACvF,QAAM,QAAQ,OAAO,IAAI;AACzB,OAAK,QAAQ,CAAC,OAAO,EAAG,OAAM,IAAI,UAAU,8CAA8C;AAC1F,QAAM,MAAM,OAAO,GAAG;AACtB,MAAI,MAAM,EAAG,OAAM,IAAI,UAAU,mCAAmC;AACpE,MAAI,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,UAAU,CAAC;AAC/C,UAAM,IAAI,UAAU,8CAA8C;AACpE,QAAM,WAAW,OAAO,UAAU;AAClC,QAAM,YAAY,OAAO,IAAI;AAC7B,QAAM,gBAAgB,OAAO,IAAI;AACjC,QAAM,WAAW,wBAAwB,gBAAgB;AACzD,MAAI,MAAM,WAAW;AACnB,UAAM,IAAI;AAAA,MACR,MAAM,SAAS,WACX,oCACA;AAAA,IACN;AACF,QAAM,SAAS,IAAI,qBAAqB,OAAO,MAAM,aAAa,CAAC;AACnE,QAAM,WAAW,OAAO,UAAU;AAClC,MAAI,aAAa,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5C,UAAM,IAAI,UAAU,+CAA+C;AACrE,QAAM,aAAa,QAAQ,OAAO;AAClC,MAAI;AACJ,MAAI,QAAQ,KAAK,QAAQ,GAAG;AAC1B,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,0CAA0C;AACjE,UAAM,QAAQ,UAAU,MAAM;AAC9B,sBAAkB,MAAM,IAAI,6BAA6B;AACzD,UAAM,WAAW,SAAS,MAAM;AAChC,UAAM,QAA6C,CAAC;AACpD,UAAM,MAAM,oBAAI,IAAY;AAC5B,QAAI,WAA0B;AAC9B,aAAS,QAAQ,GAAG,QAAQ,WAAW,SAAS,GAAG;AACjD,YAAM,KAAK,OAAO,MAAM;AACxB,YAAM,YAAY,UAAU,MAAM;AAClC,YAAM,WAAW,eAAe,MAAM;AACtC,YAAM,UAAU,OAAO,GAAG;AAC1B,YAAM,WAAW,gBAAgB,OAAO;AACxC,YAAM,SAAS,SAAS,MAAM;AAC9B,YAAM,aAAa,OAAO,IAAI;AAC9B,wBAAkB,IAAI,4BAA4B;AAClD,UACE,UAAU,SAAS,MAAM,QACzB,UAAU,OAAO,MAAM,MACvB,IAAI,IAAI,EAAE,KACV,aAAa,MACZ,aAAa,QAAQ,CAAC,cAAc,QAAQ,KAC5C,aAAa,SAAS,QAAQ,IAAI,cAAc,WAAW,cAAc;AAE1E,cAAM,IAAI,UAAU,sCAAsC;AAC5D,UAAI,IAAI,EAAE;AACV,iBAAW;AACX,YAAM,KAAK,OAAO,OAAO,EAAE,IAAI,OAAO,WAAW,UAAU,UAAU,QAAQ,WAAW,CAAC,CAAC;AAAA,IAC5F;AACA,eAAW,OAAO,OAAO;AAAA,MACvB,MAAM,QAAQ,IAAI,aAAa;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,OAAO,OAAO,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH,WAAW,QAAQ,GAAG;AACpB,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,0CAA0C;AACjE,UAAM,UAAU,OAAO,MAAM;AAC7B,sBAAkB,SAAS,6BAA6B;AACxD,UAAM,MAAM,oBAAI,IAAY;AAC5B,UAAM,QAA4C,CAAC;AACnD,aAAS,QAAQ,GAAG,QAAQ,WAAW,SAAS,GAAG;AACjD,YAAM,KAAK,OAAO,MAAM;AACxB,YAAM,SAAS,UAAU,MAAM;AAC/B,YAAM,YAAY,OAAO,KAAK,6BAA6B;AAC3D,wBAAkB,IAAI,4BAA4B;AAClD,wBAAkB,OAAO,IAAI,6BAA6B;AAC1D,UACE,IAAI,IAAI,EAAE,KACT,OAAO,SAAS,WAAW,OAAO,OAAO,WAC1C,cAAc,EAAE,OAAO,SAAS,WAAW,OAAO,OAAO;AAEzD,cAAM,IAAI,UAAU,oCAAoC;AAC1D,UAAI,IAAI,EAAE;AACV,YAAM,KAAK,OAAO,OAAO,EAAE,IAAI,QAAQ,UAAU,CAAC,CAAC;AAAA,IACrD;AACA,eAAW,OAAO,OAAO;AAAA,MACvB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,OAAO,OAAO,OAAO,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH,WAAW,QAAQ,GAAG;AACpB,QAAI,cAAc,KAAK,UAAW,OAAM,IAAI,UAAU,wCAAwC;AAC9F,UAAM,iBAAiB,OAAO,MAAM;AACpC,sBAAkB,gBAAgB,0BAA0B;AAC5D,UAAM,QAAQ,eAAe,QAAQ,0BAA0B;AAC/D,UAAM,SAAS,eAAe,QAAQ,2BAA2B;AACjE,QAAI,SAAS,KAAK,UAAU,EAAG,OAAM,IAAI,UAAU,iCAAiC;AACpF,eAAW,OAAO,OAAO;AAAA,MACvB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,WAAW,OAAO,OAAO,EAAE,OAAO,OAAO,CAAC;AAAA,MAC1C,SAAS,OAAO,IAAI;AAAA,MACpB,SAAS,OAAO,IAAI;AAAA,MACpB,QAAQ,OAAO,IAAI;AAAA,IACrB,CAAC;AAAA,EACH,WAAW,QAAQ,GAAG;AACpB,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,gDAAgD;AACvE,UAAM,aAAa,OAAO,IAAI;AAC9B,UAAM,YAAY,OAAO,KAAK,kCAAkC,IAAI,OAAO,IAAI,IAAI;AACnF,UAAM,qBAAqB,OAAO,IAAI;AACtC,+BAA2B,kBAAkB;AAC7C,UAAM,SAAiD,CAAC;AACxD,UAAM,MAAM,oBAAI,IAAY;AAC5B,aAAS,SAAS,GAAG,SAAS,WAAW,UAAU,GAAG;AACpD,YAAM,QAAQ,qBAAqB,MAAM;AACzC,UAAI,MAAM,UAAU,aAAa,UAAU,IAAI,IAAI,MAAM,EAAE;AACzD,cAAM,IAAI,UAAU,0CAA0C;AAChE,UAAI,IAAI,MAAM,EAAE;AAChB,aAAO,KAAK,KAAK;AAAA,IACnB;AACA,UAAM,eAAe,aAAa;AAClC,QACE,eAAe,cACf,eAAe,cAAc,SAC5B,cAAc,QAAQ,cAAc;AAErC,YAAM,IAAI,UAAU,6CAA6C;AACnE,eAAW,OAAO,OAAO;AAAA,MACvB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,OAAO,OAAO,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AACD,iCAA6B,QAAQ;AAAA,EACvC,OAAO;AACL,QAAI,YAAY;AACd,YAAM,IAAI,WAAW,8CAA8C;AACrE,UAAM,QAAQ,qBAAqB,MAAM;AACzC,UAAM,QAAQ,OAAO,KAAK,6BAA6B,IAAI,aAAa,MAAM,IAAI;AAClF,QAAI,UAAU,QAAQ,CAAC;AACrB,YAAM,IAAI,UAAU,+CAA+C;AACrE,UAAM,qBAAqB,OAAO,IAAI;AACtC,+BAA2B,kBAAkB;AAC7C,UAAM,QAA+C,CAAC;AACtD,aAAS,QAAQ,GAAG,QAAQ,WAAW,SAAS,EAAG,OAAM,KAAK,oBAAoB,MAAM,CAAC;AACzF,eAAW,OAAO,OAAO;AAAA,MACvB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,OAAO,OAAO,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,gCAA4B,QAAQ;AAAA,EACtC;AACA,SAAO,KAAK,+CAA+C;AAC3D,SAAO;AACT;AAEO,SAAS,sDAAsD,OAAyB;AAC7F,QAAM,WAAW,wCAAwC,KAAK;AAC9D,MAAI,CAAC,WAAW,OAAO,wCAAwC,UAAU,MAAM,MAAM,CAAC;AACpF,UAAM,IAAI,UAAU,kDAAkD;AAC1E;AAEA,SAAS,oBAAoB,UAAkB,UAAkB,WAAyB;AACxF,MACE,CAAC,OAAO,UAAU,QAAQ,KAC1B,WAAW,KACX,WAAW;AAEX,UAAM,IAAI,WAAW,0CAA0C;AACjE,wBAAsB,UAAU,SAAS;AAC3C;AACA,SAAS,sBAAsB,UAAkB,WAAyB;AACxE,QAAM,UAAU,wBAAwB,iBAAiB;AACzD,MACE,CAAC,OAAO,UAAU,QAAQ,KAC1B,WAAW,WACX,WAAW;AAEX,UAAM,IAAI,WAAW,6CAA6C;AACtE;AACA,SAAS,2BACP,WACA,cACA,UACM;AACN,MACE,CAAC,OAAO,UAAU,SAAS,KAC3B,YAAY,KACZ,YAAY;AAEZ,UAAM,IAAI,WAAW,6CAA6C;AACpE,yBAAuB,YAAY;AACnC,wBAAsB,UAAU,EAAE;AACpC;AACA,SAAS,uBAAuB,cAA4B;AAC1D,MACE,CAAC,OAAO,UAAU,YAAY,KAC9B,eAAe,KACf,eAAe;AAEf,UAAM,IAAI,WAAW,0CAA0C;AACnE;AACA,SAAS,2BAA2B,oBAAkC;AACpE,MACE,CAAC,OAAO,UAAU,kBAAkB,KACpC,qBAAqB,KACrB,qBAAqB;AAErB,UAAM,IAAI,WAAW,8CAA8C;AACvE;AACA,SAAS,sBACP,QACA,MACM;AACN,2BAAyB,IAAI;AAC7B,SAAO,IAAI,KAAK,KAAK;AACrB,UAAQ,QAAQ,KAAK,EAAE;AACvB,cAAY,QAAQ,KAAK,OAAO,oCAAoC;AACpE,YAAU,QAAQ,KAAK,UAAU;AACjC,SAAO,KAAK,KAAK,WAAW,IAAI;AAChC,MAAI,KAAK,WAAW,MAAM;AACxB,YAAQ,QAAQ,KAAK,OAAO,EAAE;AAC9B,gBAAY,QAAQ,KAAK,OAAO,MAAM,oCAAoC;AAC1E,oBAAgB,QAAQ,KAAK,OAAO,QAAQ;AAC5C,cAAU,QAAQ,KAAK,OAAO,UAAU;AAAA,EAC1C;AACF;AACA,SAAS,qBAAqB,QAAoE;AAChG,QAAM,QAAQ,OAAO,IAAI;AACzB,QAAM,KAAK,OAAO,MAAM;AACxB,QAAM,QAAQ,WAAW,QAAQ,oCAAoC;AACrE,QAAM,aAAa,SAAS,MAAM;AAClC,QAAM,SAAS,OAAO,KAAK,8BAA8B,IACrD,OAAO,OAAO;AAAA,IACZ,IAAI,OAAO,MAAM;AAAA,IACjB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,IAC7D,UAAU,eAAe,MAAM;AAAA,IAC/B,YAAY,SAAS,MAAM;AAAA,EAC7B,CAAC,IACD;AACJ,QAAM,OAAO,OAAO,OAAO,EAAE,OAAO,IAAI,OAAO,YAAY,OAAO,CAAC;AACnE,2BAAyB,IAAI;AAC7B,SAAO;AACT;AACA,SAAS,yBAAyB,MAAkD;AAClF,oBAAkB,KAAK,IAAI,+BAA+B;AAC1D,MAAI,KAAK,WAAW,MAAM;AACxB,sBAAkB,KAAK,OAAO,IAAI,8BAA8B;AAChE,QAAI,KAAK,OAAO,aAAa;AAC3B,wBAAkB,KAAK,OAAO,UAAU,8BAA8B;AAAA,EAC1E;AACF;AACA,SAAS,qBACP,QACA,MACM;AACN,UAAQ,QAAQ,KAAK,EAAE;AACvB,aAAW,QAAQ,KAAK,MAAM;AAC9B,SAAO,KAAK,KAAK,SAAS;AAC1B,kBAAgB,QAAQ,KAAK,QAAQ;AACrC,SAAO,IAAI,KAAK,KAAK;AACrB,cAAY,QAAQ,KAAK,MAAM,oCAAoC;AACnE,YAAU,QAAQ,KAAK,MAAM;AAC7B,iBAAe,QAAQ,KAAK,SAAS;AACrC,gBAAc,QAAQ,KAAK,OAAO;AACpC;AACA,SAAS,oBAAoB,QAAmE;AAC9F,SAAO,OAAO,OAAO;AAAA,IACnB,IAAI,OAAO,MAAM;AAAA,IACjB,QAAQ,UAAU,MAAM;AAAA,IACxB,WAAW,OAAO,KAAK,6BAA6B;AAAA,IACpD,UAAU,eAAe,MAAM;AAAA,IAC/B,OAAO,OAAO,IAAI;AAAA,IAClB,MAAM,WAAW,QAAQ,oCAAoC;AAAA,IAC7D,QAAQ,SAAS,MAAM;AAAA,IACvB,WAAW,cAAc,MAAM;AAAA,IAC/B,SAAS,aAAa,MAAM;AAAA,EAC9B,CAAC;AACH;AACA,SAAS,6BACP,UACM;AACN,MAAI,SAAS,OAAO,SAAS;AAC3B,UAAM,IAAI,WAAW,gDAAgD;AACvE,6BAA2B,SAAS,kBAAkB;AACtD,QAAM,MAAM,oBAAI,IAAY;AAC5B,MAAI,WAAW;AACf,WAAS,SAAS,GAAG,SAAS,SAAS,OAAO,QAAQ,UAAU,GAAG;AACjE,UAAM,QAAQ,SAAS,OAAO,MAAM;AACpC,6BAAyB,KAAK;AAC9B,QAAI,MAAM,UAAU,SAAS,aAAa,UAAU,IAAI,IAAI,MAAM,EAAE;AAClE,YAAM,IAAI,UAAU,0CAA0C;AAChE,QAAI,IAAI,MAAM,EAAE;AAChB,eAAW,iBAAiB,UAAU,0BAA0B,KAAK,CAAC;AAAA,EACxE;AACA,QAAM,eAAe,SAAS,aAAa,SAAS,OAAO;AAC3D,MACE,CAAC,OAAO,UAAU,SAAS,UAAU,KACrC,SAAS,aAAa,KACtB,eAAe,cACf,SAAS,eAAe,SAAS,cAAc,SAC9C,SAAS,cAAc,QAAQ,SAAS,cAAc,gBACtD,SAAS,cAAc,QAAQ,SAAS,OAAO,WAAW,KAC3D,aAAa,SAAS;AAEtB,UAAM,IAAI,UAAU,6CAA6C;AACrE;AACA,SAAS,4BACP,UACM;AACN,MAAI,SAAS,MAAM,SAAS;AAC1B,UAAM,IAAI,WAAW,8CAA8C;AACrE,MAAI,SAAS,UAAU,QAAQ,CAAC,SAAS;AACvC,UAAM,IAAI,UAAU,+CAA+C;AACrE,2BAAyB,SAAS,KAAK;AACvC,6BAA2B,SAAS,kBAAkB;AACtD,MAAI,WAAW,0BAA0B,SAAS,KAAK;AACvD,MAAI,SAAS,UAAU;AACrB,eAAW,iBAAiB,UAAU,wBAAwB,SAAS,KAAK,CAAC;AAC/E,QAAM,MAAM,oBAAI,IAAY;AAC5B,QAAM,UAAU,oBAAI,IAAoB;AACxC,QAAM,YAAY,oBAAI,IAAY;AAClC,aAAW,QAAQ,SAAS,OAAO;AACjC,sBAAkB,KAAK,IAAI,6BAA6B;AACxD,sBAAkB,KAAK,OAAO,IAAI,gCAAgC;AAClE,UAAM,YAAY,GAAG,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE;AACvD,UAAM,oBAAoB,EACxB,KAAK,OAAO,SAAS,WAAW,KAAK,OAAO,OAAO,SAAS,MAAM;AAEpE,UAAM,WAAW,GAAG,SAAS,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,KAAK;AACtE,QACE,IAAI,IAAI,KAAK,EAAE,KACd,KAAK,OAAO,SAAS,WAAW,KAAK,OAAO,OAAO,SAAS,MAAM,MACnE,KAAK,cAAc,qBACnB,KAAK,aAAa,KAAK,MACtB,KAAK,aAAa,SAChB,CAAC,cAAc,KAAK,QAAQ,KAAK,QAAQ,IAAI,KAAK,QAAQ,MAAM,cACnE,UAAU,IAAI,QAAQ;AAEtB,YAAM,IAAI,UAAU,wCAAwC;AAC9D,iCAA6B,IAAI;AACjC,QAAI,IAAI,KAAK,EAAE;AACf,YAAQ,IAAI,KAAK,IAAI,SAAS;AAC9B,cAAU,IAAI,QAAQ;AACtB,eAAW,iBAAiB,UAAU,yBAAyB,IAAI,CAAC;AAAA,EACtE;AACA,MAAI,aAAa,SAAS;AACxB,UAAM,IAAI,UAAU,6CAA6C;AACrE;AACA,SAAS,6BAA6B,MAAiD;AACrF,MAAI,KAAK,QAAQ,SAAS,SAAS;AACjC,UAAM,WAAW,oBAAI,IAAY;AACjC,eAAW,MAAM,KAAK,QAAQ,UAAU;AACtC,UAAI,CAAC,cAAc,EAAE,KAAK,OAAO,KAAK,MAAM,SAAS,IAAI,EAAE;AACzD,cAAM,IAAI,UAAU,4CAA4C;AAClE,eAAS,IAAI,EAAE;AAAA,IACjB;AAAA,EACF,WAAW,KAAK,QAAQ,SAAS,aAAa;AAC5C,eAAW,YAAY,CAAC,KAAK,QAAQ,OAAO,KAAK,QAAQ,GAAG;AAC1D,UACE,SAAS,WAAW,SACnB,CAAC,cAAc,SAAS,MAAM,KAAK,SAAS,WAAW,KAAK;AAE7D,cAAM,IAAI,UAAU,gDAAgD;AAAA,EAC1E;AACF;AACA,SAAS,0BAA0B,MAAoD;AACrF,MAAI,QAAQ,oBAAoB,KAAK,KAAK;AAC1C,MAAI,KAAK,WAAW,KAAM,SAAQ,iBAAiB,OAAO,oBAAoB,KAAK,OAAO,IAAI,CAAC;AAC/F,SAAO;AACT;AACA,SAAS,yBAAyB,MAAmD;AACnF,SAAO,iBAAiB,oBAAoB,KAAK,IAAI,GAAG,wBAAwB,KAAK,OAAO,CAAC;AAC/F;AACA,SAAS,wBAAwB,SAA+C;AAC9E,MAAI,QAAQ,SAAS,SAAS;AAC5B,QAAI,QAAQ,QAAQ,SAAS,OAAO,IAAI,wBAAwB,QAAQ,IAAI;AAC5E,QAAI,QAAQ,gBAAgB;AAC1B,cAAQ,iBAAiB,OAAO,oBAAoB,QAAQ,YAAY,IAAI,CAAC;AAC/E,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,SAAS,WAAW,QAAQ,SAAS,YAAa,QAAO;AACrE,MAAI,QAAQ,SAAS,SAAS;AAC5B,QAAI,QAAQ,wBAAwB,QAAQ,KAAK;AACjD,eAAW,UAAU,QAAQ,QAAQ;AACnC,cAAQ,iBAAiB,OAAO,oBAAoB,OAAO,IAAI,CAAC;AAChE,iBAAW,YAAY,OAAO;AAC5B,gBAAQ,iBAAiB,OAAO,oBAAoB,QAAQ,CAAC;AAAA,IACjE;AACA,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,SAAS,SAAS;AAC5B,QAAI,QAAQ;AACZ,eAAW,OAAO,QAAQ;AACxB,iBAAW,QAAQ;AACjB,YAAI,SAAS,KAAM,SAAQ,iBAAiB,OAAO,wBAAwB,KAAK,IAAI,CAAC;AACzF,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,oBAAoB,QAAQ,WAAW;AAAA,IACvC,oBAAoB,QAAQ,OAAO;AAAA,EACrC;AACF;AACA,SAAS,wBAAwB,MAA4C;AAC3E,MAAI,QAAQ;AACZ,aAAW,aAAa,KAAK;AAC3B,eAAW,OAAO,UAAU,MAAM;AAChC,cAAQ,iBAAiB,OAAO,oBAAoB,IAAI,IAAI,CAAC;AAC7D,cAAQ,iBAAiB,OAAO,oBAAoB,IAAI,MAAM,UAAU,CAAC;AACzE,UAAI,IAAI,MAAM,aAAa;AACzB,gBAAQ,iBAAiB,OAAO,oBAAoB,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC3E;AACF,SAAO;AACT;AACA,SAAS,oBAAoB,OAAuB;AAClD,SAAO,WAAW,OAAO,6BAA6B,EAAE;AAC1D;AACA,SAAS,iBAAiB,MAAc,OAAuB;AAC7D,QAAM,QAAQ,OAAO;AACrB,MAAI,CAAC,OAAO,cAAc,KAAK,EAAG,OAAM,IAAI,WAAW,wCAAwC;AAC/F,SAAO;AACT;AACA,SAAS,YAAY,MAAoD;AACvE,SAAO,SAAS,UACZ,IACA,SAAS,UACP,IACA,SAAS,cACP,IACA,SAAS,UACP,IACA,SAAS,UACP,IACA,SAAS,UACP,IACA,IAAI,wBAAwB;AAC5C;AACA,SAAS,gBAAgB,KAAmD;AAC1E,SAAO,QAAQ,IACX,UACA,QAAQ,IACN,UACA,QAAQ,IACN,cACA,QAAQ,IACN,UACA,QAAQ,IACN,UACA,QAAQ,IACN,UACA,IAAI,wBAAwB;AAC5C;AACA,SAAS,cAAc,IAAqB;AAC1C,SACE,kBAAkB,KAAK,EAAE,KACzB,GAAG,MAAM,GAAG,EAAE,MAAM,sBACpB,GAAG,MAAM,EAAE,MAAM;AAErB;AACA,SAAS,kBAAkB,IAAY,OAAqB;AAC1D,MAAI,CAAC,cAAc,EAAE,EAAG,OAAM,IAAI,UAAU,GAAG,KAAK,aAAa;AACnE;AACA,SAAS,0BACP,UACM;AACN,MAAI,SAAS,MAAM,SAAS;AAC1B,UAAM,IAAI,WAAW,0CAA0C;AACjE,oBAAkB,SAAS,MAAM,IAAI,6BAA6B;AAClE,QAAM,MAAM,oBAAI,IAAY;AAC5B,MAAI,WAA0B;AAC9B,aAAW,QAAQ,SAAS,OAAO;AACjC,sBAAkB,KAAK,IAAI,4BAA4B;AACvD,QACE,KAAK,MAAM,SAAS,SAAS,MAAM,QACnC,KAAK,MAAM,OAAO,SAAS,MAAM,MACjC,IAAI,IAAI,KAAK,EAAE,KACf,KAAK,aAAa,KAAK,MACtB,KAAK,aAAa,QAAQ,CAAC,cAAc,KAAK,QAAQ,KACtD,aAAa,SACX,SAAS,SAAS,aAAa,KAAK,cAAc,WAAW,KAAK,cAAc,WACnF;AACA,YAAM,IAAI,UAAU,sCAAsC;AAAA,IAC5D;AACA,QAAI,IAAI,KAAK,EAAE;AACf,eAAW,KAAK;AAAA,EAClB;AACF;AACA,SAAS,yBACP,UACM;AACN,MAAI,SAAS,MAAM,SAAS;AAC1B,UAAM,IAAI,WAAW,0CAA0C;AACjE,oBAAkB,SAAS,SAAS,6BAA6B;AACjE,QAAM,MAAM,oBAAI,IAAY;AAC5B,aAAW,QAAQ,SAAS,OAAO;AACjC,sBAAkB,KAAK,IAAI,4BAA4B;AACvD,sBAAkB,KAAK,OAAO,IAAI,6BAA6B;AAC/D,QACE,IAAI,IAAI,KAAK,EAAE,KACd,KAAK,OAAO,SAAS,WAAW,KAAK,OAAO,OAAO,SAAS,WAC7D,KAAK,cAAc,EAAE,KAAK,OAAO,SAAS,WAAW,KAAK,OAAO,OAAO,SAAS;AAEjF,YAAM,IAAI,UAAU,oCAAoC;AAC1D,QAAI,IAAI,KAAK,EAAE;AAAA,EACjB;AACF;AACA,SAAS,IAAI,OAAsB;AACjC,QAAM,IAAI,UAAU,WAAW,KAAK,EAAE;AACxC;","names":[]}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,
|
|
3
|
+
SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,
|
|
4
|
+
SPREADSHEET_ARTIFACT_QUERY_VERSION,
|
|
5
|
+
assertCanonicalSpreadsheetArtifactKernelProjectionBytes,
|
|
6
|
+
assertCanonicalSpreadsheetArtifactKernelQueryBytes,
|
|
7
|
+
decodeSpreadsheetArtifactKernelProjection,
|
|
8
|
+
decodeSpreadsheetArtifactKernelQuery,
|
|
9
|
+
encodeSpreadsheetArtifactKernelProjection,
|
|
10
|
+
encodeSpreadsheetArtifactKernelQuery
|
|
11
|
+
} from "./chunk-CADSX6UN.js";
|
|
12
|
+
import {
|
|
13
|
+
DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,
|
|
14
|
+
DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
15
|
+
DOCUMENT_ARTIFACT_COMMAND_VERSION,
|
|
16
|
+
DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,
|
|
17
|
+
DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
|
|
18
|
+
DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,
|
|
19
|
+
DOCUMENT_ARTIFACT_QUERY_VERSION,
|
|
20
|
+
assertCanonicalDocumentArtifactCommandBytes,
|
|
21
|
+
assertCanonicalDocumentArtifactQueryBytes,
|
|
22
|
+
assertCanonicalDocumentArtifactQueryResponseBytes,
|
|
23
|
+
decodeDocumentArtifactCommandBatch,
|
|
24
|
+
decodeDocumentArtifactQuery,
|
|
25
|
+
decodeDocumentArtifactQueryResponse,
|
|
26
|
+
encodeDocumentArtifactCommandBatch,
|
|
27
|
+
encodeDocumentArtifactQuery,
|
|
28
|
+
encodeDocumentArtifactQueryResponse
|
|
29
|
+
} from "./chunk-RIY7GYQS.js";
|
|
30
|
+
import {
|
|
31
|
+
PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,
|
|
32
|
+
PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
33
|
+
PRESENTATION_ARTIFACT_COMMAND_VERSION,
|
|
34
|
+
PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,
|
|
35
|
+
PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
|
|
36
|
+
PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,
|
|
37
|
+
PRESENTATION_ARTIFACT_QUERY_VERSION,
|
|
38
|
+
assertCanonicalPresentationArtifactCommandBytes,
|
|
39
|
+
assertCanonicalPresentationArtifactQueryBytes,
|
|
40
|
+
assertCanonicalPresentationArtifactQueryResponseBytes,
|
|
41
|
+
decodePresentationArtifactCommandBatch,
|
|
42
|
+
decodePresentationArtifactQuery,
|
|
43
|
+
decodePresentationArtifactQueryResponse,
|
|
44
|
+
encodePresentationArtifactCommandBatch,
|
|
45
|
+
encodePresentationArtifactQuery,
|
|
46
|
+
encodePresentationArtifactQueryResponse
|
|
47
|
+
} from "./chunk-D2HKF2EF.js";
|
|
48
|
+
import {
|
|
49
|
+
SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,
|
|
50
|
+
SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
51
|
+
SPREADSHEET_ARTIFACT_COMMAND_VERSION,
|
|
52
|
+
assertCanonicalSpreadsheetArtifactCommandBytes,
|
|
53
|
+
decodeSpreadsheetArtifactCommandBatch,
|
|
54
|
+
encodeSpreadsheetArtifactCommandBatch
|
|
55
|
+
} from "./chunk-LSB7GRLG.js";
|
|
56
|
+
|
|
57
|
+
// src/editable-artifact-codec-registry.ts
|
|
58
|
+
var spreadsheet = Object.freeze({
|
|
59
|
+
modality: "spreadsheet",
|
|
60
|
+
modelSchemaVersion: 1,
|
|
61
|
+
snapshotVersion: 1,
|
|
62
|
+
command: Object.freeze({
|
|
63
|
+
magic: "OGASC001",
|
|
64
|
+
version: SPREADSHEET_ARTIFACT_COMMAND_VERSION,
|
|
65
|
+
maximumBytes: SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,
|
|
66
|
+
maximumCommands: SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
67
|
+
encode: (value) => encodeSpreadsheetArtifactCommandBatch(
|
|
68
|
+
value
|
|
69
|
+
),
|
|
70
|
+
decode: decodeSpreadsheetArtifactCommandBatch,
|
|
71
|
+
assertCanonical: assertCanonicalSpreadsheetArtifactCommandBytes
|
|
72
|
+
}),
|
|
73
|
+
query: Object.freeze({
|
|
74
|
+
magic: "OGAKQ001",
|
|
75
|
+
responseMagic: "OGAKV001",
|
|
76
|
+
version: SPREADSHEET_ARTIFACT_QUERY_VERSION,
|
|
77
|
+
responseVersion: SPREADSHEET_ARTIFACT_QUERY_VERSION,
|
|
78
|
+
maximumBytes: SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,
|
|
79
|
+
maximumResponseBytes: SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,
|
|
80
|
+
encode: (value) => encodeSpreadsheetArtifactKernelQuery(
|
|
81
|
+
value
|
|
82
|
+
),
|
|
83
|
+
decode: decodeSpreadsheetArtifactKernelQuery,
|
|
84
|
+
assertCanonical: assertCanonicalSpreadsheetArtifactKernelQueryBytes,
|
|
85
|
+
encodeResponse: (value) => encodeSpreadsheetArtifactKernelProjection(
|
|
86
|
+
value
|
|
87
|
+
),
|
|
88
|
+
decodeResponse: decodeSpreadsheetArtifactKernelProjection,
|
|
89
|
+
assertCanonicalResponse: assertCanonicalSpreadsheetArtifactKernelProjectionBytes
|
|
90
|
+
}),
|
|
91
|
+
concurrency: Object.freeze({
|
|
92
|
+
semantics: "causal-crdt-v1",
|
|
93
|
+
collaborationEnvelope: "OGACO001",
|
|
94
|
+
staleBaseMustBeRejected: false
|
|
95
|
+
})
|
|
96
|
+
});
|
|
97
|
+
var document = Object.freeze({
|
|
98
|
+
modality: "document",
|
|
99
|
+
modelSchemaVersion: 1,
|
|
100
|
+
snapshotVersion: 1,
|
|
101
|
+
command: Object.freeze({
|
|
102
|
+
magic: "OGADC001",
|
|
103
|
+
version: DOCUMENT_ARTIFACT_COMMAND_VERSION,
|
|
104
|
+
maximumBytes: DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,
|
|
105
|
+
maximumCommands: DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
106
|
+
encode: (value) => encodeDocumentArtifactCommandBatch(
|
|
107
|
+
value
|
|
108
|
+
),
|
|
109
|
+
decode: decodeDocumentArtifactCommandBatch,
|
|
110
|
+
assertCanonical: assertCanonicalDocumentArtifactCommandBytes
|
|
111
|
+
}),
|
|
112
|
+
query: Object.freeze({
|
|
113
|
+
magic: "OGADQ001",
|
|
114
|
+
responseMagic: "OGADP001",
|
|
115
|
+
version: DOCUMENT_ARTIFACT_QUERY_VERSION,
|
|
116
|
+
responseVersion: DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,
|
|
117
|
+
maximumBytes: DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,
|
|
118
|
+
maximumResponseBytes: DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
|
|
119
|
+
encode: (value) => encodeDocumentArtifactQuery(value),
|
|
120
|
+
decode: decodeDocumentArtifactQuery,
|
|
121
|
+
assertCanonical: assertCanonicalDocumentArtifactQueryBytes,
|
|
122
|
+
encodeResponse: (value) => encodeDocumentArtifactQueryResponse(
|
|
123
|
+
value
|
|
124
|
+
),
|
|
125
|
+
decodeResponse: decodeDocumentArtifactQueryResponse,
|
|
126
|
+
assertCanonicalResponse: assertCanonicalDocumentArtifactQueryResponseBytes
|
|
127
|
+
}),
|
|
128
|
+
concurrency: Object.freeze({
|
|
129
|
+
semantics: "authoritative-serialized-stale-base-v1",
|
|
130
|
+
collaborationEnvelope: null,
|
|
131
|
+
staleBaseMustBeRejected: true
|
|
132
|
+
})
|
|
133
|
+
});
|
|
134
|
+
var presentation = Object.freeze({
|
|
135
|
+
modality: "presentation",
|
|
136
|
+
modelSchemaVersion: 1,
|
|
137
|
+
snapshotVersion: 1,
|
|
138
|
+
command: Object.freeze({
|
|
139
|
+
magic: "OGAPC001",
|
|
140
|
+
version: PRESENTATION_ARTIFACT_COMMAND_VERSION,
|
|
141
|
+
maximumBytes: PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,
|
|
142
|
+
maximumCommands: PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,
|
|
143
|
+
encode: (value) => encodePresentationArtifactCommandBatch(
|
|
144
|
+
value
|
|
145
|
+
),
|
|
146
|
+
decode: decodePresentationArtifactCommandBatch,
|
|
147
|
+
assertCanonical: assertCanonicalPresentationArtifactCommandBytes
|
|
148
|
+
}),
|
|
149
|
+
query: Object.freeze({
|
|
150
|
+
magic: "OGAPQ001",
|
|
151
|
+
responseMagic: "OGAPV001",
|
|
152
|
+
version: PRESENTATION_ARTIFACT_QUERY_VERSION,
|
|
153
|
+
responseVersion: PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,
|
|
154
|
+
maximumBytes: PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,
|
|
155
|
+
maximumResponseBytes: PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
|
|
156
|
+
encode: (value) => encodePresentationArtifactQuery(
|
|
157
|
+
value
|
|
158
|
+
),
|
|
159
|
+
decode: decodePresentationArtifactQuery,
|
|
160
|
+
assertCanonical: assertCanonicalPresentationArtifactQueryBytes,
|
|
161
|
+
encodeResponse: (value) => encodePresentationArtifactQueryResponse(
|
|
162
|
+
value
|
|
163
|
+
),
|
|
164
|
+
decodeResponse: decodePresentationArtifactQueryResponse,
|
|
165
|
+
assertCanonicalResponse: assertCanonicalPresentationArtifactQueryResponseBytes
|
|
166
|
+
}),
|
|
167
|
+
concurrency: Object.freeze({
|
|
168
|
+
semantics: "authoritative-serialized-stale-base-v1",
|
|
169
|
+
collaborationEnvelope: null,
|
|
170
|
+
staleBaseMustBeRejected: true
|
|
171
|
+
})
|
|
172
|
+
});
|
|
173
|
+
var EDITABLE_ARTIFACT_CODEC_REGISTRY = Object.freeze({ spreadsheet, document, presentation });
|
|
174
|
+
function editableArtifactCodecFor(input) {
|
|
175
|
+
const descriptor = EDITABLE_ARTIFACT_CODEC_REGISTRY[input.durableModality];
|
|
176
|
+
if (!descriptor) throw new TypeError("unsupported durable editable artifact modality");
|
|
177
|
+
if (input.modelSchemaVersion !== descriptor.modelSchemaVersion) {
|
|
178
|
+
throw new TypeError(
|
|
179
|
+
"editable artifact model schema version is incompatible with its durable modality"
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
if (input.commandProtocolVersion !== descriptor.command.version) {
|
|
183
|
+
throw new TypeError(
|
|
184
|
+
"editable artifact command protocol version is incompatible with its durable modality"
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
return descriptor;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export {
|
|
191
|
+
EDITABLE_ARTIFACT_CODEC_REGISTRY,
|
|
192
|
+
editableArtifactCodecFor
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=chunk-FJBG5E4O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/editable-artifact-codec-registry.ts"],"sourcesContent":["import {\n DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,\n DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,\n DOCUMENT_ARTIFACT_COMMAND_VERSION,\n DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,\n DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,\n DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,\n DOCUMENT_ARTIFACT_QUERY_VERSION,\n assertCanonicalDocumentArtifactCommandBytes,\n assertCanonicalDocumentArtifactQueryBytes,\n assertCanonicalDocumentArtifactQueryResponseBytes,\n decodeDocumentArtifactCommandBatch,\n decodeDocumentArtifactQuery,\n decodeDocumentArtifactQueryResponse,\n encodeDocumentArtifactCommandBatch,\n encodeDocumentArtifactQuery,\n encodeDocumentArtifactQueryResponse,\n} from \"./document-artifact-commands\";\nimport {\n PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,\n PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,\n PRESENTATION_ARTIFACT_COMMAND_VERSION,\n PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,\n PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,\n PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,\n PRESENTATION_ARTIFACT_QUERY_VERSION,\n assertCanonicalPresentationArtifactCommandBytes,\n assertCanonicalPresentationArtifactQueryBytes,\n assertCanonicalPresentationArtifactQueryResponseBytes,\n decodePresentationArtifactCommandBatch,\n decodePresentationArtifactQuery,\n decodePresentationArtifactQueryResponse,\n encodePresentationArtifactCommandBatch,\n encodePresentationArtifactQuery,\n encodePresentationArtifactQueryResponse,\n} from \"./presentation-artifact-commands\";\nimport {\n SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,\n SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,\n SPREADSHEET_ARTIFACT_COMMAND_VERSION,\n assertCanonicalSpreadsheetArtifactCommandBytes,\n decodeSpreadsheetArtifactCommandBatch,\n encodeSpreadsheetArtifactCommandBatch,\n} from \"./spreadsheet-artifact-commands\";\nimport {\n SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,\n SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,\n SPREADSHEET_ARTIFACT_QUERY_VERSION,\n assertCanonicalSpreadsheetArtifactKernelProjectionBytes,\n assertCanonicalSpreadsheetArtifactKernelQueryBytes,\n decodeSpreadsheetArtifactKernelProjection,\n decodeSpreadsheetArtifactKernelQuery,\n encodeSpreadsheetArtifactKernelProjection,\n encodeSpreadsheetArtifactKernelQuery,\n} from \"./spreadsheet-artifact-query\";\nimport {\n EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,\n EDITABLE_ARTIFACT_SNAPSHOT_VERSION,\n} from \"./editable-artifact-versions\";\n\nexport {\n EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,\n EDITABLE_ARTIFACT_SNAPSHOT_VERSION,\n} from \"./editable-artifact-versions\";\n\nexport type EditableArtifactModality = \"spreadsheet\" | \"document\" | \"presentation\";\nexport type EditableArtifactConcurrencySemantics =\n | \"causal-crdt-v1\"\n | \"authoritative-serialized-stale-base-v1\";\n\nexport type EditableArtifactCodecDescriptor = Readonly<{\n modality: EditableArtifactModality;\n modelSchemaVersion: typeof EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION;\n snapshotVersion: typeof EDITABLE_ARTIFACT_SNAPSHOT_VERSION;\n command: Readonly<{\n magic: \"OGASC001\" | \"OGADC001\" | \"OGAPC001\";\n version: 1;\n maximumBytes: number;\n maximumCommands: number;\n encode: (value: unknown) => Uint8Array;\n decode: (bytes: Uint8Array) => unknown;\n assertCanonical: (bytes: Uint8Array) => void;\n }>;\n query: Readonly<{\n magic: \"OGAKQ001\" | \"OGADQ001\" | \"OGAPQ001\";\n responseMagic: \"OGAKV001\" | \"OGADP001\" | \"OGAPV001\";\n version: 1;\n responseVersion: 1;\n maximumBytes: number;\n maximumResponseBytes: number;\n encode: (value: unknown) => Uint8Array;\n decode: (bytes: Uint8Array) => unknown;\n assertCanonical: (bytes: Uint8Array) => void;\n encodeResponse: (value: unknown) => Uint8Array;\n decodeResponse: (bytes: Uint8Array) => unknown;\n assertCanonicalResponse: (bytes: Uint8Array) => void;\n }>;\n concurrency: Readonly<{\n semantics: EditableArtifactConcurrencySemantics;\n collaborationEnvelope: \"OGACO001\" | null;\n staleBaseMustBeRejected: boolean;\n }>;\n}>;\n\nconst spreadsheet = Object.freeze({\n modality: \"spreadsheet\",\n modelSchemaVersion: 1,\n snapshotVersion: 1,\n command: Object.freeze({\n magic: \"OGASC001\",\n version: SPREADSHEET_ARTIFACT_COMMAND_VERSION,\n maximumBytes: SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,\n maximumCommands: SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,\n encode: (value: unknown) =>\n encodeSpreadsheetArtifactCommandBatch(\n value as Parameters<typeof encodeSpreadsheetArtifactCommandBatch>[0],\n ),\n decode: decodeSpreadsheetArtifactCommandBatch,\n assertCanonical: assertCanonicalSpreadsheetArtifactCommandBytes,\n }),\n query: Object.freeze({\n magic: \"OGAKQ001\",\n responseMagic: \"OGAKV001\",\n version: SPREADSHEET_ARTIFACT_QUERY_VERSION,\n responseVersion: SPREADSHEET_ARTIFACT_QUERY_VERSION,\n maximumBytes: SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,\n maximumResponseBytes: SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,\n encode: (value: unknown) =>\n encodeSpreadsheetArtifactKernelQuery(\n value as Parameters<typeof encodeSpreadsheetArtifactKernelQuery>[0],\n ),\n decode: decodeSpreadsheetArtifactKernelQuery,\n assertCanonical: assertCanonicalSpreadsheetArtifactKernelQueryBytes,\n encodeResponse: (value: unknown) =>\n encodeSpreadsheetArtifactKernelProjection(\n value as Parameters<typeof encodeSpreadsheetArtifactKernelProjection>[0],\n ),\n decodeResponse: decodeSpreadsheetArtifactKernelProjection,\n assertCanonicalResponse: assertCanonicalSpreadsheetArtifactKernelProjectionBytes,\n }),\n concurrency: Object.freeze({\n semantics: \"causal-crdt-v1\",\n collaborationEnvelope: \"OGACO001\",\n staleBaseMustBeRejected: false,\n }),\n}) satisfies EditableArtifactCodecDescriptor;\n\nconst document = Object.freeze({\n modality: \"document\",\n modelSchemaVersion: 1,\n snapshotVersion: 1,\n command: Object.freeze({\n magic: \"OGADC001\",\n version: DOCUMENT_ARTIFACT_COMMAND_VERSION,\n maximumBytes: DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,\n maximumCommands: DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,\n encode: (value: unknown) =>\n encodeDocumentArtifactCommandBatch(\n value as Parameters<typeof encodeDocumentArtifactCommandBatch>[0],\n ),\n decode: decodeDocumentArtifactCommandBatch,\n assertCanonical: assertCanonicalDocumentArtifactCommandBytes,\n }),\n query: Object.freeze({\n magic: \"OGADQ001\",\n responseMagic: \"OGADP001\",\n version: DOCUMENT_ARTIFACT_QUERY_VERSION,\n responseVersion: DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,\n maximumBytes: DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,\n maximumResponseBytes: DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,\n encode: (value: unknown) =>\n encodeDocumentArtifactQuery(value as Parameters<typeof encodeDocumentArtifactQuery>[0]),\n decode: decodeDocumentArtifactQuery,\n assertCanonical: assertCanonicalDocumentArtifactQueryBytes,\n encodeResponse: (value: unknown) =>\n encodeDocumentArtifactQueryResponse(\n value as Parameters<typeof encodeDocumentArtifactQueryResponse>[0],\n ),\n decodeResponse: decodeDocumentArtifactQueryResponse,\n assertCanonicalResponse: assertCanonicalDocumentArtifactQueryResponseBytes,\n }),\n concurrency: Object.freeze({\n semantics: \"authoritative-serialized-stale-base-v1\",\n collaborationEnvelope: null,\n staleBaseMustBeRejected: true,\n }),\n}) satisfies EditableArtifactCodecDescriptor;\n\nconst presentation = Object.freeze({\n modality: \"presentation\",\n modelSchemaVersion: 1,\n snapshotVersion: 1,\n command: Object.freeze({\n magic: \"OGAPC001\",\n version: PRESENTATION_ARTIFACT_COMMAND_VERSION,\n maximumBytes: PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,\n maximumCommands: PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,\n encode: (value: unknown) =>\n encodePresentationArtifactCommandBatch(\n value as Parameters<typeof encodePresentationArtifactCommandBatch>[0],\n ),\n decode: decodePresentationArtifactCommandBatch,\n assertCanonical: assertCanonicalPresentationArtifactCommandBytes,\n }),\n query: Object.freeze({\n magic: \"OGAPQ001\",\n responseMagic: \"OGAPV001\",\n version: PRESENTATION_ARTIFACT_QUERY_VERSION,\n responseVersion: PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,\n maximumBytes: PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,\n maximumResponseBytes: PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,\n encode: (value: unknown) =>\n encodePresentationArtifactQuery(\n value as Parameters<typeof encodePresentationArtifactQuery>[0],\n ),\n decode: decodePresentationArtifactQuery,\n assertCanonical: assertCanonicalPresentationArtifactQueryBytes,\n encodeResponse: (value: unknown) =>\n encodePresentationArtifactQueryResponse(\n value as Parameters<typeof encodePresentationArtifactQueryResponse>[0],\n ),\n decodeResponse: decodePresentationArtifactQueryResponse,\n assertCanonicalResponse: assertCanonicalPresentationArtifactQueryResponseBytes,\n }),\n concurrency: Object.freeze({\n semantics: \"authoritative-serialized-stale-base-v1\",\n collaborationEnvelope: null,\n staleBaseMustBeRejected: true,\n }),\n}) satisfies EditableArtifactCodecDescriptor;\n\nexport const EDITABLE_ARTIFACT_CODEC_REGISTRY: Readonly<\n Record<EditableArtifactModality, EditableArtifactCodecDescriptor>\n> = Object.freeze({ spreadsheet, document, presentation });\n\n/**\n * Selects solely from the durable artifact modality plus persisted versions.\n * Modality intentionally never enters OGATX001: the durable artifact row is\n * authoritative and prevents client-controlled cross-modality decoding.\n */\nexport function editableArtifactCodecFor(\n input: Readonly<{\n durableModality: EditableArtifactModality;\n modelSchemaVersion: number;\n commandProtocolVersion: number;\n }>,\n): EditableArtifactCodecDescriptor {\n const descriptor = EDITABLE_ARTIFACT_CODEC_REGISTRY[input.durableModality];\n if (!descriptor) throw new TypeError(\"unsupported durable editable artifact modality\");\n if (input.modelSchemaVersion !== descriptor.modelSchemaVersion) {\n throw new TypeError(\n \"editable artifact model schema version is incompatible with its durable modality\",\n );\n }\n if (input.commandProtocolVersion !== descriptor.command.version) {\n throw new TypeError(\n \"editable artifact command protocol version is incompatible with its durable modality\",\n );\n }\n return descriptor;\n}\n"],"mappings":"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","names":[]}
|