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,126 +26,96 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.PDFNodeStream = 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");
33
+ ;
34
34
 
35
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+ const fs = require("fs");
36
36
 
37
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
37
+ const http = require("http");
38
38
 
39
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
+ const https = require("https");
40
40
 
41
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
+ const url = require("url");
42
42
 
43
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
44
-
45
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
46
-
47
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
48
-
49
- 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); } }
50
-
51
- 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); }); }; }
52
-
53
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
54
-
55
- 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); } }
56
-
57
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
58
-
59
- var fs = require('fs');
60
-
61
- var http = require('http');
62
-
63
- var https = require('https');
64
-
65
- var url = require('url');
66
-
67
- var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
43
+ const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
68
44
 
69
45
  function parseUrl(sourceUrl) {
70
- var parsedUrl = url.parse(sourceUrl);
46
+ const parsedUrl = url.parse(sourceUrl);
71
47
 
72
- if (parsedUrl.protocol === 'file:' || parsedUrl.host) {
48
+ if (parsedUrl.protocol === "file:" || parsedUrl.host) {
73
49
  return parsedUrl;
74
50
  }
75
51
 
76
52
  if (/^[a-z]:[/\\]/i.test(sourceUrl)) {
77
- return url.parse("file:///".concat(sourceUrl));
53
+ return url.parse(`file:///${sourceUrl}`);
78
54
  }
79
55
 
80
56
  if (!parsedUrl.host) {
81
- parsedUrl.protocol = 'file:';
57
+ parsedUrl.protocol = "file:";
82
58
  }
83
59
 
84
60
  return parsedUrl;
85
61
  }
86
62
 
87
- var PDFNodeStream =
88
- /*#__PURE__*/
89
- function () {
90
- function PDFNodeStream(source) {
91
- _classCallCheck(this, PDFNodeStream);
92
-
63
+ class PDFNodeStream {
64
+ constructor(source) {
93
65
  this.source = source;
94
66
  this.url = parseUrl(source.url);
95
- this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';
96
- this.isFsUrl = this.url.protocol === 'file:';
67
+ this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:";
68
+ this.isFsUrl = this.url.protocol === "file:";
97
69
  this.httpHeaders = this.isHttp && source.httpHeaders || {};
98
- this._fullRequest = null;
70
+ this._fullRequestReader = null;
99
71
  this._rangeRequestReaders = [];
100
72
  }
101
73
 
102
- _createClass(PDFNodeStream, [{
103
- key: "getFullReader",
104
- value: function getFullReader() {
105
- (0, _util.assert)(!this._fullRequest);
106
- this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
107
- return this._fullRequest;
108
- }
109
- }, {
110
- key: "getRangeReader",
111
- value: function getRangeReader(start, end) {
112
- var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
74
+ get _progressiveDataLength() {
75
+ return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
76
+ }
113
77
 
114
- this._rangeRequestReaders.push(rangeReader);
78
+ getFullReader() {
79
+ (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once.");
80
+ this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
81
+ return this._fullRequestReader;
82
+ }
115
83
 
116
- return rangeReader;
84
+ getRangeReader(start, end) {
85
+ if (end <= this._progressiveDataLength) {
86
+ return null;
117
87
  }
118
- }, {
119
- key: "cancelAllRequests",
120
- value: function cancelAllRequests(reason) {
121
- if (this._fullRequest) {
122
- this._fullRequest.cancel(reason);
123
- }
124
88
 
125
- var readers = this._rangeRequestReaders.slice(0);
89
+ const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
126
90
 
127
- readers.forEach(function (reader) {
128
- reader.cancel(reason);
129
- });
91
+ this._rangeRequestReaders.push(rangeReader);
92
+
93
+ return rangeReader;
94
+ }
95
+
96
+ cancelAllRequests(reason) {
97
+ if (this._fullRequestReader) {
98
+ this._fullRequestReader.cancel(reason);
130
99
  }
131
- }]);
132
100
 
133
- return PDFNodeStream;
134
- }();
101
+ const readers = this._rangeRequestReaders.slice(0);
135
102
 
136
- exports.PDFNodeStream = PDFNodeStream;
103
+ readers.forEach(function (reader) {
104
+ reader.cancel(reason);
105
+ });
106
+ }
137
107
 
138
- var BaseFullReader =
139
- /*#__PURE__*/
140
- function () {
141
- function BaseFullReader(stream) {
142
- _classCallCheck(this, BaseFullReader);
108
+ }
109
+
110
+ exports.PDFNodeStream = PDFNodeStream;
143
111
 
112
+ class BaseFullReader {
113
+ constructor(stream) {
144
114
  this._url = stream.url;
145
115
  this._done = false;
146
116
  this._storedError = null;
147
117
  this.onProgress = null;
148
- var source = stream.source;
118
+ const source = stream.source;
149
119
  this._contentLength = source.length;
150
120
  this._loaded = 0;
151
121
  this._filename = null;
@@ -163,161 +133,107 @@ function () {
163
133
  this._headersCapability = (0, _util.createPromiseCapability)();
164
134
  }
165
135
 
166
- _createClass(BaseFullReader, [{
167
- key: "read",
168
- value: function () {
169
- var _read = _asyncToGenerator(
170
- /*#__PURE__*/
171
- _regenerator.default.mark(function _callee() {
172
- var chunk, buffer;
173
- return _regenerator.default.wrap(function _callee$(_context) {
174
- while (1) {
175
- switch (_context.prev = _context.next) {
176
- case 0:
177
- _context.next = 2;
178
- return this._readCapability.promise;
179
-
180
- case 2:
181
- if (!this._done) {
182
- _context.next = 4;
183
- break;
184
- }
185
-
186
- return _context.abrupt("return", {
187
- value: undefined,
188
- done: true
189
- });
190
-
191
- case 4:
192
- if (!this._storedError) {
193
- _context.next = 6;
194
- break;
195
- }
196
-
197
- throw this._storedError;
198
-
199
- case 6:
200
- chunk = this._readableStream.read();
201
-
202
- if (!(chunk === null)) {
203
- _context.next = 10;
204
- break;
205
- }
206
-
207
- this._readCapability = (0, _util.createPromiseCapability)();
208
- return _context.abrupt("return", this.read());
209
-
210
- case 10:
211
- this._loaded += chunk.length;
212
-
213
- if (this.onProgress) {
214
- this.onProgress({
215
- loaded: this._loaded,
216
- total: this._contentLength
217
- });
218
- }
219
-
220
- buffer = new Uint8Array(chunk).buffer;
221
- return _context.abrupt("return", {
222
- value: buffer,
223
- done: false
224
- });
225
-
226
- case 14:
227
- case "end":
228
- return _context.stop();
229
- }
230
- }
231
- }, _callee, this);
232
- }));
233
-
234
- function read() {
235
- return _read.apply(this, arguments);
236
- }
237
-
238
- return read;
239
- }()
240
- }, {
241
- key: "cancel",
242
- value: function cancel(reason) {
243
- if (!this._readableStream) {
244
- this._error(reason);
136
+ get headersReady() {
137
+ return this._headersCapability.promise;
138
+ }
245
139
 
246
- return;
247
- }
140
+ get filename() {
141
+ return this._filename;
142
+ }
248
143
 
249
- this._readableStream.destroy(reason);
250
- }
251
- }, {
252
- key: "_error",
253
- value: function _error(reason) {
254
- this._storedError = reason;
144
+ get contentLength() {
145
+ return this._contentLength;
146
+ }
255
147
 
256
- this._readCapability.resolve();
257
- }
258
- }, {
259
- key: "_setReadableStream",
260
- value: function _setReadableStream(readableStream) {
261
- var _this = this;
262
-
263
- this._readableStream = readableStream;
264
- readableStream.on('readable', function () {
265
- _this._readCapability.resolve();
266
- });
267
- readableStream.on('end', function () {
268
- readableStream.destroy();
269
- _this._done = true;
148
+ get isRangeSupported() {
149
+ return this._isRangeSupported;
150
+ }
270
151
 
271
- _this._readCapability.resolve();
272
- });
273
- readableStream.on('error', function (reason) {
274
- _this._error(reason);
275
- });
152
+ get isStreamingSupported() {
153
+ return this._isStreamingSupported;
154
+ }
276
155
 
277
- if (!this._isStreamingSupported && this._isRangeSupported) {
278
- this._error(new _util.AbortException('streaming is disabled'));
279
- }
156
+ async read() {
157
+ await this._readCapability.promise;
280
158
 
281
- if (this._storedError) {
282
- this._readableStream.destroy(this._storedError);
283
- }
159
+ if (this._done) {
160
+ return {
161
+ value: undefined,
162
+ done: true
163
+ };
284
164
  }
285
- }, {
286
- key: "headersReady",
287
- get: function get() {
288
- return this._headersCapability.promise;
165
+
166
+ if (this._storedError) {
167
+ throw this._storedError;
289
168
  }
290
- }, {
291
- key: "filename",
292
- get: function get() {
293
- return this._filename;
169
+
170
+ const chunk = this._readableStream.read();
171
+
172
+ if (chunk === null) {
173
+ this._readCapability = (0, _util.createPromiseCapability)();
174
+ return this.read();
294
175
  }
295
- }, {
296
- key: "contentLength",
297
- get: function get() {
298
- return this._contentLength;
176
+
177
+ this._loaded += chunk.length;
178
+
179
+ if (this.onProgress) {
180
+ this.onProgress({
181
+ loaded: this._loaded,
182
+ total: this._contentLength
183
+ });
299
184
  }
300
- }, {
301
- key: "isRangeSupported",
302
- get: function get() {
303
- return this._isRangeSupported;
185
+
186
+ const buffer = new Uint8Array(chunk).buffer;
187
+ return {
188
+ value: buffer,
189
+ done: false
190
+ };
191
+ }
192
+
193
+ cancel(reason) {
194
+ if (!this._readableStream) {
195
+ this._error(reason);
196
+
197
+ return;
304
198
  }
305
- }, {
306
- key: "isStreamingSupported",
307
- get: function get() {
308
- return this._isStreamingSupported;
199
+
200
+ this._readableStream.destroy(reason);
201
+ }
202
+
203
+ _error(reason) {
204
+ this._storedError = reason;
205
+
206
+ this._readCapability.resolve();
207
+ }
208
+
209
+ _setReadableStream(readableStream) {
210
+ this._readableStream = readableStream;
211
+ readableStream.on("readable", () => {
212
+ this._readCapability.resolve();
213
+ });
214
+ readableStream.on("end", () => {
215
+ readableStream.destroy();
216
+ this._done = true;
217
+
218
+ this._readCapability.resolve();
219
+ });
220
+ readableStream.on("error", reason => {
221
+ this._error(reason);
222
+ });
223
+
224
+ if (!this._isStreamingSupported && this._isRangeSupported) {
225
+ this._error(new _util.AbortException("streaming is disabled"));
309
226
  }
310
- }]);
311
227
 
312
- return BaseFullReader;
313
- }();
228
+ if (this._storedError) {
229
+ this._readableStream.destroy(this._storedError);
230
+ }
231
+ }
314
232
 
315
- var BaseRangeReader =
316
- /*#__PURE__*/
317
- function () {
318
- function BaseRangeReader(stream) {
319
- _classCallCheck(this, BaseRangeReader);
233
+ }
320
234
 
235
+ class BaseRangeReader {
236
+ constructor(stream) {
321
237
  this._url = stream.url;
322
238
  this._done = false;
323
239
  this._storedError = null;
@@ -325,333 +241,244 @@ function () {
325
241
  this._loaded = 0;
326
242
  this._readableStream = null;
327
243
  this._readCapability = (0, _util.createPromiseCapability)();
328
- var source = stream.source;
244
+ const source = stream.source;
329
245
  this._isStreamingSupported = !source.disableStream;
330
246
  }
331
247
 
332
- _createClass(BaseRangeReader, [{
333
- key: "read",
334
- value: function () {
335
- var _read2 = _asyncToGenerator(
336
- /*#__PURE__*/
337
- _regenerator.default.mark(function _callee2() {
338
- var chunk, buffer;
339
- return _regenerator.default.wrap(function _callee2$(_context2) {
340
- while (1) {
341
- switch (_context2.prev = _context2.next) {
342
- case 0:
343
- _context2.next = 2;
344
- return this._readCapability.promise;
345
-
346
- case 2:
347
- if (!this._done) {
348
- _context2.next = 4;
349
- break;
350
- }
351
-
352
- return _context2.abrupt("return", {
353
- value: undefined,
354
- done: true
355
- });
356
-
357
- case 4:
358
- if (!this._storedError) {
359
- _context2.next = 6;
360
- break;
361
- }
362
-
363
- throw this._storedError;
364
-
365
- case 6:
366
- chunk = this._readableStream.read();
367
-
368
- if (!(chunk === null)) {
369
- _context2.next = 10;
370
- break;
371
- }
372
-
373
- this._readCapability = (0, _util.createPromiseCapability)();
374
- return _context2.abrupt("return", this.read());
375
-
376
- case 10:
377
- this._loaded += chunk.length;
378
-
379
- if (this.onProgress) {
380
- this.onProgress({
381
- loaded: this._loaded
382
- });
383
- }
384
-
385
- buffer = new Uint8Array(chunk).buffer;
386
- return _context2.abrupt("return", {
387
- value: buffer,
388
- done: false
389
- });
390
-
391
- case 14:
392
- case "end":
393
- return _context2.stop();
394
- }
395
- }
396
- }, _callee2, this);
397
- }));
398
-
399
- function read() {
400
- return _read2.apply(this, arguments);
401
- }
248
+ get isStreamingSupported() {
249
+ return this._isStreamingSupported;
250
+ }
402
251
 
403
- return read;
404
- }()
405
- }, {
406
- key: "cancel",
407
- value: function cancel(reason) {
408
- if (!this._readableStream) {
409
- this._error(reason);
252
+ async read() {
253
+ await this._readCapability.promise;
410
254
 
411
- return;
412
- }
255
+ if (this._done) {
256
+ return {
257
+ value: undefined,
258
+ done: true
259
+ };
260
+ }
413
261
 
414
- this._readableStream.destroy(reason);
262
+ if (this._storedError) {
263
+ throw this._storedError;
415
264
  }
416
- }, {
417
- key: "_error",
418
- value: function _error(reason) {
419
- this._storedError = reason;
420
265
 
421
- this._readCapability.resolve();
266
+ const chunk = this._readableStream.read();
267
+
268
+ if (chunk === null) {
269
+ this._readCapability = (0, _util.createPromiseCapability)();
270
+ return this.read();
422
271
  }
423
- }, {
424
- key: "_setReadableStream",
425
- value: function _setReadableStream(readableStream) {
426
- var _this2 = this;
427
-
428
- this._readableStream = readableStream;
429
- readableStream.on('readable', function () {
430
- _this2._readCapability.resolve();
431
- });
432
- readableStream.on('end', function () {
433
- readableStream.destroy();
434
- _this2._done = true;
435
272
 
436
- _this2._readCapability.resolve();
437
- });
438
- readableStream.on('error', function (reason) {
439
- _this2._error(reason);
273
+ this._loaded += chunk.length;
274
+
275
+ if (this.onProgress) {
276
+ this.onProgress({
277
+ loaded: this._loaded
440
278
  });
279
+ }
441
280
 
442
- if (this._storedError) {
443
- this._readableStream.destroy(this._storedError);
444
- }
281
+ const buffer = new Uint8Array(chunk).buffer;
282
+ return {
283
+ value: buffer,
284
+ done: false
285
+ };
286
+ }
287
+
288
+ cancel(reason) {
289
+ if (!this._readableStream) {
290
+ this._error(reason);
291
+
292
+ return;
445
293
  }
446
- }, {
447
- key: "isStreamingSupported",
448
- get: function get() {
449
- return this._isStreamingSupported;
294
+
295
+ this._readableStream.destroy(reason);
296
+ }
297
+
298
+ _error(reason) {
299
+ this._storedError = reason;
300
+
301
+ this._readCapability.resolve();
302
+ }
303
+
304
+ _setReadableStream(readableStream) {
305
+ this._readableStream = readableStream;
306
+ readableStream.on("readable", () => {
307
+ this._readCapability.resolve();
308
+ });
309
+ readableStream.on("end", () => {
310
+ readableStream.destroy();
311
+ this._done = true;
312
+
313
+ this._readCapability.resolve();
314
+ });
315
+ readableStream.on("error", reason => {
316
+ this._error(reason);
317
+ });
318
+
319
+ if (this._storedError) {
320
+ this._readableStream.destroy(this._storedError);
450
321
  }
451
- }]);
322
+ }
452
323
 
453
- return BaseRangeReader;
454
- }();
324
+ }
455
325
 
456
- function createRequestOptions(url, headers) {
326
+ function createRequestOptions(parsedUrl, headers) {
457
327
  return {
458
- protocol: url.protocol,
459
- auth: url.auth,
460
- host: url.hostname,
461
- port: url.port,
462
- path: url.path,
463
- method: 'GET',
464
- headers: headers
328
+ protocol: parsedUrl.protocol,
329
+ auth: parsedUrl.auth,
330
+ host: parsedUrl.hostname,
331
+ port: parsedUrl.port,
332
+ path: parsedUrl.path,
333
+ method: "GET",
334
+ headers
465
335
  };
466
336
  }
467
337
 
468
- var PDFNodeStreamFullReader =
469
- /*#__PURE__*/
470
- function (_BaseFullReader) {
471
- _inherits(PDFNodeStreamFullReader, _BaseFullReader);
472
-
473
- function PDFNodeStreamFullReader(stream) {
474
- var _this3;
475
-
476
- _classCallCheck(this, PDFNodeStreamFullReader);
338
+ class PDFNodeStreamFullReader extends BaseFullReader {
339
+ constructor(stream) {
340
+ super(stream);
477
341
 
478
- _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));
479
-
480
- var handleResponse = function handleResponse(response) {
342
+ const handleResponse = response => {
481
343
  if (response.statusCode === 404) {
482
- var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\"."));
483
- _this3._storedError = error;
344
+ const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`);
345
+ this._storedError = error;
484
346
 
485
- _this3._headersCapability.reject(error);
347
+ this._headersCapability.reject(error);
486
348
 
487
349
  return;
488
350
  }
489
351
 
490
- _this3._headersCapability.resolve();
352
+ this._headersCapability.resolve();
491
353
 
492
- _this3._setReadableStream(response);
354
+ this._setReadableStream(response);
493
355
 
494
- var getResponseHeader = function getResponseHeader(name) {
495
- return _this3._readableStream.headers[name.toLowerCase()];
356
+ const getResponseHeader = name => {
357
+ return this._readableStream.headers[name.toLowerCase()];
496
358
  };
497
359
 
498
- var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
499
- getResponseHeader: getResponseHeader,
360
+ const {
361
+ allowRangeRequests,
362
+ suggestedLength
363
+ } = (0, _network_utils.validateRangeRequestCapabilities)({
364
+ getResponseHeader,
500
365
  isHttp: stream.isHttp,
501
- rangeChunkSize: _this3._rangeChunkSize,
502
- disableRange: _this3._disableRange
503
- }),
504
- allowRangeRequests = _validateRangeRequest.allowRangeRequests,
505
- suggestedLength = _validateRangeRequest.suggestedLength;
506
-
507
- _this3._isRangeSupported = allowRangeRequests;
508
- _this3._contentLength = suggestedLength || _this3._contentLength;
509
- _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
366
+ rangeChunkSize: this._rangeChunkSize,
367
+ disableRange: this._disableRange
368
+ });
369
+ this._isRangeSupported = allowRangeRequests;
370
+ this._contentLength = suggestedLength || this._contentLength;
371
+ this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
510
372
  };
511
373
 
512
- _this3._request = null;
374
+ this._request = null;
513
375
 
514
- if (_this3._url.protocol === 'http:') {
515
- _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
376
+ if (this._url.protocol === "http:") {
377
+ this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);
516
378
  } else {
517
- _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
379
+ this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);
518
380
  }
519
381
 
520
- _this3._request.on('error', function (reason) {
521
- _this3._storedError = reason;
382
+ this._request.on("error", reason => {
383
+ this._storedError = reason;
522
384
 
523
- _this3._headersCapability.reject(reason);
385
+ this._headersCapability.reject(reason);
524
386
  });
525
387
 
526
- _this3._request.end();
527
-
528
- return _this3;
388
+ this._request.end();
529
389
  }
530
390
 
531
- return PDFNodeStreamFullReader;
532
- }(BaseFullReader);
533
-
534
- var PDFNodeStreamRangeReader =
535
- /*#__PURE__*/
536
- function (_BaseRangeReader) {
537
- _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);
538
-
539
- function PDFNodeStreamRangeReader(stream, start, end) {
540
- var _this4;
541
-
542
- _classCallCheck(this, PDFNodeStreamRangeReader);
391
+ }
543
392
 
544
- _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));
545
- _this4._httpHeaders = {};
393
+ class PDFNodeStreamRangeReader extends BaseRangeReader {
394
+ constructor(stream, start, end) {
395
+ super(stream);
396
+ this._httpHeaders = {};
546
397
 
547
- for (var property in stream.httpHeaders) {
548
- var value = stream.httpHeaders[property];
398
+ for (const property in stream.httpHeaders) {
399
+ const value = stream.httpHeaders[property];
549
400
 
550
- if (typeof value === 'undefined') {
401
+ if (typeof value === "undefined") {
551
402
  continue;
552
403
  }
553
404
 
554
- _this4._httpHeaders[property] = value;
405
+ this._httpHeaders[property] = value;
555
406
  }
556
407
 
557
- _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1);
408
+ this._httpHeaders.Range = `bytes=${start}-${end - 1}`;
558
409
 
559
- var handleResponse = function handleResponse(response) {
410
+ const handleResponse = response => {
560
411
  if (response.statusCode === 404) {
561
- var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\"."));
562
- _this4._storedError = error;
412
+ const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`);
413
+ this._storedError = error;
563
414
  return;
564
415
  }
565
416
 
566
- _this4._setReadableStream(response);
417
+ this._setReadableStream(response);
567
418
  };
568
419
 
569
- _this4._request = null;
420
+ this._request = null;
570
421
 
571
- if (_this4._url.protocol === 'http:') {
572
- _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
422
+ if (this._url.protocol === "http:") {
423
+ this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);
573
424
  } else {
574
- _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
425
+ this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);
575
426
  }
576
427
 
577
- _this4._request.on('error', function (reason) {
578
- _this4._storedError = reason;
428
+ this._request.on("error", reason => {
429
+ this._storedError = reason;
579
430
  });
580
431
 
581
- _this4._request.end();
582
-
583
- return _this4;
432
+ this._request.end();
584
433
  }
585
434
 
586
- return PDFNodeStreamRangeReader;
587
- }(BaseRangeReader);
588
-
589
- var PDFNodeStreamFsFullReader =
590
- /*#__PURE__*/
591
- function (_BaseFullReader2) {
592
- _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);
593
-
594
- function PDFNodeStreamFsFullReader(stream) {
595
- var _this5;
596
-
597
- _classCallCheck(this, PDFNodeStreamFsFullReader);
435
+ }
598
436
 
599
- _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));
600
- var path = decodeURIComponent(_this5._url.path);
437
+ class PDFNodeStreamFsFullReader extends BaseFullReader {
438
+ constructor(stream) {
439
+ super(stream);
440
+ let path = decodeURIComponent(this._url.path);
601
441
 
602
- if (fileUriRegex.test(_this5._url.href)) {
603
- path = path.replace(/^\//, '');
442
+ if (fileUriRegex.test(this._url.href)) {
443
+ path = path.replace(/^\//, "");
604
444
  }
605
445
 
606
- fs.lstat(path, function (error, stat) {
446
+ fs.lstat(path, (error, stat) => {
607
447
  if (error) {
608
- if (error.code === 'ENOENT') {
609
- error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\"."));
448
+ if (error.code === "ENOENT") {
449
+ error = new _util.MissingPDFException(`Missing PDF "${path}".`);
610
450
  }
611
451
 
612
- _this5._storedError = error;
452
+ this._storedError = error;
613
453
 
614
- _this5._headersCapability.reject(error);
454
+ this._headersCapability.reject(error);
615
455
 
616
456
  return;
617
457
  }
618
458
 
619
- _this5._contentLength = stat.size;
459
+ this._contentLength = stat.size;
620
460
 
621
- _this5._setReadableStream(fs.createReadStream(path));
461
+ this._setReadableStream(fs.createReadStream(path));
622
462
 
623
- _this5._headersCapability.resolve();
463
+ this._headersCapability.resolve();
624
464
  });
625
- return _this5;
626
465
  }
627
466
 
628
- return PDFNodeStreamFsFullReader;
629
- }(BaseFullReader);
630
-
631
- var PDFNodeStreamFsRangeReader =
632
- /*#__PURE__*/
633
- function (_BaseRangeReader2) {
634
- _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);
635
-
636
- function PDFNodeStreamFsRangeReader(stream, start, end) {
637
- var _this6;
638
-
639
- _classCallCheck(this, PDFNodeStreamFsRangeReader);
467
+ }
640
468
 
641
- _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));
642
- var path = decodeURIComponent(_this6._url.path);
469
+ class PDFNodeStreamFsRangeReader extends BaseRangeReader {
470
+ constructor(stream, start, end) {
471
+ super(stream);
472
+ let path = decodeURIComponent(this._url.path);
643
473
 
644
- if (fileUriRegex.test(_this6._url.href)) {
645
- path = path.replace(/^\//, '');
474
+ if (fileUriRegex.test(this._url.href)) {
475
+ path = path.replace(/^\//, "");
646
476
  }
647
477
 
648
- _this6._setReadableStream(fs.createReadStream(path, {
649
- start: start,
478
+ this._setReadableStream(fs.createReadStream(path, {
479
+ start,
650
480
  end: end - 1
651
481
  }));
652
-
653
- return _this6;
654
482
  }
655
483
 
656
- return PDFNodeStreamFsRangeReader;
657
- }(BaseRangeReader);
484
+ }