pdfjs-dist 2.0.550 → 2.3.200

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