pdfjs-dist 2.3.200 → 2.4.456

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.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (185) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +6499 -17971
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +19303 -29896
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +25473 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  13. package/es5/build/pdf.worker.js +57878 -0
  14. package/es5/build/pdf.worker.js.map +1 -0
  15. package/es5/web/images/annotation-check.svg +11 -0
  16. package/es5/web/images/annotation-comment.svg +16 -0
  17. package/es5/web/images/annotation-help.svg +26 -0
  18. package/es5/web/images/annotation-insert.svg +10 -0
  19. package/es5/web/images/annotation-key.svg +11 -0
  20. package/es5/web/images/annotation-newparagraph.svg +11 -0
  21. package/es5/web/images/annotation-noicon.svg +7 -0
  22. package/es5/web/images/annotation-note.svg +42 -0
  23. package/es5/web/images/annotation-paragraph.svg +16 -0
  24. package/es5/web/images/loading-icon.gif +0 -0
  25. package/es5/web/images/shadow.png +0 -0
  26. package/es5/web/images/texture.png +0 -0
  27. package/es5/web/pdf_viewer.css +407 -0
  28. package/es5/web/pdf_viewer.js +7757 -0
  29. package/es5/web/pdf_viewer.js.map +1 -0
  30. package/image_decoders/pdf.image_decoders.js +1333 -4839
  31. package/image_decoders/pdf.image_decoders.js.map +1 -1
  32. package/image_decoders/pdf.image_decoders.min.js +22 -1
  33. package/lib/README.md +7 -0
  34. package/lib/core/annotation.js +683 -1066
  35. package/lib/core/arithmetic_decoder.js +81 -97
  36. package/lib/core/bidi.js +54 -46
  37. package/lib/core/ccitt.js +88 -81
  38. package/lib/core/ccitt_stream.js +15 -14
  39. package/lib/core/cff_parser.js +196 -193
  40. package/lib/core/charsets.js +4 -4
  41. package/lib/core/chunked_stream.js +441 -569
  42. package/lib/core/cmap.js +220 -279
  43. package/lib/core/colorspace.js +699 -863
  44. package/lib/core/core_utils.js +59 -80
  45. package/lib/core/crypto.js +379 -437
  46. package/lib/core/document.js +564 -673
  47. package/lib/core/encodings.js +15 -15
  48. package/lib/core/evaluator.js +983 -889
  49. package/lib/core/font_renderer.js +128 -171
  50. package/lib/core/fonts.js +451 -400
  51. package/lib/core/function.js +289 -285
  52. package/lib/core/glyphlist.js +4527 -4527
  53. package/lib/core/image.js +138 -117
  54. package/lib/core/image_utils.js +46 -63
  55. package/lib/core/jbig2.js +324 -332
  56. package/lib/core/jbig2_stream.js +18 -17
  57. package/lib/core/jpeg_stream.js +133 -24
  58. package/lib/core/jpg.js +238 -210
  59. package/lib/core/jpx.js +158 -157
  60. package/lib/core/jpx_stream.js +28 -28
  61. package/lib/core/metrics.js +2928 -2928
  62. package/lib/core/murmurhash3.js +87 -102
  63. package/lib/core/obj.js +1111 -1302
  64. package/lib/core/operator_list.js +55 -42
  65. package/lib/core/parser.js +956 -987
  66. package/lib/core/pattern.js +69 -69
  67. package/lib/core/pdf_manager.js +149 -316
  68. package/lib/core/primitives.js +45 -77
  69. package/lib/core/ps_parser.js +175 -214
  70. package/lib/core/standard_fonts.js +237 -236
  71. package/lib/core/stream.js +83 -77
  72. package/lib/core/type1_parser.js +78 -68
  73. package/lib/core/unicode.js +1654 -1654
  74. package/lib/core/worker.js +148 -196
  75. package/lib/core/worker_stream.js +101 -210
  76. package/lib/display/annotation_layer.js +733 -1155
  77. package/lib/display/api.js +1539 -1928
  78. package/lib/display/api_compatibility.js +10 -8
  79. package/lib/display/canvas.js +159 -158
  80. package/lib/display/content_disposition.js +36 -55
  81. package/lib/display/display_utils.js +298 -551
  82. package/lib/display/fetch_stream.js +181 -305
  83. package/lib/display/font_loader.js +273 -416
  84. package/lib/display/metadata.js +86 -98
  85. package/lib/display/network.js +376 -511
  86. package/lib/display/network_utils.js +20 -19
  87. package/lib/display/node_stream.js +276 -460
  88. package/lib/display/pattern_helper.js +76 -44
  89. package/lib/display/svg.js +1137 -1405
  90. package/lib/display/text_layer.js +75 -82
  91. package/lib/display/transport_stream.js +236 -374
  92. package/lib/display/webgl.js +70 -83
  93. package/lib/display/worker_options.js +3 -3
  94. package/lib/display/xml_parser.js +303 -392
  95. package/lib/examples/node/domstubs.js +37 -37
  96. package/lib/pdf.js +22 -21
  97. package/lib/pdf.worker.js +5 -5
  98. package/lib/shared/compatibility.js +2 -251
  99. package/lib/shared/is_node.js +7 -6
  100. package/lib/shared/message_handler.js +222 -194
  101. package/lib/shared/util.js +269 -405
  102. package/lib/test/unit/annotation_spec.js +1089 -1014
  103. package/lib/test/unit/api_spec.js +617 -544
  104. package/lib/test/unit/bidi_spec.js +7 -7
  105. package/lib/test/unit/cff_parser_spec.js +63 -62
  106. package/lib/test/unit/clitests_helper.js +7 -9
  107. package/lib/test/unit/cmap_spec.js +84 -86
  108. package/lib/test/unit/colorspace_spec.js +154 -154
  109. package/lib/test/unit/core_utils_spec.js +125 -105
  110. package/lib/test/unit/crypto_spec.js +181 -181
  111. package/lib/test/unit/custom_spec.js +22 -24
  112. package/lib/test/unit/display_svg_spec.js +35 -36
  113. package/lib/test/unit/display_utils_spec.js +139 -149
  114. package/lib/test/unit/document_spec.js +16 -16
  115. package/lib/test/unit/encodings_spec.js +12 -34
  116. package/lib/test/unit/evaluator_spec.js +81 -95
  117. package/lib/test/unit/fetch_stream_spec.js +30 -30
  118. package/lib/test/unit/function_spec.js +206 -204
  119. package/lib/test/unit/jasmine-boot.js +48 -32
  120. package/lib/test/unit/message_handler_spec.js +172 -162
  121. package/lib/test/unit/metadata_spec.js +69 -69
  122. package/lib/test/unit/murmurhash3_spec.js +12 -12
  123. package/lib/test/unit/network_spec.js +12 -12
  124. package/lib/test/unit/network_utils_spec.js +152 -152
  125. package/lib/test/unit/node_stream_spec.js +74 -90
  126. package/lib/test/unit/parser_spec.js +107 -113
  127. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  128. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  129. package/lib/test/unit/pdf_history_spec.js +32 -32
  130. package/lib/test/unit/primitives_spec.js +117 -115
  131. package/lib/test/unit/stream_spec.js +16 -14
  132. package/lib/test/unit/test_utils.js +119 -285
  133. package/lib/test/unit/testreporter.js +19 -19
  134. package/lib/test/unit/type1_parser_spec.js +41 -41
  135. package/lib/test/unit/ui_utils_spec.js +318 -426
  136. package/lib/test/unit/unicode_spec.js +42 -42
  137. package/lib/test/unit/util_spec.js +122 -143
  138. package/lib/web/annotation_layer_builder.js +66 -103
  139. package/lib/web/app.js +1166 -1196
  140. package/lib/web/app_options.js +61 -77
  141. package/lib/web/base_viewer.js +804 -850
  142. package/lib/web/chromecom.js +164 -249
  143. package/lib/web/debugger.js +149 -205
  144. package/lib/web/download_manager.js +38 -57
  145. package/lib/web/firefox_print_service.js +35 -30
  146. package/lib/web/firefoxcom.js +175 -374
  147. package/lib/web/genericcom.js +26 -108
  148. package/lib/web/genericl10n.js +24 -153
  149. package/lib/web/grab_to_pan.js +30 -30
  150. package/lib/web/interfaces.js +80 -258
  151. package/lib/web/overlay_manager.js +70 -246
  152. package/lib/web/password_prompt.js +38 -64
  153. package/lib/web/pdf_attachment_viewer.js +105 -130
  154. package/lib/web/pdf_cursor_tools.js +75 -102
  155. package/lib/web/pdf_document_properties.js +227 -376
  156. package/lib/web/pdf_find_bar.js +137 -171
  157. package/lib/web/pdf_find_controller.js +492 -549
  158. package/lib/web/pdf_find_utils.js +13 -13
  159. package/lib/web/pdf_history.js +395 -406
  160. package/lib/web/pdf_link_service.js +302 -349
  161. package/lib/web/pdf_outline_viewer.js +148 -209
  162. package/lib/web/pdf_page_view.js +449 -507
  163. package/lib/web/pdf_presentation_mode.js +304 -357
  164. package/lib/web/pdf_print_service.js +90 -104
  165. package/lib/web/pdf_rendering_queue.js +87 -108
  166. package/lib/web/pdf_sidebar.js +264 -304
  167. package/lib/web/pdf_sidebar_resizer.js +92 -119
  168. package/lib/web/pdf_single_page_viewer.js +77 -126
  169. package/lib/web/pdf_thumbnail_view.js +276 -297
  170. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  171. package/lib/web/pdf_viewer.component.js +20 -21
  172. package/lib/web/pdf_viewer.js +55 -115
  173. package/lib/web/preferences.js +66 -273
  174. package/lib/web/secondary_toolbar.js +164 -196
  175. package/lib/web/text_layer_builder.js +284 -317
  176. package/lib/web/toolbar.js +216 -211
  177. package/lib/web/ui_utils.js +303 -404
  178. package/lib/web/view_history.js +49 -222
  179. package/lib/web/viewer_compatibility.js +7 -5
  180. package/package.json +2 -9
  181. package/web/pdf_viewer.css +25 -18
  182. package/web/pdf_viewer.js +3481 -4764
  183. package/web/pdf_viewer.js.map +1 -1
  184. package/webpack.js +14 -5
  185. package/lib/shared/streams_polyfill.js +0 -43
package/lib/core/jpx.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2019 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -26,44 +26,25 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.JpxImage = void 0;
28
28
 
29
- var _util = require("../shared/util");
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _arithmetic_decoder = require("./arithmetic_decoder");
31
+ var _core_utils = require("./core_utils.js");
32
32
 
33
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
33
+ var _arithmetic_decoder = require("./arithmetic_decoder.js");
34
34
 
35
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
-
37
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
38
-
39
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
40
-
41
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
42
-
43
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
44
-
45
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
-
47
- var JpxError =
48
- /*#__PURE__*/
49
- function (_BaseException) {
50
- _inherits(JpxError, _BaseException);
51
-
52
- function JpxError(msg) {
53
- _classCallCheck(this, JpxError);
54
-
55
- return _possibleConstructorReturn(this, _getPrototypeOf(JpxError).call(this, "JPX error: ".concat(msg)));
35
+ class JpxError extends _util.BaseException {
36
+ constructor(msg) {
37
+ super(`JPX error: ${msg}`);
56
38
  }
57
39
 
58
- return JpxError;
59
- }(_util.BaseException);
40
+ }
60
41
 
61
42
  var JpxImage = function JpxImageClosure() {
62
43
  var SubbandsGainLog2 = {
63
- 'LL': 0,
64
- 'LH': 1,
65
- 'HL': 1,
66
- 'HH': 2
44
+ LL: 0,
45
+ LH: 1,
46
+ HL: 1,
47
+ HH: 2
67
48
  };
68
49
 
69
50
  function JpxImage() {
@@ -72,9 +53,9 @@ var JpxImage = function JpxImageClosure() {
72
53
 
73
54
  JpxImage.prototype = {
74
55
  parse: function JpxImage_parse(data) {
75
- var head = (0, _util.readUint16)(data, 0);
56
+ var head = (0, _core_utils.readUint16)(data, 0);
76
57
 
77
- if (head === 0xFF4F) {
58
+ if (head === 0xff4f) {
78
59
  this.parseCodestream(data, 0, data.length);
79
60
  return;
80
61
  }
@@ -84,12 +65,12 @@ var JpxImage = function JpxImageClosure() {
84
65
 
85
66
  while (position < length) {
86
67
  var headerSize = 8;
87
- var lbox = (0, _util.readUint32)(data, position);
88
- var tbox = (0, _util.readUint32)(data, position + 4);
68
+ var lbox = (0, _core_utils.readUint32)(data, position);
69
+ var tbox = (0, _core_utils.readUint32)(data, position + 4);
89
70
  position += headerSize;
90
71
 
91
72
  if (lbox === 1) {
92
- lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);
73
+ lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);
93
74
  position += 8;
94
75
  headerSize += 8;
95
76
  }
@@ -99,22 +80,22 @@ var JpxImage = function JpxImageClosure() {
99
80
  }
100
81
 
101
82
  if (lbox < headerSize) {
102
- throw new JpxError('Invalid box field size');
83
+ throw new JpxError("Invalid box field size");
103
84
  }
104
85
 
105
86
  var dataLength = lbox - headerSize;
106
87
  var jumpDataLength = true;
107
88
 
108
89
  switch (tbox) {
109
- case 0x6A703268:
90
+ case 0x6a703268:
110
91
  jumpDataLength = false;
111
92
  break;
112
93
 
113
- case 0x636F6C72:
94
+ case 0x636f6c72:
114
95
  var method = data[position];
115
96
 
116
97
  if (method === 1) {
117
- var colorspace = (0, _util.readUint32)(data, position + 3);
98
+ var colorspace = (0, _core_utils.readUint32)(data, position + 3);
118
99
 
119
100
  switch (colorspace) {
120
101
  case 16:
@@ -123,27 +104,27 @@ var JpxImage = function JpxImageClosure() {
123
104
  break;
124
105
 
125
106
  default:
126
- (0, _util.warn)('Unknown colorspace ' + colorspace);
107
+ (0, _util.warn)("Unknown colorspace " + colorspace);
127
108
  break;
128
109
  }
129
110
  } else if (method === 2) {
130
- (0, _util.info)('ICC profile not supported');
111
+ (0, _util.info)("ICC profile not supported");
131
112
  }
132
113
 
133
114
  break;
134
115
 
135
- case 0x6A703263:
116
+ case 0x6a703263:
136
117
  this.parseCodestream(data, position, position + dataLength);
137
118
  break;
138
119
 
139
- case 0x6A502020:
140
- if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {
141
- (0, _util.warn)('Invalid JP2 signature');
120
+ case 0x6a502020:
121
+ if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {
122
+ (0, _util.warn)("Invalid JP2 signature");
142
123
  }
143
124
 
144
125
  break;
145
126
 
146
- case 0x6A501A1A:
127
+ case 0x6a501a1a:
147
128
  case 0x66747970:
148
129
  case 0x72726571:
149
130
  case 0x72657320:
@@ -151,8 +132,8 @@ var JpxImage = function JpxImageClosure() {
151
132
  break;
152
133
 
153
134
  default:
154
- var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF);
155
- (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')');
135
+ var headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);
136
+ (0, _util.warn)("Unsupported header type " + tbox + " (" + headerType + ")");
156
137
  break;
157
138
  }
158
139
 
@@ -169,7 +150,7 @@ var JpxImage = function JpxImageClosure() {
169
150
  newByte = stream.getByte();
170
151
  var code = oldByte << 8 | newByte;
171
152
 
172
- if (code === 0xFF51) {
153
+ if (code === 0xff51) {
173
154
  stream.skip(4);
174
155
  var Xsiz = stream.getInt32() >>> 0;
175
156
  var Ysiz = stream.getInt32() >>> 0;
@@ -185,7 +166,7 @@ var JpxImage = function JpxImageClosure() {
185
166
  }
186
167
  }
187
168
 
188
- throw new JpxError('No size marker found in JPX stream');
169
+ throw new JpxError("No size marker found in JPX stream");
189
170
  },
190
171
  parseCodestream: function JpxImage_parseCodestream(data, start, end) {
191
172
  var context = {};
@@ -195,7 +176,7 @@ var JpxImage = function JpxImageClosure() {
195
176
  var position = start;
196
177
 
197
178
  while (position + 1 < end) {
198
- var code = (0, _util.readUint16)(data, position);
179
+ var code = (0, _core_utils.readUint16)(data, position);
199
180
  position += 2;
200
181
  var length = 0,
201
182
  j,
@@ -206,32 +187,32 @@ var JpxImage = function JpxImageClosure() {
206
187
  tile;
207
188
 
208
189
  switch (code) {
209
- case 0xFF4F:
190
+ case 0xff4f:
210
191
  context.mainHeader = true;
211
192
  break;
212
193
 
213
- case 0xFFD9:
194
+ case 0xffd9:
214
195
  break;
215
196
 
216
- case 0xFF51:
217
- length = (0, _util.readUint16)(data, position);
197
+ case 0xff51:
198
+ length = (0, _core_utils.readUint16)(data, position);
218
199
  var siz = {};
219
- siz.Xsiz = (0, _util.readUint32)(data, position + 4);
220
- siz.Ysiz = (0, _util.readUint32)(data, position + 8);
221
- siz.XOsiz = (0, _util.readUint32)(data, position + 12);
222
- siz.YOsiz = (0, _util.readUint32)(data, position + 16);
223
- siz.XTsiz = (0, _util.readUint32)(data, position + 20);
224
- siz.YTsiz = (0, _util.readUint32)(data, position + 24);
225
- siz.XTOsiz = (0, _util.readUint32)(data, position + 28);
226
- siz.YTOsiz = (0, _util.readUint32)(data, position + 32);
227
- var componentsCount = (0, _util.readUint16)(data, position + 36);
200
+ siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);
201
+ siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);
202
+ siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);
203
+ siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);
204
+ siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);
205
+ siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);
206
+ siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);
207
+ siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);
208
+ var componentsCount = (0, _core_utils.readUint16)(data, position + 36);
228
209
  siz.Csiz = componentsCount;
229
210
  var components = [];
230
211
  j = position + 38;
231
212
 
232
213
  for (var i = 0; i < componentsCount; i++) {
233
214
  var component = {
234
- precision: (data[j] & 0x7F) + 1,
215
+ precision: (data[j] & 0x7f) + 1,
235
216
  isSigned: !!(data[j] & 0x80),
236
217
  XRsiz: data[j + 1],
237
218
  YRsiz: data[j + 2]
@@ -248,13 +229,13 @@ var JpxImage = function JpxImageClosure() {
248
229
  context.COC = [];
249
230
  break;
250
231
 
251
- case 0xFF5C:
252
- length = (0, _util.readUint16)(data, position);
232
+ case 0xff5c:
233
+ length = (0, _core_utils.readUint16)(data, position);
253
234
  var qcd = {};
254
235
  j = position + 2;
255
236
  sqcd = data[j++];
256
237
 
257
- switch (sqcd & 0x1F) {
238
+ switch (sqcd & 0x1f) {
258
239
  case 0:
259
240
  spqcdSize = 8;
260
241
  scalarExpounded = true;
@@ -271,7 +252,7 @@ var JpxImage = function JpxImageClosure() {
271
252
  break;
272
253
 
273
254
  default:
274
- throw new Error('Invalid SQcd value ' + sqcd);
255
+ throw new Error("Invalid SQcd value " + sqcd);
275
256
  }
276
257
 
277
258
  qcd.noQuantization = spqcdSize === 8;
@@ -305,8 +286,8 @@ var JpxImage = function JpxImageClosure() {
305
286
 
306
287
  break;
307
288
 
308
- case 0xFF5D:
309
- length = (0, _util.readUint16)(data, position);
289
+ case 0xff5d:
290
+ length = (0, _core_utils.readUint16)(data, position);
310
291
  var qcc = {};
311
292
  j = position + 2;
312
293
  var cqcc;
@@ -314,13 +295,13 @@ var JpxImage = function JpxImageClosure() {
314
295
  if (context.SIZ.Csiz < 257) {
315
296
  cqcc = data[j++];
316
297
  } else {
317
- cqcc = (0, _util.readUint16)(data, j);
298
+ cqcc = (0, _core_utils.readUint16)(data, j);
318
299
  j += 2;
319
300
  }
320
301
 
321
302
  sqcd = data[j++];
322
303
 
323
- switch (sqcd & 0x1F) {
304
+ switch (sqcd & 0x1f) {
324
305
  case 0:
325
306
  spqcdSize = 8;
326
307
  scalarExpounded = true;
@@ -337,7 +318,7 @@ var JpxImage = function JpxImageClosure() {
337
318
  break;
338
319
 
339
320
  default:
340
- throw new Error('Invalid SQcd value ' + sqcd);
321
+ throw new Error("Invalid SQcd value " + sqcd);
341
322
  }
342
323
 
343
324
  qcc.noQuantization = spqcdSize === 8;
@@ -370,8 +351,8 @@ var JpxImage = function JpxImageClosure() {
370
351
 
371
352
  break;
372
353
 
373
- case 0xFF52:
374
- length = (0, _util.readUint16)(data, position);
354
+ case 0xff52:
355
+ length = (0, _core_utils.readUint16)(data, position);
375
356
  var cod = {};
376
357
  j = position + 2;
377
358
  var scod = data[j++];
@@ -379,12 +360,12 @@ var JpxImage = function JpxImageClosure() {
379
360
  cod.sopMarkerUsed = !!(scod & 2);
380
361
  cod.ephMarkerUsed = !!(scod & 4);
381
362
  cod.progressionOrder = data[j++];
382
- cod.layersCount = (0, _util.readUint16)(data, j);
363
+ cod.layersCount = (0, _core_utils.readUint16)(data, j);
383
364
  j += 2;
384
365
  cod.multipleComponentTransform = data[j++];
385
366
  cod.decompositionLevelsCount = data[j++];
386
- cod.xcb = (data[j++] & 0xF) + 2;
387
- cod.ycb = (data[j++] & 0xF) + 2;
367
+ cod.xcb = (data[j++] & 0xf) + 2;
368
+ cod.ycb = (data[j++] & 0xf) + 2;
388
369
  var blockStyle = data[j++];
389
370
  cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);
390
371
  cod.resetContextProbabilities = !!(blockStyle & 2);
@@ -400,7 +381,7 @@ var JpxImage = function JpxImageClosure() {
400
381
  while (j < length + position) {
401
382
  var precinctsSize = data[j++];
402
383
  precinctsSizes.push({
403
- PPx: precinctsSize & 0xF,
384
+ PPx: precinctsSize & 0xf,
404
385
  PPy: precinctsSize >> 4
405
386
  });
406
387
  }
@@ -411,28 +392,28 @@ var JpxImage = function JpxImageClosure() {
411
392
  var unsupported = [];
412
393
 
413
394
  if (cod.selectiveArithmeticCodingBypass) {
414
- unsupported.push('selectiveArithmeticCodingBypass');
395
+ unsupported.push("selectiveArithmeticCodingBypass");
415
396
  }
416
397
 
417
398
  if (cod.resetContextProbabilities) {
418
- unsupported.push('resetContextProbabilities');
399
+ unsupported.push("resetContextProbabilities");
419
400
  }
420
401
 
421
402
  if (cod.terminationOnEachCodingPass) {
422
- unsupported.push('terminationOnEachCodingPass');
403
+ unsupported.push("terminationOnEachCodingPass");
423
404
  }
424
405
 
425
406
  if (cod.verticallyStripe) {
426
- unsupported.push('verticallyStripe');
407
+ unsupported.push("verticallyStripe");
427
408
  }
428
409
 
429
410
  if (cod.predictableTermination) {
430
- unsupported.push('predictableTermination');
411
+ unsupported.push("predictableTermination");
431
412
  }
432
413
 
433
414
  if (unsupported.length > 0) {
434
415
  doNotRecover = true;
435
- throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');
416
+ throw new Error("Unsupported COD options (" + unsupported.join(", ") + ")");
436
417
  }
437
418
 
438
419
  if (context.mainHeader) {
@@ -444,11 +425,11 @@ var JpxImage = function JpxImageClosure() {
444
425
 
445
426
  break;
446
427
 
447
- case 0xFF90:
448
- length = (0, _util.readUint16)(data, position);
428
+ case 0xff90:
429
+ length = (0, _core_utils.readUint16)(data, position);
449
430
  tile = {};
450
- tile.index = (0, _util.readUint16)(data, position + 2);
451
- tile.length = (0, _util.readUint32)(data, position + 4);
431
+ tile.index = (0, _core_utils.readUint16)(data, position + 2);
432
+ tile.length = (0, _core_utils.readUint32)(data, position + 4);
452
433
  tile.dataEnd = tile.length + position - 2;
453
434
  tile.partIndex = data[position + 8];
454
435
  tile.partsCount = data[position + 9];
@@ -464,7 +445,7 @@ var JpxImage = function JpxImageClosure() {
464
445
  context.currentTile = tile;
465
446
  break;
466
447
 
467
- case 0xFF93:
448
+ case 0xff93:
468
449
  tile = context.currentTile;
469
450
 
470
451
  if (tile.partIndex === 0) {
@@ -476,18 +457,18 @@ var JpxImage = function JpxImageClosure() {
476
457
  parseTilePackets(context, data, position, length);
477
458
  break;
478
459
 
479
- case 0xFF55:
480
- case 0xFF57:
481
- case 0xFF58:
482
- case 0xFF64:
483
- length = (0, _util.readUint16)(data, position);
460
+ case 0xff55:
461
+ case 0xff57:
462
+ case 0xff58:
463
+ case 0xff64:
464
+ length = (0, _core_utils.readUint16)(data, position);
484
465
  break;
485
466
 
486
- case 0xFF53:
487
- throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');
467
+ case 0xff53:
468
+ throw new Error("Codestream code 0xFF53 (COC) is not implemented");
488
469
 
489
470
  default:
490
- throw new Error('Unknown codestream code: ' + code.toString(16));
471
+ throw new Error("Unknown codestream code: " + code.toString(16));
491
472
  }
492
473
 
493
474
  position += length;
@@ -496,7 +477,7 @@ var JpxImage = function JpxImageClosure() {
496
477
  if (doNotRecover || this.failOnCorruptedImage) {
497
478
  throw new JpxError(e.message);
498
479
  } else {
499
- (0, _util.warn)('JPX: Trying to recover from: ' + e.message);
480
+ (0, _util.warn)("JPX: Trying to recover from: " + e.message);
500
481
  }
501
482
  }
502
483
 
@@ -584,13 +565,13 @@ var JpxImage = function JpxImageClosure() {
584
565
  var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;
585
566
  var numprecincts = numprecinctswide * numprecinctshigh;
586
567
  resolution.precinctParameters = {
587
- precinctWidth: precinctWidth,
588
- precinctHeight: precinctHeight,
589
- numprecinctswide: numprecinctswide,
590
- numprecinctshigh: numprecinctshigh,
591
- numprecincts: numprecincts,
592
- precinctWidthInSubband: precinctWidthInSubband,
593
- precinctHeightInSubband: precinctHeightInSubband
568
+ precinctWidth,
569
+ precinctHeight,
570
+ numprecinctswide,
571
+ numprecinctshigh,
572
+ numprecincts,
573
+ precinctWidthInSubband,
574
+ precinctHeightInSubband
594
575
  };
595
576
  }
596
577
 
@@ -691,7 +672,7 @@ var JpxImage = function JpxImageClosure() {
691
672
  }
692
673
 
693
674
  return {
694
- layerNumber: layerNumber,
675
+ layerNumber,
695
676
  codeblocks: precinctCodeblocks
696
677
  };
697
678
  }
@@ -741,7 +722,7 @@ var JpxImage = function JpxImageClosure() {
741
722
  r = 0;
742
723
  }
743
724
 
744
- throw new JpxError('Out of packets');
725
+ throw new JpxError("Out of packets");
745
726
  };
746
727
  }
747
728
 
@@ -790,7 +771,7 @@ var JpxImage = function JpxImageClosure() {
790
771
  l = 0;
791
772
  }
792
773
 
793
- throw new JpxError('Out of packets');
774
+ throw new JpxError("Out of packets");
794
775
  };
795
776
  }
796
777
 
@@ -861,7 +842,7 @@ var JpxImage = function JpxImageClosure() {
861
842
  p = 0;
862
843
  }
863
844
 
864
- throw new JpxError('Out of packets');
845
+ throw new JpxError("Out of packets");
865
846
  };
866
847
  }
867
848
 
@@ -913,7 +894,7 @@ var JpxImage = function JpxImageClosure() {
913
894
  px = 0;
914
895
  }
915
896
 
916
- throw new JpxError('Out of packets');
897
+ throw new JpxError("Out of packets");
917
898
  };
918
899
  }
919
900
 
@@ -965,7 +946,7 @@ var JpxImage = function JpxImageClosure() {
965
946
  py = 0;
966
947
  }
967
948
 
968
- throw new JpxError('Out of packets');
949
+ throw new JpxError("Out of packets");
969
950
  };
970
951
  }
971
952
 
@@ -1029,10 +1010,10 @@ var JpxImage = function JpxImageClosure() {
1029
1010
 
1030
1011
  return {
1031
1012
  components: sizePerComponent,
1032
- minWidth: minWidth,
1033
- minHeight: minHeight,
1034
- maxNumWide: maxNumWide,
1035
- maxNumHigh: maxNumHigh
1013
+ minWidth,
1014
+ minHeight,
1015
+ maxNumWide,
1016
+ maxNumHigh
1036
1017
  };
1037
1018
  }
1038
1019
 
@@ -1063,7 +1044,7 @@ var JpxImage = function JpxImageClosure() {
1063
1044
 
1064
1045
  if (r === 0) {
1065
1046
  subband = {};
1066
- subband.type = 'LL';
1047
+ subband.type = "LL";
1067
1048
  subband.tbx0 = Math.ceil(component.tcx0 / scale);
1068
1049
  subband.tby0 = Math.ceil(component.tcy0 / scale);
1069
1050
  subband.tbx1 = Math.ceil(component.tcx1 / scale);
@@ -1076,7 +1057,7 @@ var JpxImage = function JpxImageClosure() {
1076
1057
  var bscale = 1 << decompositionLevelsCount - r + 1;
1077
1058
  var resolutionSubbands = [];
1078
1059
  subband = {};
1079
- subband.type = 'HL';
1060
+ subband.type = "HL";
1080
1061
  subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
1081
1062
  subband.tby0 = Math.ceil(component.tcy0 / bscale);
1082
1063
  subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
@@ -1086,7 +1067,7 @@ var JpxImage = function JpxImageClosure() {
1086
1067
  subbands.push(subband);
1087
1068
  resolutionSubbands.push(subband);
1088
1069
  subband = {};
1089
- subband.type = 'LH';
1070
+ subband.type = "LH";
1090
1071
  subband.tbx0 = Math.ceil(component.tcx0 / bscale);
1091
1072
  subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
1092
1073
  subband.tbx1 = Math.ceil(component.tcx1 / bscale);
@@ -1096,7 +1077,7 @@ var JpxImage = function JpxImageClosure() {
1096
1077
  subbands.push(subband);
1097
1078
  resolutionSubbands.push(subband);
1098
1079
  subband = {};
1099
- subband.type = 'HH';
1080
+ subband.type = "HH";
1100
1081
  subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
1101
1082
  subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
1102
1083
  subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
@@ -1137,7 +1118,7 @@ var JpxImage = function JpxImageClosure() {
1137
1118
  break;
1138
1119
 
1139
1120
  default:
1140
- throw new JpxError("Unsupported progression order ".concat(progressionOrder));
1121
+ throw new JpxError(`Unsupported progression order ${progressionOrder}`);
1141
1122
  }
1142
1123
  }
1143
1124
 
@@ -1161,7 +1142,7 @@ var JpxImage = function JpxImageClosure() {
1161
1142
  bufferSize += 8;
1162
1143
  }
1163
1144
 
1164
- if (b === 0xFF) {
1145
+ if (b === 0xff) {
1165
1146
  skipNextBit = true;
1166
1147
  }
1167
1148
  }
@@ -1171,10 +1152,10 @@ var JpxImage = function JpxImageClosure() {
1171
1152
  }
1172
1153
 
1173
1154
  function skipMarkerIfEqual(value) {
1174
- if (data[offset + position - 1] === 0xFF && data[offset + position] === value) {
1155
+ if (data[offset + position - 1] === 0xff && data[offset + position] === value) {
1175
1156
  skipBytes(1);
1176
1157
  return true;
1177
- } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) {
1158
+ } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {
1178
1159
  skipBytes(2);
1179
1160
  return true;
1180
1161
  }
@@ -1252,13 +1233,13 @@ var JpxImage = function JpxImageClosure() {
1252
1233
  var firstTimeInclusion = false;
1253
1234
  var valueReady;
1254
1235
 
1255
- if (codeblock['included'] !== undefined) {
1236
+ if (codeblock["included"] !== undefined) {
1256
1237
  codeblockIncluded = !!readBits(1);
1257
1238
  } else {
1258
1239
  precinct = codeblock.precinct;
1259
1240
  var inclusionTree, zeroBitPlanesTree;
1260
1241
 
1261
- if (precinct['inclusionTree'] !== undefined) {
1242
+ if (precinct["inclusionTree"] !== undefined) {
1262
1243
  inclusionTree = precinct.inclusionTree;
1263
1244
  } else {
1264
1245
  var width = precinct.cbxMax - precinct.cbxMin + 1;
@@ -1316,12 +1297,12 @@ var JpxImage = function JpxImageClosure() {
1316
1297
  codeblock.Lblock++;
1317
1298
  }
1318
1299
 
1319
- var codingpassesLog2 = (0, _util.log2)(codingpasses);
1300
+ var codingpassesLog2 = (0, _core_utils.log2)(codingpasses);
1320
1301
  var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;
1321
1302
  var codedDataLength = readBits(bits);
1322
1303
  queue.push({
1323
- codeblock: codeblock,
1324
- codingpasses: codingpasses,
1304
+ codeblock,
1305
+ codingpasses,
1325
1306
  dataLength: codedDataLength
1326
1307
  });
1327
1308
  }
@@ -1336,12 +1317,12 @@ var JpxImage = function JpxImageClosure() {
1336
1317
  var packetItem = queue.shift();
1337
1318
  codeblock = packetItem.codeblock;
1338
1319
 
1339
- if (codeblock['data'] === undefined) {
1320
+ if (codeblock["data"] === undefined) {
1340
1321
  codeblock.data = [];
1341
1322
  }
1342
1323
 
1343
1324
  codeblock.data.push({
1344
- data: data,
1325
+ data,
1345
1326
  start: offset + position,
1346
1327
  end: offset + position + packetItem.dataLength,
1347
1328
  codingpasses: packetItem.codingpasses
@@ -1358,8 +1339,8 @@ var JpxImage = function JpxImageClosure() {
1358
1339
  var y0 = subband.tby0;
1359
1340
  var width = subband.tbx1 - subband.tbx0;
1360
1341
  var codeblocks = subband.codeblocks;
1361
- var right = subband.type.charAt(0) === 'H' ? 1 : 0;
1362
- var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;
1342
+ var right = subband.type.charAt(0) === "H" ? 1 : 0;
1343
+ var bottom = subband.type.charAt(1) === "H" ? levelWidth : 0;
1363
1344
 
1364
1345
  for (var i = 0, ii = codeblocks.length; i < ii; ++i) {
1365
1346
  var codeblock = codeblocks[i];
@@ -1370,7 +1351,7 @@ var JpxImage = function JpxImageClosure() {
1370
1351
  continue;
1371
1352
  }
1372
1353
 
1373
- if (codeblock['data'] === undefined) {
1354
+ if (codeblock["data"] === undefined) {
1374
1355
  continue;
1375
1356
  }
1376
1357
 
@@ -1431,7 +1412,7 @@ var JpxImage = function JpxImageClosure() {
1431
1412
  var magnitudeCorrection = reversible ? 0 : 0.5;
1432
1413
  var k, n, nb;
1433
1414
  position = 0;
1434
- var interleave = subband.type !== 'LL';
1415
+ var interleave = subband.type !== "LL";
1435
1416
 
1436
1417
  for (j = 0; j < blockHeight; j++) {
1437
1418
  var row = offset / width | 0;
@@ -1501,14 +1482,14 @@ var JpxImage = function JpxImageClosure() {
1501
1482
 
1502
1483
  var subband = resolution.subbands[j];
1503
1484
  var gainLog2 = SubbandsGainLog2[subband.type];
1504
- var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048);
1485
+ var delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);
1505
1486
  var mb = guardBits + epsilon - 1;
1506
1487
  copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);
1507
1488
  }
1508
1489
 
1509
1490
  subbandCoefficients.push({
1510
- width: width,
1511
- height: height,
1491
+ width,
1492
+ height,
1512
1493
  items: coefficients
1513
1494
  });
1514
1495
  }
@@ -1581,7 +1562,7 @@ var JpxImage = function JpxImageClosure() {
1581
1562
  y0 = y0items[j] + offset;
1582
1563
  y1 = y1items[j];
1583
1564
  y2 = y2items[j];
1584
- var g = y0 - (y2 + y1 >> 2);
1565
+ const g = y0 - (y2 + y1 >> 2);
1585
1566
  out[pos++] = g + y2 >> shift;
1586
1567
  out[pos++] = g >> shift;
1587
1568
  out[pos++] = g + y1 >> shift;
@@ -1630,13 +1611,13 @@ var JpxImage = function JpxImageClosure() {
1630
1611
 
1631
1612
  var TagTree = function TagTreeClosure() {
1632
1613
  function TagTree(width, height) {
1633
- var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;
1614
+ var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;
1634
1615
  this.levels = [];
1635
1616
 
1636
1617
  for (var i = 0; i < levelsLength; i++) {
1637
1618
  var level = {
1638
- width: width,
1639
- height: height,
1619
+ width,
1620
+ height,
1640
1621
  items: []
1641
1622
  };
1642
1623
  this.levels.push(level);
@@ -1698,7 +1679,7 @@ var JpxImage = function JpxImageClosure() {
1698
1679
 
1699
1680
  var InclusionTree = function InclusionTreeClosure() {
1700
1681
  function InclusionTree(width, height, defaultValue) {
1701
- var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;
1682
+ var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;
1702
1683
  this.levels = [];
1703
1684
 
1704
1685
  for (var i = 0; i < levelsLength; i++) {
@@ -1709,9 +1690,9 @@ var JpxImage = function JpxImageClosure() {
1709
1690
  }
1710
1691
 
1711
1692
  var level = {
1712
- width: width,
1713
- height: height,
1714
- items: items
1693
+ width,
1694
+ height,
1695
+ items
1715
1696
  };
1716
1697
  this.levels.push(level);
1717
1698
  width = Math.ceil(width / 2);
@@ -1729,7 +1710,7 @@ var JpxImage = function JpxImageClosure() {
1729
1710
  level.index = index;
1730
1711
  var value = level.items[index];
1731
1712
 
1732
- if (value === 0xFF) {
1713
+ if (value === 0xff) {
1733
1714
  break;
1734
1715
  }
1735
1716
 
@@ -1766,7 +1747,7 @@ var JpxImage = function JpxImageClosure() {
1766
1747
  var currentLevel = this.currentLevel;
1767
1748
  var level = this.levels[currentLevel];
1768
1749
  var value = level.items[level.index];
1769
- level.items[level.index] = 0xFF;
1750
+ level.items[level.index] = 0xff;
1770
1751
  currentLevel--;
1771
1752
 
1772
1753
  if (currentLevel < 0) {
@@ -1792,11 +1773,31 @@ var JpxImage = function JpxImageClosure() {
1792
1773
  function BitModel(width, height, subband, zeroBitPlanes, mb) {
1793
1774
  this.width = width;
1794
1775
  this.height = height;
1795
- this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;
1776
+ let contextLabelTable;
1777
+
1778
+ if (subband === "HH") {
1779
+ contextLabelTable = HHContextLabel;
1780
+ } else if (subband === "HL") {
1781
+ contextLabelTable = HLContextLabel;
1782
+ } else {
1783
+ contextLabelTable = LLAndLHContextsLabel;
1784
+ }
1785
+
1786
+ this.contextLabelTable = contextLabelTable;
1796
1787
  var coefficientCount = width * height;
1797
1788
  this.neighborsSignificance = new Uint8Array(coefficientCount);
1798
1789
  this.coefficentsSign = new Uint8Array(coefficientCount);
1799
- this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);
1790
+ let coefficentsMagnitude;
1791
+
1792
+ if (mb > 14) {
1793
+ coefficentsMagnitude = new Uint32Array(coefficientCount);
1794
+ } else if (mb > 6) {
1795
+ coefficentsMagnitude = new Uint16Array(coefficientCount);
1796
+ } else {
1797
+ coefficentsMagnitude = new Uint8Array(coefficientCount);
1798
+ }
1799
+
1800
+ this.coefficentsMagnitude = coefficentsMagnitude;
1800
1801
  this.processingFlags = new Uint8Array(coefficientCount);
1801
1802
  var bitsDecoded = new Uint8Array(coefficientCount);
1802
1803
 
@@ -2097,8 +2098,8 @@ var JpxImage = function JpxImageClosure() {
2097
2098
  var contexts = this.contexts;
2098
2099
  var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);
2099
2100
 
2100
- if (symbol !== 0xA) {
2101
- throw new JpxError('Invalid segmentation symbol');
2101
+ if (symbol !== 0xa) {
2102
+ throw new JpxError("Invalid segmentation symbol");
2102
2103
  }
2103
2104
  }
2104
2105
  };
@@ -2218,9 +2219,9 @@ var JpxImage = function JpxImageClosure() {
2218
2219
  }
2219
2220
 
2220
2221
  return {
2221
- width: width,
2222
- height: height,
2223
- items: items
2222
+ width,
2223
+ height,
2224
+ items
2224
2225
  };
2225
2226
  };
2226
2227