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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8286 -14230
- 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 +25500 -26628
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -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 +57878 -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 +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +2887 -4094
- 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 +855 -778
- package/lib/core/arithmetic_decoder.js +325 -311
- package/lib/core/bidi.js +117 -50
- package/lib/core/ccitt.js +251 -89
- package/lib/core/ccitt_stream.js +26 -16
- package/lib/core/cff_parser.js +525 -197
- package/lib/core/charsets.js +6 -5
- package/lib/core/chunked_stream.js +541 -406
- package/lib/core/cmap.js +368 -253
- package/lib/core/colorspace.js +781 -800
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +609 -422
- package/lib/core/document.js +649 -481
- package/lib/core/encodings.js +33 -24
- package/lib/core/evaluator.js +1471 -736
- package/lib/core/font_renderer.js +289 -149
- package/lib/core/fonts.js +1067 -413
- package/lib/core/function.js +517 -287
- package/lib/core/glyphlist.js +4529 -4527
- package/lib/core/image.js +232 -114
- package/lib/core/image_utils.js +94 -0
- package/lib/core/jbig2.js +711 -342
- package/lib/core/jbig2_stream.js +31 -19
- package/lib/core/jpeg_stream.js +151 -26
- package/lib/core/jpg.js +433 -181
- package/lib/core/jpx.js +551 -143
- package/lib/core/jpx_stream.js +40 -28
- package/lib/core/metrics.js +2931 -2931
- package/lib/core/murmurhash3.js +104 -97
- package/lib/core/obj.js +1561 -1053
- package/lib/core/operator_list.js +192 -64
- package/lib/core/parser.js +1162 -864
- package/lib/core/pattern.js +224 -75
- package/lib/core/pdf_manager.js +154 -285
- package/lib/core/primitives.js +145 -69
- package/lib/core/ps_parser.js +212 -162
- package/lib/core/standard_fonts.js +245 -244
- package/lib/core/stream.js +353 -81
- package/lib/core/type1_parser.js +218 -68
- package/lib/core/unicode.js +1682 -1655
- package/lib/core/worker.js +233 -302
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +808 -862
- package/lib/display/api.js +1778 -1462
- package/lib/display/api_compatibility.js +14 -9
- package/lib/display/canvas.js +463 -140
- package/lib/display/content_disposition.js +86 -58
- package/lib/display/display_utils.js +524 -0
- package/lib/display/fetch_stream.js +202 -274
- package/lib/display/font_loader.js +311 -333
- package/lib/display/metadata.js +98 -88
- package/lib/display/network.js +343 -347
- package/lib/display/network_utils.js +46 -26
- package/lib/display/node_stream.js +326 -404
- package/lib/display/pattern_helper.js +168 -69
- package/lib/display/svg.js +1296 -885
- package/lib/display/text_layer.js +229 -103
- package/lib/display/transport_stream.js +290 -250
- package/lib/display/webgl.js +116 -83
- package/lib/display/worker_options.js +6 -5
- package/lib/display/xml_parser.js +358 -337
- package/lib/examples/node/domstubs.js +95 -39
- package/lib/pdf.js +49 -31
- package/lib/pdf.worker.js +7 -5
- package/lib/shared/compatibility.js +3 -145
- package/lib/shared/is_node.js +8 -7
- package/lib/shared/message_handler.js +367 -314
- package/lib/shared/util.js +421 -415
- package/lib/test/unit/annotation_spec.js +1570 -690
- package/lib/test/unit/api_spec.js +855 -493
- package/lib/test/unit/bidi_spec.js +12 -12
- package/lib/test/unit/cff_parser_spec.js +88 -61
- package/lib/test/unit/clitests_helper.js +9 -12
- package/lib/test/unit/cmap_spec.js +140 -88
- package/lib/test/unit/colorspace_spec.js +204 -152
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +194 -182
- package/lib/test/unit/custom_spec.js +50 -64
- package/lib/test/unit/display_svg_spec.js +53 -38
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +17 -22
- package/lib/test/unit/encodings_spec.js +15 -57
- package/lib/test/unit/evaluator_spec.js +90 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +219 -205
- package/lib/test/unit/jasmine-boot.js +68 -39
- package/lib/test/unit/message_handler_spec.js +187 -160
- package/lib/test/unit/metadata_spec.js +87 -34
- package/lib/test/unit/murmurhash3_spec.js +13 -13
- package/lib/test/unit/network_spec.js +26 -59
- package/lib/test/unit/network_utils_spec.js +187 -121
- package/lib/test/unit/node_stream_spec.js +98 -90
- package/lib/test/unit/parser_spec.js +173 -131
- package/lib/test/unit/pdf_find_controller_spec.js +148 -67
- package/lib/test/unit/pdf_find_utils_spec.js +35 -34
- package/lib/test/unit/pdf_history_spec.js +45 -33
- package/lib/test/unit/primitives_spec.js +161 -126
- package/lib/test/unit/stream_spec.js +22 -15
- package/lib/test/unit/test_utils.js +149 -98
- package/lib/test/unit/testreporter.js +36 -18
- package/lib/test/unit/type1_parser_spec.js +46 -44
- package/lib/test/unit/ui_utils_spec.js +388 -372
- package/lib/test/unit/unicode_spec.js +49 -46
- package/lib/test/unit/util_spec.js +144 -248
- package/lib/web/annotation_layer_builder.js +75 -95
- package/lib/web/app.js +1538 -1147
- package/lib/web/app_options.js +116 -104
- package/lib/web/base_viewer.js +950 -775
- package/lib/web/chromecom.js +217 -225
- package/lib/web/debugger.js +236 -148
- package/lib/web/download_manager.js +50 -50
- package/lib/web/firefox_print_service.js +51 -33
- package/lib/web/firefoxcom.js +225 -352
- package/lib/web/genericcom.js +30 -93
- package/lib/web/genericl10n.js +26 -143
- package/lib/web/grab_to_pan.js +57 -33
- package/lib/web/interfaces.js +105 -232
- package/lib/web/overlay_manager.js +73 -227
- package/lib/web/password_prompt.js +44 -62
- package/lib/web/pdf_attachment_viewer.js +118 -123
- package/lib/web/pdf_cursor_tools.js +89 -93
- package/lib/web/pdf_document_properties.js +242 -281
- package/lib/web/pdf_find_bar.js +157 -163
- package/lib/web/pdf_find_controller.js +598 -454
- package/lib/web/pdf_find_utils.js +32 -16
- package/lib/web/pdf_history.js +481 -355
- package/lib/web/pdf_link_service.js +355 -323
- package/lib/web/pdf_outline_viewer.js +167 -152
- package/lib/web/pdf_page_view.js +511 -457
- package/lib/web/pdf_presentation_mode.js +347 -335
- package/lib/web/pdf_print_service.js +133 -103
- package/lib/web/pdf_rendering_queue.js +98 -100
- package/lib/web/pdf_sidebar.js +323 -299
- package/lib/web/pdf_sidebar_resizer.js +107 -108
- package/lib/web/pdf_single_page_viewer.js +94 -146
- package/lib/web/pdf_thumbnail_view.js +319 -269
- package/lib/web/pdf_thumbnail_viewer.js +219 -199
- package/lib/web/pdf_viewer.component.js +111 -32
- package/lib/web/pdf_viewer.js +61 -101
- package/lib/web/preferences.js +87 -272
- package/lib/web/secondary_toolbar.js +207 -220
- package/lib/web/text_layer_builder.js +322 -322
- package/lib/web/toolbar.js +227 -180
- package/lib/web/ui_utils.js +476 -421
- package/lib/web/view_history.js +59 -208
- package/lib/web/viewer_compatibility.js +9 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +36 -22
- package/web/pdf_viewer.js +4407 -4516
- 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 -441
- package/lib/shared/streams_polyfill.js +0 -39
- package/lib/shared/url_polyfill.js +0 -50
- package/lib/test/unit/dom_utils_spec.js +0 -89
- 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
|
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
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.PDFFetchStream =
|
27
|
+
exports.PDFFetchStream = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _util = require("../shared/util.js");
|
30
30
|
|
31
|
-
var
|
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:
|
48
|
-
headers
|
35
|
+
method: "GET",
|
36
|
+
headers,
|
49
37
|
signal: abortController && abortController.signal,
|
50
|
-
mode:
|
51
|
-
credentials: withCredentials ?
|
52
|
-
redirect:
|
38
|
+
mode: "cors",
|
39
|
+
credentials: withCredentials ? "include" : "same-origin",
|
40
|
+
redirect: "follow"
|
53
41
|
};
|
54
42
|
}
|
55
43
|
|
56
|
-
|
57
|
-
|
58
|
-
|
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
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
return
|
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
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
-
|
95
|
-
}();
|
96
|
+
const readers = this._rangeRequestReaders.slice(0);
|
96
97
|
|
97
|
-
|
98
|
-
|
99
|
-
|
98
|
+
readers.forEach(function (reader) {
|
99
|
+
reader.cancel(reason);
|
100
|
+
});
|
101
|
+
}
|
100
102
|
|
101
|
-
|
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
|
-
|
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
|
-
|
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 =
|
122
|
-
|
123
|
-
|
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
|
-
|
135
|
-
|
136
|
-
|
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
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
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
|
-
|
160
|
-
|
161
|
-
|
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
|
-
|
218
|
-
|
219
|
-
}
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
}
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
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
|
-
|
251
|
-
|
252
|
-
|
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
|
-
|
257
|
-
|
208
|
+
const buffer = new Uint8Array(value).buffer;
|
209
|
+
return {
|
210
|
+
value: buffer,
|
211
|
+
done: false
|
212
|
+
};
|
213
|
+
}
|
258
214
|
|
259
|
-
|
260
|
-
|
261
|
-
|
215
|
+
cancel(reason) {
|
216
|
+
if (this._reader) {
|
217
|
+
this._reader.cancel(reason);
|
218
|
+
}
|
262
219
|
|
263
|
-
|
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
|
-
|
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
|
-
|
236
|
+
|
237
|
+
if (typeof AbortController !== "undefined") {
|
273
238
|
this._abortController = new AbortController();
|
274
239
|
}
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
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
|
-
|
291
|
-
|
250
|
+
|
251
|
+
this._readCapability.resolve();
|
252
|
+
|
253
|
+
this._reader = response.body.getReader();
|
292
254
|
});
|
293
255
|
this.onProgress = null;
|
294
256
|
}
|
295
257
|
|
296
|
-
|
297
|
-
|
298
|
-
|
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
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
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
|
-
|
365
|
-
|
366
|
-
|
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
|
-
|
371
|
-
|
296
|
+
if (this._abortController) {
|
297
|
+
this._abortController.abort();
|
298
|
+
}
|
299
|
+
}
|
372
300
|
|
373
|
-
|
301
|
+
}
|