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
@@ -1,207 +1,795 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_bytes_writer = require("../bytes/writer.cjs");
3
3
  //#region src/image/ccitt.ts
4
- const WHITE_TERMINATING_AND_MAKEUP = [
5
- ["00110101", 0],
6
- ["000111", 1],
7
- ["0111", 2],
8
- ["1000", 3],
9
- ["1011", 4],
10
- ["1100", 5],
11
- ["1110", 6],
12
- ["1111", 7],
13
- ["10011", 8],
14
- ["10100", 9],
15
- ["00111", 10],
16
- ["01000", 11],
17
- ["001000", 12],
18
- ["000011", 13],
19
- ["110100", 14],
20
- ["110101", 15],
21
- ["101010", 16],
22
- ["101011", 17],
23
- ["0100111", 18],
24
- ["0001100", 19],
25
- ["0001000", 20],
26
- ["0010111", 21],
27
- ["0000011", 22],
28
- ["0000100", 23],
29
- ["0101000", 24],
30
- ["0101011", 25],
31
- ["0010011", 26],
32
- ["0100100", 27],
33
- ["0011000", 28],
34
- ["00000010", 29],
35
- ["00000011", 30],
36
- ["00011010", 31],
37
- ["00011011", 32],
38
- ["00010010", 33],
39
- ["00010011", 34],
40
- ["00010100", 35],
41
- ["00010101", 36],
42
- ["00010110", 37],
43
- ["00010111", 38],
44
- ["00101000", 39],
45
- ["00101001", 40],
46
- ["00101010", 41],
47
- ["00101011", 42],
48
- ["00101100", 43],
49
- ["00101101", 44],
50
- ["00000100", 45],
51
- ["00000101", 46],
52
- ["00001010", 47],
53
- ["00001011", 48],
54
- ["01010010", 49],
55
- ["01010011", 50],
56
- ["01010100", 51],
57
- ["01010101", 52],
58
- ["00100100", 53],
59
- ["00100101", 54],
60
- ["01011000", 55],
61
- ["01011001", 56],
62
- ["01011010", 57],
63
- ["01011011", 58],
64
- ["01001010", 59],
65
- ["01001011", 60],
66
- ["00110010", 61],
67
- ["00110011", 62],
68
- ["00110100", 63],
69
- ["11011", 64],
70
- ["10010", 128],
71
- ["010111", 192],
72
- ["0110111", 256],
73
- ["00110110", 320],
74
- ["00110111", 384],
75
- ["01100100", 448],
76
- ["01100101", 512],
77
- ["01101000", 576],
78
- ["01100111", 640],
79
- ["011001100", 704],
80
- ["011001101", 768],
81
- ["011010010", 832],
82
- ["011010011", 896],
83
- ["011010100", 960],
84
- ["011010101", 1024],
85
- ["011010110", 1088],
86
- ["011010111", 1152],
87
- ["011011000", 1216],
88
- ["011011001", 1280],
89
- ["011011010", 1344],
90
- ["011011011", 1408],
91
- ["010011000", 1472],
92
- ["010011001", 1536],
93
- ["010011010", 1600],
94
- ["011000", 1664],
95
- ["010011011", 1728]
96
- ];
97
- const BLACK_TERMINATING_AND_MAKEUP = [
98
- ["0000110111", 0],
99
- ["010", 1],
100
- ["11", 2],
101
- ["10", 3],
102
- ["011", 4],
103
- ["0011", 5],
104
- ["0010", 6],
105
- ["00011", 7],
106
- ["000101", 8],
107
- ["000100", 9],
108
- ["0000100", 10],
109
- ["0000101", 11],
110
- ["0000111", 12],
111
- ["00000100", 13],
112
- ["00000111", 14],
113
- ["000011000", 15],
114
- ["0000010111", 16],
115
- ["0000011000", 17],
116
- ["0000001000", 18],
117
- ["00001100111", 19],
118
- ["00001101000", 20],
119
- ["00001101100", 21],
120
- ["00000110111", 22],
121
- ["00000101000", 23],
122
- ["00000010111", 24],
123
- ["00000011000", 25],
124
- ["000011001010", 26],
125
- ["000011001011", 27],
126
- ["000011001100", 28],
127
- ["000011001101", 29],
128
- ["000001101000", 30],
129
- ["000001101001", 31],
130
- ["000001101010", 32],
131
- ["000001101011", 33],
132
- ["000011010010", 34],
133
- ["000011010011", 35],
134
- ["000011010100", 36],
135
- ["000011010101", 37],
136
- ["000011010110", 38],
137
- ["000011010111", 39],
138
- ["000001101100", 40],
139
- ["000001101101", 41],
140
- ["000011011010", 42],
141
- ["000011011011", 43],
142
- ["000001010100", 44],
143
- ["000001010101", 45],
144
- ["000001010110", 46],
145
- ["000001010111", 47],
146
- ["000001100100", 48],
147
- ["000001100101", 49],
148
- ["000001010010", 50],
149
- ["000001010011", 51],
150
- ["000000100100", 52],
151
- ["000000110111", 53],
152
- ["000000111000", 54],
153
- ["000000100111", 55],
154
- ["000000101000", 56],
155
- ["000001011000", 57],
156
- ["000001011001", 58],
157
- ["000000101011", 59],
158
- ["000000101100", 60],
159
- ["000001011010", 61],
160
- ["000001100110", 62],
161
- ["000001100111", 63],
162
- ["0000001111", 64],
163
- ["000011001000", 128],
164
- ["000011001001", 192],
165
- ["000001011011", 256],
166
- ["000000110011", 320],
167
- ["000000110100", 384],
168
- ["000000110101", 448],
169
- ["0000001101100", 512],
170
- ["0000001101101", 576],
171
- ["0000001001010", 640],
172
- ["0000001001011", 704],
173
- ["0000001001100", 768],
174
- ["0000001001101", 832],
175
- ["0000001110010", 896],
176
- ["0000001110011", 960],
177
- ["0000001110100", 1024],
178
- ["0000001110101", 1088],
179
- ["0000001110110", 1152],
180
- ["0000001110111", 1216],
181
- ["0000001010010", 1280],
182
- ["0000001010011", 1344],
183
- ["0000001010100", 1408],
184
- ["0000001010101", 1472],
185
- ["0000001011010", 1536],
186
- ["0000001011011", 1600],
187
- ["0000001100100", 1664],
188
- ["0000001100101", 1728]
189
- ];
190
- const EXTENDED_MAKEUP = [
191
- ["00000001000", 1792],
192
- ["00000001100", 1856],
193
- ["00000001101", 1920],
194
- ["000000010010", 1984],
195
- ["000000010011", 2048],
196
- ["000000010100", 2112],
197
- ["000000010101", 2176],
198
- ["000000010110", 2240],
199
- ["000000010111", 2304],
200
- ["000000011100", 2368],
201
- ["000000011101", 2432],
202
- ["000000011110", 2496],
203
- ["000000011111", 2560]
204
- ];
4
+ function toRunCodeTuples(codes) {
5
+ return codes.map((c) => [c.bits, c.run]);
6
+ }
7
+ const WHITE_TERMINATING_AND_MAKEUP = toRunCodeTuples([
8
+ {
9
+ bits: "00110101",
10
+ run: 0
11
+ },
12
+ {
13
+ bits: "000111",
14
+ run: 1
15
+ },
16
+ {
17
+ bits: "0111",
18
+ run: 2
19
+ },
20
+ {
21
+ bits: "1000",
22
+ run: 3
23
+ },
24
+ {
25
+ bits: "1011",
26
+ run: 4
27
+ },
28
+ {
29
+ bits: "1100",
30
+ run: 5
31
+ },
32
+ {
33
+ bits: "1110",
34
+ run: 6
35
+ },
36
+ {
37
+ bits: "1111",
38
+ run: 7
39
+ },
40
+ {
41
+ bits: "10011",
42
+ run: 8
43
+ },
44
+ {
45
+ bits: "10100",
46
+ run: 9
47
+ },
48
+ {
49
+ bits: "00111",
50
+ run: 10
51
+ },
52
+ {
53
+ bits: "01000",
54
+ run: 11
55
+ },
56
+ {
57
+ bits: "001000",
58
+ run: 12
59
+ },
60
+ {
61
+ bits: "000011",
62
+ run: 13
63
+ },
64
+ {
65
+ bits: "110100",
66
+ run: 14
67
+ },
68
+ {
69
+ bits: "110101",
70
+ run: 15
71
+ },
72
+ {
73
+ bits: "101010",
74
+ run: 16
75
+ },
76
+ {
77
+ bits: "101011",
78
+ run: 17
79
+ },
80
+ {
81
+ bits: "0100111",
82
+ run: 18
83
+ },
84
+ {
85
+ bits: "0001100",
86
+ run: 19
87
+ },
88
+ {
89
+ bits: "0001000",
90
+ run: 20
91
+ },
92
+ {
93
+ bits: "0010111",
94
+ run: 21
95
+ },
96
+ {
97
+ bits: "0000011",
98
+ run: 22
99
+ },
100
+ {
101
+ bits: "0000100",
102
+ run: 23
103
+ },
104
+ {
105
+ bits: "0101000",
106
+ run: 24
107
+ },
108
+ {
109
+ bits: "0101011",
110
+ run: 25
111
+ },
112
+ {
113
+ bits: "0010011",
114
+ run: 26
115
+ },
116
+ {
117
+ bits: "0100100",
118
+ run: 27
119
+ },
120
+ {
121
+ bits: "0011000",
122
+ run: 28
123
+ },
124
+ {
125
+ bits: "00000010",
126
+ run: 29
127
+ },
128
+ {
129
+ bits: "00000011",
130
+ run: 30
131
+ },
132
+ {
133
+ bits: "00011010",
134
+ run: 31
135
+ },
136
+ {
137
+ bits: "00011011",
138
+ run: 32
139
+ },
140
+ {
141
+ bits: "00010010",
142
+ run: 33
143
+ },
144
+ {
145
+ bits: "00010011",
146
+ run: 34
147
+ },
148
+ {
149
+ bits: "00010100",
150
+ run: 35
151
+ },
152
+ {
153
+ bits: "00010101",
154
+ run: 36
155
+ },
156
+ {
157
+ bits: "00010110",
158
+ run: 37
159
+ },
160
+ {
161
+ bits: "00010111",
162
+ run: 38
163
+ },
164
+ {
165
+ bits: "00101000",
166
+ run: 39
167
+ },
168
+ {
169
+ bits: "00101001",
170
+ run: 40
171
+ },
172
+ {
173
+ bits: "00101010",
174
+ run: 41
175
+ },
176
+ {
177
+ bits: "00101011",
178
+ run: 42
179
+ },
180
+ {
181
+ bits: "00101100",
182
+ run: 43
183
+ },
184
+ {
185
+ bits: "00101101",
186
+ run: 44
187
+ },
188
+ {
189
+ bits: "00000100",
190
+ run: 45
191
+ },
192
+ {
193
+ bits: "00000101",
194
+ run: 46
195
+ },
196
+ {
197
+ bits: "00001010",
198
+ run: 47
199
+ },
200
+ {
201
+ bits: "00001011",
202
+ run: 48
203
+ },
204
+ {
205
+ bits: "01010010",
206
+ run: 49
207
+ },
208
+ {
209
+ bits: "01010011",
210
+ run: 50
211
+ },
212
+ {
213
+ bits: "01010100",
214
+ run: 51
215
+ },
216
+ {
217
+ bits: "01010101",
218
+ run: 52
219
+ },
220
+ {
221
+ bits: "00100100",
222
+ run: 53
223
+ },
224
+ {
225
+ bits: "00100101",
226
+ run: 54
227
+ },
228
+ {
229
+ bits: "01011000",
230
+ run: 55
231
+ },
232
+ {
233
+ bits: "01011001",
234
+ run: 56
235
+ },
236
+ {
237
+ bits: "01011010",
238
+ run: 57
239
+ },
240
+ {
241
+ bits: "01011011",
242
+ run: 58
243
+ },
244
+ {
245
+ bits: "01001010",
246
+ run: 59
247
+ },
248
+ {
249
+ bits: "01001011",
250
+ run: 60
251
+ },
252
+ {
253
+ bits: "00110010",
254
+ run: 61
255
+ },
256
+ {
257
+ bits: "00110011",
258
+ run: 62
259
+ },
260
+ {
261
+ bits: "00110100",
262
+ run: 63
263
+ },
264
+ {
265
+ bits: "11011",
266
+ run: 64
267
+ },
268
+ {
269
+ bits: "10010",
270
+ run: 128
271
+ },
272
+ {
273
+ bits: "010111",
274
+ run: 192
275
+ },
276
+ {
277
+ bits: "0110111",
278
+ run: 256
279
+ },
280
+ {
281
+ bits: "00110110",
282
+ run: 320
283
+ },
284
+ {
285
+ bits: "00110111",
286
+ run: 384
287
+ },
288
+ {
289
+ bits: "01100100",
290
+ run: 448
291
+ },
292
+ {
293
+ bits: "01100101",
294
+ run: 512
295
+ },
296
+ {
297
+ bits: "01101000",
298
+ run: 576
299
+ },
300
+ {
301
+ bits: "01100111",
302
+ run: 640
303
+ },
304
+ {
305
+ bits: "011001100",
306
+ run: 704
307
+ },
308
+ {
309
+ bits: "011001101",
310
+ run: 768
311
+ },
312
+ {
313
+ bits: "011010010",
314
+ run: 832
315
+ },
316
+ {
317
+ bits: "011010011",
318
+ run: 896
319
+ },
320
+ {
321
+ bits: "011010100",
322
+ run: 960
323
+ },
324
+ {
325
+ bits: "011010101",
326
+ run: 1024
327
+ },
328
+ {
329
+ bits: "011010110",
330
+ run: 1088
331
+ },
332
+ {
333
+ bits: "011010111",
334
+ run: 1152
335
+ },
336
+ {
337
+ bits: "011011000",
338
+ run: 1216
339
+ },
340
+ {
341
+ bits: "011011001",
342
+ run: 1280
343
+ },
344
+ {
345
+ bits: "011011010",
346
+ run: 1344
347
+ },
348
+ {
349
+ bits: "011011011",
350
+ run: 1408
351
+ },
352
+ {
353
+ bits: "010011000",
354
+ run: 1472
355
+ },
356
+ {
357
+ bits: "010011001",
358
+ run: 1536
359
+ },
360
+ {
361
+ bits: "010011010",
362
+ run: 1600
363
+ },
364
+ {
365
+ bits: "011000",
366
+ run: 1664
367
+ },
368
+ {
369
+ bits: "010011011",
370
+ run: 1728
371
+ }
372
+ ]);
373
+ const BLACK_TERMINATING_AND_MAKEUP = toRunCodeTuples([
374
+ {
375
+ bits: "0000110111",
376
+ run: 0
377
+ },
378
+ {
379
+ bits: "010",
380
+ run: 1
381
+ },
382
+ {
383
+ bits: "11",
384
+ run: 2
385
+ },
386
+ {
387
+ bits: "10",
388
+ run: 3
389
+ },
390
+ {
391
+ bits: "011",
392
+ run: 4
393
+ },
394
+ {
395
+ bits: "0011",
396
+ run: 5
397
+ },
398
+ {
399
+ bits: "0010",
400
+ run: 6
401
+ },
402
+ {
403
+ bits: "00011",
404
+ run: 7
405
+ },
406
+ {
407
+ bits: "000101",
408
+ run: 8
409
+ },
410
+ {
411
+ bits: "000100",
412
+ run: 9
413
+ },
414
+ {
415
+ bits: "0000100",
416
+ run: 10
417
+ },
418
+ {
419
+ bits: "0000101",
420
+ run: 11
421
+ },
422
+ {
423
+ bits: "0000111",
424
+ run: 12
425
+ },
426
+ {
427
+ bits: "00000100",
428
+ run: 13
429
+ },
430
+ {
431
+ bits: "00000111",
432
+ run: 14
433
+ },
434
+ {
435
+ bits: "000011000",
436
+ run: 15
437
+ },
438
+ {
439
+ bits: "0000010111",
440
+ run: 16
441
+ },
442
+ {
443
+ bits: "0000011000",
444
+ run: 17
445
+ },
446
+ {
447
+ bits: "0000001000",
448
+ run: 18
449
+ },
450
+ {
451
+ bits: "00001100111",
452
+ run: 19
453
+ },
454
+ {
455
+ bits: "00001101000",
456
+ run: 20
457
+ },
458
+ {
459
+ bits: "00001101100",
460
+ run: 21
461
+ },
462
+ {
463
+ bits: "00000110111",
464
+ run: 22
465
+ },
466
+ {
467
+ bits: "00000101000",
468
+ run: 23
469
+ },
470
+ {
471
+ bits: "00000010111",
472
+ run: 24
473
+ },
474
+ {
475
+ bits: "00000011000",
476
+ run: 25
477
+ },
478
+ {
479
+ bits: "000011001010",
480
+ run: 26
481
+ },
482
+ {
483
+ bits: "000011001011",
484
+ run: 27
485
+ },
486
+ {
487
+ bits: "000011001100",
488
+ run: 28
489
+ },
490
+ {
491
+ bits: "000011001101",
492
+ run: 29
493
+ },
494
+ {
495
+ bits: "000001101000",
496
+ run: 30
497
+ },
498
+ {
499
+ bits: "000001101001",
500
+ run: 31
501
+ },
502
+ {
503
+ bits: "000001101010",
504
+ run: 32
505
+ },
506
+ {
507
+ bits: "000001101011",
508
+ run: 33
509
+ },
510
+ {
511
+ bits: "000011010010",
512
+ run: 34
513
+ },
514
+ {
515
+ bits: "000011010011",
516
+ run: 35
517
+ },
518
+ {
519
+ bits: "000011010100",
520
+ run: 36
521
+ },
522
+ {
523
+ bits: "000011010101",
524
+ run: 37
525
+ },
526
+ {
527
+ bits: "000011010110",
528
+ run: 38
529
+ },
530
+ {
531
+ bits: "000011010111",
532
+ run: 39
533
+ },
534
+ {
535
+ bits: "000001101100",
536
+ run: 40
537
+ },
538
+ {
539
+ bits: "000001101101",
540
+ run: 41
541
+ },
542
+ {
543
+ bits: "000011011010",
544
+ run: 42
545
+ },
546
+ {
547
+ bits: "000011011011",
548
+ run: 43
549
+ },
550
+ {
551
+ bits: "000001010100",
552
+ run: 44
553
+ },
554
+ {
555
+ bits: "000001010101",
556
+ run: 45
557
+ },
558
+ {
559
+ bits: "000001010110",
560
+ run: 46
561
+ },
562
+ {
563
+ bits: "000001010111",
564
+ run: 47
565
+ },
566
+ {
567
+ bits: "000001100100",
568
+ run: 48
569
+ },
570
+ {
571
+ bits: "000001100101",
572
+ run: 49
573
+ },
574
+ {
575
+ bits: "000001010010",
576
+ run: 50
577
+ },
578
+ {
579
+ bits: "000001010011",
580
+ run: 51
581
+ },
582
+ {
583
+ bits: "000000100100",
584
+ run: 52
585
+ },
586
+ {
587
+ bits: "000000110111",
588
+ run: 53
589
+ },
590
+ {
591
+ bits: "000000111000",
592
+ run: 54
593
+ },
594
+ {
595
+ bits: "000000100111",
596
+ run: 55
597
+ },
598
+ {
599
+ bits: "000000101000",
600
+ run: 56
601
+ },
602
+ {
603
+ bits: "000001011000",
604
+ run: 57
605
+ },
606
+ {
607
+ bits: "000001011001",
608
+ run: 58
609
+ },
610
+ {
611
+ bits: "000000101011",
612
+ run: 59
613
+ },
614
+ {
615
+ bits: "000000101100",
616
+ run: 60
617
+ },
618
+ {
619
+ bits: "000001011010",
620
+ run: 61
621
+ },
622
+ {
623
+ bits: "000001100110",
624
+ run: 62
625
+ },
626
+ {
627
+ bits: "000001100111",
628
+ run: 63
629
+ },
630
+ {
631
+ bits: "0000001111",
632
+ run: 64
633
+ },
634
+ {
635
+ bits: "000011001000",
636
+ run: 128
637
+ },
638
+ {
639
+ bits: "000011001001",
640
+ run: 192
641
+ },
642
+ {
643
+ bits: "000001011011",
644
+ run: 256
645
+ },
646
+ {
647
+ bits: "000000110011",
648
+ run: 320
649
+ },
650
+ {
651
+ bits: "000000110100",
652
+ run: 384
653
+ },
654
+ {
655
+ bits: "000000110101",
656
+ run: 448
657
+ },
658
+ {
659
+ bits: "0000001101100",
660
+ run: 512
661
+ },
662
+ {
663
+ bits: "0000001101101",
664
+ run: 576
665
+ },
666
+ {
667
+ bits: "0000001001010",
668
+ run: 640
669
+ },
670
+ {
671
+ bits: "0000001001011",
672
+ run: 704
673
+ },
674
+ {
675
+ bits: "0000001001100",
676
+ run: 768
677
+ },
678
+ {
679
+ bits: "0000001001101",
680
+ run: 832
681
+ },
682
+ {
683
+ bits: "0000001110010",
684
+ run: 896
685
+ },
686
+ {
687
+ bits: "0000001110011",
688
+ run: 960
689
+ },
690
+ {
691
+ bits: "0000001110100",
692
+ run: 1024
693
+ },
694
+ {
695
+ bits: "0000001110101",
696
+ run: 1088
697
+ },
698
+ {
699
+ bits: "0000001110110",
700
+ run: 1152
701
+ },
702
+ {
703
+ bits: "0000001110111",
704
+ run: 1216
705
+ },
706
+ {
707
+ bits: "0000001010010",
708
+ run: 1280
709
+ },
710
+ {
711
+ bits: "0000001010011",
712
+ run: 1344
713
+ },
714
+ {
715
+ bits: "0000001010100",
716
+ run: 1408
717
+ },
718
+ {
719
+ bits: "0000001010101",
720
+ run: 1472
721
+ },
722
+ {
723
+ bits: "0000001011010",
724
+ run: 1536
725
+ },
726
+ {
727
+ bits: "0000001011011",
728
+ run: 1600
729
+ },
730
+ {
731
+ bits: "0000001100100",
732
+ run: 1664
733
+ },
734
+ {
735
+ bits: "0000001100101",
736
+ run: 1728
737
+ }
738
+ ]);
739
+ const EXTENDED_MAKEUP = toRunCodeTuples([
740
+ {
741
+ bits: "00000001000",
742
+ run: 1792
743
+ },
744
+ {
745
+ bits: "00000001100",
746
+ run: 1856
747
+ },
748
+ {
749
+ bits: "00000001101",
750
+ run: 1920
751
+ },
752
+ {
753
+ bits: "000000010010",
754
+ run: 1984
755
+ },
756
+ {
757
+ bits: "000000010011",
758
+ run: 2048
759
+ },
760
+ {
761
+ bits: "000000010100",
762
+ run: 2112
763
+ },
764
+ {
765
+ bits: "000000010101",
766
+ run: 2176
767
+ },
768
+ {
769
+ bits: "000000010110",
770
+ run: 2240
771
+ },
772
+ {
773
+ bits: "000000010111",
774
+ run: 2304
775
+ },
776
+ {
777
+ bits: "000000011100",
778
+ run: 2368
779
+ },
780
+ {
781
+ bits: "000000011101",
782
+ run: 2432
783
+ },
784
+ {
785
+ bits: "000000011110",
786
+ run: 2496
787
+ },
788
+ {
789
+ bits: "000000011111",
790
+ run: 2560
791
+ }
792
+ ]);
205
793
  const TERMINATING_RUN_LIMIT = 64;
206
794
  const MAX_RUN_CODE_BITS = 14;
207
795
  const MODE_CODES = [
@@ -249,8 +837,9 @@ const MODE_CODES = [
249
837
  const MAX_MODE_CODE_BITS = 7;
250
838
  const EOL_MIN_ZEROS = 11;
251
839
  const MAX_FILL_ZERO_BITS = 512;
840
+ const CODE_KEY_VALUE_BITS = 16;
252
841
  function codeKey(bitLength, code) {
253
- return bitLength * 2 ** 16 + code;
842
+ return bitLength * 2 ** CODE_KEY_VALUE_BITS + code;
254
843
  }
255
844
  function buildCodeTable(...groups) {
256
845
  const table = /* @__PURE__ */ new Map();
@@ -261,6 +850,9 @@ const WHITE_CODE_TABLE = buildCodeTable(WHITE_TERMINATING_AND_MAKEUP, EXTENDED_M
261
850
  const BLACK_CODE_TABLE = buildCodeTable(BLACK_TERMINATING_AND_MAKEUP, EXTENDED_MAKEUP);
262
851
  const MODE_CODE_TABLE = new Map(MODE_CODES.map(([bits, mode]) => [codeKey(bits.length, Number.parseInt(bits, 2)), mode]));
263
852
  const BITS_PER_BYTE = 8;
853
+ const BYTE_INDEX_SHIFT = 3;
854
+ const MSB_BIT_MASK = 128;
855
+ const BYTE_MASK = 255;
264
856
  var CcittBitReader = class {
265
857
  data;
266
858
  position = 0;
@@ -278,7 +870,7 @@ var CcittBitReader = class {
278
870
  }
279
871
  readBit() {
280
872
  if (this.exhausted) return -1;
281
- const bit = (this.data[this.position >> 3] ?? 0) >> 7 - (this.position & 7) & 1;
873
+ const bit = (this.data[this.position >> BYTE_INDEX_SHIFT] ?? 0) >> 7 - (this.position & 7) & 1;
282
874
  this.position++;
283
875
  return bit;
284
876
  }
@@ -414,15 +1006,15 @@ function decode2dRow(reader, reference, columns) {
414
1006
  }
415
1007
  function setBitRun(row, from, to, bit) {
416
1008
  for (let x = from; x < to; x++) {
417
- const index = x >> 3;
418
- const mask = 128 >> (x & 7);
1009
+ const index = x >> BYTE_INDEX_SHIFT;
1010
+ const mask = MSB_BIT_MASK >> (x & 7);
419
1011
  if (bit === 1) row[index] = (row[index] ?? 0) | mask;
420
1012
  else row[index] = (row[index] ?? 0) & ~mask;
421
1013
  }
422
1014
  }
423
1015
  function renderRow(transitions, columns, blackBit) {
424
- const row = new Uint8Array(Math.ceil(columns / 8));
425
- if (blackBit === 0) row.fill(255);
1016
+ const row = new Uint8Array(Math.ceil(columns / BITS_PER_BYTE));
1017
+ if (blackBit === 0) row.fill(BYTE_MASK);
426
1018
  let position = 0;
427
1019
  let black = false;
428
1020
  for (const transition of transitions) {
@@ -471,10 +1063,10 @@ function decodeCcittFax(data, options = {}) {
471
1063
  }
472
1064
  if (requestedRows > 0 && rows.length < requestedRows) {
473
1065
  if (warn !== void 0 && rows.length > 0) warn(`CCITT fax data ended after ${String(rows.length)} of ${String(requestedRows)} declared rows; padding the remainder white`);
474
- const bytesPerRow = Math.ceil(columns / 8);
1066
+ const bytesPerRow = Math.ceil(columns / BITS_PER_BYTE);
475
1067
  while (rows.length < requestedRows) {
476
1068
  const blank = new Uint8Array(bytesPerRow);
477
- if (blackBit === 0) blank.fill(255);
1069
+ if (blackBit === 0) blank.fill(BYTE_MASK);
478
1070
  rows.push(blank);
479
1071
  }
480
1072
  }