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