@embedpdf/engines 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/direct-engine-CGBAQS04.cjs +2 -0
- package/dist/direct-engine-CGBAQS04.cjs.map +1 -0
- package/dist/{direct-engine-CB3k-o0I.js → direct-engine-DGRkMlJ8.js} +120 -3
- package/dist/direct-engine-DGRkMlJ8.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/orchestrator/pdf-engine.d.ts +20 -0
- package/dist/lib/orchestrator/remote-executor.d.ts +5 -0
- package/dist/lib/pdfium/engine.d.ts +51 -0
- package/dist/lib/pdfium/index.cjs +1 -1
- package/dist/lib/pdfium/index.js +3 -3
- package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
- package/dist/lib/pdfium/web/direct-engine.js +2 -2
- package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
- package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -1
- package/dist/lib/pdfium/web/worker-engine.js +22 -2
- package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
- package/dist/lib/webworker/engine.cjs +1 -1
- package/dist/lib/webworker/engine.cjs.map +1 -1
- package/dist/lib/webworker/engine.d.ts +30 -0
- package/dist/lib/webworker/engine.js +73 -0
- package/dist/lib/webworker/engine.js.map +1 -1
- package/dist/{pdf-engine-BVNF_Yo9.js → pdf-engine-ChjNHvQd.js} +61 -1
- package/dist/{pdf-engine-BVNF_Yo9.js.map → pdf-engine-ChjNHvQd.js.map} +1 -1
- package/dist/pdf-engine-DgNNP62W.cjs +2 -0
- package/dist/{pdf-engine-C3JeKij1.cjs.map → pdf-engine-DgNNP62W.cjs.map} +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/svelte/index.cjs +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +4 -4
- package/dist/direct-engine-BeZ18SKz.cjs +0 -2
- package/dist/direct-engine-BeZ18SKz.cjs.map +0 -1
- package/dist/direct-engine-CB3k-o0I.js.map +0 -1
- package/dist/pdf-engine-C3JeKij1.cjs +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("@embedpdf/models"),t="TaskQueue",r="Queue";var i=(e=>(e[e.CRITICAL=3]="CRITICAL",e[e.HIGH=2]="HIGH",e[e.MEDIUM=1]="MEDIUM",e[e.LOW=0]="LOW",e))(i||{});class o{constructor(t={}){this.queue=[],this.running=0,this.resultTasks=new Map,this.idleListeners=new Set;const{concurrency:r=1,comparator:i,ranker:o,onIdle:n,maxQueueSize:s,autoStart:u=!0,logger:a}=t;this.logger=a??new e.NoopLogger,this.opts={concurrency:Math.max(1,r),comparator:i,ranker:o,onIdle:n??(()=>{}),maxQueueSize:s??Number.POSITIVE_INFINITY,autoStart:u}}setComparator(e){this.opts.comparator=e}setRanker(e){this.opts.ranker=e}size(){return this.queue.length}inFlight(){return this.running}isIdle(){return 0===this.queue.length&&0===this.running}async drain(){this.isIdle()||await new Promise(e=>{const t=()=>{this.isIdle()&&(this.offIdle(t),e())};this.onIdle(t)})}notifyIdle(){this.isIdle()&&([...this.idleListeners].forEach(e=>e()),this.idleListeners.clear(),this.opts.onIdle())}onIdle(e){this.idleListeners.add(e)}offIdle(e){this.idleListeners.delete(e)}enqueue(i,o={}){const n=this.generateId(),s=o.priority??1,u=new e.Task;if(this.queue.length>=this.opts.maxQueueSize){const e=new Error("Queue is full (maxQueueSize reached).");return u.reject(e),u}this.resultTasks.set(n,u);const a={id:n,priority:s,meta:o.meta??i.meta,executeFactory:i.execute};this.queue.push(a),this.logger.debug(t,r,`Task enqueued: ${n} | Priority: ${s} | Running: ${this.running} | Queued: ${this.queue.length}`);const c=u.abort.bind(u);return u.abort=e=>{this.logger.debug(t,r,`Task aborted: ${n}`),this.cancel(n),c(e)},this.opts.autoStart&&this.process(!0===o.fifo),u}cancel(e){const i=this.queue.length;this.queue=this.queue.filter(t=>t.id!==e||(t.cancelled=!0,!1)),this.resultTasks.delete(e),i!==this.queue.length&&(this.logger.debug(t,r,`Task cancelled and removed: ${e}`),this.kick())}kick(){queueMicrotask(()=>this.process())}async process(e=!1){for(this.logger.debug(t,r,`process() called | Running: ${this.running} | Concurrency: ${this.opts.concurrency} | Queued: ${this.queue.length}`);this.running<this.opts.concurrency&&this.queue.length>0;){this.logger.debug(t,r,`Starting new task | Running: ${this.running} | Queued: ${this.queue.length}`),e||this.sortQueue();const i=this.queue.shift();if(i.cancelled){this.logger.debug(t,r,`Skipping cancelled task: ${i.id}`);continue}const o=this.resultTasks.get(i.id);o&&(this.running++,(async()=>{let e=null;try{if(e=i.executeFactory(),!e)throw new Error("Task factory returned null/undefined");e.wait(e=>{0===o.state.stage&&o.resolve(e)},e=>{0===o.state.stage&&("abort"===e.type?o.abort(e.reason):o.reject(e.reason))}),e.onProgress(e=>{o.progress(e)}),await e.toPromise()}catch(n){0===o.state.stage&&o.reject(n)}finally{this.resultTasks.delete(i.id),this.running--,this.logger.debug(t,r,`Task completed: ${i.id} | Running: ${this.running} | Queued: ${this.queue.length}`),this.isIdle()?this.notifyIdle():this.queue.length>0&&this.kick()}})().catch(e=>{this.logger.error(t,r,"Unhandled error in task execution wrapper:",e),this.running=Math.max(0,this.running-1),this.isIdle()?this.notifyIdle():this.queue.length>0&&this.kick()}))}}sortQueue(){const{comparator:e,ranker:t}=this.opts;if(e)return void this.queue.sort(e);const r=new Map,i=e=>t?(r.has(e.id)||r.set(e.id,t(e)),r.get(e.id)):this.defaultRank(e);this.queue.sort((e,t)=>{if(e.priority!==t.priority)return t.priority-e.priority;const r=i(e),o=i(t);return r!==o?o-r:this.extractTime(e.id)-this.extractTime(t.id)})}defaultRank(e){return 0}generateId(){return"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`}extractTime(e){const t=Number(e.split("-")[0]);return Number.isFinite(t)?t:0}}const n="PdfEngine",s="Orchestrator";exports.PdfEngine=class{constructor(t,r){this.executor=t,this.logger=r.logger??new e.NoopLogger,this.options={imageConverter:r.imageConverter,fetcher:r.fetcher??("undefined"!=typeof fetch?(e,t)=>fetch(e,t):void 0),logger:this.logger},this.workerQueue=new o({concurrency:1,autoStart:!0,logger:this.logger}),this.logger.debug(n,s,"PdfEngine orchestrator created")}chunkArray(e,t){const r=[];for(let i=0;i<e.length;i+=t)r.push(e.slice(i,i+t));return r}isSupport(t){const r=new e.Task;return r.resolve([e.PdfEngineOperation.Create,e.PdfEngineOperation.Read,e.PdfEngineOperation.Update,e.PdfEngineOperation.Delete]),r}destroy(){const t=new e.Task;try{this.executor.destroy(),t.resolve(!0)}catch(r){t.reject({code:e.PdfErrorCode.Unknown,message:String(r)})}return t}openDocumentUrl(t,r){const i=new e.Task;return(async()=>{try{if(!this.options.fetcher)throw new Error("Fetcher is not set");const e=await this.options.fetcher(t.url,null==r?void 0:r.requestOptions),o=await e.arrayBuffer(),n={id:t.id,content:o};this.openDocumentBuffer(n,{password:null==r?void 0:r.password}).wait(e=>i.resolve(e),e=>i.fail(e))}catch(o){i.reject({code:e.PdfErrorCode.Unknown,message:String(o)})}})(),i}openDocumentBuffer(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.openDocumentBuffer(e,t),meta:{docId:e.id,operation:"openDocumentBuffer"}},{priority:i.CRITICAL})}getMetadata(e){return this.workerQueue.enqueue({execute:()=>this.executor.getMetadata(e),meta:{docId:e.id,operation:"getMetadata"}},{priority:i.MEDIUM})}setMetadata(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.setMetadata(e,t),meta:{docId:e.id,operation:"setMetadata"}},{priority:i.MEDIUM})}getDocPermissions(e){return this.workerQueue.enqueue({execute:()=>this.executor.getDocPermissions(e),meta:{docId:e.id,operation:"getDocPermissions"}},{priority:i.MEDIUM})}getDocUserPermissions(e){return this.workerQueue.enqueue({execute:()=>this.executor.getDocUserPermissions(e),meta:{docId:e.id,operation:"getDocUserPermissions"}},{priority:i.MEDIUM})}getSignatures(e){return this.workerQueue.enqueue({execute:()=>this.executor.getSignatures(e),meta:{docId:e.id,operation:"getSignatures"}},{priority:i.MEDIUM})}getBookmarks(e){return this.workerQueue.enqueue({execute:()=>this.executor.getBookmarks(e),meta:{docId:e.id,operation:"getBookmarks"}},{priority:i.MEDIUM})}setBookmarks(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.setBookmarks(e,t),meta:{docId:e.id,operation:"setBookmarks"}},{priority:i.MEDIUM})}deleteBookmarks(e){return this.workerQueue.enqueue({execute:()=>this.executor.deleteBookmarks(e),meta:{docId:e.id,operation:"deleteBookmarks"}},{priority:i.MEDIUM})}renderPage(e,t,r){return this.renderWithEncoding(()=>this.executor.renderPageRaw(e,t,r),r,e.id,t.index,i.CRITICAL)}renderPageRect(e,t,r,o){return this.renderWithEncoding(()=>this.executor.renderPageRect(e,t,r,o),o,e.id,t.index,i.HIGH)}renderThumbnail(e,t,r){return this.renderWithEncoding(()=>this.executor.renderThumbnailRaw(e,t,r),r,e.id,t.index,i.MEDIUM)}renderPageAnnotation(e,t,r,o){return this.renderWithEncoding(()=>this.executor.renderPageAnnotationRaw(e,t,r,o),o,e.id,t.index,i.MEDIUM)}renderWithEncoding(t,r,o,n,s=i.CRITICAL){const u=new e.Task,a=this.workerQueue.enqueue({execute:()=>t(),meta:{docId:o,pageIndex:n,operation:"render"}},{priority:s}),c=u.abort.bind(u);return u.abort=e=>{a.abort(e),c(e)},a.wait(e=>{0===u.state.stage&&this.encodeImage(e,r,u)},e=>{0===u.state.stage&&u.fail(e)}),u}encodeImage(t,r,i){const o=(null==r?void 0:r.imageType)??"image/webp",n=null==r?void 0:r.quality,s={data:new Uint8ClampedArray(t.data),width:t.width,height:t.height};this.options.imageConverter(()=>s,o,n).then(e=>i.resolve(e)).catch(t=>i.reject({code:e.PdfErrorCode.Unknown,message:String(t)}))}getPageAnnotations(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageAnnotations(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageAnnotations"}},{priority:i.MEDIUM})}createPageAnnotation(e,t,r,o){return this.workerQueue.enqueue({execute:()=>this.executor.createPageAnnotation(e,t,r,o),meta:{docId:e.id,pageIndex:t.index,operation:"createPageAnnotation"}},{priority:i.MEDIUM})}updatePageAnnotation(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.updatePageAnnotation(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"updatePageAnnotation"}},{priority:i.MEDIUM})}removePageAnnotation(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.removePageAnnotation(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"removePageAnnotation"}},{priority:i.MEDIUM})}getAllAnnotations(t){const r=this.chunkArray(t.pages,500);this.logger.debug(n,s,`getAllAnnotations: ${t.pages.length} pages in ${r.length} chunks`);const o=new e.CompoundTask({aggregate:e=>Object.assign({},...e)});return r.forEach((e,r)=>{const n=this.workerQueue.enqueue({execute:()=>this.executor.getAnnotationsBatch(t,e),meta:{docId:t.id,operation:"getAnnotationsBatch",chunkSize:e.length}},{priority:i.LOW});n.onProgress(e=>{o.progress({page:e.pageIndex,result:e.result})}),o.addChild(n,r)}),o.finalize(),o}getPageTextRects(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageTextRects(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageTextRects"}},{priority:i.MEDIUM})}searchAllPages(t,r,o){const u=Array.isArray(null==o?void 0:o.flags)?o.flags.reduce((e,t)=>e|t,0):(null==o?void 0:o.flags)??0,a=this.chunkArray(t.pages,25);this.logger.debug(n,s,`searchAllPages: ${t.pages.length} pages in ${a.length} chunks`);const c=new e.CompoundTask({aggregate:e=>{const t=e.flatMap(e=>Object.values(e).flat());return{results:t,total:t.length}}});return a.forEach((e,o)=>{const n=this.workerQueue.enqueue({execute:()=>this.executor.searchBatch(t,e,r,u),meta:{docId:t.id,operation:"searchBatch",chunkSize:e.length}},{priority:i.LOW});n.onProgress(e=>{c.progress({page:e.pageIndex,results:e.result})}),c.addChild(n,o)}),c.finalize(),c}getAttachments(e){return this.workerQueue.enqueue({execute:()=>this.executor.getAttachments(e),meta:{docId:e.id,operation:"getAttachments"}},{priority:i.MEDIUM})}addAttachment(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.addAttachment(e,t),meta:{docId:e.id,operation:"addAttachment"}},{priority:i.MEDIUM})}removeAttachment(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.removeAttachment(e,t),meta:{docId:e.id,operation:"removeAttachment"}},{priority:i.MEDIUM})}readAttachmentContent(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.readAttachmentContent(e,t),meta:{docId:e.id,operation:"readAttachmentContent"}},{priority:i.MEDIUM})}setFormFieldValue(e,t,r,o){return this.workerQueue.enqueue({execute:()=>this.executor.setFormFieldValue(e,t,r,o),meta:{docId:e.id,pageIndex:t.index,operation:"setFormFieldValue"}},{priority:i.MEDIUM})}flattenPage(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.flattenPage(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"flattenPage"}},{priority:i.MEDIUM})}extractPages(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.extractPages(e,t),meta:{docId:e.id,pageIndexes:t,operation:"extractPages"}},{priority:i.MEDIUM})}extractText(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.extractText(e,t),meta:{docId:e.id,pageIndexes:t,operation:"extractText"}},{priority:i.MEDIUM})}redactTextInRects(e,t,r,o){return this.workerQueue.enqueue({execute:()=>this.executor.redactTextInRects(e,t,r,o),meta:{docId:e.id,pageIndex:t.index,operation:"redactTextInRects"}},{priority:i.MEDIUM})}getTextSlices(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getTextSlices(e,t),meta:{docId:e.id,slices:t,operation:"getTextSlices"}},{priority:i.MEDIUM})}getPageGlyphs(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageGlyphs(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageGlyphs"}},{priority:i.MEDIUM})}getPageGeometry(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageGeometry(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageGeometry"}},{priority:i.MEDIUM})}merge(e){return this.workerQueue.enqueue({execute:()=>this.executor.merge(e),meta:{docId:e.map(e=>e.id).join(","),operation:"merge"}},{priority:i.MEDIUM})}mergePages(e){return this.workerQueue.enqueue({execute:()=>this.executor.mergePages(e),meta:{docId:e.map(e=>e.docId).join(","),operation:"mergePages"}},{priority:i.MEDIUM})}preparePrintDocument(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.preparePrintDocument(e,t),meta:{docId:e.id,operation:"preparePrintDocument"}},{priority:i.MEDIUM})}saveAsCopy(e){return this.workerQueue.enqueue({execute:()=>this.executor.saveAsCopy(e),meta:{docId:e.id,operation:"saveAsCopy"}},{priority:i.MEDIUM})}closeDocument(e){return this.workerQueue.enqueue({execute:()=>this.executor.closeDocument(e),meta:{docId:e.id,operation:"closeDocument"}},{priority:i.MEDIUM})}closeAllDocuments(){return this.workerQueue.enqueue({execute:()=>this.executor.closeAllDocuments(),meta:{operation:"closeAllDocuments"}},{priority:i.MEDIUM})}};
|
|
2
|
-
//# sourceMappingURL=pdf-engine-C3JeKij1.cjs.map
|