@chialab/pdfjs-lib 1.0.0-alpha.11 → 1.0.0-alpha.12

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 (32) hide show
  1. package/dist/browser/{chunk-AK2AE3GS.js → chunk-TKDBOXH4.js} +31 -39
  2. package/dist/browser/index.js +614 -493
  3. package/dist/browser/openjpeg-K2XBCFFN.js +9 -0
  4. package/dist/browser/qcms_bg-Q7BRLLZG.js +9 -0
  5. package/dist/browser/worker.js +1260 -1121
  6. package/dist/lib/utils.d.ts +6 -0
  7. package/dist/node/{chunk-WL32POZ2.js → chunk-MAMMG4XK.js} +31 -39
  8. package/dist/node/index.js +755 -495
  9. package/dist/node/openjpeg-B2WN24QZ.js +9 -0
  10. package/dist/node/qcms_bg-T4RSHPOQ.js +9 -0
  11. package/dist/node/worker.js +1260 -1121
  12. package/dist/pdf.js/src/display/annotation_storage.d.ts +1 -8
  13. package/dist/pdf.js/src/display/api.d.ts +10 -69
  14. package/dist/pdf.js/src/display/api_utils.d.ts +13 -0
  15. package/dist/pdf.js/src/display/canvas.d.ts +2 -2
  16. package/dist/pdf.js/src/display/display_utils.d.ts +2 -1
  17. package/dist/pdf.js/src/display/editor/annotation_editor_layer.d.ts +4 -4
  18. package/dist/pdf.js/src/display/editor/editor.d.ts +17 -3
  19. package/dist/pdf.js/src/display/editor/freetext.d.ts +2 -5
  20. package/dist/pdf.js/src/display/editor/tools.d.ts +2 -1
  21. package/dist/pdf.js/src/display/metadata.d.ts +1 -2
  22. package/dist/pdf.js/src/display/optional_content_config.d.ts +1 -1
  23. package/dist/pdf.js/src/display/pdf_objects.d.ts +40 -0
  24. package/dist/pdf.js/src/display/text_layer.d.ts +9 -9
  25. package/dist/pdf.js/src/display/worker_options.d.ts +2 -2
  26. package/dist/pdf.js/src/pdf.d.ts +3 -2
  27. package/dist/pdf.js/src/shared/util.d.ts +12 -5
  28. package/package.json +1 -1
  29. package/dist/browser/openjpeg-NLAGCGEG.js +0 -9
  30. package/dist/browser/qcms_bg-EPYCMBVV.js +0 -9
  31. package/dist/node/openjpeg-O3KQE6R6.js +0 -9
  32. package/dist/node/qcms_bg-5Z325MLG.js +0 -9
@@ -36,16 +36,16 @@ import {
36
36
  info,
37
37
  isNodeJS,
38
38
  normalizeUnicode,
39
- objectFromMap,
40
39
  setVerbosityLevel,
41
40
  shadow,
42
41
  string32,
43
42
  stringToBytes,
44
43
  toBase64Util,
45
44
  unreachable,
45
+ updateUrlHash,
46
46
  warn,
47
47
  wrapReason
48
- } from "./chunk-AK2AE3GS.js";
48
+ } from "./chunk-TKDBOXH4.js";
49
49
  import {
50
50
  __privateAdd,
51
51
  __privateGet,
@@ -367,6 +367,9 @@ function stopEvent(e) {
367
367
  e.preventDefault();
368
368
  e.stopPropagation();
369
369
  }
370
+ function deprecated(details) {
371
+ console.log("Deprecated API usage: " + details);
372
+ }
370
373
  var _regex;
371
374
  var PDFDateString = class {
372
375
  /**
@@ -464,6 +467,7 @@ function getRGB(color) {
464
467
  function getColorValues(colors) {
465
468
  const span = document.createElement("span");
466
469
  span.style.visibility = "hidden";
470
+ span.style.colorScheme = "only light";
467
471
  document.body.append(span);
468
472
  for (const name of colors.keys()) {
469
473
  span.style.color = name;
@@ -522,8 +526,9 @@ var OutputScale = class _OutputScale {
522
526
  * @returns {boolean} Returns `true` if scaling was limited,
523
527
  * `false` otherwise.
524
528
  */
525
- limitCanvas(width, height, maxPixels, maxDim) {
529
+ limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {
526
530
  let maxAreaScale = Infinity, maxWidthScale = Infinity, maxHeightScale = Infinity;
531
+ maxPixels = _OutputScale.capPixels(maxPixels, capAreaFactor);
527
532
  if (maxPixels > 0) {
528
533
  maxAreaScale = Math.sqrt(maxPixels / (width * height));
529
534
  }
@@ -542,6 +547,15 @@ var OutputScale = class _OutputScale {
542
547
  static get pixelRatio() {
543
548
  return globalThis.devicePixelRatio || 1;
544
549
  }
550
+ static capPixels(maxPixels, capAreaFactor) {
551
+ if (capAreaFactor >= 0) {
552
+ const winPixels = Math.ceil(
553
+ (false ? window.innerWidth * window.innerHeight : window.screen.availWidth * window.screen.availHeight) * this.pixelRatio ** 2 * (1 + capAreaFactor / 100)
554
+ );
555
+ return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;
556
+ }
557
+ return maxPixels;
558
+ }
545
559
  };
546
560
  var SupportedImageMimeTypes = [
547
561
  "image/apng",
@@ -1950,6 +1964,7 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
1950
1964
  }
1951
1965
  }
1952
1966
  __privateSet(this, _updateModeCapability, Promise.withResolvers());
1967
+ __privateGet(this, _currentDrawingSession)?.commitOrRemove();
1953
1968
  __privateSet(this, _mode, mode);
1954
1969
  if (mode === AnnotationEditorType.NONE) {
1955
1970
  this.setEditingState(false);
@@ -1975,7 +1990,7 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
1975
1990
  return;
1976
1991
  }
1977
1992
  for (const editor of __privateGet(this, _allEditors).values()) {
1978
- if (editor.annotationElementId === editId) {
1993
+ if (editor.annotationElementId === editId || editor.id === editId) {
1979
1994
  this.setSelected(editor);
1980
1995
  editor.enterInEditMode();
1981
1996
  } else {
@@ -1991,16 +2006,17 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
1991
2006
  }
1992
2007
  /**
1993
2008
  * Update the toolbar if it's required to reflect the tool currently used.
2009
+ * @param {Object} options
1994
2010
  * @param {number} mode
1995
2011
  * @returns {undefined}
1996
2012
  */
1997
- updateToolbar(mode) {
1998
- if (mode === __privateGet(this, _mode)) {
2013
+ updateToolbar(options) {
2014
+ if (options.mode === __privateGet(this, _mode)) {
1999
2015
  return;
2000
2016
  }
2001
2017
  this._eventBus.dispatch("switchannotationeditormode", {
2002
2018
  source: this,
2003
- mode
2019
+ ...options
2004
2020
  });
2005
2021
  }
2006
2022
  /**
@@ -3390,9 +3406,11 @@ onTouchEnd_fn = function(evt) {
3390
3406
  if (evt.touches.length >= 2) {
3391
3407
  return;
3392
3408
  }
3393
- __privateGet(this, _touchMoveAC).abort();
3394
- __privateSet(this, _touchMoveAC, null);
3395
- (_a2 = __privateGet(this, _onPinchEnd)) == null ? void 0 : _a2.call(this);
3409
+ if (__privateGet(this, _touchMoveAC)) {
3410
+ __privateGet(this, _touchMoveAC).abort();
3411
+ __privateSet(this, _touchMoveAC, null);
3412
+ (_a2 = __privateGet(this, _onPinchEnd)) == null ? void 0 : _a2.call(this);
3413
+ }
3396
3414
  if (!__privateGet(this, _touchInfo)) {
3397
3415
  return;
3398
3416
  }
@@ -3432,6 +3450,7 @@ var _AnnotationEditor = class _AnnotationEditor {
3432
3450
  __privateAdd(this, _prevDragY, 0);
3433
3451
  __privateAdd(this, _telemetryTimeouts, null);
3434
3452
  __privateAdd(this, _touchManager, null);
3453
+ __publicField(this, "isSelected", false);
3435
3454
  __publicField(this, "_isCopy", false);
3436
3455
  __publicField(this, "_editToolbar", null);
3437
3456
  __publicField(this, "_initialOptions", /* @__PURE__ */ Object.create(null));
@@ -4052,7 +4071,7 @@ var _AnnotationEditor = class _AnnotationEditor {
4052
4071
  }
4053
4072
  const [tx, ty] = this.getInitialTranslation();
4054
4073
  this.translate(tx, ty);
4055
- bindEvents(this, div, ["keydown", "pointerdown"]);
4074
+ bindEvents(this, div, ["keydown", "pointerdown", "dblclick"]);
4056
4075
  if (this.isResizable && this._uiManager._supportsPinchToZoom) {
4057
4076
  __privateGet(this, _touchManager) || __privateSet(this, _touchManager, new TouchManager({
4058
4077
  container: div,
@@ -4083,9 +4102,6 @@ var _AnnotationEditor = class _AnnotationEditor {
4083
4102
  }
4084
4103
  __privateMethod(this, _AnnotationEditor_instances, selectOnPointerEvent_fn).call(this, event);
4085
4104
  }
4086
- get isSelected() {
4087
- return this._uiManager.isSelected(this);
4088
- }
4089
4105
  _onStartDragging() {
4090
4106
  }
4091
4107
  _onStopDragging() {
@@ -4192,15 +4208,27 @@ var _AnnotationEditor = class _AnnotationEditor {
4192
4208
  }
4193
4209
  /**
4194
4210
  * Enable edit mode.
4211
+ * @returns {boolean} - true if the edit mode has been enabled.
4195
4212
  */
4196
4213
  enableEditMode() {
4214
+ if (this.isInEditMode()) {
4215
+ return false;
4216
+ }
4217
+ this.parent.setEditingState(false);
4197
4218
  __privateSet(this, _isInEditMode, true);
4219
+ return true;
4198
4220
  }
4199
4221
  /**
4200
4222
  * Disable edit mode.
4223
+ * @returns {boolean} - true if the edit mode has been disabled.
4201
4224
  */
4202
4225
  disableEditMode() {
4226
+ if (!this.isInEditMode()) {
4227
+ return false;
4228
+ }
4229
+ this.parent.setEditingState(true);
4203
4230
  __privateSet(this, _isInEditMode, false);
4231
+ return true;
4204
4232
  }
4205
4233
  /**
4206
4234
  * Check if the editor is edited.
@@ -4441,6 +4469,10 @@ var _AnnotationEditor = class _AnnotationEditor {
4441
4469
  * Select this editor.
4442
4470
  */
4443
4471
  select() {
4472
+ if (this.isSelected && this._editToolbar) {
4473
+ return;
4474
+ }
4475
+ this.isSelected = true;
4444
4476
  this.makeResizable();
4445
4477
  this.div?.classList.add("selectedEditor");
4446
4478
  if (!this._editToolbar) {
@@ -4458,6 +4490,10 @@ var _AnnotationEditor = class _AnnotationEditor {
4458
4490
  * Unselect this editor.
4459
4491
  */
4460
4492
  unselect() {
4493
+ if (!this.isSelected) {
4494
+ return;
4495
+ }
4496
+ this.isSelected = false;
4461
4497
  __privateGet(this, _resizersDiv)?.classList.add("hidden");
4462
4498
  this.div?.classList.remove("selectedEditor");
4463
4499
  if (this.div?.contains(document.activeElement)) {
@@ -4487,10 +4523,35 @@ var _AnnotationEditor = class _AnnotationEditor {
4487
4523
  */
4488
4524
  enableEditing() {
4489
4525
  }
4526
+ /**
4527
+ * Check if the content of this editor can be changed.
4528
+ * For example, a FreeText editor can be changed (the user can change the
4529
+ * text), but a Stamp editor cannot.
4530
+ * @returns {boolean}
4531
+ */
4532
+ get canChangeContent() {
4533
+ return false;
4534
+ }
4490
4535
  /**
4491
4536
  * The editor is about to be edited.
4492
4537
  */
4493
4538
  enterInEditMode() {
4539
+ if (!this.canChangeContent) {
4540
+ return;
4541
+ }
4542
+ this.enableEditMode();
4543
+ this.div.focus();
4544
+ }
4545
+ /**
4546
+ * ondblclick callback.
4547
+ * @param {MouseEvent} event
4548
+ */
4549
+ dblclick(event) {
4550
+ this.enterInEditMode();
4551
+ this.parent.updateToolbar({
4552
+ mode: this.constructor._editorType,
4553
+ editId: this.id
4554
+ });
4494
4555
  }
4495
4556
  /**
4496
4557
  * @returns {HTMLElement | null} the element requiring an alt text.
@@ -5131,6 +5192,15 @@ var AnnotationStorage = class {
5131
5192
  this.onSetModified = null;
5132
5193
  this.onResetModified = null;
5133
5194
  this.onAnnotationEditor = null;
5195
+ if (false) {
5196
+ Object.defineProperty(this, "_setValues", {
5197
+ value: (obj) => {
5198
+ for (const [key, val] of Object.entries(obj)) {
5199
+ this.setValue(key, val);
5200
+ }
5201
+ }
5202
+ });
5203
+ }
5134
5204
  }
5135
5205
  /**
5136
5206
  * Get the value for a given key if it exists, or return the default value.
@@ -5205,20 +5275,6 @@ var AnnotationStorage = class {
5205
5275
  has(key) {
5206
5276
  return __privateGet(this, _storage).has(key);
5207
5277
  }
5208
- /**
5209
- * @returns {Object | null}
5210
- */
5211
- getAll() {
5212
- return __privateGet(this, _storage).size > 0 ? objectFromMap(__privateGet(this, _storage)) : null;
5213
- }
5214
- /**
5215
- * @param {Object} obj
5216
- */
5217
- setAll(obj) {
5218
- for (const [key, val] of Object.entries(obj)) {
5219
- this.setValue(key, val);
5220
- }
5221
- }
5222
5278
  get size() {
5223
5279
  return __privateGet(this, _storage).size;
5224
5280
  }
@@ -5325,6 +5381,9 @@ var AnnotationStorage = class {
5325
5381
  hash: ids.join(",")
5326
5382
  });
5327
5383
  }
5384
+ [Symbol.iterator]() {
5385
+ return __privateGet(this, _storage).entries();
5386
+ }
5328
5387
  };
5329
5388
  _modified = new WeakMap();
5330
5389
  _modifiedIds = new WeakMap();
@@ -6042,6 +6101,110 @@ var FontFaceObject = class {
6042
6101
  }
6043
6102
  };
6044
6103
 
6104
+ // src/pdf.js/src/display/api_utils.js
6105
+ function getUrlProp(val) {
6106
+ if (false) {
6107
+ return null;
6108
+ }
6109
+ if (val instanceof URL) {
6110
+ return val.href;
6111
+ }
6112
+ if (typeof val === "string") {
6113
+ if (isNodeJS) {
6114
+ return val;
6115
+ }
6116
+ const url = URL.parse(val, window.location);
6117
+ if (url) {
6118
+ return url.href;
6119
+ }
6120
+ }
6121
+ throw new Error(
6122
+ "Invalid PDF url data: either string or URL-object is expected in the url property."
6123
+ );
6124
+ }
6125
+ function getDataProp(val) {
6126
+ if (isNodeJS && typeof Buffer !== "undefined" && // eslint-disable-line no-undef
6127
+ val instanceof Buffer) {
6128
+ throw new Error(
6129
+ "Please provide binary data as `Uint8Array`, rather than `Buffer`."
6130
+ );
6131
+ }
6132
+ if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {
6133
+ return val;
6134
+ }
6135
+ if (typeof val === "string") {
6136
+ return stringToBytes(val);
6137
+ }
6138
+ if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === "object" && !isNaN(val?.length)) {
6139
+ return new Uint8Array(val);
6140
+ }
6141
+ throw new Error(
6142
+ "Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property."
6143
+ );
6144
+ }
6145
+ function getFactoryUrlProp(val) {
6146
+ if (typeof val !== "string") {
6147
+ return null;
6148
+ }
6149
+ if (val.endsWith("/")) {
6150
+ return val;
6151
+ }
6152
+ throw new Error(`Invalid factory url: "${val}" must include trailing slash.`);
6153
+ }
6154
+ var isRefProxy = (v) => typeof v === "object" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;
6155
+ var isNameProxy = (v) => typeof v === "object" && typeof v?.name === "string";
6156
+ var isValidExplicitDest = _isValidExplicitDest.bind(
6157
+ null,
6158
+ /* validRef = */
6159
+ isRefProxy,
6160
+ /* validName = */
6161
+ isNameProxy
6162
+ );
6163
+ var _listeners, _deferred;
6164
+ var LoopbackPort = class {
6165
+ constructor() {
6166
+ __privateAdd(this, _listeners, /* @__PURE__ */ new Map());
6167
+ __privateAdd(this, _deferred, Promise.resolve());
6168
+ }
6169
+ postMessage(obj, transfer) {
6170
+ const event = {
6171
+ data: structuredClone(obj, transfer ? { transfer } : null)
6172
+ };
6173
+ __privateGet(this, _deferred).then(() => {
6174
+ for (const [listener] of __privateGet(this, _listeners)) {
6175
+ listener.call(this, event);
6176
+ }
6177
+ });
6178
+ }
6179
+ addEventListener(name, listener, options = null) {
6180
+ let rmAbort = null;
6181
+ if (options?.signal instanceof AbortSignal) {
6182
+ const { signal } = options;
6183
+ if (signal.aborted) {
6184
+ warn("LoopbackPort - cannot use an `aborted` signal.");
6185
+ return;
6186
+ }
6187
+ const onAbort = () => this.removeEventListener(name, listener);
6188
+ rmAbort = () => signal.removeEventListener("abort", onAbort);
6189
+ signal.addEventListener("abort", onAbort);
6190
+ }
6191
+ __privateGet(this, _listeners).set(listener, rmAbort);
6192
+ }
6193
+ removeEventListener(name, listener) {
6194
+ const rmAbort = __privateGet(this, _listeners).get(listener);
6195
+ rmAbort?.();
6196
+ __privateGet(this, _listeners).delete(listener);
6197
+ }
6198
+ terminate() {
6199
+ for (const [, rmAbort] of __privateGet(this, _listeners)) {
6200
+ rmAbort?.();
6201
+ }
6202
+ __privateGet(this, _listeners).clear();
6203
+ }
6204
+ };
6205
+ _listeners = new WeakMap();
6206
+ _deferred = new WeakMap();
6207
+
6045
6208
  // src/lib/NodeUtilsStabs.ts
6046
6209
  var NodeCanvasFactory = class {
6047
6210
  };
@@ -6596,18 +6759,13 @@ var _TilingPattern = class _TilingPattern {
6596
6759
  const context = graphics.ctx, current = graphics.current;
6597
6760
  switch (paintType) {
6598
6761
  case PaintType.COLORED:
6599
- const ctx = this.ctx;
6600
- context.fillStyle = ctx.fillStyle;
6601
- context.strokeStyle = ctx.strokeStyle;
6602
- current.fillColor = ctx.fillStyle;
6603
- current.strokeColor = ctx.strokeStyle;
6762
+ const { fillStyle, strokeStyle } = this.ctx;
6763
+ context.fillStyle = current.fillColor = fillStyle;
6764
+ context.strokeStyle = current.strokeColor = strokeStyle;
6604
6765
  break;
6605
6766
  case PaintType.UNCOLORED:
6606
- const cssColor = Util.makeHexColor(color[0], color[1], color[2]);
6607
- context.fillStyle = cssColor;
6608
- context.strokeStyle = cssColor;
6609
- current.fillColor = cssColor;
6610
- current.strokeColor = cssColor;
6767
+ context.fillStyle = context.strokeStyle = color;
6768
+ current.fillColor = current.strokeColor = color;
6611
6769
  break;
6612
6770
  default:
6613
6771
  throw new FormatError(`Unsupported paint type: ${paintType}`);
@@ -7544,7 +7702,6 @@ var _CanvasGraphics = class _CanvasGraphics {
7544
7702
  let maskX = layerOffsetX - maskOffsetX;
7545
7703
  let maskY = layerOffsetY - maskOffsetY;
7546
7704
  if (backdrop) {
7547
- const backdropRGB = Util.makeHexColor(...backdrop);
7548
7705
  if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {
7549
7706
  const canvas = this.cachedCanvases.getCanvas(
7550
7707
  "maskExtension",
@@ -7554,7 +7711,7 @@ var _CanvasGraphics = class _CanvasGraphics {
7554
7711
  const ctx = canvas.context;
7555
7712
  ctx.drawImage(maskCanvas, -maskX, -maskY);
7556
7713
  ctx.globalCompositeOperation = "destination-atop";
7557
- ctx.fillStyle = backdropRGB;
7714
+ ctx.fillStyle = backdrop;
7558
7715
  ctx.fillRect(0, 0, width, height);
7559
7716
  ctx.globalCompositeOperation = "source-over";
7560
7717
  maskCanvas = canvas.canvas;
@@ -7567,7 +7724,7 @@ var _CanvasGraphics = class _CanvasGraphics {
7567
7724
  clip2.rect(maskX, maskY, width, height);
7568
7725
  maskCtx.clip(clip2);
7569
7726
  maskCtx.globalCompositeOperation = "destination-atop";
7570
- maskCtx.fillStyle = backdropRGB;
7727
+ maskCtx.fillStyle = backdrop;
7571
7728
  maskCtx.fillRect(maskX, maskY, width, height);
7572
7729
  maskCtx.restore();
7573
7730
  }
@@ -8246,20 +8403,16 @@ var _CanvasGraphics = class _CanvasGraphics {
8246
8403
  this.current.fillColor = this.getColorN_Pattern(arguments);
8247
8404
  this.current.patternFill = true;
8248
8405
  }
8249
- setStrokeRGBColor(r, g, b) {
8250
- this.ctx.strokeStyle = this.current.strokeColor = Util.makeHexColor(
8251
- r,
8252
- g,
8253
- b
8254
- );
8406
+ setStrokeRGBColor(color) {
8407
+ this.ctx.strokeStyle = this.current.strokeColor = color;
8255
8408
  this.current.patternStroke = false;
8256
8409
  }
8257
8410
  setStrokeTransparent() {
8258
8411
  this.ctx.strokeStyle = this.current.strokeColor = "transparent";
8259
8412
  this.current.patternStroke = false;
8260
8413
  }
8261
- setFillRGBColor(r, g, b) {
8262
- this.ctx.fillStyle = this.current.fillColor = Util.makeHexColor(r, g, b);
8414
+ setFillRGBColor(color) {
8415
+ this.ctx.fillStyle = this.current.fillColor = color;
8263
8416
  this.current.patternFill = false;
8264
8417
  }
8265
8418
  setFillTransparent() {
@@ -9384,7 +9537,7 @@ createUrl_fn = function(id) {
9384
9537
  if (isDataScheme(url)) {
9385
9538
  warn('#createUrl: ignore "data:"-URL for performance reasons.');
9386
9539
  } else {
9387
- __privateSet(this, _baseUrl, url.split("#", 1)[0]);
9540
+ __privateSet(this, _baseUrl, updateUrlHash(url, ""));
9388
9541
  }
9389
9542
  }
9390
9543
  }
@@ -9581,28 +9734,25 @@ __privateAdd(GlobalWorkerOptions, _port, null);
9581
9734
  __privateAdd(GlobalWorkerOptions, _src, "");
9582
9735
 
9583
9736
  // src/pdf.js/src/display/metadata.js
9584
- var _metadataMap, _data;
9737
+ var _map, _data;
9585
9738
  var Metadata = class {
9586
9739
  constructor({ parsedData, rawData }) {
9587
- __privateAdd(this, _metadataMap);
9740
+ __privateAdd(this, _map);
9588
9741
  __privateAdd(this, _data);
9589
- __privateSet(this, _metadataMap, parsedData);
9742
+ __privateSet(this, _map, parsedData);
9590
9743
  __privateSet(this, _data, rawData);
9591
9744
  }
9592
9745
  getRaw() {
9593
9746
  return __privateGet(this, _data);
9594
9747
  }
9595
9748
  get(name) {
9596
- return __privateGet(this, _metadataMap).get(name) ?? null;
9749
+ return __privateGet(this, _map).get(name) ?? null;
9597
9750
  }
9598
- getAll() {
9599
- return objectFromMap(__privateGet(this, _metadataMap));
9600
- }
9601
- has(name) {
9602
- return __privateGet(this, _metadataMap).has(name);
9751
+ [Symbol.iterator]() {
9752
+ return __privateGet(this, _map).entries();
9603
9753
  }
9604
9754
  };
9605
- _metadataMap = new WeakMap();
9755
+ _map = new WeakMap();
9606
9756
  _data = new WeakMap();
9607
9757
 
9608
9758
  // src/pdf.js/src/display/optional_content_config.js
@@ -9822,9 +9972,6 @@ var OptionalContentConfig = class {
9822
9972
  }
9823
9973
  return [...__privateGet(this, _groups).keys()];
9824
9974
  }
9825
- getGroups() {
9826
- return __privateGet(this, _groups).size > 0 ? objectFromMap(__privateGet(this, _groups)) : null;
9827
- }
9828
9975
  getGroup(id) {
9829
9976
  return __privateGet(this, _groups).get(id) || null;
9830
9977
  }
@@ -9838,6 +9985,9 @@ var OptionalContentConfig = class {
9838
9985
  }
9839
9986
  return __privateSet(this, _cachedGetHash, hash.hexdigest());
9840
9987
  }
9988
+ [Symbol.iterator]() {
9989
+ return __privateGet(this, _groups).entries();
9990
+ }
9841
9991
  };
9842
9992
  _cachedGetHash = new WeakMap();
9843
9993
  _groups = new WeakMap();
@@ -10914,6 +11064,102 @@ var PDFNetworkStreamRangeRequestReader = class {
10914
11064
  var PDFNodeStream = class {
10915
11065
  };
10916
11066
 
11067
+ // src/pdf.js/src/display/pdf_objects.js
11068
+ var INITIAL_DATA = Symbol("INITIAL_DATA");
11069
+ var _objs, _PDFObjects_instances, ensureObj_fn;
11070
+ var PDFObjects = class {
11071
+ constructor() {
11072
+ __privateAdd(this, _PDFObjects_instances);
11073
+ __privateAdd(this, _objs, /* @__PURE__ */ Object.create(null));
11074
+ }
11075
+ /**
11076
+ * If called *without* callback, this returns the data of `objId` but the
11077
+ * object needs to be resolved. If it isn't, this method throws.
11078
+ *
11079
+ * If called *with* a callback, the callback is called with the data of the
11080
+ * object once the object is resolved. That means, if you call this method
11081
+ * and the object is already resolved, the callback gets called right away.
11082
+ *
11083
+ * @param {string} objId
11084
+ * @param {function} [callback]
11085
+ * @returns {any}
11086
+ */
11087
+ get(objId, callback = null) {
11088
+ if (callback) {
11089
+ const obj2 = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
11090
+ obj2.promise.then(() => callback(obj2.data));
11091
+ return null;
11092
+ }
11093
+ const obj = __privateGet(this, _objs)[objId];
11094
+ if (!obj || obj.data === INITIAL_DATA) {
11095
+ throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
11096
+ }
11097
+ return obj.data;
11098
+ }
11099
+ /**
11100
+ * @param {string} objId
11101
+ * @returns {boolean}
11102
+ */
11103
+ has(objId) {
11104
+ const obj = __privateGet(this, _objs)[objId];
11105
+ return !!obj && obj.data !== INITIAL_DATA;
11106
+ }
11107
+ /**
11108
+ * @param {string} objId
11109
+ * @returns {boolean}
11110
+ */
11111
+ delete(objId) {
11112
+ const obj = __privateGet(this, _objs)[objId];
11113
+ if (!obj || obj.data === INITIAL_DATA) {
11114
+ return false;
11115
+ }
11116
+ delete __privateGet(this, _objs)[objId];
11117
+ return true;
11118
+ }
11119
+ /**
11120
+ * Resolves the object `objId` with optional `data`.
11121
+ *
11122
+ * @param {string} objId
11123
+ * @param {any} [data]
11124
+ */
11125
+ resolve(objId, data = null) {
11126
+ const obj = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
11127
+ obj.data = data;
11128
+ obj.resolve();
11129
+ }
11130
+ clear() {
11131
+ for (const objId in __privateGet(this, _objs)) {
11132
+ const { data } = __privateGet(this, _objs)[objId];
11133
+ data?.bitmap?.close();
11134
+ }
11135
+ __privateSet(this, _objs, /* @__PURE__ */ Object.create(null));
11136
+ }
11137
+ *[Symbol.iterator]() {
11138
+ for (const objId in __privateGet(this, _objs)) {
11139
+ const { data } = __privateGet(this, _objs)[objId];
11140
+ if (data === INITIAL_DATA) {
11141
+ continue;
11142
+ }
11143
+ yield [objId, data];
11144
+ }
11145
+ }
11146
+ };
11147
+ _objs = new WeakMap();
11148
+ _PDFObjects_instances = new WeakSet();
11149
+ /**
11150
+ * Ensures there is an object defined for `objId`.
11151
+ *
11152
+ * @param {string} objId
11153
+ * @returns {Object}
11154
+ */
11155
+ ensureObj_fn = function(objId) {
11156
+ var _a2;
11157
+ return (_a2 = __privateGet(this, _objs))[objId] || (_a2[objId] = {
11158
+ ...Promise.withResolvers(),
11159
+ data: INITIAL_DATA
11160
+ });
11161
+ };
11162
+
10917
11163
  // src/pdf.js/src/display/text_layer.js
10918
11164
  var MAX_TEXT_DIVS_TO_RENDER = 1e5;
10919
11165
  var DEFAULT_FONT_SIZE = 30;
@@ -11389,7 +11635,6 @@ var XfaText = class _XfaText {
11389
11635
  };
11390
11636
 
11391
11637
  // src/pdf.js/src/display/api.js
11392
- var DEFAULT_RANGE_CHUNK_SIZE = 65536;
11393
11638
  var RENDERING_CANCELLED_TIMEOUT = 100;
11394
11639
  function getDocument(src = {}) {
11395
11640
  if (true) {
@@ -11407,7 +11652,7 @@ function getDocument(src = {}) {
11407
11652
  const withCredentials = src.withCredentials === true;
11408
11653
  const password = src.password ?? null;
11409
11654
  const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;
11410
- const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;
11655
+ const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : 2 ** 16;
11411
11656
  let worker = src.worker instanceof PDFWorker ? src.worker : null;
11412
11657
  const verbosity = src.verbosity;
11413
11658
  const docBaseUrl = typeof src.docBaseUrl === "string" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;
@@ -11456,11 +11701,10 @@ function getDocument(src = {}) {
11456
11701
  wasmFactory: useWorkerFetch ? null : new WasmFactory2({ baseUrl: wasmUrl })
11457
11702
  };
11458
11703
  if (!worker) {
11459
- const workerParams = {
11704
+ worker = PDFWorker.create({
11460
11705
  verbosity,
11461
11706
  port: GlobalWorkerOptions.workerPort
11462
- };
11463
- worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
11707
+ });
11464
11708
  task._worker = worker;
11465
11709
  }
11466
11710
  const docParams = {
@@ -11525,21 +11769,7 @@ function getDocument(src = {}) {
11525
11769
  if (!url) {
11526
11770
  throw new Error("getDocument - no `url` parameter provided.");
11527
11771
  }
11528
- let NetworkStream;
11529
- if (isNodeJS) {
11530
- if (isValidFetchUrl(url)) {
11531
- if (typeof fetch === "undefined" || typeof Response === "undefined" || !("body" in Response.prototype)) {
11532
- throw new Error(
11533
- "getDocument - the Fetch API was disabled in Node.js, see `--no-experimental-fetch`."
11534
- );
11535
- }
11536
- NetworkStream = PDFFetchStream;
11537
- } else {
11538
- NetworkStream = PDFNodeStream;
11539
- }
11540
- } else {
11541
- NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : PDFNetworkStream;
11542
- }
11772
+ const NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;
11543
11773
  networkStream = new NetworkStream({
11544
11774
  url,
11545
11775
  length,
@@ -11571,64 +11801,6 @@ function getDocument(src = {}) {
11571
11801
  }).catch(task._capability.reject);
11572
11802
  return task;
11573
11803
  }
11574
- function getUrlProp(val) {
11575
- if (false) {
11576
- return null;
11577
- }
11578
- if (val instanceof URL) {
11579
- return val.href;
11580
- }
11581
- if (typeof val === "string") {
11582
- if (isNodeJS) {
11583
- return val;
11584
- }
11585
- const url = URL.parse(val, window.location);
11586
- if (url) {
11587
- return url.href;
11588
- }
11589
- }
11590
- throw new Error(
11591
- "Invalid PDF url data: either string or URL-object is expected in the url property."
11592
- );
11593
- }
11594
- function getDataProp(val) {
11595
- if (isNodeJS && typeof Buffer !== "undefined" && // eslint-disable-line no-undef
11596
- val instanceof Buffer) {
11597
- throw new Error(
11598
- "Please provide binary data as `Uint8Array`, rather than `Buffer`."
11599
- );
11600
- }
11601
- if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {
11602
- return val;
11603
- }
11604
- if (typeof val === "string") {
11605
- return stringToBytes(val);
11606
- }
11607
- if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === "object" && !isNaN(val?.length)) {
11608
- return new Uint8Array(val);
11609
- }
11610
- throw new Error(
11611
- "Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property."
11612
- );
11613
- }
11614
- function getFactoryUrlProp(val) {
11615
- if (typeof val !== "string") {
11616
- return null;
11617
- }
11618
- if (val.endsWith("/")) {
11619
- return val;
11620
- }
11621
- throw new Error(`Invalid factory url: "${val}" must include trailing slash.`);
11622
- }
11623
- var isRefProxy = (v) => typeof v === "object" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;
11624
- var isNameProxy = (v) => typeof v === "object" && typeof v?.name === "string";
11625
- var isValidExplicitDest = _isValidExplicitDest.bind(
11626
- null,
11627
- /* validRef = */
11628
- isRefProxy,
11629
- /* validName = */
11630
- isNameProxy
11631
- );
11632
11804
  var _docId2;
11633
11805
  var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
11634
11806
  constructor() {
@@ -11683,20 +11855,16 @@ var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
11683
11855
  */
11684
11856
  async destroy() {
11685
11857
  this.destroyed = true;
11686
- if (false) {
11858
+ try {
11859
+ if (this._worker?.port) {
11860
+ this._worker._pendingDestroy = true;
11861
+ }
11687
11862
  await this._transport?.destroy();
11688
- } else {
11689
- try {
11690
- if (this._worker?.port) {
11691
- this._worker._pendingDestroy = true;
11692
- }
11693
- await this._transport?.destroy();
11694
- } catch (ex) {
11695
- if (this._worker?.port) {
11696
- delete this._worker._pendingDestroy;
11697
- }
11698
- throw ex;
11863
+ } catch (ex) {
11864
+ if (this._worker?.port) {
11865
+ delete this._worker._pendingDestroy;
11699
11866
  }
11867
+ throw ex;
11700
11868
  }
11701
11869
  this._transport = null;
11702
11870
  this._worker?.destroy();
@@ -11715,6 +11883,7 @@ var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
11715
11883
  _docId2 = new WeakMap();
11716
11884
  __privateAdd(_PDFDocumentLoadingTask, _docId2, 0);
11717
11885
  var PDFDocumentLoadingTask = _PDFDocumentLoadingTask;
11886
+ var _capability2, _progressiveDoneListeners, _progressiveReadListeners, _progressListeners, _rangeListeners;
11718
11887
  var PDFDataRangeTransport = class {
11719
11888
  /**
11720
11889
  * @param {number} length
@@ -11723,46 +11892,46 @@ var PDFDataRangeTransport = class {
11723
11892
  * @param {string} [contentDispositionFilename]
11724
11893
  */
11725
11894
  constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {
11895
+ __privateAdd(this, _capability2, Promise.withResolvers());
11896
+ __privateAdd(this, _progressiveDoneListeners, []);
11897
+ __privateAdd(this, _progressiveReadListeners, []);
11898
+ __privateAdd(this, _progressListeners, []);
11899
+ __privateAdd(this, _rangeListeners, []);
11726
11900
  this.length = length;
11727
11901
  this.initialData = initialData;
11728
11902
  this.progressiveDone = progressiveDone;
11729
11903
  this.contentDispositionFilename = contentDispositionFilename;
11730
- this._rangeListeners = [];
11731
- this._progressListeners = [];
11732
- this._progressiveReadListeners = [];
11733
- this._progressiveDoneListeners = [];
11734
- this._readyCapability = Promise.withResolvers();
11735
11904
  }
11736
11905
  /**
11737
11906
  * @param {function} listener
11738
11907
  */
11739
11908
  addRangeListener(listener) {
11740
- this._rangeListeners.push(listener);
11909
+ __privateGet(this, _rangeListeners).push(listener);
11741
11910
  }
11742
11911
  /**
11743
11912
  * @param {function} listener
11744
11913
  */
11745
11914
  addProgressListener(listener) {
11746
- this._progressListeners.push(listener);
11915
+ __privateGet(this, _progressListeners).push(listener);
11747
11916
  }
11748
11917
  /**
11749
11918
  * @param {function} listener
11750
11919
  */
11751
11920
  addProgressiveReadListener(listener) {
11752
- this._progressiveReadListeners.push(listener);
11921
+ __privateGet(this, _progressiveReadListeners).push(listener);
11753
11922
  }
11754
11923
  /**
11755
11924
  * @param {function} listener
11756
11925
  */
11757
11926
  addProgressiveDoneListener(listener) {
11758
- this._progressiveDoneListeners.push(listener);
11927
+ __privateGet(this, _progressiveDoneListeners).push(listener);
11759
11928
  }
11760
11929
  /**
11761
11930
  * @param {number} begin
11762
11931
  * @param {Uint8Array|null} chunk
11763
11932
  */
11764
11933
  onDataRange(begin, chunk) {
11765
- for (const listener of this._rangeListeners) {
11934
+ for (const listener of __privateGet(this, _rangeListeners)) {
11766
11935
  listener(begin, chunk);
11767
11936
  }
11768
11937
  }
@@ -11771,8 +11940,8 @@ var PDFDataRangeTransport = class {
11771
11940
  * @param {number|undefined} total
11772
11941
  */
11773
11942
  onDataProgress(loaded, total) {
11774
- this._readyCapability.promise.then(() => {
11775
- for (const listener of this._progressListeners) {
11943
+ __privateGet(this, _capability2).promise.then(() => {
11944
+ for (const listener of __privateGet(this, _progressListeners)) {
11776
11945
  listener(loaded, total);
11777
11946
  }
11778
11947
  });
@@ -11781,21 +11950,21 @@ var PDFDataRangeTransport = class {
11781
11950
  * @param {Uint8Array|null} chunk
11782
11951
  */
11783
11952
  onDataProgressiveRead(chunk) {
11784
- this._readyCapability.promise.then(() => {
11785
- for (const listener of this._progressiveReadListeners) {
11953
+ __privateGet(this, _capability2).promise.then(() => {
11954
+ for (const listener of __privateGet(this, _progressiveReadListeners)) {
11786
11955
  listener(chunk);
11787
11956
  }
11788
11957
  });
11789
11958
  }
11790
11959
  onDataProgressiveDone() {
11791
- this._readyCapability.promise.then(() => {
11792
- for (const listener of this._progressiveDoneListeners) {
11960
+ __privateGet(this, _capability2).promise.then(() => {
11961
+ for (const listener of __privateGet(this, _progressiveDoneListeners)) {
11793
11962
  listener();
11794
11963
  }
11795
11964
  });
11796
11965
  }
11797
11966
  transportReady() {
11798
- this._readyCapability.resolve();
11967
+ __privateGet(this, _capability2).resolve();
11799
11968
  }
11800
11969
  /**
11801
11970
  * @param {number} begin
@@ -11807,6 +11976,11 @@ var PDFDataRangeTransport = class {
11807
11976
  abort() {
11808
11977
  }
11809
11978
  };
11979
+ _capability2 = new WeakMap();
11980
+ _progressiveDoneListeners = new WeakMap();
11981
+ _progressiveReadListeners = new WeakMap();
11982
+ _progressListeners = new WeakMap();
11983
+ _rangeListeners = new WeakMap();
11810
11984
  var PDFDocumentProxy = class {
11811
11985
  constructor(pdfInfo, transport) {
11812
11986
  this._pdfInfo = pdfInfo;
@@ -12682,51 +12856,7 @@ tryCleanup_fn = function() {
12682
12856
  __privateSet(this, _pendingCleanup, false);
12683
12857
  return true;
12684
12858
  };
12685
- var _listeners, _deferred;
12686
- var LoopbackPort = class {
12687
- constructor() {
12688
- __privateAdd(this, _listeners, /* @__PURE__ */ new Map());
12689
- __privateAdd(this, _deferred, Promise.resolve());
12690
- }
12691
- postMessage(obj, transfer) {
12692
- const event = {
12693
- data: structuredClone(obj, transfer ? { transfer } : null)
12694
- };
12695
- __privateGet(this, _deferred).then(() => {
12696
- for (const [listener] of __privateGet(this, _listeners)) {
12697
- listener.call(this, event);
12698
- }
12699
- });
12700
- }
12701
- addEventListener(name, listener, options = null) {
12702
- let rmAbort = null;
12703
- if (options?.signal instanceof AbortSignal) {
12704
- const { signal } = options;
12705
- if (signal.aborted) {
12706
- warn("LoopbackPort - cannot use an `aborted` signal.");
12707
- return;
12708
- }
12709
- const onAbort = () => this.removeEventListener(name, listener);
12710
- rmAbort = () => signal.removeEventListener("abort", onAbort);
12711
- signal.addEventListener("abort", onAbort);
12712
- }
12713
- __privateGet(this, _listeners).set(listener, rmAbort);
12714
- }
12715
- removeEventListener(name, listener) {
12716
- const rmAbort = __privateGet(this, _listeners).get(listener);
12717
- rmAbort?.();
12718
- __privateGet(this, _listeners).delete(listener);
12719
- }
12720
- terminate() {
12721
- for (const [, rmAbort] of __privateGet(this, _listeners)) {
12722
- rmAbort?.();
12723
- }
12724
- __privateGet(this, _listeners).clear();
12725
- }
12726
- };
12727
- _listeners = new WeakMap();
12728
- _deferred = new WeakMap();
12729
- var _a, _fakeWorkerId, _isWorkerDisabled, _workerPorts, _PDFWorker_instances, resolve_fn, _PDFWorker_static, mainThreadWorkerMessageHandler_get;
12859
+ var _a, _capability3, _messageHandler, _port2, _webWorker, _fakeWorkerId, _isWorkerDisabled, _workerPorts, _PDFWorker_instances, resolve_fn, initializeFromPort_fn, initialize_fn, setupFakeWorker_fn, _PDFWorker_static, mainThreadWorkerMessageHandler_get;
12730
12860
  var _PDFWorker = class _PDFWorker {
12731
12861
  constructor({
12732
12862
  name = null,
@@ -12734,173 +12864,73 @@ var _PDFWorker = class _PDFWorker {
12734
12864
  verbosity = getVerbosityLevel()
12735
12865
  } = {}) {
12736
12866
  __privateAdd(this, _PDFWorker_instances);
12867
+ __privateAdd(this, _capability3, Promise.withResolvers());
12868
+ __privateAdd(this, _messageHandler, null);
12869
+ __privateAdd(this, _port2, null);
12870
+ __privateAdd(this, _webWorker, null);
12737
12871
  this.name = name;
12738
12872
  this.destroyed = false;
12739
12873
  this.verbosity = verbosity;
12740
- this._readyCapability = Promise.withResolvers();
12741
- this._port = null;
12742
- this._webWorker = null;
12743
- this._messageHandler = null;
12744
12874
  if (port) {
12745
- if (__privateGet(_PDFWorker, _workerPorts)?.has(port)) {
12875
+ if (__privateGet(_PDFWorker, _workerPorts).has(port)) {
12746
12876
  throw new Error("Cannot use more than one PDFWorker per port.");
12747
12877
  }
12748
- (__privateGet(_PDFWorker, _workerPorts) || __privateSet(_PDFWorker, _workerPorts, /* @__PURE__ */ new WeakMap())).set(port, this);
12749
- this._initializeFromPort(port);
12750
- return;
12878
+ __privateGet(_PDFWorker, _workerPorts).set(port, this);
12879
+ __privateMethod(this, _PDFWorker_instances, initializeFromPort_fn).call(this, port);
12880
+ } else {
12881
+ __privateMethod(this, _PDFWorker_instances, initialize_fn).call(this);
12882
+ }
12883
+ if (false) {
12884
+ Object.defineProperty(this, "_webWorker", {
12885
+ get() {
12886
+ return __privateGet(this, _webWorker);
12887
+ }
12888
+ });
12751
12889
  }
12752
- this._initialize();
12753
12890
  }
12754
12891
  /**
12755
12892
  * Promise for worker initialization completion.
12756
12893
  * @type {Promise<void>}
12757
12894
  */
12758
12895
  get promise() {
12759
- return this._readyCapability.promise;
12896
+ return __privateGet(this, _capability3).promise;
12760
12897
  }
12761
12898
  /**
12762
12899
  * The current `workerPort`, when it exists.
12763
12900
  * @type {Worker}
12764
- */
12765
- get port() {
12766
- return this._port;
12767
- }
12768
- /**
12769
- * The current MessageHandler-instance.
12770
- * @type {MessageHandler}
12771
- */
12772
- get messageHandler() {
12773
- return this._messageHandler;
12774
- }
12775
- _initializeFromPort(port) {
12776
- if (false) {
12777
- throw new Error("Not implemented: _initializeFromPort");
12778
- }
12779
- this._port = port;
12780
- this._messageHandler = new MessageHandler("main", "worker", port);
12781
- this._messageHandler.on("ready", function() {
12782
- });
12783
- __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
12784
- }
12785
- _initialize() {
12786
- if (__privateGet(_PDFWorker, _isWorkerDisabled) || __privateGet(_PDFWorker, _PDFWorker_static, mainThreadWorkerMessageHandler_get)) {
12787
- this._setupFakeWorker();
12788
- return;
12789
- }
12790
- let { workerSrc } = _PDFWorker;
12791
- try {
12792
- if (!_PDFWorker._isSameOrigin(window.location, workerSrc)) {
12793
- workerSrc = _PDFWorker._createCDNWrapper(
12794
- new URL(workerSrc, window.location).href
12795
- );
12796
- }
12797
- const worker = new Worker(workerSrc, { type: "module" });
12798
- const messageHandler = new MessageHandler("main", "worker", worker);
12799
- const terminateEarly = () => {
12800
- ac.abort();
12801
- messageHandler.destroy();
12802
- worker.terminate();
12803
- if (this.destroyed) {
12804
- this._readyCapability.reject(new Error("Worker was destroyed"));
12805
- } else {
12806
- this._setupFakeWorker();
12807
- }
12808
- };
12809
- const ac = new AbortController();
12810
- worker.addEventListener(
12811
- "error",
12812
- () => {
12813
- if (!this._webWorker) {
12814
- terminateEarly();
12815
- }
12816
- },
12817
- { signal: ac.signal }
12818
- );
12819
- messageHandler.on("test", (data) => {
12820
- ac.abort();
12821
- if (this.destroyed || !data) {
12822
- terminateEarly();
12823
- return;
12824
- }
12825
- this._messageHandler = messageHandler;
12826
- this._port = worker;
12827
- this._webWorker = worker;
12828
- __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
12829
- });
12830
- messageHandler.on("ready", (data) => {
12831
- ac.abort();
12832
- if (this.destroyed) {
12833
- terminateEarly();
12834
- return;
12835
- }
12836
- try {
12837
- sendTest();
12838
- } catch {
12839
- this._setupFakeWorker();
12840
- }
12841
- });
12842
- const sendTest = () => {
12843
- const testObj = new Uint8Array();
12844
- messageHandler.send("test", testObj, [testObj.buffer]);
12845
- };
12846
- sendTest();
12847
- return;
12848
- } catch {
12849
- info("The worker has been disabled.");
12850
- }
12851
- this._setupFakeWorker();
12901
+ */
12902
+ get port() {
12903
+ return __privateGet(this, _port2);
12852
12904
  }
12853
- _setupFakeWorker() {
12854
- if (!__privateGet(_PDFWorker, _isWorkerDisabled)) {
12855
- warn("Setting up fake worker.");
12856
- __privateSet(_PDFWorker, _isWorkerDisabled, true);
12857
- }
12858
- _PDFWorker._setupFakeWorkerGlobal.then((WorkerMessageHandler) => {
12859
- if (this.destroyed) {
12860
- this._readyCapability.reject(new Error("Worker was destroyed"));
12861
- return;
12862
- }
12863
- const port = new LoopbackPort();
12864
- this._port = port;
12865
- const id = `fake${__privateWrapper(_PDFWorker, _fakeWorkerId)._++}`;
12866
- const workerHandler = new MessageHandler(id + "_worker", id, port);
12867
- WorkerMessageHandler.setup(workerHandler, port);
12868
- this._messageHandler = new MessageHandler(id, id + "_worker", port);
12869
- __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
12870
- }).catch((reason) => {
12871
- this._readyCapability.reject(
12872
- new Error(`Setting up fake worker failed: "${reason.message}".`)
12873
- );
12874
- });
12905
+ /**
12906
+ * The current MessageHandler-instance.
12907
+ * @type {MessageHandler}
12908
+ */
12909
+ get messageHandler() {
12910
+ return __privateGet(this, _messageHandler);
12875
12911
  }
12876
12912
  /**
12877
12913
  * Destroys the worker instance.
12878
12914
  */
12879
12915
  destroy() {
12880
12916
  this.destroyed = true;
12881
- this._webWorker?.terminate();
12882
- this._webWorker = null;
12883
- __privateGet(_PDFWorker, _workerPorts)?.delete(this._port);
12884
- this._port = null;
12885
- this._messageHandler?.destroy();
12886
- this._messageHandler = null;
12917
+ __privateGet(this, _webWorker)?.terminate();
12918
+ __privateSet(this, _webWorker, null);
12919
+ __privateGet(_PDFWorker, _workerPorts).delete(__privateGet(this, _port2));
12920
+ __privateSet(this, _port2, null);
12921
+ __privateGet(this, _messageHandler)?.destroy();
12922
+ __privateSet(this, _messageHandler, null);
12887
12923
  }
12888
12924
  /**
12889
12925
  * @param {PDFWorkerParameters} params - The worker initialization parameters.
12890
12926
  * @returns {PDFWorker}
12891
12927
  */
12892
- static fromPort(params) {
12893
- if (false) {
12894
- throw new Error("Not implemented: fromPort");
12895
- }
12896
- if (!params?.port) {
12897
- throw new Error("PDFWorker.fromPort - invalid method signature.");
12898
- }
12899
- const cachedPort = __privateGet(this, _workerPorts)?.get(params.port);
12928
+ static create(params) {
12929
+ const cachedPort = __privateGet(this, _workerPorts).get(params?.port);
12900
12930
  if (cachedPort) {
12901
12931
  if (cachedPort._pendingDestroy) {
12902
12932
  throw new Error(
12903
- "PDFWorker.fromPort - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls."
12933
+ "PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls."
12904
12934
  );
12905
12935
  }
12906
12936
  return cachedPort;
@@ -12929,16 +12959,118 @@ var _PDFWorker = class _PDFWorker {
12929
12959
  return shadow(this, "_setupFakeWorkerGlobal", loader());
12930
12960
  }
12931
12961
  };
12962
+ _capability3 = new WeakMap();
12963
+ _messageHandler = new WeakMap();
12964
+ _port2 = new WeakMap();
12965
+ _webWorker = new WeakMap();
12932
12966
  _fakeWorkerId = new WeakMap();
12933
12967
  _isWorkerDisabled = new WeakMap();
12934
12968
  _workerPorts = new WeakMap();
12935
12969
  _PDFWorker_instances = new WeakSet();
12936
12970
  resolve_fn = function() {
12937
- this._readyCapability.resolve();
12938
- this._messageHandler.send("configure", {
12971
+ __privateGet(this, _capability3).resolve();
12972
+ __privateGet(this, _messageHandler).send("configure", {
12939
12973
  verbosity: this.verbosity
12940
12974
  });
12941
12975
  };
12976
+ initializeFromPort_fn = function(port) {
12977
+ __privateSet(this, _port2, port);
12978
+ __privateSet(this, _messageHandler, new MessageHandler("main", "worker", port));
12979
+ __privateGet(this, _messageHandler).on("ready", () => {
12980
+ });
12981
+ __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
12982
+ };
12983
+ initialize_fn = function() {
12984
+ if (__privateGet(_PDFWorker, _isWorkerDisabled) || __privateGet(_PDFWorker, _PDFWorker_static, mainThreadWorkerMessageHandler_get)) {
12985
+ __privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
12986
+ return;
12987
+ }
12988
+ let { workerSrc } = _PDFWorker;
12989
+ try {
12990
+ if (!_PDFWorker._isSameOrigin(window.location, workerSrc)) {
12991
+ workerSrc = _PDFWorker._createCDNWrapper(
12992
+ new URL(workerSrc, window.location).href
12993
+ );
12994
+ }
12995
+ const worker = new Worker(workerSrc, { type: "module" });
12996
+ const messageHandler = new MessageHandler("main", "worker", worker);
12997
+ const terminateEarly = () => {
12998
+ ac.abort();
12999
+ messageHandler.destroy();
13000
+ worker.terminate();
13001
+ if (this.destroyed) {
13002
+ __privateGet(this, _capability3).reject(new Error("Worker was destroyed"));
13003
+ } else {
13004
+ __privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
13005
+ }
13006
+ };
13007
+ const ac = new AbortController();
13008
+ worker.addEventListener(
13009
+ "error",
13010
+ () => {
13011
+ if (!__privateGet(this, _webWorker)) {
13012
+ terminateEarly();
13013
+ }
13014
+ },
13015
+ { signal: ac.signal }
13016
+ );
13017
+ messageHandler.on("test", (data) => {
13018
+ ac.abort();
13019
+ if (this.destroyed || !data) {
13020
+ terminateEarly();
13021
+ return;
13022
+ }
13023
+ __privateSet(this, _messageHandler, messageHandler);
13024
+ __privateSet(this, _port2, worker);
13025
+ __privateSet(this, _webWorker, worker);
13026
+ __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
13027
+ });
13028
+ messageHandler.on("ready", (data) => {
13029
+ ac.abort();
13030
+ if (this.destroyed) {
13031
+ terminateEarly();
13032
+ return;
13033
+ }
13034
+ try {
13035
+ sendTest();
13036
+ } catch {
13037
+ __privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
13038
+ }
13039
+ });
13040
+ const sendTest = () => {
13041
+ const testObj = new Uint8Array();
13042
+ messageHandler.send("test", testObj, [testObj.buffer]);
13043
+ };
13044
+ sendTest();
13045
+ return;
13046
+ } catch {
13047
+ info("The worker has been disabled.");
13048
+ }
13049
+ __privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
13050
+ };
13051
+ setupFakeWorker_fn = function() {
13052
+ if (!__privateGet(_PDFWorker, _isWorkerDisabled)) {
13053
+ warn("Setting up fake worker.");
13054
+ __privateSet(_PDFWorker, _isWorkerDisabled, true);
13055
+ }
13056
+ _PDFWorker._setupFakeWorkerGlobal.then((WorkerMessageHandler) => {
13057
+ if (this.destroyed) {
13058
+ __privateGet(this, _capability3).reject(new Error("Worker was destroyed"));
13059
+ return;
13060
+ }
13061
+ const port = new LoopbackPort();
13062
+ __privateSet(this, _port2, port);
13063
+ const id = `fake${__privateWrapper(_PDFWorker, _fakeWorkerId)._++}`;
13064
+ const workerHandler = new MessageHandler(id + "_worker", id, port);
13065
+ WorkerMessageHandler.setup(workerHandler, port);
13066
+ __privateSet(this, _messageHandler, new MessageHandler(id, id + "_worker", port));
13067
+ __privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
13068
+ }).catch((reason) => {
13069
+ __privateGet(this, _capability3).reject(
13070
+ new Error(`Setting up fake worker failed: "${reason.message}".`)
13071
+ );
13072
+ });
13073
+ };
12942
13074
  _PDFWorker_static = new WeakSet();
12943
13075
  mainThreadWorkerMessageHandler_get = function() {
12944
13076
  try {
@@ -12950,7 +13082,7 @@ mainThreadWorkerMessageHandler_get = function() {
12950
13082
  __privateAdd(_PDFWorker, _PDFWorker_static);
12951
13083
  __privateAdd(_PDFWorker, _fakeWorkerId, 0);
12952
13084
  __privateAdd(_PDFWorker, _isWorkerDisabled, false);
12953
- __privateAdd(_PDFWorker, _workerPorts);
13085
+ __privateAdd(_PDFWorker, _workerPorts, /* @__PURE__ */ new WeakMap());
12954
13086
  (() => {
12955
13087
  if (true) {
12956
13088
  if (isNodeJS) {
@@ -12971,6 +13103,21 @@ __privateAdd(_PDFWorker, _workerPorts);
12971
13103
  new Blob([wrapper], { type: "text/javascript" })
12972
13104
  );
12973
13105
  };
13106
+ _PDFWorker.fromPort = (params) => {
13107
+ deprecated(
13108
+ "`PDFWorker.fromPort` - please use `PDFWorker.create` instead."
13109
+ );
13110
+ if (!params?.port) {
13111
+ throw new Error("PDFWorker.fromPort - invalid method signature.");
13112
+ }
13113
+ return _PDFWorker.create(params);
13114
+ };
13115
+ }
13116
+ if (false) {
13117
+ _PDFWorker._resetGlobalState = () => {
13118
+ __privateSet(_PDFWorker, _isWorkerDisabled, false);
13119
+ delete globalThis.pdfjsWorker;
13120
+ };
12974
13121
  }
12975
13122
  })();
12976
13123
  var PDFWorker = _PDFWorker;
@@ -13536,100 +13683,6 @@ cacheSimpleMethod_fn = function(name, data = null) {
13536
13683
  __privateGet(this, _methodPromises).set(name, promise);
13537
13684
  return promise;
13538
13685
  };
13539
- var INITIAL_DATA = Symbol("INITIAL_DATA");
13540
- var _objs, _PDFObjects_instances, ensureObj_fn;
13541
- var PDFObjects = class {
13542
- constructor() {
13543
- __privateAdd(this, _PDFObjects_instances);
13544
- __privateAdd(this, _objs, /* @__PURE__ */ Object.create(null));
13545
- }
13546
- /**
13547
- * If called *without* callback, this returns the data of `objId` but the
13548
- * object needs to be resolved. If it isn't, this method throws.
13549
- *
13550
- * If called *with* a callback, the callback is called with the data of the
13551
- * object once the object is resolved. That means, if you call this method
13552
- * and the object is already resolved, the callback gets called right away.
13553
- *
13554
- * @param {string} objId
13555
- * @param {function} [callback]
13556
- * @returns {any}
13557
- */
13558
- get(objId, callback = null) {
13559
- if (callback) {
13560
- const obj2 = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
13561
- obj2.promise.then(() => callback(obj2.data));
13562
- return null;
13563
- }
13564
- const obj = __privateGet(this, _objs)[objId];
13565
- if (!obj || obj.data === INITIAL_DATA) {
13566
- throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
13567
- }
13568
- return obj.data;
13569
- }
13570
- /**
13571
- * @param {string} objId
13572
- * @returns {boolean}
13573
- */
13574
- has(objId) {
13575
- const obj = __privateGet(this, _objs)[objId];
13576
- return !!obj && obj.data !== INITIAL_DATA;
13577
- }
13578
- /**
13579
- * @param {string} objId
13580
- * @returns {boolean}
13581
- */
13582
- delete(objId) {
13583
- const obj = __privateGet(this, _objs)[objId];
13584
- if (!obj || obj.data === INITIAL_DATA) {
13585
- return false;
13586
- }
13587
- delete __privateGet(this, _objs)[objId];
13588
- return true;
13589
- }
13590
- /**
13591
- * Resolves the object `objId` with optional `data`.
13592
- *
13593
- * @param {string} objId
13594
- * @param {any} [data]
13595
- */
13596
- resolve(objId, data = null) {
13597
- const obj = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
13598
- obj.data = data;
13599
- obj.resolve();
13600
- }
13601
- clear() {
13602
- for (const objId in __privateGet(this, _objs)) {
13603
- const { data } = __privateGet(this, _objs)[objId];
13604
- data?.bitmap?.close();
13605
- }
13606
- __privateSet(this, _objs, /* @__PURE__ */ Object.create(null));
13607
- }
13608
- *[Symbol.iterator]() {
13609
- for (const objId in __privateGet(this, _objs)) {
13610
- const { data } = __privateGet(this, _objs)[objId];
13611
- if (data === INITIAL_DATA) {
13612
- continue;
13613
- }
13614
- yield [objId, data];
13615
- }
13616
- }
13617
- };
13618
- _objs = new WeakMap();
13619
- _PDFObjects_instances = new WeakSet();
13620
- /**
13621
- * Ensures there is an object defined for `objId`.
13622
- *
13623
- * @param {string} objId
13624
- * @returns {Object}
13625
- */
13626
- ensureObj_fn = function(objId) {
13627
- var _a2;
13628
- return (_a2 = __privateGet(this, _objs))[objId] || (_a2[objId] = {
13629
- ...Promise.withResolvers(),
13630
- data: INITIAL_DATA
13631
- });
13632
- };
13633
13686
  var _internalRenderTask;
13634
13687
  var RenderTask = class {
13635
13688
  constructor(internalRenderTask) {
@@ -17145,12 +17198,9 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17145
17198
  }
17146
17199
  /** @inheritdoc */
17147
17200
  enableEditMode() {
17148
- if (this.isInEditMode()) {
17149
- return;
17201
+ if (!super.enableEditMode()) {
17202
+ return false;
17150
17203
  }
17151
- this.parent.setEditingState(false);
17152
- this.parent.updateToolbar(AnnotationEditorType.FREETEXT);
17153
- super.enableEditMode();
17154
17204
  this.overlayDiv.classList.remove("enabled");
17155
17205
  this.editorDiv.contentEditable = true;
17156
17206
  this._isDraggable = false;
@@ -17180,14 +17230,13 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17180
17230
  this.editorDiv.addEventListener("paste", this.editorDivPaste.bind(this), {
17181
17231
  signal
17182
17232
  });
17233
+ return true;
17183
17234
  }
17184
17235
  /** @inheritdoc */
17185
17236
  disableEditMode() {
17186
- if (!this.isInEditMode()) {
17187
- return;
17237
+ if (!super.disableEditMode()) {
17238
+ return false;
17188
17239
  }
17189
- this.parent.setEditingState(true);
17190
- super.disableEditMode();
17191
17240
  this.overlayDiv.classList.add("enabled");
17192
17241
  this.editorDiv.contentEditable = false;
17193
17242
  this.div.setAttribute("aria-activedescendant", __privateGet(this, _editorDivId));
@@ -17199,6 +17248,7 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17199
17248
  });
17200
17249
  this.isEditing = false;
17201
17250
  this.parent.div.classList.add("freetextEditing");
17251
+ return true;
17202
17252
  }
17203
17253
  /** @inheritdoc */
17204
17254
  focusin(event) {
@@ -17282,17 +17332,7 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17282
17332
  this.enableEditMode();
17283
17333
  this.editorDiv.focus();
17284
17334
  }
17285
- /**
17286
- * ondblclick callback.
17287
- * @param {MouseEvent} event
17288
- */
17289
- dblclick(event) {
17290
- this.enterInEditMode();
17291
- }
17292
- /**
17293
- * onkeydown callback.
17294
- * @param {KeyboardEvent} event
17295
- */
17335
+ /** @inheritdoc */
17296
17336
  keydown(event) {
17297
17337
  if (event.target === this.div && event.key === "Enter") {
17298
17338
  this.enterInEditMode();
@@ -17322,6 +17362,10 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17322
17362
  this.editorDiv.setAttribute("aria-multiline", true);
17323
17363
  }
17324
17364
  /** @inheritdoc */
17365
+ get canChangeContent() {
17366
+ return true;
17367
+ }
17368
+ /** @inheritdoc */
17325
17369
  render() {
17326
17370
  if (this.div) {
17327
17371
  return this.div;
@@ -17346,7 +17390,6 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
17346
17390
  this.overlayDiv = document.createElement("div");
17347
17391
  this.overlayDiv.classList.add("overlay", "enabled");
17348
17392
  this.div.append(this.overlayDiv);
17349
- bindEvents(this, this.div, ["dblclick", "keydown"]);
17350
17393
  if (this._isCopy || this.annotationElementId) {
17351
17394
  const [parentWidth, parentHeight] = this.parentDimensions;
17352
17395
  if (this.annotationElementId) {
@@ -22177,14 +22220,8 @@ getGrayPixels_fn = function(bitmap) {
22177
22220
  const isteps = Math.floor(steps);
22178
22221
  steps = steps === isteps ? isteps - 1 : isteps;
22179
22222
  for (let i = 0; i < steps; i++) {
22180
- newWidth = prevWidth;
22181
- newHeight = prevHeight;
22182
- if (newWidth > maxDim) {
22183
- newWidth = Math.ceil(newWidth / 2);
22184
- }
22185
- if (newHeight > maxDim) {
22186
- newHeight = Math.ceil(newHeight / 2);
22187
- }
22223
+ newWidth = Math.ceil(prevWidth / 2);
22224
+ newHeight = Math.ceil(prevHeight / 2);
22188
22225
  const offscreen2 = new OffscreenCanvas(newWidth, newHeight);
22189
22226
  const ctx2 = offscreen2.getContext("2d");
22190
22227
  ctx2.drawImage(
@@ -22258,7 +22295,7 @@ var SignatureOptions = class _SignatureOptions extends DrawingOptions {
22258
22295
  constructor() {
22259
22296
  super();
22260
22297
  super.updateProperties({
22261
- fill: "CanvasText",
22298
+ fill: AnnotationEditor._defaultLineColor,
22262
22299
  "stroke-width": 0
22263
22300
  });
22264
22301
  }
@@ -22272,7 +22309,7 @@ var DrawnSignatureOptions = class _DrawnSignatureOptions extends InkDrawingOptio
22272
22309
  constructor(viewerParameters) {
22273
22310
  super(viewerParameters);
22274
22311
  super.updateProperties({
22275
- stroke: "CanvasText",
22312
+ stroke: AnnotationEditor._defaultLineColor,
22276
22313
  "stroke-width": 1
22277
22314
  });
22278
22315
  }
@@ -22645,9 +22682,10 @@ var StampEditor = class extends AnnotationEditor {
22645
22682
  }
22646
22683
  /** @inheritdoc */
22647
22684
  static paste(item, parent) {
22648
- parent.pasteEditor(AnnotationEditorType.STAMP, {
22649
- bitmapFile: item.getAsFile()
22650
- });
22685
+ parent.pasteEditor(
22686
+ { mode: AnnotationEditorType.STAMP },
22687
+ { bitmapFile: item.getAsFile() }
22688
+ );
22651
22689
  }
22652
22690
  /** @inheritdoc */
22653
22691
  altTextFinish() {
@@ -23412,10 +23450,10 @@ var _AnnotationEditorLayer = class _AnnotationEditorLayer {
23412
23450
  }
23413
23451
  /**
23414
23452
  * Update the toolbar if it's required to reflect the tool currently used.
23415
- * @param {number} mode
23453
+ * @param {Object} options
23416
23454
  */
23417
- updateToolbar(mode) {
23418
- __privateGet(this, _uiManager3).updateToolbar(mode);
23455
+ updateToolbar(options) {
23456
+ __privateGet(this, _uiManager3).updateToolbar(options);
23419
23457
  }
23420
23458
  /**
23421
23459
  * The mode has changed: it must be updated.
@@ -23774,12 +23812,12 @@ var _AnnotationEditorLayer = class _AnnotationEditorLayer {
23774
23812
  }
23775
23813
  /**
23776
23814
  * Paste some content into a new editor.
23777
- * @param {number} mode
23815
+ * @param {Object} options
23778
23816
  * @param {Object} params
23779
23817
  */
23780
- async pasteEditor(mode, params) {
23781
- __privateGet(this, _uiManager3).updateToolbar(mode);
23782
- await __privateGet(this, _uiManager3).updateMode(mode);
23818
+ async pasteEditor(options, params) {
23819
+ this.updateToolbar(options);
23820
+ await __privateGet(this, _uiManager3).updateMode(options.mode);
23783
23821
  const { offsetX, offsetY } = __privateMethod(this, _AnnotationEditorLayer_instances, getCenterPoint_fn).call(this);
23784
23822
  const id = this.getNextId();
23785
23823
  const editor = __privateMethod(this, _AnnotationEditorLayer_instances, createNewEditor_fn).call(this, {
@@ -24355,10 +24393,63 @@ var DrawLayer = _DrawLayer;
24355
24393
 
24356
24394
  // src/pdf.js/src/pdf.js
24357
24395
  if (false) {
24358
- globalThis.pdfjsTestingUtils = {
24396
+ globalThis._pdfjsTestingUtils = {
24359
24397
  HighlightOutliner
24360
24398
  };
24361
24399
  }
24400
+ globalThis.pdfjsLib = {
24401
+ AbortException,
24402
+ AnnotationEditorLayer,
24403
+ AnnotationEditorParamsType,
24404
+ AnnotationEditorType,
24405
+ AnnotationEditorUIManager,
24406
+ AnnotationLayer,
24407
+ AnnotationMode,
24408
+ AnnotationType,
24409
+ build,
24410
+ ColorPicker,
24411
+ createValidAbsoluteUrl,
24412
+ DOMSVGFactory,
24413
+ DrawLayer,
24414
+ FeatureTest,
24415
+ fetchData,
24416
+ getDocument,
24417
+ getFilenameFromUrl,
24418
+ getPdfFilenameFromUrl,
24419
+ getUuid,
24420
+ getXfaPageViewport,
24421
+ GlobalWorkerOptions,
24422
+ ImageKind,
24423
+ InvalidPDFException,
24424
+ isDataScheme,
24425
+ isPdfFile,
24426
+ isValidExplicitDest,
24427
+ MathClamp,
24428
+ noContextMenu,
24429
+ normalizeUnicode,
24430
+ OPS,
24431
+ OutputScale,
24432
+ PasswordResponses,
24433
+ PDFDataRangeTransport,
24434
+ PDFDateString,
24435
+ PDFWorker,
24436
+ PermissionFlag,
24437
+ PixelsPerInch,
24438
+ RenderingCancelledException,
24439
+ ResponseException,
24440
+ setLayerDimensions,
24441
+ shadow,
24442
+ SignatureExtractor,
24443
+ stopEvent,
24444
+ SupportedImageMimeTypes,
24445
+ TextLayer,
24446
+ TouchManager,
24447
+ updateUrlHash,
24448
+ Util,
24449
+ VerbosityLevel,
24450
+ version,
24451
+ XfaLayer
24452
+ };
24362
24453
 
24363
24454
  // src/lib/AnnotationOperatorsList.ts
24364
24455
  var AnnotationOperatorsList = class {
@@ -25357,6 +25448,26 @@ function makeSerializable(object) {
25357
25448
  ])
25358
25449
  );
25359
25450
  }
25451
+ function colorToRgb(color) {
25452
+ if (color.startsWith("#")) {
25453
+ const hex = color.slice(1);
25454
+ if (hex.length === 3) {
25455
+ return [
25456
+ Number.parseInt(hex[0] + hex[0], 16),
25457
+ Number.parseInt(hex[1] + hex[1], 16),
25458
+ Number.parseInt(hex[2] + hex[2], 16)
25459
+ ];
25460
+ }
25461
+ if (hex.length === 6) {
25462
+ return [
25463
+ Number.parseInt(hex.slice(0, 2), 16),
25464
+ Number.parseInt(hex.slice(2, 4), 16),
25465
+ Number.parseInt(hex.slice(4, 6), 16)
25466
+ ];
25467
+ }
25468
+ }
25469
+ throw new Error(`Invalid color format: ${color}`);
25470
+ }
25360
25471
 
25361
25472
  // src/lib/PDFPageProxy.ts
25362
25473
  var getAnnotations = PDFPageProxy.prototype.getAnnotations;
@@ -25482,10 +25593,18 @@ PDFPageProxy.prototype.getAnnotations = async function(params) {
25482
25593
  annotation.borderStyle.width = currentLineWidth;
25483
25594
  }
25484
25595
  if (fn === OPS.setStrokeRGBColor && firstStroke) {
25485
- annotation.color = args;
25596
+ if (typeof args[0] === "string") {
25597
+ annotation.color = colorToRgb(args[0]);
25598
+ } else {
25599
+ annotation.color = args;
25600
+ }
25486
25601
  }
25487
25602
  if (fn === OPS.setFillRGBColor && firstFill) {
25488
- currentFillColor = args;
25603
+ if (typeof args[0] === "string") {
25604
+ currentFillColor = colorToRgb(args[0]);
25605
+ } else {
25606
+ currentFillColor = args;
25607
+ }
25489
25608
  }
25490
25609
  if (fn === OPS.setGState) {
25491
25610
  for (const entry of args[0]) {
@@ -25528,11 +25647,11 @@ var WasmFactory = class {
25528
25647
  async fetch({ filename }) {
25529
25648
  switch (filename) {
25530
25649
  case "openjpeg.wasm":
25531
- return import("./openjpeg-NLAGCGEG.js").then(
25650
+ return import("./openjpeg-K2XBCFFN.js").then(
25532
25651
  (module) => module.default
25533
25652
  );
25534
25653
  case "qcms_bg":
25535
- return import("./qcms_bg-EPYCMBVV.js").then(
25654
+ return import("./qcms_bg-Q7BRLLZG.js").then(
25536
25655
  (module) => module.default
25537
25656
  );
25538
25657
  }
@@ -26198,6 +26317,7 @@ export {
26198
26317
  XfaLayer,
26199
26318
  build,
26200
26319
  canvasToData,
26320
+ colorToRgb,
26201
26321
  createCanvas,
26202
26322
  createSvgContext,
26203
26323
  createTextLayer,
@@ -26254,5 +26374,6 @@ export {
26254
26374
  stopEvent,
26255
26375
  toDataUrl,
26256
26376
  toSvgNode,
26377
+ updateUrlHash,
26257
26378
  version
26258
26379
  };