@docmentis/udoc-viewer 0.3.1 → 0.4.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.
Files changed (38) hide show
  1. package/README.md +5 -15
  2. package/dist/package.json +1 -1
  3. package/dist/src/UDocClient.d.ts +7 -0
  4. package/dist/src/UDocClient.d.ts.map +1 -1
  5. package/dist/src/UDocClient.js.map +1 -1
  6. package/dist/src/UDocViewer.d.ts +1 -0
  7. package/dist/src/UDocViewer.d.ts.map +1 -1
  8. package/dist/src/UDocViewer.js +34 -5
  9. package/dist/src/UDocViewer.js.map +1 -1
  10. package/dist/src/fonts.d.ts +29 -0
  11. package/dist/src/fonts.d.ts.map +1 -0
  12. package/dist/src/fonts.js +30 -0
  13. package/dist/src/fonts.js.map +1 -0
  14. package/dist/src/index.d.ts +1 -0
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +2 -0
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/performance/PerformanceCounter.d.ts +1 -1
  19. package/dist/src/performance/PerformanceCounter.d.ts.map +1 -1
  20. package/dist/src/performance/PerformanceCounter.js.map +1 -1
  21. package/dist/src/ui/viewer/text/render.d.ts.map +1 -1
  22. package/dist/src/ui/viewer/text/render.js +5 -0
  23. package/dist/src/ui/viewer/text/render.js.map +1 -1
  24. package/dist/src/wasm/udoc.d.ts +125 -0
  25. package/dist/src/wasm/udoc.js +273 -0
  26. package/dist/src/wasm/udoc_bg.wasm +0 -0
  27. package/dist/src/wasm/udoc_bg.wasm.d.ts +6 -0
  28. package/dist/src/worker/WorkerClient.d.ts +57 -2
  29. package/dist/src/worker/WorkerClient.d.ts.map +1 -1
  30. package/dist/src/worker/WorkerClient.js +78 -0
  31. package/dist/src/worker/WorkerClient.js.map +1 -1
  32. package/dist/src/worker/index.d.ts +1 -1
  33. package/dist/src/worker/index.d.ts.map +1 -1
  34. package/dist/src/worker/worker.d.ts +80 -0
  35. package/dist/src/worker/worker.d.ts.map +1 -1
  36. package/dist/src/worker/worker.js +36 -0
  37. package/dist/src/worker/worker.js.map +1 -1
  38. package/package.json +1 -1
@@ -135,6 +135,36 @@ export class UDoc {
135
135
  * - `transform`: Combined transform matrix
136
136
  */
137
137
  get_page_text(id: string, page_index: number): any;
138
+ /**
139
+ * Register a font from raw bytes.
140
+ *
141
+ * Use this to register external fonts (e.g., fetched from Google Fonts)
142
+ * so they can be used for document rendering.
143
+ *
144
+ * # Arguments
145
+ * * `id` - Document ID
146
+ * * `typeface` - The typeface name (must match what's in the document)
147
+ * * `bold` - Whether this is a bold variant
148
+ * * `italic` - Whether this is an italic variant
149
+ * * `bytes` - Raw font file data (TTF, OTF, WOFF, or WOFF2)
150
+ *
151
+ * # Example (JavaScript)
152
+ * ```js
153
+ * // Get required fonts
154
+ * const fonts = udoc.getRequiredFonts(docId);
155
+ *
156
+ * // Fetch and register each font
157
+ * for (const font of fonts) {
158
+ * const url = `https://fonts.googleapis.com/css2?family=${font.typeface}`;
159
+ * const fontBytes = await fetchFontBytes(url, font.bold, font.italic);
160
+ * udoc.registerFont(docId, font.typeface, font.bold, font.italic, fontBytes);
161
+ * }
162
+ *
163
+ * // Now render with the registered fonts
164
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
165
+ * ```
166
+ */
167
+ registerFont(id: string, typeface: string, bold: boolean, italic: boolean, bytes: Uint8Array): void;
138
168
  /**
139
169
  * Get current license status.
140
170
  */
@@ -179,6 +209,43 @@ export class UDoc {
179
209
  * - `data`: Raw font data as Uint8Array
180
210
  */
181
211
  pdf_extract_fonts(doc_id: string): any;
212
+ /**
213
+ * Get all external fonts required by the document.
214
+ *
215
+ * This scans all text content in loaded pages and returns font descriptors
216
+ * for fonts that are:
217
+ * - Not embedded in the document
218
+ * - Not standard PDF fonts (Helvetica, Times, Courier, etc.)
219
+ *
220
+ * Use this to determine which fonts need to be fetched from external sources
221
+ * (e.g., Google Fonts) before rendering.
222
+ *
223
+ * Note: This only scans pages that have been loaded. Call appropriate loading
224
+ * methods first to ensure the pages you need are scanned.
225
+ *
226
+ * # Arguments
227
+ * * `id` - Document ID
228
+ *
229
+ * # Returns
230
+ * Array of font descriptors: `[{ typeface: "Roboto", bold: false, italic: false }, ...]`
231
+ *
232
+ * # Example (JavaScript)
233
+ * ```js
234
+ * // Load document
235
+ * const docId = udoc.loadPdf(pdfBytes);
236
+ *
237
+ * // Load all pages to scan for fonts
238
+ * const pageCount = udoc.pageCount(docId);
239
+ * for (let i = 0; i < pageCount; i++) {
240
+ * udoc.renderPageToRgba(docId, i, 1, 1); // Minimal render to load page
241
+ * }
242
+ *
243
+ * // Get required fonts
244
+ * const fonts = udoc.getRequiredFonts(docId);
245
+ * // fonts: [{ typeface: "Roboto", bold: false, italic: false }, ...]
246
+ * ```
247
+ */
248
+ getRequiredFonts(id: string): any;
182
249
  /**
183
250
  * Extract all embedded images from a PDF document.
184
251
  *
@@ -208,12 +275,44 @@ export class UDoc {
208
275
  * PNG-encoded image data as a byte array.
209
276
  */
210
277
  render_page_to_png(id: string, page_index: number, width: number, height: number): Uint8Array;
278
+ /**
279
+ * Enable Google Fonts for a document.
280
+ *
281
+ * When enabled, fonts that are not embedded in the document will be
282
+ * automatically fetched from Google Fonts during rendering.
283
+ *
284
+ * # Arguments
285
+ * * `id` - Document ID
286
+ *
287
+ * # Example (JavaScript)
288
+ * ```js
289
+ * // Enable Google Fonts for the document
290
+ * udoc.enableGoogleFonts(docId);
291
+ *
292
+ * // Now render pages - fonts will be fetched automatically
293
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
294
+ * ```
295
+ */
296
+ enableGoogleFonts(id: string): void;
211
297
  /**
212
298
  * Get all annotations in the document, grouped by page index.
213
299
  *
214
300
  * Returns an object mapping page indices (as strings) to arrays of annotations.
215
301
  */
216
302
  get_all_annotations(id: string): any;
303
+ /**
304
+ * Check if a font is registered for a document.
305
+ *
306
+ * # Arguments
307
+ * * `id` - Document ID
308
+ * * `typeface` - The typeface name
309
+ * * `bold` - Whether to check for bold variant
310
+ * * `italic` - Whether to check for italic variant
311
+ *
312
+ * # Returns
313
+ * `true` if the font is registered, `false` otherwise.
314
+ */
315
+ hasRegisteredFont(id: string, typeface: string, bold: boolean, italic: boolean): boolean;
217
316
  /**
218
317
  * Render a page to raw RGBA pixel data.
219
318
  *
@@ -253,6 +352,16 @@ export class UDoc {
253
352
  * - `sections`: Array of section info objects with `title`, `startPage`, `level`
254
353
  */
255
354
  pdf_split_by_outline(doc_id: string, max_level: number, split_mid_page: boolean): any;
355
+ /**
356
+ * Get the number of fonts registered for a document.
357
+ *
358
+ * # Arguments
359
+ * * `id` - Document ID
360
+ *
361
+ * # Returns
362
+ * The number of registered fonts.
363
+ */
364
+ registeredFontCount(id: string): number;
256
365
  /**
257
366
  * Create a new document viewer.
258
367
  */
@@ -280,6 +389,16 @@ export class UDoc {
280
389
  * Returns the limit value if set in the license, otherwise returns the default.
281
390
  */
282
391
  get_limit(limit_name: string, _default: bigint): bigint;
392
+ /**
393
+ * Load a PPTX (PowerPoint) document and return its ID.
394
+ *
395
+ * # Arguments
396
+ * * `bytes` - Raw PPTX file data
397
+ *
398
+ * # Returns
399
+ * A unique document ID that can be used to reference this document.
400
+ */
401
+ load_pptx(bytes: Uint8Array): string;
283
402
  /**
284
403
  * Get info for a specific page.
285
404
  */
@@ -299,17 +418,21 @@ export interface InitOutput {
299
418
  readonly udoc_authenticate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
300
419
  readonly udoc_document_count: (a: number) => number;
301
420
  readonly udoc_document_ids: (a: number, b: number) => void;
421
+ readonly udoc_enableGoogleFonts: (a: number, b: number, c: number, d: number) => void;
422
+ readonly udoc_getRequiredFonts: (a: number, b: number, c: number, d: number) => void;
302
423
  readonly udoc_get_all_annotations: (a: number, b: number, c: number, d: number) => void;
303
424
  readonly udoc_get_bytes: (a: number, b: number, c: number, d: number) => void;
304
425
  readonly udoc_get_limit: (a: number, b: number, c: number, d: bigint) => bigint;
305
426
  readonly udoc_get_outline: (a: number, b: number, c: number, d: number) => void;
306
427
  readonly udoc_get_page_annotations: (a: number, b: number, c: number, d: number, e: number) => void;
307
428
  readonly udoc_get_page_text: (a: number, b: number, c: number, d: number, e: number) => void;
429
+ readonly udoc_hasRegisteredFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
308
430
  readonly udoc_has_document: (a: number, b: number, c: number) => number;
309
431
  readonly udoc_has_feature: (a: number, b: number, c: number) => number;
310
432
  readonly udoc_license_status: (a: number, b: number) => void;
311
433
  readonly udoc_load_image: (a: number, b: number, c: number, d: number) => void;
312
434
  readonly udoc_load_pdf: (a: number, b: number, c: number, d: number) => void;
435
+ readonly udoc_load_pptx: (a: number, b: number, c: number, d: number) => void;
313
436
  readonly udoc_needs_password: (a: number, b: number, c: number, d: number) => void;
314
437
  readonly udoc_new: () => number;
315
438
  readonly udoc_page_count: (a: number, b: number, c: number, d: number) => void;
@@ -321,6 +444,8 @@ export interface InitOutput {
321
444
  readonly udoc_pdf_extract_fonts: (a: number, b: number, c: number, d: number) => void;
322
445
  readonly udoc_pdf_extract_images: (a: number, b: number, c: number, d: number, e: number) => void;
323
446
  readonly udoc_pdf_split_by_outline: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
447
+ readonly udoc_registerFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
448
+ readonly udoc_registeredFontCount: (a: number, b: number, c: number, d: number) => void;
324
449
  readonly udoc_remove_document: (a: number, b: number, c: number) => number;
325
450
  readonly udoc_render_page_to_png: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
326
451
  readonly udoc_render_page_to_rgba: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
@@ -214,6 +214,8 @@ if (!('encodeInto' in cachedTextEncoder)) {
214
214
 
215
215
  let WASM_VECTOR_LEN = 0;
216
216
 
217
+ const __wbindgen_enum_XmlHttpRequestResponseType = ["", "arraybuffer", "blob", "document", "json", "text"];
218
+
217
219
  const UDocFinalization = (typeof FinalizationRegistry === 'undefined')
218
220
  ? { register: () => {}, unregister: () => {} }
219
221
  : new FinalizationRegistry(ptr => wasm.__wbg_udoc_free(ptr >>> 0, 1));
@@ -599,6 +601,59 @@ export class UDoc {
599
601
  wasm.__wbindgen_add_to_stack_pointer(16);
600
602
  }
601
603
  }
604
+ /**
605
+ * Register a font from raw bytes.
606
+ *
607
+ * Use this to register external fonts (e.g., fetched from Google Fonts)
608
+ * so they can be used for document rendering.
609
+ *
610
+ * # Arguments
611
+ * * `id` - Document ID
612
+ * * `typeface` - The typeface name (must match what's in the document)
613
+ * * `bold` - Whether this is a bold variant
614
+ * * `italic` - Whether this is an italic variant
615
+ * * `bytes` - Raw font file data (TTF, OTF, WOFF, or WOFF2)
616
+ *
617
+ * # Example (JavaScript)
618
+ * ```js
619
+ * // Get required fonts
620
+ * const fonts = udoc.getRequiredFonts(docId);
621
+ *
622
+ * // Fetch and register each font
623
+ * for (const font of fonts) {
624
+ * const url = `https://fonts.googleapis.com/css2?family=${font.typeface}`;
625
+ * const fontBytes = await fetchFontBytes(url, font.bold, font.italic);
626
+ * udoc.registerFont(docId, font.typeface, font.bold, font.italic, fontBytes);
627
+ * }
628
+ *
629
+ * // Now render with the registered fonts
630
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
631
+ * ```
632
+ * @param {string} id
633
+ * @param {string} typeface
634
+ * @param {boolean} bold
635
+ * @param {boolean} italic
636
+ * @param {Uint8Array} bytes
637
+ */
638
+ registerFont(id, typeface, bold, italic, bytes) {
639
+ try {
640
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
641
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
642
+ const len0 = WASM_VECTOR_LEN;
643
+ const ptr1 = passStringToWasm0(typeface, wasm.__wbindgen_export, wasm.__wbindgen_export2);
644
+ const len1 = WASM_VECTOR_LEN;
645
+ const ptr2 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);
646
+ const len2 = WASM_VECTOR_LEN;
647
+ wasm.udoc_registerFont(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, bold, italic, ptr2, len2);
648
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
649
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
650
+ if (r1) {
651
+ throw takeObject(r0);
652
+ }
653
+ } finally {
654
+ wasm.__wbindgen_add_to_stack_pointer(16);
655
+ }
656
+ }
602
657
  /**
603
658
  * Get the number of documents currently loaded.
604
659
  * @returns {number}
@@ -730,6 +785,61 @@ export class UDoc {
730
785
  wasm.__wbindgen_add_to_stack_pointer(16);
731
786
  }
732
787
  }
788
+ /**
789
+ * Get all external fonts required by the document.
790
+ *
791
+ * This scans all text content in loaded pages and returns font descriptors
792
+ * for fonts that are:
793
+ * - Not embedded in the document
794
+ * - Not standard PDF fonts (Helvetica, Times, Courier, etc.)
795
+ *
796
+ * Use this to determine which fonts need to be fetched from external sources
797
+ * (e.g., Google Fonts) before rendering.
798
+ *
799
+ * Note: This only scans pages that have been loaded. Call appropriate loading
800
+ * methods first to ensure the pages you need are scanned.
801
+ *
802
+ * # Arguments
803
+ * * `id` - Document ID
804
+ *
805
+ * # Returns
806
+ * Array of font descriptors: `[{ typeface: "Roboto", bold: false, italic: false }, ...]`
807
+ *
808
+ * # Example (JavaScript)
809
+ * ```js
810
+ * // Load document
811
+ * const docId = udoc.loadPdf(pdfBytes);
812
+ *
813
+ * // Load all pages to scan for fonts
814
+ * const pageCount = udoc.pageCount(docId);
815
+ * for (let i = 0; i < pageCount; i++) {
816
+ * udoc.renderPageToRgba(docId, i, 1, 1); // Minimal render to load page
817
+ * }
818
+ *
819
+ * // Get required fonts
820
+ * const fonts = udoc.getRequiredFonts(docId);
821
+ * // fonts: [{ typeface: "Roboto", bold: false, italic: false }, ...]
822
+ * ```
823
+ * @param {string} id
824
+ * @returns {any}
825
+ */
826
+ getRequiredFonts(id) {
827
+ try {
828
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
829
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
830
+ const len0 = WASM_VECTOR_LEN;
831
+ wasm.udoc_getRequiredFonts(retptr, this.__wbg_ptr, ptr0, len0);
832
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
833
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
834
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
835
+ if (r2) {
836
+ throw takeObject(r1);
837
+ }
838
+ return takeObject(r0);
839
+ } finally {
840
+ wasm.__wbindgen_add_to_stack_pointer(16);
841
+ }
842
+ }
733
843
  /**
734
844
  * Extract all embedded images from a PDF document.
735
845
  *
@@ -802,6 +912,40 @@ export class UDoc {
802
912
  wasm.__wbindgen_add_to_stack_pointer(16);
803
913
  }
804
914
  }
915
+ /**
916
+ * Enable Google Fonts for a document.
917
+ *
918
+ * When enabled, fonts that are not embedded in the document will be
919
+ * automatically fetched from Google Fonts during rendering.
920
+ *
921
+ * # Arguments
922
+ * * `id` - Document ID
923
+ *
924
+ * # Example (JavaScript)
925
+ * ```js
926
+ * // Enable Google Fonts for the document
927
+ * udoc.enableGoogleFonts(docId);
928
+ *
929
+ * // Now render pages - fonts will be fetched automatically
930
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
931
+ * ```
932
+ * @param {string} id
933
+ */
934
+ enableGoogleFonts(id) {
935
+ try {
936
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
937
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
938
+ const len0 = WASM_VECTOR_LEN;
939
+ wasm.udoc_enableGoogleFonts(retptr, this.__wbg_ptr, ptr0, len0);
940
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
941
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
942
+ if (r1) {
943
+ throw takeObject(r0);
944
+ }
945
+ } finally {
946
+ wasm.__wbindgen_add_to_stack_pointer(16);
947
+ }
948
+ }
805
949
  /**
806
950
  * Get all annotations in the document, grouped by page index.
807
951
  *
@@ -826,6 +970,42 @@ export class UDoc {
826
970
  wasm.__wbindgen_add_to_stack_pointer(16);
827
971
  }
828
972
  }
973
+ /**
974
+ * Check if a font is registered for a document.
975
+ *
976
+ * # Arguments
977
+ * * `id` - Document ID
978
+ * * `typeface` - The typeface name
979
+ * * `bold` - Whether to check for bold variant
980
+ * * `italic` - Whether to check for italic variant
981
+ *
982
+ * # Returns
983
+ * `true` if the font is registered, `false` otherwise.
984
+ * @param {string} id
985
+ * @param {string} typeface
986
+ * @param {boolean} bold
987
+ * @param {boolean} italic
988
+ * @returns {boolean}
989
+ */
990
+ hasRegisteredFont(id, typeface, bold, italic) {
991
+ try {
992
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
993
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
994
+ const len0 = WASM_VECTOR_LEN;
995
+ const ptr1 = passStringToWasm0(typeface, wasm.__wbindgen_export, wasm.__wbindgen_export2);
996
+ const len1 = WASM_VECTOR_LEN;
997
+ wasm.udoc_hasRegisteredFont(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, bold, italic);
998
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
999
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1000
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1001
+ if (r2) {
1002
+ throw takeObject(r1);
1003
+ }
1004
+ return r0 !== 0;
1005
+ } finally {
1006
+ wasm.__wbindgen_add_to_stack_pointer(16);
1007
+ }
1008
+ }
829
1009
  /**
830
1010
  * Render a page to raw RGBA pixel data.
831
1011
  *
@@ -928,6 +1108,34 @@ export class UDoc {
928
1108
  wasm.__wbindgen_add_to_stack_pointer(16);
929
1109
  }
930
1110
  }
1111
+ /**
1112
+ * Get the number of fonts registered for a document.
1113
+ *
1114
+ * # Arguments
1115
+ * * `id` - Document ID
1116
+ *
1117
+ * # Returns
1118
+ * The number of registered fonts.
1119
+ * @param {string} id
1120
+ * @returns {number}
1121
+ */
1122
+ registeredFontCount(id) {
1123
+ try {
1124
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1125
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1126
+ const len0 = WASM_VECTOR_LEN;
1127
+ wasm.udoc_registeredFontCount(retptr, this.__wbg_ptr, ptr0, len0);
1128
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1129
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1130
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1131
+ if (r2) {
1132
+ throw takeObject(r1);
1133
+ }
1134
+ return r0 >>> 0;
1135
+ } finally {
1136
+ wasm.__wbindgen_add_to_stack_pointer(16);
1137
+ }
1138
+ }
931
1139
  /**
932
1140
  * Create a new document viewer.
933
1141
  */
@@ -1016,6 +1224,43 @@ export class UDoc {
1016
1224
  const ret = wasm.udoc_get_limit(this.__wbg_ptr, ptr0, len0, _default);
1017
1225
  return BigInt.asUintN(64, ret);
1018
1226
  }
1227
+ /**
1228
+ * Load a PPTX (PowerPoint) document and return its ID.
1229
+ *
1230
+ * # Arguments
1231
+ * * `bytes` - Raw PPTX file data
1232
+ *
1233
+ * # Returns
1234
+ * A unique document ID that can be used to reference this document.
1235
+ * @param {Uint8Array} bytes
1236
+ * @returns {string}
1237
+ */
1238
+ load_pptx(bytes) {
1239
+ let deferred3_0;
1240
+ let deferred3_1;
1241
+ try {
1242
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1243
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);
1244
+ const len0 = WASM_VECTOR_LEN;
1245
+ wasm.udoc_load_pptx(retptr, this.__wbg_ptr, ptr0, len0);
1246
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1247
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1248
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1249
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1250
+ var ptr2 = r0;
1251
+ var len2 = r1;
1252
+ if (r3) {
1253
+ ptr2 = 0; len2 = 0;
1254
+ throw takeObject(r2);
1255
+ }
1256
+ deferred3_0 = ptr2;
1257
+ deferred3_1 = len2;
1258
+ return getStringFromWasm0(ptr2, len2);
1259
+ } finally {
1260
+ wasm.__wbindgen_add_to_stack_pointer(16);
1261
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
1262
+ }
1263
+ }
1019
1264
  /**
1020
1265
  * Get info for a specific page.
1021
1266
  * @param {string} id
@@ -1270,6 +1515,10 @@ function __wbg_get_imports() {
1270
1515
  const ret = new Array();
1271
1516
  return addHeapObject(ret);
1272
1517
  };
1518
+ imports.wbg.__wbg_new_4fe05c96062a8385 = function() { return handleError(function () {
1519
+ const ret = new XMLHttpRequest();
1520
+ return addHeapObject(ret);
1521
+ }, arguments) };
1273
1522
  imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {
1274
1523
  const ret = new Uint8Array(getObject(arg0));
1275
1524
  return addHeapObject(ret);
@@ -1306,6 +1555,9 @@ function __wbg_get_imports() {
1306
1555
  const ret = Date.now();
1307
1556
  return ret;
1308
1557
  };
1558
+ imports.wbg.__wbg_open_bfb661c1c2740586 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {
1559
+ getObject(arg0).open(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), arg5 !== 0);
1560
+ }, arguments) };
1309
1561
  imports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {
1310
1562
  const ret = getObject(arg0).process;
1311
1563
  return addHeapObject(ret);
@@ -1320,6 +1572,20 @@ function __wbg_get_imports() {
1320
1572
  const ret = module.require;
1321
1573
  return addHeapObject(ret);
1322
1574
  }, arguments) };
1575
+ imports.wbg.__wbg_responseText_7a33f62863958740 = function() { return handleError(function (arg0, arg1) {
1576
+ const ret = getObject(arg1).responseText;
1577
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1578
+ var len1 = WASM_VECTOR_LEN;
1579
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1580
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1581
+ }, arguments) };
1582
+ imports.wbg.__wbg_response_19d1d96c8fc76878 = function() { return handleError(function (arg0) {
1583
+ const ret = getObject(arg0).response;
1584
+ return addHeapObject(ret);
1585
+ }, arguments) };
1586
+ imports.wbg.__wbg_send_3accfe4b9b207011 = function() { return handleError(function (arg0) {
1587
+ getObject(arg0).send();
1588
+ }, arguments) };
1323
1589
  imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {
1324
1590
  getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
1325
1591
  };
@@ -1330,6 +1596,9 @@ function __wbg_get_imports() {
1330
1596
  const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));
1331
1597
  return addHeapObject(ret);
1332
1598
  };
1599
+ imports.wbg.__wbg_set_responseType_df7a5fa93f0dd4be = function(arg0, arg1) {
1600
+ getObject(arg0).responseType = __wbindgen_enum_XmlHttpRequestResponseType[arg1];
1601
+ };
1333
1602
  imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
1334
1603
  const ret = getObject(arg1).stack;
1335
1604
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1353,6 +1622,10 @@ function __wbg_get_imports() {
1353
1622
  const ret = typeof window === 'undefined' ? null : window;
1354
1623
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1355
1624
  };
1625
+ imports.wbg.__wbg_status_c547ab1614ba835e = function() { return handleError(function (arg0) {
1626
+ const ret = getObject(arg0).status;
1627
+ return ret;
1628
+ }, arguments) };
1356
1629
  imports.wbg.__wbg_subarray_845f2f5bce7d061a = function(arg0, arg1, arg2) {
1357
1630
  const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
1358
1631
  return addHeapObject(ret);
Binary file
@@ -6,17 +6,21 @@ export const udoc_all_page_info: (a: number, b: number, c: number, d: number) =>
6
6
  export const udoc_authenticate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
7
7
  export const udoc_document_count: (a: number) => number;
8
8
  export const udoc_document_ids: (a: number, b: number) => void;
9
+ export const udoc_enableGoogleFonts: (a: number, b: number, c: number, d: number) => void;
10
+ export const udoc_getRequiredFonts: (a: number, b: number, c: number, d: number) => void;
9
11
  export const udoc_get_all_annotations: (a: number, b: number, c: number, d: number) => void;
10
12
  export const udoc_get_bytes: (a: number, b: number, c: number, d: number) => void;
11
13
  export const udoc_get_limit: (a: number, b: number, c: number, d: bigint) => bigint;
12
14
  export const udoc_get_outline: (a: number, b: number, c: number, d: number) => void;
13
15
  export const udoc_get_page_annotations: (a: number, b: number, c: number, d: number, e: number) => void;
14
16
  export const udoc_get_page_text: (a: number, b: number, c: number, d: number, e: number) => void;
17
+ export const udoc_hasRegisteredFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
15
18
  export const udoc_has_document: (a: number, b: number, c: number) => number;
16
19
  export const udoc_has_feature: (a: number, b: number, c: number) => number;
17
20
  export const udoc_license_status: (a: number, b: number) => void;
18
21
  export const udoc_load_image: (a: number, b: number, c: number, d: number) => void;
19
22
  export const udoc_load_pdf: (a: number, b: number, c: number, d: number) => void;
23
+ export const udoc_load_pptx: (a: number, b: number, c: number, d: number) => void;
20
24
  export const udoc_needs_password: (a: number, b: number, c: number, d: number) => void;
21
25
  export const udoc_new: () => number;
22
26
  export const udoc_page_count: (a: number, b: number, c: number, d: number) => void;
@@ -28,6 +32,8 @@ export const udoc_pdf_decompress: (a: number, b: number, c: number, d: number) =
28
32
  export const udoc_pdf_extract_fonts: (a: number, b: number, c: number, d: number) => void;
29
33
  export const udoc_pdf_extract_images: (a: number, b: number, c: number, d: number, e: number) => void;
30
34
  export const udoc_pdf_split_by_outline: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
35
+ export const udoc_registerFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
36
+ export const udoc_registeredFontCount: (a: number, b: number, c: number, d: number) => void;
31
37
  export const udoc_remove_document: (a: number, b: number, c: number) => number;
32
38
  export const udoc_render_page_to_png: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
33
39
  export const udoc_render_page_to_rgba: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
@@ -5,8 +5,8 @@
5
5
  * Also handles render queue, cache, and priority management.
6
6
  * This is an internal API - use UDocClient for the public SDK.
7
7
  */
8
- import type { Composition, ComposePick, ExtractedFont, ExtractedImage, LicenseResult, OutlineSection, SplitByOutlineResult } from "./worker.js";
9
- export type { Composition, ComposePick, ExtractedFont, ExtractedImage, OutlineSection, SplitByOutlineResult };
8
+ import type { Composition, ComposePick, ExtractedFont, ExtractedImage, FontDescriptor, LicenseResult, OutlineSection, SplitByOutlineResult } from "./worker.js";
9
+ export type { Composition, ComposePick, ExtractedFont, ExtractedImage, FontDescriptor, OutlineSection, SplitByOutlineResult };
10
10
  export type { LicenseResult };
11
11
  export interface PageInfo {
12
12
  width: number;
@@ -85,6 +85,11 @@ export declare class WorkerClient {
85
85
  * @returns The document ID.
86
86
  */
87
87
  loadImage(bytes: Uint8Array): Promise<string>;
88
+ /**
89
+ * Load a PPTX (PowerPoint) document.
90
+ * @returns The document ID.
91
+ */
92
+ loadPptx(bytes: Uint8Array): Promise<string>;
88
93
  /**
89
94
  * Unload a PDF document.
90
95
  * @returns True if the document was removed.
@@ -193,6 +198,56 @@ export declare class WorkerClient {
193
198
  * Get the raw PDF bytes of a document.
194
199
  */
195
200
  getBytes(documentId: string): Promise<Uint8Array>;
201
+ /**
202
+ * Get all external fonts required by the document.
203
+ *
204
+ * Scans all text content in the document and returns font descriptors
205
+ * for fonts that are not embedded and not standard PDF fonts.
206
+ *
207
+ * @param documentId - Document ID
208
+ * @returns Array of font descriptors
209
+ */
210
+ getRequiredFonts(documentId: string): Promise<FontDescriptor[]>;
211
+ /**
212
+ * Register a font from raw bytes.
213
+ *
214
+ * @param documentId - Document ID
215
+ * @param typeface - The typeface name (must match what's in the document)
216
+ * @param bold - Whether this is a bold variant
217
+ * @param italic - Whether this is an italic variant
218
+ * @param bytes - Raw font file data (TTF, OTF, WOFF, or WOFF2)
219
+ */
220
+ registerFont(documentId: string, typeface: string, bold: boolean, italic: boolean, bytes: Uint8Array): Promise<void>;
221
+ /**
222
+ * Check if a font is registered for a document.
223
+ *
224
+ * @param documentId - Document ID
225
+ * @param typeface - The typeface name
226
+ * @param bold - Whether to check for bold variant
227
+ * @param italic - Whether to check for italic variant
228
+ * @returns True if the font is registered
229
+ */
230
+ hasRegisteredFont(documentId: string, typeface: string, bold: boolean, italic: boolean): Promise<boolean>;
231
+ /**
232
+ * Get the number of fonts registered for a document.
233
+ *
234
+ * @param documentId - Document ID
235
+ * @returns Number of registered fonts
236
+ */
237
+ registeredFontCount(documentId: string): Promise<number>;
238
+ /**
239
+ * Enable Google Fonts for a document.
240
+ *
241
+ * When enabled, fonts that are not embedded in the document will be
242
+ * automatically fetched from Google Fonts during rendering.
243
+ *
244
+ * This is an alternative to the `getRequiredFonts` + `registerFont` workflow.
245
+ * Instead of scanning all pages upfront, fonts are fetched on-demand as
246
+ * pages are rendered.
247
+ *
248
+ * @param documentId - Document ID
249
+ */
250
+ enableGoogleFonts(documentId: string): Promise<void>;
196
251
  /**
197
252
  * Set the performance counter for a document.
198
253
  * All operations for this document will be tracked.
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;AAE9H,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;CAC9B;AAMD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD,OAAO,KAAK,EAAE,mBAAmB,EAAiD,MAAM,yBAAyB,CAAC;AAElH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElG;AAGD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAGX;IAGJ,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,aAAa,CAAgE;IACrF,OAAO,CAAC,gBAAgB,CAAO;IAC/B,OAAO,CAAC,qBAAqB,CAAO;IAGpC,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,cAAc,CAAgD;IAGtE,OAAO,CAAC,mBAAmB,CAA0C;IAGrE,OAAO,CAAC,aAAa,CAAiC;IAEtD,OAAO;IAMP;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,YAAY;IAM7B;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,YAAY;IAK3D;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOzE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAOhD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASjD;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASnD;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASlD;;;OAGG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrD;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzD;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBvD;;;OAGG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoB3E;;;OAGG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwB7D;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAaxD;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAenF;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAe5E;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAe/E;;;;;;;OAOG;IACG,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOlF;;;;;;;OAOG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAO3H;;;;;;OAMG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOvG;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOnE;;;;;;;OAOG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAO1D;;;;;;;;OAQG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAO5D;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IASvD;;;;;;;;OAQG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOrE;;;;;;;;OAQG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;;;OAQG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;OAKG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9D;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIxE;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAIvB;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAgDxD;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAWlG;;;OAGG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAcrE;;OAEG;IACH,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAyB9D;;;OAGG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;;OAGG;IACH,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAK;IAE5C;;;;OAIG;IACH,sBAAsB,CACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,IAAI;IAkCP;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA0C5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IAExC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA4DjB;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAoB9B,OAAO,CAAC,kBAAkB;YA+BZ,QAAQ;IA8CtB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACH,SAAS,IAAI,IAAI;IASjB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;CAGpB"}