@embedpdf/engine-core 3.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +24 -0
  3. package/dist/AbortError-ByBflvEl.cjs +38 -0
  4. package/dist/AbortError-ByBflvEl.cjs.map +1 -0
  5. package/dist/AbortError-CjSasIlL.js +27 -0
  6. package/dist/AbortError-CjSasIlL.js.map +1 -0
  7. package/dist/AnnotationListSnapshot-W0RCsyDE.d.cts +5043 -0
  8. package/dist/AnnotationListSnapshot-W0RCsyDE.d.ts +5043 -0
  9. package/dist/DocumentSecurityService-B-tULKNY.d.ts +332 -0
  10. package/dist/DocumentSecurityService-Df79fgpe.d.cts +332 -0
  11. package/dist/Engine-B7Oe7f5i.d.ts +1013 -0
  12. package/dist/Engine-D9loFZc1.d.cts +1013 -0
  13. package/dist/builders-BvikWRuO.cjs +1684 -0
  14. package/dist/builders-BvikWRuO.cjs.map +1 -0
  15. package/dist/builders-C548U47M.js +1367 -0
  16. package/dist/builders-C548U47M.js.map +1 -0
  17. package/dist/conformance.cjs +5414 -0
  18. package/dist/conformance.cjs.map +1 -0
  19. package/dist/conformance.d.cts +530 -0
  20. package/dist/conformance.d.ts +530 -0
  21. package/dist/conformance.js +5394 -0
  22. package/dist/conformance.js.map +1 -0
  23. package/dist/fold-CB4fAOOy.js +175 -0
  24. package/dist/fold-CB4fAOOy.js.map +1 -0
  25. package/dist/fold-IaMph3CO.cjs +216 -0
  26. package/dist/fold-IaMph3CO.cjs.map +1 -0
  27. package/dist/index.cjs +82 -0
  28. package/dist/index.d.cts +2 -0
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.js +5 -0
  31. package/dist/resolver-DAZWVoJL.cjs +434 -0
  32. package/dist/resolver-DAZWVoJL.cjs.map +1 -0
  33. package/dist/resolver-DiPMTfcy.js +363 -0
  34. package/dist/resolver-DiPMTfcy.js.map +1 -0
  35. package/dist/runtime.cjs +453 -0
  36. package/dist/runtime.cjs.map +1 -0
  37. package/dist/runtime.d.cts +1002 -0
  38. package/dist/runtime.d.ts +1002 -0
  39. package/dist/runtime.js +361 -0
  40. package/dist/runtime.js.map +1 -0
  41. package/dist/schemas-9OpSSeM6.js +2493 -0
  42. package/dist/schemas-9OpSSeM6.js.map +1 -0
  43. package/dist/schemas-B_1VyFsm.cjs +3608 -0
  44. package/dist/schemas-B_1VyFsm.cjs.map +1 -0
  45. package/dist/subtype-BvAzLCGC.js +196 -0
  46. package/dist/subtype-BvAzLCGC.js.map +1 -0
  47. package/dist/subtype-qejjVr6h.cjs +231 -0
  48. package/dist/subtype-qejjVr6h.cjs.map +1 -0
  49. package/dist/wire.cjs +1516 -0
  50. package/dist/wire.cjs.map +1 -0
  51. package/dist/wire.d.cts +1546 -0
  52. package/dist/wire.d.ts +1546 -0
  53. package/dist/wire.js +1280 -0
  54. package/dist/wire.js.map +1 -0
  55. package/package.json +74 -0
@@ -0,0 +1,196 @@
1
+ //#region src/errors/EngineErrorCode.ts
2
+ const EngineErrorCode = {
3
+ Unknown: "Unknown",
4
+ InvalidArg: "InvalidArg",
5
+ DocNotOpen: "DocNotOpen",
6
+ DocOpenFailed: "DocOpenFailed",
7
+ DocPasswordRequired: "DocPasswordRequired",
8
+ DocPasswordIncorrect: "DocPasswordIncorrect",
9
+ Aborted: "Aborted",
10
+ Network: "Network",
11
+ Unauthenticated: "Unauthenticated",
12
+ Forbidden: "Forbidden",
13
+ NotFound: "NotFound",
14
+ WireFormat: "WireFormat",
15
+ RuntimeUnavailable: "RuntimeUnavailable",
16
+ /**
17
+ * Annotation/page reference could not be resolved. Surfaced when:
18
+ * - `AnnotationRef.kind === 'objectNumber'` but the document has no
19
+ * annotation with that indirect object number on the addressed page
20
+ * - `AnnotationRef.kind === 'nm'` but no annotation on the page has
21
+ * that `/NM`
22
+ * - `AnnotationRef.kind === 'index'` but the supplied `RevisionToken`
23
+ * does not match the current per-page generation
24
+ * - `AnnotationRef.kind === 'index'` but `index` is out of range for
25
+ * the page's current annotation count
26
+ */
27
+ InvalidReference: "InvalidReference",
28
+ /**
29
+ * A weak-annotation structural edit (delete/move) was attempted while the
30
+ * caller does not have sole active edit presence for that page. This is a
31
+ * collaboration guard for index-addressed annotations; stable pages and
32
+ * non-shifting annotation updates do not use it.
33
+ */
34
+ WeakAnnotationSessionConflict: "WeakAnnotationSessionConflict",
35
+ /**
36
+ * A layer write lost its optimistic-concurrency check: the layer's
37
+ * durable version advanced (another writer — typically another server
38
+ * replica — committed) between the operation's prepare and its commit,
39
+ * and the server exhausted its rebase-and-retry budget. Retryable: the
40
+ * operation was NOT applied; re-issue it against the new state.
41
+ */
42
+ LayerVersionConflict: "LayerVersionConflict",
43
+ /**
44
+ * The requested operation is typed but not yet wired in this engine
45
+ * version. The wire shape stays valid; clients can detect this with
46
+ * `EngineError.is(err, EngineErrorCode.NotImplemented)` and degrade
47
+ * gracefully.
48
+ */
49
+ NotImplemented: "NotImplemented",
50
+ /**
51
+ * The PDF was loadable enough for PDFium to parse, but violates a
52
+ * structural invariant the engine relies on. Surfaced for the rare
53
+ * spec-violating PDF that ships a direct (non-indirect) page
54
+ * dictionary in the /Pages tree — see `EPDFPage_GetObjectNumber`
55
+ * returning `0`. PDFium creation paths (`FPDFPage_New`,
56
+ * `EPDFPage_CreateAnnot`) always produce indirect objects, so this
57
+ * error code is intentionally not used for engine-produced state;
58
+ * it specifically signals "this input file is broken in a way we
59
+ * cannot work around without compromising stable identity".
60
+ *
61
+ * Distinct from `DocOpenFailed` (PDFium refused to load the bytes
62
+ * at all) and `NotFound` (a well-formed page/annotation/etc. simply
63
+ * doesn't exist).
64
+ */
65
+ MalformedPdf: "MalformedPdf"
66
+ };
67
+ //#endregion
68
+ //#region src/annotation/subtype.ts
69
+ /**
70
+ * Closed-world string catalog of annotation subtypes the v3 wire format knows
71
+ * about. The TypeScript discriminated union `AnnotationDTO` is keyed on this
72
+ * literal type. PDFium's integer subtype code is mapped onto these strings
73
+ * by the reader registry.
74
+ *
75
+ * `unsupported` is the forward-compat fallback for any PDF subtype that
76
+ * the engine has not implemented a reader for yet. Unknown subtypes never
77
+ * silently disappear from the wire — they round-trip as
78
+ * `{ subtype: 'unsupported', rawSubtypeCode }`.
79
+ */
80
+ const ANNOTATION_SUBTYPES = [
81
+ "text",
82
+ "link",
83
+ "free-text",
84
+ "line",
85
+ "square",
86
+ "circle",
87
+ "polygon",
88
+ "polyline",
89
+ "highlight",
90
+ "underline",
91
+ "squiggly",
92
+ "strikeout",
93
+ "stamp",
94
+ "caret",
95
+ "ink",
96
+ "popup",
97
+ "file-attachment",
98
+ "redact",
99
+ "widget",
100
+ "unsupported"
101
+ ];
102
+ /**
103
+ * PDFium subtype codes from `FPDFAnnot_GetSubtype`. Mirrors
104
+ * `FPDF_ANNOTATION_SUBTYPE` in `public/fpdf_annot.h`. We keep this here
105
+ * (rather than importing from @embedpdf/engine-runtime) so the engine-core
106
+ * package has zero PDFium dependency.
107
+ */
108
+ const PdfAnnotationSubtypeCode = {
109
+ UNKNOWN: 0,
110
+ TEXT: 1,
111
+ LINK: 2,
112
+ FREETEXT: 3,
113
+ LINE: 4,
114
+ SQUARE: 5,
115
+ CIRCLE: 6,
116
+ POLYGON: 7,
117
+ POLYLINE: 8,
118
+ HIGHLIGHT: 9,
119
+ UNDERLINE: 10,
120
+ SQUIGGLY: 11,
121
+ STRIKEOUT: 12,
122
+ STAMP: 13,
123
+ CARET: 14,
124
+ INK: 15,
125
+ POPUP: 16,
126
+ FILEATTACHMENT: 17,
127
+ SOUND: 18,
128
+ MOVIE: 19,
129
+ WIDGET: 20,
130
+ SCREEN: 21,
131
+ PRINTERMARK: 22,
132
+ TRAPNET: 23,
133
+ WATERMARK: 24,
134
+ THREED: 25,
135
+ RICHMEDIA: 26,
136
+ XFAWIDGET: 27,
137
+ REDACT: 28
138
+ };
139
+ /**
140
+ * Map from PDFium codes to wire-stable string subtypes. Codes the engine
141
+ * recognises as a v3 subtype (or maps to 'unsupported' if not yet wired).
142
+ */
143
+ const PDF_CODE_TO_SUBTYPE = Object.freeze({
144
+ [PdfAnnotationSubtypeCode.TEXT]: "text",
145
+ [PdfAnnotationSubtypeCode.LINK]: "link",
146
+ [PdfAnnotationSubtypeCode.FREETEXT]: "free-text",
147
+ [PdfAnnotationSubtypeCode.LINE]: "line",
148
+ [PdfAnnotationSubtypeCode.SQUARE]: "square",
149
+ [PdfAnnotationSubtypeCode.CIRCLE]: "circle",
150
+ [PdfAnnotationSubtypeCode.POLYGON]: "polygon",
151
+ [PdfAnnotationSubtypeCode.POLYLINE]: "polyline",
152
+ [PdfAnnotationSubtypeCode.HIGHLIGHT]: "highlight",
153
+ [PdfAnnotationSubtypeCode.UNDERLINE]: "underline",
154
+ [PdfAnnotationSubtypeCode.SQUIGGLY]: "squiggly",
155
+ [PdfAnnotationSubtypeCode.STRIKEOUT]: "strikeout",
156
+ [PdfAnnotationSubtypeCode.STAMP]: "stamp",
157
+ [PdfAnnotationSubtypeCode.CARET]: "caret",
158
+ [PdfAnnotationSubtypeCode.INK]: "ink",
159
+ [PdfAnnotationSubtypeCode.POPUP]: "popup",
160
+ [PdfAnnotationSubtypeCode.FILEATTACHMENT]: "file-attachment",
161
+ [PdfAnnotationSubtypeCode.WIDGET]: "widget",
162
+ [PdfAnnotationSubtypeCode.REDACT]: "redact"
163
+ });
164
+ /**
165
+ * Reverse map for write paths that need to turn a wire subtype back into the
166
+ * PDFium integer code without importing the zod-backed annotation registry.
167
+ */
168
+ const PDF_SUBTYPE_TO_CODE = Object.freeze({
169
+ text: PdfAnnotationSubtypeCode.TEXT,
170
+ link: PdfAnnotationSubtypeCode.LINK,
171
+ "free-text": PdfAnnotationSubtypeCode.FREETEXT,
172
+ line: PdfAnnotationSubtypeCode.LINE,
173
+ square: PdfAnnotationSubtypeCode.SQUARE,
174
+ circle: PdfAnnotationSubtypeCode.CIRCLE,
175
+ polygon: PdfAnnotationSubtypeCode.POLYGON,
176
+ polyline: PdfAnnotationSubtypeCode.POLYLINE,
177
+ highlight: PdfAnnotationSubtypeCode.HIGHLIGHT,
178
+ underline: PdfAnnotationSubtypeCode.UNDERLINE,
179
+ squiggly: PdfAnnotationSubtypeCode.SQUIGGLY,
180
+ strikeout: PdfAnnotationSubtypeCode.STRIKEOUT,
181
+ stamp: PdfAnnotationSubtypeCode.STAMP,
182
+ caret: PdfAnnotationSubtypeCode.CARET,
183
+ ink: PdfAnnotationSubtypeCode.INK,
184
+ popup: PdfAnnotationSubtypeCode.POPUP,
185
+ "file-attachment": PdfAnnotationSubtypeCode.FILEATTACHMENT,
186
+ redact: PdfAnnotationSubtypeCode.REDACT,
187
+ widget: PdfAnnotationSubtypeCode.WIDGET,
188
+ unsupported: PdfAnnotationSubtypeCode.UNKNOWN
189
+ });
190
+ function subtypeFromCode(code) {
191
+ return PDF_CODE_TO_SUBTYPE[code] ?? "unsupported";
192
+ }
193
+ //#endregion
194
+ export { subtypeFromCode as a, PdfAnnotationSubtypeCode as i, PDF_CODE_TO_SUBTYPE as n, EngineErrorCode as o, PDF_SUBTYPE_TO_CODE as r, ANNOTATION_SUBTYPES as t };
195
+
196
+ //# sourceMappingURL=subtype-BvAzLCGC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subtype-BvAzLCGC.js","names":[],"sources":["../src/errors/EngineErrorCode.ts","../src/annotation/subtype.ts"],"sourcesContent":["export const EngineErrorCode = {\n Unknown: 'Unknown',\n InvalidArg: 'InvalidArg',\n DocNotOpen: 'DocNotOpen',\n DocOpenFailed: 'DocOpenFailed',\n DocPasswordRequired: 'DocPasswordRequired',\n DocPasswordIncorrect: 'DocPasswordIncorrect',\n Aborted: 'Aborted',\n Network: 'Network',\n Unauthenticated: 'Unauthenticated',\n Forbidden: 'Forbidden',\n NotFound: 'NotFound',\n WireFormat: 'WireFormat',\n RuntimeUnavailable: 'RuntimeUnavailable',\n /**\n * Annotation/page reference could not be resolved. Surfaced when:\n * - `AnnotationRef.kind === 'objectNumber'` but the document has no\n * annotation with that indirect object number on the addressed page\n * - `AnnotationRef.kind === 'nm'` but no annotation on the page has\n * that `/NM`\n * - `AnnotationRef.kind === 'index'` but the supplied `RevisionToken`\n * does not match the current per-page generation\n * - `AnnotationRef.kind === 'index'` but `index` is out of range for\n * the page's current annotation count\n */\n InvalidReference: 'InvalidReference',\n /**\n * A weak-annotation structural edit (delete/move) was attempted while the\n * caller does not have sole active edit presence for that page. This is a\n * collaboration guard for index-addressed annotations; stable pages and\n * non-shifting annotation updates do not use it.\n */\n WeakAnnotationSessionConflict: 'WeakAnnotationSessionConflict',\n /**\n * A layer write lost its optimistic-concurrency check: the layer's\n * durable version advanced (another writer — typically another server\n * replica — committed) between the operation's prepare and its commit,\n * and the server exhausted its rebase-and-retry budget. Retryable: the\n * operation was NOT applied; re-issue it against the new state.\n */\n LayerVersionConflict: 'LayerVersionConflict',\n /**\n * The requested operation is typed but not yet wired in this engine\n * version. The wire shape stays valid; clients can detect this with\n * `EngineError.is(err, EngineErrorCode.NotImplemented)` and degrade\n * gracefully.\n */\n NotImplemented: 'NotImplemented',\n /**\n * The PDF was loadable enough for PDFium to parse, but violates a\n * structural invariant the engine relies on. Surfaced for the rare\n * spec-violating PDF that ships a direct (non-indirect) page\n * dictionary in the /Pages tree — see `EPDFPage_GetObjectNumber`\n * returning `0`. PDFium creation paths (`FPDFPage_New`,\n * `EPDFPage_CreateAnnot`) always produce indirect objects, so this\n * error code is intentionally not used for engine-produced state;\n * it specifically signals \"this input file is broken in a way we\n * cannot work around without compromising stable identity\".\n *\n * Distinct from `DocOpenFailed` (PDFium refused to load the bytes\n * at all) and `NotFound` (a well-formed page/annotation/etc. simply\n * doesn't exist).\n */\n MalformedPdf: 'MalformedPdf',\n} as const;\n\nexport type EngineErrorCode = (typeof EngineErrorCode)[keyof typeof EngineErrorCode];\n","/**\n * Closed-world string catalog of annotation subtypes the v3 wire format knows\n * about. The TypeScript discriminated union `AnnotationDTO` is keyed on this\n * literal type. PDFium's integer subtype code is mapped onto these strings\n * by the reader registry.\n *\n * `unsupported` is the forward-compat fallback for any PDF subtype that\n * the engine has not implemented a reader for yet. Unknown subtypes never\n * silently disappear from the wire — they round-trip as\n * `{ subtype: 'unsupported', rawSubtypeCode }`.\n */\nexport const ANNOTATION_SUBTYPES = [\n 'text',\n 'link',\n 'free-text',\n 'line',\n 'square',\n 'circle',\n 'polygon',\n 'polyline',\n 'highlight',\n 'underline',\n 'squiggly',\n 'strikeout',\n 'stamp',\n 'caret',\n 'ink',\n 'popup',\n 'file-attachment',\n 'redact',\n 'widget',\n 'unsupported',\n] as const;\n\nexport type AnnotationSubtype = (typeof ANNOTATION_SUBTYPES)[number];\n\n/**\n * PDFium subtype codes from `FPDFAnnot_GetSubtype`. Mirrors\n * `FPDF_ANNOTATION_SUBTYPE` in `public/fpdf_annot.h`. We keep this here\n * (rather than importing from @embedpdf/engine-runtime) so the engine-core\n * package has zero PDFium dependency.\n */\nexport const PdfAnnotationSubtypeCode = {\n UNKNOWN: 0,\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n RICHMEDIA: 26,\n XFAWIDGET: 27,\n REDACT: 28,\n} as const;\n\nexport type PdfAnnotationSubtypeCode =\n (typeof PdfAnnotationSubtypeCode)[keyof typeof PdfAnnotationSubtypeCode];\n\n/**\n * Map from PDFium codes to wire-stable string subtypes. Codes the engine\n * recognises as a v3 subtype (or maps to 'unsupported' if not yet wired).\n */\nexport const PDF_CODE_TO_SUBTYPE: Readonly<Record<number, AnnotationSubtype>> = Object.freeze({\n [PdfAnnotationSubtypeCode.TEXT]: 'text',\n [PdfAnnotationSubtypeCode.LINK]: 'link',\n [PdfAnnotationSubtypeCode.FREETEXT]: 'free-text',\n [PdfAnnotationSubtypeCode.LINE]: 'line',\n [PdfAnnotationSubtypeCode.SQUARE]: 'square',\n [PdfAnnotationSubtypeCode.CIRCLE]: 'circle',\n [PdfAnnotationSubtypeCode.POLYGON]: 'polygon',\n [PdfAnnotationSubtypeCode.POLYLINE]: 'polyline',\n [PdfAnnotationSubtypeCode.HIGHLIGHT]: 'highlight',\n [PdfAnnotationSubtypeCode.UNDERLINE]: 'underline',\n [PdfAnnotationSubtypeCode.SQUIGGLY]: 'squiggly',\n [PdfAnnotationSubtypeCode.STRIKEOUT]: 'strikeout',\n [PdfAnnotationSubtypeCode.STAMP]: 'stamp',\n [PdfAnnotationSubtypeCode.CARET]: 'caret',\n [PdfAnnotationSubtypeCode.INK]: 'ink',\n [PdfAnnotationSubtypeCode.POPUP]: 'popup',\n [PdfAnnotationSubtypeCode.FILEATTACHMENT]: 'file-attachment',\n [PdfAnnotationSubtypeCode.WIDGET]: 'widget',\n [PdfAnnotationSubtypeCode.REDACT]: 'redact',\n});\n\n/**\n * Reverse map for write paths that need to turn a wire subtype back into the\n * PDFium integer code without importing the zod-backed annotation registry.\n */\nexport const PDF_SUBTYPE_TO_CODE: Readonly<Record<AnnotationSubtype, PdfAnnotationSubtypeCode>> =\n Object.freeze({\n text: PdfAnnotationSubtypeCode.TEXT,\n link: PdfAnnotationSubtypeCode.LINK,\n 'free-text': PdfAnnotationSubtypeCode.FREETEXT,\n line: PdfAnnotationSubtypeCode.LINE,\n square: PdfAnnotationSubtypeCode.SQUARE,\n circle: PdfAnnotationSubtypeCode.CIRCLE,\n polygon: PdfAnnotationSubtypeCode.POLYGON,\n polyline: PdfAnnotationSubtypeCode.POLYLINE,\n highlight: PdfAnnotationSubtypeCode.HIGHLIGHT,\n underline: PdfAnnotationSubtypeCode.UNDERLINE,\n squiggly: PdfAnnotationSubtypeCode.SQUIGGLY,\n strikeout: PdfAnnotationSubtypeCode.STRIKEOUT,\n stamp: PdfAnnotationSubtypeCode.STAMP,\n caret: PdfAnnotationSubtypeCode.CARET,\n ink: PdfAnnotationSubtypeCode.INK,\n popup: PdfAnnotationSubtypeCode.POPUP,\n 'file-attachment': PdfAnnotationSubtypeCode.FILEATTACHMENT,\n redact: PdfAnnotationSubtypeCode.REDACT,\n widget: PdfAnnotationSubtypeCode.WIDGET,\n unsupported: PdfAnnotationSubtypeCode.UNKNOWN,\n });\n\nexport function subtypeFromCode(code: number): AnnotationSubtype {\n return PDF_CODE_TO_SUBTYPE[code] ?? 'unsupported';\n}\n"],"mappings":";AAAA,MAAa,kBAAkB;CAC7B,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,qBAAqB;CACrB,sBAAsB;CACtB,SAAS;CACT,SAAS;CACT,iBAAiB;CACjB,WAAW;CACX,UAAU;CACV,YAAY;CACZ,oBAAoB;;;;;;;;;;;;CAYpB,kBAAkB;;;;;;;CAOlB,+BAA+B;;;;;;;;CAQ/B,sBAAsB;;;;;;;CAOtB,gBAAgB;;;;;;;;;;;;;;;;CAgBhB,cAAc;AAChB;;;;;;;;;;;;;;ACrDA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;;;;;;AAUA,MAAa,2BAA2B;CACtC,SAAS;CACT,MAAM;CACN,MAAM;CACN,UAAU;CACV,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,UAAU;CACV,WAAW;CACX,WAAW;CACX,UAAU;CACV,WAAW;CACX,OAAO;CACP,OAAO;CACP,KAAK;CACL,OAAO;CACP,gBAAgB;CAChB,OAAO;CACP,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,aAAa;CACb,SAAS;CACT,WAAW;CACX,QAAQ;CACR,WAAW;CACX,WAAW;CACX,QAAQ;AACV;;;;;AASA,MAAa,sBAAmE,OAAO,OAAO;EAC3F,yBAAyB,OAAO;EAChC,yBAAyB,OAAO;EAChC,yBAAyB,WAAW;EACpC,yBAAyB,OAAO;EAChC,yBAAyB,SAAS;EAClC,yBAAyB,SAAS;EAClC,yBAAyB,UAAU;EACnC,yBAAyB,WAAW;EACpC,yBAAyB,YAAY;EACrC,yBAAyB,YAAY;EACrC,yBAAyB,WAAW;EACpC,yBAAyB,YAAY;EACrC,yBAAyB,QAAQ;EACjC,yBAAyB,QAAQ;EACjC,yBAAyB,MAAM;EAC/B,yBAAyB,QAAQ;EACjC,yBAAyB,iBAAiB;EAC1C,yBAAyB,SAAS;EAClC,yBAAyB,SAAS;AACrC,CAAC;;;;;AAMD,MAAa,sBACX,OAAO,OAAO;CACZ,MAAM,yBAAyB;CAC/B,MAAM,yBAAyB;CAC/B,aAAa,yBAAyB;CACtC,MAAM,yBAAyB;CAC/B,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,SAAS,yBAAyB;CAClC,UAAU,yBAAyB;CACnC,WAAW,yBAAyB;CACpC,WAAW,yBAAyB;CACpC,UAAU,yBAAyB;CACnC,WAAW,yBAAyB;CACpC,OAAO,yBAAyB;CAChC,OAAO,yBAAyB;CAChC,KAAK,yBAAyB;CAC9B,OAAO,yBAAyB;CAChC,mBAAmB,yBAAyB;CAC5C,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,aAAa,yBAAyB;AACxC,CAAC;AAEH,SAAgB,gBAAgB,MAAiC;CAC/D,OAAO,oBAAoB,SAAS;AACtC"}
@@ -0,0 +1,231 @@
1
+ //#region src/errors/EngineErrorCode.ts
2
+ const EngineErrorCode = {
3
+ Unknown: "Unknown",
4
+ InvalidArg: "InvalidArg",
5
+ DocNotOpen: "DocNotOpen",
6
+ DocOpenFailed: "DocOpenFailed",
7
+ DocPasswordRequired: "DocPasswordRequired",
8
+ DocPasswordIncorrect: "DocPasswordIncorrect",
9
+ Aborted: "Aborted",
10
+ Network: "Network",
11
+ Unauthenticated: "Unauthenticated",
12
+ Forbidden: "Forbidden",
13
+ NotFound: "NotFound",
14
+ WireFormat: "WireFormat",
15
+ RuntimeUnavailable: "RuntimeUnavailable",
16
+ /**
17
+ * Annotation/page reference could not be resolved. Surfaced when:
18
+ * - `AnnotationRef.kind === 'objectNumber'` but the document has no
19
+ * annotation with that indirect object number on the addressed page
20
+ * - `AnnotationRef.kind === 'nm'` but no annotation on the page has
21
+ * that `/NM`
22
+ * - `AnnotationRef.kind === 'index'` but the supplied `RevisionToken`
23
+ * does not match the current per-page generation
24
+ * - `AnnotationRef.kind === 'index'` but `index` is out of range for
25
+ * the page's current annotation count
26
+ */
27
+ InvalidReference: "InvalidReference",
28
+ /**
29
+ * A weak-annotation structural edit (delete/move) was attempted while the
30
+ * caller does not have sole active edit presence for that page. This is a
31
+ * collaboration guard for index-addressed annotations; stable pages and
32
+ * non-shifting annotation updates do not use it.
33
+ */
34
+ WeakAnnotationSessionConflict: "WeakAnnotationSessionConflict",
35
+ /**
36
+ * A layer write lost its optimistic-concurrency check: the layer's
37
+ * durable version advanced (another writer — typically another server
38
+ * replica — committed) between the operation's prepare and its commit,
39
+ * and the server exhausted its rebase-and-retry budget. Retryable: the
40
+ * operation was NOT applied; re-issue it against the new state.
41
+ */
42
+ LayerVersionConflict: "LayerVersionConflict",
43
+ /**
44
+ * The requested operation is typed but not yet wired in this engine
45
+ * version. The wire shape stays valid; clients can detect this with
46
+ * `EngineError.is(err, EngineErrorCode.NotImplemented)` and degrade
47
+ * gracefully.
48
+ */
49
+ NotImplemented: "NotImplemented",
50
+ /**
51
+ * The PDF was loadable enough for PDFium to parse, but violates a
52
+ * structural invariant the engine relies on. Surfaced for the rare
53
+ * spec-violating PDF that ships a direct (non-indirect) page
54
+ * dictionary in the /Pages tree — see `EPDFPage_GetObjectNumber`
55
+ * returning `0`. PDFium creation paths (`FPDFPage_New`,
56
+ * `EPDFPage_CreateAnnot`) always produce indirect objects, so this
57
+ * error code is intentionally not used for engine-produced state;
58
+ * it specifically signals "this input file is broken in a way we
59
+ * cannot work around without compromising stable identity".
60
+ *
61
+ * Distinct from `DocOpenFailed` (PDFium refused to load the bytes
62
+ * at all) and `NotFound` (a well-formed page/annotation/etc. simply
63
+ * doesn't exist).
64
+ */
65
+ MalformedPdf: "MalformedPdf"
66
+ };
67
+ //#endregion
68
+ //#region src/annotation/subtype.ts
69
+ /**
70
+ * Closed-world string catalog of annotation subtypes the v3 wire format knows
71
+ * about. The TypeScript discriminated union `AnnotationDTO` is keyed on this
72
+ * literal type. PDFium's integer subtype code is mapped onto these strings
73
+ * by the reader registry.
74
+ *
75
+ * `unsupported` is the forward-compat fallback for any PDF subtype that
76
+ * the engine has not implemented a reader for yet. Unknown subtypes never
77
+ * silently disappear from the wire — they round-trip as
78
+ * `{ subtype: 'unsupported', rawSubtypeCode }`.
79
+ */
80
+ const ANNOTATION_SUBTYPES = [
81
+ "text",
82
+ "link",
83
+ "free-text",
84
+ "line",
85
+ "square",
86
+ "circle",
87
+ "polygon",
88
+ "polyline",
89
+ "highlight",
90
+ "underline",
91
+ "squiggly",
92
+ "strikeout",
93
+ "stamp",
94
+ "caret",
95
+ "ink",
96
+ "popup",
97
+ "file-attachment",
98
+ "redact",
99
+ "widget",
100
+ "unsupported"
101
+ ];
102
+ /**
103
+ * PDFium subtype codes from `FPDFAnnot_GetSubtype`. Mirrors
104
+ * `FPDF_ANNOTATION_SUBTYPE` in `public/fpdf_annot.h`. We keep this here
105
+ * (rather than importing from @embedpdf/engine-runtime) so the engine-core
106
+ * package has zero PDFium dependency.
107
+ */
108
+ const PdfAnnotationSubtypeCode = {
109
+ UNKNOWN: 0,
110
+ TEXT: 1,
111
+ LINK: 2,
112
+ FREETEXT: 3,
113
+ LINE: 4,
114
+ SQUARE: 5,
115
+ CIRCLE: 6,
116
+ POLYGON: 7,
117
+ POLYLINE: 8,
118
+ HIGHLIGHT: 9,
119
+ UNDERLINE: 10,
120
+ SQUIGGLY: 11,
121
+ STRIKEOUT: 12,
122
+ STAMP: 13,
123
+ CARET: 14,
124
+ INK: 15,
125
+ POPUP: 16,
126
+ FILEATTACHMENT: 17,
127
+ SOUND: 18,
128
+ MOVIE: 19,
129
+ WIDGET: 20,
130
+ SCREEN: 21,
131
+ PRINTERMARK: 22,
132
+ TRAPNET: 23,
133
+ WATERMARK: 24,
134
+ THREED: 25,
135
+ RICHMEDIA: 26,
136
+ XFAWIDGET: 27,
137
+ REDACT: 28
138
+ };
139
+ /**
140
+ * Map from PDFium codes to wire-stable string subtypes. Codes the engine
141
+ * recognises as a v3 subtype (or maps to 'unsupported' if not yet wired).
142
+ */
143
+ const PDF_CODE_TO_SUBTYPE = Object.freeze({
144
+ [PdfAnnotationSubtypeCode.TEXT]: "text",
145
+ [PdfAnnotationSubtypeCode.LINK]: "link",
146
+ [PdfAnnotationSubtypeCode.FREETEXT]: "free-text",
147
+ [PdfAnnotationSubtypeCode.LINE]: "line",
148
+ [PdfAnnotationSubtypeCode.SQUARE]: "square",
149
+ [PdfAnnotationSubtypeCode.CIRCLE]: "circle",
150
+ [PdfAnnotationSubtypeCode.POLYGON]: "polygon",
151
+ [PdfAnnotationSubtypeCode.POLYLINE]: "polyline",
152
+ [PdfAnnotationSubtypeCode.HIGHLIGHT]: "highlight",
153
+ [PdfAnnotationSubtypeCode.UNDERLINE]: "underline",
154
+ [PdfAnnotationSubtypeCode.SQUIGGLY]: "squiggly",
155
+ [PdfAnnotationSubtypeCode.STRIKEOUT]: "strikeout",
156
+ [PdfAnnotationSubtypeCode.STAMP]: "stamp",
157
+ [PdfAnnotationSubtypeCode.CARET]: "caret",
158
+ [PdfAnnotationSubtypeCode.INK]: "ink",
159
+ [PdfAnnotationSubtypeCode.POPUP]: "popup",
160
+ [PdfAnnotationSubtypeCode.FILEATTACHMENT]: "file-attachment",
161
+ [PdfAnnotationSubtypeCode.WIDGET]: "widget",
162
+ [PdfAnnotationSubtypeCode.REDACT]: "redact"
163
+ });
164
+ /**
165
+ * Reverse map for write paths that need to turn a wire subtype back into the
166
+ * PDFium integer code without importing the zod-backed annotation registry.
167
+ */
168
+ const PDF_SUBTYPE_TO_CODE = Object.freeze({
169
+ text: PdfAnnotationSubtypeCode.TEXT,
170
+ link: PdfAnnotationSubtypeCode.LINK,
171
+ "free-text": PdfAnnotationSubtypeCode.FREETEXT,
172
+ line: PdfAnnotationSubtypeCode.LINE,
173
+ square: PdfAnnotationSubtypeCode.SQUARE,
174
+ circle: PdfAnnotationSubtypeCode.CIRCLE,
175
+ polygon: PdfAnnotationSubtypeCode.POLYGON,
176
+ polyline: PdfAnnotationSubtypeCode.POLYLINE,
177
+ highlight: PdfAnnotationSubtypeCode.HIGHLIGHT,
178
+ underline: PdfAnnotationSubtypeCode.UNDERLINE,
179
+ squiggly: PdfAnnotationSubtypeCode.SQUIGGLY,
180
+ strikeout: PdfAnnotationSubtypeCode.STRIKEOUT,
181
+ stamp: PdfAnnotationSubtypeCode.STAMP,
182
+ caret: PdfAnnotationSubtypeCode.CARET,
183
+ ink: PdfAnnotationSubtypeCode.INK,
184
+ popup: PdfAnnotationSubtypeCode.POPUP,
185
+ "file-attachment": PdfAnnotationSubtypeCode.FILEATTACHMENT,
186
+ redact: PdfAnnotationSubtypeCode.REDACT,
187
+ widget: PdfAnnotationSubtypeCode.WIDGET,
188
+ unsupported: PdfAnnotationSubtypeCode.UNKNOWN
189
+ });
190
+ function subtypeFromCode(code) {
191
+ return PDF_CODE_TO_SUBTYPE[code] ?? "unsupported";
192
+ }
193
+ //#endregion
194
+ Object.defineProperty(exports, "ANNOTATION_SUBTYPES", {
195
+ enumerable: true,
196
+ get: function() {
197
+ return ANNOTATION_SUBTYPES;
198
+ }
199
+ });
200
+ Object.defineProperty(exports, "EngineErrorCode", {
201
+ enumerable: true,
202
+ get: function() {
203
+ return EngineErrorCode;
204
+ }
205
+ });
206
+ Object.defineProperty(exports, "PDF_CODE_TO_SUBTYPE", {
207
+ enumerable: true,
208
+ get: function() {
209
+ return PDF_CODE_TO_SUBTYPE;
210
+ }
211
+ });
212
+ Object.defineProperty(exports, "PDF_SUBTYPE_TO_CODE", {
213
+ enumerable: true,
214
+ get: function() {
215
+ return PDF_SUBTYPE_TO_CODE;
216
+ }
217
+ });
218
+ Object.defineProperty(exports, "PdfAnnotationSubtypeCode", {
219
+ enumerable: true,
220
+ get: function() {
221
+ return PdfAnnotationSubtypeCode;
222
+ }
223
+ });
224
+ Object.defineProperty(exports, "subtypeFromCode", {
225
+ enumerable: true,
226
+ get: function() {
227
+ return subtypeFromCode;
228
+ }
229
+ });
230
+
231
+ //# sourceMappingURL=subtype-qejjVr6h.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subtype-qejjVr6h.cjs","names":[],"sources":["../src/errors/EngineErrorCode.ts","../src/annotation/subtype.ts"],"sourcesContent":["export const EngineErrorCode = {\n Unknown: 'Unknown',\n InvalidArg: 'InvalidArg',\n DocNotOpen: 'DocNotOpen',\n DocOpenFailed: 'DocOpenFailed',\n DocPasswordRequired: 'DocPasswordRequired',\n DocPasswordIncorrect: 'DocPasswordIncorrect',\n Aborted: 'Aborted',\n Network: 'Network',\n Unauthenticated: 'Unauthenticated',\n Forbidden: 'Forbidden',\n NotFound: 'NotFound',\n WireFormat: 'WireFormat',\n RuntimeUnavailable: 'RuntimeUnavailable',\n /**\n * Annotation/page reference could not be resolved. Surfaced when:\n * - `AnnotationRef.kind === 'objectNumber'` but the document has no\n * annotation with that indirect object number on the addressed page\n * - `AnnotationRef.kind === 'nm'` but no annotation on the page has\n * that `/NM`\n * - `AnnotationRef.kind === 'index'` but the supplied `RevisionToken`\n * does not match the current per-page generation\n * - `AnnotationRef.kind === 'index'` but `index` is out of range for\n * the page's current annotation count\n */\n InvalidReference: 'InvalidReference',\n /**\n * A weak-annotation structural edit (delete/move) was attempted while the\n * caller does not have sole active edit presence for that page. This is a\n * collaboration guard for index-addressed annotations; stable pages and\n * non-shifting annotation updates do not use it.\n */\n WeakAnnotationSessionConflict: 'WeakAnnotationSessionConflict',\n /**\n * A layer write lost its optimistic-concurrency check: the layer's\n * durable version advanced (another writer — typically another server\n * replica — committed) between the operation's prepare and its commit,\n * and the server exhausted its rebase-and-retry budget. Retryable: the\n * operation was NOT applied; re-issue it against the new state.\n */\n LayerVersionConflict: 'LayerVersionConflict',\n /**\n * The requested operation is typed but not yet wired in this engine\n * version. The wire shape stays valid; clients can detect this with\n * `EngineError.is(err, EngineErrorCode.NotImplemented)` and degrade\n * gracefully.\n */\n NotImplemented: 'NotImplemented',\n /**\n * The PDF was loadable enough for PDFium to parse, but violates a\n * structural invariant the engine relies on. Surfaced for the rare\n * spec-violating PDF that ships a direct (non-indirect) page\n * dictionary in the /Pages tree — see `EPDFPage_GetObjectNumber`\n * returning `0`. PDFium creation paths (`FPDFPage_New`,\n * `EPDFPage_CreateAnnot`) always produce indirect objects, so this\n * error code is intentionally not used for engine-produced state;\n * it specifically signals \"this input file is broken in a way we\n * cannot work around without compromising stable identity\".\n *\n * Distinct from `DocOpenFailed` (PDFium refused to load the bytes\n * at all) and `NotFound` (a well-formed page/annotation/etc. simply\n * doesn't exist).\n */\n MalformedPdf: 'MalformedPdf',\n} as const;\n\nexport type EngineErrorCode = (typeof EngineErrorCode)[keyof typeof EngineErrorCode];\n","/**\n * Closed-world string catalog of annotation subtypes the v3 wire format knows\n * about. The TypeScript discriminated union `AnnotationDTO` is keyed on this\n * literal type. PDFium's integer subtype code is mapped onto these strings\n * by the reader registry.\n *\n * `unsupported` is the forward-compat fallback for any PDF subtype that\n * the engine has not implemented a reader for yet. Unknown subtypes never\n * silently disappear from the wire — they round-trip as\n * `{ subtype: 'unsupported', rawSubtypeCode }`.\n */\nexport const ANNOTATION_SUBTYPES = [\n 'text',\n 'link',\n 'free-text',\n 'line',\n 'square',\n 'circle',\n 'polygon',\n 'polyline',\n 'highlight',\n 'underline',\n 'squiggly',\n 'strikeout',\n 'stamp',\n 'caret',\n 'ink',\n 'popup',\n 'file-attachment',\n 'redact',\n 'widget',\n 'unsupported',\n] as const;\n\nexport type AnnotationSubtype = (typeof ANNOTATION_SUBTYPES)[number];\n\n/**\n * PDFium subtype codes from `FPDFAnnot_GetSubtype`. Mirrors\n * `FPDF_ANNOTATION_SUBTYPE` in `public/fpdf_annot.h`. We keep this here\n * (rather than importing from @embedpdf/engine-runtime) so the engine-core\n * package has zero PDFium dependency.\n */\nexport const PdfAnnotationSubtypeCode = {\n UNKNOWN: 0,\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n RICHMEDIA: 26,\n XFAWIDGET: 27,\n REDACT: 28,\n} as const;\n\nexport type PdfAnnotationSubtypeCode =\n (typeof PdfAnnotationSubtypeCode)[keyof typeof PdfAnnotationSubtypeCode];\n\n/**\n * Map from PDFium codes to wire-stable string subtypes. Codes the engine\n * recognises as a v3 subtype (or maps to 'unsupported' if not yet wired).\n */\nexport const PDF_CODE_TO_SUBTYPE: Readonly<Record<number, AnnotationSubtype>> = Object.freeze({\n [PdfAnnotationSubtypeCode.TEXT]: 'text',\n [PdfAnnotationSubtypeCode.LINK]: 'link',\n [PdfAnnotationSubtypeCode.FREETEXT]: 'free-text',\n [PdfAnnotationSubtypeCode.LINE]: 'line',\n [PdfAnnotationSubtypeCode.SQUARE]: 'square',\n [PdfAnnotationSubtypeCode.CIRCLE]: 'circle',\n [PdfAnnotationSubtypeCode.POLYGON]: 'polygon',\n [PdfAnnotationSubtypeCode.POLYLINE]: 'polyline',\n [PdfAnnotationSubtypeCode.HIGHLIGHT]: 'highlight',\n [PdfAnnotationSubtypeCode.UNDERLINE]: 'underline',\n [PdfAnnotationSubtypeCode.SQUIGGLY]: 'squiggly',\n [PdfAnnotationSubtypeCode.STRIKEOUT]: 'strikeout',\n [PdfAnnotationSubtypeCode.STAMP]: 'stamp',\n [PdfAnnotationSubtypeCode.CARET]: 'caret',\n [PdfAnnotationSubtypeCode.INK]: 'ink',\n [PdfAnnotationSubtypeCode.POPUP]: 'popup',\n [PdfAnnotationSubtypeCode.FILEATTACHMENT]: 'file-attachment',\n [PdfAnnotationSubtypeCode.WIDGET]: 'widget',\n [PdfAnnotationSubtypeCode.REDACT]: 'redact',\n});\n\n/**\n * Reverse map for write paths that need to turn a wire subtype back into the\n * PDFium integer code without importing the zod-backed annotation registry.\n */\nexport const PDF_SUBTYPE_TO_CODE: Readonly<Record<AnnotationSubtype, PdfAnnotationSubtypeCode>> =\n Object.freeze({\n text: PdfAnnotationSubtypeCode.TEXT,\n link: PdfAnnotationSubtypeCode.LINK,\n 'free-text': PdfAnnotationSubtypeCode.FREETEXT,\n line: PdfAnnotationSubtypeCode.LINE,\n square: PdfAnnotationSubtypeCode.SQUARE,\n circle: PdfAnnotationSubtypeCode.CIRCLE,\n polygon: PdfAnnotationSubtypeCode.POLYGON,\n polyline: PdfAnnotationSubtypeCode.POLYLINE,\n highlight: PdfAnnotationSubtypeCode.HIGHLIGHT,\n underline: PdfAnnotationSubtypeCode.UNDERLINE,\n squiggly: PdfAnnotationSubtypeCode.SQUIGGLY,\n strikeout: PdfAnnotationSubtypeCode.STRIKEOUT,\n stamp: PdfAnnotationSubtypeCode.STAMP,\n caret: PdfAnnotationSubtypeCode.CARET,\n ink: PdfAnnotationSubtypeCode.INK,\n popup: PdfAnnotationSubtypeCode.POPUP,\n 'file-attachment': PdfAnnotationSubtypeCode.FILEATTACHMENT,\n redact: PdfAnnotationSubtypeCode.REDACT,\n widget: PdfAnnotationSubtypeCode.WIDGET,\n unsupported: PdfAnnotationSubtypeCode.UNKNOWN,\n });\n\nexport function subtypeFromCode(code: number): AnnotationSubtype {\n return PDF_CODE_TO_SUBTYPE[code] ?? 'unsupported';\n}\n"],"mappings":";AAAA,MAAa,kBAAkB;CAC7B,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,qBAAqB;CACrB,sBAAsB;CACtB,SAAS;CACT,SAAS;CACT,iBAAiB;CACjB,WAAW;CACX,UAAU;CACV,YAAY;CACZ,oBAAoB;;;;;;;;;;;;CAYpB,kBAAkB;;;;;;;CAOlB,+BAA+B;;;;;;;;CAQ/B,sBAAsB;;;;;;;CAOtB,gBAAgB;;;;;;;;;;;;;;;;CAgBhB,cAAc;AAChB;;;;;;;;;;;;;;ACrDA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;;;;;;AAUA,MAAa,2BAA2B;CACtC,SAAS;CACT,MAAM;CACN,MAAM;CACN,UAAU;CACV,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,UAAU;CACV,WAAW;CACX,WAAW;CACX,UAAU;CACV,WAAW;CACX,OAAO;CACP,OAAO;CACP,KAAK;CACL,OAAO;CACP,gBAAgB;CAChB,OAAO;CACP,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,aAAa;CACb,SAAS;CACT,WAAW;CACX,QAAQ;CACR,WAAW;CACX,WAAW;CACX,QAAQ;AACV;;;;;AASA,MAAa,sBAAmE,OAAO,OAAO;EAC3F,yBAAyB,OAAO;EAChC,yBAAyB,OAAO;EAChC,yBAAyB,WAAW;EACpC,yBAAyB,OAAO;EAChC,yBAAyB,SAAS;EAClC,yBAAyB,SAAS;EAClC,yBAAyB,UAAU;EACnC,yBAAyB,WAAW;EACpC,yBAAyB,YAAY;EACrC,yBAAyB,YAAY;EACrC,yBAAyB,WAAW;EACpC,yBAAyB,YAAY;EACrC,yBAAyB,QAAQ;EACjC,yBAAyB,QAAQ;EACjC,yBAAyB,MAAM;EAC/B,yBAAyB,QAAQ;EACjC,yBAAyB,iBAAiB;EAC1C,yBAAyB,SAAS;EAClC,yBAAyB,SAAS;AACrC,CAAC;;;;;AAMD,MAAa,sBACX,OAAO,OAAO;CACZ,MAAM,yBAAyB;CAC/B,MAAM,yBAAyB;CAC/B,aAAa,yBAAyB;CACtC,MAAM,yBAAyB;CAC/B,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,SAAS,yBAAyB;CAClC,UAAU,yBAAyB;CACnC,WAAW,yBAAyB;CACpC,WAAW,yBAAyB;CACpC,UAAU,yBAAyB;CACnC,WAAW,yBAAyB;CACpC,OAAO,yBAAyB;CAChC,OAAO,yBAAyB;CAChC,KAAK,yBAAyB;CAC9B,OAAO,yBAAyB;CAChC,mBAAmB,yBAAyB;CAC5C,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,aAAa,yBAAyB;AACxC,CAAC;AAEH,SAAgB,gBAAgB,MAAiC;CAC/D,OAAO,oBAAoB,SAAS;AACtC"}