@embedpdf/engines 1.0.21 → 1.0.23
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.
- package/dist/{engine-D0zKoYug.js → engine-DSdvr8ah.js} +233 -166
- package/dist/engine-DSdvr8ah.js.map +1 -0
- package/dist/engine-RdqkJxAO.cjs +2 -0
- package/dist/engine-RdqkJxAO.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -2
- package/dist/lib/converters/index.cjs +1 -1
- package/dist/lib/converters/index.cjs.map +1 -1
- package/dist/lib/converters/index.d.ts +4 -14
- package/dist/lib/converters/index.js +16 -19
- package/dist/lib/converters/index.js.map +1 -1
- package/dist/lib/converters/types.d.ts +9 -0
- package/dist/lib/pdfium/engine.d.ts +8 -21
- package/dist/lib/pdfium/index.cjs +1 -1
- package/dist/lib/pdfium/index.js +3 -2
- package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
- package/dist/lib/pdfium/web/direct-engine.js +1 -1
- package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
- package/dist/lib/pdfium/web/worker-engine.js +1 -1
- package/dist/preact/index.cjs +1 -1
- package/dist/preact/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/{runner-CGyvdr9V.js → runner-CjYO-wR5.js} +2 -2
- package/dist/{runner-CGyvdr9V.js.map → runner-CjYO-wR5.js.map} +1 -1
- package/dist/{runner-CHOggH0O.cjs → runner-DoKDIKUP.cjs} +2 -2
- package/dist/{runner-CHOggH0O.cjs.map → runner-DoKDIKUP.cjs.map} +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +3 -3
- package/dist/engine-D0zKoYug.js.map +0 -1
- package/dist/engine-Dcn6oo4j.cjs +0 -2
- package/dist/engine-Dcn6oo4j.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./engine-RdqkJxAO.cjs"),r=require("./runner-DoKDIKUP.cjs"),t=require("./lib/webworker/engine.cjs"),n=require("@embedpdf/models");exports.BitmapFormat=e.BitmapFormat,exports.OffscreenCanvasError=e.OffscreenCanvasError,exports.PdfiumEngine=e.PdfiumEngine,exports.PdfiumErrorCode=e.PdfiumErrorCode,exports.RenderFlag=e.RenderFlag,exports.browserImageDataToBlobConverter=e.browserImageDataToBlobConverter,exports.readArrayBuffer=e.readArrayBuffer,exports.readString=e.readString,exports.EngineRunner=r.EngineRunner,exports.PdfiumEngineRunner=r.PdfiumEngineRunner,exports.WebWorkerEngine=t.WebWorkerEngine,exports.WorkerTask=t.WorkerTask,exports.createMockPdfDocument=function(e){const r=[];for(let t=0;t<10;t++)r.push({index:t,size:{width:100,height:200}});return{id:"id",pageCount:10,pages:r,...e}},exports.createMockPdfEngine=function(e){return{openDocumentUrl:jest.fn(((e,r)=>n.PdfTaskHelper.create())),openDocumentBuffer:jest.fn(((e,r)=>n.PdfTaskHelper.create())),getMetadata:e=>{const r={title:"title",author:"author",subject:"subject",keywords:"keywords",producer:"producer",creator:"creator",creationDate:new Date,modificationDate:new Date};return n.PdfTaskHelper.resolve(r)},setMetadata:(e,r)=>n.PdfTaskHelper.resolve(!0),getDocPermissions:e=>n.PdfTaskHelper.resolve(4294967295),getDocUserPermissions:e=>n.PdfTaskHelper.resolve(4294967295),getSignatures:e=>n.PdfTaskHelper.resolve([]),getBookmarks:e=>{const r=[];return r.push({title:"Page 1",target:{type:"destination",destination:{pageIndex:1,zoom:{mode:n.PdfZoomMode.FitPage},view:[]}}},{title:"Page 2",target:{type:"destination",destination:{pageIndex:2,zoom:{mode:n.PdfZoomMode.FitPage},view:[]}},children:[{title:"Page 3",target:{type:"destination",destination:{pageIndex:3,zoom:{mode:n.PdfZoomMode.FitPage},view:[]}}}]}),n.PdfTaskHelper.resolve({bookmarks:r})},renderPage:jest.fn(((e,r,t)=>{const{scaleFactor:o=1,rotation:a=n.Rotation.Degree0,dpr:s=1}=t??{},i=a%2==0?r.size:n.swap(r.size),f=Math.ceil(i.width*o)*Math.ceil(i.height*o),d=new Uint8ClampedArray(4*f),l=r.index%255;for(let n=0;n<f;n++){for(let e=0;e<3;e++){d[4*n+e]=l}d[4*n+3]=255}const p=d.buffer,c=p instanceof ArrayBuffer?p:new Uint8Array(d).buffer,g=new Blob([c],{type:"application/octet-stream"});return n.PdfTaskHelper.resolve(g)})),renderPageRect:jest.fn(((e,r,t,o)=>{const{scaleFactor:a=1,rotation:s=n.Rotation.Degree0,dpr:i=1}=o??{},f=s%2==0?r.size:n.swap(r.size),d=Math.ceil(f.width*a)*Math.ceil(f.height*a),l=new Uint8ClampedArray(4*d),p=r.index%255;for(let n=0;n<d;n++){for(let e=0;e<3;e++){l[4*n+e]=p}l[4*n+3]=255}const c=l.buffer,g=c instanceof ArrayBuffer?c:new Uint8Array(l).buffer,u=new Blob([g],{type:"application/octet-stream"});return n.PdfTaskHelper.resolve(u)})),renderThumbnail:jest.fn(((e,r)=>{const t=r.size.width/4*(r.size.height/4),o=new Uint8ClampedArray(4*t),a=r.index%255;for(let n=0;n<t;n++){for(let e=0;e<3;e++){o[4*n+e]=a}o[4*n+3]=255}const s=o.buffer,i=s instanceof ArrayBuffer?s:new Uint8Array(o).buffer,f=new Blob([i],{type:"image/png"});return n.PdfTaskHelper.resolve(f)})),renderPageAnnotation:jest.fn(((e,r,t,o)=>n.PdfTaskHelper.resolve(new Blob([],{type:"image/png"})))),getAllAnnotations:jest.fn((e=>n.PdfTaskHelper.resolve({}))),getPageAnnotations:jest.fn(((e,r)=>{const t={pageIndex:r.index,id:"1",type:n.PdfAnnotationSubtype.LINK,target:{type:"action",action:{type:n.PdfActionType.URI,uri:"https://localhost"}},rect:{origin:{x:0,y:0},size:{width:100,height:100}}},o=[];return o.push(t),n.PdfTaskHelper.resolve(o)})),createPageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(n.uuidV4()))),updatePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),removePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),getPageTextRects:jest.fn(((e,r)=>n.PdfTaskHelper.resolve([{content:"pdf text",font:{family:"sans-serif",size:12},rect:{origin:{x:0,y:0},size:{width:100,height:100}}}]))),closeDocument:e=>n.PdfTaskHelper.resolve(!0),saveAsCopy:e=>n.PdfTaskHelper.resolve(new ArrayBuffer(0)),flattenPage:(e,r,t)=>n.PdfTaskHelper.resolve(n.PdfPageFlattenResult.Success),extractPages:(e,r)=>n.PdfTaskHelper.resolve(new ArrayBuffer(0)),extractText:(e,r)=>n.PdfTaskHelper.resolve(""),redactTextInRects:(e,r,t,o)=>n.PdfTaskHelper.resolve(!0),getTextSlices:(e,r)=>n.PdfTaskHelper.resolve([]),getPageGlyphs:(e,r)=>n.PdfTaskHelper.resolve([]),getPageGeometry:(e,r)=>n.PdfTaskHelper.resolve({runs:[]}),merge:e=>n.PdfTaskHelper.resolve({id:"id",content:new ArrayBuffer(0)}),mergePages:e=>n.PdfTaskHelper.resolve({id:"id",content:new ArrayBuffer(0)}),preparePrintDocument:(e,r)=>n.PdfTaskHelper.resolve(new ArrayBuffer(0)),searchAllPages:(e,r,t)=>{const o={pageIndex:0,charIndex:0,charCount:r.length,rects:[{origin:{x:0,y:0},size:{width:50,height:20}}],context:{before:"",match:"",after:"",truncatedLeft:!1,truncatedRight:!1}};return n.PdfTaskHelper.resolve({results:[o],total:1})},getAttachments:e=>n.PdfTaskHelper.resolve([]),readAttachmentContent:(e,r)=>n.PdfTaskHelper.resolve(new ArrayBuffer(0)),setFormFieldValue:(e,r,t,o)=>n.PdfTaskHelper.resolve(!0),...e}},exports.createMockPdfFile=function(e){return{id:"id",content:new ArrayBuffer(0)}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/lib/mock/index.ts"],"sourcesContent":["import {\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n PdfAnnotationSubtype,\n PdfLinkAnnoObject,\n Rotation,\n swap,\n PdfZoomMode,\n PdfActionType,\n PdfAnnotationObject,\n PdfBookmarkObject,\n PdfTextRectObject,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfFile,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfOpenDocumentUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfPageSearchProgress,\n PdfRenderPageOptions,\n PdfRenderPageAnnotationOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfSearchAllPagesOptions,\n PdfOpenDocumentBufferOptions,\n uuidV4,\n PdfMetadataObject,\n PdfTask,\n PdfPrintOptions,\n} from '@embedpdf/models';\n\n/**\n * Create mock of pdf engine\n * @param partialEngine - partial configuration of engine\n * @returns - mock of pdf engine\n *\n * @public\n */\nexport function createMockPdfEngine(partialEngine?: Partial<PdfEngine>): PdfEngine {\n const engine: PdfEngine = {\n openDocumentUrl: jest.fn((file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentBuffer: jest.fn((file: PdfFile, options?: PdfOpenDocumentBufferOptions) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: (doc: PdfDocumentObject) => {\n const metadata: PdfMetadataObject = {\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: new Date(),\n modificationDate: new Date(),\n };\n return PdfTaskHelper.resolve(metadata);\n },\n setMetadata: (doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) => {\n return PdfTaskHelper.resolve(true);\n },\n getDocPermissions: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(0xffffffff);\n },\n getDocUserPermissions: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(0xffffffff);\n },\n getSignatures: (doc: PdfDocumentObject) => {\n const signatures: PdfSignatureObject[] = [];\n return PdfTaskHelper.resolve(signatures);\n },\n getBookmarks: (doc: PdfDocumentObject) => {\n const bookmarks: PdfBookmarkObject[] = [];\n bookmarks.push(\n {\n title: 'Page 1',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 1,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n },\n {\n title: 'Page 2',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 2,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n children: [\n {\n title: 'Page 3',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 3,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n },\n ],\n },\n );\n return PdfTaskHelper.resolve({\n bookmarks,\n });\n },\n renderPage: jest.fn(\n (doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) => {\n const { scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1 } = options ?? {};\n const pageSize = rotation % 2 === 0 ? page.size : swap(page.size);\n const imageSize = {\n width: Math.ceil(pageSize.width * scaleFactor),\n height: Math.ceil(pageSize.height * scaleFactor),\n };\n const pixelCount = imageSize.width * imageSize.height;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'application/octet-stream' });\n return PdfTaskHelper.resolve(blob);\n },\n ),\n renderPageRect: jest.fn(\n (doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions) => {\n const { scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1 } = options ?? {};\n const pageSize = rotation % 2 === 0 ? page.size : swap(page.size);\n const imageSize = {\n width: Math.ceil(pageSize.width * scaleFactor),\n height: Math.ceil(pageSize.height * scaleFactor),\n };\n const pixelCount = imageSize.width * imageSize.height;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'application/octet-stream' });\n return PdfTaskHelper.resolve(blob);\n },\n ),\n renderThumbnail: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const thumbnailWidth = page.size.width / 4;\n const thumbnailHeight = page.size.height / 4;\n const pixelCount = thumbnailWidth * thumbnailHeight;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'image/png' });\n\n return PdfTaskHelper.resolve(blob);\n }),\n renderPageAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) => {\n return PdfTaskHelper.resolve(new Blob([], { type: 'image/png' }));\n },\n ),\n getAllAnnotations: jest.fn((doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve({});\n }),\n getPageAnnotations: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const link: PdfLinkAnnoObject = {\n pageIndex: page.index,\n id: '1',\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n rect: {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 100,\n height: 100,\n },\n },\n };\n const annotations: PdfAnnotationObject[] = [];\n annotations.push(link);\n return PdfTaskHelper.resolve(annotations);\n }),\n createPageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(uuidV4());\n }),\n updatePageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(true);\n }),\n removePageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(true);\n }),\n getPageTextRects: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const textRects: PdfTextRectObject[] = [\n {\n content: 'pdf text',\n font: {\n family: 'sans-serif',\n size: 12,\n },\n rect: {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 100,\n height: 100,\n },\n },\n },\n ];\n return PdfTaskHelper.resolve(textRects);\n }),\n closeDocument: (pdf: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(true);\n },\n saveAsCopy: (pdf: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n flattenPage: (pdf: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) => {\n return PdfTaskHelper.resolve<PdfPageFlattenResult>(PdfPageFlattenResult.Success);\n },\n extractPages: (pdf: PdfDocumentObject, pageIndexes: number[]) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n extractText: (pdf: PdfDocumentObject, pageIndexes: number[]) => {\n return PdfTaskHelper.resolve('');\n },\n redactTextInRects: (\n pdf: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) => {\n return PdfTaskHelper.resolve(true);\n },\n getTextSlices: (doc: PdfDocumentObject, slices: PageTextSlice[]) => {\n return PdfTaskHelper.resolve([] as string[]);\n },\n getPageGlyphs: (doc: PdfDocumentObject, page: PdfPageObject) => {\n return PdfTaskHelper.resolve([] as PdfGlyphObject[]);\n },\n getPageGeometry: (doc: PdfDocumentObject, page: PdfPageObject) => {\n return PdfTaskHelper.resolve({\n runs: [],\n } as PdfPageGeometry);\n },\n merge: (files: PdfFile[]) => {\n return PdfTaskHelper.resolve({\n id: 'id',\n content: new ArrayBuffer(0),\n });\n },\n mergePages: (mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) => {\n return PdfTaskHelper.resolve({\n id: 'id',\n content: new ArrayBuffer(0),\n });\n },\n preparePrintDocument: (doc: PdfDocumentObject, options?: PdfPrintOptions) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n searchAllPages: (\n doc: PdfDocumentObject,\n keyword: string,\n options?: PdfSearchAllPagesOptions,\n ) => {\n // Create a mock search result\n const mockResult: SearchResult = {\n pageIndex: 0,\n charIndex: 0,\n charCount: keyword.length,\n rects: [\n {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 50,\n height: 20,\n },\n },\n ],\n context: {\n before: '',\n match: '',\n after: '',\n truncatedLeft: false,\n truncatedRight: false,\n },\n };\n\n // Return a mock SearchAllPagesResult with a single result\n return PdfTaskHelper.resolve<SearchAllPagesResult, PdfPageSearchProgress>({\n results: [mockResult],\n total: 1,\n });\n },\n getAttachments: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve([] as PdfAttachmentObject[]);\n },\n readAttachmentContent: (doc: PdfDocumentObject, attachment: PdfAttachmentObject) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n setFormFieldValue: (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n text: FormFieldValue,\n ) => {\n return PdfTaskHelper.resolve(true);\n },\n ...partialEngine,\n };\n\n return engine;\n}\n/**\n * Create mock of pdf document\n * @param doc - partial configuration of document\n * @returns mock of pdf document\n *\n * @public\n */\nexport function createMockPdfDocument(doc?: Partial<PdfDocumentObject>): PdfDocumentObject {\n const pageCount = 10;\n const pageWidth = 100;\n const pageHeight = 200;\n const pages = [];\n for (let i = 0; i < pageCount; i++) {\n pages.push({\n index: i,\n size: {\n width: pageWidth,\n height: pageHeight,\n },\n });\n }\n\n return {\n id: 'id',\n pageCount: pageCount,\n pages: pages,\n ...doc,\n };\n}\n\n/**\n * Create mock of pdf file\n * @param file - partial configuration of file\n * @returns mock of pdf file\n *\n * @public\n */\nexport function createMockPdfFile(file?: Partial<PdfFile>): PdfFile {\n return {\n id: 'id',\n content: new ArrayBuffer(0),\n };\n}\n"],"names":["doc","pages","i","push","index","size","width","height","id","pageCount","partialEngine","engine","openDocumentUrl","jest","fn","file","options","PdfTaskHelper","create","openDocumentBuffer","getMetadata","metadata","title","author","subject","keywords","producer","creator","creationDate","Date","modificationDate","resolve","setMetadata","getDocPermissions","getDocUserPermissions","getSignatures","getBookmarks","bookmarks","target","type","destination","pageIndex","zoom","mode","PdfZoomMode","FitPage","view","children","renderPage","page","scaleFactor","rotation","Rotation","Degree0","dpr","pageSize","swap","pixelCount","Math","ceil","array","Uint8ClampedArray","rgbValue","j","ab","buffer","realBuffer","ArrayBuffer","Uint8Array","blob","Blob","renderPageRect","rect","renderThumbnail","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","link","PdfAnnotationSubtype","LINK","action","PdfActionType","URI","uri","origin","x","y","annotations","createPageAnnotation","uuidV4","updatePageAnnotation","removePageAnnotation","getPageTextRects","content","font","family","closeDocument","pdf","saveAsCopy","flattenPage","PdfPageFlattenResult","Success","extractPages","pageIndexes","extractText","redactTextInRects","rects","getTextSlices","slices","getPageGlyphs","getPageGeometry","runs","merge","files","mergePages","mergeConfigs","preparePrintDocument","searchAllPages","keyword","mockResult","charIndex","charCount","length","context","before","match","after","truncatedLeft","truncatedRight","results","total","getAttachments","readAttachmentContent","attachment","setFormFieldValue","text"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/lib/mock/index.ts"],"sourcesContent":["import {\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n PdfAnnotationSubtype,\n PdfLinkAnnoObject,\n Rotation,\n swap,\n PdfZoomMode,\n PdfActionType,\n PdfAnnotationObject,\n PdfBookmarkObject,\n PdfTextRectObject,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfFile,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfOpenDocumentUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfPageSearchProgress,\n PdfRenderPageOptions,\n PdfRenderPageAnnotationOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfSearchAllPagesOptions,\n PdfOpenDocumentBufferOptions,\n uuidV4,\n PdfMetadataObject,\n PdfTask,\n PdfPrintOptions,\n} from '@embedpdf/models';\n\n/**\n * Create mock of pdf engine\n * @param partialEngine - partial configuration of engine\n * @returns - mock of pdf engine\n *\n * @public\n */\nexport function createMockPdfEngine(partialEngine?: Partial<PdfEngine>): PdfEngine {\n const engine: PdfEngine = {\n openDocumentUrl: jest.fn((file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentBuffer: jest.fn((file: PdfFile, options?: PdfOpenDocumentBufferOptions) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: (doc: PdfDocumentObject) => {\n const metadata: PdfMetadataObject = {\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: new Date(),\n modificationDate: new Date(),\n };\n return PdfTaskHelper.resolve(metadata);\n },\n setMetadata: (doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) => {\n return PdfTaskHelper.resolve(true);\n },\n getDocPermissions: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(0xffffffff);\n },\n getDocUserPermissions: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(0xffffffff);\n },\n getSignatures: (doc: PdfDocumentObject) => {\n const signatures: PdfSignatureObject[] = [];\n return PdfTaskHelper.resolve(signatures);\n },\n getBookmarks: (doc: PdfDocumentObject) => {\n const bookmarks: PdfBookmarkObject[] = [];\n bookmarks.push(\n {\n title: 'Page 1',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 1,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n },\n {\n title: 'Page 2',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 2,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n children: [\n {\n title: 'Page 3',\n target: {\n type: 'destination',\n destination: {\n pageIndex: 3,\n zoom: {\n mode: PdfZoomMode.FitPage,\n },\n view: [],\n },\n },\n },\n ],\n },\n );\n return PdfTaskHelper.resolve({\n bookmarks,\n });\n },\n renderPage: jest.fn(\n (doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) => {\n const { scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1 } = options ?? {};\n const pageSize = rotation % 2 === 0 ? page.size : swap(page.size);\n const imageSize = {\n width: Math.ceil(pageSize.width * scaleFactor),\n height: Math.ceil(pageSize.height * scaleFactor),\n };\n const pixelCount = imageSize.width * imageSize.height;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'application/octet-stream' });\n return PdfTaskHelper.resolve(blob);\n },\n ),\n renderPageRect: jest.fn(\n (doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions) => {\n const { scaleFactor = 1, rotation = Rotation.Degree0, dpr = 1 } = options ?? {};\n const pageSize = rotation % 2 === 0 ? page.size : swap(page.size);\n const imageSize = {\n width: Math.ceil(pageSize.width * scaleFactor),\n height: Math.ceil(pageSize.height * scaleFactor),\n };\n const pixelCount = imageSize.width * imageSize.height;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'application/octet-stream' });\n return PdfTaskHelper.resolve(blob);\n },\n ),\n renderThumbnail: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const thumbnailWidth = page.size.width / 4;\n const thumbnailHeight = page.size.height / 4;\n const pixelCount = thumbnailWidth * thumbnailHeight;\n const array = new Uint8ClampedArray(pixelCount * 4);\n const rgbValue = page.index % 255;\n const alphaValue = 255;\n for (let i = 0; i < pixelCount; i++) {\n for (let j = 0; j < 3; j++) {\n const index = i * 4 + j;\n array[index] = rgbValue;\n }\n array[i * 4 + 3] = alphaValue;\n }\n\n const ab = array.buffer;\n const realBuffer = ab instanceof ArrayBuffer ? ab : new Uint8Array(array).buffer;\n const blob = new Blob([realBuffer], { type: 'image/png' });\n\n return PdfTaskHelper.resolve(blob);\n }),\n renderPageAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) => {\n return PdfTaskHelper.resolve(new Blob([], { type: 'image/png' }));\n },\n ),\n getAllAnnotations: jest.fn((doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve({});\n }),\n getPageAnnotations: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const link: PdfLinkAnnoObject = {\n pageIndex: page.index,\n id: '1',\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n rect: {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 100,\n height: 100,\n },\n },\n };\n const annotations: PdfAnnotationObject[] = [];\n annotations.push(link);\n return PdfTaskHelper.resolve(annotations);\n }),\n createPageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(uuidV4());\n }),\n updatePageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(true);\n }),\n removePageAnnotation: jest.fn(() => {\n return PdfTaskHelper.resolve(true);\n }),\n getPageTextRects: jest.fn((doc: PdfDocumentObject, page: PdfPageObject) => {\n const textRects: PdfTextRectObject[] = [\n {\n content: 'pdf text',\n font: {\n family: 'sans-serif',\n size: 12,\n },\n rect: {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 100,\n height: 100,\n },\n },\n },\n ];\n return PdfTaskHelper.resolve(textRects);\n }),\n closeDocument: (pdf: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(true);\n },\n saveAsCopy: (pdf: PdfDocumentObject) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n flattenPage: (pdf: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) => {\n return PdfTaskHelper.resolve<PdfPageFlattenResult>(PdfPageFlattenResult.Success);\n },\n extractPages: (pdf: PdfDocumentObject, pageIndexes: number[]) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n extractText: (pdf: PdfDocumentObject, pageIndexes: number[]) => {\n return PdfTaskHelper.resolve('');\n },\n redactTextInRects: (\n pdf: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) => {\n return PdfTaskHelper.resolve(true);\n },\n getTextSlices: (doc: PdfDocumentObject, slices: PageTextSlice[]) => {\n return PdfTaskHelper.resolve([] as string[]);\n },\n getPageGlyphs: (doc: PdfDocumentObject, page: PdfPageObject) => {\n return PdfTaskHelper.resolve([] as PdfGlyphObject[]);\n },\n getPageGeometry: (doc: PdfDocumentObject, page: PdfPageObject) => {\n return PdfTaskHelper.resolve({\n runs: [],\n } as PdfPageGeometry);\n },\n merge: (files: PdfFile[]) => {\n return PdfTaskHelper.resolve({\n id: 'id',\n content: new ArrayBuffer(0),\n });\n },\n mergePages: (mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) => {\n return PdfTaskHelper.resolve({\n id: 'id',\n content: new ArrayBuffer(0),\n });\n },\n preparePrintDocument: (doc: PdfDocumentObject, options?: PdfPrintOptions) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n searchAllPages: (\n doc: PdfDocumentObject,\n keyword: string,\n options?: PdfSearchAllPagesOptions,\n ) => {\n // Create a mock search result\n const mockResult: SearchResult = {\n pageIndex: 0,\n charIndex: 0,\n charCount: keyword.length,\n rects: [\n {\n origin: {\n x: 0,\n y: 0,\n },\n size: {\n width: 50,\n height: 20,\n },\n },\n ],\n context: {\n before: '',\n match: '',\n after: '',\n truncatedLeft: false,\n truncatedRight: false,\n },\n };\n\n // Return a mock SearchAllPagesResult with a single result\n return PdfTaskHelper.resolve<SearchAllPagesResult, PdfPageSearchProgress>({\n results: [mockResult],\n total: 1,\n });\n },\n getAttachments: (doc: PdfDocumentObject) => {\n return PdfTaskHelper.resolve([] as PdfAttachmentObject[]);\n },\n readAttachmentContent: (doc: PdfDocumentObject, attachment: PdfAttachmentObject) => {\n return PdfTaskHelper.resolve(new ArrayBuffer(0));\n },\n setFormFieldValue: (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n text: FormFieldValue,\n ) => {\n return PdfTaskHelper.resolve(true);\n },\n ...partialEngine,\n };\n\n return engine;\n}\n/**\n * Create mock of pdf document\n * @param doc - partial configuration of document\n * @returns mock of pdf document\n *\n * @public\n */\nexport function createMockPdfDocument(doc?: Partial<PdfDocumentObject>): PdfDocumentObject {\n const pageCount = 10;\n const pageWidth = 100;\n const pageHeight = 200;\n const pages = [];\n for (let i = 0; i < pageCount; i++) {\n pages.push({\n index: i,\n size: {\n width: pageWidth,\n height: pageHeight,\n },\n });\n }\n\n return {\n id: 'id',\n pageCount: pageCount,\n pages: pages,\n ...doc,\n };\n}\n\n/**\n * Create mock of pdf file\n * @param file - partial configuration of file\n * @returns mock of pdf file\n *\n * @public\n */\nexport function createMockPdfFile(file?: Partial<PdfFile>): PdfFile {\n return {\n id: 'id',\n content: new ArrayBuffer(0),\n };\n}\n"],"names":["doc","pages","i","push","index","size","width","height","id","pageCount","partialEngine","engine","openDocumentUrl","jest","fn","file","options","PdfTaskHelper","create","openDocumentBuffer","getMetadata","metadata","title","author","subject","keywords","producer","creator","creationDate","Date","modificationDate","resolve","setMetadata","getDocPermissions","getDocUserPermissions","getSignatures","getBookmarks","bookmarks","target","type","destination","pageIndex","zoom","mode","PdfZoomMode","FitPage","view","children","renderPage","page","scaleFactor","rotation","Rotation","Degree0","dpr","pageSize","swap","pixelCount","Math","ceil","array","Uint8ClampedArray","rgbValue","j","ab","buffer","realBuffer","ArrayBuffer","Uint8Array","blob","Blob","renderPageRect","rect","renderThumbnail","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","link","PdfAnnotationSubtype","LINK","action","PdfActionType","URI","uri","origin","x","y","annotations","createPageAnnotation","uuidV4","updatePageAnnotation","removePageAnnotation","getPageTextRects","content","font","family","closeDocument","pdf","saveAsCopy","flattenPage","PdfPageFlattenResult","Success","extractPages","pageIndexes","extractText","redactTextInRects","rects","getTextSlices","slices","getPageGlyphs","getPageGeometry","runs","merge","files","mergePages","mergeConfigs","preparePrintDocument","searchAllPages","keyword","mockResult","charIndex","charCount","length","context","before","match","after","truncatedLeft","truncatedRight","results","total","getAttachments","readAttachmentContent","attachment","setFormFieldValue","text"],"mappings":"wvBAmYO,SAA+BA,GACpC,MAGMC,EAAQ,GACd,IAAA,IAASC,EAAI,EAAGA,EAJE,GAIaA,IAC7BD,EAAME,KAAK,CACTC,MAAOF,EACPG,KAAM,CACJC,MAPY,IAQZC,OAPa,OAYZ,MAAA,CACLC,GAAI,KACJC,UAhBgB,GAiBhBR,WACGD,EAEP,8BAxWO,SAA6BU,GA0U3BC,MAzUmB,CACxBC,gBAAiBC,KAAKC,IAAG,CAACC,EAAkBC,IACnCC,EAAAA,cAAcC,WAEvBC,mBAAoBN,KAAKC,IAAG,CAACC,EAAeC,IACnCC,EAAAA,cAAcC,WAEvBE,YAAcpB,IACZ,MAAMqB,EAA8B,CAClCC,MAAO,QACPC,OAAQ,SACRC,QAAS,UACTC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTC,iBAAkBC,KAClBC,qBAAsBD,MAEjBZ,OAAAA,EAAAA,cAAcc,QAAQV,EAAQ,EAEvCW,YAAa,CAAChC,EAAwBqB,IAC7BJ,EAAAA,cAAcc,SAAQ,GAE/BE,kBAAoBjC,GACXiB,EAAAA,cAAcc,QAAQ,YAE/BG,sBAAwBlC,GACfiB,EAAAA,cAAcc,QAAQ,YAE/BI,cAAgBnC,GAEPiB,EAAAA,cAAcc,QADoB,IAG3CK,aAAepC,IACb,MAAMqC,EAAiC,GA4ChCpB,OA3CGoB,EAAAlC,KACR,CACEmB,MAAO,SACPgB,OAAQ,CACNC,KAAM,cACNC,YAAa,CACXC,UAAW,EACXC,KAAM,CACJC,KAAMC,EAAAA,YAAYC,SAEpBC,KAAM,MAIZ,CACExB,MAAO,SACPgB,OAAQ,CACNC,KAAM,cACNC,YAAa,CACXC,UAAW,EACXC,KAAM,CACJC,KAAMC,EAAAA,YAAYC,SAEpBC,KAAM,KAGVC,SAAU,CACR,CACEzB,MAAO,SACPgB,OAAQ,CACNC,KAAM,cACNC,YAAa,CACXC,UAAW,EACXC,KAAM,CACJC,KAAMC,EAAAA,YAAYC,SAEpBC,KAAM,SAOX7B,EAAAA,cAAcc,QAAQ,CAC3BM,aACD,EAEHW,WAAYnC,KAAKC,IACf,CAACd,EAAwBiD,EAAqBjC,KACtC,MAAAkC,YAAEA,EAAc,EAAAC,SAAGA,EAAWC,EAAAA,SAASC,QAAAC,IAASA,EAAM,GAAMtC,GAAW,CAAC,EACxEuC,EAAWJ,EAAW,GAAM,EAAIF,EAAK5C,KAAOmD,EAAAA,KAAKP,EAAK5C,MAKtDoD,EAHGC,KAAKC,KAAKJ,EAASjD,MAAQ4C,GAC1BQ,KAAKC,KAAKJ,EAAShD,OAAS2C,GAGhCU,EAAQ,IAAIC,kBAA+B,EAAbJ,GAC9BK,EAAWb,EAAK7C,MAAQ,IAE9B,IAAA,IAASF,EAAI,EAAGA,EAAIuD,EAAYvD,IAAK,CACnC,IAAA,IAAS6D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1BH,EADkB,EAAJ1D,EAAQ6D,GACPD,CAAA,CAEXF,EAAI,EAAJ1D,EAAQ,GANG,GAME,CAGrB,MAAM8D,EAAKJ,EAAMK,OACXC,EAAaF,aAAcG,YAAcH,EAAK,IAAII,WAAWR,GAAOK,OACpEI,EAAO,IAAIC,KAAK,CAACJ,GAAa,CAAE3B,KAAM,6BACrCtB,OAAAA,EAAAA,cAAcc,QAAQsC,EAAI,IAGrCE,eAAgB1D,KAAKC,IACnB,CAACd,EAAwBiD,EAAqBuB,EAAYxD,KAClD,MAAAkC,YAAEA,EAAc,EAAAC,SAAGA,EAAWC,EAAAA,SAASC,QAAAC,IAASA,EAAM,GAAMtC,GAAW,CAAC,EACxEuC,EAAWJ,EAAW,GAAM,EAAIF,EAAK5C,KAAOmD,EAAAA,KAAKP,EAAK5C,MAKtDoD,EAHGC,KAAKC,KAAKJ,EAASjD,MAAQ4C,GAC1BQ,KAAKC,KAAKJ,EAAShD,OAAS2C,GAGhCU,EAAQ,IAAIC,kBAA+B,EAAbJ,GAC9BK,EAAWb,EAAK7C,MAAQ,IAE9B,IAAA,IAASF,EAAI,EAAGA,EAAIuD,EAAYvD,IAAK,CACnC,IAAA,IAAS6D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1BH,EADkB,EAAJ1D,EAAQ6D,GACPD,CAAA,CAEXF,EAAI,EAAJ1D,EAAQ,GANG,GAME,CAGrB,MAAM8D,EAAKJ,EAAMK,OACXC,EAAaF,aAAcG,YAAcH,EAAK,IAAII,WAAWR,GAAOK,OACpEI,EAAO,IAAIC,KAAK,CAACJ,GAAa,CAAE3B,KAAM,6BACrCtB,OAAAA,EAAAA,cAAcc,QAAQsC,EAAI,IAGrCI,gBAAiB5D,KAAKC,IAAG,CAACd,EAAwBiD,KAC1C,MAEAQ,EAFiBR,EAAK5C,KAAKC,MAAQ,GACjB2C,EAAK5C,KAAKE,OAAS,GAErCqD,EAAQ,IAAIC,kBAA+B,EAAbJ,GAC9BK,EAAWb,EAAK7C,MAAQ,IAE9B,IAAA,IAASF,EAAI,EAAGA,EAAIuD,EAAYvD,IAAK,CACnC,IAAA,IAAS6D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1BH,EADkB,EAAJ1D,EAAQ6D,GACPD,CAAA,CAEXF,EAAI,EAAJ1D,EAAQ,GANG,GAME,CAGrB,MAAM8D,EAAKJ,EAAMK,OACXC,EAAaF,aAAcG,YAAcH,EAAK,IAAII,WAAWR,GAAOK,OACpEI,EAAO,IAAIC,KAAK,CAACJ,GAAa,CAAE3B,KAAM,cAErCtB,OAAAA,EAAAA,cAAcc,QAAQsC,EAAI,IAEnCK,qBAAsB7D,KAAKC,IACzB,CACEd,EACAiD,EACA0B,EACA3D,IAEOC,EAAAA,cAAcc,QAAQ,IAAIuC,KAAK,GAAI,CAAE/B,KAAM,iBAGtDqC,kBAAmB/D,KAAKC,IAAId,GACnBiB,EAAAA,cAAcc,QAAQ,MAE/B8C,mBAAoBhE,KAAKC,IAAG,CAACd,EAAwBiD,KACnD,MAAM6B,EAA0B,CAC9BrC,UAAWQ,EAAK7C,MAChBI,GAAI,IACJ+B,KAAMwC,EAAqBA,qBAAAC,KAC3B1C,OAAQ,CACNC,KAAM,SACN0C,OAAQ,CACN1C,KAAM2C,EAAcA,cAAAC,IACpBC,IAAK,sBAGTZ,KAAM,CACJa,OAAQ,CACNC,EAAG,EACHC,EAAG,GAELlF,KAAM,CACJC,MAAO,IACPC,OAAQ,OAIRiF,EAAqC,GAEpCvE,OADPuE,EAAYrF,KAAK2E,GACV7D,EAAAA,cAAcc,QAAQyD,EAAW,IAE1CC,qBAAsB5E,KAAKC,IAAG,IACrBG,EAAAA,cAAcc,QAAQ2D,EAAAA,YAE/BC,qBAAsB9E,KAAKC,IAAG,IACrBG,EAAAA,cAAcc,SAAQ,KAE/B6D,qBAAsB/E,KAAKC,IAAG,IACrBG,EAAAA,cAAcc,SAAQ,KAE/B8D,iBAAkBhF,KAAKC,IAAG,CAACd,EAAwBiD,IAoB1ChC,EAAAA,cAAcc,QAnBkB,CACrC,CACE+D,QAAS,WACTC,KAAM,CACJC,OAAQ,aACR3F,KAAM,IAERmE,KAAM,CACJa,OAAQ,CACNC,EAAG,EACHC,EAAG,GAELlF,KAAM,CACJC,MAAO,IACPC,OAAQ,WAOlB0F,cAAgBC,GACPjF,EAAAA,cAAcc,SAAQ,GAE/BoE,WAAaD,GACJjF,EAAcA,cAAAc,QAAQ,IAAIoC,YAAY,IAE/CiC,YAAa,CAACF,EAAwBjD,EAAqBjC,IAClDC,gBAAcc,QAA8BsE,EAAAA,qBAAqBC,SAE1EC,aAAc,CAACL,EAAwBM,IAC9BvF,EAAcA,cAAAc,QAAQ,IAAIoC,YAAY,IAE/CsC,YAAa,CAACP,EAAwBM,IAC7BvF,EAAAA,cAAcc,QAAQ,IAE/B2E,kBAAmB,CACjBR,EACAjD,EACA0D,EACA3F,IAEOC,EAAAA,cAAcc,SAAQ,GAE/B6E,cAAe,CAAC5G,EAAwB6G,IAC/B5F,EAAAA,cAAcc,QAAQ,IAE/B+E,cAAe,CAAC9G,EAAwBiD,IAC/BhC,EAAAA,cAAcc,QAAQ,IAE/BgF,gBAAiB,CAAC/G,EAAwBiD,IACjChC,EAAAA,cAAcc,QAAQ,CAC3BiF,KAAM,KAGVC,MAAQC,GACCjG,EAAAA,cAAcc,QAAQ,CAC3BvB,GAAI,KACJsF,QAAS,IAAI3B,YAAY,KAG7BgD,WAAaC,GACJnG,EAAAA,cAAcc,QAAQ,CAC3BvB,GAAI,KACJsF,QAAS,IAAI3B,YAAY,KAG7BkD,qBAAsB,CAACrH,EAAwBgB,IACtCC,EAAcA,cAAAc,QAAQ,IAAIoC,YAAY,IAE/CmD,eAAgB,CACdtH,EACAuH,EACAvG,KAGA,MAAMwG,EAA2B,CAC/B/E,UAAW,EACXgF,UAAW,EACXC,UAAWH,EAAQI,OACnBhB,MAAO,CACL,CACEtB,OAAQ,CACNC,EAAG,EACHC,EAAG,GAELlF,KAAM,CACJC,MAAO,GACPC,OAAQ,MAIdqH,QAAS,CACPC,OAAQ,GACRC,MAAO,GACPC,MAAO,GACPC,eAAe,EACfC,gBAAgB,IAKbhH,OAAAA,EAAAA,cAAcc,QAAqD,CACxEmG,QAAS,CAACV,GACVW,MAAO,GACR,EAEHC,eAAiBpI,GACRiB,EAAAA,cAAcc,QAAQ,IAE/BsG,sBAAuB,CAACrI,EAAwBsI,IACvCrH,EAAcA,cAAAc,QAAQ,IAAIoC,YAAY,IAE/CoE,kBAAmB,CACjBvI,EACAiD,EACA0B,EACA6D,IAEOvH,EAAAA,cAAcc,SAAQ,MAE5BrB,EAIP,4BAsCO,SAA2BK,GACzB,MAAA,CACLP,GAAI,KACJsF,QAAS,IAAI3B,YAAY,GAE7B"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B, a, P, R, b, c, r } from "./engine-
|
|
2
|
-
import { E, P as P2 } from "./runner-
|
|
1
|
+
import { B, O, a, P, R, b, c, r } from "./engine-DSdvr8ah.js";
|
|
2
|
+
import { E, P as P2 } from "./runner-CjYO-wR5.js";
|
|
3
3
|
import { WebWorkerEngine, WorkerTask } from "./lib/webworker/engine.js";
|
|
4
4
|
import { PdfTaskHelper, uuidV4, PdfActionType, PdfAnnotationSubtype, Rotation, swap, PdfPageFlattenResult, PdfZoomMode } from "@embedpdf/models";
|
|
5
5
|
function createMockPdfEngine(partialEngine) {
|
|
@@ -337,6 +337,7 @@ function createMockPdfFile(file) {
|
|
|
337
337
|
export {
|
|
338
338
|
B as BitmapFormat,
|
|
339
339
|
E as EngineRunner,
|
|
340
|
+
O as OffscreenCanvasError,
|
|
340
341
|
a as PdfiumEngine,
|
|
341
342
|
P2 as PdfiumEngineRunner,
|
|
342
343
|
P as PdfiumErrorCode,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){const{buffer:t,byteOffset:r,byteLength:a}=e;if(t instanceof ArrayBuffer)return t.slice(r,r+a);const n=new ArrayBuffer(a);return new Uint8Array(n).set(new Uint8Array(t,r,a)),n}Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})
|
|
1
|
+
"use strict";function e(e){const{buffer:t,byteOffset:r,byteLength:a}=e;if(t instanceof ArrayBuffer)return t.slice(r,r+a);const n=new ArrayBuffer(a);return new Uint8Array(n).set(new Uint8Array(t,r,a)),n}Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),exports.createCustomImageDataToBlobConverter=function(t){return async(r,a="image/webp",n)=>{const o=r(),i=await t(o,a,n);return new Blob([e(i)],{type:a})}},exports.createCustomImageDataToBufferConverter=function(e){return async(t,r="image/webp",a)=>{const n=t();return await e(n,r,a)}},exports.createNodeCanvasImageDataToBlobConverter=function(e){return async(t,r="image/webp",a)=>{const n=t(),{width:o,height:i}=n,u=e(o,i);let f;switch(u.getContext("2d").putImageData(n,0,0),r){case"image/webp":f=u.toBuffer("image/webp");break;case"image/png":f=u.toBuffer("image/png");break;case"image/jpeg":f=u.toBuffer("image/jpeg");break;default:throw new Error(`Unsupported image type: ${r}`)}return f}},exports.createNodeImageDataToBufferConverter=function(e){return async(t,r="image/webp",a)=>{const n=t(),{width:o,height:i,data:u}=n;let f,g=e(Buffer.from(u),{raw:{width:o,height:i,channels:4}});switch(r){case"image/webp":f=await g.webp({quality:a}).toBuffer();break;case"image/png":f=await g.png().toBuffer();break;case"image/jpeg":f=await g.flatten({background:{r:255,g:255,b:255}}).jpeg({quality:a}).toBuffer();break;default:throw new Error(`Unsupported image type: ${r}`)}return f}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/lib/utils.ts","../../../src/lib/converters/index.ts"],"sourcesContent":["// Returns a plain ArrayBuffer (no SharedArrayBuffer), sliced to the view’s region.\nexport function toArrayBuffer(view: ArrayBufferView): ArrayBuffer {\n const { buffer, byteOffset, byteLength } = view;\n if (buffer instanceof ArrayBuffer) {\n return buffer.slice(byteOffset, byteOffset + byteLength);\n }\n // SharedArrayBuffer (or unknown) → copy once\n const ab = new ArrayBuffer(byteLength);\n new Uint8Array(ab).set(new Uint8Array(buffer as ArrayBufferLike, byteOffset, byteLength));\n return ab;\n}\n\n// Ensures ImageData gets a Uint8ClampedArray backed by a real ArrayBuffer.\nexport function toClampedRGBA(\n data: ArrayBufferView | Uint8Array | Uint8ClampedArray,\n): Uint8ClampedArray {\n if (data instanceof Uint8ClampedArray && data.buffer instanceof ArrayBuffer) return data;\n return new Uint8ClampedArray(toArrayBuffer(data as ArrayBufferView));\n}\n","import {
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/lib/utils.ts","../../../src/lib/converters/index.ts"],"sourcesContent":["// Returns a plain ArrayBuffer (no SharedArrayBuffer), sliced to the view’s region.\nexport function toArrayBuffer(view: ArrayBufferView): ArrayBuffer {\n const { buffer, byteOffset, byteLength } = view;\n if (buffer instanceof ArrayBuffer) {\n return buffer.slice(byteOffset, byteOffset + byteLength);\n }\n // SharedArrayBuffer (or unknown) → copy once\n const ab = new ArrayBuffer(byteLength);\n new Uint8Array(ab).set(new Uint8Array(buffer as ArrayBufferLike, byteOffset, byteLength));\n return ab;\n}\n\n// Ensures ImageData gets a Uint8ClampedArray backed by a real ArrayBuffer.\nexport function toClampedRGBA(\n data: ArrayBufferView | Uint8Array | Uint8ClampedArray,\n): Uint8ClampedArray {\n if (data instanceof Uint8ClampedArray && data.buffer instanceof ArrayBuffer) return data;\n return new Uint8ClampedArray(toArrayBuffer(data as ArrayBufferView));\n}\n","import { PdfImage } from '@embedpdf/models';\nimport { toArrayBuffer } from '../utils';\nimport { ImageDataConverter, ImageConversionTypes, LazyImageData } from './types';\n\n/**\n * Node.js implementation using Sharp\n * This requires the 'sharp' package to be installed\n *\n * @example\n * ```typescript\n * import sharp from 'sharp';\n * import { createNodeImageDataToBufferConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const imageDataConverter = createNodeImageDataToBufferConverter(sharp);\n * const engine = new PdfiumEngine(pdfiumModule, { logger, imageDataConverter });\n * ```\n */\nexport function createNodeImageDataToBufferConverter(\n sharp: any, // Using 'any' to avoid requiring sharp as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n const { width, height, data } = imageData;\n\n // Convert ImageData to Sharp format\n // ImageData uses RGBA format, Sharp expects the same\n let sharpInstance = sharp(Buffer.from(data), {\n raw: {\n width,\n height,\n channels: 4, // RGBA\n },\n });\n\n // Apply the appropriate format conversion based on imageType\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = await sharpInstance\n .webp({\n quality: imageQuality,\n })\n .toBuffer();\n break;\n case 'image/png':\n buffer = await sharpInstance.png().toBuffer();\n break;\n case 'image/jpeg':\n // JPEG doesn't support transparency, so we need to composite onto a white background\n buffer = await sharpInstance\n .flatten({ background: { r: 255, g: 255, b: 255 } }) // Remove alpha channel with white background\n .jpeg({\n quality: imageQuality,\n })\n .toBuffer();\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Alternative Node.js implementation using canvas (node-canvas)\n * This requires the 'canvas' package to be installed\n *\n * @example\n * ```typescript\n * import { createCanvas } from 'canvas';\n * import { createNodeCanvasImageDataToBlobConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const imageDataConverter = createNodeCanvasImageDataToBlobConverter(createCanvas);\n * const engine = new PdfiumEngine(pdfiumModule, { logger, imageDataConverter });\n * ```\n */\nexport function createNodeCanvasImageDataToBlobConverter(\n createCanvas: any, // Using 'any' to avoid requiring canvas as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n _imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n const { width, height } = imageData;\n\n // Create a canvas and put the image data\n const canvas = createCanvas(width, height);\n const ctx = canvas.getContext('2d');\n ctx.putImageData(imageData, 0, 0);\n\n // Convert to buffer and create blob based on the requested type\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = canvas.toBuffer('image/webp');\n break;\n case 'image/png':\n buffer = canvas.toBuffer('image/png');\n break;\n case 'image/jpeg':\n buffer = canvas.toBuffer('image/jpeg');\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Generic Node.js implementation that works with any image processing library\n * that can handle raw RGBA data\n *\n * @example\n * ```typescript\n * const converter = createCustomImageDataToBlobConverter(async (imageData) => {\n * // Your custom image processing logic here\n * // Return a Buffer that will be wrapped in a Blob\n * return processImageWithYourLibrary(imageData);\n * });\n * ```\n */\nexport function createCustomImageDataToBlobConverter(\n processor: (\n imageData: PdfImage,\n imageType?: ImageConversionTypes,\n imageQuality?: number,\n ) => Promise<Buffer>,\n): ImageDataConverter {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ) => {\n const imageData = getImageData();\n const bytes = await processor(imageData, imageType, imageQuality);\n return new Blob([toArrayBuffer(bytes)], { type: imageType });\n };\n}\n\n/**\n * Create a custom converter that returns a Buffer\n * @param processor - function to process the image data\n * @param imageType - image type\n * @returns ImageDataToBlobConverter<Buffer>\n */\nexport function createCustomImageDataToBufferConverter(\n processor: (\n imageData: PdfImage,\n imageType: ImageConversionTypes,\n imageQuality?: number,\n ) => Promise<Buffer>,\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n return await processor(imageData, imageType, imageQuality);\n };\n}\n"],"names":["toArrayBuffer","view","buffer","byteOffset","byteLength","ArrayBuffer","slice","ab","Uint8Array","set","processor","async","getImageData","imageType","imageQuality","imageData","bytes","Blob","type","createCanvas","_imageQuality","width","height","canvas","getContext","putImageData","toBuffer","Error","sharp","data","sharpInstance","Buffer","from","raw","channels","webp","quality","png","flatten","background","r","g","b","jpeg"],"mappings":"aACO,SAASA,EAAcC,GAC5B,MAAMC,OAAEA,EAAAC,WAAQA,EAAYC,WAAAA,GAAeH,EAC3C,GAAIC,aAAkBG,YACpB,OAAOH,EAAOI,MAAMH,EAAYA,EAAaC,GAGzC,MAAAG,EAAK,IAAIF,YAAYD,GAEpB,OADH,IAAAI,WAAWD,GAAIE,IAAI,IAAID,WAAWN,EAA2BC,EAAYC,IACtEG,CACT,iHCwHO,SACLG,GAMA,OAAOC,MACLC,EACAC,EAAkC,aAClCC,KAEA,MAAMC,EAAYH,IACZI,QAAcN,EAAUK,EAAWF,EAAWC,GAC7C,OAAA,IAAIG,KAAK,CAACjB,EAAcgB,IAAS,CAAEE,KAAML,GAAW,CAE/D,iDAQO,SACLH,GAMA,OAAOC,MACLC,EACAC,EAAkC,aAClCC,KAEA,MAAMC,EAAYH,IAClB,aAAaF,EAAUK,EAAWF,EAAWC,EAAY,CAE7D,mDAxFO,SACLK,GAEA,OAAOR,MACLC,EACAC,EAAkC,aAClCO,KAEA,MAAML,EAAYH,KACZS,MAAEA,EAAOC,OAAAA,GAAWP,EAGpBQ,EAASJ,EAAaE,EAAOC,GAK/B,IAAApB,EACJ,OALYqB,EAAOC,WAAW,MAC1BC,aAAaV,EAAW,EAAG,GAIvBF,GACN,IAAK,aACMX,EAAAqB,EAAOG,SAAS,cACzB,MACF,IAAK,YACMxB,EAAAqB,EAAOG,SAAS,aACzB,MACF,IAAK,aACMxB,EAAAqB,EAAOG,SAAS,cACzB,MACF,QACE,MAAM,IAAIC,MAAM,2BAA2Bd,KAGxC,OAAAX,CAAA,CAEX,+CAlGO,SACL0B,GAEA,OAAOjB,MACLC,EACAC,EAAkC,aAClCC,KAEA,MAAMC,EAAYH,KACZS,MAAEA,EAAAC,OAAOA,EAAQO,KAAAA,GAASd,EAIhC,IASIb,EATA4B,EAAgBF,EAAMG,OAAOC,KAAKH,GAAO,CAC3CI,IAAK,CACHZ,QACAC,SACAY,SAAU,KAMd,OAAQrB,GACN,IAAK,aACMX,QAAM4B,EACZK,KAAK,CACJC,QAAStB,IAEVY,WACH,MACF,IAAK,YACHxB,QAAe4B,EAAcO,MAAMX,WACnC,MACF,IAAK,aAEHxB,QAAe4B,EACZQ,QAAQ,CAAEC,WAAY,CAAEC,EAAG,IAAKC,EAAG,IAAKC,EAAG,OAC3CC,KAAK,CACJP,QAAStB,IAEVY,WACH,MACF,QACE,MAAM,IAAIC,MAAM,2BAA2Bd,KAGxC,OAAAX,CAAA,CAEX"}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* In browser: uses OffscreenCanvas
|
|
4
|
-
* In Node.js: can use Sharp or other image processing libraries
|
|
5
|
-
*/
|
|
6
|
-
export type ImageDataConverter<T = Blob> = (imageData: ImageData, imageType?: ImageConversionTypes) => Promise<T>;
|
|
7
|
-
export type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';
|
|
8
|
-
/**
|
|
9
|
-
* Browser implementation using OffscreenCanvas
|
|
10
|
-
* This is the default implementation used in browser environments
|
|
11
|
-
*/
|
|
12
|
-
export declare const browserImageDataToBlobConverter: ImageDataConverter;
|
|
1
|
+
import { PdfImage } from '@embedpdf/models';
|
|
2
|
+
import { ImageDataConverter, ImageConversionTypes } from './types';
|
|
13
3
|
/**
|
|
14
4
|
* Node.js implementation using Sharp
|
|
15
5
|
* This requires the 'sharp' package to be installed
|
|
@@ -51,11 +41,11 @@ export declare function createNodeCanvasImageDataToBlobConverter(createCanvas: a
|
|
|
51
41
|
* });
|
|
52
42
|
* ```
|
|
53
43
|
*/
|
|
54
|
-
export declare function createCustomImageDataToBlobConverter(processor: (imageData:
|
|
44
|
+
export declare function createCustomImageDataToBlobConverter(processor: (imageData: PdfImage, imageType?: ImageConversionTypes, imageQuality?: number) => Promise<Buffer>): ImageDataConverter;
|
|
55
45
|
/**
|
|
56
46
|
* Create a custom converter that returns a Buffer
|
|
57
47
|
* @param processor - function to process the image data
|
|
58
48
|
* @param imageType - image type
|
|
59
49
|
* @returns ImageDataToBlobConverter<Buffer>
|
|
60
50
|
*/
|
|
61
|
-
export declare function createCustomImageDataToBufferConverter(processor: (imageData:
|
|
51
|
+
export declare function createCustomImageDataToBufferConverter(processor: (imageData: PdfImage, imageType: ImageConversionTypes, imageQuality?: number) => Promise<Buffer>): ImageDataConverter<Buffer>;
|
|
@@ -7,18 +7,9 @@ function toArrayBuffer(view) {
|
|
|
7
7
|
new Uint8Array(ab).set(new Uint8Array(buffer, byteOffset, byteLength));
|
|
8
8
|
return ab;
|
|
9
9
|
}
|
|
10
|
-
const browserImageDataToBlobConverter = (imageData, imageType = "image/webp") => {
|
|
11
|
-
if (typeof OffscreenCanvas === "undefined") {
|
|
12
|
-
throw new Error(
|
|
13
|
-
"OffscreenCanvas is not available in this environment. This converter is intended for browser use only. Please use createNodeImageDataToBlobConverter() or createNodeCanvasImageDataToBlobConverter() for Node.js."
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
const off = new OffscreenCanvas(imageData.width, imageData.height);
|
|
17
|
-
off.getContext("2d").putImageData(imageData, 0, 0);
|
|
18
|
-
return off.convertToBlob({ type: imageType });
|
|
19
|
-
};
|
|
20
10
|
function createNodeImageDataToBufferConverter(sharp) {
|
|
21
|
-
return async (
|
|
11
|
+
return async (getImageData, imageType = "image/webp", imageQuality) => {
|
|
12
|
+
const imageData = getImageData();
|
|
22
13
|
const { width, height, data } = imageData;
|
|
23
14
|
let sharpInstance = sharp(Buffer.from(data), {
|
|
24
15
|
raw: {
|
|
@@ -31,13 +22,17 @@ function createNodeImageDataToBufferConverter(sharp) {
|
|
|
31
22
|
let buffer;
|
|
32
23
|
switch (imageType) {
|
|
33
24
|
case "image/webp":
|
|
34
|
-
buffer = await sharpInstance.webp(
|
|
25
|
+
buffer = await sharpInstance.webp({
|
|
26
|
+
quality: imageQuality
|
|
27
|
+
}).toBuffer();
|
|
35
28
|
break;
|
|
36
29
|
case "image/png":
|
|
37
30
|
buffer = await sharpInstance.png().toBuffer();
|
|
38
31
|
break;
|
|
39
32
|
case "image/jpeg":
|
|
40
|
-
buffer = await sharpInstance.flatten({ background: { r: 255, g: 255, b: 255 } }).jpeg(
|
|
33
|
+
buffer = await sharpInstance.flatten({ background: { r: 255, g: 255, b: 255 } }).jpeg({
|
|
34
|
+
quality: imageQuality
|
|
35
|
+
}).toBuffer();
|
|
41
36
|
break;
|
|
42
37
|
default:
|
|
43
38
|
throw new Error(`Unsupported image type: ${imageType}`);
|
|
@@ -46,7 +41,8 @@ function createNodeImageDataToBufferConverter(sharp) {
|
|
|
46
41
|
};
|
|
47
42
|
}
|
|
48
43
|
function createNodeCanvasImageDataToBlobConverter(createCanvas) {
|
|
49
|
-
return async (
|
|
44
|
+
return async (getImageData, imageType = "image/webp", _imageQuality) => {
|
|
45
|
+
const imageData = getImageData();
|
|
50
46
|
const { width, height } = imageData;
|
|
51
47
|
const canvas = createCanvas(width, height);
|
|
52
48
|
const ctx = canvas.getContext("2d");
|
|
@@ -69,18 +65,19 @@ function createNodeCanvasImageDataToBlobConverter(createCanvas) {
|
|
|
69
65
|
};
|
|
70
66
|
}
|
|
71
67
|
function createCustomImageDataToBlobConverter(processor) {
|
|
72
|
-
return async (
|
|
73
|
-
const
|
|
68
|
+
return async (getImageData, imageType = "image/webp", imageQuality) => {
|
|
69
|
+
const imageData = getImageData();
|
|
70
|
+
const bytes = await processor(imageData, imageType, imageQuality);
|
|
74
71
|
return new Blob([toArrayBuffer(bytes)], { type: imageType });
|
|
75
72
|
};
|
|
76
73
|
}
|
|
77
74
|
function createCustomImageDataToBufferConverter(processor) {
|
|
78
|
-
return async (
|
|
79
|
-
|
|
75
|
+
return async (getImageData, imageType = "image/webp", imageQuality) => {
|
|
76
|
+
const imageData = getImageData();
|
|
77
|
+
return await processor(imageData, imageType, imageQuality);
|
|
80
78
|
};
|
|
81
79
|
}
|
|
82
80
|
export {
|
|
83
|
-
browserImageDataToBlobConverter,
|
|
84
81
|
createCustomImageDataToBlobConverter,
|
|
85
82
|
createCustomImageDataToBufferConverter,
|
|
86
83
|
createNodeCanvasImageDataToBlobConverter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/lib/utils.ts","../../../src/lib/converters/index.ts"],"sourcesContent":["// Returns a plain ArrayBuffer (no SharedArrayBuffer), sliced to the view’s region.\nexport function toArrayBuffer(view: ArrayBufferView): ArrayBuffer {\n const { buffer, byteOffset, byteLength } = view;\n if (buffer instanceof ArrayBuffer) {\n return buffer.slice(byteOffset, byteOffset + byteLength);\n }\n // SharedArrayBuffer (or unknown) → copy once\n const ab = new ArrayBuffer(byteLength);\n new Uint8Array(ab).set(new Uint8Array(buffer as ArrayBufferLike, byteOffset, byteLength));\n return ab;\n}\n\n// Ensures ImageData gets a Uint8ClampedArray backed by a real ArrayBuffer.\nexport function toClampedRGBA(\n data: ArrayBufferView | Uint8Array | Uint8ClampedArray,\n): Uint8ClampedArray {\n if (data instanceof Uint8ClampedArray && data.buffer instanceof ArrayBuffer) return data;\n return new Uint8ClampedArray(toArrayBuffer(data as ArrayBufferView));\n}\n","import {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/utils.ts","../../../src/lib/converters/index.ts"],"sourcesContent":["// Returns a plain ArrayBuffer (no SharedArrayBuffer), sliced to the view’s region.\nexport function toArrayBuffer(view: ArrayBufferView): ArrayBuffer {\n const { buffer, byteOffset, byteLength } = view;\n if (buffer instanceof ArrayBuffer) {\n return buffer.slice(byteOffset, byteOffset + byteLength);\n }\n // SharedArrayBuffer (or unknown) → copy once\n const ab = new ArrayBuffer(byteLength);\n new Uint8Array(ab).set(new Uint8Array(buffer as ArrayBufferLike, byteOffset, byteLength));\n return ab;\n}\n\n// Ensures ImageData gets a Uint8ClampedArray backed by a real ArrayBuffer.\nexport function toClampedRGBA(\n data: ArrayBufferView | Uint8Array | Uint8ClampedArray,\n): Uint8ClampedArray {\n if (data instanceof Uint8ClampedArray && data.buffer instanceof ArrayBuffer) return data;\n return new Uint8ClampedArray(toArrayBuffer(data as ArrayBufferView));\n}\n","import { PdfImage } from '@embedpdf/models';\nimport { toArrayBuffer } from '../utils';\nimport { ImageDataConverter, ImageConversionTypes, LazyImageData } from './types';\n\n/**\n * Node.js implementation using Sharp\n * This requires the 'sharp' package to be installed\n *\n * @example\n * ```typescript\n * import sharp from 'sharp';\n * import { createNodeImageDataToBufferConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const imageDataConverter = createNodeImageDataToBufferConverter(sharp);\n * const engine = new PdfiumEngine(pdfiumModule, { logger, imageDataConverter });\n * ```\n */\nexport function createNodeImageDataToBufferConverter(\n sharp: any, // Using 'any' to avoid requiring sharp as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n const { width, height, data } = imageData;\n\n // Convert ImageData to Sharp format\n // ImageData uses RGBA format, Sharp expects the same\n let sharpInstance = sharp(Buffer.from(data), {\n raw: {\n width,\n height,\n channels: 4, // RGBA\n },\n });\n\n // Apply the appropriate format conversion based on imageType\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = await sharpInstance\n .webp({\n quality: imageQuality,\n })\n .toBuffer();\n break;\n case 'image/png':\n buffer = await sharpInstance.png().toBuffer();\n break;\n case 'image/jpeg':\n // JPEG doesn't support transparency, so we need to composite onto a white background\n buffer = await sharpInstance\n .flatten({ background: { r: 255, g: 255, b: 255 } }) // Remove alpha channel with white background\n .jpeg({\n quality: imageQuality,\n })\n .toBuffer();\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Alternative Node.js implementation using canvas (node-canvas)\n * This requires the 'canvas' package to be installed\n *\n * @example\n * ```typescript\n * import { createCanvas } from 'canvas';\n * import { createNodeCanvasImageDataToBlobConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const imageDataConverter = createNodeCanvasImageDataToBlobConverter(createCanvas);\n * const engine = new PdfiumEngine(pdfiumModule, { logger, imageDataConverter });\n * ```\n */\nexport function createNodeCanvasImageDataToBlobConverter(\n createCanvas: any, // Using 'any' to avoid requiring canvas as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n _imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n const { width, height } = imageData;\n\n // Create a canvas and put the image data\n const canvas = createCanvas(width, height);\n const ctx = canvas.getContext('2d');\n ctx.putImageData(imageData, 0, 0);\n\n // Convert to buffer and create blob based on the requested type\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = canvas.toBuffer('image/webp');\n break;\n case 'image/png':\n buffer = canvas.toBuffer('image/png');\n break;\n case 'image/jpeg':\n buffer = canvas.toBuffer('image/jpeg');\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Generic Node.js implementation that works with any image processing library\n * that can handle raw RGBA data\n *\n * @example\n * ```typescript\n * const converter = createCustomImageDataToBlobConverter(async (imageData) => {\n * // Your custom image processing logic here\n * // Return a Buffer that will be wrapped in a Blob\n * return processImageWithYourLibrary(imageData);\n * });\n * ```\n */\nexport function createCustomImageDataToBlobConverter(\n processor: (\n imageData: PdfImage,\n imageType?: ImageConversionTypes,\n imageQuality?: number,\n ) => Promise<Buffer>,\n): ImageDataConverter {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ) => {\n const imageData = getImageData();\n const bytes = await processor(imageData, imageType, imageQuality);\n return new Blob([toArrayBuffer(bytes)], { type: imageType });\n };\n}\n\n/**\n * Create a custom converter that returns a Buffer\n * @param processor - function to process the image data\n * @param imageType - image type\n * @returns ImageDataToBlobConverter<Buffer>\n */\nexport function createCustomImageDataToBufferConverter(\n processor: (\n imageData: PdfImage,\n imageType: ImageConversionTypes,\n imageQuality?: number,\n ) => Promise<Buffer>,\n): ImageDataConverter<Buffer> {\n return async (\n getImageData: LazyImageData,\n imageType: ImageConversionTypes = 'image/webp',\n imageQuality?: number,\n ): Promise<Buffer> => {\n const imageData = getImageData();\n return await processor(imageData, imageType, imageQuality);\n };\n}\n"],"names":[],"mappings":"AACO,SAAS,cAAc,MAAoC;AAChE,QAAM,EAAE,QAAQ,YAAY,WAAe,IAAA;AAC3C,MAAI,kBAAkB,aAAa;AACjC,WAAO,OAAO,MAAM,YAAY,aAAa,UAAU;AAAA,EAAA;AAGnD,QAAA,KAAK,IAAI,YAAY,UAAU;AACjC,MAAA,WAAW,EAAE,EAAE,IAAI,IAAI,WAAW,QAA2B,YAAY,UAAU,CAAC;AACjF,SAAA;AACT;ACOO,SAAS,qCACd,OAC4B;AAC5B,SAAO,OACL,cACA,YAAkC,cAClC,iBACoB;AACpB,UAAM,YAAY,aAAa;AAC/B,UAAM,EAAE,OAAO,QAAQ,KAAS,IAAA;AAIhC,QAAI,gBAAgB,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MAC3C,KAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,MAAA;AAAA,IACZ,CACD;AAGG,QAAA;AACJ,YAAQ,WAAW;AAAA,MACjB,KAAK;AACM,iBAAA,MAAM,cACZ,KAAK;AAAA,UACJ,SAAS;AAAA,QACV,CAAA,EACA,SAAS;AACZ;AAAA,MACF,KAAK;AACH,iBAAS,MAAM,cAAc,IAAI,EAAE,SAAS;AAC5C;AAAA,MACF,KAAK;AAEH,iBAAS,MAAM,cACZ,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,IAAA,EAAO,CAAA,EAClD,KAAK;AAAA,UACJ,SAAS;AAAA,QACV,CAAA,EACA,SAAS;AACZ;AAAA,MACF;AACE,cAAM,IAAI,MAAM,2BAA2B,SAAS,EAAE;AAAA,IAAA;AAGnD,WAAA;AAAA,EACT;AACF;AAeO,SAAS,yCACd,cAC4B;AAC5B,SAAO,OACL,cACA,YAAkC,cAClC,kBACoB;AACpB,UAAM,YAAY,aAAa;AACzB,UAAA,EAAE,OAAO,OAAA,IAAW;AAGpB,UAAA,SAAS,aAAa,OAAO,MAAM;AACnC,UAAA,MAAM,OAAO,WAAW,IAAI;AAC9B,QAAA,aAAa,WAAW,GAAG,CAAC;AAG5B,QAAA;AACJ,YAAQ,WAAW;AAAA,MACjB,KAAK;AACM,iBAAA,OAAO,SAAS,YAAY;AACrC;AAAA,MACF,KAAK;AACM,iBAAA,OAAO,SAAS,WAAW;AACpC;AAAA,MACF,KAAK;AACM,iBAAA,OAAO,SAAS,YAAY;AACrC;AAAA,MACF;AACE,cAAM,IAAI,MAAM,2BAA2B,SAAS,EAAE;AAAA,IAAA;AAGnD,WAAA;AAAA,EACT;AACF;AAeO,SAAS,qCACd,WAKoB;AACpB,SAAO,OACL,cACA,YAAkC,cAClC,iBACG;AACH,UAAM,YAAY,aAAa;AAC/B,UAAM,QAAQ,MAAM,UAAU,WAAW,WAAW,YAAY;AACzD,WAAA,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,GAAG,EAAE,MAAM,WAAW;AAAA,EAC7D;AACF;AAQO,SAAS,uCACd,WAK4B;AAC5B,SAAO,OACL,cACA,YAAkC,cAClC,iBACoB;AACpB,UAAM,YAAY,aAAa;AAC/B,WAAO,MAAM,UAAU,WAAW,WAAW,YAAY;AAAA,EAC3D;AACF;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PdfImage } from '@embedpdf/models';
|
|
2
|
+
export type LazyImageData = () => PdfImage;
|
|
3
|
+
/**
|
|
4
|
+
* Function type for converting ImageData to Blob
|
|
5
|
+
* In browser: uses OffscreenCanvas
|
|
6
|
+
* In Node.js: can use Sharp or other image processing libraries
|
|
7
|
+
*/
|
|
8
|
+
export type ImageDataConverter<T = Blob> = (getImageData: LazyImageData, imageType?: ImageConversionTypes, imageQuality?: number) => Promise<T>;
|
|
9
|
+
export type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, PdfAttachmentObject, PdfSignatureObject, Position, PdfStampAnnoObject, PdfCircleAnnoObject, PdfSquareAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, PdfHighlightAnnoObject, FormFieldValue, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfOpenDocumentUrlOptions, PdfOpenDocumentBufferOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry,
|
|
1
|
+
import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, PdfAttachmentObject, PdfSignatureObject, Position, PdfStampAnnoObject, PdfCircleAnnoObject, PdfSquareAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, PdfHighlightAnnoObject, FormFieldValue, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfOpenDocumentUrlOptions, PdfOpenDocumentBufferOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PageTextSlice, AnnotationCreateContext, PdfPageSearchProgress, PdfSearchAllPagesOptions, PdfRenderPageAnnotationOptions, PdfRedactTextOptions, PdfFlattenPageOptions, PdfRenderThumbnailOptions, PdfRenderPageOptions, PdfAnnotationsProgress, PdfMetadataObject, PdfPrintOptions } from '@embedpdf/models';
|
|
2
2
|
import { WrappedPdfiumModule } from '@embedpdf/pdfium';
|
|
3
|
+
import { ImageDataConverter } from '../converters/types';
|
|
3
4
|
/**
|
|
4
5
|
* Format of bitmap
|
|
5
6
|
*/
|
|
@@ -55,17 +56,14 @@ export declare enum PdfiumErrorCode {
|
|
|
55
56
|
XFALoad = 7,
|
|
56
57
|
XFALayout = 8
|
|
57
58
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Function type for converting ImageData to Blob
|
|
60
|
-
* In browser: uses OffscreenCanvas
|
|
61
|
-
* In Node.js: can use Sharp or other image processing libraries
|
|
62
|
-
*/
|
|
63
|
-
export type ImageDataConverter<T = Blob> = (imageData: PdfImage, imageType?: ImageConversionTypes) => Promise<T>;
|
|
64
|
-
export declare const browserImageDataToBlobConverter: ImageDataConverter<Blob>;
|
|
65
59
|
interface PdfiumEngineOptions<T> {
|
|
66
60
|
logger?: Logger;
|
|
67
61
|
imageDataConverter?: ImageDataConverter<T>;
|
|
68
62
|
}
|
|
63
|
+
export declare class OffscreenCanvasError extends Error {
|
|
64
|
+
constructor(message: string);
|
|
65
|
+
}
|
|
66
|
+
export declare const browserImageDataToBlobConverter: ImageDataConverter<Blob>;
|
|
69
67
|
/**
|
|
70
68
|
* Pdf engine that based on pdfium wasm
|
|
71
69
|
*/
|
|
@@ -1236,19 +1234,8 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
|
|
|
1236
1234
|
* @public
|
|
1237
1235
|
*/
|
|
1238
1236
|
renderPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, options?: PdfRenderPageAnnotationOptions): PdfTask<T>;
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
* @param docPtr - pointer to pdf document object
|
|
1242
|
-
* @param page - pdf page infor
|
|
1243
|
-
* @param rect - rectangle info
|
|
1244
|
-
* @param scaleFactor - factor of scalling
|
|
1245
|
-
* @param rotation - rotation angle
|
|
1246
|
-
* @param options - render options
|
|
1247
|
-
* @returns image data
|
|
1248
|
-
*
|
|
1249
|
-
* @private
|
|
1250
|
-
*/
|
|
1251
|
-
private renderPageRectToImageData;
|
|
1237
|
+
private encodeViaWasm;
|
|
1238
|
+
private renderRectEncoded;
|
|
1252
1239
|
/**
|
|
1253
1240
|
* Read the target of pdf link annotation
|
|
1254
1241
|
* @param docPtr - pointer to pdf document object
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-RdqkJxAO.cjs"),e=require("../../runner-DoKDIKUP.cjs");exports.BitmapFormat=r.BitmapFormat,exports.OffscreenCanvasError=r.OffscreenCanvasError,exports.PdfiumEngine=r.PdfiumEngine,exports.PdfiumErrorCode=r.PdfiumErrorCode,exports.RenderFlag=r.RenderFlag,exports.browserImageDataToBlobConverter=r.browserImageDataToBlobConverter,exports.readArrayBuffer=r.readArrayBuffer,exports.readString=r.readString,exports.PdfiumEngineRunner=e.PdfiumEngineRunner;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/lib/pdfium/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { B, a, P, R, b, c, r } from "../../engine-
|
|
2
|
-
import { P as P2 } from "../../runner-
|
|
1
|
+
import { B, O, a, P, R, b, c, r } from "../../engine-DSdvr8ah.js";
|
|
2
|
+
import { P as P2 } from "../../runner-CjYO-wR5.js";
|
|
3
3
|
export {
|
|
4
4
|
B as BitmapFormat,
|
|
5
|
+
O as OffscreenCanvasError,
|
|
5
6
|
a as PdfiumEngine,
|
|
6
7
|
P2 as PdfiumEngineRunner,
|
|
7
8
|
P as PdfiumErrorCode,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-RdqkJxAO.cjs");exports.createPdfiumEngine=async function(r,t){const n=await fetch(r),a=await n.arrayBuffer(),u=await e.init({wasmBinary:a});return new i.PdfiumEngine(u,{logger:t})};
|
|
2
2
|
//# sourceMappingURL=direct-engine.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { init } from "@embedpdf/pdfium";
|
|
2
|
-
import { a as PdfiumEngine } from "../../../engine-
|
|
2
|
+
import { a as PdfiumEngine } from "../../../engine-DSdvr8ah.js";
|
|
3
3
|
async function createPdfiumEngine(wasmUrl, logger) {
|
|
4
4
|
const response = await fetch(wasmUrl);
|
|
5
5
|
const wasmBinary = await response.arrayBuffer();
|