pdfjs-dist 2.0.943 → 2.4.456

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (192) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8286 -14230
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +57878 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2018 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,30 +19,26 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.WorkerMessageHandler = exports.WorkerTask = undefined;
27
+ exports.WorkerMessageHandler = exports.WorkerTask = void 0;
28
28
 
29
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _slicedToArray = function () { function sliceIterator(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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
31
+ var _primitives = require("./primitives.js");
32
32
 
33
- var _util = require('../shared/util');
33
+ var _pdf_manager = require("./pdf_manager.js");
34
34
 
35
- var _pdf_manager = require('./pdf_manager');
35
+ var _is_node = require("../shared/is_node.js");
36
36
 
37
- var _is_node = require('../shared/is_node');
37
+ var _message_handler = require("../shared/message_handler.js");
38
38
 
39
- var _is_node2 = _interopRequireDefault(_is_node);
39
+ var _worker_stream = require("./worker_stream.js");
40
40
 
41
- var _message_handler = require('../shared/message_handler');
42
-
43
- var _primitives = require('./primitives');
44
-
45
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+ var _core_utils = require("./core_utils.js");
46
42
 
47
43
  var WorkerTask = function WorkerTaskClosure() {
48
44
  function WorkerTask(name) {
@@ -50,231 +46,126 @@ var WorkerTask = function WorkerTaskClosure() {
50
46
  this.terminated = false;
51
47
  this._capability = (0, _util.createPromiseCapability)();
52
48
  }
49
+
53
50
  WorkerTask.prototype = {
54
51
  get finished() {
55
52
  return this._capability.promise;
56
53
  },
57
- finish: function finish() {
54
+
55
+ finish() {
58
56
  this._capability.resolve();
59
57
  },
60
- terminate: function terminate() {
58
+
59
+ terminate() {
61
60
  this.terminated = true;
62
61
  },
63
- ensureNotTerminated: function ensureNotTerminated() {
62
+
63
+ ensureNotTerminated() {
64
64
  if (this.terminated) {
65
- throw new Error('Worker task was terminated');
65
+ throw new Error("Worker task was terminated");
66
66
  }
67
67
  }
68
+
68
69
  };
69
70
  return WorkerTask;
70
71
  }();
71
- ;
72
- var PDFWorkerStream = function PDFWorkerStreamClosure() {
73
- function PDFWorkerStream(msgHandler) {
74
- this._msgHandler = msgHandler;
75
- this._contentLength = null;
76
- this._fullRequestReader = null;
77
- this._rangeRequestReaders = [];
78
- }
79
- PDFWorkerStream.prototype = {
80
- getFullReader: function getFullReader() {
81
- (0, _util.assert)(!this._fullRequestReader);
82
- this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
83
- return this._fullRequestReader;
84
- },
85
- getRangeReader: function getRangeReader(begin, end) {
86
- var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
87
- this._rangeRequestReaders.push(reader);
88
- return reader;
89
- },
90
- cancelAllRequests: function cancelAllRequests(reason) {
91
- if (this._fullRequestReader) {
92
- this._fullRequestReader.cancel(reason);
93
- }
94
- var readers = this._rangeRequestReaders.slice(0);
95
- readers.forEach(function (reader) {
96
- reader.cancel(reason);
97
- });
98
- }
99
- };
100
- function PDFWorkerStreamReader(msgHandler) {
101
- var _this = this;
102
-
103
- this._msgHandler = msgHandler;
104
- this._contentLength = null;
105
- this._isRangeSupported = false;
106
- this._isStreamingSupported = false;
107
- var readableStream = this._msgHandler.sendWithStream('GetReader');
108
- this._reader = readableStream.getReader();
109
- this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
110
- _this._isStreamingSupported = data.isStreamingSupported;
111
- _this._isRangeSupported = data.isRangeSupported;
112
- _this._contentLength = data.contentLength;
113
- });
114
- }
115
- PDFWorkerStreamReader.prototype = {
116
- get headersReady() {
117
- return this._headersReady;
118
- },
119
- get contentLength() {
120
- return this._contentLength;
121
- },
122
- get isStreamingSupported() {
123
- return this._isStreamingSupported;
124
- },
125
- get isRangeSupported() {
126
- return this._isRangeSupported;
127
- },
128
- read: function read() {
129
- return this._reader.read().then(function (_ref) {
130
- var value = _ref.value,
131
- done = _ref.done;
132
72
 
133
- if (done) {
134
- return {
135
- value: undefined,
136
- done: true
137
- };
138
- }
139
- return {
140
- value: value.buffer,
141
- done: false
142
- };
143
- });
144
- },
145
- cancel: function cancel(reason) {
146
- this._reader.cancel(reason);
147
- }
148
- };
149
- function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
150
- this._msgHandler = msgHandler;
151
- this.onProgress = null;
152
- var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
153
- begin: begin,
154
- end: end
155
- });
156
- this._reader = readableStream.getReader();
157
- }
158
- PDFWorkerStreamRangeReader.prototype = {
159
- get isStreamingSupported() {
160
- return false;
161
- },
162
- read: function read() {
163
- return this._reader.read().then(function (_ref2) {
164
- var value = _ref2.value,
165
- done = _ref2.done;
166
-
167
- if (done) {
168
- return {
169
- value: undefined,
170
- done: true
171
- };
172
- }
173
- return {
174
- value: value.buffer,
175
- done: false
176
- };
177
- });
178
- },
179
- cancel: function cancel(reason) {
180
- this._reader.cancel(reason);
181
- }
182
- };
183
- return PDFWorkerStream;
184
- }();
73
+ exports.WorkerTask = WorkerTask;
185
74
  var WorkerMessageHandler = {
186
- setup: function setup(handler, port) {
75
+ setup(handler, port) {
187
76
  var testMessageProcessed = false;
188
- handler.on('test', function wphSetupTest(data) {
77
+ handler.on("test", function wphSetupTest(data) {
189
78
  if (testMessageProcessed) {
190
79
  return;
191
80
  }
81
+
192
82
  testMessageProcessed = true;
83
+
193
84
  if (!(data instanceof Uint8Array)) {
194
- handler.send('test', false);
85
+ handler.send("test", null);
195
86
  return;
196
87
  }
197
- var supportTransfers = data[0] === 255;
88
+
89
+ const supportTransfers = data[0] === 255;
198
90
  handler.postMessageTransfers = supportTransfers;
199
- var xhr = new XMLHttpRequest();
200
- var responseExists = 'response' in xhr;
201
- try {
202
- xhr.responseType;
203
- } catch (e) {
204
- responseExists = false;
205
- }
206
- if (!responseExists) {
207
- handler.send('test', false);
208
- return;
209
- }
210
- handler.send('test', {
211
- supportTypedArray: true,
212
- supportTransfers: supportTransfers
91
+ handler.send("test", {
92
+ supportTransfers
213
93
  });
214
94
  });
215
- handler.on('configure', function wphConfigure(data) {
95
+ handler.on("configure", function wphConfigure(data) {
216
96
  (0, _util.setVerbosityLevel)(data.verbosity);
217
97
  });
218
- handler.on('GetDocRequest', function wphSetupDoc(data) {
98
+ handler.on("GetDocRequest", function wphSetupDoc(data) {
219
99
  return WorkerMessageHandler.createDocumentHandler(data, port);
220
100
  });
221
101
  },
222
- createDocumentHandler: function createDocumentHandler(docParams, port) {
102
+
103
+ createDocumentHandler(docParams, port) {
223
104
  var pdfManager;
224
105
  var terminated = false;
225
106
  var cancelXHRs = null;
226
107
  var WorkerTasks = [];
227
- var apiVersion = docParams.apiVersion;
228
- var workerVersion = '2.0.943';
108
+ const verbosity = (0, _util.getVerbosityLevel)();
109
+ const apiVersion = docParams.apiVersion;
110
+ const workerVersion = '2.4.456';
111
+
229
112
  if (apiVersion !== workerVersion) {
230
- throw new Error('The API version "' + apiVersion + '" does not match ' + ('the Worker version "' + workerVersion + '".'));
113
+ throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
231
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
+
232
126
  var docId = docParams.docId;
233
127
  var docBaseUrl = docParams.docBaseUrl;
234
- var workerHandlerName = docParams.docId + '_worker';
128
+ var workerHandlerName = docParams.docId + "_worker";
235
129
  var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
236
130
  handler.postMessageTransfers = docParams.postMessageTransfers;
131
+
237
132
  function ensureNotTerminated() {
238
133
  if (terminated) {
239
- throw new Error('Worker was terminated');
134
+ throw new Error("Worker was terminated");
240
135
  }
241
136
  }
137
+
242
138
  function startWorkerTask(task) {
243
139
  WorkerTasks.push(task);
244
140
  }
141
+
245
142
  function finishWorkerTask(task) {
246
143
  task.finish();
247
144
  var i = WorkerTasks.indexOf(task);
248
145
  WorkerTasks.splice(i, 1);
249
146
  }
250
- function loadDocument(recoveryMode) {
251
- var loadDocumentCapability = (0, _util.createPromiseCapability)();
252
- var parseSuccess = function parseSuccess() {
253
- Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]).then(function (_ref3) {
254
- var _ref4 = _slicedToArray(_ref3, 2),
255
- numPages = _ref4[0],
256
- fingerprint = _ref4[1];
257
-
258
- loadDocumentCapability.resolve({
259
- numPages: numPages,
260
- fingerprint: fingerprint
261
- });
262
- }, parseFailure);
263
- };
264
- var parseFailure = function parseFailure(e) {
265
- loadDocumentCapability.reject(e);
147
+
148
+ async function loadDocument(recoveryMode) {
149
+ await pdfManager.ensureDoc("checkHeader");
150
+ await pdfManager.ensureDoc("parseStartXRef");
151
+ await pdfManager.ensureDoc("parse", [recoveryMode]);
152
+
153
+ if (!recoveryMode) {
154
+ await pdfManager.ensureDoc("checkFirstPage");
155
+ }
156
+
157
+ const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]);
158
+ return {
159
+ numPages,
160
+ fingerprint
266
161
  };
267
- pdfManager.ensureDoc('checkHeader', []).then(function () {
268
- pdfManager.ensureDoc('parseStartXRef', []).then(function () {
269
- pdfManager.ensureDoc('parse', [recoveryMode]).then(parseSuccess, parseFailure);
270
- }, parseFailure);
271
- }, parseFailure);
272
- return loadDocumentCapability.promise;
273
162
  }
163
+
274
164
  function getPdfManager(data, evaluatorOptions) {
275
165
  var pdfManagerCapability = (0, _util.createPromiseCapability)();
276
166
  var pdfManager;
277
167
  var source = data.source;
168
+
278
169
  if (source.data) {
279
170
  try {
280
171
  pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
@@ -282,33 +173,39 @@ var WorkerMessageHandler = {
282
173
  } catch (ex) {
283
174
  pdfManagerCapability.reject(ex);
284
175
  }
176
+
285
177
  return pdfManagerCapability.promise;
286
178
  }
179
+
287
180
  var pdfStream,
288
181
  cachedChunks = [];
182
+
289
183
  try {
290
- pdfStream = new PDFWorkerStream(handler);
184
+ pdfStream = new _worker_stream.PDFWorkerStream(handler);
291
185
  } catch (ex) {
292
186
  pdfManagerCapability.reject(ex);
293
187
  return pdfManagerCapability.promise;
294
188
  }
189
+
295
190
  var fullRequest = pdfStream.getFullReader();
296
191
  fullRequest.headersReady.then(function () {
297
192
  if (!fullRequest.isRangeSupported) {
298
193
  return;
299
194
  }
195
+
300
196
  var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
301
197
  pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
302
198
  msgHandler: handler,
303
- url: source.url,
304
199
  password: source.password,
305
200
  length: fullRequest.contentLength,
306
- disableAutoFetch: disableAutoFetch,
201
+ disableAutoFetch,
307
202
  rangeChunkSize: source.rangeChunkSize
308
203
  }, evaluatorOptions, docBaseUrl);
309
- for (var i = 0; i < cachedChunks.length; i++) {
204
+
205
+ for (let i = 0; i < cachedChunks.length; i++) {
310
206
  pdfManager.sendProgressiveData(cachedChunks[i]);
311
207
  }
208
+
312
209
  cachedChunks = [];
313
210
  pdfManagerCapability.resolve(pdfManager);
314
211
  cancelXHRs = null;
@@ -317,95 +214,113 @@ var WorkerMessageHandler = {
317
214
  cancelXHRs = null;
318
215
  });
319
216
  var loaded = 0;
320
- var flushChunks = function flushChunks() {
217
+
218
+ var flushChunks = function () {
321
219
  var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
220
+
322
221
  if (source.length && pdfFile.length !== source.length) {
323
- (0, _util.warn)('reported HTTP length is different from actual');
222
+ (0, _util.warn)("reported HTTP length is different from actual");
324
223
  }
224
+
325
225
  try {
326
226
  pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
327
227
  pdfManagerCapability.resolve(pdfManager);
328
228
  } catch (ex) {
329
229
  pdfManagerCapability.reject(ex);
330
230
  }
231
+
331
232
  cachedChunks = [];
332
233
  };
234
+
333
235
  var readPromise = new Promise(function (resolve, reject) {
334
- var readChunk = function readChunk(chunk) {
236
+ var readChunk = function (chunk) {
335
237
  try {
336
238
  ensureNotTerminated();
239
+
337
240
  if (chunk.done) {
338
241
  if (!pdfManager) {
339
242
  flushChunks();
340
243
  }
244
+
341
245
  cancelXHRs = null;
342
246
  return;
343
247
  }
248
+
344
249
  var data = chunk.value;
345
250
  loaded += (0, _util.arrayByteLength)(data);
251
+
346
252
  if (!fullRequest.isStreamingSupported) {
347
- handler.send('DocProgress', {
348
- loaded: loaded,
253
+ handler.send("DocProgress", {
254
+ loaded,
349
255
  total: Math.max(loaded, fullRequest.contentLength || 0)
350
256
  });
351
257
  }
258
+
352
259
  if (pdfManager) {
353
260
  pdfManager.sendProgressiveData(data);
354
261
  } else {
355
262
  cachedChunks.push(data);
356
263
  }
264
+
357
265
  fullRequest.read().then(readChunk, reject);
358
266
  } catch (e) {
359
267
  reject(e);
360
268
  }
361
269
  };
270
+
362
271
  fullRequest.read().then(readChunk, reject);
363
272
  });
364
273
  readPromise.catch(function (e) {
365
274
  pdfManagerCapability.reject(e);
366
275
  cancelXHRs = null;
367
276
  });
368
- cancelXHRs = function cancelXHRs() {
369
- pdfStream.cancelAllRequests('abort');
277
+
278
+ cancelXHRs = function (reason) {
279
+ pdfStream.cancelAllRequests(reason);
370
280
  };
281
+
371
282
  return pdfManagerCapability.promise;
372
283
  }
284
+
373
285
  function setupDoc(data) {
374
286
  function onSuccess(doc) {
375
287
  ensureNotTerminated();
376
- handler.send('GetDoc', { pdfInfo: doc });
288
+ handler.send("GetDoc", {
289
+ pdfInfo: doc
290
+ });
377
291
  }
378
- function onFailure(e) {
292
+
293
+ function onFailure(ex) {
379
294
  ensureNotTerminated();
380
- if (e instanceof _util.PasswordException) {
381
- var task = new WorkerTask('PasswordException: response ' + e.code);
295
+
296
+ if (ex instanceof _util.PasswordException) {
297
+ var task = new WorkerTask(`PasswordException: response ${ex.code}`);
382
298
  startWorkerTask(task);
383
- handler.sendWithPromise('PasswordRequest', e).then(function (data) {
299
+ handler.sendWithPromise("PasswordRequest", ex).then(function (data) {
384
300
  finishWorkerTask(task);
385
301
  pdfManager.updatePassword(data.password);
386
302
  pdfManagerReady();
387
- }).catch(function (boundException) {
303
+ }).catch(function () {
388
304
  finishWorkerTask(task);
389
- handler.send('PasswordException', boundException);
390
- }.bind(null, e));
391
- } else if (e instanceof _util.InvalidPDFException) {
392
- handler.send('InvalidPDF', e);
393
- } else if (e instanceof _util.MissingPDFException) {
394
- handler.send('MissingPDF', e);
395
- } else if (e instanceof _util.UnexpectedResponseException) {
396
- handler.send('UnexpectedResponse', e);
305
+ handler.send("DocException", ex);
306
+ });
307
+ } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {
308
+ handler.send("DocException", ex);
397
309
  } else {
398
- handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
310
+ handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
399
311
  }
400
312
  }
313
+
401
314
  function pdfManagerReady() {
402
315
  ensureNotTerminated();
403
316
  loadDocument(false).then(onSuccess, function loadFailure(ex) {
404
317
  ensureNotTerminated();
405
- if (!(ex instanceof _util.XRefParseException)) {
318
+
319
+ if (!(ex instanceof _core_utils.XRefParseException)) {
406
320
  onFailure(ex);
407
321
  return;
408
322
  }
323
+
409
324
  pdfManager.requestLoadedStream();
410
325
  pdfManager.onLoadedStream().then(function () {
411
326
  ensureNotTerminated();
@@ -413,6 +328,7 @@ var WorkerMessageHandler = {
413
328
  });
414
329
  }, onFailure);
415
330
  }
331
+
416
332
  ensureNotTerminated();
417
333
  var evaluatorOptions = {
418
334
  forceDataSchema: data.disableCreateObjectURL,
@@ -424,171 +340,183 @@ var WorkerMessageHandler = {
424
340
  };
425
341
  getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
426
342
  if (terminated) {
427
- newPdfManager.terminate();
428
- throw new Error('Worker was terminated');
343
+ newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
344
+ throw new Error("Worker was terminated");
429
345
  }
346
+
430
347
  pdfManager = newPdfManager;
431
348
  pdfManager.onLoadedStream().then(function (stream) {
432
- handler.send('DataLoaded', { length: stream.bytes.byteLength });
349
+ handler.send("DataLoaded", {
350
+ length: stream.bytes.byteLength
351
+ });
433
352
  });
434
353
  }).then(pdfManagerReady, onFailure);
435
354
  }
436
- handler.on('GetPage', function wphSetupGetPage(data) {
437
- return pdfManager.getPage(data.pageIndex).then(function (page) {
438
- return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref5) {
439
- var _ref6 = _slicedToArray(_ref5, 4),
440
- rotate = _ref6[0],
441
- ref = _ref6[1],
442
- userUnit = _ref6[2],
443
- view = _ref6[3];
444
355
 
356
+ handler.on("GetPage", function wphSetupGetPage(data) {
357
+ return pdfManager.getPage(data.pageIndex).then(function (page) {
358
+ 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]) {
445
359
  return {
446
- rotate: rotate,
447
- ref: ref,
448
- userUnit: userUnit,
449
- view: view
360
+ rotate,
361
+ ref,
362
+ userUnit,
363
+ view
450
364
  };
451
365
  });
452
366
  });
453
367
  });
454
- handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
455
- var ref = new _primitives.Ref(data.ref.num, data.ref.gen);
368
+ handler.on("GetPageIndex", function wphSetupGetPageIndex(data) {
369
+ var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
370
+
456
371
  var catalog = pdfManager.pdfDocument.catalog;
457
372
  return catalog.getPageIndex(ref);
458
373
  });
459
- handler.on('GetDestinations', function wphSetupGetDestinations(data) {
460
- return pdfManager.ensureCatalog('destinations');
374
+ handler.on("GetDestinations", function wphSetupGetDestinations(data) {
375
+ return pdfManager.ensureCatalog("destinations");
376
+ });
377
+ handler.on("GetDestination", function wphSetupGetDestination(data) {
378
+ return pdfManager.ensureCatalog("getDestination", [data.id]);
379
+ });
380
+ handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
381
+ return pdfManager.ensureCatalog("pageLabels");
382
+ });
383
+ handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
384
+ return pdfManager.ensureCatalog("pageLayout");
461
385
  });
462
- handler.on('GetDestination', function wphSetupGetDestination(data) {
463
- return pdfManager.ensureCatalog('getDestination', [data.id]);
386
+ handler.on("GetPageMode", function wphSetupGetPageMode(data) {
387
+ return pdfManager.ensureCatalog("pageMode");
464
388
  });
465
- handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
466
- return pdfManager.ensureCatalog('pageLabels');
389
+ handler.on("GetViewerPreferences", function (data) {
390
+ return pdfManager.ensureCatalog("viewerPreferences");
467
391
  });
468
- handler.on('GetPageMode', function wphSetupGetPageMode(data) {
469
- return pdfManager.ensureCatalog('pageMode');
392
+ handler.on("GetOpenAction", function (data) {
393
+ return pdfManager.ensureCatalog("openAction");
470
394
  });
471
- handler.on('GetAttachments', function wphSetupGetAttachments(data) {
472
- return pdfManager.ensureCatalog('attachments');
395
+ handler.on("GetAttachments", function wphSetupGetAttachments(data) {
396
+ return pdfManager.ensureCatalog("attachments");
473
397
  });
474
- handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {
475
- return pdfManager.ensureCatalog('javaScript');
398
+ handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
399
+ return pdfManager.ensureCatalog("javaScript");
476
400
  });
477
- handler.on('GetOutline', function wphSetupGetOutline(data) {
478
- return pdfManager.ensureCatalog('documentOutline');
401
+ handler.on("GetOutline", function wphSetupGetOutline(data) {
402
+ return pdfManager.ensureCatalog("documentOutline");
479
403
  });
480
- handler.on('GetPermissions', function (data) {
481
- return pdfManager.ensureCatalog('permissions');
404
+ handler.on("GetPermissions", function (data) {
405
+ return pdfManager.ensureCatalog("permissions");
482
406
  });
483
- handler.on('GetMetadata', function wphSetupGetMetadata(data) {
484
- return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);
407
+ handler.on("GetMetadata", function wphSetupGetMetadata(data) {
408
+ return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
485
409
  });
486
- handler.on('GetData', function wphSetupGetData(data) {
410
+ handler.on("GetData", function wphSetupGetData(data) {
487
411
  pdfManager.requestLoadedStream();
488
412
  return pdfManager.onLoadedStream().then(function (stream) {
489
413
  return stream.bytes;
490
414
  });
491
415
  });
492
- handler.on('GetStats', function wphSetupGetStats(data) {
416
+ handler.on("GetStats", function wphSetupGetStats(data) {
493
417
  return pdfManager.pdfDocument.xref.stats;
494
418
  });
495
- handler.on('GetAnnotations', function (_ref7) {
496
- var pageIndex = _ref7.pageIndex,
497
- intent = _ref7.intent;
498
-
419
+ handler.on("GetAnnotations", function ({
420
+ pageIndex,
421
+ intent
422
+ }) {
499
423
  return pdfManager.getPage(pageIndex).then(function (page) {
500
424
  return page.getAnnotationsData(intent);
501
425
  });
502
426
  });
503
- handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
427
+ handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
504
428
  var pageIndex = data.pageIndex;
505
429
  pdfManager.getPage(pageIndex).then(function (page) {
506
- var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);
430
+ var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
507
431
  startWorkerTask(task);
508
- var pageNum = pageIndex + 1;
509
- var start = Date.now();
432
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
510
433
  page.getOperatorList({
511
- handler: handler,
512
- task: task,
434
+ handler,
435
+ sink,
436
+ task,
513
437
  intent: data.intent,
514
438
  renderInteractiveForms: data.renderInteractiveForms
515
- }).then(function (operatorList) {
439
+ }).then(function (operatorListInfo) {
516
440
  finishWorkerTask(task);
517
- (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
518
- }, function (e) {
441
+
442
+ if (start) {
443
+ (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
444
+ }
445
+
446
+ sink.close();
447
+ }, function (reason) {
519
448
  finishWorkerTask(task);
449
+
520
450
  if (task.terminated) {
521
451
  return;
522
452
  }
523
- handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });
524
- var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
525
- var wrappedException;
526
- if (typeof e === 'string') {
527
- wrappedException = {
528
- message: e,
529
- stack: minimumStackMessage
530
- };
531
- } else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') {
532
- wrappedException = {
533
- message: e.message || e.toString(),
534
- stack: e.stack || minimumStackMessage
535
- };
536
- } else {
537
- wrappedException = {
538
- message: 'Unknown exception type: ' + (typeof e === 'undefined' ? 'undefined' : _typeof(e)),
539
- stack: minimumStackMessage
540
- };
541
- }
542
- handler.send('PageError', {
543
- pageNum: pageNum,
544
- error: wrappedException,
545
- intent: data.intent
453
+
454
+ handler.send("UnsupportedFeature", {
455
+ featureId: _util.UNSUPPORTED_FEATURES.unknown
546
456
  });
457
+ sink.error(reason);
547
458
  });
548
459
  });
549
460
  }, this);
550
- handler.on('GetTextContent', function wphExtractText(data, sink) {
461
+ handler.on("GetTextContent", function wphExtractText(data, sink) {
551
462
  var pageIndex = data.pageIndex;
463
+
552
464
  sink.onPull = function (desiredSize) {};
465
+
553
466
  sink.onCancel = function (reason) {};
467
+
554
468
  pdfManager.getPage(pageIndex).then(function (page) {
555
- var task = new WorkerTask('GetTextContent: page ' + pageIndex);
469
+ var task = new WorkerTask("GetTextContent: page " + pageIndex);
556
470
  startWorkerTask(task);
557
- var pageNum = pageIndex + 1;
558
- var start = Date.now();
471
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
559
472
  page.extractTextContent({
560
- handler: handler,
561
- task: task,
562
- sink: sink,
473
+ handler,
474
+ task,
475
+ sink,
563
476
  normalizeWhitespace: data.normalizeWhitespace,
564
477
  combineTextItems: data.combineTextItems
565
478
  }).then(function () {
566
479
  finishWorkerTask(task);
567
- (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');
480
+
481
+ if (start) {
482
+ (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
483
+ }
484
+
568
485
  sink.close();
569
486
  }, function (reason) {
570
487
  finishWorkerTask(task);
488
+
571
489
  if (task.terminated) {
572
490
  return;
573
491
  }
492
+
574
493
  sink.error(reason);
575
- throw reason;
576
494
  });
577
495
  });
578
496
  });
579
- handler.on('Cleanup', function wphCleanup(data) {
497
+ handler.on("FontFallback", function (data) {
498
+ return pdfManager.fontFallback(data.id, handler);
499
+ });
500
+ handler.on("Cleanup", function wphCleanup(data) {
580
501
  return pdfManager.cleanup();
581
502
  });
582
- handler.on('Terminate', function wphTerminate(data) {
503
+ handler.on("Terminate", function wphTerminate(data) {
583
504
  terminated = true;
505
+ const waitOn = [];
506
+
584
507
  if (pdfManager) {
585
- pdfManager.terminate();
508
+ pdfManager.terminate(new _util.AbortException("Worker was terminated."));
509
+ const cleanupPromise = pdfManager.cleanup();
510
+ waitOn.push(cleanupPromise);
586
511
  pdfManager = null;
512
+ } else {
513
+ (0, _primitives.clearPrimitiveCaches)();
587
514
  }
515
+
588
516
  if (cancelXHRs) {
589
- cancelXHRs();
517
+ cancelXHRs(new _util.AbortException("Worker was terminated."));
590
518
  }
591
- var waitOn = [];
519
+
592
520
  WorkerTasks.forEach(function (task) {
593
521
  waitOn.push(task.finished);
594
522
  task.terminate();
@@ -598,23 +526,26 @@ var WorkerMessageHandler = {
598
526
  handler = null;
599
527
  });
600
528
  });
601
- handler.on('Ready', function wphReady(data) {
529
+ handler.on("Ready", function wphReady(data) {
602
530
  setupDoc(docParams);
603
531
  docParams = null;
604
532
  });
605
533
  return workerHandlerName;
606
534
  },
607
- initializeFromPort: function initializeFromPort(port) {
608
- var handler = new _message_handler.MessageHandler('worker', 'main', port);
535
+
536
+ initializeFromPort(port) {
537
+ var handler = new _message_handler.MessageHandler("worker", "main", port);
609
538
  WorkerMessageHandler.setup(handler, port);
610
- handler.send('ready', null);
539
+ handler.send("ready", null);
611
540
  }
541
+
612
542
  };
543
+ exports.WorkerMessageHandler = WorkerMessageHandler;
544
+
613
545
  function isMessagePort(maybePort) {
614
- return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
546
+ return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
615
547
  }
616
- if (typeof window === 'undefined' && !(0, _is_node2.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
548
+
549
+ if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
617
550
  WorkerMessageHandler.initializeFromPort(self);
618
- }
619
- exports.WorkerTask = WorkerTask;
620
- exports.WorkerMessageHandler = WorkerMessageHandler;
551
+ }