unpdf 1.3.1 → 1.4.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 (35) hide show
  1. package/README.md +1 -1
  2. package/dist/index.cjs +4 -1
  3. package/dist/index.d.cts +45 -1
  4. package/dist/index.d.mts +45 -1
  5. package/dist/index.d.ts +45 -1
  6. package/dist/index.mjs +4 -2
  7. package/dist/pdfjs.mjs +1 -1
  8. package/dist/types/src/display/annotation_layer.d.ts +28 -6
  9. package/dist/types/src/display/annotation_storage.d.ts +2 -0
  10. package/dist/types/src/display/api.d.ts +13 -7
  11. package/dist/types/src/display/canvas.d.ts +1 -1
  12. package/dist/types/src/display/canvas_dependency_tracker.d.ts +36 -20
  13. package/dist/types/src/display/display_utils.d.ts +22 -0
  14. package/dist/types/src/display/editor/annotation_editor_layer.d.ts +4 -2
  15. package/dist/types/src/display/editor/comment.d.ts +20 -5
  16. package/dist/types/src/display/editor/drawers/freedraw.d.ts +1 -0
  17. package/dist/types/src/display/editor/drawers/highlight.d.ts +2 -1
  18. package/dist/types/src/display/editor/editor.d.ts +67 -15
  19. package/dist/types/src/display/editor/freetext.d.ts +1 -1
  20. package/dist/types/src/display/editor/highlight.d.ts +3 -1
  21. package/dist/types/src/display/editor/ink.d.ts +2 -1
  22. package/dist/types/src/display/editor/signature.d.ts +0 -5
  23. package/dist/types/src/display/editor/toolbar.d.ts +3 -1
  24. package/dist/types/src/display/editor/tools.d.ts +21 -3
  25. package/dist/types/src/display/font_loader.d.ts +27 -1
  26. package/dist/types/src/display/pattern_helper.d.ts +2 -2
  27. package/dist/types/src/pdf.d.ts +5 -1
  28. package/dist/types/src/shared/obj-bin-transform.d.ts +64 -0
  29. package/dist/types/web/annotation_layer_builder.d.ts +6 -14
  30. package/dist/types/web/base_pdf_page_view.d.ts +1 -1
  31. package/dist/types/web/comment_manager.d.ts +20 -0
  32. package/dist/types/web/pdf_link_service.d.ts +2 -1
  33. package/dist/types/web/pdf_page_view.d.ts +7 -2
  34. package/dist/types/web/pdf_viewer.d.ts +10 -1
  35. package/package.json +15 -15
package/README.md CHANGED
@@ -18,7 +18,7 @@ This library is also intended as a modern alternative to the unmaintained but st
18
18
  ## PDF.js Compatibility
19
19
 
20
20
  > [!Tip]
21
- > The serverless PDF.js bundle provided by `unpdf` is built from PDF.js v5.4.149.
21
+ > The serverless PDF.js bundle provided by `unpdf` is built from PDF.js v5.4.296.
22
22
 
23
23
  You can use an [official PDF.js build](#official-or-legacy-pdfjs-build) by using the [`definePDFJSModule`](#definepdfjsmodule) method. This is useful if you want to use a specific version or a custom build of PDF.js.
24
24
 
package/dist/index.cjs CHANGED
@@ -145,7 +145,9 @@ async function extractImages$1(data, pageNumber) {
145
145
  continue;
146
146
  }
147
147
  const imageKey = operatorList.argsArray[i][0];
148
- const image = imageKey.startsWith("g_") ? await new Promise((resolve) => page.commonObjs.get(imageKey, (resolvedImage) => resolve(resolvedImage))) : await new Promise((resolve) => page.objs.get(imageKey, (resolvedImage) => resolve(resolvedImage)));
148
+ const image = await new Promise(
149
+ (resolve) => (imageKey.startsWith("g_") ? page.commonObjs : page.objs).get(imageKey, resolve)
150
+ );
149
151
  if (!image || !image.data || !image.width || !image.height) {
150
152
  continue;
151
153
  }
@@ -326,6 +328,7 @@ const extractLinks = async (...args) => {
326
328
  };
327
329
 
328
330
  exports.configureUnPDF = configureUnPDF;
331
+ exports.createIsomorphicCanvasFactory = createIsomorphicCanvasFactory;
329
332
  exports.definePDFJSModule = definePDFJSModule;
330
333
  exports.extractImages = extractImages;
331
334
  exports.extractLinks = extractLinks;
package/dist/index.d.cts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.d.mts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.mjs CHANGED
@@ -143,7 +143,9 @@ async function extractImages$1(data, pageNumber) {
143
143
  continue;
144
144
  }
145
145
  const imageKey = operatorList.argsArray[i][0];
146
- const image = imageKey.startsWith("g_") ? await new Promise((resolve) => page.commonObjs.get(imageKey, (resolvedImage) => resolve(resolvedImage))) : await new Promise((resolve) => page.objs.get(imageKey, (resolvedImage) => resolve(resolvedImage)));
146
+ const image = await new Promise(
147
+ (resolve) => (imageKey.startsWith("g_") ? page.commonObjs : page.objs).get(imageKey, resolve)
148
+ );
147
149
  if (!image || !image.data || !image.width || !image.height) {
148
150
  continue;
149
151
  }
@@ -323,4 +325,4 @@ const extractLinks = async (...args) => {
323
325
  return await extractLinks$1(...args);
324
326
  };
325
327
 
326
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
328
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };