pdfjs-dist 2.0.487 → 2.1.266

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