@chialab/pdfjs-lib 1.0.0-alpha.35 → 1.0.0-alpha.37

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.
@@ -0,0 +1,792 @@
1
+ import {
2
+ warn
3
+ } from "./chunk-7NGJYFOM.js";
4
+
5
+ // src/lib/polyfills.ts
6
+ if (!Array.prototype.at) {
7
+ Object.defineProperty(Array.prototype, "at", {
8
+ value: function at(index) {
9
+ return this[index >= 0 ? index : this.length + index];
10
+ },
11
+ enumerable: false
12
+ });
13
+ }
14
+ if (!Promise.withResolvers) {
15
+ Promise.withResolvers = function withResolvers() {
16
+ let resolve;
17
+ let reject;
18
+ const promise = new this((res, rej) => {
19
+ resolve = res;
20
+ reject = rej;
21
+ });
22
+ return {
23
+ resolve,
24
+ reject,
25
+ promise
26
+ };
27
+ };
28
+ }
29
+ if (!("try" in Promise)) {
30
+ Object.defineProperty(Promise, "try", {
31
+ value: function tryFn(fn, ...args) {
32
+ return new this(
33
+ (resolve, reject) => {
34
+ try {
35
+ resolve(fn(...args));
36
+ } catch (error) {
37
+ reject(error);
38
+ }
39
+ }
40
+ );
41
+ },
42
+ enumerable: false
43
+ });
44
+ }
45
+
46
+ // src/pdf.js/src/core/bidi.js
47
+ var baseTypes = [
48
+ "BN",
49
+ "BN",
50
+ "BN",
51
+ "BN",
52
+ "BN",
53
+ "BN",
54
+ "BN",
55
+ "BN",
56
+ "BN",
57
+ "S",
58
+ "B",
59
+ "S",
60
+ "WS",
61
+ "B",
62
+ "BN",
63
+ "BN",
64
+ "BN",
65
+ "BN",
66
+ "BN",
67
+ "BN",
68
+ "BN",
69
+ "BN",
70
+ "BN",
71
+ "BN",
72
+ "BN",
73
+ "BN",
74
+ "BN",
75
+ "BN",
76
+ "B",
77
+ "B",
78
+ "B",
79
+ "S",
80
+ "WS",
81
+ "ON",
82
+ "ON",
83
+ "ET",
84
+ "ET",
85
+ "ET",
86
+ "ON",
87
+ "ON",
88
+ "ON",
89
+ "ON",
90
+ "ON",
91
+ "ES",
92
+ "CS",
93
+ "ES",
94
+ "CS",
95
+ "CS",
96
+ "EN",
97
+ "EN",
98
+ "EN",
99
+ "EN",
100
+ "EN",
101
+ "EN",
102
+ "EN",
103
+ "EN",
104
+ "EN",
105
+ "EN",
106
+ "CS",
107
+ "ON",
108
+ "ON",
109
+ "ON",
110
+ "ON",
111
+ "ON",
112
+ "ON",
113
+ "L",
114
+ "L",
115
+ "L",
116
+ "L",
117
+ "L",
118
+ "L",
119
+ "L",
120
+ "L",
121
+ "L",
122
+ "L",
123
+ "L",
124
+ "L",
125
+ "L",
126
+ "L",
127
+ "L",
128
+ "L",
129
+ "L",
130
+ "L",
131
+ "L",
132
+ "L",
133
+ "L",
134
+ "L",
135
+ "L",
136
+ "L",
137
+ "L",
138
+ "L",
139
+ "ON",
140
+ "ON",
141
+ "ON",
142
+ "ON",
143
+ "ON",
144
+ "ON",
145
+ "L",
146
+ "L",
147
+ "L",
148
+ "L",
149
+ "L",
150
+ "L",
151
+ "L",
152
+ "L",
153
+ "L",
154
+ "L",
155
+ "L",
156
+ "L",
157
+ "L",
158
+ "L",
159
+ "L",
160
+ "L",
161
+ "L",
162
+ "L",
163
+ "L",
164
+ "L",
165
+ "L",
166
+ "L",
167
+ "L",
168
+ "L",
169
+ "L",
170
+ "L",
171
+ "ON",
172
+ "ON",
173
+ "ON",
174
+ "ON",
175
+ "BN",
176
+ "BN",
177
+ "BN",
178
+ "BN",
179
+ "BN",
180
+ "BN",
181
+ "B",
182
+ "BN",
183
+ "BN",
184
+ "BN",
185
+ "BN",
186
+ "BN",
187
+ "BN",
188
+ "BN",
189
+ "BN",
190
+ "BN",
191
+ "BN",
192
+ "BN",
193
+ "BN",
194
+ "BN",
195
+ "BN",
196
+ "BN",
197
+ "BN",
198
+ "BN",
199
+ "BN",
200
+ "BN",
201
+ "BN",
202
+ "BN",
203
+ "BN",
204
+ "BN",
205
+ "BN",
206
+ "BN",
207
+ "BN",
208
+ "CS",
209
+ "ON",
210
+ "ET",
211
+ "ET",
212
+ "ET",
213
+ "ET",
214
+ "ON",
215
+ "ON",
216
+ "ON",
217
+ "ON",
218
+ "L",
219
+ "ON",
220
+ "ON",
221
+ "BN",
222
+ "ON",
223
+ "ON",
224
+ "ET",
225
+ "ET",
226
+ "EN",
227
+ "EN",
228
+ "ON",
229
+ "L",
230
+ "ON",
231
+ "ON",
232
+ "ON",
233
+ "EN",
234
+ "L",
235
+ "ON",
236
+ "ON",
237
+ "ON",
238
+ "ON",
239
+ "ON",
240
+ "L",
241
+ "L",
242
+ "L",
243
+ "L",
244
+ "L",
245
+ "L",
246
+ "L",
247
+ "L",
248
+ "L",
249
+ "L",
250
+ "L",
251
+ "L",
252
+ "L",
253
+ "L",
254
+ "L",
255
+ "L",
256
+ "L",
257
+ "L",
258
+ "L",
259
+ "L",
260
+ "L",
261
+ "L",
262
+ "L",
263
+ "ON",
264
+ "L",
265
+ "L",
266
+ "L",
267
+ "L",
268
+ "L",
269
+ "L",
270
+ "L",
271
+ "L",
272
+ "L",
273
+ "L",
274
+ "L",
275
+ "L",
276
+ "L",
277
+ "L",
278
+ "L",
279
+ "L",
280
+ "L",
281
+ "L",
282
+ "L",
283
+ "L",
284
+ "L",
285
+ "L",
286
+ "L",
287
+ "L",
288
+ "L",
289
+ "L",
290
+ "L",
291
+ "L",
292
+ "L",
293
+ "L",
294
+ "L",
295
+ "ON",
296
+ "L",
297
+ "L",
298
+ "L",
299
+ "L",
300
+ "L",
301
+ "L",
302
+ "L",
303
+ "L"
304
+ ];
305
+ var arabicTypes = [
306
+ "AN",
307
+ "AN",
308
+ "AN",
309
+ "AN",
310
+ "AN",
311
+ "AN",
312
+ "ON",
313
+ "ON",
314
+ "AL",
315
+ "ET",
316
+ "ET",
317
+ "AL",
318
+ "CS",
319
+ "AL",
320
+ "ON",
321
+ "ON",
322
+ "NSM",
323
+ "NSM",
324
+ "NSM",
325
+ "NSM",
326
+ "NSM",
327
+ "NSM",
328
+ "NSM",
329
+ "NSM",
330
+ "NSM",
331
+ "NSM",
332
+ "NSM",
333
+ "AL",
334
+ "AL",
335
+ "",
336
+ "AL",
337
+ "AL",
338
+ "AL",
339
+ "AL",
340
+ "AL",
341
+ "AL",
342
+ "AL",
343
+ "AL",
344
+ "AL",
345
+ "AL",
346
+ "AL",
347
+ "AL",
348
+ "AL",
349
+ "AL",
350
+ "AL",
351
+ "AL",
352
+ "AL",
353
+ "AL",
354
+ "AL",
355
+ "AL",
356
+ "AL",
357
+ "AL",
358
+ "AL",
359
+ "AL",
360
+ "AL",
361
+ "AL",
362
+ "AL",
363
+ "AL",
364
+ "AL",
365
+ "AL",
366
+ "AL",
367
+ "AL",
368
+ "AL",
369
+ "AL",
370
+ "AL",
371
+ "AL",
372
+ "AL",
373
+ "AL",
374
+ "AL",
375
+ "AL",
376
+ "AL",
377
+ "AL",
378
+ "AL",
379
+ "AL",
380
+ "AL",
381
+ "NSM",
382
+ "NSM",
383
+ "NSM",
384
+ "NSM",
385
+ "NSM",
386
+ "NSM",
387
+ "NSM",
388
+ "NSM",
389
+ "NSM",
390
+ "NSM",
391
+ "NSM",
392
+ "NSM",
393
+ "NSM",
394
+ "NSM",
395
+ "NSM",
396
+ "NSM",
397
+ "NSM",
398
+ "NSM",
399
+ "NSM",
400
+ "NSM",
401
+ "NSM",
402
+ "AN",
403
+ "AN",
404
+ "AN",
405
+ "AN",
406
+ "AN",
407
+ "AN",
408
+ "AN",
409
+ "AN",
410
+ "AN",
411
+ "AN",
412
+ "ET",
413
+ "AN",
414
+ "AN",
415
+ "AL",
416
+ "AL",
417
+ "AL",
418
+ "NSM",
419
+ "AL",
420
+ "AL",
421
+ "AL",
422
+ "AL",
423
+ "AL",
424
+ "AL",
425
+ "AL",
426
+ "AL",
427
+ "AL",
428
+ "AL",
429
+ "AL",
430
+ "AL",
431
+ "AL",
432
+ "AL",
433
+ "AL",
434
+ "AL",
435
+ "AL",
436
+ "AL",
437
+ "AL",
438
+ "AL",
439
+ "AL",
440
+ "AL",
441
+ "AL",
442
+ "AL",
443
+ "AL",
444
+ "AL",
445
+ "AL",
446
+ "AL",
447
+ "AL",
448
+ "AL",
449
+ "AL",
450
+ "AL",
451
+ "AL",
452
+ "AL",
453
+ "AL",
454
+ "AL",
455
+ "AL",
456
+ "AL",
457
+ "AL",
458
+ "AL",
459
+ "AL",
460
+ "AL",
461
+ "AL",
462
+ "AL",
463
+ "AL",
464
+ "AL",
465
+ "AL",
466
+ "AL",
467
+ "AL",
468
+ "AL",
469
+ "AL",
470
+ "AL",
471
+ "AL",
472
+ "AL",
473
+ "AL",
474
+ "AL",
475
+ "AL",
476
+ "AL",
477
+ "AL",
478
+ "AL",
479
+ "AL",
480
+ "AL",
481
+ "AL",
482
+ "AL",
483
+ "AL",
484
+ "AL",
485
+ "AL",
486
+ "AL",
487
+ "AL",
488
+ "AL",
489
+ "AL",
490
+ "AL",
491
+ "AL",
492
+ "AL",
493
+ "AL",
494
+ "AL",
495
+ "AL",
496
+ "AL",
497
+ "AL",
498
+ "AL",
499
+ "AL",
500
+ "AL",
501
+ "AL",
502
+ "AL",
503
+ "AL",
504
+ "AL",
505
+ "AL",
506
+ "AL",
507
+ "AL",
508
+ "AL",
509
+ "AL",
510
+ "AL",
511
+ "AL",
512
+ "AL",
513
+ "AL",
514
+ "AL",
515
+ "AL",
516
+ "AL",
517
+ "AL",
518
+ "AL",
519
+ "AL",
520
+ "NSM",
521
+ "NSM",
522
+ "NSM",
523
+ "NSM",
524
+ "NSM",
525
+ "NSM",
526
+ "NSM",
527
+ "AN",
528
+ "ON",
529
+ "NSM",
530
+ "NSM",
531
+ "NSM",
532
+ "NSM",
533
+ "NSM",
534
+ "NSM",
535
+ "AL",
536
+ "AL",
537
+ "NSM",
538
+ "NSM",
539
+ "ON",
540
+ "NSM",
541
+ "NSM",
542
+ "NSM",
543
+ "NSM",
544
+ "AL",
545
+ "AL",
546
+ "EN",
547
+ "EN",
548
+ "EN",
549
+ "EN",
550
+ "EN",
551
+ "EN",
552
+ "EN",
553
+ "EN",
554
+ "EN",
555
+ "EN",
556
+ "AL",
557
+ "AL",
558
+ "AL",
559
+ "AL",
560
+ "AL",
561
+ "AL"
562
+ ];
563
+ function isOdd(i) {
564
+ return (i & 1) !== 0;
565
+ }
566
+ function isEven(i) {
567
+ return (i & 1) === 0;
568
+ }
569
+ function findUnequal(arr, start, value) {
570
+ let j, jj;
571
+ for (j = start, jj = arr.length; j < jj; ++j) {
572
+ if (arr[j] !== value) {
573
+ return j;
574
+ }
575
+ }
576
+ return j;
577
+ }
578
+ function reverseValues(arr, start, end) {
579
+ for (let i = start, j = end - 1; i < j; ++i, --j) {
580
+ const temp = arr[i];
581
+ arr[i] = arr[j];
582
+ arr[j] = temp;
583
+ }
584
+ }
585
+ function createBidiText(str, isLTR, vertical = false) {
586
+ let dir = "ltr";
587
+ if (vertical) {
588
+ dir = "ttb";
589
+ } else if (!isLTR) {
590
+ dir = "rtl";
591
+ }
592
+ return { str, dir };
593
+ }
594
+ var chars = [];
595
+ var types = [];
596
+ function bidi(str, startLevel = -1, vertical = false) {
597
+ let isLTR = true;
598
+ const strLength = str.length;
599
+ if (strLength === 0 || vertical) {
600
+ return createBidiText(str, isLTR, vertical);
601
+ }
602
+ chars.length = strLength;
603
+ types.length = strLength;
604
+ let numBidi = 0;
605
+ let i, ii;
606
+ for (i = 0; i < strLength; ++i) {
607
+ chars[i] = str.charAt(i);
608
+ const charCode = str.charCodeAt(i);
609
+ let charType = "L";
610
+ if (charCode <= 255) {
611
+ charType = baseTypes[charCode];
612
+ } else if (1424 <= charCode && charCode <= 1524) {
613
+ charType = "R";
614
+ } else if (1536 <= charCode && charCode <= 1791) {
615
+ charType = arabicTypes[charCode & 255];
616
+ if (!charType) {
617
+ warn("Bidi: invalid Unicode character " + charCode.toString(16));
618
+ }
619
+ } else if (1792 <= charCode && charCode <= 2220 || 64336 <= charCode && charCode <= 65023 || 65136 <= charCode && charCode <= 65279) {
620
+ charType = "AL";
621
+ }
622
+ if (charType === "R" || charType === "AL" || charType === "AN") {
623
+ numBidi++;
624
+ }
625
+ types[i] = charType;
626
+ }
627
+ if (numBidi === 0) {
628
+ isLTR = true;
629
+ return createBidiText(str, isLTR);
630
+ }
631
+ if (startLevel === -1) {
632
+ if (numBidi / strLength < 0.3 && strLength > 4) {
633
+ isLTR = true;
634
+ startLevel = 0;
635
+ } else {
636
+ isLTR = false;
637
+ startLevel = 1;
638
+ }
639
+ }
640
+ const levels = [];
641
+ for (i = 0; i < strLength; ++i) {
642
+ levels[i] = startLevel;
643
+ }
644
+ const e = isOdd(startLevel) ? "R" : "L";
645
+ const sor = e;
646
+ const eor = sor;
647
+ let lastType = sor;
648
+ for (i = 0; i < strLength; ++i) {
649
+ if (types[i] === "NSM") {
650
+ types[i] = lastType;
651
+ } else {
652
+ lastType = types[i];
653
+ }
654
+ }
655
+ lastType = sor;
656
+ let t;
657
+ for (i = 0; i < strLength; ++i) {
658
+ t = types[i];
659
+ if (t === "EN") {
660
+ types[i] = lastType === "AL" ? "AN" : "EN";
661
+ } else if (t === "R" || t === "L" || t === "AL") {
662
+ lastType = t;
663
+ }
664
+ }
665
+ for (i = 0; i < strLength; ++i) {
666
+ t = types[i];
667
+ if (t === "AL") {
668
+ types[i] = "R";
669
+ }
670
+ }
671
+ for (i = 1; i < strLength - 1; ++i) {
672
+ if (types[i] === "ES" && types[i - 1] === "EN" && types[i + 1] === "EN") {
673
+ types[i] = "EN";
674
+ }
675
+ if (types[i] === "CS" && (types[i - 1] === "EN" || types[i - 1] === "AN") && types[i + 1] === types[i - 1]) {
676
+ types[i] = types[i - 1];
677
+ }
678
+ }
679
+ for (i = 0; i < strLength; ++i) {
680
+ if (types[i] === "EN") {
681
+ for (let j = i - 1; j >= 0; --j) {
682
+ if (types[j] !== "ET") {
683
+ break;
684
+ }
685
+ types[j] = "EN";
686
+ }
687
+ for (let j = i + 1; j < strLength; ++j) {
688
+ if (types[j] !== "ET") {
689
+ break;
690
+ }
691
+ types[j] = "EN";
692
+ }
693
+ }
694
+ }
695
+ for (i = 0; i < strLength; ++i) {
696
+ t = types[i];
697
+ if (t === "WS" || t === "ES" || t === "ET" || t === "CS") {
698
+ types[i] = "ON";
699
+ }
700
+ }
701
+ lastType = sor;
702
+ for (i = 0; i < strLength; ++i) {
703
+ t = types[i];
704
+ if (t === "EN") {
705
+ types[i] = lastType === "L" ? "L" : "EN";
706
+ } else if (t === "R" || t === "L") {
707
+ lastType = t;
708
+ }
709
+ }
710
+ for (i = 0; i < strLength; ++i) {
711
+ if (types[i] === "ON") {
712
+ const end = findUnequal(types, i + 1, "ON");
713
+ let before = sor;
714
+ if (i > 0) {
715
+ before = types[i - 1];
716
+ }
717
+ let after = eor;
718
+ if (end + 1 < strLength) {
719
+ after = types[end + 1];
720
+ }
721
+ if (before !== "L") {
722
+ before = "R";
723
+ }
724
+ if (after !== "L") {
725
+ after = "R";
726
+ }
727
+ if (before === after) {
728
+ types.fill(before, i, end);
729
+ }
730
+ i = end - 1;
731
+ }
732
+ }
733
+ for (i = 0; i < strLength; ++i) {
734
+ if (types[i] === "ON") {
735
+ types[i] = e;
736
+ }
737
+ }
738
+ for (i = 0; i < strLength; ++i) {
739
+ t = types[i];
740
+ if (isEven(levels[i])) {
741
+ if (t === "R") {
742
+ levels[i] += 1;
743
+ } else if (t === "AN" || t === "EN") {
744
+ levels[i] += 2;
745
+ }
746
+ } else if (
747
+ /* isOdd && */
748
+ t === "L" || t === "AN" || t === "EN"
749
+ ) {
750
+ levels[i] += 1;
751
+ }
752
+ }
753
+ let highestLevel = -1;
754
+ let lowestOddLevel = 99;
755
+ let level;
756
+ for (i = 0, ii = levels.length; i < ii; ++i) {
757
+ level = levels[i];
758
+ if (highestLevel < level) {
759
+ highestLevel = level;
760
+ }
761
+ if (lowestOddLevel > level && isOdd(level)) {
762
+ lowestOddLevel = level;
763
+ }
764
+ }
765
+ for (level = highestLevel; level >= lowestOddLevel; --level) {
766
+ let start = -1;
767
+ for (i = 0, ii = levels.length; i < ii; ++i) {
768
+ if (levels[i] < level) {
769
+ if (start >= 0) {
770
+ reverseValues(chars, start, i);
771
+ start = -1;
772
+ }
773
+ } else if (start < 0) {
774
+ start = i;
775
+ }
776
+ }
777
+ if (start >= 0) {
778
+ reverseValues(chars, start, levels.length);
779
+ }
780
+ }
781
+ for (i = 0, ii = chars.length; i < ii; ++i) {
782
+ const ch = chars[i];
783
+ if (ch === "<" || ch === ">") {
784
+ chars[i] = "";
785
+ }
786
+ }
787
+ return createBidiText(chars.join(""), isLTR);
788
+ }
789
+
790
+ export {
791
+ bidi
792
+ };