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