pdfjs-dist 2.1.266 → 2.5.207

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 (191) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8382 -18492
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +20417 -29816
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25688 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +58239 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +403 -0
  29. package/es5/web/pdf_viewer.js +7742 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +1475 -4897
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +750 -899
  36. package/lib/core/arithmetic_decoder.js +81 -97
  37. package/lib/core/bidi.js +54 -46
  38. package/lib/core/ccitt.js +88 -81
  39. package/lib/core/ccitt_stream.js +15 -14
  40. package/lib/core/cff_parser.js +235 -183
  41. package/lib/core/charsets.js +4 -4
  42. package/lib/core/chunked_stream.js +447 -542
  43. package/lib/core/cmap.js +222 -264
  44. package/lib/core/colorspace.js +699 -863
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +379 -437
  47. package/lib/core/document.js +573 -660
  48. package/lib/core/encodings.js +15 -15
  49. package/lib/core/evaluator.js +1103 -868
  50. package/lib/core/font_renderer.js +135 -178
  51. package/lib/core/fonts.js +570 -491
  52. package/lib/core/function.js +291 -288
  53. package/lib/core/glyphlist.js +4527 -4526
  54. package/lib/core/image.js +145 -149
  55. package/lib/core/image_utils.js +170 -0
  56. package/lib/core/jbig2.js +325 -316
  57. package/lib/core/jbig2_stream.js +18 -17
  58. package/lib/core/jpeg_stream.js +21 -26
  59. package/lib/core/jpg.js +284 -232
  60. package/lib/core/jpx.js +161 -143
  61. package/lib/core/jpx_stream.js +28 -28
  62. package/lib/core/metrics.js +2929 -2929
  63. package/lib/core/murmurhash3.js +90 -101
  64. package/lib/core/obj.js +1183 -1157
  65. package/lib/core/operator_list.js +99 -67
  66. package/lib/core/parser.js +972 -911
  67. package/lib/core/pattern.js +87 -70
  68. package/lib/core/pdf_manager.js +150 -315
  69. package/lib/core/primitives.js +83 -56
  70. package/lib/core/ps_parser.js +175 -214
  71. package/lib/core/standard_fonts.js +237 -236
  72. package/lib/core/stream.js +94 -74
  73. package/lib/core/type1_parser.js +87 -69
  74. package/lib/core/unicode.js +1654 -1654
  75. package/lib/core/worker.js +193 -390
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +741 -972
  78. package/lib/display/api.js +1500 -1791
  79. package/lib/display/api_compatibility.js +12 -17
  80. package/lib/display/canvas.js +165 -165
  81. package/lib/display/content_disposition.js +40 -59
  82. package/lib/display/display_utils.js +515 -0
  83. package/lib/display/fetch_stream.js +183 -298
  84. package/lib/display/font_loader.js +273 -413
  85. package/lib/display/metadata.js +86 -98
  86. package/lib/display/network.js +266 -359
  87. package/lib/display/network_utils.js +25 -18
  88. package/lib/display/node_stream.js +285 -458
  89. package/lib/display/pattern_helper.js +113 -65
  90. package/lib/display/svg.js +1166 -901
  91. package/lib/display/text_layer.js +156 -132
  92. package/lib/display/transport_stream.js +262 -278
  93. package/lib/display/webgl.js +70 -83
  94. package/lib/display/worker_options.js +3 -3
  95. package/lib/display/xml_parser.js +303 -392
  96. package/lib/examples/node/domstubs.js +40 -37
  97. package/lib/pdf.js +226 -59
  98. package/lib/pdf.worker.js +14 -6
  99. package/lib/shared/compatibility.js +3 -246
  100. package/lib/shared/is_node.js +7 -6
  101. package/lib/shared/message_handler.js +327 -332
  102. package/lib/shared/util.js +266 -416
  103. package/lib/test/unit/annotation_spec.js +1555 -701
  104. package/lib/test/unit/api_spec.js +802 -604
  105. package/lib/test/unit/bidi_spec.js +7 -7
  106. package/lib/test/unit/cff_parser_spec.js +84 -69
  107. package/lib/test/unit/clitests_helper.js +7 -9
  108. package/lib/test/unit/cmap_spec.js +74 -76
  109. package/lib/test/unit/colorspace_spec.js +166 -161
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +181 -181
  112. package/lib/test/unit/custom_spec.js +20 -22
  113. package/lib/test/unit/display_svg_spec.js +34 -39
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +16 -21
  116. package/lib/test/unit/encodings_spec.js +12 -34
  117. package/lib/test/unit/evaluator_spec.js +83 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +206 -204
  120. package/lib/test/unit/jasmine-boot.js +46 -30
  121. package/lib/test/unit/message_handler_spec.js +173 -159
  122. package/lib/test/unit/metadata_spec.js +69 -69
  123. package/lib/test/unit/murmurhash3_spec.js +12 -12
  124. package/lib/test/unit/network_spec.js +13 -61
  125. package/lib/test/unit/network_utils_spec.js +183 -119
  126. package/lib/test/unit/node_stream_spec.js +78 -92
  127. package/lib/test/unit/parser_spec.js +172 -114
  128. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  129. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  130. package/lib/test/unit/pdf_history_spec.js +32 -32
  131. package/lib/test/unit/primitives_spec.js +140 -125
  132. package/lib/test/unit/stream_spec.js +16 -14
  133. package/lib/test/unit/test_utils.js +131 -143
  134. package/lib/test/unit/testreporter.js +19 -19
  135. package/lib/test/unit/type1_parser_spec.js +42 -42
  136. package/lib/test/unit/ui_utils_spec.js +297 -459
  137. package/lib/test/unit/unicode_spec.js +38 -38
  138. package/lib/test/unit/util_spec.js +121 -305
  139. package/lib/web/annotation_layer_builder.js +66 -103
  140. package/lib/web/app.js +1328 -1214
  141. package/lib/web/app_options.js +105 -107
  142. package/lib/web/base_viewer.js +824 -838
  143. package/lib/web/chromecom.js +165 -252
  144. package/lib/web/debugger.js +149 -205
  145. package/lib/web/download_manager.js +39 -55
  146. package/lib/web/firefox_print_service.js +37 -27
  147. package/lib/web/firefoxcom.js +212 -363
  148. package/lib/web/genericcom.js +26 -108
  149. package/lib/web/genericl10n.js +24 -153
  150. package/lib/web/grab_to_pan.js +32 -30
  151. package/lib/web/interfaces.js +80 -254
  152. package/lib/web/overlay_manager.js +70 -246
  153. package/lib/web/password_prompt.js +38 -64
  154. package/lib/web/pdf_attachment_viewer.js +113 -131
  155. package/lib/web/pdf_cursor_tools.js +75 -102
  156. package/lib/web/pdf_document_properties.js +221 -306
  157. package/lib/web/pdf_find_bar.js +136 -170
  158. package/lib/web/pdf_find_controller.js +491 -548
  159. package/lib/web/pdf_find_utils.js +13 -13
  160. package/lib/web/pdf_history.js +397 -406
  161. package/lib/web/pdf_link_service.js +304 -348
  162. package/lib/web/pdf_outline_viewer.js +140 -175
  163. package/lib/web/pdf_page_view.js +452 -523
  164. package/lib/web/pdf_presentation_mode.js +308 -357
  165. package/lib/web/pdf_print_service.js +90 -104
  166. package/lib/web/pdf_rendering_queue.js +84 -108
  167. package/lib/web/pdf_sidebar.js +276 -306
  168. package/lib/web/pdf_sidebar_resizer.js +92 -119
  169. package/lib/web/pdf_single_page_viewer.js +77 -126
  170. package/lib/web/pdf_thumbnail_view.js +276 -297
  171. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  172. package/lib/web/pdf_viewer.component.js +20 -21
  173. package/lib/web/pdf_viewer.js +55 -115
  174. package/lib/web/preferences.js +82 -286
  175. package/lib/web/secondary_toolbar.js +164 -196
  176. package/lib/web/text_layer_builder.js +282 -339
  177. package/lib/web/toolbar.js +217 -210
  178. package/lib/web/ui_utils.js +267 -420
  179. package/lib/web/view_history.js +52 -226
  180. package/lib/web/viewer_compatibility.js +21 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +35 -25
  183. package/web/pdf_viewer.js +3489 -4855
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -494
  189. package/lib/shared/streams_polyfill.js +0 -43
  190. package/lib/shared/url_polyfill.js +0 -56
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
package/lib/core/image.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 2018 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,46 +26,43 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.PDFImage = void 0;
28
28
 
29
- var _util = require("../shared/util");
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _primitives = require("./primitives");
31
+ var _primitives = require("./primitives.js");
32
32
 
33
- var _colorspace = require("./colorspace");
33
+ var _colorspace = require("./colorspace.js");
34
34
 
35
- var _stream = require("./stream");
35
+ var _stream = require("./stream.js");
36
36
 
37
- var _jpeg_stream = require("./jpeg_stream");
37
+ var _jpeg_stream = require("./jpeg_stream.js");
38
38
 
39
- var _jpx = require("./jpx");
40
-
41
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
42
-
43
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
44
-
45
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
46
-
47
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+ var _jpx = require("./jpx.js");
48
40
 
49
41
  var PDFImage = function PDFImageClosure() {
50
- function handleImageData(image, nativeDecoder) {
51
- if (nativeDecoder && nativeDecoder.canDecode(image)) {
52
- return nativeDecoder.decode(image).catch(function (reason) {
53
- (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message));
54
- return image;
55
- });
56
- }
57
-
58
- return Promise.resolve(image);
59
- }
60
-
61
42
  function decodeAndClamp(value, addend, coefficient, max) {
62
43
  value = addend + value * coefficient;
63
- return value < 0 ? 0 : value > max ? max : value;
44
+
45
+ if (value < 0) {
46
+ value = 0;
47
+ } else if (value > max) {
48
+ value = max;
49
+ }
50
+
51
+ return value;
64
52
  }
65
53
 
66
54
  function resizeImageMask(src, bpc, w1, h1, w2, h2) {
67
55
  var length = w2 * h2;
68
- var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
56
+ let dest;
57
+
58
+ if (bpc <= 8) {
59
+ dest = new Uint8Array(length);
60
+ } else if (bpc <= 16) {
61
+ dest = new Uint16Array(length);
62
+ } else {
63
+ dest = new Uint32Array(length);
64
+ }
65
+
69
66
  var xRatio = w1 / w2;
70
67
  var yRatio = h1 / h2;
71
68
  var i,
@@ -92,26 +89,23 @@ var PDFImage = function PDFImageClosure() {
92
89
  return dest;
93
90
  }
94
91
 
95
- function PDFImage(_ref) {
96
- var xref = _ref.xref,
97
- res = _ref.res,
98
- image = _ref.image,
99
- _ref$isInline = _ref.isInline,
100
- isInline = _ref$isInline === void 0 ? false : _ref$isInline,
101
- _ref$smask = _ref.smask,
102
- smask = _ref$smask === void 0 ? null : _ref$smask,
103
- _ref$mask = _ref.mask,
104
- mask = _ref$mask === void 0 ? null : _ref$mask,
105
- _ref$isMask = _ref.isMask,
106
- isMask = _ref$isMask === void 0 ? false : _ref$isMask,
107
- pdfFunctionFactory = _ref.pdfFunctionFactory;
92
+ function PDFImage({
93
+ xref,
94
+ res,
95
+ image,
96
+ isInline = false,
97
+ smask = null,
98
+ mask = null,
99
+ isMask = false,
100
+ pdfFunctionFactory
101
+ }) {
108
102
  this.image = image;
109
103
  var dict = image.dict;
110
- var filter = dict.get('Filter');
104
+ const filter = dict.get("Filter");
111
105
 
112
106
  if ((0, _primitives.isName)(filter)) {
113
107
  switch (filter.name) {
114
- case 'JPXDecode':
108
+ case "JPXDecode":
115
109
  var jpxImage = new _jpx.JpxImage();
116
110
  jpxImage.parseImageProperties(image.stream);
117
111
  image.stream.reset();
@@ -121,41 +115,41 @@ var PDFImage = function PDFImageClosure() {
121
115
  image.numComps = jpxImage.componentsCount;
122
116
  break;
123
117
 
124
- case 'JBIG2Decode':
118
+ case "JBIG2Decode":
125
119
  image.bitsPerComponent = 1;
126
120
  image.numComps = 1;
127
121
  break;
128
122
  }
129
123
  }
130
124
 
131
- var width = dict.get('Width', 'W');
132
- var height = dict.get('Height', 'H');
125
+ let width = dict.get("Width", "W");
126
+ let height = dict.get("Height", "H");
133
127
 
134
128
  if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {
135
- (0, _util.warn)('PDFImage - using the Width/Height of the image data, ' + 'rather than the image dictionary.');
129
+ (0, _util.warn)("PDFImage - using the Width/Height of the image data, " + "rather than the image dictionary.");
136
130
  width = image.width;
137
131
  height = image.height;
138
132
  }
139
133
 
140
134
  if (width < 1 || height < 1) {
141
- throw new _util.FormatError("Invalid image width: ".concat(width, " or ") + "height: ".concat(height));
135
+ throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);
142
136
  }
143
137
 
144
138
  this.width = width;
145
139
  this.height = height;
146
- this.interpolate = dict.get('Interpolate', 'I') || false;
147
- this.imageMask = dict.get('ImageMask', 'IM') || false;
148
- this.matte = dict.get('Matte') || false;
140
+ this.interpolate = dict.get("Interpolate", "I") || false;
141
+ this.imageMask = dict.get("ImageMask", "IM") || false;
142
+ this.matte = dict.get("Matte") || false;
149
143
  var bitsPerComponent = image.bitsPerComponent;
150
144
 
151
145
  if (!bitsPerComponent) {
152
- bitsPerComponent = dict.get('BitsPerComponent', 'BPC');
146
+ bitsPerComponent = dict.get("BitsPerComponent", "BPC");
153
147
 
154
148
  if (!bitsPerComponent) {
155
149
  if (this.imageMask) {
156
150
  bitsPerComponent = 1;
157
151
  } else {
158
- throw new _util.FormatError("Bits per component missing in image: ".concat(this.imageMask));
152
+ throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);
159
153
  }
160
154
  }
161
155
  }
@@ -163,35 +157,35 @@ var PDFImage = function PDFImageClosure() {
163
157
  this.bpc = bitsPerComponent;
164
158
 
165
159
  if (!this.imageMask) {
166
- var colorSpace = dict.get('ColorSpace', 'CS');
160
+ var colorSpace = dict.get("ColorSpace", "CS");
167
161
 
168
162
  if (!colorSpace) {
169
- (0, _util.info)('JPX images (which do not require color spaces)');
163
+ (0, _util.info)("JPX images (which do not require color spaces)");
170
164
 
171
165
  switch (image.numComps) {
172
166
  case 1:
173
- colorSpace = _primitives.Name.get('DeviceGray');
167
+ colorSpace = _primitives.Name.get("DeviceGray");
174
168
  break;
175
169
 
176
170
  case 3:
177
- colorSpace = _primitives.Name.get('DeviceRGB');
171
+ colorSpace = _primitives.Name.get("DeviceRGB");
178
172
  break;
179
173
 
180
174
  case 4:
181
- colorSpace = _primitives.Name.get('DeviceCMYK');
175
+ colorSpace = _primitives.Name.get("DeviceCMYK");
182
176
  break;
183
177
 
184
178
  default:
185
- throw new Error("JPX images with ".concat(image.numComps, " ") + 'color components not supported.');
179
+ throw new Error(`JPX images with ${image.numComps} ` + "color components not supported.");
186
180
  }
187
181
  }
188
182
 
189
- var resources = isInline ? res : null;
183
+ const resources = isInline ? res : null;
190
184
  this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);
191
185
  this.numComps = this.colorSpace.numComps;
192
186
  }
193
187
 
194
- this.decode = dict.getArray('Decode', 'D');
188
+ this.decode = dict.getArray("Decode", "D");
195
189
  this.needsDecode = false;
196
190
 
197
191
  if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {
@@ -199,7 +193,7 @@ var PDFImage = function PDFImageClosure() {
199
193
  var max = (1 << bitsPerComponent) - 1;
200
194
  this.decodeCoefficients = [];
201
195
  this.decodeAddends = [];
202
- var isIndexed = this.colorSpace && this.colorSpace.name === 'Indexed';
196
+ const isIndexed = this.colorSpace && this.colorSpace.name === "Indexed";
203
197
 
204
198
  for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {
205
199
  var dmin = this.decode[i];
@@ -211,27 +205,27 @@ var PDFImage = function PDFImageClosure() {
211
205
 
212
206
  if (smask) {
213
207
  this.smask = new PDFImage({
214
- xref: xref,
215
- res: res,
208
+ xref,
209
+ res,
216
210
  image: smask,
217
- isInline: isInline,
218
- pdfFunctionFactory: pdfFunctionFactory
211
+ isInline,
212
+ pdfFunctionFactory
219
213
  });
220
214
  } else if (mask) {
221
215
  if ((0, _primitives.isStream)(mask)) {
222
216
  var maskDict = mask.dict,
223
- imageMask = maskDict.get('ImageMask', 'IM');
217
+ imageMask = maskDict.get("ImageMask", "IM");
224
218
 
225
219
  if (!imageMask) {
226
- (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');
220
+ (0, _util.warn)("Ignoring /Mask in image without /ImageMask.");
227
221
  } else {
228
222
  this.mask = new PDFImage({
229
- xref: xref,
230
- res: res,
223
+ xref,
224
+ res,
231
225
  image: mask,
232
- isInline: isInline,
226
+ isInline,
233
227
  isMask: true,
234
- pdfFunctionFactory: pdfFunctionFactory
228
+ pdfFunctionFactory
235
229
  });
236
230
  }
237
231
  } else {
@@ -240,66 +234,47 @@ var PDFImage = function PDFImageClosure() {
240
234
  }
241
235
  }
242
236
 
243
- PDFImage.buildImage = function (_ref2) {
244
- var handler = _ref2.handler,
245
- xref = _ref2.xref,
246
- res = _ref2.res,
247
- image = _ref2.image,
248
- _ref2$isInline = _ref2.isInline,
249
- isInline = _ref2$isInline === void 0 ? false : _ref2$isInline,
250
- _ref2$nativeDecoder = _ref2.nativeDecoder,
251
- nativeDecoder = _ref2$nativeDecoder === void 0 ? null : _ref2$nativeDecoder,
252
- pdfFunctionFactory = _ref2.pdfFunctionFactory;
253
- var imagePromise = handleImageData(image, nativeDecoder);
254
- var smaskPromise;
255
- var maskPromise;
256
- var smask = image.dict.get('SMask');
257
- var mask = image.dict.get('Mask');
237
+ PDFImage.buildImage = function ({
238
+ xref,
239
+ res,
240
+ image,
241
+ isInline = false,
242
+ pdfFunctionFactory
243
+ }) {
244
+ const imageData = image;
245
+ let smaskData = null;
246
+ let maskData = null;
247
+ const smask = image.dict.get("SMask");
248
+ const mask = image.dict.get("Mask");
258
249
 
259
250
  if (smask) {
260
- smaskPromise = handleImageData(smask, nativeDecoder);
261
- maskPromise = Promise.resolve(null);
262
- } else {
263
- smaskPromise = Promise.resolve(null);
264
-
265
- if (mask) {
266
- if ((0, _primitives.isStream)(mask)) {
267
- maskPromise = handleImageData(mask, nativeDecoder);
268
- } else if (Array.isArray(mask)) {
269
- maskPromise = Promise.resolve(mask);
270
- } else {
271
- (0, _util.warn)('Unsupported mask format.');
272
- maskPromise = Promise.resolve(null);
273
- }
251
+ smaskData = smask;
252
+ } else if (mask) {
253
+ if ((0, _primitives.isStream)(mask) || Array.isArray(mask)) {
254
+ maskData = mask;
274
255
  } else {
275
- maskPromise = Promise.resolve(null);
256
+ (0, _util.warn)("Unsupported mask format.");
276
257
  }
277
258
  }
278
259
 
279
- return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) {
280
- var _ref4 = _slicedToArray(_ref3, 3),
281
- imageData = _ref4[0],
282
- smaskData = _ref4[1],
283
- maskData = _ref4[2];
284
-
285
- return new PDFImage({
286
- xref: xref,
287
- res: res,
288
- image: imageData,
289
- isInline: isInline,
290
- smask: smaskData,
291
- mask: maskData,
292
- pdfFunctionFactory: pdfFunctionFactory
293
- });
294
- });
260
+ return Promise.resolve(new PDFImage({
261
+ xref,
262
+ res,
263
+ image: imageData,
264
+ isInline,
265
+ smask: smaskData,
266
+ mask: maskData,
267
+ pdfFunctionFactory
268
+ }));
295
269
  };
296
270
 
297
- PDFImage.createMask = function (_ref5) {
298
- var imgArray = _ref5.imgArray,
299
- width = _ref5.width,
300
- height = _ref5.height,
301
- imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream,
302
- inverseDecode = _ref5.inverseDecode;
271
+ PDFImage.createMask = function ({
272
+ imgArray,
273
+ width,
274
+ height,
275
+ imageIsFromDecodeStream,
276
+ inverseDecode
277
+ }) {
303
278
  var computedLength = (width + 7 >> 3) * height;
304
279
  var actualLength = imgArray.byteLength;
305
280
  var haveFullData = computedLength === actualLength;
@@ -321,14 +296,14 @@ var PDFImage = function PDFImageClosure() {
321
296
 
322
297
  if (inverseDecode) {
323
298
  for (i = 0; i < actualLength; i++) {
324
- data[i] ^= 0xFF;
299
+ data[i] ^= 0xff;
325
300
  }
326
301
  }
327
302
 
328
303
  return {
329
- data: data,
330
- width: width,
331
- height: height
304
+ data,
305
+ width,
306
+ height
332
307
  };
333
308
  };
334
309
 
@@ -341,7 +316,7 @@ var PDFImage = function PDFImageClosure() {
341
316
  return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);
342
317
  },
343
318
 
344
- decodeBuffer: function decodeBuffer(buffer) {
319
+ decodeBuffer(buffer) {
345
320
  var bpc = this.bpc;
346
321
  var numComps = this.numComps;
347
322
  var decodeAddends = this.decodeAddends;
@@ -366,7 +341,8 @@ var PDFImage = function PDFImageClosure() {
366
341
  }
367
342
  }
368
343
  },
369
- getComponents: function getComponents(buffer) {
344
+
345
+ getComponents(buffer) {
370
346
  var bpc = this.bpc;
371
347
 
372
348
  if (bpc === 8) {
@@ -378,7 +354,16 @@ var PDFImage = function PDFImageClosure() {
378
354
  var numComps = this.numComps;
379
355
  var length = width * height * numComps;
380
356
  var bufferPos = 0;
381
- var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
357
+ let output;
358
+
359
+ if (bpc <= 8) {
360
+ output = new Uint8Array(length);
361
+ } else if (bpc <= 16) {
362
+ output = new Uint16Array(length);
363
+ } else {
364
+ output = new Uint32Array(length);
365
+ }
366
+
382
367
  var rowComps = width * numComps;
383
368
  var max = (1 << bpc) - 1;
384
369
  var i = 0,
@@ -431,8 +416,15 @@ var PDFImage = function PDFImageClosure() {
431
416
  }
432
417
 
433
418
  var remainingBits = bits - bpc;
434
- var value = buf >> remainingBits;
435
- output[i] = value < 0 ? 0 : value > max ? max : value;
419
+ let value = buf >> remainingBits;
420
+
421
+ if (value < 0) {
422
+ value = 0;
423
+ } else if (value > max) {
424
+ value = max;
425
+ }
426
+
427
+ output[i] = value;
436
428
  buf = buf & (1 << remainingBits) - 1;
437
429
  bits = remainingBits;
438
430
  }
@@ -440,7 +432,8 @@ var PDFImage = function PDFImageClosure() {
440
432
 
441
433
  return output;
442
434
  },
443
- fillOpacity: function fillOpacity(rgbaBuf, width, height, actualHeight, image) {
435
+
436
+ fillOpacity(rgbaBuf, width, height, actualHeight, image) {
444
437
  var smask = this.smask;
445
438
  var mask = this.mask;
446
439
  var alphaBuf, sw, sh, i, ii, j;
@@ -490,7 +483,7 @@ var PDFImage = function PDFImageClosure() {
490
483
  alphaBuf[i] = opacity;
491
484
  }
492
485
  } else {
493
- throw new _util.FormatError('Unknown mask format.');
486
+ throw new _util.FormatError("Unknown mask format.");
494
487
  }
495
488
  }
496
489
 
@@ -504,7 +497,8 @@ var PDFImage = function PDFImageClosure() {
504
497
  }
505
498
  }
506
499
  },
507
- undoPreblend: function undoPreblend(buffer, width, height) {
500
+
501
+ undoPreblend(buffer, width, height) {
508
502
  var matte = this.smask && this.smask.matte;
509
503
 
510
504
  if (!matte) {
@@ -533,8 +527,8 @@ var PDFImage = function PDFImageClosure() {
533
527
  buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;
534
528
  }
535
529
  },
536
- createImageData: function createImageData() {
537
- var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
530
+
531
+ createImageData(forceRGBA = false) {
538
532
  var drawWidth = this.drawWidth;
539
533
  var drawHeight = this.drawHeight;
540
534
  var imgData = {
@@ -553,9 +547,9 @@ var PDFImage = function PDFImageClosure() {
553
547
  if (!forceRGBA) {
554
548
  var kind;
555
549
 
556
- if (this.colorSpace.name === 'DeviceGray' && bpc === 1) {
550
+ if (this.colorSpace.name === "DeviceGray" && bpc === 1) {
557
551
  kind = _util.ImageKind.GRAYSCALE_1BPP;
558
- } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) {
552
+ } else if (this.colorSpace.name === "DeviceRGB" && bpc === 8 && !this.needsDecode) {
559
553
  kind = _util.ImageKind.RGB_24BPP;
560
554
  }
561
555
 
@@ -572,7 +566,7 @@ var PDFImage = function PDFImageClosure() {
572
566
  }
573
567
 
574
568
  if (this.needsDecode) {
575
- (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, 'PDFImage.createImageData: The image must be grayscale.');
569
+ (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale.");
576
570
  var buffer = imgData.data;
577
571
 
578
572
  for (var i = 0, ii = buffer.length; i < ii; i++) {
@@ -584,14 +578,14 @@ var PDFImage = function PDFImageClosure() {
584
578
  }
585
579
 
586
580
  if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {
587
- var imageLength = originalHeight * rowBytes;
581
+ let imageLength = originalHeight * rowBytes;
588
582
 
589
583
  switch (this.colorSpace.name) {
590
- case 'DeviceGray':
584
+ case "DeviceGray":
591
585
  imageLength *= 3;
592
586
 
593
- case 'DeviceRGB':
594
- case 'DeviceCMYK':
587
+ case "DeviceRGB":
588
+ case "DeviceCMYK":
595
589
  imgData.kind = _util.ImageKind.RGB_24BPP;
596
590
  imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);
597
591
  return imgData;
@@ -629,11 +623,12 @@ var PDFImage = function PDFImageClosure() {
629
623
 
630
624
  return imgData;
631
625
  },
632
- fillGrayBuffer: function fillGrayBuffer(buffer) {
626
+
627
+ fillGrayBuffer(buffer) {
633
628
  var numComps = this.numComps;
634
629
 
635
630
  if (numComps !== 1) {
636
- throw new _util.FormatError("Reading gray scale from a color image: ".concat(numComps));
631
+ throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);
637
632
  }
638
633
 
639
634
  var width = this.width;
@@ -671,14 +666,15 @@ var PDFImage = function PDFImageClosure() {
671
666
  buffer[i] = scale * comps[i];
672
667
  }
673
668
  },
674
- getImageBytes: function getImageBytes(length, drawWidth, drawHeight) {
675
- var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
669
+
670
+ getImageBytes(length, drawWidth, drawHeight, forceRGB = false) {
676
671
  this.image.reset();
677
672
  this.image.drawWidth = drawWidth || this.width;
678
673
  this.image.drawHeight = drawHeight || this.height;
679
674
  this.image.forceRGB = !!forceRGB;
680
675
  return this.image.getBytes(length, true);
681
676
  }
677
+
682
678
  };
683
679
  return PDFImage;
684
680
  }();