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