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
@@ -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,41 +26,39 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.PDFFetchStream = void 0;
28
28
 
29
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require("../shared/util");
32
-
33
- var _network_utils = require("./network_utils");
34
-
35
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
-
37
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
38
-
39
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
40
-
41
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
-
43
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
44
-
45
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
+ var _network_utils = require("./network_utils.js");
46
32
 
47
33
  function createFetchOptions(headers, withCredentials, abortController) {
48
34
  return {
49
- method: 'GET',
50
- headers: headers,
35
+ method: "GET",
36
+ headers,
51
37
  signal: abortController && abortController.signal,
52
- mode: 'cors',
53
- credentials: withCredentials ? 'include' : 'same-origin',
54
- redirect: 'follow'
38
+ mode: "cors",
39
+ credentials: withCredentials ? "include" : "same-origin",
40
+ redirect: "follow"
55
41
  };
56
42
  }
57
43
 
58
- var PDFFetchStream =
59
- /*#__PURE__*/
60
- function () {
61
- function PDFFetchStream(source) {
62
- _classCallCheck(this, PDFFetchStream);
44
+ function createHeaders(httpHeaders) {
45
+ const headers = new Headers();
46
+
47
+ for (const property in httpHeaders) {
48
+ const value = httpHeaders[property];
63
49
 
50
+ if (typeof value === "undefined") {
51
+ continue;
52
+ }
53
+
54
+ headers.append(property, value);
55
+ }
56
+
57
+ return headers;
58
+ }
59
+
60
+ class PDFFetchStream {
61
+ constructor(source) {
64
62
  this.source = source;
65
63
  this.isHttp = /^https?:/i.test(source.url);
66
64
  this.httpHeaders = this.isHttp && source.httpHeaders || {};
@@ -68,64 +66,51 @@ function () {
68
66
  this._rangeRequestReaders = [];
69
67
  }
70
68
 
71
- _createClass(PDFFetchStream, [{
72
- key: "getFullReader",
73
- value: function getFullReader() {
74
- (0, _util.assert)(!this._fullRequestReader);
75
- this._fullRequestReader = new PDFFetchStreamReader(this);
76
- return this._fullRequestReader;
77
- }
78
- }, {
79
- key: "getRangeReader",
80
- value: function getRangeReader(begin, end) {
81
- if (end <= this._progressiveDataLength) {
82
- return null;
83
- }
84
-
85
- var reader = new PDFFetchStreamRangeReader(this, begin, end);
69
+ get _progressiveDataLength() {
70
+ return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
71
+ }
86
72
 
87
- this._rangeRequestReaders.push(reader);
73
+ getFullReader() {
74
+ (0, _util.assert)(!this._fullRequestReader);
75
+ this._fullRequestReader = new PDFFetchStreamReader(this);
76
+ return this._fullRequestReader;
77
+ }
88
78
 
89
- return reader;
79
+ getRangeReader(begin, end) {
80
+ if (end <= this._progressiveDataLength) {
81
+ return null;
90
82
  }
91
- }, {
92
- key: "cancelAllRequests",
93
- value: function cancelAllRequests(reason) {
94
- if (this._fullRequestReader) {
95
- this._fullRequestReader.cancel(reason);
96
- }
97
83
 
98
- var readers = this._rangeRequestReaders.slice(0);
84
+ const reader = new PDFFetchStreamRangeReader(this, begin, end);
99
85
 
100
- readers.forEach(function (reader) {
101
- reader.cancel(reason);
102
- });
103
- }
104
- }, {
105
- key: "_progressiveDataLength",
106
- get: function get() {
107
- return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
86
+ this._rangeRequestReaders.push(reader);
87
+
88
+ return reader;
89
+ }
90
+
91
+ cancelAllRequests(reason) {
92
+ if (this._fullRequestReader) {
93
+ this._fullRequestReader.cancel(reason);
108
94
  }
109
- }]);
110
95
 
111
- return PDFFetchStream;
112
- }();
96
+ const readers = this._rangeRequestReaders.slice(0);
113
97
 
114
- exports.PDFFetchStream = PDFFetchStream;
98
+ readers.forEach(function (reader) {
99
+ reader.cancel(reason);
100
+ });
101
+ }
115
102
 
116
- var PDFFetchStreamReader =
117
- /*#__PURE__*/
118
- function () {
119
- function PDFFetchStreamReader(stream) {
120
- var _this = this;
103
+ }
121
104
 
122
- _classCallCheck(this, PDFFetchStreamReader);
105
+ exports.PDFFetchStream = PDFFetchStream;
123
106
 
107
+ class PDFFetchStreamReader {
108
+ constructor(stream) {
124
109
  this._stream = stream;
125
110
  this._reader = null;
126
111
  this._loaded = 0;
127
112
  this._filename = null;
128
- var source = stream.source;
113
+ const source = stream.source;
129
114
  this._withCredentials = source.withCredentials || false;
130
115
  this._contentLength = source.length;
131
116
  this._headersCapability = (0, _util.createPromiseCapability)();
@@ -136,290 +121,181 @@ function () {
136
121
  this._disableRange = true;
137
122
  }
138
123
 
139
- if (typeof AbortController !== 'undefined') {
124
+ if (typeof AbortController !== "undefined") {
140
125
  this._abortController = new AbortController();
141
126
  }
142
127
 
143
128
  this._isStreamingSupported = !source.disableStream;
144
129
  this._isRangeSupported = !source.disableRange;
145
- this._headers = new Headers();
146
-
147
- for (var property in this._stream.httpHeaders) {
148
- var value = this._stream.httpHeaders[property];
149
-
150
- if (typeof value === 'undefined') {
151
- continue;
152
- }
153
-
154
- this._headers.append(property, value);
155
- }
156
-
157
- var url = source.url;
158
- fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
130
+ this._headers = createHeaders(this._stream.httpHeaders);
131
+ const url = source.url;
132
+ fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {
159
133
  if (!(0, _network_utils.validateResponseStatus)(response.status)) {
160
134
  throw (0, _network_utils.createResponseStatusError)(response.status, url);
161
135
  }
162
136
 
163
- _this._reader = response.body.getReader();
137
+ this._reader = response.body.getReader();
164
138
 
165
- _this._headersCapability.resolve();
139
+ this._headersCapability.resolve();
166
140
 
167
- var getResponseHeader = function getResponseHeader(name) {
141
+ const getResponseHeader = name => {
168
142
  return response.headers.get(name);
169
143
  };
170
144
 
171
- var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
172
- getResponseHeader: getResponseHeader,
173
- isHttp: _this._stream.isHttp,
174
- rangeChunkSize: _this._rangeChunkSize,
175
- disableRange: _this._disableRange
176
- }),
177
- allowRangeRequests = _validateRangeRequest.allowRangeRequests,
178
- suggestedLength = _validateRangeRequest.suggestedLength;
179
-
180
- _this._isRangeSupported = allowRangeRequests;
181
- _this._contentLength = suggestedLength || _this._contentLength;
182
- _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
183
-
184
- if (!_this._isStreamingSupported && _this._isRangeSupported) {
185
- _this.cancel(new _util.AbortException('Streaming is disabled.'));
145
+ const {
146
+ allowRangeRequests,
147
+ suggestedLength
148
+ } = (0, _network_utils.validateRangeRequestCapabilities)({
149
+ getResponseHeader,
150
+ isHttp: this._stream.isHttp,
151
+ rangeChunkSize: this._rangeChunkSize,
152
+ disableRange: this._disableRange
153
+ });
154
+ this._isRangeSupported = allowRangeRequests;
155
+ this._contentLength = suggestedLength || this._contentLength;
156
+ this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
157
+
158
+ if (!this._isStreamingSupported && this._isRangeSupported) {
159
+ this.cancel(new _util.AbortException("Streaming is disabled."));
186
160
  }
187
- })["catch"](this._headersCapability.reject);
161
+ }).catch(this._headersCapability.reject);
188
162
  this.onProgress = null;
189
163
  }
190
164
 
191
- _createClass(PDFFetchStreamReader, [{
192
- key: "read",
193
- value: function () {
194
- var _read = _asyncToGenerator(
195
- /*#__PURE__*/
196
- _regenerator["default"].mark(function _callee() {
197
- var _ref, value, done, buffer;
198
-
199
- return _regenerator["default"].wrap(function _callee$(_context) {
200
- while (1) {
201
- switch (_context.prev = _context.next) {
202
- case 0:
203
- _context.next = 2;
204
- return this._headersCapability.promise;
205
-
206
- case 2:
207
- _context.next = 4;
208
- return this._reader.read();
209
-
210
- case 4:
211
- _ref = _context.sent;
212
- value = _ref.value;
213
- done = _ref.done;
214
-
215
- if (!done) {
216
- _context.next = 9;
217
- break;
218
- }
219
-
220
- return _context.abrupt("return", {
221
- value: value,
222
- done: done
223
- });
224
-
225
- case 9:
226
- this._loaded += value.byteLength;
227
-
228
- if (this.onProgress) {
229
- this.onProgress({
230
- loaded: this._loaded,
231
- total: this._contentLength
232
- });
233
- }
234
-
235
- buffer = new Uint8Array(value).buffer;
236
- return _context.abrupt("return", {
237
- value: buffer,
238
- done: false
239
- });
240
-
241
- case 13:
242
- case "end":
243
- return _context.stop();
244
- }
245
- }
246
- }, _callee, this);
247
- }));
248
-
249
- function read() {
250
- return _read.apply(this, arguments);
251
- }
165
+ get headersReady() {
166
+ return this._headersCapability.promise;
167
+ }
252
168
 
253
- return read;
254
- }()
255
- }, {
256
- key: "cancel",
257
- value: function cancel(reason) {
258
- if (this._reader) {
259
- this._reader.cancel(reason);
260
- }
169
+ get filename() {
170
+ return this._filename;
171
+ }
261
172
 
262
- if (this._abortController) {
263
- this._abortController.abort();
264
- }
265
- }
266
- }, {
267
- key: "headersReady",
268
- get: function get() {
269
- return this._headersCapability.promise;
270
- }
271
- }, {
272
- key: "filename",
273
- get: function get() {
274
- return this._filename;
275
- }
276
- }, {
277
- key: "contentLength",
278
- get: function get() {
279
- return this._contentLength;
280
- }
281
- }, {
282
- key: "isRangeSupported",
283
- get: function get() {
284
- return this._isRangeSupported;
173
+ get contentLength() {
174
+ return this._contentLength;
175
+ }
176
+
177
+ get isRangeSupported() {
178
+ return this._isRangeSupported;
179
+ }
180
+
181
+ get isStreamingSupported() {
182
+ return this._isStreamingSupported;
183
+ }
184
+
185
+ async read() {
186
+ await this._headersCapability.promise;
187
+ const {
188
+ value,
189
+ done
190
+ } = await this._reader.read();
191
+
192
+ if (done) {
193
+ return {
194
+ value,
195
+ done
196
+ };
285
197
  }
286
- }, {
287
- key: "isStreamingSupported",
288
- get: function get() {
289
- return this._isStreamingSupported;
198
+
199
+ this._loaded += value.byteLength;
200
+
201
+ if (this.onProgress) {
202
+ this.onProgress({
203
+ loaded: this._loaded,
204
+ total: this._contentLength
205
+ });
290
206
  }
291
- }]);
292
207
 
293
- return PDFFetchStreamReader;
294
- }();
208
+ const buffer = new Uint8Array(value).buffer;
209
+ return {
210
+ value: buffer,
211
+ done: false
212
+ };
213
+ }
295
214
 
296
- var PDFFetchStreamRangeReader =
297
- /*#__PURE__*/
298
- function () {
299
- function PDFFetchStreamRangeReader(stream, begin, end) {
300
- var _this2 = this;
215
+ cancel(reason) {
216
+ if (this._reader) {
217
+ this._reader.cancel(reason);
218
+ }
301
219
 
302
- _classCallCheck(this, PDFFetchStreamRangeReader);
220
+ if (this._abortController) {
221
+ this._abortController.abort();
222
+ }
223
+ }
303
224
 
225
+ }
226
+
227
+ class PDFFetchStreamRangeReader {
228
+ constructor(stream, begin, end) {
304
229
  this._stream = stream;
305
230
  this._reader = null;
306
231
  this._loaded = 0;
307
- var source = stream.source;
232
+ const source = stream.source;
308
233
  this._withCredentials = source.withCredentials || false;
309
234
  this._readCapability = (0, _util.createPromiseCapability)();
310
235
  this._isStreamingSupported = !source.disableStream;
311
236
 
312
- if (typeof AbortController !== 'undefined') {
237
+ if (typeof AbortController !== "undefined") {
313
238
  this._abortController = new AbortController();
314
239
  }
315
240
 
316
- this._headers = new Headers();
317
-
318
- for (var property in this._stream.httpHeaders) {
319
- var value = this._stream.httpHeaders[property];
320
-
321
- if (typeof value === 'undefined') {
322
- continue;
323
- }
324
-
325
- this._headers.append(property, value);
326
- }
241
+ this._headers = createHeaders(this._stream.httpHeaders);
327
242
 
328
- this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1));
243
+ this._headers.append("Range", `bytes=${begin}-${end - 1}`);
329
244
 
330
- var url = source.url;
331
- fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
245
+ const url = source.url;
246
+ fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {
332
247
  if (!(0, _network_utils.validateResponseStatus)(response.status)) {
333
248
  throw (0, _network_utils.createResponseStatusError)(response.status, url);
334
249
  }
335
250
 
336
- _this2._readCapability.resolve();
251
+ this._readCapability.resolve();
337
252
 
338
- _this2._reader = response.body.getReader();
253
+ this._reader = response.body.getReader();
339
254
  });
340
255
  this.onProgress = null;
341
256
  }
342
257
 
343
- _createClass(PDFFetchStreamRangeReader, [{
344
- key: "read",
345
- value: function () {
346
- var _read2 = _asyncToGenerator(
347
- /*#__PURE__*/
348
- _regenerator["default"].mark(function _callee2() {
349
- var _ref2, value, done, buffer;
350
-
351
- return _regenerator["default"].wrap(function _callee2$(_context2) {
352
- while (1) {
353
- switch (_context2.prev = _context2.next) {
354
- case 0:
355
- _context2.next = 2;
356
- return this._readCapability.promise;
357
-
358
- case 2:
359
- _context2.next = 4;
360
- return this._reader.read();
361
-
362
- case 4:
363
- _ref2 = _context2.sent;
364
- value = _ref2.value;
365
- done = _ref2.done;
366
-
367
- if (!done) {
368
- _context2.next = 9;
369
- break;
370
- }
371
-
372
- return _context2.abrupt("return", {
373
- value: value,
374
- done: done
375
- });
376
-
377
- case 9:
378
- this._loaded += value.byteLength;
379
-
380
- if (this.onProgress) {
381
- this.onProgress({
382
- loaded: this._loaded
383
- });
384
- }
385
-
386
- buffer = new Uint8Array(value).buffer;
387
- return _context2.abrupt("return", {
388
- value: buffer,
389
- done: false
390
- });
391
-
392
- case 13:
393
- case "end":
394
- return _context2.stop();
395
- }
396
- }
397
- }, _callee2, this);
398
- }));
399
-
400
- function read() {
401
- return _read2.apply(this, arguments);
402
- }
258
+ get isStreamingSupported() {
259
+ return this._isStreamingSupported;
260
+ }
403
261
 
404
- return read;
405
- }()
406
- }, {
407
- key: "cancel",
408
- value: function cancel(reason) {
409
- if (this._reader) {
410
- this._reader.cancel(reason);
411
- }
262
+ async read() {
263
+ await this._readCapability.promise;
264
+ const {
265
+ value,
266
+ done
267
+ } = await this._reader.read();
268
+
269
+ if (done) {
270
+ return {
271
+ value,
272
+ done
273
+ };
274
+ }
412
275
 
413
- if (this._abortController) {
414
- this._abortController.abort();
415
- }
276
+ this._loaded += value.byteLength;
277
+
278
+ if (this.onProgress) {
279
+ this.onProgress({
280
+ loaded: this._loaded
281
+ });
282
+ }
283
+
284
+ const buffer = new Uint8Array(value).buffer;
285
+ return {
286
+ value: buffer,
287
+ done: false
288
+ };
289
+ }
290
+
291
+ cancel(reason) {
292
+ if (this._reader) {
293
+ this._reader.cancel(reason);
416
294
  }
417
- }, {
418
- key: "isStreamingSupported",
419
- get: function get() {
420
- return this._isStreamingSupported;
295
+
296
+ if (this._abortController) {
297
+ this._abortController.abort();
421
298
  }
422
- }]);
299
+ }
423
300
 
424
- return PDFFetchStreamRangeReader;
425
- }();
301
+ }