pdfjs-dist 2.0.943 → 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 (192) 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 +8286 -14230
  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 +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -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 +57878 -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 +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  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 +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  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 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -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.
@@ -19,44 +19,46 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.PDFFetchStream = undefined;
27
+ exports.PDFFetchStream = void 0;
28
28
 
29
- var _regenerator = require('babel-runtime/regenerator');
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _regenerator2 = _interopRequireDefault(_regenerator);
32
-
33
- var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
34
-
35
- var _util = require('../shared/util');
36
-
37
- var _network_utils = require('./network_utils');
38
-
39
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
-
41
- function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
42
-
43
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
+ var _network_utils = require("./network_utils.js");
44
32
 
45
33
  function createFetchOptions(headers, withCredentials, abortController) {
46
34
  return {
47
- method: 'GET',
48
- headers: headers,
35
+ method: "GET",
36
+ headers,
49
37
  signal: abortController && abortController.signal,
50
- mode: 'cors',
51
- credentials: withCredentials ? 'include' : 'same-origin',
52
- redirect: 'follow'
38
+ mode: "cors",
39
+ credentials: withCredentials ? "include" : "same-origin",
40
+ redirect: "follow"
53
41
  };
54
42
  }
55
43
 
56
- var PDFFetchStream = function () {
57
- function PDFFetchStream(source) {
58
- _classCallCheck(this, PDFFetchStream);
44
+ function createHeaders(httpHeaders) {
45
+ const headers = new Headers();
46
+
47
+ for (const property in httpHeaders) {
48
+ const value = httpHeaders[property];
49
+
50
+ if (typeof value === "undefined") {
51
+ continue;
52
+ }
53
+
54
+ headers.append(property, value);
55
+ }
56
+
57
+ return headers;
58
+ }
59
59
 
60
+ class PDFFetchStream {
61
+ constructor(source) {
60
62
  this.source = source;
61
63
  this.isHttp = /^https?:/i.test(source.url);
62
64
  this.httpHeaders = this.isHttp && source.httpHeaders || {};
@@ -64,310 +66,236 @@ var PDFFetchStream = function () {
64
66
  this._rangeRequestReaders = [];
65
67
  }
66
68
 
67
- _createClass(PDFFetchStream, [{
68
- key: 'getFullReader',
69
- value: function getFullReader() {
70
- (0, _util.assert)(!this._fullRequestReader);
71
- this._fullRequestReader = new PDFFetchStreamReader(this);
72
- return this._fullRequestReader;
73
- }
74
- }, {
75
- key: 'getRangeReader',
76
- value: function getRangeReader(begin, end) {
77
- var reader = new PDFFetchStreamRangeReader(this, begin, end);
78
- this._rangeRequestReaders.push(reader);
79
- return reader;
69
+ get _progressiveDataLength() {
70
+ return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
71
+ }
72
+
73
+ getFullReader() {
74
+ (0, _util.assert)(!this._fullRequestReader);
75
+ this._fullRequestReader = new PDFFetchStreamReader(this);
76
+ return this._fullRequestReader;
77
+ }
78
+
79
+ getRangeReader(begin, end) {
80
+ if (end <= this._progressiveDataLength) {
81
+ return null;
80
82
  }
81
- }, {
82
- key: 'cancelAllRequests',
83
- value: function cancelAllRequests(reason) {
84
- if (this._fullRequestReader) {
85
- this._fullRequestReader.cancel(reason);
86
- }
87
- var readers = this._rangeRequestReaders.slice(0);
88
- readers.forEach(function (reader) {
89
- reader.cancel(reason);
90
- });
83
+
84
+ const reader = new PDFFetchStreamRangeReader(this, begin, end);
85
+
86
+ this._rangeRequestReaders.push(reader);
87
+
88
+ return reader;
89
+ }
90
+
91
+ cancelAllRequests(reason) {
92
+ if (this._fullRequestReader) {
93
+ this._fullRequestReader.cancel(reason);
91
94
  }
92
- }]);
93
95
 
94
- return PDFFetchStream;
95
- }();
96
+ const readers = this._rangeRequestReaders.slice(0);
96
97
 
97
- var PDFFetchStreamReader = function () {
98
- function PDFFetchStreamReader(stream) {
99
- var _this = this;
98
+ readers.forEach(function (reader) {
99
+ reader.cancel(reason);
100
+ });
101
+ }
100
102
 
101
- _classCallCheck(this, PDFFetchStreamReader);
103
+ }
102
104
 
105
+ exports.PDFFetchStream = PDFFetchStream;
106
+
107
+ class PDFFetchStreamReader {
108
+ constructor(stream) {
103
109
  this._stream = stream;
104
110
  this._reader = null;
105
111
  this._loaded = 0;
106
112
  this._filename = null;
107
- var source = stream.source;
108
- this._withCredentials = source.withCredentials;
113
+ const source = stream.source;
114
+ this._withCredentials = source.withCredentials || false;
109
115
  this._contentLength = source.length;
110
116
  this._headersCapability = (0, _util.createPromiseCapability)();
111
117
  this._disableRange = source.disableRange || false;
112
118
  this._rangeChunkSize = source.rangeChunkSize;
119
+
113
120
  if (!this._rangeChunkSize && !this._disableRange) {
114
121
  this._disableRange = true;
115
122
  }
116
- if (typeof AbortController !== 'undefined') {
123
+
124
+ if (typeof AbortController !== "undefined") {
117
125
  this._abortController = new AbortController();
118
126
  }
127
+
119
128
  this._isStreamingSupported = !source.disableStream;
120
129
  this._isRangeSupported = !source.disableRange;
121
- this._headers = new Headers();
122
- for (var property in this._stream.httpHeaders) {
123
- var value = this._stream.httpHeaders[property];
124
- if (typeof value === 'undefined') {
125
- continue;
126
- }
127
- this._headers.append(property, value);
128
- }
129
- var url = source.url;
130
- 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 => {
131
133
  if (!(0, _network_utils.validateResponseStatus)(response.status)) {
132
134
  throw (0, _network_utils.createResponseStatusError)(response.status, url);
133
135
  }
134
- _this._reader = response.body.getReader();
135
- _this._headersCapability.resolve();
136
- var getResponseHeader = function getResponseHeader(name) {
136
+
137
+ this._reader = response.body.getReader();
138
+
139
+ this._headersCapability.resolve();
140
+
141
+ const getResponseHeader = name => {
137
142
  return response.headers.get(name);
138
143
  };
139
144
 
140
- var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
141
- getResponseHeader: getResponseHeader,
142
- isHttp: _this._stream.isHttp,
143
- rangeChunkSize: _this._rangeChunkSize,
144
- disableRange: _this._disableRange
145
- }),
146
- allowRangeRequests = _validateRangeRequest.allowRangeRequests,
147
- suggestedLength = _validateRangeRequest.suggestedLength;
148
-
149
- _this._isRangeSupported = allowRangeRequests;
150
- _this._contentLength = suggestedLength || _this._contentLength;
151
- _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
152
- if (!_this._isStreamingSupported && _this._isRangeSupported) {
153
- _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."));
154
160
  }
155
161
  }).catch(this._headersCapability.reject);
156
162
  this.onProgress = null;
157
163
  }
158
164
 
159
- _createClass(PDFFetchStreamReader, [{
160
- key: 'read',
161
- value: function () {
162
- var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
163
- var _ref2, value, done, buffer;
164
-
165
- return _regenerator2.default.wrap(function _callee$(_context) {
166
- while (1) {
167
- switch (_context.prev = _context.next) {
168
- case 0:
169
- _context.next = 2;
170
- return this._headersCapability.promise;
171
-
172
- case 2:
173
- _context.next = 4;
174
- return this._reader.read();
175
-
176
- case 4:
177
- _ref2 = _context.sent;
178
- value = _ref2.value;
179
- done = _ref2.done;
180
-
181
- if (!done) {
182
- _context.next = 9;
183
- break;
184
- }
185
-
186
- return _context.abrupt('return', {
187
- value: value,
188
- done: done
189
- });
190
-
191
- case 9:
192
- this._loaded += value.byteLength;
193
- if (this.onProgress) {
194
- this.onProgress({
195
- loaded: this._loaded,
196
- total: this._contentLength
197
- });
198
- }
199
- buffer = new Uint8Array(value).buffer;
200
- return _context.abrupt('return', {
201
- value: buffer,
202
- done: false
203
- });
204
-
205
- case 13:
206
- case 'end':
207
- return _context.stop();
208
- }
209
- }
210
- }, _callee, this);
211
- }));
212
-
213
- function read() {
214
- return _ref.apply(this, arguments);
215
- }
165
+ get headersReady() {
166
+ return this._headersCapability.promise;
167
+ }
216
168
 
217
- return read;
218
- }()
219
- }, {
220
- key: 'cancel',
221
- value: function cancel(reason) {
222
- if (this._reader) {
223
- this._reader.cancel(reason);
224
- }
225
- if (this._abortController) {
226
- this._abortController.abort();
227
- }
228
- }
229
- }, {
230
- key: 'headersReady',
231
- get: function get() {
232
- return this._headersCapability.promise;
233
- }
234
- }, {
235
- key: 'filename',
236
- get: function get() {
237
- return this._filename;
238
- }
239
- }, {
240
- key: 'contentLength',
241
- get: function get() {
242
- return this._contentLength;
243
- }
244
- }, {
245
- key: 'isRangeSupported',
246
- get: function get() {
247
- return this._isRangeSupported;
169
+ get filename() {
170
+ return this._filename;
171
+ }
172
+
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
+ };
248
197
  }
249
- }, {
250
- key: 'isStreamingSupported',
251
- get: function get() {
252
- 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
+ });
253
206
  }
254
- }]);
255
207
 
256
- return PDFFetchStreamReader;
257
- }();
208
+ const buffer = new Uint8Array(value).buffer;
209
+ return {
210
+ value: buffer,
211
+ done: false
212
+ };
213
+ }
258
214
 
259
- var PDFFetchStreamRangeReader = function () {
260
- function PDFFetchStreamRangeReader(stream, begin, end) {
261
- var _this2 = this;
215
+ cancel(reason) {
216
+ if (this._reader) {
217
+ this._reader.cancel(reason);
218
+ }
262
219
 
263
- _classCallCheck(this, PDFFetchStreamRangeReader);
220
+ if (this._abortController) {
221
+ this._abortController.abort();
222
+ }
223
+ }
264
224
 
225
+ }
226
+
227
+ class PDFFetchStreamRangeReader {
228
+ constructor(stream, begin, end) {
265
229
  this._stream = stream;
266
230
  this._reader = null;
267
231
  this._loaded = 0;
268
- var source = stream.source;
269
- this._withCredentials = source.withCredentials;
232
+ const source = stream.source;
233
+ this._withCredentials = source.withCredentials || false;
270
234
  this._readCapability = (0, _util.createPromiseCapability)();
271
235
  this._isStreamingSupported = !source.disableStream;
272
- if (typeof AbortController !== 'undefined') {
236
+
237
+ if (typeof AbortController !== "undefined") {
273
238
  this._abortController = new AbortController();
274
239
  }
275
- this._headers = new Headers();
276
- for (var property in this._stream.httpHeaders) {
277
- var value = this._stream.httpHeaders[property];
278
- if (typeof value === 'undefined') {
279
- continue;
280
- }
281
- this._headers.append(property, value);
282
- }
283
- var rangeStr = begin + '-' + (end - 1);
284
- this._headers.append('Range', 'bytes=' + rangeStr);
285
- var url = source.url;
286
- fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
240
+
241
+ this._headers = createHeaders(this._stream.httpHeaders);
242
+
243
+ this._headers.append("Range", `bytes=${begin}-${end - 1}`);
244
+
245
+ const url = source.url;
246
+ fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {
287
247
  if (!(0, _network_utils.validateResponseStatus)(response.status)) {
288
248
  throw (0, _network_utils.createResponseStatusError)(response.status, url);
289
249
  }
290
- _this2._readCapability.resolve();
291
- _this2._reader = response.body.getReader();
250
+
251
+ this._readCapability.resolve();
252
+
253
+ this._reader = response.body.getReader();
292
254
  });
293
255
  this.onProgress = null;
294
256
  }
295
257
 
296
- _createClass(PDFFetchStreamRangeReader, [{
297
- key: 'read',
298
- value: function () {
299
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
300
- var _ref4, value, done, buffer;
301
-
302
- return _regenerator2.default.wrap(function _callee2$(_context2) {
303
- while (1) {
304
- switch (_context2.prev = _context2.next) {
305
- case 0:
306
- _context2.next = 2;
307
- return this._readCapability.promise;
308
-
309
- case 2:
310
- _context2.next = 4;
311
- return this._reader.read();
312
-
313
- case 4:
314
- _ref4 = _context2.sent;
315
- value = _ref4.value;
316
- done = _ref4.done;
317
-
318
- if (!done) {
319
- _context2.next = 9;
320
- break;
321
- }
322
-
323
- return _context2.abrupt('return', {
324
- value: value,
325
- done: done
326
- });
327
-
328
- case 9:
329
- this._loaded += value.byteLength;
330
- if (this.onProgress) {
331
- this.onProgress({ loaded: this._loaded });
332
- }
333
- buffer = new Uint8Array(value).buffer;
334
- return _context2.abrupt('return', {
335
- value: buffer,
336
- done: false
337
- });
338
-
339
- case 13:
340
- case 'end':
341
- return _context2.stop();
342
- }
343
- }
344
- }, _callee2, this);
345
- }));
346
-
347
- function read() {
348
- return _ref3.apply(this, arguments);
349
- }
258
+ get isStreamingSupported() {
259
+ return this._isStreamingSupported;
260
+ }
350
261
 
351
- return read;
352
- }()
353
- }, {
354
- key: 'cancel',
355
- value: function cancel(reason) {
356
- if (this._reader) {
357
- this._reader.cancel(reason);
358
- }
359
- if (this._abortController) {
360
- this._abortController.abort();
361
- }
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
+ }
275
+
276
+ this._loaded += value.byteLength;
277
+
278
+ if (this.onProgress) {
279
+ this.onProgress({
280
+ loaded: this._loaded
281
+ });
362
282
  }
363
- }, {
364
- key: 'isStreamingSupported',
365
- get: function get() {
366
- return this._isStreamingSupported;
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);
367
294
  }
368
- }]);
369
295
 
370
- return PDFFetchStreamRangeReader;
371
- }();
296
+ if (this._abortController) {
297
+ this._abortController.abort();
298
+ }
299
+ }
372
300
 
373
- exports.PDFFetchStream = PDFFetchStream;
301
+ }