@embedpdf/engine-services 3.0.0-next.6 → 3.0.0-next.8

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/index.cjs CHANGED
@@ -9251,9 +9251,10 @@ function validatePatchValue(key, value) {
9251
9251
  * worker wire shape from @embedpdf/engine-core.
9252
9252
  */
9253
9253
  var WorkerHost = class {
9254
- constructor(runtime, post) {
9254
+ constructor(runtime, post, options = {}) {
9255
9255
  this.runtime = runtime;
9256
9256
  this.post = post;
9257
+ this.options = options;
9257
9258
  _defineProperty(this, "sessions", /* @__PURE__ */ new Map());
9258
9259
  _defineProperty(this, "baseDocuments", void 0);
9259
9260
  _defineProperty(this, "aborts", /* @__PURE__ */ new Map());
@@ -9279,6 +9280,10 @@ var WorkerHost = class {
9279
9280
  this.aborts.get(msg.jobId)?.abort();
9280
9281
  return;
9281
9282
  }
9283
+ if (msg.kind === "pages.renderEncoded" || msg.kind === "document.renderPageFileEncoded" || msg.kind === "annotations.renderAppearancesEncoded") {
9284
+ this.receiveEncoded(msg);
9285
+ return;
9286
+ }
9282
9287
  const ctrl = new AbortController();
9283
9288
  this.aborts.set(msg.jobId, ctrl);
9284
9289
  let resultPack;
@@ -9766,6 +9771,105 @@ var WorkerHost = class {
9766
9771
  raster
9767
9772
  }, [raster.data]);
9768
9773
  }
9774
+ async receiveEncoded(msg) {
9775
+ if (!this.options.imageEncoder) {
9776
+ this.post((0, _embedpdf_engine_core_runtime.wirePack)({
9777
+ kind: "reject",
9778
+ jobId: msg.jobId,
9779
+ error: (0, _embedpdf_engine_core_runtime.serializeError)(new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.NotImplemented, "this engine has no image encoder (the *.renderEncoded kinds are cloud-server surface)"))
9780
+ }, _embedpdf_engine_core_runtime.EMPTY_TRANSFER));
9781
+ return;
9782
+ }
9783
+ const ctrl = new AbortController();
9784
+ this.aborts.set(msg.jobId, ctrl);
9785
+ try {
9786
+ let resultPack;
9787
+ switch (msg.kind) {
9788
+ case "pages.renderEncoded":
9789
+ resultPack = await this.handlePagesRenderEncoded(msg, ctrl.signal);
9790
+ break;
9791
+ case "document.renderPageFileEncoded":
9792
+ resultPack = await this.handleDocumentRenderPageFileEncoded(msg, ctrl.signal);
9793
+ break;
9794
+ case "annotations.renderAppearancesEncoded":
9795
+ resultPack = await this.handleAnnotationsRenderAppearancesEncoded(msg, ctrl.signal);
9796
+ break;
9797
+ }
9798
+ this.post((0, _embedpdf_engine_core_runtime.wirePack)({
9799
+ kind: "resolve",
9800
+ jobId: msg.jobId,
9801
+ result: resultPack.payload
9802
+ }, resultPack.transfer));
9803
+ } catch (err) {
9804
+ this.post((0, _embedpdf_engine_core_runtime.wirePack)({
9805
+ kind: "reject",
9806
+ jobId: msg.jobId,
9807
+ error: (0, _embedpdf_engine_core_runtime.serializeError)(err)
9808
+ }, _embedpdf_engine_core_runtime.EMPTY_TRANSFER));
9809
+ } finally {
9810
+ this.aborts.delete(msg.jobId);
9811
+ }
9812
+ }
9813
+ async encodeRaster(raster, encode, signal) {
9814
+ const encoder = this.options.imageEncoder;
9815
+ if (!encoder) throw new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.NotImplemented, "this engine has no image encoder (the *.renderEncoded kinds are cloud-server surface)");
9816
+ const { bytes, contentType } = await encoder.encode(raster, encode);
9817
+ if (signal.aborted) throw new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.Aborted, "aborted during image encode");
9818
+ return {
9819
+ contentType,
9820
+ width: raster.width,
9821
+ height: raster.height,
9822
+ bytes
9823
+ };
9824
+ }
9825
+ async handlePagesRenderEncoded(req, signal) {
9826
+ const inner = this.handlePagesRender({
9827
+ ...req,
9828
+ kind: "pages.render"
9829
+ }, signal);
9830
+ if (inner.payload.tag !== "pages.render") throw new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.WireFormat, `unexpected ${inner.payload.tag}`);
9831
+ const image = await this.encodeRaster(inner.payload.raster, req.encode, signal);
9832
+ return (0, _embedpdf_engine_core_runtime.wirePack)({
9833
+ tag: "pages.renderEncoded",
9834
+ image
9835
+ }, [image.bytes.buffer]);
9836
+ }
9837
+ async handleDocumentRenderPageFileEncoded(req, signal) {
9838
+ const inner = this.handleDocumentRenderPageFile({
9839
+ ...req,
9840
+ kind: "document.renderPageFile"
9841
+ }, signal);
9842
+ if (inner.payload.tag !== "document.renderPageFile") throw new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.WireFormat, `unexpected ${inner.payload.tag}`);
9843
+ const image = await this.encodeRaster(inner.payload.raster, req.encode, signal);
9844
+ return (0, _embedpdf_engine_core_runtime.wirePack)({
9845
+ tag: "document.renderPageFileEncoded",
9846
+ pageObjectNumber: inner.payload.pageObjectNumber,
9847
+ pageCount: inner.payload.pageCount,
9848
+ image
9849
+ }, [image.bytes.buffer]);
9850
+ }
9851
+ async handleAnnotationsRenderAppearancesEncoded(req, signal) {
9852
+ const inner = this.handleAnnotationsRenderAppearances({
9853
+ ...req,
9854
+ kind: "annotations.renderAppearances"
9855
+ }, signal);
9856
+ if (inner.payload.tag !== "annotations.renderAppearances") throw new _embedpdf_engine_core_runtime.EngineError(_embedpdf_engine_core_runtime.EngineErrorCode.WireFormat, `unexpected ${inner.payload.tag}`);
9857
+ const { pageState, appearances } = inner.payload.result;
9858
+ const encoded = [];
9859
+ for (const a of appearances) encoded.push({
9860
+ ref: a.ref,
9861
+ mode: a.mode,
9862
+ rect: a.rect,
9863
+ image: await this.encodeRaster(a.raster, req.encode, signal)
9864
+ });
9865
+ return (0, _embedpdf_engine_core_runtime.wirePack)({
9866
+ tag: "annotations.renderAppearancesEncoded",
9867
+ result: {
9868
+ pageState,
9869
+ appearances: encoded
9870
+ }
9871
+ }, encoded.map((e) => e.image.bytes.buffer));
9872
+ }
9769
9873
  handleDocumentSaveBuffer(req) {
9770
9874
  const session = this.requireSession(req);
9771
9875
  const saved = new DocumentSaver(this.runtime, session).saveStandaloneToBuffer(req.mode);