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,25 +19,86 @@
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.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;
27
+ exports.arrayByteLength = arrayByteLength;
28
+ exports.arraysToBytes = arraysToBytes;
29
+ exports.assert = assert;
30
+ exports.bytesToString = bytesToString;
31
+ exports.createPromiseCapability = createPromiseCapability;
32
+ exports.getVerbosityLevel = getVerbosityLevel;
33
+ exports.info = info;
34
+ exports.isArrayBuffer = isArrayBuffer;
35
+ exports.isArrayEqual = isArrayEqual;
36
+ exports.isBool = isBool;
37
+ exports.isEmptyObj = isEmptyObj;
38
+ exports.isNum = isNum;
39
+ exports.isString = isString;
40
+ exports.isSpace = isSpace;
41
+ exports.isSameOrigin = isSameOrigin;
42
+ exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
43
+ exports.isLittleEndian = isLittleEndian;
44
+ exports.isEvalSupported = isEvalSupported;
45
+ exports.log2 = log2;
46
+ exports.readInt8 = readInt8;
47
+ exports.readUint16 = readUint16;
48
+ exports.readUint32 = readUint32;
49
+ exports.removeNullCharacters = removeNullCharacters;
50
+ exports.setVerbosityLevel = setVerbosityLevel;
51
+ exports.shadow = shadow;
52
+ exports.string32 = string32;
53
+ exports.stringToBytes = stringToBytes;
54
+ exports.stringToPDFString = stringToPDFString;
55
+ exports.stringToUTF8String = stringToUTF8String;
56
+ exports.utf8StringToString = utf8StringToString;
57
+ exports.warn = warn;
58
+ exports.unreachable = unreachable;
59
+ Object.defineProperty(exports, "ReadableStream", {
60
+ enumerable: true,
61
+ get: function get() {
62
+ return _streams_polyfill.ReadableStream;
63
+ }
64
+ });
65
+ Object.defineProperty(exports, "URL", {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _url_polyfill.URL;
69
+ }
70
+ });
71
+ exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0;
72
+
73
+ require("./compatibility");
28
74
 
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; };
75
+ var _streams_polyfill = require("./streams_polyfill");
30
76
 
31
- require('./compatibility');
77
+ var _url_polyfill = require("./url_polyfill");
32
78
 
33
- var _streams_polyfill = require('./streams_polyfill');
79
+ 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); }
34
80
 
81
+ var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
82
+ exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
35
83
  var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
84
+ exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
36
85
  var NativeImageDecoding = {
37
86
  NONE: 'none',
38
87
  DECODE: 'decode',
39
88
  DISPLAY: 'display'
40
89
  };
90
+ exports.NativeImageDecoding = NativeImageDecoding;
91
+ var PermissionFlag = {
92
+ PRINT: 0x04,
93
+ MODIFY_CONTENTS: 0x08,
94
+ COPY: 0x10,
95
+ MODIFY_ANNOTATIONS: 0x20,
96
+ FILL_INTERACTIVE_FORMS: 0x100,
97
+ COPY_FOR_ACCESSIBILITY: 0x200,
98
+ ASSEMBLE: 0x400,
99
+ PRINT_HIGH_QUALITY: 0x800
100
+ };
101
+ exports.PermissionFlag = PermissionFlag;
41
102
  var TextRenderingMode = {
42
103
  FILL: 0,
43
104
  STROKE: 1,
@@ -50,11 +111,13 @@ var TextRenderingMode = {
50
111
  FILL_STROKE_MASK: 3,
51
112
  ADD_TO_PATH_FLAG: 4
52
113
  };
114
+ exports.TextRenderingMode = TextRenderingMode;
53
115
  var ImageKind = {
54
116
  GRAYSCALE_1BPP: 1,
55
117
  RGB_24BPP: 2,
56
118
  RGBA_32BPP: 3
57
119
  };
120
+ exports.ImageKind = ImageKind;
58
121
  var AnnotationType = {
59
122
  TEXT: 1,
60
123
  LINK: 2,
@@ -83,6 +146,7 @@ var AnnotationType = {
83
146
  THREED: 25,
84
147
  REDACT: 26
85
148
  };
149
+ exports.AnnotationType = AnnotationType;
86
150
  var AnnotationFlag = {
87
151
  INVISIBLE: 0x01,
88
152
  HIDDEN: 0x02,
@@ -95,6 +159,7 @@ var AnnotationFlag = {
95
159
  TOGGLENOVIEW: 0x100,
96
160
  LOCKEDCONTENTS: 0x200
97
161
  };
162
+ exports.AnnotationFlag = AnnotationFlag;
98
163
  var AnnotationFieldFlag = {
99
164
  READONLY: 0x0000001,
100
165
  REQUIRED: 0x0000002,
@@ -116,6 +181,7 @@ var AnnotationFieldFlag = {
116
181
  RADIOSINUNISON: 0x2000000,
117
182
  COMMITONSELCHANGE: 0x4000000
118
183
  };
184
+ exports.AnnotationFieldFlag = AnnotationFieldFlag;
119
185
  var AnnotationBorderStyleType = {
120
186
  SOLID: 1,
121
187
  DASHED: 2,
@@ -123,6 +189,7 @@ var AnnotationBorderStyleType = {
123
189
  INSET: 4,
124
190
  UNDERLINE: 5
125
191
  };
192
+ exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
126
193
  var StreamType = {
127
194
  UNKNOWN: 0,
128
195
  FLATE: 1,
@@ -135,6 +202,7 @@ var StreamType = {
135
202
  CCF: 8,
136
203
  RL: 9
137
204
  };
205
+ exports.StreamType = StreamType;
138
206
  var FontType = {
139
207
  UNKNOWN: 0,
140
208
  TYPE1: 1,
@@ -148,16 +216,19 @@ var FontType = {
148
216
  TYPE0: 9,
149
217
  MMTYPE1: 10
150
218
  };
219
+ exports.FontType = FontType;
151
220
  var VerbosityLevel = {
152
221
  ERRORS: 0,
153
222
  WARNINGS: 1,
154
223
  INFOS: 5
155
224
  };
225
+ exports.VerbosityLevel = VerbosityLevel;
156
226
  var CMapCompressionType = {
157
227
  NONE: 0,
158
228
  BINARY: 1,
159
229
  STREAM: 2
160
230
  };
231
+ exports.CMapCompressionType = CMapCompressionType;
161
232
  var OPS = {
162
233
  dependency: 1,
163
234
  setLineWidth: 2,
@@ -251,60 +322,75 @@ var OPS = {
251
322
  paintSolidColorImageMask: 90,
252
323
  constructPath: 91
253
324
  };
325
+ exports.OPS = OPS;
326
+ var UNSUPPORTED_FEATURES = {
327
+ unknown: 'unknown',
328
+ forms: 'forms',
329
+ javaScript: 'javaScript',
330
+ smask: 'smask',
331
+ shadingPattern: 'shadingPattern',
332
+ font: 'font'
333
+ };
334
+ exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
335
+ var PasswordResponses = {
336
+ NEED_PASSWORD: 1,
337
+ INCORRECT_PASSWORD: 2
338
+ };
339
+ exports.PasswordResponses = PasswordResponses;
254
340
  var verbosity = VerbosityLevel.WARNINGS;
341
+
255
342
  function setVerbosityLevel(level) {
256
343
  if (Number.isInteger(level)) {
257
344
  verbosity = level;
258
345
  }
259
346
  }
347
+
260
348
  function getVerbosityLevel() {
261
349
  return verbosity;
262
350
  }
351
+
263
352
  function info(msg) {
264
353
  if (verbosity >= VerbosityLevel.INFOS) {
265
354
  console.log('Info: ' + msg);
266
355
  }
267
356
  }
357
+
268
358
  function warn(msg) {
269
359
  if (verbosity >= VerbosityLevel.WARNINGS) {
270
360
  console.log('Warning: ' + msg);
271
361
  }
272
362
  }
273
- function deprecated(details) {
274
- console.log('Deprecated API usage: ' + details);
275
- }
363
+
276
364
  function unreachable(msg) {
277
365
  throw new Error(msg);
278
366
  }
367
+
279
368
  function assert(cond, msg) {
280
369
  if (!cond) {
281
370
  unreachable(msg);
282
371
  }
283
372
  }
284
- var UNSUPPORTED_FEATURES = {
285
- unknown: 'unknown',
286
- forms: 'forms',
287
- javaScript: 'javaScript',
288
- smask: 'smask',
289
- shadingPattern: 'shadingPattern',
290
- font: 'font'
291
- };
373
+
292
374
  function isSameOrigin(baseUrl, otherUrl) {
293
375
  try {
294
- var base = new URL(baseUrl);
376
+ var base = new _url_polyfill.URL(baseUrl);
377
+
295
378
  if (!base.origin || base.origin === 'null') {
296
379
  return false;
297
380
  }
298
381
  } catch (e) {
299
382
  return false;
300
383
  }
301
- var other = new URL(otherUrl, base);
384
+
385
+ var other = new _url_polyfill.URL(otherUrl, base);
302
386
  return base.origin === other.origin;
303
387
  }
304
- function isValidProtocol(url) {
388
+
389
+ function _isValidProtocol(url) {
305
390
  if (!url) {
306
391
  return false;
307
392
  }
393
+
308
394
  switch (url.protocol) {
309
395
  case 'http:':
310
396
  case 'https:':
@@ -312,22 +398,28 @@ function isValidProtocol(url) {
312
398
  case 'mailto:':
313
399
  case 'tel:':
314
400
  return true;
401
+
315
402
  default:
316
403
  return false;
317
404
  }
318
405
  }
406
+
319
407
  function createValidAbsoluteUrl(url, baseUrl) {
320
408
  if (!url) {
321
409
  return null;
322
410
  }
411
+
323
412
  try {
324
- var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
325
- if (isValidProtocol(absoluteUrl)) {
413
+ var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);
414
+
415
+ if (_isValidProtocol(absoluteUrl)) {
326
416
  return absoluteUrl;
327
417
  }
328
418
  } catch (ex) {}
419
+
329
420
  return null;
330
421
  }
422
+
331
423
  function shadow(obj, prop, value) {
332
424
  Object.defineProperty(obj, prop, {
333
425
  value: value,
@@ -337,172 +429,174 @@ function shadow(obj, prop, value) {
337
429
  });
338
430
  return value;
339
431
  }
340
- function getLookupTableFactory(initializer) {
341
- var lookup;
342
- return function () {
343
- if (initializer) {
344
- lookup = Object.create(null);
345
- initializer(lookup);
346
- initializer = null;
347
- }
348
- return lookup;
349
- };
350
- }
351
- var PasswordResponses = {
352
- NEED_PASSWORD: 1,
353
- INCORRECT_PASSWORD: 2
354
- };
432
+
355
433
  var PasswordException = function PasswordExceptionClosure() {
356
434
  function PasswordException(msg, code) {
357
435
  this.name = 'PasswordException';
358
436
  this.message = msg;
359
437
  this.code = code;
360
438
  }
439
+
361
440
  PasswordException.prototype = new Error();
362
441
  PasswordException.constructor = PasswordException;
363
442
  return PasswordException;
364
443
  }();
444
+
445
+ exports.PasswordException = PasswordException;
446
+
365
447
  var UnknownErrorException = function UnknownErrorExceptionClosure() {
366
448
  function UnknownErrorException(msg, details) {
367
449
  this.name = 'UnknownErrorException';
368
450
  this.message = msg;
369
451
  this.details = details;
370
452
  }
453
+
371
454
  UnknownErrorException.prototype = new Error();
372
455
  UnknownErrorException.constructor = UnknownErrorException;
373
456
  return UnknownErrorException;
374
457
  }();
458
+
459
+ exports.UnknownErrorException = UnknownErrorException;
460
+
375
461
  var InvalidPDFException = function InvalidPDFExceptionClosure() {
376
462
  function InvalidPDFException(msg) {
377
463
  this.name = 'InvalidPDFException';
378
464
  this.message = msg;
379
465
  }
466
+
380
467
  InvalidPDFException.prototype = new Error();
381
468
  InvalidPDFException.constructor = InvalidPDFException;
382
469
  return InvalidPDFException;
383
470
  }();
471
+
472
+ exports.InvalidPDFException = InvalidPDFException;
473
+
384
474
  var MissingPDFException = function MissingPDFExceptionClosure() {
385
475
  function MissingPDFException(msg) {
386
476
  this.name = 'MissingPDFException';
387
477
  this.message = msg;
388
478
  }
479
+
389
480
  MissingPDFException.prototype = new Error();
390
481
  MissingPDFException.constructor = MissingPDFException;
391
482
  return MissingPDFException;
392
483
  }();
484
+
485
+ exports.MissingPDFException = MissingPDFException;
486
+
393
487
  var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {
394
488
  function UnexpectedResponseException(msg, status) {
395
489
  this.name = 'UnexpectedResponseException';
396
490
  this.message = msg;
397
491
  this.status = status;
398
492
  }
493
+
399
494
  UnexpectedResponseException.prototype = new Error();
400
495
  UnexpectedResponseException.constructor = UnexpectedResponseException;
401
496
  return UnexpectedResponseException;
402
497
  }();
403
- var NotImplementedException = function NotImplementedExceptionClosure() {
404
- function NotImplementedException(msg) {
405
- this.message = msg;
406
- }
407
- NotImplementedException.prototype = new Error();
408
- NotImplementedException.prototype.name = 'NotImplementedException';
409
- NotImplementedException.constructor = NotImplementedException;
410
- return NotImplementedException;
411
- }();
412
- var MissingDataException = function MissingDataExceptionClosure() {
413
- function MissingDataException(begin, end) {
414
- this.begin = begin;
415
- this.end = end;
416
- this.message = 'Missing data [' + begin + ', ' + end + ')';
417
- }
418
- MissingDataException.prototype = new Error();
419
- MissingDataException.prototype.name = 'MissingDataException';
420
- MissingDataException.constructor = MissingDataException;
421
- return MissingDataException;
422
- }();
423
- var XRefParseException = function XRefParseExceptionClosure() {
424
- function XRefParseException(msg) {
425
- this.message = msg;
426
- }
427
- XRefParseException.prototype = new Error();
428
- XRefParseException.prototype.name = 'XRefParseException';
429
- XRefParseException.constructor = XRefParseException;
430
- return XRefParseException;
431
- }();
498
+
499
+ exports.UnexpectedResponseException = UnexpectedResponseException;
500
+
432
501
  var FormatError = function FormatErrorClosure() {
433
502
  function FormatError(msg) {
434
503
  this.message = msg;
435
504
  }
505
+
436
506
  FormatError.prototype = new Error();
437
507
  FormatError.prototype.name = 'FormatError';
438
508
  FormatError.constructor = FormatError;
439
509
  return FormatError;
440
510
  }();
511
+
512
+ exports.FormatError = FormatError;
513
+
441
514
  var AbortException = function AbortExceptionClosure() {
442
515
  function AbortException(msg) {
443
516
  this.name = 'AbortException';
444
517
  this.message = msg;
445
518
  }
519
+
446
520
  AbortException.prototype = new Error();
447
521
  AbortException.constructor = AbortException;
448
522
  return AbortException;
449
523
  }();
524
+
525
+ exports.AbortException = AbortException;
450
526
  var NullCharactersRegExp = /\x00/g;
527
+
451
528
  function removeNullCharacters(str) {
452
529
  if (typeof str !== 'string') {
453
530
  warn('The argument for removeNullCharacters must be a string.');
454
531
  return str;
455
532
  }
533
+
456
534
  return str.replace(NullCharactersRegExp, '');
457
535
  }
536
+
458
537
  function bytesToString(bytes) {
459
- assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');
538
+ assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');
460
539
  var length = bytes.length;
461
540
  var MAX_ARGUMENT_COUNT = 8192;
541
+
462
542
  if (length < MAX_ARGUMENT_COUNT) {
463
543
  return String.fromCharCode.apply(null, bytes);
464
544
  }
545
+
465
546
  var strBuf = [];
547
+
466
548
  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
467
549
  var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
468
550
  var chunk = bytes.subarray(i, chunkEnd);
469
551
  strBuf.push(String.fromCharCode.apply(null, chunk));
470
552
  }
553
+
471
554
  return strBuf.join('');
472
555
  }
556
+
473
557
  function stringToBytes(str) {
474
558
  assert(typeof str === 'string', 'Invalid argument for stringToBytes');
475
559
  var length = str.length;
476
560
  var bytes = new Uint8Array(length);
561
+
477
562
  for (var i = 0; i < length; ++i) {
478
563
  bytes[i] = str.charCodeAt(i) & 0xFF;
479
564
  }
565
+
480
566
  return bytes;
481
567
  }
568
+
482
569
  function arrayByteLength(arr) {
483
570
  if (arr.length !== undefined) {
484
571
  return arr.length;
485
572
  }
573
+
486
574
  assert(arr.byteLength !== undefined);
487
575
  return arr.byteLength;
488
576
  }
577
+
489
578
  function arraysToBytes(arr) {
490
579
  if (arr.length === 1 && arr[0] instanceof Uint8Array) {
491
580
  return arr[0];
492
581
  }
582
+
493
583
  var resultLength = 0;
494
584
  var i,
495
585
  ii = arr.length;
496
586
  var item, itemLength;
587
+
497
588
  for (i = 0; i < ii; i++) {
498
589
  item = arr[i];
499
590
  itemLength = arrayByteLength(item);
500
591
  resultLength += itemLength;
501
592
  }
593
+
502
594
  var pos = 0;
503
595
  var data = new Uint8Array(resultLength);
596
+
504
597
  for (i = 0; i < ii; i++) {
505
598
  item = arr[i];
599
+
506
600
  if (!(item instanceof Uint8Array)) {
507
601
  if (typeof item === 'string') {
508
602
  item = stringToBytes(item);
@@ -510,36 +604,46 @@ function arraysToBytes(arr) {
510
604
  item = new Uint8Array(item);
511
605
  }
512
606
  }
607
+
513
608
  itemLength = item.byteLength;
514
609
  data.set(item, pos);
515
610
  pos += itemLength;
516
611
  }
612
+
517
613
  return data;
518
614
  }
615
+
519
616
  function string32(value) {
520
617
  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
521
618
  }
619
+
522
620
  function log2(x) {
523
621
  if (x <= 0) {
524
622
  return 0;
525
623
  }
624
+
526
625
  return Math.ceil(Math.log2(x));
527
626
  }
627
+
528
628
  function readInt8(data, start) {
529
629
  return data[start] << 24 >> 24;
530
630
  }
631
+
531
632
  function readUint16(data, offset) {
532
633
  return data[offset] << 8 | data[offset + 1];
533
634
  }
635
+
534
636
  function readUint32(data, offset) {
535
637
  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;
536
638
  }
639
+
537
640
  function isLittleEndian() {
538
641
  var buffer8 = new Uint8Array(4);
539
642
  buffer8[0] = 1;
540
643
  var view32 = new Uint32Array(buffer8.buffer, 0, 1);
541
644
  return view32[0] === 1;
542
645
  }
646
+
543
647
  function isEvalSupported() {
544
648
  try {
545
649
  new Function('');
@@ -548,60 +652,36 @@ function isEvalSupported() {
548
652
  return false;
549
653
  }
550
654
  }
551
- function getInheritableProperty(_ref) {
552
- var dict = _ref.dict,
553
- key = _ref.key,
554
- _ref$getArray = _ref.getArray,
555
- getArray = _ref$getArray === undefined ? false : _ref$getArray,
556
- _ref$stopWhenFound = _ref.stopWhenFound,
557
- stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound;
558
-
559
- var LOOP_LIMIT = 100;
560
- var loopCount = 0;
561
- var values = void 0;
562
- while (dict) {
563
- var value = getArray ? dict.getArray(key) : dict.get(key);
564
- if (value !== undefined) {
565
- if (stopWhenFound) {
566
- return value;
567
- }
568
- if (!values) {
569
- values = [];
570
- }
571
- values.push(value);
572
- }
573
- if (++loopCount > LOOP_LIMIT) {
574
- warn('getInheritableProperty: maximum loop count exceeded for "' + key + '"');
575
- break;
576
- }
577
- dict = dict.get('Parent');
578
- }
579
- return values;
580
- }
581
- var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
655
+
582
656
  var Util = function UtilClosure() {
583
657
  function Util() {}
658
+
584
659
  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
660
+
585
661
  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
586
662
  rgbBuf[1] = r;
587
663
  rgbBuf[3] = g;
588
664
  rgbBuf[5] = b;
589
665
  return rgbBuf.join('');
590
666
  };
667
+
591
668
  Util.transform = function Util_transform(m1, m2) {
592
669
  return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
593
670
  };
671
+
594
672
  Util.applyTransform = function Util_applyTransform(p, m) {
595
673
  var xt = p[0] * m[0] + p[1] * m[2] + m[4];
596
674
  var yt = p[0] * m[1] + p[1] * m[3] + m[5];
597
675
  return [xt, yt];
598
676
  };
677
+
599
678
  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
600
679
  var d = m[0] * m[3] - m[1] * m[2];
601
680
  var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
602
681
  var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
603
682
  return [xt, yt];
604
683
  };
684
+
605
685
  Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {
606
686
  var p1 = Util.applyTransform(r, m);
607
687
  var p2 = Util.applyTransform(r.slice(2, 4), m);
@@ -609,13 +689,16 @@ var Util = function UtilClosure() {
609
689
  var p4 = Util.applyTransform([r[2], r[1]], m);
610
690
  return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
611
691
  };
692
+
612
693
  Util.inverseTransform = function Util_inverseTransform(m) {
613
694
  var d = m[0] * m[3] - m[1] * m[2];
614
695
  return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
615
696
  };
697
+
616
698
  Util.apply3dTransform = function Util_apply3dTransform(m, v) {
617
699
  return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];
618
700
  };
701
+
619
702
  Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {
620
703
  var transpose = [m[0], m[2], m[1], m[3]];
621
704
  var a = m[0] * transpose[0] + m[1] * transpose[2];
@@ -628,180 +711,62 @@ var Util = function UtilClosure() {
628
711
  var sy = first - second || 1;
629
712
  return [Math.sqrt(sx), Math.sqrt(sy)];
630
713
  };
714
+
631
715
  Util.normalizeRect = function Util_normalizeRect(rect) {
632
716
  var r = rect.slice(0);
717
+
633
718
  if (rect[0] > rect[2]) {
634
719
  r[0] = rect[2];
635
720
  r[2] = rect[0];
636
721
  }
722
+
637
723
  if (rect[1] > rect[3]) {
638
724
  r[1] = rect[3];
639
725
  r[3] = rect[1];
640
726
  }
727
+
641
728
  return r;
642
729
  };
730
+
643
731
  Util.intersect = function Util_intersect(rect1, rect2) {
644
732
  function compare(a, b) {
645
733
  return a - b;
646
734
  }
735
+
647
736
  var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
648
737
  orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
649
738
  result = [];
650
739
  rect1 = Util.normalizeRect(rect1);
651
740
  rect2 = Util.normalizeRect(rect2);
741
+
652
742
  if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
653
743
  result[0] = orderedX[1];
654
744
  result[2] = orderedX[2];
655
745
  } else {
656
746
  return false;
657
747
  }
748
+
658
749
  if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
659
750
  result[1] = orderedY[1];
660
751
  result[3] = orderedY[2];
661
752
  } else {
662
753
  return false;
663
754
  }
755
+
664
756
  return result;
665
757
  };
666
- var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
667
- Util.toRoman = function Util_toRoman(number, lowerCase) {
668
- assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');
669
- var pos,
670
- romanBuf = [];
671
- while (number >= 1000) {
672
- number -= 1000;
673
- romanBuf.push('M');
674
- }
675
- pos = number / 100 | 0;
676
- number %= 100;
677
- romanBuf.push(ROMAN_NUMBER_MAP[pos]);
678
- pos = number / 10 | 0;
679
- number %= 10;
680
- romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
681
- romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
682
- var romanStr = romanBuf.join('');
683
- return lowerCase ? romanStr.toLowerCase() : romanStr;
684
- };
685
- Util.appendToArray = function Util_appendToArray(arr1, arr2) {
686
- Array.prototype.push.apply(arr1, arr2);
687
- };
688
- Util.prependToArray = function Util_prependToArray(arr1, arr2) {
689
- Array.prototype.unshift.apply(arr1, arr2);
690
- };
691
- Util.extendObj = function extendObj(obj1, obj2) {
692
- for (var key in obj2) {
693
- obj1[key] = obj2[key];
694
- }
695
- };
696
- Util.inherit = function Util_inherit(sub, base, prototype) {
697
- sub.prototype = Object.create(base.prototype);
698
- sub.prototype.constructor = sub;
699
- for (var prop in prototype) {
700
- sub.prototype[prop] = prototype[prop];
701
- }
702
- };
703
- Util.loadScript = function Util_loadScript(src, callback) {
704
- var script = document.createElement('script');
705
- var loaded = false;
706
- script.setAttribute('src', src);
707
- if (callback) {
708
- script.onload = function () {
709
- if (!loaded) {
710
- callback();
711
- }
712
- loaded = true;
713
- };
714
- }
715
- document.getElementsByTagName('head')[0].appendChild(script);
716
- };
758
+
717
759
  return Util;
718
760
  }();
719
- var PageViewport = function PageViewportClosure() {
720
- function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {
721
- this.viewBox = viewBox;
722
- this.scale = scale;
723
- this.rotation = rotation;
724
- this.offsetX = offsetX;
725
- this.offsetY = offsetY;
726
- var centerX = (viewBox[2] + viewBox[0]) / 2;
727
- var centerY = (viewBox[3] + viewBox[1]) / 2;
728
- var rotateA, rotateB, rotateC, rotateD;
729
- rotation = rotation % 360;
730
- rotation = rotation < 0 ? rotation + 360 : rotation;
731
- switch (rotation) {
732
- case 180:
733
- rotateA = -1;
734
- rotateB = 0;
735
- rotateC = 0;
736
- rotateD = 1;
737
- break;
738
- case 90:
739
- rotateA = 0;
740
- rotateB = 1;
741
- rotateC = 1;
742
- rotateD = 0;
743
- break;
744
- case 270:
745
- rotateA = 0;
746
- rotateB = -1;
747
- rotateC = -1;
748
- rotateD = 0;
749
- break;
750
- default:
751
- rotateA = 1;
752
- rotateB = 0;
753
- rotateC = 0;
754
- rotateD = -1;
755
- break;
756
- }
757
- if (dontFlip) {
758
- rotateC = -rotateC;
759
- rotateD = -rotateD;
760
- }
761
- var offsetCanvasX, offsetCanvasY;
762
- var width, height;
763
- if (rotateA === 0) {
764
- offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
765
- offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
766
- width = Math.abs(viewBox[3] - viewBox[1]) * scale;
767
- height = Math.abs(viewBox[2] - viewBox[0]) * scale;
768
- } else {
769
- offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
770
- offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
771
- width = Math.abs(viewBox[2] - viewBox[0]) * scale;
772
- height = Math.abs(viewBox[3] - viewBox[1]) * scale;
773
- }
774
- this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
775
- this.width = width;
776
- this.height = height;
777
- this.fontScale = scale;
778
- }
779
- PageViewport.prototype = {
780
- clone: function PageViewPort_clone(args) {
781
- args = args || {};
782
- var scale = 'scale' in args ? args.scale : this.scale;
783
- var rotation = 'rotation' in args ? args.rotation : this.rotation;
784
- return new PageViewport(this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip);
785
- },
786
- convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {
787
- return Util.applyTransform([x, y], this.transform);
788
- },
789
- convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) {
790
- var tl = Util.applyTransform([rect[0], rect[1]], this.transform);
791
- var br = Util.applyTransform([rect[2], rect[3]], this.transform);
792
- return [tl[0], tl[1], br[0], br[1]];
793
- },
794
- convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {
795
- return Util.applyInverseTransform([x, y], this.transform);
796
- }
797
- };
798
- return PageViewport;
799
- }();
761
+
762
+ exports.Util = Util;
800
763
  var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];
764
+
801
765
  function stringToPDFString(str) {
802
766
  var i,
803
767
  n = str.length,
804
768
  strBuf = [];
769
+
805
770
  if (str[0] === '\xFE' && str[1] === '\xFF') {
806
771
  for (i = 2; i < n; i += 2) {
807
772
  strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
@@ -812,59 +777,92 @@ function stringToPDFString(str) {
812
777
  strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
813
778
  }
814
779
  }
780
+
815
781
  return strBuf.join('');
816
782
  }
783
+
817
784
  function stringToUTF8String(str) {
818
785
  return decodeURIComponent(escape(str));
819
786
  }
787
+
820
788
  function utf8StringToString(str) {
821
789
  return unescape(encodeURIComponent(str));
822
790
  }
791
+
823
792
  function isEmptyObj(obj) {
824
793
  for (var key in obj) {
825
794
  return false;
826
795
  }
796
+
827
797
  return true;
828
798
  }
799
+
829
800
  function isBool(v) {
830
801
  return typeof v === 'boolean';
831
802
  }
803
+
832
804
  function isNum(v) {
833
805
  return typeof v === 'number';
834
806
  }
807
+
835
808
  function isString(v) {
836
809
  return typeof v === 'string';
837
810
  }
811
+
838
812
  function isArrayBuffer(v) {
839
- return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;
813
+ return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;
840
814
  }
815
+
816
+ function isArrayEqual(arr1, arr2) {
817
+ if (arr1.length !== arr2.length) {
818
+ return false;
819
+ }
820
+
821
+ return arr1.every(function (element, index) {
822
+ return element === arr2[index];
823
+ });
824
+ }
825
+
841
826
  function isSpace(ch) {
842
827
  return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;
843
828
  }
829
+
844
830
  function createPromiseCapability() {
845
- var capability = {};
831
+ var capability = Object.create(null);
832
+ var isSettled = false;
833
+ Object.defineProperty(capability, 'settled', {
834
+ get: function get() {
835
+ return isSettled;
836
+ }
837
+ });
846
838
  capability.promise = new Promise(function (resolve, reject) {
847
- capability.resolve = resolve;
848
- capability.reject = reject;
839
+ capability.resolve = function (data) {
840
+ isSettled = true;
841
+ resolve(data);
842
+ };
843
+
844
+ capability.reject = function (reason) {
845
+ isSettled = true;
846
+ reject(reason);
847
+ };
849
848
  });
850
849
  return capability;
851
850
  }
852
- var createBlob = function createBlob(data, contentType) {
853
- if (typeof Blob !== 'undefined') {
854
- return new Blob([data], { type: contentType });
855
- }
856
- throw new Error('The "Blob" constructor is not supported.');
857
- };
851
+
858
852
  var createObjectURL = function createObjectURLClosure() {
859
853
  var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
860
854
  return function createObjectURL(data, contentType) {
861
855
  var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
862
856
 
863
- if (!forceDataSchema && URL.createObjectURL) {
864
- var blob = createBlob(data, contentType);
865
- return URL.createObjectURL(blob);
857
+ if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {
858
+ var blob = new Blob([data], {
859
+ type: contentType
860
+ });
861
+ return _url_polyfill.URL.createObjectURL(blob);
866
862
  }
863
+
867
864
  var buffer = 'data:' + contentType + ';base64,';
865
+
868
866
  for (var i = 0, ii = data.length; i < ii; i += 3) {
869
867
  var b1 = data[i] & 0xFF;
870
868
  var b2 = data[i + 1] & 0xFF;
@@ -875,474 +873,9 @@ var createObjectURL = function createObjectURLClosure() {
875
873
  var d4 = i + 2 < ii ? b3 & 0x3F : 64;
876
874
  buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
877
875
  }
876
+
878
877
  return buffer;
879
878
  };
880
879
  }();
881
- function resolveCall(fn, args) {
882
- var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
883
880
 
884
- if (!fn) {
885
- return Promise.resolve(undefined);
886
- }
887
- return new Promise(function (resolve, reject) {
888
- resolve(fn.apply(thisArg, args));
889
- });
890
- }
891
- function wrapReason(reason) {
892
- if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {
893
- return reason;
894
- }
895
- switch (reason.name) {
896
- case 'AbortException':
897
- return new AbortException(reason.message);
898
- case 'MissingPDFException':
899
- return new MissingPDFException(reason.message);
900
- case 'UnexpectedResponseException':
901
- return new UnexpectedResponseException(reason.message, reason.status);
902
- default:
903
- return new UnknownErrorException(reason.message, reason.details);
904
- }
905
- }
906
- function makeReasonSerializable(reason) {
907
- if (!(reason instanceof Error) || reason instanceof AbortException || reason instanceof MissingPDFException || reason instanceof UnexpectedResponseException || reason instanceof UnknownErrorException) {
908
- return reason;
909
- }
910
- return new UnknownErrorException(reason.message, reason.toString());
911
- }
912
- function resolveOrReject(capability, success, reason) {
913
- if (success) {
914
- capability.resolve();
915
- } else {
916
- capability.reject(reason);
917
- }
918
- }
919
- function finalize(promise) {
920
- return Promise.resolve(promise).catch(function () {});
921
- }
922
- function MessageHandler(sourceName, targetName, comObj) {
923
- var _this = this;
924
-
925
- this.sourceName = sourceName;
926
- this.targetName = targetName;
927
- this.comObj = comObj;
928
- this.callbackId = 1;
929
- this.streamId = 1;
930
- this.postMessageTransfers = true;
931
- this.streamSinks = Object.create(null);
932
- this.streamControllers = Object.create(null);
933
- var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
934
- var ah = this.actionHandler = Object.create(null);
935
- this._onComObjOnMessage = function (event) {
936
- var data = event.data;
937
- if (data.targetName !== _this.sourceName) {
938
- return;
939
- }
940
- if (data.stream) {
941
- _this._processStreamMessage(data);
942
- } else if (data.isReply) {
943
- var callbackId = data.callbackId;
944
- if (data.callbackId in callbacksCapabilities) {
945
- var callback = callbacksCapabilities[callbackId];
946
- delete callbacksCapabilities[callbackId];
947
- if ('error' in data) {
948
- callback.reject(wrapReason(data.error));
949
- } else {
950
- callback.resolve(data.data);
951
- }
952
- } else {
953
- throw new Error('Cannot resolve callback ' + callbackId);
954
- }
955
- } else if (data.action in ah) {
956
- var action = ah[data.action];
957
- if (data.callbackId) {
958
- var _sourceName = _this.sourceName;
959
- var _targetName = data.sourceName;
960
- Promise.resolve().then(function () {
961
- return action[0].call(action[1], data.data);
962
- }).then(function (result) {
963
- comObj.postMessage({
964
- sourceName: _sourceName,
965
- targetName: _targetName,
966
- isReply: true,
967
- callbackId: data.callbackId,
968
- data: result
969
- });
970
- }, function (reason) {
971
- comObj.postMessage({
972
- sourceName: _sourceName,
973
- targetName: _targetName,
974
- isReply: true,
975
- callbackId: data.callbackId,
976
- error: makeReasonSerializable(reason)
977
- });
978
- });
979
- } else if (data.streamId) {
980
- _this._createStreamSink(data);
981
- } else {
982
- action[0].call(action[1], data.data);
983
- }
984
- } else {
985
- throw new Error('Unknown action from worker: ' + data.action);
986
- }
987
- };
988
- comObj.addEventListener('message', this._onComObjOnMessage);
989
- }
990
- MessageHandler.prototype = {
991
- on: function on(actionName, handler, scope) {
992
- var ah = this.actionHandler;
993
- if (ah[actionName]) {
994
- throw new Error('There is already an actionName called "' + actionName + '"');
995
- }
996
- ah[actionName] = [handler, scope];
997
- },
998
- send: function send(actionName, data, transfers) {
999
- var message = {
1000
- sourceName: this.sourceName,
1001
- targetName: this.targetName,
1002
- action: actionName,
1003
- data: data
1004
- };
1005
- this.postMessage(message, transfers);
1006
- },
1007
- sendWithPromise: function sendWithPromise(actionName, data, transfers) {
1008
- var callbackId = this.callbackId++;
1009
- var message = {
1010
- sourceName: this.sourceName,
1011
- targetName: this.targetName,
1012
- action: actionName,
1013
- data: data,
1014
- callbackId: callbackId
1015
- };
1016
- var capability = createPromiseCapability();
1017
- this.callbacksCapabilities[callbackId] = capability;
1018
- try {
1019
- this.postMessage(message, transfers);
1020
- } catch (e) {
1021
- capability.reject(e);
1022
- }
1023
- return capability.promise;
1024
- },
1025
- sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {
1026
- var _this2 = this;
1027
-
1028
- var streamId = this.streamId++;
1029
- var sourceName = this.sourceName;
1030
- var targetName = this.targetName;
1031
- return new _streams_polyfill.ReadableStream({
1032
- start: function start(controller) {
1033
- var startCapability = createPromiseCapability();
1034
- _this2.streamControllers[streamId] = {
1035
- controller: controller,
1036
- startCall: startCapability,
1037
- isClosed: false
1038
- };
1039
- _this2.postMessage({
1040
- sourceName: sourceName,
1041
- targetName: targetName,
1042
- action: actionName,
1043
- streamId: streamId,
1044
- data: data,
1045
- desiredSize: controller.desiredSize
1046
- });
1047
- return startCapability.promise;
1048
- },
1049
- pull: function pull(controller) {
1050
- var pullCapability = createPromiseCapability();
1051
- _this2.streamControllers[streamId].pullCall = pullCapability;
1052
- _this2.postMessage({
1053
- sourceName: sourceName,
1054
- targetName: targetName,
1055
- stream: 'pull',
1056
- streamId: streamId,
1057
- desiredSize: controller.desiredSize
1058
- });
1059
- return pullCapability.promise;
1060
- },
1061
- cancel: function cancel(reason) {
1062
- var cancelCapability = createPromiseCapability();
1063
- _this2.streamControllers[streamId].cancelCall = cancelCapability;
1064
- _this2.streamControllers[streamId].isClosed = true;
1065
- _this2.postMessage({
1066
- sourceName: sourceName,
1067
- targetName: targetName,
1068
- stream: 'cancel',
1069
- reason: reason,
1070
- streamId: streamId
1071
- });
1072
- return cancelCapability.promise;
1073
- }
1074
- }, queueingStrategy);
1075
- },
1076
- _createStreamSink: function _createStreamSink(data) {
1077
- var _this3 = this;
1078
-
1079
- var self = this;
1080
- var action = this.actionHandler[data.action];
1081
- var streamId = data.streamId;
1082
- var desiredSize = data.desiredSize;
1083
- var sourceName = this.sourceName;
1084
- var targetName = data.sourceName;
1085
- var capability = createPromiseCapability();
1086
- var sendStreamRequest = function sendStreamRequest(_ref2) {
1087
- var stream = _ref2.stream,
1088
- chunk = _ref2.chunk,
1089
- transfers = _ref2.transfers,
1090
- success = _ref2.success,
1091
- reason = _ref2.reason;
1092
-
1093
- _this3.postMessage({
1094
- sourceName: sourceName,
1095
- targetName: targetName,
1096
- stream: stream,
1097
- streamId: streamId,
1098
- chunk: chunk,
1099
- success: success,
1100
- reason: reason
1101
- }, transfers);
1102
- };
1103
- var streamSink = {
1104
- enqueue: function enqueue(chunk) {
1105
- var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1106
- var transfers = arguments[2];
1107
-
1108
- if (this.isCancelled) {
1109
- return;
1110
- }
1111
- var lastDesiredSize = this.desiredSize;
1112
- this.desiredSize -= size;
1113
- if (lastDesiredSize > 0 && this.desiredSize <= 0) {
1114
- this.sinkCapability = createPromiseCapability();
1115
- this.ready = this.sinkCapability.promise;
1116
- }
1117
- sendStreamRequest({
1118
- stream: 'enqueue',
1119
- chunk: chunk,
1120
- transfers: transfers
1121
- });
1122
- },
1123
- close: function close() {
1124
- if (this.isCancelled) {
1125
- return;
1126
- }
1127
- this.isCancelled = true;
1128
- sendStreamRequest({ stream: 'close' });
1129
- delete self.streamSinks[streamId];
1130
- },
1131
- error: function error(reason) {
1132
- if (this.isCancelled) {
1133
- return;
1134
- }
1135
- this.isCancelled = true;
1136
- sendStreamRequest({
1137
- stream: 'error',
1138
- reason: reason
1139
- });
1140
- },
1141
-
1142
- sinkCapability: capability,
1143
- onPull: null,
1144
- onCancel: null,
1145
- isCancelled: false,
1146
- desiredSize: desiredSize,
1147
- ready: null
1148
- };
1149
- streamSink.sinkCapability.resolve();
1150
- streamSink.ready = streamSink.sinkCapability.promise;
1151
- this.streamSinks[streamId] = streamSink;
1152
- resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {
1153
- sendStreamRequest({
1154
- stream: 'start_complete',
1155
- success: true
1156
- });
1157
- }, function (reason) {
1158
- sendStreamRequest({
1159
- stream: 'start_complete',
1160
- success: false,
1161
- reason: reason
1162
- });
1163
- });
1164
- },
1165
- _processStreamMessage: function _processStreamMessage(data) {
1166
- var _this4 = this;
1167
-
1168
- var sourceName = this.sourceName;
1169
- var targetName = data.sourceName;
1170
- var streamId = data.streamId;
1171
- var sendStreamResponse = function sendStreamResponse(_ref3) {
1172
- var stream = _ref3.stream,
1173
- success = _ref3.success,
1174
- reason = _ref3.reason;
1175
-
1176
- _this4.comObj.postMessage({
1177
- sourceName: sourceName,
1178
- targetName: targetName,
1179
- stream: stream,
1180
- success: success,
1181
- streamId: streamId,
1182
- reason: reason
1183
- });
1184
- };
1185
- var deleteStreamController = function deleteStreamController() {
1186
- Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {
1187
- return capability && finalize(capability.promise);
1188
- })).then(function () {
1189
- delete _this4.streamControllers[data.streamId];
1190
- });
1191
- };
1192
- switch (data.stream) {
1193
- case 'start_complete':
1194
- resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));
1195
- break;
1196
- case 'pull_complete':
1197
- resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));
1198
- break;
1199
- case 'pull':
1200
- if (!this.streamSinks[data.streamId]) {
1201
- sendStreamResponse({
1202
- stream: 'pull_complete',
1203
- success: true
1204
- });
1205
- break;
1206
- }
1207
- if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {
1208
- this.streamSinks[data.streamId].sinkCapability.resolve();
1209
- }
1210
- this.streamSinks[data.streamId].desiredSize = data.desiredSize;
1211
- resolveCall(this.streamSinks[data.streamId].onPull).then(function () {
1212
- sendStreamResponse({
1213
- stream: 'pull_complete',
1214
- success: true
1215
- });
1216
- }, function (reason) {
1217
- sendStreamResponse({
1218
- stream: 'pull_complete',
1219
- success: false,
1220
- reason: reason
1221
- });
1222
- });
1223
- break;
1224
- case 'enqueue':
1225
- assert(this.streamControllers[data.streamId], 'enqueue should have stream controller');
1226
- if (!this.streamControllers[data.streamId].isClosed) {
1227
- this.streamControllers[data.streamId].controller.enqueue(data.chunk);
1228
- }
1229
- break;
1230
- case 'close':
1231
- assert(this.streamControllers[data.streamId], 'close should have stream controller');
1232
- if (this.streamControllers[data.streamId].isClosed) {
1233
- break;
1234
- }
1235
- this.streamControllers[data.streamId].isClosed = true;
1236
- this.streamControllers[data.streamId].controller.close();
1237
- deleteStreamController();
1238
- break;
1239
- case 'error':
1240
- assert(this.streamControllers[data.streamId], 'error should have stream controller');
1241
- this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));
1242
- deleteStreamController();
1243
- break;
1244
- case 'cancel_complete':
1245
- resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));
1246
- deleteStreamController();
1247
- break;
1248
- case 'cancel':
1249
- if (!this.streamSinks[data.streamId]) {
1250
- break;
1251
- }
1252
- resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {
1253
- sendStreamResponse({
1254
- stream: 'cancel_complete',
1255
- success: true
1256
- });
1257
- }, function (reason) {
1258
- sendStreamResponse({
1259
- stream: 'cancel_complete',
1260
- success: false,
1261
- reason: reason
1262
- });
1263
- });
1264
- this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));
1265
- this.streamSinks[data.streamId].isCancelled = true;
1266
- delete this.streamSinks[data.streamId];
1267
- break;
1268
- default:
1269
- throw new Error('Unexpected stream case');
1270
- }
1271
- },
1272
- postMessage: function postMessage(message, transfers) {
1273
- if (transfers && this.postMessageTransfers) {
1274
- this.comObj.postMessage(message, transfers);
1275
- } else {
1276
- this.comObj.postMessage(message);
1277
- }
1278
- },
1279
- destroy: function destroy() {
1280
- this.comObj.removeEventListener('message', this._onComObjOnMessage);
1281
- }
1282
- };
1283
- exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
1284
- exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
1285
- exports.OPS = OPS;
1286
- exports.VerbosityLevel = VerbosityLevel;
1287
- exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
1288
- exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
1289
- exports.AnnotationFieldFlag = AnnotationFieldFlag;
1290
- exports.AnnotationFlag = AnnotationFlag;
1291
- exports.AnnotationType = AnnotationType;
1292
- exports.FontType = FontType;
1293
- exports.ImageKind = ImageKind;
1294
- exports.CMapCompressionType = CMapCompressionType;
1295
- exports.AbortException = AbortException;
1296
- exports.InvalidPDFException = InvalidPDFException;
1297
- exports.MessageHandler = MessageHandler;
1298
- exports.MissingDataException = MissingDataException;
1299
- exports.MissingPDFException = MissingPDFException;
1300
- exports.NativeImageDecoding = NativeImageDecoding;
1301
- exports.NotImplementedException = NotImplementedException;
1302
- exports.PageViewport = PageViewport;
1303
- exports.PasswordException = PasswordException;
1304
- exports.PasswordResponses = PasswordResponses;
1305
- exports.StreamType = StreamType;
1306
- exports.TextRenderingMode = TextRenderingMode;
1307
- exports.UnexpectedResponseException = UnexpectedResponseException;
1308
- exports.UnknownErrorException = UnknownErrorException;
1309
- exports.Util = Util;
1310
- exports.XRefParseException = XRefParseException;
1311
- exports.FormatError = FormatError;
1312
- exports.arrayByteLength = arrayByteLength;
1313
- exports.arraysToBytes = arraysToBytes;
1314
- exports.assert = assert;
1315
- exports.bytesToString = bytesToString;
1316
- exports.createBlob = createBlob;
1317
- exports.createPromiseCapability = createPromiseCapability;
1318
- exports.createObjectURL = createObjectURL;
1319
- exports.deprecated = deprecated;
1320
- exports.getInheritableProperty = getInheritableProperty;
1321
- exports.getLookupTableFactory = getLookupTableFactory;
1322
- exports.getVerbosityLevel = getVerbosityLevel;
1323
- exports.info = info;
1324
- exports.isArrayBuffer = isArrayBuffer;
1325
- exports.isBool = isBool;
1326
- exports.isEmptyObj = isEmptyObj;
1327
- exports.isNum = isNum;
1328
- exports.isString = isString;
1329
- exports.isSpace = isSpace;
1330
- exports.isSameOrigin = isSameOrigin;
1331
- exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
1332
- exports.isLittleEndian = isLittleEndian;
1333
- exports.isEvalSupported = isEvalSupported;
1334
- exports.log2 = log2;
1335
- exports.readInt8 = readInt8;
1336
- exports.readUint16 = readUint16;
1337
- exports.readUint32 = readUint32;
1338
- exports.removeNullCharacters = removeNullCharacters;
1339
- exports.ReadableStream = _streams_polyfill.ReadableStream;
1340
- exports.setVerbosityLevel = setVerbosityLevel;
1341
- exports.shadow = shadow;
1342
- exports.string32 = string32;
1343
- exports.stringToBytes = stringToBytes;
1344
- exports.stringToPDFString = stringToPDFString;
1345
- exports.stringToUTF8String = stringToUTF8String;
1346
- exports.utf8StringToString = utf8StringToString;
1347
- exports.warn = warn;
1348
- exports.unreachable = unreachable;
881
+ exports.createObjectURL = createObjectURL;