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,33 +26,19 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.WorkerMessageHandler = exports.WorkerTask = 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 _primitives = require("./primitives.js");
32
32
 
33
- var _pdf_manager = require("./pdf_manager");
33
+ var _pdf_manager = require("./pdf_manager.js");
34
34
 
35
- var _is_node = _interopRequireDefault(require("../shared/is_node"));
35
+ var _is_node = require("../shared/is_node.js");
36
36
 
37
- var _message_handler = require("../shared/message_handler");
37
+ var _message_handler = require("../shared/message_handler.js");
38
38
 
39
- var _primitives = require("./primitives");
39
+ var _worker_stream = require("./worker_stream.js");
40
40
 
41
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
-
43
- 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); }
44
-
45
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
46
-
47
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
48
-
49
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
50
-
51
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
52
-
53
- 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); } }
54
-
55
- 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); }); }; }
41
+ var _core_utils = require("./core_utils.js");
56
42
 
57
43
  var WorkerTask = function WorkerTaskClosure() {
58
44
  function WorkerTask(name) {
@@ -66,161 +52,29 @@ var WorkerTask = function WorkerTaskClosure() {
66
52
  return this._capability.promise;
67
53
  },
68
54
 
69
- finish: function finish() {
55
+ finish() {
70
56
  this._capability.resolve();
71
57
  },
72
- terminate: function terminate() {
58
+
59
+ terminate() {
73
60
  this.terminated = true;
74
61
  },
75
- ensureNotTerminated: function ensureNotTerminated() {
62
+
63
+ ensureNotTerminated() {
76
64
  if (this.terminated) {
77
- throw new Error('Worker task was terminated');
65
+ throw new Error("Worker task was terminated");
78
66
  }
79
67
  }
68
+
80
69
  };
81
70
  return WorkerTask;
82
71
  }();
83
72
 
84
73
  exports.WorkerTask = WorkerTask;
85
-
86
- var PDFWorkerStream = function PDFWorkerStreamClosure() {
87
- function PDFWorkerStream(msgHandler) {
88
- this._msgHandler = msgHandler;
89
- this._contentLength = null;
90
- this._fullRequestReader = null;
91
- this._rangeRequestReaders = [];
92
- }
93
-
94
- PDFWorkerStream.prototype = {
95
- getFullReader: function getFullReader() {
96
- (0, _util.assert)(!this._fullRequestReader);
97
- this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
98
- return this._fullRequestReader;
99
- },
100
- getRangeReader: function getRangeReader(begin, end) {
101
- var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
102
-
103
- this._rangeRequestReaders.push(reader);
104
-
105
- return reader;
106
- },
107
- cancelAllRequests: function cancelAllRequests(reason) {
108
- if (this._fullRequestReader) {
109
- this._fullRequestReader.cancel(reason);
110
- }
111
-
112
- var readers = this._rangeRequestReaders.slice(0);
113
-
114
- readers.forEach(function (reader) {
115
- reader.cancel(reason);
116
- });
117
- }
118
- };
119
-
120
- function PDFWorkerStreamReader(msgHandler) {
121
- var _this = this;
122
-
123
- this._msgHandler = msgHandler;
124
- this._contentLength = null;
125
- this._isRangeSupported = false;
126
- this._isStreamingSupported = false;
127
-
128
- var readableStream = this._msgHandler.sendWithStream('GetReader');
129
-
130
- this._reader = readableStream.getReader();
131
- this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
132
- _this._isStreamingSupported = data.isStreamingSupported;
133
- _this._isRangeSupported = data.isRangeSupported;
134
- _this._contentLength = data.contentLength;
135
- });
136
- }
137
-
138
- PDFWorkerStreamReader.prototype = {
139
- get headersReady() {
140
- return this._headersReady;
141
- },
142
-
143
- get contentLength() {
144
- return this._contentLength;
145
- },
146
-
147
- get isStreamingSupported() {
148
- return this._isStreamingSupported;
149
- },
150
-
151
- get isRangeSupported() {
152
- return this._isRangeSupported;
153
- },
154
-
155
- read: function read() {
156
- return this._reader.read().then(function (_ref) {
157
- var value = _ref.value,
158
- done = _ref.done;
159
-
160
- if (done) {
161
- return {
162
- value: undefined,
163
- done: true
164
- };
165
- }
166
-
167
- return {
168
- value: value.buffer,
169
- done: false
170
- };
171
- });
172
- },
173
- cancel: function cancel(reason) {
174
- this._reader.cancel(reason);
175
- }
176
- };
177
-
178
- function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
179
- this._msgHandler = msgHandler;
180
- this.onProgress = null;
181
-
182
- var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
183
- begin: begin,
184
- end: end
185
- });
186
-
187
- this._reader = readableStream.getReader();
188
- }
189
-
190
- PDFWorkerStreamRangeReader.prototype = {
191
- get isStreamingSupported() {
192
- return false;
193
- },
194
-
195
- read: function read() {
196
- return this._reader.read().then(function (_ref2) {
197
- var value = _ref2.value,
198
- done = _ref2.done;
199
-
200
- if (done) {
201
- return {
202
- value: undefined,
203
- done: true
204
- };
205
- }
206
-
207
- return {
208
- value: value.buffer,
209
- done: false
210
- };
211
- });
212
- },
213
- cancel: function cancel(reason) {
214
- this._reader.cancel(reason);
215
- }
216
- };
217
- return PDFWorkerStream;
218
- }();
219
-
220
74
  var WorkerMessageHandler = {
221
- setup: function setup(handler, port) {
75
+ setup(handler, port) {
222
76
  var testMessageProcessed = false;
223
- handler.on('test', function wphSetupTest(data) {
77
+ handler.on("test", function wphSetupTest(data) {
224
78
  if (testMessageProcessed) {
225
79
  return;
226
80
  }
@@ -228,59 +82,60 @@ var WorkerMessageHandler = {
228
82
  testMessageProcessed = true;
229
83
 
230
84
  if (!(data instanceof Uint8Array)) {
231
- handler.send('test', false);
85
+ handler.send("test", null);
232
86
  return;
233
87
  }
234
88
 
235
- var supportTransfers = data[0] === 255;
89
+ const supportTransfers = data[0] === 255;
236
90
  handler.postMessageTransfers = supportTransfers;
237
- var xhr = new XMLHttpRequest();
238
- var responseExists = 'response' in xhr;
239
-
240
- try {
241
- xhr.responseType;
242
- } catch (e) {
243
- responseExists = false;
244
- }
245
-
246
- if (!responseExists) {
247
- handler.send('test', false);
248
- return;
249
- }
250
-
251
- handler.send('test', {
252
- supportTypedArray: true,
253
- supportTransfers: supportTransfers
91
+ handler.send("test", {
92
+ supportTransfers
254
93
  });
255
94
  });
256
- handler.on('configure', function wphConfigure(data) {
95
+ handler.on("configure", function wphConfigure(data) {
257
96
  (0, _util.setVerbosityLevel)(data.verbosity);
258
97
  });
259
- handler.on('GetDocRequest', function wphSetupDoc(data) {
98
+ handler.on("GetDocRequest", function wphSetupDoc(data) {
260
99
  return WorkerMessageHandler.createDocumentHandler(data, port);
261
100
  });
262
101
  },
263
- createDocumentHandler: function createDocumentHandler(docParams, port) {
102
+
103
+ createDocumentHandler(docParams, port) {
264
104
  var pdfManager;
265
105
  var terminated = false;
266
106
  var cancelXHRs = null;
267
107
  var WorkerTasks = [];
268
- var apiVersion = docParams.apiVersion;
269
- var workerVersion = '2.1.266';
108
+ const verbosity = (0, _util.getVerbosityLevel)();
109
+ const apiVersion = docParams.apiVersion;
110
+ const workerVersion = '2.5.207';
270
111
 
271
112
  if (apiVersion !== workerVersion) {
272
- throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
113
+ throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
114
+ }
115
+
116
+ const enumerableProperties = [];
117
+
118
+ for (const property in []) {
119
+ enumerableProperties.push(property);
120
+ }
121
+
122
+ if (enumerableProperties.length) {
123
+ throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s.");
124
+ }
125
+
126
+ if (typeof ReadableStream === "undefined" || typeof Promise.allSettled === "undefined") {
127
+ throw new Error("The browser/environment lacks native support for critical " + "functionality used by the PDF.js library (e.g. " + "`ReadableStream` and/or `Promise.allSettled`); " + "please use an ES5-compatible build instead.");
273
128
  }
274
129
 
275
130
  var docId = docParams.docId;
276
131
  var docBaseUrl = docParams.docBaseUrl;
277
- var workerHandlerName = docParams.docId + '_worker';
132
+ var workerHandlerName = docParams.docId + "_worker";
278
133
  var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
279
134
  handler.postMessageTransfers = docParams.postMessageTransfers;
280
135
 
281
136
  function ensureNotTerminated() {
282
137
  if (terminated) {
283
- throw new Error('Worker was terminated');
138
+ throw new Error("Worker was terminated");
284
139
  }
285
140
  }
286
141
 
@@ -294,73 +149,31 @@ var WorkerMessageHandler = {
294
149
  WorkerTasks.splice(i, 1);
295
150
  }
296
151
 
297
- function loadDocument(_x) {
298
- return _loadDocument.apply(this, arguments);
299
- }
152
+ async function loadDocument(recoveryMode) {
153
+ await pdfManager.ensureDoc("checkHeader");
154
+ await pdfManager.ensureDoc("parseStartXRef");
155
+ await pdfManager.ensureDoc("parse", [recoveryMode]);
300
156
 
301
- function _loadDocument() {
302
- _loadDocument = _asyncToGenerator(
303
- /*#__PURE__*/
304
- _regenerator.default.mark(function _callee(recoveryMode) {
305
- var _ref6, _ref7, numPages, fingerprint;
306
-
307
- return _regenerator.default.wrap(function _callee$(_context) {
308
- while (1) {
309
- switch (_context.prev = _context.next) {
310
- case 0:
311
- _context.next = 2;
312
- return pdfManager.ensureDoc('checkHeader');
313
-
314
- case 2:
315
- _context.next = 4;
316
- return pdfManager.ensureDoc('parseStartXRef');
317
-
318
- case 4:
319
- _context.next = 6;
320
- return pdfManager.ensureDoc('parse', [recoveryMode]);
321
-
322
- case 6:
323
- if (recoveryMode) {
324
- _context.next = 9;
325
- break;
326
- }
327
-
328
- _context.next = 9;
329
- return pdfManager.ensureDoc('checkFirstPage');
330
-
331
- case 9:
332
- _context.next = 11;
333
- return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
334
-
335
- case 11:
336
- _ref6 = _context.sent;
337
- _ref7 = _slicedToArray(_ref6, 2);
338
- numPages = _ref7[0];
339
- fingerprint = _ref7[1];
340
- return _context.abrupt("return", {
341
- numPages: numPages,
342
- fingerprint: fingerprint
343
- });
344
-
345
- case 16:
346
- case "end":
347
- return _context.stop();
348
- }
349
- }
350
- }, _callee, this);
351
- }));
352
- return _loadDocument.apply(this, arguments);
157
+ if (!recoveryMode) {
158
+ await pdfManager.ensureDoc("checkFirstPage");
159
+ }
160
+
161
+ const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]);
162
+ return {
163
+ numPages,
164
+ fingerprint
165
+ };
353
166
  }
354
167
 
355
168
  function getPdfManager(data, evaluatorOptions) {
356
169
  var pdfManagerCapability = (0, _util.createPromiseCapability)();
357
- var pdfManager;
170
+ let newPdfManager;
358
171
  var source = data.source;
359
172
 
360
173
  if (source.data) {
361
174
  try {
362
- pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
363
- pdfManagerCapability.resolve(pdfManager);
175
+ newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
176
+ pdfManagerCapability.resolve(newPdfManager);
364
177
  } catch (ex) {
365
178
  pdfManagerCapability.reject(ex);
366
179
  }
@@ -372,7 +185,7 @@ var WorkerMessageHandler = {
372
185
  cachedChunks = [];
373
186
 
374
187
  try {
375
- pdfStream = new PDFWorkerStream(handler);
188
+ pdfStream = new _worker_stream.PDFWorkerStream(handler);
376
189
  } catch (ex) {
377
190
  pdfManagerCapability.reject(ex);
378
191
  return pdfManagerCapability.promise;
@@ -385,20 +198,20 @@ var WorkerMessageHandler = {
385
198
  }
386
199
 
387
200
  var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
388
- pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
201
+ newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
389
202
  msgHandler: handler,
390
203
  password: source.password,
391
204
  length: fullRequest.contentLength,
392
- disableAutoFetch: disableAutoFetch,
205
+ disableAutoFetch,
393
206
  rangeChunkSize: source.rangeChunkSize
394
207
  }, evaluatorOptions, docBaseUrl);
395
208
 
396
- for (var i = 0; i < cachedChunks.length; i++) {
397
- pdfManager.sendProgressiveData(cachedChunks[i]);
209
+ for (let i = 0; i < cachedChunks.length; i++) {
210
+ newPdfManager.sendProgressiveData(cachedChunks[i]);
398
211
  }
399
212
 
400
213
  cachedChunks = [];
401
- pdfManagerCapability.resolve(pdfManager);
214
+ pdfManagerCapability.resolve(newPdfManager);
402
215
  cancelXHRs = null;
403
216
  }).catch(function (reason) {
404
217
  pdfManagerCapability.reject(reason);
@@ -406,16 +219,16 @@ var WorkerMessageHandler = {
406
219
  });
407
220
  var loaded = 0;
408
221
 
409
- var flushChunks = function flushChunks() {
222
+ var flushChunks = function () {
410
223
  var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
411
224
 
412
225
  if (source.length && pdfFile.length !== source.length) {
413
- (0, _util.warn)('reported HTTP length is different from actual');
226
+ (0, _util.warn)("reported HTTP length is different from actual");
414
227
  }
415
228
 
416
229
  try {
417
- pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
418
- pdfManagerCapability.resolve(pdfManager);
230
+ newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
231
+ pdfManagerCapability.resolve(newPdfManager);
419
232
  } catch (ex) {
420
233
  pdfManagerCapability.reject(ex);
421
234
  }
@@ -424,12 +237,15 @@ var WorkerMessageHandler = {
424
237
  };
425
238
 
426
239
  var readPromise = new Promise(function (resolve, reject) {
427
- var readChunk = function readChunk(chunk) {
240
+ var readChunk = function ({
241
+ value,
242
+ done
243
+ }) {
428
244
  try {
429
245
  ensureNotTerminated();
430
246
 
431
- if (chunk.done) {
432
- if (!pdfManager) {
247
+ if (done) {
248
+ if (!newPdfManager) {
433
249
  flushChunks();
434
250
  }
435
251
 
@@ -437,20 +253,19 @@ var WorkerMessageHandler = {
437
253
  return;
438
254
  }
439
255
 
440
- var data = chunk.value;
441
- loaded += (0, _util.arrayByteLength)(data);
256
+ loaded += (0, _util.arrayByteLength)(value);
442
257
 
443
258
  if (!fullRequest.isStreamingSupported) {
444
- handler.send('DocProgress', {
445
- loaded: loaded,
259
+ handler.send("DocProgress", {
260
+ loaded,
446
261
  total: Math.max(loaded, fullRequest.contentLength || 0)
447
262
  });
448
263
  }
449
264
 
450
- if (pdfManager) {
451
- pdfManager.sendProgressiveData(data);
265
+ if (newPdfManager) {
266
+ newPdfManager.sendProgressiveData(value);
452
267
  } else {
453
- cachedChunks.push(data);
268
+ cachedChunks.push(value);
454
269
  }
455
270
 
456
271
  fullRequest.read().then(readChunk, reject);
@@ -466,8 +281,8 @@ var WorkerMessageHandler = {
466
281
  cancelXHRs = null;
467
282
  });
468
283
 
469
- cancelXHRs = function cancelXHRs() {
470
- pdfStream.cancelAllRequests('abort');
284
+ cancelXHRs = function (reason) {
285
+ pdfStream.cancelAllRequests(reason);
471
286
  };
472
287
 
473
288
  return pdfManagerCapability.promise;
@@ -476,33 +291,31 @@ var WorkerMessageHandler = {
476
291
  function setupDoc(data) {
477
292
  function onSuccess(doc) {
478
293
  ensureNotTerminated();
479
- handler.send('GetDoc', {
294
+ handler.send("GetDoc", {
480
295
  pdfInfo: doc
481
296
  });
482
297
  }
483
298
 
484
- function onFailure(e) {
299
+ function onFailure(ex) {
485
300
  ensureNotTerminated();
486
301
 
487
- if (e instanceof _util.PasswordException) {
488
- var task = new WorkerTask('PasswordException: response ' + e.code);
302
+ if (ex instanceof _util.PasswordException) {
303
+ var task = new WorkerTask(`PasswordException: response ${ex.code}`);
489
304
  startWorkerTask(task);
490
- handler.sendWithPromise('PasswordRequest', e).then(function (data) {
305
+ handler.sendWithPromise("PasswordRequest", ex).then(function ({
306
+ password
307
+ }) {
491
308
  finishWorkerTask(task);
492
- pdfManager.updatePassword(data.password);
309
+ pdfManager.updatePassword(password);
493
310
  pdfManagerReady();
494
- }).catch(function (boundException) {
311
+ }).catch(function () {
495
312
  finishWorkerTask(task);
496
- handler.send('PasswordException', boundException);
497
- }.bind(null, e));
498
- } else if (e instanceof _util.InvalidPDFException) {
499
- handler.send('InvalidPDF', e);
500
- } else if (e instanceof _util.MissingPDFException) {
501
- handler.send('MissingPDF', e);
502
- } else if (e instanceof _util.UnexpectedResponseException) {
503
- handler.send('UnexpectedResponse', e);
313
+ handler.send("DocException", ex);
314
+ });
315
+ } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {
316
+ handler.send("DocException", ex);
504
317
  } else {
505
- handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
318
+ handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
506
319
  }
507
320
  }
508
321
 
@@ -511,7 +324,7 @@ var WorkerMessageHandler = {
511
324
  loadDocument(false).then(onSuccess, function loadFailure(ex) {
512
325
  ensureNotTerminated();
513
326
 
514
- if (!(ex instanceof _util.XRefParseException)) {
327
+ if (!(ex instanceof _core_utils.XRefParseException)) {
515
328
  onFailure(ex);
516
329
  return;
517
330
  }
@@ -526,151 +339,133 @@ var WorkerMessageHandler = {
526
339
 
527
340
  ensureNotTerminated();
528
341
  var evaluatorOptions = {
529
- forceDataSchema: data.disableCreateObjectURL,
530
342
  maxImageSize: data.maxImageSize,
531
343
  disableFontFace: data.disableFontFace,
532
- nativeImageDecoderSupport: data.nativeImageDecoderSupport,
533
344
  ignoreErrors: data.ignoreErrors,
534
- isEvalSupported: data.isEvalSupported
345
+ isEvalSupported: data.isEvalSupported,
346
+ fontExtraProperties: data.fontExtraProperties
535
347
  };
536
348
  getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
537
349
  if (terminated) {
538
- newPdfManager.terminate();
539
- throw new Error('Worker was terminated');
350
+ newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
351
+ throw new Error("Worker was terminated");
540
352
  }
541
353
 
542
354
  pdfManager = newPdfManager;
543
355
  pdfManager.onLoadedStream().then(function (stream) {
544
- handler.send('DataLoaded', {
356
+ handler.send("DataLoaded", {
545
357
  length: stream.bytes.byteLength
546
358
  });
547
359
  });
548
360
  }).then(pdfManagerReady, onFailure);
549
361
  }
550
362
 
551
- handler.on('GetPage', function wphSetupGetPage(data) {
363
+ handler.on("GetPage", function wphSetupGetPage(data) {
552
364
  return pdfManager.getPage(data.pageIndex).then(function (page) {
553
- return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {
554
- var _ref4 = _slicedToArray(_ref3, 4),
555
- rotate = _ref4[0],
556
- ref = _ref4[1],
557
- userUnit = _ref4[2],
558
- view = _ref4[3];
559
-
365
+ return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) {
560
366
  return {
561
- rotate: rotate,
562
- ref: ref,
563
- userUnit: userUnit,
564
- view: view
367
+ rotate,
368
+ ref,
369
+ userUnit,
370
+ view
565
371
  };
566
372
  });
567
373
  });
568
374
  });
569
- handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
570
- var ref = new _primitives.Ref(data.ref.num, data.ref.gen);
375
+ handler.on("GetPageIndex", function wphSetupGetPageIndex(data) {
376
+ var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
377
+
571
378
  var catalog = pdfManager.pdfDocument.catalog;
572
379
  return catalog.getPageIndex(ref);
573
380
  });
574
- handler.on('GetDestinations', function wphSetupGetDestinations(data) {
575
- return pdfManager.ensureCatalog('destinations');
381
+ handler.on("GetDestinations", function wphSetupGetDestinations(data) {
382
+ return pdfManager.ensureCatalog("destinations");
576
383
  });
577
- handler.on('GetDestination', function wphSetupGetDestination(data) {
578
- return pdfManager.ensureCatalog('getDestination', [data.id]);
384
+ handler.on("GetDestination", function wphSetupGetDestination(data) {
385
+ return pdfManager.ensureCatalog("getDestination", [data.id]);
579
386
  });
580
- handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
581
- return pdfManager.ensureCatalog('pageLabels');
387
+ handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
388
+ return pdfManager.ensureCatalog("pageLabels");
582
389
  });
583
- handler.on('GetPageMode', function wphSetupGetPageMode(data) {
584
- return pdfManager.ensureCatalog('pageMode');
390
+ handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
391
+ return pdfManager.ensureCatalog("pageLayout");
585
392
  });
586
- handler.on('getOpenActionDestination', function (data) {
587
- return pdfManager.ensureCatalog('openActionDestination');
393
+ handler.on("GetPageMode", function wphSetupGetPageMode(data) {
394
+ return pdfManager.ensureCatalog("pageMode");
588
395
  });
589
- handler.on('GetAttachments', function wphSetupGetAttachments(data) {
590
- return pdfManager.ensureCatalog('attachments');
396
+ handler.on("GetViewerPreferences", function (data) {
397
+ return pdfManager.ensureCatalog("viewerPreferences");
591
398
  });
592
- handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {
593
- return pdfManager.ensureCatalog('javaScript');
399
+ handler.on("GetOpenAction", function (data) {
400
+ return pdfManager.ensureCatalog("openAction");
594
401
  });
595
- handler.on('GetOutline', function wphSetupGetOutline(data) {
596
- return pdfManager.ensureCatalog('documentOutline');
402
+ handler.on("GetAttachments", function wphSetupGetAttachments(data) {
403
+ return pdfManager.ensureCatalog("attachments");
597
404
  });
598
- handler.on('GetPermissions', function (data) {
599
- return pdfManager.ensureCatalog('permissions');
405
+ handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
406
+ return pdfManager.ensureCatalog("javaScript");
600
407
  });
601
- handler.on('GetMetadata', function wphSetupGetMetadata(data) {
602
- return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);
408
+ handler.on("GetOutline", function wphSetupGetOutline(data) {
409
+ return pdfManager.ensureCatalog("documentOutline");
603
410
  });
604
- handler.on('GetData', function wphSetupGetData(data) {
411
+ handler.on("GetPermissions", function (data) {
412
+ return pdfManager.ensureCatalog("permissions");
413
+ });
414
+ handler.on("GetMetadata", function wphSetupGetMetadata(data) {
415
+ return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
416
+ });
417
+ handler.on("GetData", function wphSetupGetData(data) {
605
418
  pdfManager.requestLoadedStream();
606
419
  return pdfManager.onLoadedStream().then(function (stream) {
607
420
  return stream.bytes;
608
421
  });
609
422
  });
610
- handler.on('GetStats', function wphSetupGetStats(data) {
423
+ handler.on("GetStats", function wphSetupGetStats(data) {
611
424
  return pdfManager.pdfDocument.xref.stats;
612
425
  });
613
- handler.on('GetAnnotations', function (_ref5) {
614
- var pageIndex = _ref5.pageIndex,
615
- intent = _ref5.intent;
426
+ handler.on("GetAnnotations", function ({
427
+ pageIndex,
428
+ intent
429
+ }) {
616
430
  return pdfManager.getPage(pageIndex).then(function (page) {
617
431
  return page.getAnnotationsData(intent);
618
432
  });
619
433
  });
620
- handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
434
+ handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
621
435
  var pageIndex = data.pageIndex;
622
436
  pdfManager.getPage(pageIndex).then(function (page) {
623
- var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);
437
+ var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
624
438
  startWorkerTask(task);
625
- var pageNum = pageIndex + 1;
626
- var start = Date.now();
439
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
627
440
  page.getOperatorList({
628
- handler: handler,
629
- task: task,
441
+ handler,
442
+ sink,
443
+ task,
630
444
  intent: data.intent,
631
445
  renderInteractiveForms: data.renderInteractiveForms
632
- }).then(function (operatorList) {
446
+ }).then(function (operatorListInfo) {
633
447
  finishWorkerTask(task);
634
- (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
635
- }, function (e) {
448
+
449
+ if (start) {
450
+ (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
451
+ }
452
+
453
+ sink.close();
454
+ }, function (reason) {
636
455
  finishWorkerTask(task);
637
456
 
638
457
  if (task.terminated) {
639
458
  return;
640
459
  }
641
460
 
642
- handler.send('UnsupportedFeature', {
643
- featureId: _util.UNSUPPORTED_FEATURES.unknown
644
- });
645
- var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
646
- var wrappedException;
647
-
648
- if (typeof e === 'string') {
649
- wrappedException = {
650
- message: e,
651
- stack: minimumStackMessage
652
- };
653
- } else if (_typeof(e) === 'object') {
654
- wrappedException = {
655
- message: e.message || e.toString(),
656
- stack: e.stack || minimumStackMessage
657
- };
658
- } else {
659
- wrappedException = {
660
- message: 'Unknown exception type: ' + _typeof(e),
661
- stack: minimumStackMessage
662
- };
663
- }
664
-
665
- handler.send('PageError', {
666
- pageNum: pageNum,
667
- error: wrappedException,
668
- intent: data.intent
461
+ handler.send("UnsupportedFeature", {
462
+ featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
669
463
  });
464
+ sink.error(reason);
670
465
  });
671
466
  });
672
467
  }, this);
673
- handler.on('GetTextContent', function wphExtractText(data, sink) {
468
+ handler.on("GetTextContent", function wphExtractText(data, sink) {
674
469
  var pageIndex = data.pageIndex;
675
470
 
676
471
  sink.onPull = function (desiredSize) {};
@@ -678,19 +473,22 @@ var WorkerMessageHandler = {
678
473
  sink.onCancel = function (reason) {};
679
474
 
680
475
  pdfManager.getPage(pageIndex).then(function (page) {
681
- var task = new WorkerTask('GetTextContent: page ' + pageIndex);
476
+ var task = new WorkerTask("GetTextContent: page " + pageIndex);
682
477
  startWorkerTask(task);
683
- var pageNum = pageIndex + 1;
684
- var start = Date.now();
478
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
685
479
  page.extractTextContent({
686
- handler: handler,
687
- task: task,
688
- sink: sink,
480
+ handler,
481
+ task,
482
+ sink,
689
483
  normalizeWhitespace: data.normalizeWhitespace,
690
484
  combineTextItems: data.combineTextItems
691
485
  }).then(function () {
692
486
  finishWorkerTask(task);
693
- (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');
487
+
488
+ if (start) {
489
+ (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
490
+ }
491
+
694
492
  sink.close();
695
493
  }, function (reason) {
696
494
  finishWorkerTask(task);
@@ -700,29 +498,32 @@ var WorkerMessageHandler = {
700
498
  }
701
499
 
702
500
  sink.error(reason);
703
- throw reason;
704
501
  });
705
502
  });
706
503
  });
707
- handler.on('FontFallback', function (data) {
504
+ handler.on("FontFallback", function (data) {
708
505
  return pdfManager.fontFallback(data.id, handler);
709
506
  });
710
- handler.on('Cleanup', function wphCleanup(data) {
711
- return pdfManager.cleanup();
507
+ handler.on("Cleanup", function wphCleanup(data) {
508
+ return pdfManager.cleanup(true);
712
509
  });
713
- handler.on('Terminate', function wphTerminate(data) {
510
+ handler.on("Terminate", function wphTerminate(data) {
714
511
  terminated = true;
512
+ const waitOn = [];
715
513
 
716
514
  if (pdfManager) {
717
- pdfManager.terminate();
515
+ pdfManager.terminate(new _util.AbortException("Worker was terminated."));
516
+ const cleanupPromise = pdfManager.cleanup();
517
+ waitOn.push(cleanupPromise);
718
518
  pdfManager = null;
519
+ } else {
520
+ (0, _primitives.clearPrimitiveCaches)();
719
521
  }
720
522
 
721
523
  if (cancelXHRs) {
722
- cancelXHRs();
524
+ cancelXHRs(new _util.AbortException("Worker was terminated."));
723
525
  }
724
526
 
725
- var waitOn = [];
726
527
  WorkerTasks.forEach(function (task) {
727
528
  waitOn.push(task.finished);
728
529
  task.terminate();
@@ -732,24 +533,26 @@ var WorkerMessageHandler = {
732
533
  handler = null;
733
534
  });
734
535
  });
735
- handler.on('Ready', function wphReady(data) {
536
+ handler.on("Ready", function wphReady(data) {
736
537
  setupDoc(docParams);
737
538
  docParams = null;
738
539
  });
739
540
  return workerHandlerName;
740
541
  },
741
- initializeFromPort: function initializeFromPort(port) {
742
- var handler = new _message_handler.MessageHandler('worker', 'main', port);
542
+
543
+ initializeFromPort(port) {
544
+ var handler = new _message_handler.MessageHandler("worker", "main", port);
743
545
  WorkerMessageHandler.setup(handler, port);
744
- handler.send('ready', null);
546
+ handler.send("ready", null);
745
547
  }
548
+
746
549
  };
747
550
  exports.WorkerMessageHandler = WorkerMessageHandler;
748
551
 
749
552
  function isMessagePort(maybePort) {
750
- return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
553
+ return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
751
554
  }
752
555
 
753
- if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
556
+ if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
754
557
  WorkerMessageHandler.initializeFromPort(self);
755
558
  }