@chialab/pdfjs-lib 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (122) hide show
  1. package/README.md +15 -7
  2. package/dist/browser/NodeUtilsStabs-MUAXKISB.js +19 -0
  3. package/dist/browser/chunk-3ZTAZS2X.js +25 -0
  4. package/dist/browser/{chunk-DYHYQ33L.js → chunk-AQCSGHG6.js} +1578 -83
  5. package/dist/browser/index.js +8181 -4159
  6. package/dist/browser/openjpeg-QOD5OH7M.js +9 -0
  7. package/dist/browser/qcms_bg-Q7BRLLZG.js +9 -0
  8. package/dist/browser/worker.js +8390 -7851
  9. package/dist/index.d.ts +10 -1
  10. package/dist/lib/AnnotationData.d.ts +12 -8
  11. package/dist/lib/AnnotationOperatorsList.d.ts +21 -0
  12. package/dist/lib/Canvas.d.ts +2 -7
  13. package/dist/lib/CanvasGraphics.d.ts +1 -0
  14. package/dist/lib/NodeCanvasFactory.d.ts +9 -0
  15. package/dist/lib/NodeFilterFactory.d.ts +10 -0
  16. package/dist/lib/NodeUtils.d.ts +24 -0
  17. package/dist/lib/Path2D.d.ts +9 -49
  18. package/dist/lib/StandardFontDataFactory.d.ts +2 -2
  19. package/dist/lib/StructTreePage.d.ts +5 -0
  20. package/dist/lib/Svg.d.ts +144 -0
  21. package/dist/lib/SvgCanvasContext.d.ts +38 -24
  22. package/dist/lib/TextLayer.d.ts +56 -17
  23. package/dist/lib/WasmFactory.d.ts +5 -0
  24. package/dist/lib/utils.d.ts +26 -3
  25. package/dist/node/NodeUtils-WQF223ZR.js +20 -0
  26. package/dist/node/chunk-5N6O7ENF.js +2065 -0
  27. package/dist/node/chunk-QUZQQXZM.js +1225 -0
  28. package/dist/node/chunk-SW5MJNUM.js +2090 -0
  29. package/dist/node/index.js +7309 -4996
  30. package/dist/node/openjpeg-JTQTBXER.js +9 -0
  31. package/dist/node/qcms_bg-T4RSHPOQ.js +9 -0
  32. package/dist/node/worker.js +8399 -7858
  33. package/dist/pdf.js/external/openjpeg/openjpeg.d.ts +2 -0
  34. package/dist/pdf.js/external/qcms/qcms.d.ts +92 -0
  35. package/dist/pdf.js/external/qcms/qcms_utils.d.ts +14 -0
  36. package/dist/pdf.js/src/core/arithmetic_decoder.d.ts +21 -0
  37. package/dist/pdf.js/src/core/ascii_85_stream.d.ts +8 -0
  38. package/dist/pdf.js/src/core/ascii_hex_stream.d.ts +8 -0
  39. package/dist/pdf.js/src/core/base_stream.d.ts +32 -0
  40. package/dist/pdf.js/src/core/bidi.d.ts +4 -0
  41. package/dist/pdf.js/src/core/binary_cmap.d.ts +3 -0
  42. package/dist/pdf.js/src/core/ccitt.d.ts +72 -0
  43. package/dist/pdf.js/src/core/ccitt_stream.d.ts +9 -0
  44. package/dist/pdf.js/src/core/cff_font.d.ts +15 -0
  45. package/dist/pdf.js/src/core/cff_parser.d.ts +166 -0
  46. package/dist/pdf.js/src/core/charsets.d.ts +3 -0
  47. package/dist/pdf.js/src/core/cmap.d.ts +37 -0
  48. package/dist/pdf.js/src/core/colorspace.d.ts +177 -0
  49. package/dist/pdf.js/src/core/colorspace_utils.d.ts +21 -0
  50. package/dist/pdf.js/src/core/core_utils.d.ts +140 -0
  51. package/dist/pdf.js/src/core/decode_stream.d.ts +25 -0
  52. package/dist/pdf.js/src/core/encodings.d.ts +7 -0
  53. package/dist/pdf.js/src/core/flate_stream.d.ts +15 -0
  54. package/dist/pdf.js/src/core/font_renderer.d.ts +34 -0
  55. package/dist/pdf.js/src/core/fonts.d.ts +98 -0
  56. package/dist/pdf.js/src/core/fonts_utils.d.ts +32 -0
  57. package/dist/pdf.js/src/core/glyf.d.ts +44 -0
  58. package/dist/pdf.js/src/core/glyphlist.d.ts +2 -0
  59. package/dist/pdf.js/src/core/icc_colorspace.d.ts +22 -0
  60. package/dist/pdf.js/src/core/jbig2.d.ts +12 -0
  61. package/dist/pdf.js/src/core/jbig2_stream.d.ts +17 -0
  62. package/dist/pdf.js/src/core/jpeg_stream.d.ts +25 -0
  63. package/dist/pdf.js/src/core/jpg.d.ts +62 -0
  64. package/dist/pdf.js/src/core/jpx.d.ts +35 -0
  65. package/dist/pdf.js/src/core/jpx_stream.d.ts +17 -0
  66. package/dist/pdf.js/src/core/lzw_stream.d.ts +21 -0
  67. package/dist/pdf.js/src/core/metrics.d.ts +2 -0
  68. package/dist/pdf.js/src/core/name_number_tree.d.ts +21 -0
  69. package/dist/pdf.js/src/core/opentype_file_builder.d.ts +12 -0
  70. package/dist/pdf.js/src/core/parser.d.ts +81 -0
  71. package/dist/pdf.js/src/core/predictor_stream.d.ts +15 -0
  72. package/dist/pdf.js/src/core/primitives.d.ts +78 -0
  73. package/dist/pdf.js/src/core/run_length_stream.d.ts +7 -0
  74. package/dist/pdf.js/src/core/standard_fonts.d.ts +18 -0
  75. package/dist/pdf.js/src/core/stream.d.ts +21 -0
  76. package/dist/pdf.js/src/core/struct_tree.d.ts +92 -0
  77. package/dist/pdf.js/src/core/to_unicode_map.d.ts +21 -0
  78. package/dist/pdf.js/src/core/type1_font.d.ts +17 -0
  79. package/dist/pdf.js/src/core/type1_parser.d.ts +29 -0
  80. package/dist/pdf.js/src/core/unicode.d.ts +5 -0
  81. package/dist/pdf.js/src/display/annotation_layer.d.ts +35 -5
  82. package/dist/pdf.js/src/display/annotation_storage.d.ts +3 -8
  83. package/dist/pdf.js/src/display/api.d.ts +86 -77
  84. package/dist/pdf.js/src/display/api_utils.d.ts +13 -0
  85. package/dist/pdf.js/src/display/canvas.d.ts +88 -94
  86. package/dist/pdf.js/src/display/canvas_dependency_tracker.d.ts +160 -0
  87. package/dist/pdf.js/src/display/display_utils.d.ts +34 -1
  88. package/dist/pdf.js/src/display/draw_layer.d.ts +2 -2
  89. package/dist/pdf.js/src/display/editor/alt_text.d.ts +1 -1
  90. package/dist/pdf.js/src/display/editor/annotation_editor_layer.d.ts +10 -8
  91. package/dist/pdf.js/src/display/editor/color_picker.d.ts +20 -1
  92. package/dist/pdf.js/src/display/editor/comment.d.ts +47 -0
  93. package/dist/pdf.js/src/display/editor/draw.d.ts +8 -8
  94. package/dist/pdf.js/src/display/editor/drawers/freedraw.d.ts +4 -3
  95. package/dist/pdf.js/src/display/editor/drawers/highlight.d.ts +2 -1
  96. package/dist/pdf.js/src/display/editor/drawers/signaturedraw.d.ts +13 -13
  97. package/dist/pdf.js/src/display/editor/editor.d.ts +117 -16
  98. package/dist/pdf.js/src/display/editor/freetext.d.ts +11 -7
  99. package/dist/pdf.js/src/display/editor/highlight.d.ts +9 -3
  100. package/dist/pdf.js/src/display/editor/ink.d.ts +6 -0
  101. package/dist/pdf.js/src/display/editor/signature.d.ts +3 -5
  102. package/dist/pdf.js/src/display/editor/stamp.d.ts +4 -3
  103. package/dist/pdf.js/src/display/editor/toolbar.d.ts +8 -3
  104. package/dist/pdf.js/src/display/editor/tools.d.ts +36 -12
  105. package/dist/pdf.js/src/display/font_loader.d.ts +27 -1
  106. package/dist/pdf.js/src/display/metadata.d.ts +1 -2
  107. package/dist/pdf.js/src/display/optional_content_config.d.ts +1 -1
  108. package/dist/pdf.js/src/display/pattern_helper.d.ts +6 -4
  109. package/dist/pdf.js/src/display/pdf_objects.d.ts +40 -0
  110. package/dist/pdf.js/src/display/text_layer.d.ts +9 -9
  111. package/dist/pdf.js/src/display/touch_manager.d.ts +5 -1
  112. package/dist/pdf.js/src/display/worker_options.d.ts +2 -2
  113. package/dist/pdf.js/src/pdf.d.ts +9 -1
  114. package/dist/pdf.js/src/shared/obj-bin-transform.d.ts +64 -0
  115. package/dist/pdf.js/src/shared/scripting_utils.d.ts +2 -0
  116. package/dist/pdf.js/src/shared/util.d.ts +129 -102
  117. package/dist/pdf.js/web/comment_manager.d.ts +20 -0
  118. package/dist/pdf.js/web/interfaces.d.ts +7 -0
  119. package/dist/pdf.js/web/text_accessibility.d.ts +1 -1
  120. package/package.json +12 -3
  121. package/dist/node/chunk-KTTVPO2G.js +0 -1775
  122. package/dist/pdf.js/src/display/node_utils.d.ts +0 -32
@@ -2,7 +2,8 @@ import {
2
2
  __privateAdd,
3
3
  __privateGet,
4
4
  __privateMethod,
5
- __privateSet
5
+ __privateSet,
6
+ __publicField
6
7
  } from "./chunk-O4UKW7AD.js";
7
8
 
8
9
  // src/lib/polyfills.ts
@@ -48,7 +49,6 @@ if (!("try" in Promise)) {
48
49
 
49
50
  // src/pdf.js/src/shared/util.js
50
51
  var isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
51
- var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
52
52
  var FONT_IDENTITY_MATRIX = [1e-3, 0, 0, 1e-3, 0, 0];
53
53
  var LINE_FACTOR = 1.35;
54
54
  var LINE_DESCENT_FACTOR = 0.35;
@@ -78,7 +78,9 @@ var AnnotationEditorType = {
78
78
  HIGHLIGHT: 9,
79
79
  STAMP: 13,
80
80
  INK: 15,
81
- SIGNATURE: 101
81
+ POPUP: 16,
82
+ SIGNATURE: 101,
83
+ COMMENT: 102
82
84
  };
83
85
  var AnnotationEditorParamsType = {
84
86
  RESIZE: 1,
@@ -90,10 +92,9 @@ var AnnotationEditorParamsType = {
90
92
  INK_THICKNESS: 22,
91
93
  INK_OPACITY: 23,
92
94
  HIGHLIGHT_COLOR: 31,
93
- HIGHLIGHT_DEFAULT_COLOR: 32,
94
- HIGHLIGHT_THICKNESS: 33,
95
- HIGHLIGHT_FREE: 34,
96
- HIGHLIGHT_SHOW_ALL: 35,
95
+ HIGHLIGHT_THICKNESS: 32,
96
+ HIGHLIGHT_FREE: 33,
97
+ HIGHLIGHT_SHOW_ALL: 34,
97
98
  DRAW_STEP: 41
98
99
  };
99
100
  var PermissionFlag = {
@@ -324,7 +325,14 @@ var OPS = {
324
325
  paintSolidColorImageMask: 90,
325
326
  constructPath: 91,
326
327
  setStrokeTransparent: 92,
327
- setFillTransparent: 93
328
+ setFillTransparent: 93,
329
+ rawFillPath: 94
330
+ };
331
+ var DrawOPS = {
332
+ moveTo: 0,
333
+ lineTo: 1,
334
+ curveTo: 2,
335
+ closePath: 3
328
336
  };
329
337
  var PasswordResponses = {
330
338
  NEED_PASSWORD: 1,
@@ -341,12 +349,12 @@ function getVerbosityLevel() {
341
349
  }
342
350
  function info(msg) {
343
351
  if (verbosity >= VerbosityLevel.INFOS) {
344
- console.log(`Info: ${msg}`);
352
+ console.info(`Info: ${msg}`);
345
353
  }
346
354
  }
347
355
  function warn(msg) {
348
356
  if (verbosity >= VerbosityLevel.WARNINGS) {
349
- console.log(`Warning: ${msg}`);
357
+ console.warn(`Warning: ${msg}`);
350
358
  }
351
359
  }
352
360
  function unreachable(msg) {
@@ -390,6 +398,17 @@ function createValidAbsoluteUrl(url, baseUrl = null, options = null) {
390
398
  const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);
391
399
  return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;
392
400
  }
401
+ function updateUrlHash(url, hash, allowRel = false) {
402
+ const res = URL.parse(url);
403
+ if (res) {
404
+ res.hash = hash;
405
+ return res.href;
406
+ }
407
+ if (allowRel && createValidAbsoluteUrl(url, "http://example.com")) {
408
+ return url.split("#", 1)[0] + `${hash ? `#${hash}` : ""}`;
409
+ }
410
+ return "";
411
+ }
393
412
  function shadow(obj, prop, value, nonSerializable = false) {
394
413
  if (false) {
395
414
  assert(
@@ -405,7 +424,7 @@ function shadow(obj, prop, value, nonSerializable = false) {
405
424
  });
406
425
  return value;
407
426
  }
408
- var BaseException = function BaseExceptionClosure() {
427
+ var BaseException = (function BaseExceptionClosure() {
409
428
  function BaseException2(message, name) {
410
429
  if (false) {
411
430
  unreachable("Cannot initialize BaseException.");
@@ -416,7 +435,7 @@ var BaseException = function BaseExceptionClosure() {
416
435
  BaseException2.prototype = new Error();
417
436
  BaseException2.constructor = BaseException2;
418
437
  return BaseException2;
419
- }();
438
+ })();
420
439
  var PasswordException = class extends BaseException {
421
440
  constructor(msg, code) {
422
441
  super(msg, "PasswordException");
@@ -496,13 +515,6 @@ function string32(value) {
496
515
  function objectSize(obj) {
497
516
  return Object.keys(obj).length;
498
517
  }
499
- function objectFromMap(map) {
500
- const obj = /* @__PURE__ */ Object.create(null);
501
- for (const [key, value] of map) {
502
- obj[key] = value;
503
- }
504
- return obj;
505
- }
506
518
  function isLittleEndian() {
507
519
  const buffer8 = new Uint8Array(4);
508
520
  buffer8[0] = 1;
@@ -539,22 +551,13 @@ var FeatureTest = class {
539
551
  );
540
552
  }
541
553
  static get platform() {
542
- if (typeof navigator !== "undefined" && typeof navigator?.platform === "string" && typeof navigator?.userAgent === "string") {
543
- const { platform, userAgent } = navigator;
544
- return shadow(this, "platform", {
545
- isAndroid: userAgent.includes("Android"),
546
- isLinux: platform.includes("Linux"),
547
- isMac: platform.includes("Mac"),
548
- isWindows: platform.includes("Win"),
549
- isFirefox: userAgent.includes("Firefox")
550
- });
551
- }
554
+ const { platform, userAgent } = navigator;
552
555
  return shadow(this, "platform", {
553
- isAndroid: false,
554
- isLinux: false,
555
- isMac: false,
556
- isWindows: false,
557
- isFirefox: false
556
+ isAndroid: userAgent.includes("Android"),
557
+ isLinux: platform.includes("Linux"),
558
+ isMac: platform.includes("Mac"),
559
+ isWindows: platform.includes("Win"),
560
+ isFirefox: userAgent.includes("Firefox")
558
561
  });
559
562
  }
560
563
  static get isCSSRoundSupported() {
@@ -574,6 +577,9 @@ var Util = class {
574
577
  static makeHexColor(r, g, b) {
575
578
  return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;
576
579
  }
580
+ static domMatrixToTransform(dm) {
581
+ return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];
582
+ }
577
583
  // Apply a scaling matrix to some min/max values.
578
584
  // If a scaling factor is negative then min and max must be
579
585
  // swapped.
@@ -632,31 +638,84 @@ var Util = class {
632
638
  m1[1] * m2[4] + m1[3] * m2[5] + m1[5]
633
639
  ];
634
640
  }
641
+ // Multiplies m (an array-based transform) by md (a DOMMatrix transform).
642
+ static multiplyByDOMMatrix(m, md) {
643
+ return [
644
+ m[0] * md.a + m[2] * md.b,
645
+ m[1] * md.a + m[3] * md.b,
646
+ m[0] * md.c + m[2] * md.d,
647
+ m[1] * md.c + m[3] * md.d,
648
+ m[0] * md.e + m[2] * md.f + m[4],
649
+ m[1] * md.e + m[3] * md.f + m[5]
650
+ ];
651
+ }
635
652
  // For 2d affine transforms
636
- static applyTransform(p, m) {
637
- const xt = p[0] * m[0] + p[1] * m[2] + m[4];
638
- const yt = p[0] * m[1] + p[1] * m[3] + m[5];
639
- return [xt, yt];
653
+ static applyTransform(p, m, pos = 0) {
654
+ const p0 = p[pos];
655
+ const p1 = p[pos + 1];
656
+ p[pos] = p0 * m[0] + p1 * m[2] + m[4];
657
+ p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];
658
+ }
659
+ static applyTransformToBezier(p, transform, pos = 0) {
660
+ const m0 = transform[0];
661
+ const m1 = transform[1];
662
+ const m2 = transform[2];
663
+ const m3 = transform[3];
664
+ const m4 = transform[4];
665
+ const m5 = transform[5];
666
+ for (let i = 0; i < 6; i += 2) {
667
+ const pI = p[pos + i];
668
+ const pI1 = p[pos + i + 1];
669
+ p[pos + i] = pI * m0 + pI1 * m2 + m4;
670
+ p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;
671
+ }
640
672
  }
641
673
  static applyInverseTransform(p, m) {
674
+ const p0 = p[0];
675
+ const p1 = p[1];
642
676
  const d = m[0] * m[3] - m[1] * m[2];
643
- const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
644
- const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
645
- return [xt, yt];
677
+ p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
678
+ p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
646
679
  }
647
680
  // Applies the transform to the rectangle and finds the minimum axially
648
681
  // aligned bounding box.
649
- static getAxialAlignedBoundingBox(r, m) {
650
- const p1 = this.applyTransform(r, m);
651
- const p2 = this.applyTransform(r.slice(2, 4), m);
652
- const p3 = this.applyTransform([r[0], r[3]], m);
653
- const p4 = this.applyTransform([r[2], r[1]], m);
654
- return [
655
- Math.min(p1[0], p2[0], p3[0], p4[0]),
656
- Math.min(p1[1], p2[1], p3[1], p4[1]),
657
- Math.max(p1[0], p2[0], p3[0], p4[0]),
658
- Math.max(p1[1], p2[1], p3[1], p4[1])
659
- ];
682
+ static axialAlignedBoundingBox(rect, transform, output) {
683
+ const m0 = transform[0];
684
+ const m1 = transform[1];
685
+ const m2 = transform[2];
686
+ const m3 = transform[3];
687
+ const m4 = transform[4];
688
+ const m5 = transform[5];
689
+ const r0 = rect[0];
690
+ const r1 = rect[1];
691
+ const r2 = rect[2];
692
+ const r3 = rect[3];
693
+ let a0 = m0 * r0 + m4;
694
+ let a2 = a0;
695
+ let a1 = m0 * r2 + m4;
696
+ let a3 = a1;
697
+ let b0 = m3 * r1 + m5;
698
+ let b2 = b0;
699
+ let b1 = m3 * r3 + m5;
700
+ let b3 = b1;
701
+ if (m1 !== 0 || m2 !== 0) {
702
+ const m1r0 = m1 * r0;
703
+ const m1r2 = m1 * r2;
704
+ const m2r1 = m2 * r1;
705
+ const m2r3 = m2 * r3;
706
+ a0 += m2r1;
707
+ a3 += m2r1;
708
+ a1 += m2r3;
709
+ a2 += m2r3;
710
+ b0 += m1r0;
711
+ b3 += m1r0;
712
+ b1 += m1r2;
713
+ b2 += m1r2;
714
+ }
715
+ output[0] = Math.min(output[0], a0, a1, a2, a3);
716
+ output[1] = Math.min(output[1], b0, b1, b2, b3);
717
+ output[2] = Math.max(output[2], a0, a1, a2, a3);
718
+ output[3] = Math.max(output[3], b0, b1, b2, b3);
660
719
  }
661
720
  static inverseTransform(m) {
662
721
  const d = m[0] * m[3] - m[1] * m[2];
@@ -672,17 +731,18 @@ var Util = class {
672
731
  // This calculation uses Singular Value Decomposition.
673
732
  // The SVD can be represented with formula A = USV. We are interested in the
674
733
  // matrix S here because it represents the scale values.
675
- static singularValueDecompose2dScale(m) {
676
- const transpose = [m[0], m[2], m[1], m[3]];
677
- const a = m[0] * transpose[0] + m[1] * transpose[2];
678
- const b = m[0] * transpose[1] + m[1] * transpose[3];
679
- const c = m[2] * transpose[0] + m[3] * transpose[2];
680
- const d = m[2] * transpose[1] + m[3] * transpose[3];
681
- const first = (a + d) / 2;
682
- const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;
683
- const sx = first + second || 1;
684
- const sy = first - second || 1;
685
- return [Math.sqrt(sx), Math.sqrt(sy)];
734
+ static singularValueDecompose2dScale(matrix, output) {
735
+ const m0 = matrix[0];
736
+ const m1 = matrix[1];
737
+ const m2 = matrix[2];
738
+ const m3 = matrix[3];
739
+ const a = m0 ** 2 + m1 ** 2;
740
+ const b = m0 * m2 + m1 * m3;
741
+ const c = m2 ** 2 + m3 ** 2;
742
+ const first = (a + c) / 2;
743
+ const second = Math.sqrt(first ** 2 - (a * c - b ** 2));
744
+ output[0] = Math.sqrt(first + second || 1);
745
+ output[1] = Math.sqrt(first - second || 1);
686
746
  }
687
747
  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)
688
748
  // For coordinate systems whose origin lies in the bottom-left, this
@@ -728,24 +788,26 @@ var Util = class {
728
788
  }
729
789
  return [xLow, yLow, xHigh, yHigh];
730
790
  }
791
+ static pointBoundingBox(x, y, minMax) {
792
+ minMax[0] = Math.min(minMax[0], x);
793
+ minMax[1] = Math.min(minMax[1], y);
794
+ minMax[2] = Math.max(minMax[2], x);
795
+ minMax[3] = Math.max(minMax[3], y);
796
+ }
797
+ static rectBoundingBox(x0, y0, x1, y1, minMax) {
798
+ minMax[0] = Math.min(minMax[0], x0, x1);
799
+ minMax[1] = Math.min(minMax[1], y0, y1);
800
+ minMax[2] = Math.max(minMax[2], x0, x1);
801
+ minMax[3] = Math.max(minMax[3], y0, y1);
802
+ }
731
803
  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852
732
804
  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {
733
- if (minMax) {
734
- minMax[0] = Math.min(minMax[0], x0, x3);
735
- minMax[1] = Math.min(minMax[1], y0, y3);
736
- minMax[2] = Math.max(minMax[2], x0, x3);
737
- minMax[3] = Math.max(minMax[3], y0, y3);
738
- } else {
739
- minMax = [
740
- Math.min(x0, x3),
741
- Math.min(y0, y3),
742
- Math.max(x0, x3),
743
- Math.max(y0, y3)
744
- ];
745
- }
805
+ minMax[0] = Math.min(minMax[0], x0, x3);
806
+ minMax[1] = Math.min(minMax[1], y0, y3);
807
+ minMax[2] = Math.max(minMax[2], x0, x3);
808
+ minMax[3] = Math.max(minMax[3], y0, y3);
746
809
  __privateMethod(this, _Util_static, getExtremum_fn).call(this, x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);
747
810
  __privateMethod(this, _Util_static, getExtremum_fn).call(this, x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);
748
- return minMax;
749
811
  }
750
812
  };
751
813
  _Util_static = new WeakSet();
@@ -943,7 +1005,7 @@ var PDFStringTranslateTable = [
943
1005
  0,
944
1006
  8364
945
1007
  ];
946
- function stringToPDFString(str) {
1008
+ function stringToPDFString(str, keepEscapeSequence = false) {
947
1009
  if (str[0] >= "\xEF") {
948
1010
  let encoding;
949
1011
  if (str[0] === "\xFE" && str[1] === "\xFF") {
@@ -964,7 +1026,7 @@ function stringToPDFString(str) {
964
1026
  const decoder = new TextDecoder(encoding, { fatal: true });
965
1027
  const buffer = stringToBytes(str);
966
1028
  const decoded = decoder.decode(buffer);
967
- if (!decoded.includes("\x1B")) {
1029
+ if (keepEscapeSequence || !decoded.includes("\x1B")) {
968
1030
  return decoded;
969
1031
  }
970
1032
  return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "");
@@ -976,7 +1038,7 @@ function stringToPDFString(str) {
976
1038
  const strBuf = [];
977
1039
  for (let i = 0, ii = str.length; i < ii; i++) {
978
1040
  const charCode = str.charCodeAt(i);
979
- if (charCode === 27) {
1041
+ if (!keepEscapeSequence && charCode === 27) {
980
1042
  while (++i < ii && str.charCodeAt(i) !== 27) {
981
1043
  }
982
1044
  continue;
@@ -1004,6 +1066,9 @@ function isArrayEqual(arr1, arr2) {
1004
1066
  return true;
1005
1067
  }
1006
1068
  function getModificationDate(date = /* @__PURE__ */ new Date()) {
1069
+ if (!(date instanceof Date)) {
1070
+ date = new Date(date);
1071
+ }
1007
1072
  const buffer = [
1008
1073
  date.getUTCFullYear().toString(),
1009
1074
  (date.getUTCMonth() + 1).toString().padStart(2, "0"),
@@ -1035,6 +1100,56 @@ function getUuid() {
1035
1100
  return bytesToString(buf);
1036
1101
  }
1037
1102
  var AnnotationPrefix = "pdfjs_internal_id_";
1103
+ function _isValidExplicitDest(validRef, validName, dest) {
1104
+ if (!Array.isArray(dest) || dest.length < 2) {
1105
+ return false;
1106
+ }
1107
+ const [page, zoom, ...args] = dest;
1108
+ if (!validRef(page) && !Number.isInteger(page)) {
1109
+ return false;
1110
+ }
1111
+ if (!validName(zoom)) {
1112
+ return false;
1113
+ }
1114
+ const argsLen = args.length;
1115
+ let allowNull = true;
1116
+ switch (zoom.name) {
1117
+ case "XYZ":
1118
+ if (argsLen < 2 || argsLen > 3) {
1119
+ return false;
1120
+ }
1121
+ break;
1122
+ case "Fit":
1123
+ case "FitB":
1124
+ return argsLen === 0;
1125
+ case "FitH":
1126
+ case "FitBH":
1127
+ case "FitV":
1128
+ case "FitBV":
1129
+ if (argsLen > 1) {
1130
+ return false;
1131
+ }
1132
+ break;
1133
+ case "FitR":
1134
+ if (argsLen !== 4) {
1135
+ return false;
1136
+ }
1137
+ allowNull = false;
1138
+ break;
1139
+ default:
1140
+ return false;
1141
+ }
1142
+ for (const arg of args) {
1143
+ if (typeof arg === "number" || allowNull && arg === null) {
1144
+ continue;
1145
+ }
1146
+ return false;
1147
+ }
1148
+ return true;
1149
+ }
1150
+ function MathClamp(v, min, max) {
1151
+ return Math.min(Math.max(v, min), max);
1152
+ }
1038
1153
  function toHexUtil(arr) {
1039
1154
  if (Uint8Array.prototype.toHex) {
1040
1155
  return arr.toHex();
@@ -1060,6 +1175,34 @@ if (false) {
1060
1175
  });
1061
1176
  };
1062
1177
  }
1178
+ if (typeof Math.sumPrecise !== "function") {
1179
+ Math.sumPrecise = function(numbers) {
1180
+ return numbers.reduce((a, b) => a + b, 0);
1181
+ };
1182
+ }
1183
+ if (false) {
1184
+ AbortSignal.any = function(iterable) {
1185
+ const ac = new AbortController();
1186
+ const { signal } = ac;
1187
+ for (const s of iterable) {
1188
+ if (s.aborted) {
1189
+ ac.abort(s.reason);
1190
+ return signal;
1191
+ }
1192
+ }
1193
+ for (const s of iterable) {
1194
+ s.addEventListener(
1195
+ "abort",
1196
+ () => {
1197
+ ac.abort(s.reason);
1198
+ },
1199
+ { signal }
1200
+ // Automatically remove the listener.
1201
+ );
1202
+ }
1203
+ return signal;
1204
+ };
1205
+ }
1063
1206
 
1064
1207
  // src/pdf.js/src/shared/message_handler.js
1065
1208
  var CallbackKind = {
@@ -1516,6 +1659,1351 @@ deleteStreamController_fn = async function(streamController, streamId) {
1516
1659
  delete this.streamControllers[streamId];
1517
1660
  };
1518
1661
 
1662
+ // src/pdf.js/src/shared/obj-bin-transform.js
1663
+ var _buffer, _view, _decoder, _CssFontInfo_instances, readString_fn;
1664
+ var _CssFontInfo = class _CssFontInfo {
1665
+ constructor(buffer) {
1666
+ __privateAdd(this, _CssFontInfo_instances);
1667
+ __privateAdd(this, _buffer);
1668
+ __privateAdd(this, _view);
1669
+ __privateAdd(this, _decoder);
1670
+ __privateSet(this, _buffer, buffer);
1671
+ __privateSet(this, _view, new DataView(__privateGet(this, _buffer)));
1672
+ __privateSet(this, _decoder, new TextDecoder());
1673
+ }
1674
+ static write(info2) {
1675
+ const encoder = new TextEncoder();
1676
+ const encodedStrings = {};
1677
+ let stringsLength = 0;
1678
+ for (const prop of _CssFontInfo.strings) {
1679
+ const encoded = encoder.encode(info2[prop]);
1680
+ encodedStrings[prop] = encoded;
1681
+ stringsLength += 4 + encoded.length;
1682
+ }
1683
+ const buffer = new ArrayBuffer(stringsLength);
1684
+ const data = new Uint8Array(buffer);
1685
+ const view = new DataView(buffer);
1686
+ let offset = 0;
1687
+ for (const prop of _CssFontInfo.strings) {
1688
+ const encoded = encodedStrings[prop];
1689
+ const length = encoded.length;
1690
+ view.setUint32(offset, length);
1691
+ data.set(encoded, offset + 4);
1692
+ offset += 4 + length;
1693
+ }
1694
+ assert(offset === buffer.byteLength, "CssFontInfo.write: Buffer overflow");
1695
+ return buffer;
1696
+ }
1697
+ get fontFamily() {
1698
+ return __privateMethod(this, _CssFontInfo_instances, readString_fn).call(this, 0);
1699
+ }
1700
+ get fontWeight() {
1701
+ return __privateMethod(this, _CssFontInfo_instances, readString_fn).call(this, 1);
1702
+ }
1703
+ get italicAngle() {
1704
+ return __privateMethod(this, _CssFontInfo_instances, readString_fn).call(this, 2);
1705
+ }
1706
+ };
1707
+ _buffer = new WeakMap();
1708
+ _view = new WeakMap();
1709
+ _decoder = new WeakMap();
1710
+ _CssFontInfo_instances = new WeakSet();
1711
+ readString_fn = function(index) {
1712
+ assert(index < _CssFontInfo.strings.length, "Invalid string index");
1713
+ let offset = 0;
1714
+ for (let i = 0; i < index; i++) {
1715
+ offset += __privateGet(this, _view).getUint32(offset) + 4;
1716
+ }
1717
+ const length = __privateGet(this, _view).getUint32(offset);
1718
+ return __privateGet(this, _decoder).decode(
1719
+ new Uint8Array(__privateGet(this, _buffer), offset + 4, length)
1720
+ );
1721
+ };
1722
+ __publicField(_CssFontInfo, "strings", ["fontFamily", "fontWeight", "italicAngle"]);
1723
+ var CssFontInfo = _CssFontInfo;
1724
+ var _buffer2, _view2, _decoder2, _SystemFontInfo_instances, readString_fn2;
1725
+ var _SystemFontInfo = class _SystemFontInfo {
1726
+ constructor(buffer) {
1727
+ __privateAdd(this, _SystemFontInfo_instances);
1728
+ __privateAdd(this, _buffer2);
1729
+ __privateAdd(this, _view2);
1730
+ __privateAdd(this, _decoder2);
1731
+ __privateSet(this, _buffer2, buffer);
1732
+ __privateSet(this, _view2, new DataView(__privateGet(this, _buffer2)));
1733
+ __privateSet(this, _decoder2, new TextDecoder());
1734
+ }
1735
+ static write(info2) {
1736
+ const encoder = new TextEncoder();
1737
+ const encodedStrings = {};
1738
+ let stringsLength = 0;
1739
+ for (const prop of _SystemFontInfo.strings) {
1740
+ const encoded = encoder.encode(info2[prop]);
1741
+ encodedStrings[prop] = encoded;
1742
+ stringsLength += 4 + encoded.length;
1743
+ }
1744
+ stringsLength += 4;
1745
+ let encodedStyleStyle, encodedStyleWeight, lengthEstimate = 1 + stringsLength;
1746
+ if (info2.style) {
1747
+ encodedStyleStyle = encoder.encode(info2.style.style);
1748
+ encodedStyleWeight = encoder.encode(info2.style.weight);
1749
+ lengthEstimate += 4 + encodedStyleStyle.length + 4 + encodedStyleWeight.length;
1750
+ }
1751
+ const buffer = new ArrayBuffer(lengthEstimate);
1752
+ const data = new Uint8Array(buffer);
1753
+ const view = new DataView(buffer);
1754
+ let offset = 0;
1755
+ view.setUint8(offset++, info2.guessFallback ? 1 : 0);
1756
+ view.setUint32(offset, 0);
1757
+ offset += 4;
1758
+ stringsLength = 0;
1759
+ for (const prop of _SystemFontInfo.strings) {
1760
+ const encoded = encodedStrings[prop];
1761
+ const length = encoded.length;
1762
+ stringsLength += 4 + length;
1763
+ view.setUint32(offset, length);
1764
+ data.set(encoded, offset + 4);
1765
+ offset += 4 + length;
1766
+ }
1767
+ view.setUint32(offset - stringsLength - 4, stringsLength);
1768
+ if (info2.style) {
1769
+ view.setUint32(offset, encodedStyleStyle.length);
1770
+ data.set(encodedStyleStyle, offset + 4);
1771
+ offset += 4 + encodedStyleStyle.length;
1772
+ view.setUint32(offset, encodedStyleWeight.length);
1773
+ data.set(encodedStyleWeight, offset + 4);
1774
+ offset += 4 + encodedStyleWeight.length;
1775
+ }
1776
+ assert(
1777
+ offset <= buffer.byteLength,
1778
+ "SubstitionInfo.write: Buffer overflow"
1779
+ );
1780
+ return buffer.transferToFixedLength(offset);
1781
+ }
1782
+ get guessFallback() {
1783
+ return __privateGet(this, _view2).getUint8(0) !== 0;
1784
+ }
1785
+ get css() {
1786
+ return __privateMethod(this, _SystemFontInfo_instances, readString_fn2).call(this, 0);
1787
+ }
1788
+ get loadedName() {
1789
+ return __privateMethod(this, _SystemFontInfo_instances, readString_fn2).call(this, 1);
1790
+ }
1791
+ get baseFontName() {
1792
+ return __privateMethod(this, _SystemFontInfo_instances, readString_fn2).call(this, 2);
1793
+ }
1794
+ get src() {
1795
+ return __privateMethod(this, _SystemFontInfo_instances, readString_fn2).call(this, 3);
1796
+ }
1797
+ get style() {
1798
+ let offset = 1;
1799
+ offset += 4 + __privateGet(this, _view2).getUint32(offset);
1800
+ const styleLength = __privateGet(this, _view2).getUint32(offset);
1801
+ const style = __privateGet(this, _decoder2).decode(
1802
+ new Uint8Array(__privateGet(this, _buffer2), offset + 4, styleLength)
1803
+ );
1804
+ offset += 4 + styleLength;
1805
+ const weightLength = __privateGet(this, _view2).getUint32(offset);
1806
+ const weight = __privateGet(this, _decoder2).decode(
1807
+ new Uint8Array(__privateGet(this, _buffer2), offset + 4, weightLength)
1808
+ );
1809
+ return { style, weight };
1810
+ }
1811
+ };
1812
+ _buffer2 = new WeakMap();
1813
+ _view2 = new WeakMap();
1814
+ _decoder2 = new WeakMap();
1815
+ _SystemFontInfo_instances = new WeakSet();
1816
+ readString_fn2 = function(index) {
1817
+ assert(index < _SystemFontInfo.strings.length, "Invalid string index");
1818
+ let offset = 5;
1819
+ for (let i = 0; i < index; i++) {
1820
+ offset += __privateGet(this, _view2).getUint32(offset) + 4;
1821
+ }
1822
+ const length = __privateGet(this, _view2).getUint32(offset);
1823
+ return __privateGet(this, _decoder2).decode(
1824
+ new Uint8Array(__privateGet(this, _buffer2), offset + 4, length)
1825
+ );
1826
+ };
1827
+ __publicField(_SystemFontInfo, "strings", ["css", "loadedName", "baseFontName", "src"]);
1828
+ var SystemFontInfo = _SystemFontInfo;
1829
+ var _OFFSET_NUMBERS, _OFFSET_BBOX, _OFFSET_FONT_MATRIX, _OFFSET_DEFAULT_VMETRICS, _OFFSET_STRINGS, _buffer3, _decoder3, _view3, _FontInfo_instances, readBoolean_fn, readNumber_fn, readString_fn3;
1830
+ var _FontInfo = class _FontInfo {
1831
+ constructor({ data, extra }) {
1832
+ __privateAdd(this, _FontInfo_instances);
1833
+ __privateAdd(this, _buffer3);
1834
+ __privateAdd(this, _decoder3);
1835
+ __privateAdd(this, _view3);
1836
+ __privateSet(this, _buffer3, data);
1837
+ __privateSet(this, _decoder3, new TextDecoder());
1838
+ __privateSet(this, _view3, new DataView(__privateGet(this, _buffer3)));
1839
+ if (extra) {
1840
+ Object.assign(this, extra);
1841
+ }
1842
+ }
1843
+ get black() {
1844
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 0);
1845
+ }
1846
+ get bold() {
1847
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 1);
1848
+ }
1849
+ get disableFontFace() {
1850
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 2);
1851
+ }
1852
+ get fontExtraProperties() {
1853
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 3);
1854
+ }
1855
+ get isInvalidPDFjsFont() {
1856
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 4);
1857
+ }
1858
+ get isType3Font() {
1859
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 5);
1860
+ }
1861
+ get italic() {
1862
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 6);
1863
+ }
1864
+ get missingFile() {
1865
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 7);
1866
+ }
1867
+ get remeasure() {
1868
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 8);
1869
+ }
1870
+ get vertical() {
1871
+ return __privateMethod(this, _FontInfo_instances, readBoolean_fn).call(this, 9);
1872
+ }
1873
+ get ascent() {
1874
+ return __privateMethod(this, _FontInfo_instances, readNumber_fn).call(this, 0);
1875
+ }
1876
+ get defaultWidth() {
1877
+ return __privateMethod(this, _FontInfo_instances, readNumber_fn).call(this, 1);
1878
+ }
1879
+ get descent() {
1880
+ return __privateMethod(this, _FontInfo_instances, readNumber_fn).call(this, 2);
1881
+ }
1882
+ get bbox() {
1883
+ let offset = __privateGet(_FontInfo, _OFFSET_BBOX);
1884
+ const numCoords = __privateGet(this, _view3).getUint8(offset);
1885
+ if (numCoords === 0) {
1886
+ return void 0;
1887
+ }
1888
+ offset += 1;
1889
+ const bbox = [];
1890
+ for (let i = 0; i < 4; i++) {
1891
+ bbox.push(__privateGet(this, _view3).getInt16(offset, true));
1892
+ offset += 2;
1893
+ }
1894
+ return bbox;
1895
+ }
1896
+ get fontMatrix() {
1897
+ let offset = __privateGet(_FontInfo, _OFFSET_FONT_MATRIX);
1898
+ const numPoints = __privateGet(this, _view3).getUint8(offset);
1899
+ if (numPoints === 0) {
1900
+ return void 0;
1901
+ }
1902
+ offset += 1;
1903
+ const fontMatrix = [];
1904
+ for (let i = 0; i < 6; i++) {
1905
+ fontMatrix.push(__privateGet(this, _view3).getFloat64(offset, true));
1906
+ offset += 8;
1907
+ }
1908
+ return fontMatrix;
1909
+ }
1910
+ get defaultVMetrics() {
1911
+ let offset = __privateGet(_FontInfo, _OFFSET_DEFAULT_VMETRICS);
1912
+ const numMetrics = __privateGet(this, _view3).getUint8(offset);
1913
+ if (numMetrics === 0) {
1914
+ return void 0;
1915
+ }
1916
+ offset += 1;
1917
+ const defaultVMetrics = [];
1918
+ for (let i = 0; i < 3; i++) {
1919
+ defaultVMetrics.push(__privateGet(this, _view3).getInt16(offset, true));
1920
+ offset += 2;
1921
+ }
1922
+ return defaultVMetrics;
1923
+ }
1924
+ get fallbackName() {
1925
+ return __privateMethod(this, _FontInfo_instances, readString_fn3).call(this, 0);
1926
+ }
1927
+ get loadedName() {
1928
+ return __privateMethod(this, _FontInfo_instances, readString_fn3).call(this, 1);
1929
+ }
1930
+ get mimetype() {
1931
+ return __privateMethod(this, _FontInfo_instances, readString_fn3).call(this, 2);
1932
+ }
1933
+ get name() {
1934
+ return __privateMethod(this, _FontInfo_instances, readString_fn3).call(this, 3);
1935
+ }
1936
+ get data() {
1937
+ let offset = __privateGet(_FontInfo, _OFFSET_STRINGS);
1938
+ const stringsLength = __privateGet(this, _view3).getUint32(offset);
1939
+ offset += 4 + stringsLength;
1940
+ const systemFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1941
+ offset += 4 + systemFontInfoLength;
1942
+ const cssFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1943
+ offset += 4 + cssFontInfoLength;
1944
+ const length = __privateGet(this, _view3).getUint32(offset);
1945
+ if (length === 0) {
1946
+ return void 0;
1947
+ }
1948
+ return new Uint8Array(__privateGet(this, _buffer3), offset + 4, length);
1949
+ }
1950
+ clearData() {
1951
+ let offset = __privateGet(_FontInfo, _OFFSET_STRINGS);
1952
+ const stringsLength = __privateGet(this, _view3).getUint32(offset);
1953
+ offset += 4 + stringsLength;
1954
+ const systemFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1955
+ offset += 4 + systemFontInfoLength;
1956
+ const cssFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1957
+ offset += 4 + cssFontInfoLength;
1958
+ const length = __privateGet(this, _view3).getUint32(offset);
1959
+ const data = new Uint8Array(__privateGet(this, _buffer3), offset + 4, length);
1960
+ data.fill(0);
1961
+ __privateGet(this, _view3).setUint32(offset, 0);
1962
+ }
1963
+ get cssFontInfo() {
1964
+ let offset = __privateGet(_FontInfo, _OFFSET_STRINGS);
1965
+ const stringsLength = __privateGet(this, _view3).getUint32(offset);
1966
+ offset += 4 + stringsLength;
1967
+ const systemFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1968
+ offset += 4 + systemFontInfoLength;
1969
+ const cssFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1970
+ if (cssFontInfoLength === 0) {
1971
+ return null;
1972
+ }
1973
+ const cssFontInfoData = new Uint8Array(cssFontInfoLength);
1974
+ cssFontInfoData.set(
1975
+ new Uint8Array(__privateGet(this, _buffer3), offset + 4, cssFontInfoLength)
1976
+ );
1977
+ return new CssFontInfo(cssFontInfoData.buffer);
1978
+ }
1979
+ get systemFontInfo() {
1980
+ let offset = __privateGet(_FontInfo, _OFFSET_STRINGS);
1981
+ const stringsLength = __privateGet(this, _view3).getUint32(offset);
1982
+ offset += 4 + stringsLength;
1983
+ const systemFontInfoLength = __privateGet(this, _view3).getUint32(offset);
1984
+ if (systemFontInfoLength === 0) {
1985
+ return null;
1986
+ }
1987
+ const systemFontInfoData = new Uint8Array(systemFontInfoLength);
1988
+ systemFontInfoData.set(
1989
+ new Uint8Array(__privateGet(this, _buffer3), offset + 4, systemFontInfoLength)
1990
+ );
1991
+ return new SystemFontInfo(systemFontInfoData.buffer);
1992
+ }
1993
+ static write(font) {
1994
+ const systemFontInfoBuffer = font.systemFontInfo ? SystemFontInfo.write(font.systemFontInfo) : null;
1995
+ const cssFontInfoBuffer = font.cssFontInfo ? CssFontInfo.write(font.cssFontInfo) : null;
1996
+ const encoder = new TextEncoder();
1997
+ const encodedStrings = {};
1998
+ let stringsLength = 0;
1999
+ for (const prop of _FontInfo.strings) {
2000
+ encodedStrings[prop] = encoder.encode(font[prop]);
2001
+ stringsLength += 4 + encodedStrings[prop].length;
2002
+ }
2003
+ const lengthEstimate = __privateGet(_FontInfo, _OFFSET_STRINGS) + 4 + stringsLength + 4 + (systemFontInfoBuffer ? systemFontInfoBuffer.byteLength : 0) + 4 + (cssFontInfoBuffer ? cssFontInfoBuffer.byteLength : 0) + 4 + (font.data ? font.data.length : 0);
2004
+ const buffer = new ArrayBuffer(lengthEstimate);
2005
+ const data = new Uint8Array(buffer);
2006
+ const view = new DataView(buffer);
2007
+ let offset = 0;
2008
+ const numBools = _FontInfo.bools.length;
2009
+ let boolByte = 0, boolBit = 0;
2010
+ for (let i = 0; i < numBools; i++) {
2011
+ const value = font[_FontInfo.bools[i]];
2012
+ const bits = value === void 0 ? 0 : value ? 2 : 1;
2013
+ boolByte |= bits << boolBit;
2014
+ boolBit += 2;
2015
+ if (boolBit === 8 || i === numBools - 1) {
2016
+ view.setUint8(offset++, boolByte);
2017
+ boolByte = 0;
2018
+ boolBit = 0;
2019
+ }
2020
+ }
2021
+ assert(
2022
+ offset === __privateGet(_FontInfo, _OFFSET_NUMBERS),
2023
+ "FontInfo.write: Boolean properties offset mismatch"
2024
+ );
2025
+ for (const prop of _FontInfo.numbers) {
2026
+ view.setFloat64(offset, font[prop]);
2027
+ offset += 8;
2028
+ }
2029
+ assert(
2030
+ offset === __privateGet(_FontInfo, _OFFSET_BBOX),
2031
+ "FontInfo.write: Number properties offset mismatch"
2032
+ );
2033
+ if (font.bbox) {
2034
+ view.setUint8(offset++, 4);
2035
+ for (const coord of font.bbox) {
2036
+ view.setInt16(offset, coord, true);
2037
+ offset += 2;
2038
+ }
2039
+ } else {
2040
+ view.setUint8(offset++, 0);
2041
+ offset += 2 * 4;
2042
+ }
2043
+ assert(
2044
+ offset === __privateGet(_FontInfo, _OFFSET_FONT_MATRIX),
2045
+ "FontInfo.write: BBox properties offset mismatch"
2046
+ );
2047
+ if (font.fontMatrix) {
2048
+ view.setUint8(offset++, 6);
2049
+ for (const point of font.fontMatrix) {
2050
+ view.setFloat64(offset, point, true);
2051
+ offset += 8;
2052
+ }
2053
+ } else {
2054
+ view.setUint8(offset++, 0);
2055
+ offset += 8 * 6;
2056
+ }
2057
+ assert(
2058
+ offset === __privateGet(_FontInfo, _OFFSET_DEFAULT_VMETRICS),
2059
+ "FontInfo.write: FontMatrix properties offset mismatch"
2060
+ );
2061
+ if (font.defaultVMetrics) {
2062
+ view.setUint8(offset++, 1);
2063
+ for (const metric of font.defaultVMetrics) {
2064
+ view.setInt16(offset, metric, true);
2065
+ offset += 2;
2066
+ }
2067
+ } else {
2068
+ view.setUint8(offset++, 0);
2069
+ offset += 3 * 2;
2070
+ }
2071
+ assert(
2072
+ offset === __privateGet(_FontInfo, _OFFSET_STRINGS),
2073
+ "FontInfo.write: DefaultVMetrics properties offset mismatch"
2074
+ );
2075
+ view.setUint32(__privateGet(_FontInfo, _OFFSET_STRINGS), 0);
2076
+ offset += 4;
2077
+ for (const prop of _FontInfo.strings) {
2078
+ const encoded = encodedStrings[prop];
2079
+ const length = encoded.length;
2080
+ view.setUint32(offset, length);
2081
+ data.set(encoded, offset + 4);
2082
+ offset += 4 + length;
2083
+ }
2084
+ view.setUint32(
2085
+ __privateGet(_FontInfo, _OFFSET_STRINGS),
2086
+ offset - __privateGet(_FontInfo, _OFFSET_STRINGS) - 4
2087
+ );
2088
+ if (!systemFontInfoBuffer) {
2089
+ view.setUint32(offset, 0);
2090
+ offset += 4;
2091
+ } else {
2092
+ const length = systemFontInfoBuffer.byteLength;
2093
+ view.setUint32(offset, length);
2094
+ assert(
2095
+ offset + 4 + length <= buffer.byteLength,
2096
+ "FontInfo.write: Buffer overflow at systemFontInfo"
2097
+ );
2098
+ data.set(new Uint8Array(systemFontInfoBuffer), offset + 4);
2099
+ offset += 4 + length;
2100
+ }
2101
+ if (!cssFontInfoBuffer) {
2102
+ view.setUint32(offset, 0);
2103
+ offset += 4;
2104
+ } else {
2105
+ const length = cssFontInfoBuffer.byteLength;
2106
+ view.setUint32(offset, length);
2107
+ assert(
2108
+ offset + 4 + length <= buffer.byteLength,
2109
+ "FontInfo.write: Buffer overflow at cssFontInfo"
2110
+ );
2111
+ data.set(new Uint8Array(cssFontInfoBuffer), offset + 4);
2112
+ offset += 4 + length;
2113
+ }
2114
+ if (font.data === void 0) {
2115
+ view.setUint32(offset, 0);
2116
+ offset += 4;
2117
+ } else {
2118
+ view.setUint32(offset, font.data.length);
2119
+ data.set(font.data, offset + 4);
2120
+ offset += 4 + font.data.length;
2121
+ }
2122
+ assert(offset <= buffer.byteLength, "FontInfo.write: Buffer overflow");
2123
+ return buffer.transferToFixedLength(offset);
2124
+ }
2125
+ };
2126
+ _OFFSET_NUMBERS = new WeakMap();
2127
+ _OFFSET_BBOX = new WeakMap();
2128
+ _OFFSET_FONT_MATRIX = new WeakMap();
2129
+ _OFFSET_DEFAULT_VMETRICS = new WeakMap();
2130
+ _OFFSET_STRINGS = new WeakMap();
2131
+ _buffer3 = new WeakMap();
2132
+ _decoder3 = new WeakMap();
2133
+ _view3 = new WeakMap();
2134
+ _FontInfo_instances = new WeakSet();
2135
+ readBoolean_fn = function(index) {
2136
+ assert(index < _FontInfo.bools.length, "Invalid boolean index");
2137
+ const byteOffset = Math.floor(index / 4);
2138
+ const bitOffset = index * 2 % 8;
2139
+ const value = __privateGet(this, _view3).getUint8(byteOffset) >> bitOffset & 3;
2140
+ return value === 0 ? void 0 : value === 2;
2141
+ };
2142
+ readNumber_fn = function(index) {
2143
+ assert(index < _FontInfo.numbers.length, "Invalid number index");
2144
+ return __privateGet(this, _view3).getFloat64(__privateGet(_FontInfo, _OFFSET_NUMBERS) + index * 8);
2145
+ };
2146
+ readString_fn3 = function(index) {
2147
+ assert(index < _FontInfo.strings.length, "Invalid string index");
2148
+ let offset = __privateGet(_FontInfo, _OFFSET_STRINGS) + 4;
2149
+ for (let i = 0; i < index; i++) {
2150
+ offset += __privateGet(this, _view3).getUint32(offset) + 4;
2151
+ }
2152
+ const length = __privateGet(this, _view3).getUint32(offset);
2153
+ const stringData = new Uint8Array(length);
2154
+ stringData.set(new Uint8Array(__privateGet(this, _buffer3), offset + 4, length));
2155
+ return __privateGet(this, _decoder3).decode(stringData);
2156
+ };
2157
+ __publicField(_FontInfo, "bools", [
2158
+ "black",
2159
+ "bold",
2160
+ "disableFontFace",
2161
+ "fontExtraProperties",
2162
+ "isInvalidPDFjsFont",
2163
+ "isType3Font",
2164
+ "italic",
2165
+ "missingFile",
2166
+ "remeasure",
2167
+ "vertical"
2168
+ ]);
2169
+ __publicField(_FontInfo, "numbers", ["ascent", "defaultWidth", "descent"]);
2170
+ __publicField(_FontInfo, "strings", ["fallbackName", "loadedName", "mimetype", "name"]);
2171
+ __privateAdd(_FontInfo, _OFFSET_NUMBERS, Math.ceil(_FontInfo.bools.length * 2 / 8));
2172
+ __privateAdd(_FontInfo, _OFFSET_BBOX, __privateGet(_FontInfo, _OFFSET_NUMBERS) + _FontInfo.numbers.length * 8);
2173
+ __privateAdd(_FontInfo, _OFFSET_FONT_MATRIX, __privateGet(_FontInfo, _OFFSET_BBOX) + 1 + 2 * 4);
2174
+ __privateAdd(_FontInfo, _OFFSET_DEFAULT_VMETRICS, __privateGet(_FontInfo, _OFFSET_FONT_MATRIX) + 1 + 8 * 6);
2175
+ __privateAdd(_FontInfo, _OFFSET_STRINGS, __privateGet(_FontInfo, _OFFSET_DEFAULT_VMETRICS) + 1 + 2 * 3);
2176
+ var FontInfo = _FontInfo;
2177
+
2178
+ // src/pdf.js/src/core/bidi.js
2179
+ var baseTypes = [
2180
+ "BN",
2181
+ "BN",
2182
+ "BN",
2183
+ "BN",
2184
+ "BN",
2185
+ "BN",
2186
+ "BN",
2187
+ "BN",
2188
+ "BN",
2189
+ "S",
2190
+ "B",
2191
+ "S",
2192
+ "WS",
2193
+ "B",
2194
+ "BN",
2195
+ "BN",
2196
+ "BN",
2197
+ "BN",
2198
+ "BN",
2199
+ "BN",
2200
+ "BN",
2201
+ "BN",
2202
+ "BN",
2203
+ "BN",
2204
+ "BN",
2205
+ "BN",
2206
+ "BN",
2207
+ "BN",
2208
+ "B",
2209
+ "B",
2210
+ "B",
2211
+ "S",
2212
+ "WS",
2213
+ "ON",
2214
+ "ON",
2215
+ "ET",
2216
+ "ET",
2217
+ "ET",
2218
+ "ON",
2219
+ "ON",
2220
+ "ON",
2221
+ "ON",
2222
+ "ON",
2223
+ "ES",
2224
+ "CS",
2225
+ "ES",
2226
+ "CS",
2227
+ "CS",
2228
+ "EN",
2229
+ "EN",
2230
+ "EN",
2231
+ "EN",
2232
+ "EN",
2233
+ "EN",
2234
+ "EN",
2235
+ "EN",
2236
+ "EN",
2237
+ "EN",
2238
+ "CS",
2239
+ "ON",
2240
+ "ON",
2241
+ "ON",
2242
+ "ON",
2243
+ "ON",
2244
+ "ON",
2245
+ "L",
2246
+ "L",
2247
+ "L",
2248
+ "L",
2249
+ "L",
2250
+ "L",
2251
+ "L",
2252
+ "L",
2253
+ "L",
2254
+ "L",
2255
+ "L",
2256
+ "L",
2257
+ "L",
2258
+ "L",
2259
+ "L",
2260
+ "L",
2261
+ "L",
2262
+ "L",
2263
+ "L",
2264
+ "L",
2265
+ "L",
2266
+ "L",
2267
+ "L",
2268
+ "L",
2269
+ "L",
2270
+ "L",
2271
+ "ON",
2272
+ "ON",
2273
+ "ON",
2274
+ "ON",
2275
+ "ON",
2276
+ "ON",
2277
+ "L",
2278
+ "L",
2279
+ "L",
2280
+ "L",
2281
+ "L",
2282
+ "L",
2283
+ "L",
2284
+ "L",
2285
+ "L",
2286
+ "L",
2287
+ "L",
2288
+ "L",
2289
+ "L",
2290
+ "L",
2291
+ "L",
2292
+ "L",
2293
+ "L",
2294
+ "L",
2295
+ "L",
2296
+ "L",
2297
+ "L",
2298
+ "L",
2299
+ "L",
2300
+ "L",
2301
+ "L",
2302
+ "L",
2303
+ "ON",
2304
+ "ON",
2305
+ "ON",
2306
+ "ON",
2307
+ "BN",
2308
+ "BN",
2309
+ "BN",
2310
+ "BN",
2311
+ "BN",
2312
+ "BN",
2313
+ "B",
2314
+ "BN",
2315
+ "BN",
2316
+ "BN",
2317
+ "BN",
2318
+ "BN",
2319
+ "BN",
2320
+ "BN",
2321
+ "BN",
2322
+ "BN",
2323
+ "BN",
2324
+ "BN",
2325
+ "BN",
2326
+ "BN",
2327
+ "BN",
2328
+ "BN",
2329
+ "BN",
2330
+ "BN",
2331
+ "BN",
2332
+ "BN",
2333
+ "BN",
2334
+ "BN",
2335
+ "BN",
2336
+ "BN",
2337
+ "BN",
2338
+ "BN",
2339
+ "BN",
2340
+ "CS",
2341
+ "ON",
2342
+ "ET",
2343
+ "ET",
2344
+ "ET",
2345
+ "ET",
2346
+ "ON",
2347
+ "ON",
2348
+ "ON",
2349
+ "ON",
2350
+ "L",
2351
+ "ON",
2352
+ "ON",
2353
+ "BN",
2354
+ "ON",
2355
+ "ON",
2356
+ "ET",
2357
+ "ET",
2358
+ "EN",
2359
+ "EN",
2360
+ "ON",
2361
+ "L",
2362
+ "ON",
2363
+ "ON",
2364
+ "ON",
2365
+ "EN",
2366
+ "L",
2367
+ "ON",
2368
+ "ON",
2369
+ "ON",
2370
+ "ON",
2371
+ "ON",
2372
+ "L",
2373
+ "L",
2374
+ "L",
2375
+ "L",
2376
+ "L",
2377
+ "L",
2378
+ "L",
2379
+ "L",
2380
+ "L",
2381
+ "L",
2382
+ "L",
2383
+ "L",
2384
+ "L",
2385
+ "L",
2386
+ "L",
2387
+ "L",
2388
+ "L",
2389
+ "L",
2390
+ "L",
2391
+ "L",
2392
+ "L",
2393
+ "L",
2394
+ "L",
2395
+ "ON",
2396
+ "L",
2397
+ "L",
2398
+ "L",
2399
+ "L",
2400
+ "L",
2401
+ "L",
2402
+ "L",
2403
+ "L",
2404
+ "L",
2405
+ "L",
2406
+ "L",
2407
+ "L",
2408
+ "L",
2409
+ "L",
2410
+ "L",
2411
+ "L",
2412
+ "L",
2413
+ "L",
2414
+ "L",
2415
+ "L",
2416
+ "L",
2417
+ "L",
2418
+ "L",
2419
+ "L",
2420
+ "L",
2421
+ "L",
2422
+ "L",
2423
+ "L",
2424
+ "L",
2425
+ "L",
2426
+ "L",
2427
+ "ON",
2428
+ "L",
2429
+ "L",
2430
+ "L",
2431
+ "L",
2432
+ "L",
2433
+ "L",
2434
+ "L",
2435
+ "L"
2436
+ ];
2437
+ var arabicTypes = [
2438
+ "AN",
2439
+ "AN",
2440
+ "AN",
2441
+ "AN",
2442
+ "AN",
2443
+ "AN",
2444
+ "ON",
2445
+ "ON",
2446
+ "AL",
2447
+ "ET",
2448
+ "ET",
2449
+ "AL",
2450
+ "CS",
2451
+ "AL",
2452
+ "ON",
2453
+ "ON",
2454
+ "NSM",
2455
+ "NSM",
2456
+ "NSM",
2457
+ "NSM",
2458
+ "NSM",
2459
+ "NSM",
2460
+ "NSM",
2461
+ "NSM",
2462
+ "NSM",
2463
+ "NSM",
2464
+ "NSM",
2465
+ "AL",
2466
+ "AL",
2467
+ "",
2468
+ "AL",
2469
+ "AL",
2470
+ "AL",
2471
+ "AL",
2472
+ "AL",
2473
+ "AL",
2474
+ "AL",
2475
+ "AL",
2476
+ "AL",
2477
+ "AL",
2478
+ "AL",
2479
+ "AL",
2480
+ "AL",
2481
+ "AL",
2482
+ "AL",
2483
+ "AL",
2484
+ "AL",
2485
+ "AL",
2486
+ "AL",
2487
+ "AL",
2488
+ "AL",
2489
+ "AL",
2490
+ "AL",
2491
+ "AL",
2492
+ "AL",
2493
+ "AL",
2494
+ "AL",
2495
+ "AL",
2496
+ "AL",
2497
+ "AL",
2498
+ "AL",
2499
+ "AL",
2500
+ "AL",
2501
+ "AL",
2502
+ "AL",
2503
+ "AL",
2504
+ "AL",
2505
+ "AL",
2506
+ "AL",
2507
+ "AL",
2508
+ "AL",
2509
+ "AL",
2510
+ "AL",
2511
+ "AL",
2512
+ "AL",
2513
+ "NSM",
2514
+ "NSM",
2515
+ "NSM",
2516
+ "NSM",
2517
+ "NSM",
2518
+ "NSM",
2519
+ "NSM",
2520
+ "NSM",
2521
+ "NSM",
2522
+ "NSM",
2523
+ "NSM",
2524
+ "NSM",
2525
+ "NSM",
2526
+ "NSM",
2527
+ "NSM",
2528
+ "NSM",
2529
+ "NSM",
2530
+ "NSM",
2531
+ "NSM",
2532
+ "NSM",
2533
+ "NSM",
2534
+ "AN",
2535
+ "AN",
2536
+ "AN",
2537
+ "AN",
2538
+ "AN",
2539
+ "AN",
2540
+ "AN",
2541
+ "AN",
2542
+ "AN",
2543
+ "AN",
2544
+ "ET",
2545
+ "AN",
2546
+ "AN",
2547
+ "AL",
2548
+ "AL",
2549
+ "AL",
2550
+ "NSM",
2551
+ "AL",
2552
+ "AL",
2553
+ "AL",
2554
+ "AL",
2555
+ "AL",
2556
+ "AL",
2557
+ "AL",
2558
+ "AL",
2559
+ "AL",
2560
+ "AL",
2561
+ "AL",
2562
+ "AL",
2563
+ "AL",
2564
+ "AL",
2565
+ "AL",
2566
+ "AL",
2567
+ "AL",
2568
+ "AL",
2569
+ "AL",
2570
+ "AL",
2571
+ "AL",
2572
+ "AL",
2573
+ "AL",
2574
+ "AL",
2575
+ "AL",
2576
+ "AL",
2577
+ "AL",
2578
+ "AL",
2579
+ "AL",
2580
+ "AL",
2581
+ "AL",
2582
+ "AL",
2583
+ "AL",
2584
+ "AL",
2585
+ "AL",
2586
+ "AL",
2587
+ "AL",
2588
+ "AL",
2589
+ "AL",
2590
+ "AL",
2591
+ "AL",
2592
+ "AL",
2593
+ "AL",
2594
+ "AL",
2595
+ "AL",
2596
+ "AL",
2597
+ "AL",
2598
+ "AL",
2599
+ "AL",
2600
+ "AL",
2601
+ "AL",
2602
+ "AL",
2603
+ "AL",
2604
+ "AL",
2605
+ "AL",
2606
+ "AL",
2607
+ "AL",
2608
+ "AL",
2609
+ "AL",
2610
+ "AL",
2611
+ "AL",
2612
+ "AL",
2613
+ "AL",
2614
+ "AL",
2615
+ "AL",
2616
+ "AL",
2617
+ "AL",
2618
+ "AL",
2619
+ "AL",
2620
+ "AL",
2621
+ "AL",
2622
+ "AL",
2623
+ "AL",
2624
+ "AL",
2625
+ "AL",
2626
+ "AL",
2627
+ "AL",
2628
+ "AL",
2629
+ "AL",
2630
+ "AL",
2631
+ "AL",
2632
+ "AL",
2633
+ "AL",
2634
+ "AL",
2635
+ "AL",
2636
+ "AL",
2637
+ "AL",
2638
+ "AL",
2639
+ "AL",
2640
+ "AL",
2641
+ "AL",
2642
+ "AL",
2643
+ "AL",
2644
+ "AL",
2645
+ "AL",
2646
+ "AL",
2647
+ "AL",
2648
+ "AL",
2649
+ "AL",
2650
+ "AL",
2651
+ "AL",
2652
+ "NSM",
2653
+ "NSM",
2654
+ "NSM",
2655
+ "NSM",
2656
+ "NSM",
2657
+ "NSM",
2658
+ "NSM",
2659
+ "AN",
2660
+ "ON",
2661
+ "NSM",
2662
+ "NSM",
2663
+ "NSM",
2664
+ "NSM",
2665
+ "NSM",
2666
+ "NSM",
2667
+ "AL",
2668
+ "AL",
2669
+ "NSM",
2670
+ "NSM",
2671
+ "ON",
2672
+ "NSM",
2673
+ "NSM",
2674
+ "NSM",
2675
+ "NSM",
2676
+ "AL",
2677
+ "AL",
2678
+ "EN",
2679
+ "EN",
2680
+ "EN",
2681
+ "EN",
2682
+ "EN",
2683
+ "EN",
2684
+ "EN",
2685
+ "EN",
2686
+ "EN",
2687
+ "EN",
2688
+ "AL",
2689
+ "AL",
2690
+ "AL",
2691
+ "AL",
2692
+ "AL",
2693
+ "AL"
2694
+ ];
2695
+ function isOdd(i) {
2696
+ return (i & 1) !== 0;
2697
+ }
2698
+ function isEven(i) {
2699
+ return (i & 1) === 0;
2700
+ }
2701
+ function findUnequal(arr, start, value) {
2702
+ let j, jj;
2703
+ for (j = start, jj = arr.length; j < jj; ++j) {
2704
+ if (arr[j] !== value) {
2705
+ return j;
2706
+ }
2707
+ }
2708
+ return j;
2709
+ }
2710
+ function reverseValues(arr, start, end) {
2711
+ for (let i = start, j = end - 1; i < j; ++i, --j) {
2712
+ const temp = arr[i];
2713
+ arr[i] = arr[j];
2714
+ arr[j] = temp;
2715
+ }
2716
+ }
2717
+ function createBidiText(str, isLTR, vertical = false) {
2718
+ let dir = "ltr";
2719
+ if (vertical) {
2720
+ dir = "ttb";
2721
+ } else if (!isLTR) {
2722
+ dir = "rtl";
2723
+ }
2724
+ return { str, dir };
2725
+ }
2726
+ var chars = [];
2727
+ var types = [];
2728
+ function bidi(str, startLevel = -1, vertical = false) {
2729
+ let isLTR = true;
2730
+ const strLength = str.length;
2731
+ if (strLength === 0 || vertical) {
2732
+ return createBidiText(str, isLTR, vertical);
2733
+ }
2734
+ chars.length = strLength;
2735
+ types.length = strLength;
2736
+ let numBidi = 0;
2737
+ let i, ii;
2738
+ for (i = 0; i < strLength; ++i) {
2739
+ chars[i] = str.charAt(i);
2740
+ const charCode = str.charCodeAt(i);
2741
+ let charType = "L";
2742
+ if (charCode <= 255) {
2743
+ charType = baseTypes[charCode];
2744
+ } else if (1424 <= charCode && charCode <= 1524) {
2745
+ charType = "R";
2746
+ } else if (1536 <= charCode && charCode <= 1791) {
2747
+ charType = arabicTypes[charCode & 255];
2748
+ if (!charType) {
2749
+ warn("Bidi: invalid Unicode character " + charCode.toString(16));
2750
+ }
2751
+ } else if (1792 <= charCode && charCode <= 2220 || 64336 <= charCode && charCode <= 65023 || 65136 <= charCode && charCode <= 65279) {
2752
+ charType = "AL";
2753
+ }
2754
+ if (charType === "R" || charType === "AL" || charType === "AN") {
2755
+ numBidi++;
2756
+ }
2757
+ types[i] = charType;
2758
+ }
2759
+ if (numBidi === 0) {
2760
+ isLTR = true;
2761
+ return createBidiText(str, isLTR);
2762
+ }
2763
+ if (startLevel === -1) {
2764
+ if (numBidi / strLength < 0.3 && strLength > 4) {
2765
+ isLTR = true;
2766
+ startLevel = 0;
2767
+ } else {
2768
+ isLTR = false;
2769
+ startLevel = 1;
2770
+ }
2771
+ }
2772
+ const levels = [];
2773
+ for (i = 0; i < strLength; ++i) {
2774
+ levels[i] = startLevel;
2775
+ }
2776
+ const e = isOdd(startLevel) ? "R" : "L";
2777
+ const sor = e;
2778
+ const eor = sor;
2779
+ let lastType = sor;
2780
+ for (i = 0; i < strLength; ++i) {
2781
+ if (types[i] === "NSM") {
2782
+ types[i] = lastType;
2783
+ } else {
2784
+ lastType = types[i];
2785
+ }
2786
+ }
2787
+ lastType = sor;
2788
+ let t;
2789
+ for (i = 0; i < strLength; ++i) {
2790
+ t = types[i];
2791
+ if (t === "EN") {
2792
+ types[i] = lastType === "AL" ? "AN" : "EN";
2793
+ } else if (t === "R" || t === "L" || t === "AL") {
2794
+ lastType = t;
2795
+ }
2796
+ }
2797
+ for (i = 0; i < strLength; ++i) {
2798
+ t = types[i];
2799
+ if (t === "AL") {
2800
+ types[i] = "R";
2801
+ }
2802
+ }
2803
+ for (i = 1; i < strLength - 1; ++i) {
2804
+ if (types[i] === "ES" && types[i - 1] === "EN" && types[i + 1] === "EN") {
2805
+ types[i] = "EN";
2806
+ }
2807
+ if (types[i] === "CS" && (types[i - 1] === "EN" || types[i - 1] === "AN") && types[i + 1] === types[i - 1]) {
2808
+ types[i] = types[i - 1];
2809
+ }
2810
+ }
2811
+ for (i = 0; i < strLength; ++i) {
2812
+ if (types[i] === "EN") {
2813
+ for (let j = i - 1; j >= 0; --j) {
2814
+ if (types[j] !== "ET") {
2815
+ break;
2816
+ }
2817
+ types[j] = "EN";
2818
+ }
2819
+ for (let j = i + 1; j < strLength; ++j) {
2820
+ if (types[j] !== "ET") {
2821
+ break;
2822
+ }
2823
+ types[j] = "EN";
2824
+ }
2825
+ }
2826
+ }
2827
+ for (i = 0; i < strLength; ++i) {
2828
+ t = types[i];
2829
+ if (t === "WS" || t === "ES" || t === "ET" || t === "CS") {
2830
+ types[i] = "ON";
2831
+ }
2832
+ }
2833
+ lastType = sor;
2834
+ for (i = 0; i < strLength; ++i) {
2835
+ t = types[i];
2836
+ if (t === "EN") {
2837
+ types[i] = lastType === "L" ? "L" : "EN";
2838
+ } else if (t === "R" || t === "L") {
2839
+ lastType = t;
2840
+ }
2841
+ }
2842
+ for (i = 0; i < strLength; ++i) {
2843
+ if (types[i] === "ON") {
2844
+ const end = findUnequal(types, i + 1, "ON");
2845
+ let before = sor;
2846
+ if (i > 0) {
2847
+ before = types[i - 1];
2848
+ }
2849
+ let after = eor;
2850
+ if (end + 1 < strLength) {
2851
+ after = types[end + 1];
2852
+ }
2853
+ if (before !== "L") {
2854
+ before = "R";
2855
+ }
2856
+ if (after !== "L") {
2857
+ after = "R";
2858
+ }
2859
+ if (before === after) {
2860
+ types.fill(before, i, end);
2861
+ }
2862
+ i = end - 1;
2863
+ }
2864
+ }
2865
+ for (i = 0; i < strLength; ++i) {
2866
+ if (types[i] === "ON") {
2867
+ types[i] = e;
2868
+ }
2869
+ }
2870
+ for (i = 0; i < strLength; ++i) {
2871
+ t = types[i];
2872
+ if (isEven(levels[i])) {
2873
+ if (t === "R") {
2874
+ levels[i] += 1;
2875
+ } else if (t === "AN" || t === "EN") {
2876
+ levels[i] += 2;
2877
+ }
2878
+ } else if (
2879
+ /* isOdd && */
2880
+ t === "L" || t === "AN" || t === "EN"
2881
+ ) {
2882
+ levels[i] += 1;
2883
+ }
2884
+ }
2885
+ let highestLevel = -1;
2886
+ let lowestOddLevel = 99;
2887
+ let level;
2888
+ for (i = 0, ii = levels.length; i < ii; ++i) {
2889
+ level = levels[i];
2890
+ if (highestLevel < level) {
2891
+ highestLevel = level;
2892
+ }
2893
+ if (lowestOddLevel > level && isOdd(level)) {
2894
+ lowestOddLevel = level;
2895
+ }
2896
+ }
2897
+ for (level = highestLevel; level >= lowestOddLevel; --level) {
2898
+ let start = -1;
2899
+ for (i = 0, ii = levels.length; i < ii; ++i) {
2900
+ if (levels[i] < level) {
2901
+ if (start >= 0) {
2902
+ reverseValues(chars, start, i);
2903
+ start = -1;
2904
+ }
2905
+ } else if (start < 0) {
2906
+ start = i;
2907
+ }
2908
+ }
2909
+ if (start >= 0) {
2910
+ reverseValues(chars, start, levels.length);
2911
+ }
2912
+ }
2913
+ for (i = 0, ii = chars.length; i < ii; ++i) {
2914
+ const ch = chars[i];
2915
+ if (ch === "<" || ch === ">") {
2916
+ chars[i] = "";
2917
+ }
2918
+ }
2919
+ return createBidiText(chars.join(""), isLTR);
2920
+ }
2921
+
2922
+ // src/pdf.js/src/shared/scripting_utils.js
2923
+ function makeColorComp(n) {
2924
+ return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0");
2925
+ }
2926
+ function scaleAndClamp(x) {
2927
+ return Math.max(0, Math.min(255, 255 * x));
2928
+ }
2929
+ var ColorConverters = class {
2930
+ static CMYK_G([c, y, m, k]) {
2931
+ return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];
2932
+ }
2933
+ static G_CMYK([g]) {
2934
+ return ["CMYK", 0, 0, 0, 1 - g];
2935
+ }
2936
+ static G_RGB([g]) {
2937
+ return ["RGB", g, g, g];
2938
+ }
2939
+ static G_rgb([g]) {
2940
+ g = scaleAndClamp(g);
2941
+ return [g, g, g];
2942
+ }
2943
+ static G_HTML([g]) {
2944
+ const G = makeColorComp(g);
2945
+ return `#${G}${G}${G}`;
2946
+ }
2947
+ static RGB_G([r, g, b]) {
2948
+ return ["G", 0.3 * r + 0.59 * g + 0.11 * b];
2949
+ }
2950
+ static RGB_rgb(color) {
2951
+ return color.map(scaleAndClamp);
2952
+ }
2953
+ static RGB_HTML(color) {
2954
+ return `#${color.map(makeColorComp).join("")}`;
2955
+ }
2956
+ static T_HTML() {
2957
+ return "#00000000";
2958
+ }
2959
+ static T_rgb() {
2960
+ return [null];
2961
+ }
2962
+ static CMYK_RGB([c, y, m, k]) {
2963
+ return [
2964
+ "RGB",
2965
+ 1 - Math.min(1, c + k),
2966
+ 1 - Math.min(1, m + k),
2967
+ 1 - Math.min(1, y + k)
2968
+ ];
2969
+ }
2970
+ static CMYK_rgb([c, y, m, k]) {
2971
+ return [
2972
+ scaleAndClamp(1 - Math.min(1, c + k)),
2973
+ scaleAndClamp(1 - Math.min(1, m + k)),
2974
+ scaleAndClamp(1 - Math.min(1, y + k))
2975
+ ];
2976
+ }
2977
+ static CMYK_HTML(components) {
2978
+ const rgb = this.CMYK_RGB(components).slice(1);
2979
+ return this.RGB_HTML(rgb);
2980
+ }
2981
+ static RGB_CMYK([r, g, b]) {
2982
+ const c = 1 - r;
2983
+ const m = 1 - g;
2984
+ const y = 1 - b;
2985
+ const k = Math.min(c, m, y);
2986
+ return ["CMYK", c, m, y, k];
2987
+ }
2988
+ };
2989
+ var DateFormats = [
2990
+ "m/d",
2991
+ "m/d/yy",
2992
+ "mm/dd/yy",
2993
+ "mm/yy",
2994
+ "d-mmm",
2995
+ "d-mmm-yy",
2996
+ "dd-mmm-yy",
2997
+ "yy-mm-dd",
2998
+ "mmm-yy",
2999
+ "mmmm-yy",
3000
+ "mmm d, yyyy",
3001
+ "mmmm d, yyyy",
3002
+ "m/d/yy h:MM tt",
3003
+ "m/d/yy HH:MM"
3004
+ ];
3005
+ var TimeFormats = ["HH:MM", "h:MM tt", "HH:MM:ss", "h:MM:ss tt"];
3006
+
1519
3007
  // src/pdf.js/src/shared/murmurhash3.js
1520
3008
  var SEED = 3285377520;
1521
3009
  var MASK_HIGH = 4294901760;
@@ -1709,7 +3197,6 @@ function grayToRGBA(src, dest) {
1709
3197
 
1710
3198
  export {
1711
3199
  isNodeJS,
1712
- IDENTITY_MATRIX,
1713
3200
  FONT_IDENTITY_MATRIX,
1714
3201
  LINE_FACTOR,
1715
3202
  LINE_DESCENT_FACTOR,
@@ -1732,6 +3219,7 @@ export {
1732
3219
  PageActionEventType,
1733
3220
  VerbosityLevel,
1734
3221
  OPS,
3222
+ DrawOPS,
1735
3223
  PasswordResponses,
1736
3224
  setVerbosityLevel,
1737
3225
  getVerbosityLevel,
@@ -1740,6 +3228,7 @@ export {
1740
3228
  unreachable,
1741
3229
  assert,
1742
3230
  createValidAbsoluteUrl,
3231
+ updateUrlHash,
1743
3232
  shadow,
1744
3233
  BaseException,
1745
3234
  PasswordException,
@@ -1751,7 +3240,6 @@ export {
1751
3240
  stringToBytes,
1752
3241
  string32,
1753
3242
  objectSize,
1754
- objectFromMap,
1755
3243
  FeatureTest,
1756
3244
  hexNumbers,
1757
3245
  Util,
@@ -1763,6 +3251,8 @@ export {
1763
3251
  normalizeUnicode,
1764
3252
  getUuid,
1765
3253
  AnnotationPrefix,
3254
+ _isValidExplicitDest,
3255
+ MathClamp,
1766
3256
  toHexUtil,
1767
3257
  toBase64Util,
1768
3258
  fromBase64Util,
@@ -1771,5 +3261,10 @@ export {
1771
3261
  MessageHandler,
1772
3262
  convertToRGBA,
1773
3263
  convertBlackAndWhiteToRGBA,
1774
- grayToRGBA
3264
+ grayToRGBA,
3265
+ FontInfo,
3266
+ bidi,
3267
+ ColorConverters,
3268
+ DateFormats,
3269
+ TimeFormats
1775
3270
  };