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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8382 -18492
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +20417 -29816
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25688 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +58239 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +403 -0
- package/es5/web/pdf_viewer.js +7742 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1475 -4897
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +750 -899
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +235 -183
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +447 -542
- package/lib/core/cmap.js +222 -264
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +573 -660
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +1103 -868
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +570 -491
- package/lib/core/function.js +291 -288
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +145 -149
- package/lib/core/image_utils.js +170 -0
- package/lib/core/jbig2.js +325 -316
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +21 -26
- package/lib/core/jpg.js +284 -232
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2929 -2929
- package/lib/core/murmurhash3.js +90 -101
- package/lib/core/obj.js +1183 -1157
- package/lib/core/operator_list.js +99 -67
- package/lib/core/parser.js +972 -911
- package/lib/core/pattern.js +87 -70
- package/lib/core/pdf_manager.js +150 -315
- package/lib/core/primitives.js +83 -56
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +94 -74
- package/lib/core/type1_parser.js +87 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +193 -390
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +741 -972
- package/lib/display/api.js +1500 -1791
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +165 -165
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +515 -0
- package/lib/display/fetch_stream.js +183 -298
- package/lib/display/font_loader.js +273 -413
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +266 -359
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +285 -458
- package/lib/display/pattern_helper.js +113 -65
- package/lib/display/svg.js +1166 -901
- package/lib/display/text_layer.js +156 -132
- package/lib/display/transport_stream.js +262 -278
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +40 -37
- package/lib/pdf.js +226 -59
- package/lib/pdf.worker.js +14 -6
- package/lib/shared/compatibility.js +3 -246
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +327 -332
- package/lib/shared/util.js +266 -416
- package/lib/test/unit/annotation_spec.js +1555 -701
- package/lib/test/unit/api_spec.js +802 -604
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +84 -69
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +74 -76
- package/lib/test/unit/colorspace_spec.js +166 -161
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +20 -22
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +16 -21
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +83 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +46 -30
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +69 -69
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -61
- package/lib/test/unit/network_utils_spec.js +183 -119
- package/lib/test/unit/node_stream_spec.js +78 -92
- package/lib/test/unit/parser_spec.js +172 -114
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +140 -125
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +131 -143
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +297 -459
- package/lib/test/unit/unicode_spec.js +38 -38
- package/lib/test/unit/util_spec.js +121 -305
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1328 -1214
- package/lib/web/app_options.js +105 -107
- package/lib/web/base_viewer.js +824 -838
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +39 -55
- package/lib/web/firefox_print_service.js +37 -27
- package/lib/web/firefoxcom.js +212 -363
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +32 -30
- package/lib/web/interfaces.js +80 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +113 -131
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +221 -306
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +491 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +140 -175
- package/lib/web/pdf_page_view.js +452 -523
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +84 -108
- package/lib/web/pdf_sidebar.js +276 -306
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +276 -297
- package/lib/web/pdf_thumbnail_viewer.js +186 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +82 -286
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +282 -339
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +267 -420
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +35 -25
- package/web/pdf_viewer.js +3489 -4855
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/display/dom_utils.js +0 -494
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- 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
|
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
|
29
|
+
var _util = require("../shared/util.js");
|
30
30
|
|
31
|
-
var
|
31
|
+
var _network_utils = require("./network_utils.js");
|
32
32
|
|
33
|
-
|
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:
|
50
|
-
headers
|
37
|
+
method: "GET",
|
38
|
+
headers,
|
51
39
|
signal: abortController && abortController.signal,
|
52
|
-
mode:
|
53
|
-
credentials: withCredentials ?
|
54
|
-
redirect:
|
40
|
+
mode: "cors",
|
41
|
+
credentials: withCredentials ? "include" : "same-origin",
|
42
|
+
redirect: "follow"
|
55
43
|
};
|
56
44
|
}
|
57
45
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
86
|
+
const reader = new PDFFetchStreamRangeReader(this, begin, end);
|
95
87
|
|
96
|
-
|
97
|
-
|
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
|
-
|
103
|
-
}();
|
98
|
+
const readers = this._rangeRequestReaders.slice(0);
|
104
99
|
|
105
|
-
|
100
|
+
readers.forEach(function (reader) {
|
101
|
+
reader.cancel(reason);
|
102
|
+
});
|
103
|
+
}
|
106
104
|
|
107
|
-
|
108
|
-
/*#__PURE__*/
|
109
|
-
function () {
|
110
|
-
function PDFFetchStreamReader(stream) {
|
111
|
-
var _this = this;
|
105
|
+
}
|
112
106
|
|
113
|
-
|
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
|
-
|
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 !==
|
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 =
|
137
|
-
|
138
|
-
|
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
|
-
|
139
|
+
this._reader = response.body.getReader();
|
155
140
|
|
156
|
-
|
141
|
+
this._headersCapability.resolve();
|
157
142
|
|
158
|
-
|
143
|
+
const getResponseHeader = name => {
|
159
144
|
return response.headers.get(name);
|
160
145
|
};
|
161
146
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
if (!
|
176
|
-
|
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
|
-
|
183
|
-
|
184
|
-
|
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
|
-
|
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
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
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
|
-
|
279
|
-
|
280
|
-
|
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
|
-
|
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
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
var _this2 = this;
|
222
|
+
if (this._abortController) {
|
223
|
+
this._abortController.abort();
|
224
|
+
}
|
225
|
+
}
|
292
226
|
|
293
|
-
|
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
|
-
|
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 !==
|
239
|
+
if (typeof AbortController !== "undefined") {
|
304
240
|
this._abortController = new AbortController();
|
305
241
|
}
|
306
242
|
|
307
|
-
this._headers =
|
243
|
+
this._headers = createHeaders(this._stream.httpHeaders);
|
308
244
|
|
309
|
-
|
310
|
-
var value = this._stream.httpHeaders[property];
|
245
|
+
this._headers.append("Range", `bytes=${begin}-${end - 1}`);
|
311
246
|
|
312
|
-
|
313
|
-
|
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
|
-
|
253
|
+
this._readCapability.resolve();
|
330
254
|
|
331
|
-
|
255
|
+
this._reader = response.body.getReader();
|
332
256
|
});
|
333
257
|
this.onProgress = null;
|
334
258
|
}
|
335
259
|
|
336
|
-
|
337
|
-
|
338
|
-
|
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
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
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
|
-
|
407
|
-
|
408
|
-
|
278
|
+
this._loaded += value.byteLength;
|
279
|
+
|
280
|
+
if (this.onProgress) {
|
281
|
+
this.onProgress({
|
282
|
+
loaded: this._loaded
|
283
|
+
});
|
409
284
|
}
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
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
|
-
|
418
|
-
}();
|
303
|
+
}
|