unpdf 1.8.1 → 1.9.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 (94) hide show
  1. package/README.md +60 -145
  2. package/dist/index.cjs +17 -30
  3. package/dist/index.d.cts +20 -32
  4. package/dist/index.d.mts +20 -32
  5. package/dist/index.mjs +17 -30
  6. package/dist/pdfjs.mjs +37 -37
  7. package/dist/types/external/qcms/qcms.d.ts +11 -7
  8. package/dist/types/external/qcms/qcms_utils.d.ts +1 -6
  9. package/dist/types/src/core/base_stream.d.ts +8 -1
  10. package/dist/types/src/core/catalog.d.ts +12 -12
  11. package/dist/types/src/core/colorspace.d.ts +6 -15
  12. package/dist/types/src/core/core_utils.d.ts +18 -14
  13. package/dist/types/src/core/crypto.d.ts +0 -1
  14. package/dist/types/src/core/file_spec.d.ts +4 -9
  15. package/dist/types/src/core/icc_colorspace.d.ts +0 -1
  16. package/dist/types/src/core/image_resizer.d.ts +24 -0
  17. package/dist/types/src/core/image_utils.d.ts +4 -4
  18. package/dist/types/src/core/jpeg_stream.d.ts +1 -1
  19. package/dist/types/src/core/jpg.d.ts +9 -13
  20. package/dist/types/src/core/parser.d.ts +0 -2
  21. package/dist/types/src/core/pattern.d.ts +0 -2
  22. package/dist/types/src/core/primitives.d.ts +30 -16
  23. package/dist/types/src/core/sasl_prep.d.ts +1 -0
  24. package/dist/types/src/core/sound.d.ts +39 -0
  25. package/dist/types/src/core/string_utils.d.ts +1 -1
  26. package/dist/types/src/core/struct_tree.d.ts +3 -3
  27. package/dist/types/src/core/xml_parser.d.ts +1 -2
  28. package/dist/types/src/core/xref.d.ts +2 -15
  29. package/dist/types/src/display/annotation_layer.d.ts +9 -20
  30. package/dist/types/src/display/annotation_storage.d.ts +7 -7
  31. package/dist/types/src/display/api.d.ts +155 -108
  32. package/dist/types/src/display/canvas.d.ts +2 -1
  33. package/dist/types/src/display/canvas_dependency_tracker.d.ts +8 -3
  34. package/dist/types/src/display/content_disposition.d.ts +0 -1
  35. package/dist/types/src/display/display_utils.d.ts +2 -2
  36. package/dist/types/src/display/draw_layer.d.ts +2 -6
  37. package/dist/types/src/display/editor/annotation_editor_layer.d.ts +18 -19
  38. package/dist/types/src/display/editor/color_picker.d.ts +1 -1
  39. package/dist/types/src/display/editor/comment.d.ts +1 -1
  40. package/dist/types/src/display/editor/draw.d.ts +78 -27
  41. package/dist/types/src/display/editor/drawers/freedraw.d.ts +11 -9
  42. package/dist/types/src/display/editor/drawers/highlight.d.ts +99 -15
  43. package/dist/types/src/display/editor/drawers/inkdraw.d.ts +7 -2
  44. package/dist/types/src/display/editor/drawers/outline.d.ts +65 -2
  45. package/dist/types/src/display/editor/editor.d.ts +24 -22
  46. package/dist/types/src/display/editor/freetext.d.ts +1 -1
  47. package/dist/types/src/display/editor/highlight.d.ts +44 -35
  48. package/dist/types/src/display/editor/ink.d.ts +7 -2
  49. package/dist/types/src/display/editor/stamp.d.ts +1 -1
  50. package/dist/types/src/display/editor/tools.d.ts +21 -19
  51. package/dist/types/src/display/filter_factory.d.ts +1 -3
  52. package/dist/types/src/display/font_loader.d.ts +1 -15
  53. package/dist/types/src/display/network_utils.d.ts +1 -0
  54. package/dist/types/src/display/obj_bin_transform_display.d.ts +25 -38
  55. package/dist/types/src/display/page_viewport.d.ts +5 -5
  56. package/dist/types/src/display/pages_mapper.d.ts +10 -4
  57. package/dist/types/src/display/pattern_helper.d.ts +4 -3
  58. package/dist/types/src/display/pdf_objects.d.ts +1 -3
  59. package/dist/types/src/display/text_layer.d.ts +2 -0
  60. package/dist/types/src/display/touch_manager.d.ts +46 -9
  61. package/dist/types/src/display/worker_options.d.ts +2 -2
  62. package/dist/types/src/display/xfa_layer.d.ts +7 -12
  63. package/dist/types/src/display/xfa_text.d.ts +2 -5
  64. package/dist/types/src/pdf.d.ts +2 -1
  65. package/dist/types/src/shared/base_pdf_stream.d.ts +6 -7
  66. package/dist/types/src/shared/css_utils.d.ts +8 -0
  67. package/dist/types/src/shared/message_handler.d.ts +2 -11
  68. package/dist/types/src/shared/obj_bin_transform_utils.d.ts +4 -3
  69. package/dist/types/src/shared/util.d.ts +4 -6
  70. package/dist/types/web/annotation_editor_layer_builder.d.ts +5 -3
  71. package/dist/types/web/annotation_layer_builder.d.ts +8 -12
  72. package/dist/types/web/draw_layer_builder.d.ts +7 -9
  73. package/dist/types/web/event_utils.d.ts +12 -13
  74. package/dist/types/web/genericl10n.d.ts +2 -2
  75. package/dist/types/web/l10n.d.ts +1 -1
  76. package/dist/types/web/pdf_find_controller.d.ts +5 -6
  77. package/dist/types/web/pdf_find_utils.d.ts +8 -14
  78. package/dist/types/web/pdf_history.d.ts +1 -1
  79. package/dist/types/web/pdf_link_service.d.ts +5 -7
  80. package/dist/types/web/pdf_page_view.d.ts +3 -3
  81. package/dist/types/web/pdf_rendering_queue.d.ts +4 -5
  82. package/dist/types/web/pdf_scripting_manager.d.ts +4 -4
  83. package/dist/types/web/pdf_thumbnail_view.d.ts +2 -2
  84. package/dist/types/web/pdf_thumbnail_viewer.d.ts +14 -15
  85. package/dist/types/web/pdf_viewer.d.ts +36 -16
  86. package/dist/types/web/renderable_view.d.ts +1 -1
  87. package/dist/types/web/sidebar.d.ts +3 -3
  88. package/dist/types/web/struct_tree_layer_builder.d.ts +20 -6
  89. package/dist/types/web/text_accessibility.d.ts +4 -2
  90. package/dist/types/web/text_highlighter.d.ts +1 -2
  91. package/dist/types/web/text_layer_builder.d.ts +5 -5
  92. package/dist/types/web/ui_utils.d.ts +8 -13
  93. package/dist/types/web/xfa_layer_builder.d.ts +7 -7
  94. package/package.json +12 -11
package/dist/index.mjs CHANGED
@@ -52,7 +52,7 @@ let resolvedModule;
52
52
  const isNode = globalThis.process?.release?.name === "node";
53
53
  const isBrowser = typeof window !== "undefined";
54
54
  /**
55
- * Returns a `PDFDocumentProxy` instance from a given binary data.
55
+ * Creates a `PDFDocumentProxy` from binary PDF data.
56
56
  *
57
57
  * Applies the following defaults:
58
58
  * - `useSystemFonts: true`
@@ -208,18 +208,6 @@ function injectCanvasConstructors() {
208
208
  /**
209
209
  * Extracts images from a specific page of a PDF document, including necessary metadata,
210
210
  * such as width, height, and calculated color channels.
211
- *
212
- * @example
213
- * const imagesData = await extractImages(pdf, pageNum)
214
- *
215
- * for (const imgData of imagesData) {
216
- * const imageIndex = totalImagesProcessed + 1
217
- * await sharp(imgData.data, {
218
- * raw: { width: imgData.width, height: imgData.height, channels: imgData.channels }
219
- * })
220
- * .png()
221
- * .toFile(`${imageIndex}.png`)
222
- * }
223
211
  */
224
212
  async function extractImages$1(data, pageNumber) {
225
213
  return await withDocument(data, async (pdf) => {
@@ -326,23 +314,23 @@ const XMP_DATE_PROPERTIES = [
326
314
  async function getMeta$1(data, options = {}) {
327
315
  return await withDocument(data, async (pdf) => {
328
316
  const meta = await pdf.getMetadata();
329
- const info = meta?.info || {};
317
+ const info = { ...meta.info };
318
+ let metadata = meta.metadata;
330
319
  if (options.parseDates) {
331
320
  const { PDFDateString } = await getResolvedPDFJS();
332
- if (info?.CreationDate) info.CreationDate = PDFDateString.toDateObject(info?.CreationDate);
333
- if (info?.ModDate) info.ModDate = PDFDateString.toDateObject(info?.ModDate);
334
- if (meta.metadata) meta.metadata = new Proxy(meta.metadata, { get(target, prop) {
335
- if (prop === "get") return (name) => {
336
- const value = target.get(name);
337
- if (XMP_DATE_PROPERTIES.includes(name) && value) return parseISODateString(value);
338
- return value;
339
- };
340
- return target[prop];
341
- } });
321
+ if (info.CreationDate) info.CreationDate = PDFDateString.toDateObject(info.CreationDate);
322
+ if (info.ModDate) info.ModDate = PDFDateString.toDateObject(info.ModDate);
323
+ if (metadata) {
324
+ const Metadata = metadata.constructor;
325
+ metadata = new Metadata({
326
+ parsedData: new Map(Array.from(metadata, ([name, value]) => [name, XMP_DATE_PROPERTIES.includes(name) && value ? parseISODateString(value) : value])),
327
+ rawData: metadata.getRaw()
328
+ });
329
+ }
342
330
  }
343
331
  return {
344
332
  info,
345
- metadata: meta?.metadata || {}
333
+ metadata: metadata || {}
346
334
  };
347
335
  });
348
336
  }
@@ -403,15 +391,14 @@ function normalizeMergedText(texts) {
403
391
  //#endregion
404
392
  //#region src/config.ts
405
393
  /**
406
- * By default, unpdf will use the latest version of PDF.js compiled for
407
- * serverless environments. If you want to use a different version, you can
408
- * provide a custom resolver function.
394
+ * Sets the PDF.js build every other method uses – call it before any of them.
395
+ * Without it, the serverless build is used.
409
396
  *
410
397
  * @example
411
- * // Use the official PDF.js build (make sure to install it first)
398
+ * // In Node.js, the legacy build of `pdfjs-dist` (install it first)
412
399
  * import { definePDFJSModule } from 'unpdf'
413
400
  *
414
- * await definePDFJSModule(() => import('pdfjs-dist'))
401
+ * await definePDFJSModule(() => import('pdfjs-dist/legacy/build/pdf.mjs'))
415
402
  */
416
403
  async function definePDFJSModule(pdfjs) {
417
404
  await resolvePDFJSImport(pdfjs, { reload: true });