pdfjs-dist 2.0.489 → 2.2.228

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