pdf-parser.js 5.2.27 → 5.2.28

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 (145) hide show
  1. package/dist/{afm-widths-BYiX2L9D.cjs → afm-widths-BHD2HZIL.cjs} +553 -642
  2. package/dist/{afm-widths-blUDDjlI.js → afm-widths-B_IGbGky.js} +553 -642
  3. package/dist/afm-widths.cjs +1 -1
  4. package/dist/afm-widths.js +1 -1
  5. package/dist/annotations.cjs +5 -3
  6. package/dist/annotations.js +5 -3
  7. package/dist/builtin-encoding.cjs +17 -6
  8. package/dist/builtin-encoding.js +17 -6
  9. package/dist/bytes/crc32.cjs +5 -3
  10. package/dist/bytes/crc32.js +5 -3
  11. package/dist/bytes/flate.cjs +0 -1
  12. package/dist/bytes/flate.js +0 -1
  13. package/dist/cff-bounds.cjs +42 -24
  14. package/dist/cff-bounds.js +42 -24
  15. package/dist/cff.cjs +13 -6
  16. package/dist/cff.js +13 -6
  17. package/dist/cmap-table.cjs +54 -26
  18. package/dist/cmap-table.js +54 -26
  19. package/dist/cmap.cjs +5 -3
  20. package/dist/cmap.js +5 -3
  21. package/dist/content-write.cjs +3 -2
  22. package/dist/content-write.js +3 -2
  23. package/dist/crypto/aes.cjs +76 -55
  24. package/dist/crypto/aes.js +76 -55
  25. package/dist/crypto/md5.cjs +345 -149
  26. package/dist/crypto/md5.js +345 -149
  27. package/dist/crypto/rc4.cjs +5 -4
  28. package/dist/crypto/rc4.js +5 -4
  29. package/dist/crypto/sha2.cjs +92 -43
  30. package/dist/crypto/sha2.js +92 -43
  31. package/dist/embedded-font.cjs +4 -2
  32. package/dist/embedded-font.js +4 -2
  33. package/dist/encoding.cjs +1 -1
  34. package/dist/encoding.js +1 -1
  35. package/dist/encrypt-write.cjs +25 -21
  36. package/dist/encrypt-write.js +25 -21
  37. package/dist/encrypt.cjs +43 -64
  38. package/dist/encrypt.js +43 -64
  39. package/dist/filters.cjs +40 -20
  40. package/dist/filters.js +40 -20
  41. package/dist/font-face.cjs +2 -1
  42. package/dist/font-face.js +2 -1
  43. package/dist/font-read.cjs +12 -6
  44. package/dist/font-read.js +12 -6
  45. package/dist/font-tables.cjs +55 -28
  46. package/dist/font-tables.js +55 -28
  47. package/dist/gdef-table.cjs +6 -3
  48. package/dist/gdef-table.js +6 -3
  49. package/dist/glyf-contours.cjs +3 -1
  50. package/dist/glyf-contours.js +3 -1
  51. package/dist/glyf.cjs +22 -11
  52. package/dist/glyf.js +22 -11
  53. package/dist/gpos-table.cjs +37 -19
  54. package/dist/gpos-table.js +37 -19
  55. package/dist/gsub-table.cjs +28 -17
  56. package/dist/gsub-table.js +28 -17
  57. package/dist/hmtx-table.cjs +5 -3
  58. package/dist/hmtx-table.js +5 -3
  59. package/dist/image/ccitt-encode.cjs +8 -5
  60. package/dist/image/ccitt-encode.js +8 -5
  61. package/dist/image/ccitt.cjs +801 -209
  62. package/dist/image/ccitt.js +801 -209
  63. package/dist/image/jbig2-arith.cjs +340 -306
  64. package/dist/image/jbig2-arith.js +340 -306
  65. package/dist/image/jbig2-bitmap.cjs +8 -5
  66. package/dist/image/jbig2-bitmap.js +8 -5
  67. package/dist/image/jbig2-generic.cjs +240 -69
  68. package/dist/image/jbig2-generic.js +240 -69
  69. package/dist/image/jbig2-text.cjs +4 -2
  70. package/dist/image/jbig2-text.js +4 -2
  71. package/dist/image/jbig2.cjs +69 -31
  72. package/dist/image/jbig2.js +69 -31
  73. package/dist/image/jp2-boxes.cjs +52 -27
  74. package/dist/image/jp2-boxes.js +52 -27
  75. package/dist/image/jpeg-info.cjs +29 -24
  76. package/dist/image/jpeg-info.js +29 -24
  77. package/dist/image/jpeg2000-codestream.cjs +44 -24
  78. package/dist/image/jpeg2000-codestream.js +44 -24
  79. package/dist/image/jpeg2000-dwt.cjs +2 -1
  80. package/dist/image/jpeg2000-dwt.js +2 -1
  81. package/dist/image/jpeg2000-t1.cjs +21 -11
  82. package/dist/image/jpeg2000-t1.js +21 -11
  83. package/dist/image/jpeg2000-t2.cjs +12 -5
  84. package/dist/image/jpeg2000-t2.js +12 -5
  85. package/dist/image/jpeg2000-tagtree.cjs +8 -4
  86. package/dist/image/jpeg2000-tagtree.js +8 -4
  87. package/dist/image/jpeg2000.cjs +11 -6
  88. package/dist/image/jpeg2000.js +11 -6
  89. package/dist/image/png-decode.cjs +62 -39
  90. package/dist/image/png-decode.d.cts +3 -2
  91. package/dist/image/png-decode.d.ts +3 -2
  92. package/dist/image/png-decode.js +62 -39
  93. package/dist/image/png-filter.cjs +23 -15
  94. package/dist/image/png-filter.js +23 -15
  95. package/dist/images-read.cjs +41 -36
  96. package/dist/images-read.js +41 -36
  97. package/dist/index.cjs +1 -1
  98. package/dist/index.js +1 -1
  99. package/dist/interpret.cjs +39 -24
  100. package/dist/interpret.js +39 -24
  101. package/dist/lexer.cjs +86 -51
  102. package/dist/lexer.js +86 -51
  103. package/dist/math-content-write.cjs +9 -5
  104. package/dist/math-content-write.js +9 -5
  105. package/dist/math-font-write.cjs +2 -1
  106. package/dist/math-font-write.js +2 -1
  107. package/dist/math-font.cjs +16 -7
  108. package/dist/math-font.js +16 -7
  109. package/dist/math-table.cjs +25 -13
  110. package/dist/math-table.js +25 -13
  111. package/dist/matrix.cjs +3 -2
  112. package/dist/matrix.js +3 -2
  113. package/dist/measure.cjs +1 -1
  114. package/dist/measure.js +1 -1
  115. package/dist/navigation.cjs +10 -5
  116. package/dist/navigation.js +10 -5
  117. package/dist/ot-layout-common.cjs +4 -2
  118. package/dist/ot-layout-common.js +4 -2
  119. package/dist/parse.cjs +7 -5
  120. package/dist/parse.js +7 -5
  121. package/dist/pdf-text.cjs +5 -2
  122. package/dist/pdf-text.js +5 -2
  123. package/dist/predictors.cjs +14 -9
  124. package/dist/predictors.js +14 -9
  125. package/dist/raster.cjs +30 -19
  126. package/dist/raster.js +30 -19
  127. package/dist/read.cjs +17 -8
  128. package/dist/read.js +17 -8
  129. package/dist/serialize.cjs +6 -2
  130. package/dist/serialize.js +6 -2
  131. package/dist/sfnt-subset.cjs +25 -13
  132. package/dist/sfnt-subset.js +25 -13
  133. package/dist/sfnt.cjs +20 -10
  134. package/dist/sfnt.js +20 -10
  135. package/dist/text-group.cjs +0 -1
  136. package/dist/text-group.js +0 -1
  137. package/dist/tounicode.cjs +4 -2
  138. package/dist/tounicode.js +4 -2
  139. package/dist/winansi.cjs +1 -1
  140. package/dist/winansi.js +1 -1
  141. package/dist/write.cjs +20 -12
  142. package/dist/write.js +20 -12
  143. package/dist/xref.cjs +5 -2
  144. package/dist/xref.js +5 -2
  145. package/package.json +1 -1
@@ -4,137 +4,333 @@ const BLOCK_BYTES = 64;
4
4
  const DIGEST_BYTES = 16;
5
5
  const ROUNDS = 64;
6
6
  const WORDS_PER_BLOCK = 16;
7
- const T = new Uint32Array([
8
- 3614090360,
9
- 3905402710,
10
- 606105819,
11
- 3250441966,
12
- 4118548399,
13
- 1200080426,
14
- 2821735955,
15
- 4249261313,
16
- 1770035416,
17
- 2336552879,
18
- 4294925233,
19
- 2304563134,
20
- 1804603682,
21
- 4254626195,
22
- 2792965006,
23
- 1236535329,
24
- 4129170786,
25
- 3225465664,
26
- 643717713,
27
- 3921069994,
28
- 3593408605,
29
- 38016083,
30
- 3634488961,
31
- 3889429448,
32
- 568446438,
33
- 3275163606,
34
- 4107603335,
35
- 1163531501,
36
- 2850285829,
37
- 4243563512,
38
- 1735328473,
39
- 2368359562,
40
- 4294588738,
41
- 2272392833,
42
- 1839030562,
43
- 4259657740,
44
- 2763975236,
45
- 1272893353,
46
- 4139469664,
47
- 3200236656,
48
- 681279174,
49
- 3936430074,
50
- 3572445317,
51
- 76029189,
52
- 3654602809,
53
- 3873151461,
54
- 530742520,
55
- 3299628645,
56
- 4096336452,
57
- 1126891415,
58
- 2878612391,
59
- 4237533241,
60
- 1700485571,
61
- 2399980690,
62
- 4293915773,
63
- 2240044497,
64
- 1873313359,
65
- 4264355552,
66
- 2734768916,
67
- 1309151649,
68
- 4149444226,
69
- 3174756917,
70
- 718787259,
71
- 3951481745
72
- ]);
7
+ const STEPS_PER_ROUND = 16;
8
+ const BITS_PER_BYTE = 8;
9
+ const BYTES_PER_WORD = 4;
10
+ const BYTE_MASK = 255;
11
+ const WORD_BITS = 32;
12
+ const UINT32_MODULUS = 4294967296;
13
+ const LENGTH_FIELD_BYTES = 8;
14
+ const ROUND_2_G_MULTIPLIER = 5;
15
+ const ROUND_3_G_MULTIPLIER = 3;
16
+ const ROUND_3_G_OFFSET = 5;
17
+ const ROUND_4_G_MULTIPLIER = 7;
18
+ const ROUND_4_START = 48;
19
+ const T = Uint32Array.from([
20
+ {
21
+ i: 1,
22
+ value: 3614090360
23
+ },
24
+ {
25
+ i: 2,
26
+ value: 3905402710
27
+ },
28
+ {
29
+ i: 3,
30
+ value: 606105819
31
+ },
32
+ {
33
+ i: 4,
34
+ value: 3250441966
35
+ },
36
+ {
37
+ i: 5,
38
+ value: 4118548399
39
+ },
40
+ {
41
+ i: 6,
42
+ value: 1200080426
43
+ },
44
+ {
45
+ i: 7,
46
+ value: 2821735955
47
+ },
48
+ {
49
+ i: 8,
50
+ value: 4249261313
51
+ },
52
+ {
53
+ i: 9,
54
+ value: 1770035416
55
+ },
56
+ {
57
+ i: 10,
58
+ value: 2336552879
59
+ },
60
+ {
61
+ i: 11,
62
+ value: 4294925233
63
+ },
64
+ {
65
+ i: 12,
66
+ value: 2304563134
67
+ },
68
+ {
69
+ i: 13,
70
+ value: 1804603682
71
+ },
72
+ {
73
+ i: 14,
74
+ value: 4254626195
75
+ },
76
+ {
77
+ i: 15,
78
+ value: 2792965006
79
+ },
80
+ {
81
+ i: 16,
82
+ value: 1236535329
83
+ },
84
+ {
85
+ i: 17,
86
+ value: 4129170786
87
+ },
88
+ {
89
+ i: 18,
90
+ value: 3225465664
91
+ },
92
+ {
93
+ i: 19,
94
+ value: 643717713
95
+ },
96
+ {
97
+ i: 20,
98
+ value: 3921069994
99
+ },
100
+ {
101
+ i: 21,
102
+ value: 3593408605
103
+ },
104
+ {
105
+ i: 22,
106
+ value: 38016083
107
+ },
108
+ {
109
+ i: 23,
110
+ value: 3634488961
111
+ },
112
+ {
113
+ i: 24,
114
+ value: 3889429448
115
+ },
116
+ {
117
+ i: 25,
118
+ value: 568446438
119
+ },
120
+ {
121
+ i: 26,
122
+ value: 3275163606
123
+ },
124
+ {
125
+ i: 27,
126
+ value: 4107603335
127
+ },
128
+ {
129
+ i: 28,
130
+ value: 1163531501
131
+ },
132
+ {
133
+ i: 29,
134
+ value: 2850285829
135
+ },
136
+ {
137
+ i: 30,
138
+ value: 4243563512
139
+ },
140
+ {
141
+ i: 31,
142
+ value: 1735328473
143
+ },
144
+ {
145
+ i: 32,
146
+ value: 2368359562
147
+ },
148
+ {
149
+ i: 33,
150
+ value: 4294588738
151
+ },
152
+ {
153
+ i: 34,
154
+ value: 2272392833
155
+ },
156
+ {
157
+ i: 35,
158
+ value: 1839030562
159
+ },
160
+ {
161
+ i: 36,
162
+ value: 4259657740
163
+ },
164
+ {
165
+ i: 37,
166
+ value: 2763975236
167
+ },
168
+ {
169
+ i: 38,
170
+ value: 1272893353
171
+ },
172
+ {
173
+ i: 39,
174
+ value: 4139469664
175
+ },
176
+ {
177
+ i: 40,
178
+ value: 3200236656
179
+ },
180
+ {
181
+ i: 41,
182
+ value: 681279174
183
+ },
184
+ {
185
+ i: 42,
186
+ value: 3936430074
187
+ },
188
+ {
189
+ i: 43,
190
+ value: 3572445317
191
+ },
192
+ {
193
+ i: 44,
194
+ value: 76029189
195
+ },
196
+ {
197
+ i: 45,
198
+ value: 3654602809
199
+ },
200
+ {
201
+ i: 46,
202
+ value: 3873151461
203
+ },
204
+ {
205
+ i: 47,
206
+ value: 530742520
207
+ },
208
+ {
209
+ i: 48,
210
+ value: 3299628645
211
+ },
212
+ {
213
+ i: 49,
214
+ value: 4096336452
215
+ },
216
+ {
217
+ i: 50,
218
+ value: 1126891415
219
+ },
220
+ {
221
+ i: 51,
222
+ value: 2878612391
223
+ },
224
+ {
225
+ i: 52,
226
+ value: 4237533241
227
+ },
228
+ {
229
+ i: 53,
230
+ value: 1700485571
231
+ },
232
+ {
233
+ i: 54,
234
+ value: 2399980690
235
+ },
236
+ {
237
+ i: 55,
238
+ value: 4293915773
239
+ },
240
+ {
241
+ i: 56,
242
+ value: 2240044497
243
+ },
244
+ {
245
+ i: 57,
246
+ value: 1873313359
247
+ },
248
+ {
249
+ i: 58,
250
+ value: 4264355552
251
+ },
252
+ {
253
+ i: 59,
254
+ value: 2734768916
255
+ },
256
+ {
257
+ i: 60,
258
+ value: 1309151649
259
+ },
260
+ {
261
+ i: 61,
262
+ value: 4149444226
263
+ },
264
+ {
265
+ i: 62,
266
+ value: 3174756917
267
+ },
268
+ {
269
+ i: 63,
270
+ value: 718787259
271
+ },
272
+ {
273
+ i: 64,
274
+ value: 3951481745
275
+ }
276
+ ], (entry) => entry.value);
277
+ const S11 = 7;
278
+ const S12 = 12;
279
+ const S13 = 17;
280
+ const S14 = 22;
281
+ const S21 = 5;
282
+ const S22 = 9;
283
+ const S23 = 14;
284
+ const S24 = 20;
285
+ const S31 = 4;
286
+ const S32 = 11;
287
+ const S33 = 16;
288
+ const S34 = 23;
289
+ const S41 = 6;
290
+ const S42 = 10;
291
+ const S43 = 15;
292
+ const S44 = 21;
293
+ const ROUND_1_SHIFTS = [
294
+ S11,
295
+ S12,
296
+ S13,
297
+ S14
298
+ ];
299
+ const ROUND_2_SHIFTS = [
300
+ S21,
301
+ S22,
302
+ S23,
303
+ S24
304
+ ];
305
+ const ROUND_3_SHIFTS = [
306
+ S31,
307
+ S32,
308
+ S33,
309
+ S34
310
+ ];
311
+ const ROUND_4_SHIFTS = [
312
+ S41,
313
+ S42,
314
+ S43,
315
+ S44
316
+ ];
73
317
  const SHIFT = [
74
- 7,
75
- 12,
76
- 17,
77
- 22,
78
- 7,
79
- 12,
80
- 17,
81
- 22,
82
- 7,
83
- 12,
84
- 17,
85
- 22,
86
- 7,
87
- 12,
88
- 17,
89
- 22,
90
- 5,
91
- 9,
92
- 14,
93
- 20,
94
- 5,
95
- 9,
96
- 14,
97
- 20,
98
- 5,
99
- 9,
100
- 14,
101
- 20,
102
- 5,
103
- 9,
104
- 14,
105
- 20,
106
- 4,
107
- 11,
108
- 16,
109
- 23,
110
- 4,
111
- 11,
112
- 16,
113
- 23,
114
- 4,
115
- 11,
116
- 16,
117
- 23,
118
- 4,
119
- 11,
120
- 16,
121
- 23,
122
- 6,
123
- 10,
124
- 15,
125
- 21,
126
- 6,
127
- 10,
128
- 15,
129
- 21,
130
- 6,
131
- 10,
132
- 15,
133
- 21,
134
- 6,
135
- 10,
136
- 15,
137
- 21
318
+ ...ROUND_1_SHIFTS,
319
+ ...ROUND_1_SHIFTS,
320
+ ...ROUND_1_SHIFTS,
321
+ ...ROUND_1_SHIFTS,
322
+ ...ROUND_2_SHIFTS,
323
+ ...ROUND_2_SHIFTS,
324
+ ...ROUND_2_SHIFTS,
325
+ ...ROUND_2_SHIFTS,
326
+ ...ROUND_3_SHIFTS,
327
+ ...ROUND_3_SHIFTS,
328
+ ...ROUND_3_SHIFTS,
329
+ ...ROUND_3_SHIFTS,
330
+ ...ROUND_4_SHIFTS,
331
+ ...ROUND_4_SHIFTS,
332
+ ...ROUND_4_SHIFTS,
333
+ ...ROUND_4_SHIFTS
138
334
  ];
139
335
  const INITIAL_STATE = [
140
336
  1732584193,
@@ -143,20 +339,20 @@ const INITIAL_STATE = [
143
339
  271733878
144
340
  ];
145
341
  function rotl32(value, bits) {
146
- return (value << bits | value >>> 32 - bits) >>> 0;
342
+ return (value << bits | value >>> WORD_BITS - bits) >>> 0;
147
343
  }
148
344
  function padMessage(bytes) {
149
- const paddedLength = (Math.floor((bytes.length + 8) / BLOCK_BYTES) + 1) * BLOCK_BYTES;
345
+ const paddedLength = (Math.floor((bytes.length + LENGTH_FIELD_BYTES) / BLOCK_BYTES) + 1) * BLOCK_BYTES;
150
346
  const padded = new Uint8Array(paddedLength);
151
347
  padded.set(bytes);
152
348
  padded[bytes.length] = 128;
153
- const bitLength = bytes.length * 8;
154
- let low = bitLength % 4294967296;
155
- let high = Math.floor(bitLength / 4294967296);
156
- for (let i = 0; i < 4; i++) {
157
- padded[paddedLength - 8 + i] = low & 255;
349
+ const bitLength = bytes.length * BITS_PER_BYTE;
350
+ let low = bitLength % UINT32_MODULUS;
351
+ let high = Math.floor(bitLength / UINT32_MODULUS);
352
+ for (let i = 0; i < BYTES_PER_WORD; i++) {
353
+ padded[paddedLength - LENGTH_FIELD_BYTES + i] = low & BYTE_MASK;
158
354
  low = Math.floor(low / 256);
159
- padded[paddedLength - 4 + i] = high & 255;
355
+ padded[paddedLength - BYTES_PER_WORD + i] = high & BYTE_MASK;
160
356
  high = Math.floor(high / 256);
161
357
  }
162
358
  return padded;
@@ -167,8 +363,8 @@ function md5(bytes) {
167
363
  const block = new Uint32Array(WORDS_PER_BLOCK);
168
364
  for (let offset = 0; offset < padded.length; offset += BLOCK_BYTES) {
169
365
  for (let i = 0; i < WORDS_PER_BLOCK; i++) {
170
- const at = offset + i * 4;
171
- block[i] = (padded[at] | padded[at + 1] << 8 | padded[at + 2] << 16 | padded[at + 3] << 24) >>> 0;
366
+ const at = offset + i * BYTES_PER_WORD;
367
+ block[i] = (padded[at] | padded[at + 1] << BITS_PER_BYTE | padded[at + 2] << 16 | padded[at + 3] << 24) >>> 0;
172
368
  }
173
369
  let a = state[0];
174
370
  let b = state[1];
@@ -177,18 +373,18 @@ function md5(bytes) {
177
373
  for (let i = 0; i < ROUNDS; i++) {
178
374
  let f;
179
375
  let g;
180
- if (i < 16) {
376
+ if (i < STEPS_PER_ROUND) {
181
377
  f = b & c | ~b & d;
182
378
  g = i;
183
379
  } else if (i < 32) {
184
380
  f = d & b | ~d & c;
185
- g = (5 * i + 1) % WORDS_PER_BLOCK;
186
- } else if (i < 48) {
381
+ g = (ROUND_2_G_MULTIPLIER * i + 1) % WORDS_PER_BLOCK;
382
+ } else if (i < ROUND_4_START) {
187
383
  f = b ^ c ^ d;
188
- g = (3 * i + 5) % WORDS_PER_BLOCK;
384
+ g = (ROUND_3_G_MULTIPLIER * i + ROUND_3_G_OFFSET) % WORDS_PER_BLOCK;
189
385
  } else {
190
386
  f = c ^ (b | ~d);
191
- g = 7 * i % WORDS_PER_BLOCK;
387
+ g = ROUND_4_G_MULTIPLIER * i % WORDS_PER_BLOCK;
192
388
  }
193
389
  const rotated = rotl32(a + (f >>> 0) + T[i] + block[g] >>> 0, SHIFT[i]);
194
390
  a = d;
@@ -204,10 +400,10 @@ function md5(bytes) {
204
400
  const digest = new Uint8Array(DIGEST_BYTES);
205
401
  for (let i = 0; i < state.length; i++) {
206
402
  const word = state[i];
207
- digest[i * 4] = word & 255;
208
- digest[i * 4 + 1] = word >>> 8 & 255;
209
- digest[i * 4 + 2] = word >>> 16 & 255;
210
- digest[i * 4 + 3] = word >>> 24 & 255;
403
+ digest[i * BYTES_PER_WORD] = word & BYTE_MASK;
404
+ digest[i * BYTES_PER_WORD + 1] = word >>> BITS_PER_BYTE & BYTE_MASK;
405
+ digest[i * BYTES_PER_WORD + 2] = word >>> 16 & BYTE_MASK;
406
+ digest[i * BYTES_PER_WORD + 3] = word >>> 24 & BYTE_MASK;
211
407
  }
212
408
  return digest;
213
409
  }