@embedpdf/engines 1.0.12 → 1.0.14

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/dist/engine-1ZSXSAtm.cjs +2 -0
  2. package/dist/engine-1ZSXSAtm.cjs.map +1 -0
  3. package/dist/{engine-M0_XZhss.js → engine-O49988D4.js} +716 -189
  4. package/dist/engine-O49988D4.js.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.js +2 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/pdfium/engine.d.ts +180 -29
  10. package/dist/lib/pdfium/index.cjs +1 -1
  11. package/dist/lib/pdfium/index.js +2 -2
  12. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  13. package/dist/lib/pdfium/web/direct-engine.js +1 -1
  14. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  15. package/dist/lib/pdfium/web/worker-engine.js +1 -1
  16. package/dist/lib/webworker/engine.cjs +1 -1
  17. package/dist/lib/webworker/engine.cjs.map +1 -1
  18. package/dist/lib/webworker/engine.d.ts +1 -2
  19. package/dist/lib/webworker/engine.js +1 -16
  20. package/dist/lib/webworker/engine.js.map +1 -1
  21. package/dist/preact/index.cjs +1 -1
  22. package/dist/preact/index.js +1 -1
  23. package/dist/react/index.cjs +1 -1
  24. package/dist/react/index.js +1 -1
  25. package/dist/runner-Br_PKNmU.cjs +2 -0
  26. package/dist/{runner-BcS-WEof.cjs.map → runner-Br_PKNmU.cjs.map} +1 -1
  27. package/dist/{runner-DUp_7Uu_.js → runner-CABEqeFp.js} +2 -5
  28. package/dist/{runner-DUp_7Uu_.js.map → runner-CABEqeFp.js.map} +1 -1
  29. package/dist/vue/index.cjs +1 -1
  30. package/dist/vue/index.js +1 -1
  31. package/package.json +3 -3
  32. package/dist/engine-B7CS6Qyp.cjs +0 -2
  33. package/dist/engine-B7CS6Qyp.cjs.map +0 -1
  34. package/dist/engine-M0_XZhss.js.map +0 -1
  35. package/dist/runner-BcS-WEof.cjs +0 -2
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./engine-B7CS6Qyp.cjs"),r=require("./runner-BcS-WEof.cjs"),t=require("./lib/webworker/engine.cjs"),n=require("@embedpdf/models");exports.BitmapFormat=e.BitmapFormat,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())),openDocumentFromBuffer:jest.fn(((e,r)=>n.PdfTaskHelper.create())),openDocumentFromLoader:jest.fn(((e,r)=>n.PdfTaskHelper.create())),getMetadata:()=>n.PdfTaskHelper.resolve({title:"title",author:"author",subject:"subject",keywords:"keywords",producer:"producer",creator:"creator",creationDate:"creationDate",modificationDate:"modificationDate"}),getDocPermissions:e=>n.PdfTaskHelper.resolve(4294967295),getDocUserPermissions:e=>n.PdfTaskHelper.resolve(4294967295),getSignatures:e=>n.PdfTaskHelper.resolve([]),updateAnnotationColor:(e,r,t,o,a=0)=>n.PdfTaskHelper.resolve(!0),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,o,a,s)=>{const i=o%2==0?r.size:n.swap(r.size),d=Math.ceil(i.width*t)*Math.ceil(i.height*t),f=new Uint8ClampedArray(4*d),l=r.index%255;for(let n=0;n<d;n++){for(let e=0;e<3;e++){f[4*n+e]=l}f[4*n+3]=255}const p=f.buffer,c=p instanceof ArrayBuffer?p:new Uint8Array(f).buffer,g=new Blob([c],{type:"application/octet-stream"});return n.PdfTaskHelper.resolve(g)})),renderPageRect:jest.fn(((e,r,t,o,a,s,i)=>{const d=o%2==0?r.size:n.swap(r.size),f=Math.ceil(d.width*t)*Math.ceil(d.height*t),l=new Uint8ClampedArray(4*f),p=r.index%255;for(let n=0;n<f;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,d=new Blob([i],{type:"image/png"});return n.PdfTaskHelper.resolve(d)})),renderAnnotation:jest.fn(((e,r,t,o,a,s,i,d)=>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:r.index+1,type:n.PdfAnnotationSubtype.LINK,target:{type:"action",action:{type:n.PdfActionType.URI,uri:"https://localhost"}},text:"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(1))),updatePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),removePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),getPageTextRects:jest.fn(((e,r,t,o)=>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(""),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)}),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)}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./engine-1ZSXSAtm.cjs"),r=require("./runner-Br_PKNmU.cjs"),t=require("./lib/webworker/engine.cjs"),n=require("@embedpdf/models");exports.BitmapFormat=e.BitmapFormat,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())),openDocumentFromBuffer:jest.fn(((e,r)=>n.PdfTaskHelper.create())),openDocumentFromLoader:jest.fn(((e,r)=>n.PdfTaskHelper.create())),getMetadata:()=>n.PdfTaskHelper.resolve({title:"title",author:"author",subject:"subject",keywords:"keywords",producer:"producer",creator:"creator",creationDate:"creationDate",modificationDate:"modificationDate"}),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,o,a,s)=>{const i=o%2==0?r.size:n.swap(r.size),d=Math.ceil(i.width*t)*Math.ceil(i.height*t),f=new Uint8ClampedArray(4*d),l=r.index%255;for(let n=0;n<d;n++){for(let e=0;e<3;e++){f[4*n+e]=l}f[4*n+3]=255}const p=f.buffer,c=p instanceof ArrayBuffer?p:new Uint8Array(f).buffer,g=new Blob([c],{type:"application/octet-stream"});return n.PdfTaskHelper.resolve(g)})),renderPageRect:jest.fn(((e,r,t,o,a,s,i)=>{const d=o%2==0?r.size:n.swap(r.size),f=Math.ceil(d.width*t)*Math.ceil(d.height*t),l=new Uint8ClampedArray(4*f),p=r.index%255;for(let n=0;n<f;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,d=new Blob([i],{type:"image/png"});return n.PdfTaskHelper.resolve(d)})),renderAnnotation:jest.fn(((e,r,t,o,a,s,i,d)=>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:r.index+1,type:n.PdfAnnotationSubtype.LINK,target:{type:"action",action:{type:n.PdfActionType.URI,uri:"https://localhost"}},text:"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(1))),updatePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),removePageAnnotation:jest.fn((()=>n.PdfTaskHelper.resolve(!0))),getPageTextRects:jest.fn(((e,r,t,o)=>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(""),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)}),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
@@ -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 SearchTarget,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfRenderOptions,\n PdfFile,\n PdfAnnotationObjectStatus,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationTransformation,\n PdfEngineError,\n PdfMetadataObject,\n PdfErrorCode,\n PdfErrorReason,\n PdfBookmarksObject,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n WebAlphaColor,\n AppearanceMode,\n ImageConversionTypes,\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?: PdfUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromBuffer: jest.fn((file: PdfFile, password: string) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromLoader: jest.fn((file: PdfFileLoader, password: string) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: () => {\n return PdfTaskHelper.resolve({\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: 'creationDate',\n modificationDate: 'modificationDate',\n });\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 updateAnnotationColor: (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObjectBase,\n color: WebAlphaColor,\n which: number = 0,\n ) => {\n return PdfTaskHelper.resolve(true);\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n ) => {\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n ) => {\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 renderAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\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: page.index + 1,\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n text: 'localhost',\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(1);\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(\n (doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation) => {\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 ),\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, flag: PdfPageFlattenFlag) => {\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 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 searchAllPages: (doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]) => {\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>({\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","openDocumentFromBuffer","password","openDocumentFromLoader","getMetadata","resolve","title","author","subject","keywords","producer","creator","creationDate","modificationDate","getDocPermissions","getDocUserPermissions","getSignatures","updateAnnotationColor","page","annotation","color","which","getBookmarks","bookmarks","target","type","destination","pageIndex","zoom","mode","PdfZoomMode","FitPage","view","children","renderPage","scaleFactor","rotation","dpr","pageSize","swap","pixelCount","Math","ceil","array","Uint8ClampedArray","rgbValue","j","ab","buffer","realBuffer","ArrayBuffer","Uint8Array","blob","Blob","renderPageRect","rect","renderThumbnail","renderAnnotation","imageType","getAllAnnotations","getPageAnnotations","link","PdfAnnotationSubtype","LINK","action","PdfActionType","URI","uri","text","origin","x","y","annotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","content","font","family","closeDocument","pdf","saveAsCopy","flattenPage","flag","PdfPageFlattenResult","Success","extractPages","pageIndexes","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","runs","merge","files","mergePages","mergeConfigs","searchAllPages","keyword","flags","mockResult","charIndex","charCount","length","rects","context","before","match","after","truncatedLeft","truncatedRight","results","total","getAttachments","readAttachmentContent","attachment","setFormFieldValue"],"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 SearchTarget,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfRenderOptions,\n PdfFile,\n PdfAnnotationObjectStatus,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationTransformation,\n PdfEngineError,\n PdfMetadataObject,\n PdfErrorCode,\n PdfErrorReason,\n PdfBookmarksObject,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n WebAlphaColor,\n AppearanceMode,\n ImageConversionTypes,\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?: PdfUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromBuffer: jest.fn((file: PdfFile, password: string) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromLoader: jest.fn((file: PdfFileLoader, password: string) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: () => {\n return PdfTaskHelper.resolve({\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: 'creationDate',\n modificationDate: 'modificationDate',\n });\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n ) => {\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n ) => {\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 renderAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\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: page.index + 1,\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n text: 'localhost',\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(1);\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(\n (doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation) => {\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 ),\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, flag: PdfPageFlattenFlag) => {\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 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 searchAllPages: (doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]) => {\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>({\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","openDocumentFromBuffer","password","openDocumentFromLoader","getMetadata","resolve","title","author","subject","keywords","producer","creator","creationDate","modificationDate","getDocPermissions","getDocUserPermissions","getSignatures","getBookmarks","bookmarks","target","type","destination","pageIndex","zoom","mode","PdfZoomMode","FitPage","view","children","renderPage","page","scaleFactor","rotation","dpr","pageSize","swap","pixelCount","Math","ceil","array","Uint8ClampedArray","rgbValue","j","ab","buffer","realBuffer","ArrayBuffer","Uint8Array","blob","Blob","renderPageRect","rect","renderThumbnail","renderAnnotation","annotation","imageType","getAllAnnotations","getPageAnnotations","link","PdfAnnotationSubtype","LINK","action","PdfActionType","URI","uri","text","origin","x","y","annotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","content","font","family","closeDocument","pdf","saveAsCopy","flattenPage","flag","PdfPageFlattenResult","Success","extractPages","pageIndexes","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","runs","merge","files","mergePages","mergeConfigs","searchAllPages","keyword","flags","mockResult","charIndex","charCount","length","rects","context","before","match","after","truncatedLeft","truncatedRight","results","total","getAttachments","readAttachmentContent","attachment","setFormFieldValue"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { B, a, P, R, b, c, r } from "./engine-M0_XZhss.js";
2
- import { E, P as P2 } from "./runner-DUp_7Uu_.js";
1
+ import { B, a, P, R, b, c, r } from "./engine-O49988D4.js";
2
+ import { E, P as P2 } from "./runner-CABEqeFp.js";
3
3
  import { WebWorkerEngine, WorkerTask } from "./lib/webworker/engine.js";
4
4
  import { PdfTaskHelper, PdfActionType, PdfAnnotationSubtype, swap, PdfPageFlattenResult, PdfZoomMode } from "@embedpdf/models";
5
5
  function createMockPdfEngine(partialEngine) {
@@ -35,9 +35,6 @@ function createMockPdfEngine(partialEngine) {
35
35
  const signatures = [];
36
36
  return PdfTaskHelper.resolve(signatures);
37
37
  },
38
- updateAnnotationColor: (doc, page, annotation, color, which = 0) => {
39
- return PdfTaskHelper.resolve(true);
40
- },
41
38
  getBookmarks: (doc) => {
42
39
  const bookmarks = [];
43
40
  bookmarks.push(
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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 SearchTarget,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfRenderOptions,\n PdfFile,\n PdfAnnotationObjectStatus,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationTransformation,\n PdfEngineError,\n PdfMetadataObject,\n PdfErrorCode,\n PdfErrorReason,\n PdfBookmarksObject,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n WebAlphaColor,\n AppearanceMode,\n ImageConversionTypes,\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?: PdfUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromBuffer: jest.fn((file: PdfFile, password: string) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromLoader: jest.fn((file: PdfFileLoader, password: string) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: () => {\n return PdfTaskHelper.resolve({\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: 'creationDate',\n modificationDate: 'modificationDate',\n });\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 updateAnnotationColor: (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObjectBase,\n color: WebAlphaColor,\n which: number = 0,\n ) => {\n return PdfTaskHelper.resolve(true);\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n ) => {\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n ) => {\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 renderAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\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: page.index + 1,\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n text: 'localhost',\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(1);\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(\n (doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation) => {\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 ),\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, flag: PdfPageFlattenFlag) => {\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 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 searchAllPages: (doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]) => {\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>({\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":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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 SearchTarget,\n SearchResult,\n PdfAttachmentObject,\n PdfSignatureObject,\n Rect,\n PdfRenderOptions,\n PdfFile,\n PdfAnnotationObjectStatus,\n PdfWidgetAnnoObject,\n FormFieldValue,\n PdfTaskHelper,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationTransformation,\n PdfEngineError,\n PdfMetadataObject,\n PdfErrorCode,\n PdfErrorReason,\n PdfBookmarksObject,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n WebAlphaColor,\n AppearanceMode,\n ImageConversionTypes,\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?: PdfUrlOptions) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromBuffer: jest.fn((file: PdfFile, password: string) => {\n return PdfTaskHelper.create();\n }),\n openDocumentFromLoader: jest.fn((file: PdfFileLoader, password: string) => {\n return PdfTaskHelper.create();\n }),\n getMetadata: () => {\n return PdfTaskHelper.resolve({\n title: 'title',\n author: 'author',\n subject: 'subject',\n keywords: 'keywords',\n producer: 'producer',\n creator: 'creator',\n creationDate: 'creationDate',\n modificationDate: 'modificationDate',\n });\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n ) => {\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 (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n ) => {\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 renderAnnotation: jest.fn(\n (\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\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: page.index + 1,\n type: PdfAnnotationSubtype.LINK,\n target: {\n type: 'action',\n action: {\n type: PdfActionType.URI,\n uri: 'https://localhost',\n },\n },\n text: 'localhost',\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(1);\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(\n (doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation) => {\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 ),\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, flag: PdfPageFlattenFlag) => {\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 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 searchAllPages: (doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]) => {\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>({\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":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, MatchFlag, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rotation, Rect, PdfAttachmentObject, PdfSignatureObject, PdfRenderOptions, PdfInkAnnoObject, Position, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, AppearanceMode, PdfHighlightAnnoObject, PdfStampAnnoObjectContents, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfUrlOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PdfImage, ImageConversionTypes, PdfAnnotationObjectBase, PageTextSlice, WebAlphaColor } from '@embedpdf/models';
1
+ import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, MatchFlag, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rotation, Rect, PdfAttachmentObject, PdfSignatureObject, PdfRenderOptions, PdfInkAnnoObject, Position, PdfCircleAnnoObject, PdfSquareAnnoObject, PdfFreeTextAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, AppearanceMode, PdfHighlightAnnoObject, PdfStampAnnoObjectContents, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfUrlOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PdfImage, ImageConversionTypes, PageTextSlice } from '@embedpdf/models';
2
2
  import { WrappedPdfiumModule } from '@embedpdf/pdfium';
3
3
  /**
4
4
  * Format of bitmap
@@ -322,6 +322,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
322
322
  * @public
323
323
  */
324
324
  free(ptr: number): void;
325
+ addFreeTextContent(page: PdfPageObject, pagePtr: number, annotationPtr: number, annotation: PdfFreeTextAnnoObject): boolean;
325
326
  /**
326
327
  * Set the rect of specified annotation
327
328
  * @param page - page info that the annotation is belonged to
@@ -333,6 +334,39 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
333
334
  * @private
334
335
  */
335
336
  addInkStroke(page: PdfPageObject, pagePtr: number, annotationPtr: number, annotation: PdfInkAnnoObject): boolean;
337
+ /**
338
+ * Add line content to annotation
339
+ * @param page - page info
340
+ * @param pagePtr - pointer to page object
341
+ * @param annotationPtr - pointer to line annotation
342
+ * @param annotation - line annotation
343
+ * @returns whether line content is added to annotation
344
+ *
345
+ * @private
346
+ */
347
+ private addLineContent;
348
+ /**
349
+ * Add polygon or polyline content to annotation
350
+ * @param page - page info
351
+ * @param pagePtr - pointer to page object
352
+ * @param annotationPtr - pointer to polygon or polyline annotation
353
+ * @param annotation - polygon or polyline annotation
354
+ * @returns whether polygon or polyline content is added to annotation
355
+ *
356
+ * @private
357
+ */
358
+ private addPolyContent;
359
+ /**
360
+ * Add shape content to annotation
361
+ * @param page - page info
362
+ * @param pagePtr - pointer to page object
363
+ * @param annotationPtr - pointer to shape annotation
364
+ * @param annotation - shape annotation
365
+ * @returns whether shape content is added to annotation
366
+ *
367
+ * @private
368
+ */
369
+ addShapeContent(page: PdfPageObject, pagePtr: number, annotationPtr: number, annotation: PdfCircleAnnoObject | PdfSquareAnnoObject): boolean;
336
370
  /**
337
371
  * Add highlight content to annotation
338
372
  * @param page - page info
@@ -499,21 +533,15 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
499
533
  */
500
534
  private readAnnotationColor;
501
535
  /**
502
- * Resolve the visible fill colour for **Highlight / Underline / StrikeOut /
503
- * Squiggly** markup annotations.
504
- *
505
- * Resolution order (first non-`undefined` wins):
506
- * 1. `/C` dictionary entry – fast, present in Acrobat / Office PDFs
507
- * 2. Appearance-stream objects – drills into paths & nested forms
508
- * 3. Hard-coded fallback (Acrobat-style opaque yellow)
536
+ * Get the fill/stroke colour annotation.
509
537
  *
510
- * @param annotationPtr - pointer to an `FPDF_ANNOTATION`
511
- * @param fallback - colour to use when the PDF stores no tint at all
512
- * @returns WebAlphaColor with hex color and opacity (0-1)
538
+ * @param annotationPtr - pointer to the annotation whose colour is being set
539
+ * @param colorType - which colour to get (0 = fill, 1 = stroke)
540
+ * @returns WebColor with hex color
513
541
  *
514
542
  * @private
515
543
  */
516
- private resolveAnnotationColor;
544
+ private getAnnotationColor;
517
545
  /**
518
546
  * Set the fill/stroke colour for a **Highlight / Underline / StrikeOut / Squiggly** markup annotation.
519
547
  *
@@ -526,6 +554,78 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
526
554
  * @private
527
555
  */
528
556
  private setAnnotationColor;
557
+ /**
558
+ * Get the opacity of the annotation.
559
+ *
560
+ * @param annotationPtr - pointer to the annotation whose opacity is being set
561
+ * @returns opacity (0-1)
562
+ *
563
+ * @private
564
+ */
565
+ private getAnnotationOpacity;
566
+ /**
567
+ * Set the opacity of the annotation.
568
+ *
569
+ * @param annotationPtr - pointer to the annotation whose opacity is being set
570
+ * @param opacity - opacity (0-1)
571
+ * @returns true on success
572
+ *
573
+ * @private
574
+ */
575
+ private setAnnotationOpacity;
576
+ /**
577
+ * Fetch the `/Q` text-alignment value from a **FreeText** annotation.
578
+ *
579
+ * @param annotationPtr pointer returned by `FPDFPage_GetAnnot`
580
+ * @returns `PdfTextAlignment`
581
+ */
582
+ private getAnnotationTextAlignment;
583
+ /**
584
+ * Write the `/Q` text-alignment value into a **FreeText** annotation
585
+ * and clear the existing appearance stream so it can be regenerated.
586
+ *
587
+ * @param annotationPtr pointer returned by `FPDFPage_GetAnnot`
588
+ * @param alignment `PdfTextAlignment`
589
+ * @returns `true` on success
590
+ */
591
+ private setAnnotationTextAlignment;
592
+ /**
593
+ * Fetch the `/EPDF:VerticalAlignment` vertical-alignment value from a **FreeText** annotation.
594
+ *
595
+ * @param annotationPtr pointer returned by `FPDFPage_GetAnnot`
596
+ * @returns `PdfVerticalAlignment`
597
+ */
598
+ private getAnnotationVerticalAlignment;
599
+ /**
600
+ * Write the `/EPDF:VerticalAlignment` vertical-alignment value into a **FreeText** annotation
601
+ * and clear the existing appearance stream so it can be regenerated.
602
+ *
603
+ * @param annotationPtr pointer returned by `FPDFPage_GetAnnot`
604
+ * @param alignment `PdfVerticalAlignment`
605
+ * @returns `true` on success
606
+ */
607
+ private setAnnotationVerticalAlignment;
608
+ /**
609
+ * Return the **default appearance** (font, size, colour) declared in the
610
+ * `/DA` string of a **FreeText** annotation.
611
+ *
612
+ * @param annotationPtr pointer to `FPDF_ANNOTATION`
613
+ * @returns `{ font, fontSize, color }` or `undefined` when PDFium returns false
614
+ *
615
+ * NOTE – `font` is the raw `FPDF_STANDARD_FONT` enum value that PDFium uses
616
+ * (same range as the C API: 0 = Courier, 12 = ZapfDingbats, …).
617
+ */
618
+ private getAnnotationDefaultAppearance;
619
+ /**
620
+ * Write a **default appearance** (`/DA`) into a FreeText annotation.
621
+ *
622
+ * @param annotationPtr pointer to `FPDF_ANNOTATION`
623
+ * @param font `FPDF_STANDARD_FONT` enum value
624
+ * @param fontSize size in points (≥ 0)
625
+ * @param color CSS-style `#rrggbb` string (alpha ignored)
626
+ * @returns `true` on success
627
+ */
628
+ private setAnnotationDefaultAppearance;
529
629
  /**
530
630
  * Border‐style + width helper
531
631
  *
@@ -577,6 +677,51 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
577
677
  * • `pattern` – numeric array of dash/space lengths (empty when `ok` is false)
578
678
  */
579
679
  private getBorderDashPattern;
680
+ /**
681
+ * Write the /BS /D dash pattern array for an annotation border.
682
+ *
683
+ * @param annotationPtr Pointer to FPDF_ANNOTATION
684
+ * @param pattern Array of dash/space lengths in *points* (e.g. [3, 2])
685
+ * Empty array clears the pattern (solid line).
686
+ * @returns true on success
687
+ *
688
+ * @private
689
+ */
690
+ private setBorderDashPattern;
691
+ /**
692
+ * Return the `/LE` array (start/end line-ending styles) for a LINE / POLYLINE annot.
693
+ *
694
+ * @param annotationPtr - pointer to an `FPDF_ANNOTATION`
695
+ * @returns `{ start, end }` or `undefined` when PDFium can't read them
696
+ *
697
+ * @private
698
+ */
699
+ private getLineEndings;
700
+ /**
701
+ * Write the `/LE` array (start/end line-ending styles) for a LINE / POLYLINE annot.
702
+ * @param annotationPtr - pointer to an `FPDF_ANNOTATION`
703
+ * @param start - start line ending style
704
+ * @param end - end line ending style
705
+ * @returns `true` on success
706
+ */
707
+ private setLineEndings;
708
+ /**
709
+ * Get the start and end points of a LINE / POLYLINE annot.
710
+ * @param annotationPtr - pointer to an `FPDF_ANNOTATION`
711
+ * @param page - logical page info object (`PdfPageObject`)
712
+ * @returns `{ start, end }` or `undefined` when PDFium can't read them
713
+ */
714
+ private getLinePoints;
715
+ /**
716
+ * Set the two end‑points of a **Line** annotation
717
+ * by writing a new /L array `[ x1 y1 x2 y2 ]`.
718
+ * @param page - logical page info object (`PdfPageObject`)
719
+ * @param annotPtr - pointer to the annotation whose line points are needed
720
+ * @param start - start point
721
+ * @param end - end point
722
+ * @returns true on success
723
+ */
724
+ private setLinePoints;
580
725
  /**
581
726
  * Read `/QuadPoints` from any annotation and convert each quadrilateral to
582
727
  * device-space coordinates.
@@ -856,6 +1001,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
856
1001
  * • `flags` – object with individual booleans
857
1002
  */
858
1003
  private getAnnotationFlags;
1004
+ private setAnnotationFlags;
859
1005
  /**
860
1006
  * Read circle annotation
861
1007
  * @param page - pdf page infor
@@ -915,6 +1061,17 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
915
1061
  * Returns `undefined` if no intent present.
916
1062
  */
917
1063
  private getAnnotIntent;
1064
+ /**
1065
+ * Write the `/IT` (Intent) name into an annotation dictionary.
1066
+ *
1067
+ * Mirrors EPDFAnnot_SetIntent in PDFium (expects a UTF‑8 FPDF_BYTESTRING).
1068
+ *
1069
+ * @param annotationPtr Pointer returned by FPDFPage_GetAnnot
1070
+ * @param intent Name without leading slash, e.g. `"PolygonCloud"`
1071
+ * A leading “/” will be stripped for convenience.
1072
+ * @returns true on success, false otherwise
1073
+ */
1074
+ private setAnnotIntent;
918
1075
  /**
919
1076
  * Returns the rich‑content string stored in the annotation’s `/RC` entry.
920
1077
  *
@@ -940,6 +1097,17 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
940
1097
  * @private
941
1098
  */
942
1099
  private readPdfAnnoVertices;
1100
+ /**
1101
+ * Sync the vertices of a polygon or polyline annotation.
1102
+ *
1103
+ * @param page - pdf page infor
1104
+ * @param annotPtr - pointer to pdf annotation
1105
+ * @param vertices - the vertices to be set
1106
+ * @returns true on success
1107
+ *
1108
+ * @private
1109
+ */
1110
+ private setPdfAnnoVertices;
943
1111
  /**
944
1112
  * Read the target of pdf bookmark
945
1113
  * @param docPtr - pointer to pdf document object
@@ -1062,23 +1230,6 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
1062
1230
  * @private
1063
1231
  */
1064
1232
  private readPageAnnoAppearanceStream;
1065
- /**
1066
- * Change the visible colour (and opacity) of an existing annotation.
1067
- *
1068
- * For markup annotations (highlight / underline / strikeout / squiggly) we
1069
- * first clear the AP dictionary entry, otherwise the stored appearance stream
1070
- * will override the new tint. For all other sub-types we keep the existing
1071
- * AP so custom artwork isn't lost.
1072
- *
1073
- * @param doc logical document object
1074
- * @param page logical page object
1075
- * @param annotation the annotation we want to recolour
1076
- * @param colour RGBA tuple (0-255 per channel)
1077
- * @param which 0 = stroke/fill colour (PDFium's "colourType" param)
1078
- *
1079
- * @returns `true` when the operation succeeded
1080
- */
1081
- updateAnnotationColor(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObjectBase, color: WebAlphaColor, which?: number): PdfTask<boolean>;
1082
1233
  /**
1083
1234
  * Set the rect of specified annotation
1084
1235
  * @param page - page info that the annotation is belonged to
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-B7CS6Qyp.cjs"),e=require("../../runner-BcS-WEof.cjs");exports.BitmapFormat=r.BitmapFormat,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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-1ZSXSAtm.cjs"),e=require("../../runner-Br_PKNmU.cjs");exports.BitmapFormat=r.BitmapFormat,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
@@ -1,5 +1,5 @@
1
- import { B, a, P, R, b, c, r } from "../../engine-M0_XZhss.js";
2
- import { P as P2 } from "../../runner-DUp_7Uu_.js";
1
+ import { B, a, P, R, b, c, r } from "../../engine-O49988D4.js";
2
+ import { P as P2 } from "../../runner-CABEqeFp.js";
3
3
  export {
4
4
  B as BitmapFormat,
5
5
  a as PdfiumEngine,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-B7CS6Qyp.cjs");exports.createPdfiumEngine=async function(t,n){const r=await fetch(t),a=await r.arrayBuffer(),u=await e.init({wasmBinary:a});return new i.PdfiumEngine(u,n)};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-1ZSXSAtm.cjs");exports.createPdfiumEngine=async function(t,n){const r=await fetch(t),a=await r.arrayBuffer(),u=await e.init({wasmBinary:a});return new i.PdfiumEngine(u,n)};
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-M0_XZhss.js";
2
+ import { a as PdfiumEngine } from "../../../engine-O49988D4.js";
3
3
  async function createPdfiumEngine(wasmUrl, logger) {
4
4
  const response = await fetch(wasmUrl);
5
5
  const wasmBinary = await response.arrayBuffer();