pdfjs-serverless 1.2.2 → 1.3.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 (108) hide show
  1. package/README.md +6 -7
  2. package/dist/index.mjs +52 -59
  3. package/dist/types/external/brotli/decode.d.ts +5 -0
  4. package/dist/types/external/jbig2/jbig2.d.ts +2 -0
  5. package/dist/types/external/openjpeg/openjpeg.d.ts +2 -0
  6. package/dist/types/external/qcms/qcms.d.ts +92 -0
  7. package/dist/types/external/qcms/qcms_utils.d.ts +14 -0
  8. package/dist/types/src/core/ascii_85_stream.d.ts +7 -0
  9. package/dist/types/src/core/ascii_hex_stream.d.ts +7 -0
  10. package/dist/types/src/core/base_stream.d.ts +45 -0
  11. package/dist/types/src/core/brotli_stream.d.ts +9 -0
  12. package/dist/types/src/core/calculate_md5.d.ts +1 -0
  13. package/dist/types/src/core/calculate_sha256.d.ts +1 -0
  14. package/dist/types/src/core/calculate_sha_other.d.ts +2 -0
  15. package/dist/types/src/core/catalog.d.ts +169 -0
  16. package/dist/types/src/core/ccitt_stream.d.ts +18 -0
  17. package/dist/types/src/core/cleanup_helper.d.ts +1 -0
  18. package/dist/types/src/core/colorspace.d.ts +177 -0
  19. package/dist/types/src/core/colorspace_utils.d.ts +21 -0
  20. package/dist/types/src/core/core_utils.d.ts +132 -0
  21. package/dist/types/src/core/crypto.d.ts +136 -0
  22. package/dist/types/src/core/decode_stream.d.ts +32 -0
  23. package/dist/types/src/core/decrypt_stream.d.ts +9 -0
  24. package/dist/types/src/core/file_spec.d.ts +72 -0
  25. package/dist/types/src/core/flate_stream.d.ts +14 -0
  26. package/dist/types/src/core/icc_colorspace.d.ts +22 -0
  27. package/dist/types/src/core/image_utils.d.ts +52 -0
  28. package/dist/types/src/core/jbig2_ccittFax.d.ts +13 -0
  29. package/dist/types/src/core/jbig2_stream.d.ts +17 -0
  30. package/dist/types/src/core/jpeg_stream.d.ts +24 -0
  31. package/dist/types/src/core/jpg.d.ts +62 -0
  32. package/dist/types/src/core/jpx.d.ts +24 -0
  33. package/dist/types/src/core/jpx_stream.d.ts +15 -0
  34. package/dist/types/src/core/lzw_stream.d.ts +19 -0
  35. package/dist/types/src/core/metadata_parser.d.ts +13 -0
  36. package/dist/types/src/core/name_number_tree.d.ts +21 -0
  37. package/dist/types/src/core/parser.d.ts +121 -0
  38. package/dist/types/src/core/pattern.d.ts +63 -0
  39. package/dist/types/src/core/predictor_stream.d.ts +14 -0
  40. package/dist/types/src/core/primitives.d.ts +81 -0
  41. package/dist/types/src/core/run_length_stream.d.ts +6 -0
  42. package/dist/types/src/core/stream.d.ts +20 -0
  43. package/dist/types/src/core/string_utils.d.ts +5 -0
  44. package/dist/types/src/core/struct_tree.d.ts +93 -0
  45. package/dist/types/src/core/unicode.d.ts +5 -0
  46. package/dist/types/src/core/wasm_image.d.ts +21 -0
  47. package/dist/types/src/core/xml_parser.d.ts +79 -0
  48. package/dist/types/src/core/xref.d.ts +52 -0
  49. package/dist/types/src/display/annotation_layer.d.ts +10 -8
  50. package/dist/types/src/display/api.d.ts +92 -65
  51. package/dist/types/src/display/binary_data_factory.d.ts +0 -4
  52. package/dist/types/src/display/canvas.d.ts +58 -12
  53. package/dist/types/src/display/canvas_dependency_tracker.d.ts +2 -2
  54. package/dist/types/src/display/display_utils.d.ts +4 -156
  55. package/dist/types/src/display/draw_layer.d.ts +127 -2
  56. package/dist/types/src/display/editor/alt_text.d.ts +1 -1
  57. package/dist/types/src/display/editor/annotation_editor_layer.d.ts +3 -3
  58. package/dist/types/src/display/editor/color_picker.d.ts +3 -2
  59. package/dist/types/src/display/editor/draw.d.ts +10 -3
  60. package/dist/types/src/display/editor/drawers/freedraw.d.ts +3 -3
  61. package/dist/types/src/display/editor/drawers/highlight.d.ts +0 -1
  62. package/dist/types/src/display/editor/drawers/outline.d.ts +0 -1
  63. package/dist/types/src/display/editor/drawers/signaturedraw.d.ts +13 -13
  64. package/dist/types/src/display/editor/editor.d.ts +2 -1
  65. package/dist/types/src/display/editor/freetext.d.ts +2 -2
  66. package/dist/types/src/display/editor/highlight.d.ts +3 -3
  67. package/dist/types/src/display/editor/ink.d.ts +2 -0
  68. package/dist/types/src/display/editor/toolbar.d.ts +2 -2
  69. package/dist/types/src/display/editor/tools.d.ts +31 -14
  70. package/dist/types/src/display/filter_factory.d.ts +26 -0
  71. package/dist/types/src/display/node_utils.d.ts +2 -2
  72. package/dist/types/src/display/obj_bin_transform_display.d.ts +2 -6
  73. package/dist/types/src/display/optional_content_config.d.ts +13 -3
  74. package/dist/types/src/display/page_viewport.d.ts +137 -0
  75. package/dist/types/src/display/pattern_helper.d.ts +11 -4
  76. package/dist/types/src/display/text_layer.d.ts +10 -10
  77. package/dist/types/src/display/text_layer_images.d.ts +1 -1
  78. package/dist/types/src/display/webgpu.d.ts +11 -0
  79. package/dist/types/src/display/worker_options.d.ts +2 -2
  80. package/dist/types/src/display/xfa_layer.d.ts +8 -1
  81. package/dist/types/src/pdf.d.ts +5 -4
  82. package/dist/types/src/shared/image_utils.d.ts +11 -0
  83. package/dist/types/src/shared/internal_evt.d.ts +7 -0
  84. package/dist/types/src/shared/math_clamp.d.ts +1 -0
  85. package/dist/types/src/shared/util.d.ts +24 -13
  86. package/dist/types/web/annotation_editor_layer_builder.d.ts +1 -1
  87. package/dist/types/web/annotation_layer_builder.d.ts +6 -3
  88. package/dist/types/web/app_options.d.ts +1 -1
  89. package/dist/types/web/autolinker.d.ts +3 -3
  90. package/dist/types/web/base_pdf_page_view.d.ts +1 -0
  91. package/dist/types/web/comment_manager.d.ts +1 -1
  92. package/dist/types/web/draw_layer_builder.d.ts +44 -0
  93. package/dist/types/web/event_utils.d.ts +0 -8
  94. package/dist/types/web/generic_scripting.d.ts +1 -1
  95. package/dist/types/web/genericl10n.d.ts +5 -5
  96. package/dist/types/web/internal_evt.d.ts +7 -0
  97. package/dist/types/web/l10n.d.ts +2 -2
  98. package/dist/types/web/pdf_find_controller.d.ts +12 -1
  99. package/dist/types/web/pdf_link_service.d.ts +8 -0
  100. package/dist/types/web/pdf_page_view.d.ts +10 -3
  101. package/dist/types/web/pdf_thumbnail_view.d.ts +5 -5
  102. package/dist/types/web/pdf_thumbnail_viewer.d.ts +31 -12
  103. package/dist/types/web/pdf_viewer.d.ts +15 -1
  104. package/dist/types/web/text_accessibility.d.ts +1 -1
  105. package/dist/types/web/text_layer_builder.d.ts +5 -5
  106. package/dist/types/web/xfa_layer_builder.d.ts +3 -3
  107. package/package.json +16 -15
  108. package/dist/types/src/display/webgpu_mesh.d.ts +0 -3
package/README.md CHANGED
@@ -2,12 +2,10 @@
2
2
 
3
3
  A redistribution of Mozilla's [PDF.js](https://github.com/mozilla/pdf.js) as a single bundle for edge and serverless runtimes, like Cloudflare Workers. Use it as a drop-in replacement for `pdfjs-dist` to parse PDF documents and extract text content – no extra dependencies needed.
4
4
 
5
- The whole export is about 1.6 MB (minified).
5
+ The whole export is about 1.6 MB (minified) and ships the complete PDF.js type declarations.
6
6
 
7
7
  ## Installation
8
8
 
9
- Run the following command to add `pdfjs-serverless` to your project.
10
-
11
9
  ```bash
12
10
  # pnpm
13
11
  pnpm add pdfjs-serverless
@@ -74,17 +72,18 @@ export default {
74
72
  }
75
73
  ```
76
74
 
75
+ Ready-to-run examples for Cloudflare Workers and Pages Functions live in [`examples/`](./examples).
76
+
77
77
  ## How It Works
78
78
 
79
79
  > [!NOTE]
80
80
  > `pdfjs-serverless` is currently built from PDF.js v5.6.205.
81
81
 
82
- Heart and soul of this package is the [`rollup.config.ts`](./rollup.config.ts) file. It uses [Rollup](https://rollupjs.org/) to bundle PDF.js into a single file for serverless environments. The key techniques:
82
+ Heart and soul of this package is the [`rolldown.config.ts`](./rolldown.config.ts) file. It uses [Rolldown](https://rolldown.rs/) to bundle PDF.js into a single file for serverless environments. The key techniques:
83
83
 
84
- - **String replacements** strip browser-specific references (e.g. `typeof window`) from the PDF.js source.
85
- - **Node.js compatibility** is enforced by mocking `@napi-rs/canvas` and setting `isNodeJS` to `true` – paradoxical, but it unlocks the right code paths.
84
+ - **String replacements** rewrite the environment detection: `isNodeJS` becomes `typeof window === "undefined"`, so serverless runtimes take the Node.js code paths – paradoxical, but it unlocks the right branches. The `@napi-rs/canvas` import is bridged to `globalThis[Symbol.for("pdfjs-serverless.canvasModule")]` – assign an API-compatible canvas module to that symbol to enable rendering, otherwise accessing it throws a descriptive error.
86
85
  - **Worker inlining** embeds the PDF.js worker directly into the main bundle, since serverless runtimes can't load separate worker files.
87
- - **Global polyfills** provide missing APIs like `FinalizationRegistry` (unavailable in Cloudflare Workers).
86
+ - **Mocks and polyfills** provide missing globals: `DOMMatrix`, `navigator` and `FinalizationRegistry` are stubbed in [`src/mocks.mjs`](./src/mocks.mjs); `Promise.withResolvers`, `Uint8Array.prototype.toHex` and friends are polyfilled in [`src/polyfills.mjs`](./src/polyfills.mjs).
88
87
 
89
88
  ## Inspiration
90
89