pdfjs-dist 2.0.943 → 2.4.456

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 (192) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8286 -14230
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +57878 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -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 2018 Mozilla Foundation
5
+ * Copyright 2020 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,24 +19,24 @@
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
- var _glyphlist = require('../../core/glyphlist');
24
+ var _glyphlist = require("../../core/glyphlist.js");
25
25
 
26
- var _unicode = require('../../core/unicode');
26
+ var _unicode = require("../../core/unicode.js");
27
27
 
28
- describe('unicode', function () {
29
- describe('mapSpecialUnicodeValues', function () {
30
- it('should not re-map normal Unicode values', function () {
28
+ describe("unicode", function () {
29
+ describe("mapSpecialUnicodeValues", function () {
30
+ it("should not re-map normal Unicode values", function () {
31
31
  expect((0, _unicode.mapSpecialUnicodeValues)(0x0041)).toEqual(0x0041);
32
- expect((0, _unicode.mapSpecialUnicodeValues)(0xFB01)).toEqual(0xFB01);
32
+ expect((0, _unicode.mapSpecialUnicodeValues)(0xfb01)).toEqual(0xfb01);
33
33
  });
34
- it('should re-map special Unicode values', function () {
35
- expect((0, _unicode.mapSpecialUnicodeValues)(0xF8E9)).toEqual(0x00A9);
36
- expect((0, _unicode.mapSpecialUnicodeValues)(0xFFFF)).toEqual(0);
34
+ it("should re-map special Unicode values", function () {
35
+ expect((0, _unicode.mapSpecialUnicodeValues)(0xf8e9)).toEqual(0x00a9);
36
+ expect((0, _unicode.mapSpecialUnicodeValues)(0xffff)).toEqual(0);
37
37
  });
38
38
  });
39
- describe('getUnicodeForGlyph', function () {
39
+ describe("getUnicodeForGlyph", function () {
40
40
  var standardMap, dingbatsMap;
41
41
  beforeAll(function (done) {
42
42
  standardMap = (0, _glyphlist.getGlyphsUnicode)();
@@ -46,31 +46,31 @@ describe('unicode', function () {
46
46
  afterAll(function () {
47
47
  standardMap = dingbatsMap = null;
48
48
  });
49
- it('should get Unicode values for valid glyph names', function () {
50
- expect((0, _unicode.getUnicodeForGlyph)('A', standardMap)).toEqual(0x0041);
51
- expect((0, _unicode.getUnicodeForGlyph)('a1', dingbatsMap)).toEqual(0x2701);
49
+ it("should get Unicode values for valid glyph names", function () {
50
+ expect((0, _unicode.getUnicodeForGlyph)("A", standardMap)).toEqual(0x0041);
51
+ expect((0, _unicode.getUnicodeForGlyph)("a1", dingbatsMap)).toEqual(0x2701);
52
52
  });
53
- it('should recover Unicode values from uniXXXX/uXXXX{XX} glyph names', function () {
54
- expect((0, _unicode.getUnicodeForGlyph)('uni0041', standardMap)).toEqual(0x0041);
55
- expect((0, _unicode.getUnicodeForGlyph)('u0041', standardMap)).toEqual(0x0041);
56
- expect((0, _unicode.getUnicodeForGlyph)('uni2701', dingbatsMap)).toEqual(0x2701);
57
- expect((0, _unicode.getUnicodeForGlyph)('u2701', dingbatsMap)).toEqual(0x2701);
53
+ it("should recover Unicode values from uniXXXX/uXXXX{XX} glyph names", function () {
54
+ expect((0, _unicode.getUnicodeForGlyph)("uni0041", standardMap)).toEqual(0x0041);
55
+ expect((0, _unicode.getUnicodeForGlyph)("u0041", standardMap)).toEqual(0x0041);
56
+ expect((0, _unicode.getUnicodeForGlyph)("uni2701", dingbatsMap)).toEqual(0x2701);
57
+ expect((0, _unicode.getUnicodeForGlyph)("u2701", dingbatsMap)).toEqual(0x2701);
58
58
  });
59
- it('should not get Unicode values for invalid glyph names', function () {
60
- expect((0, _unicode.getUnicodeForGlyph)('Qwerty', standardMap)).toEqual(-1);
61
- expect((0, _unicode.getUnicodeForGlyph)('Qwerty', dingbatsMap)).toEqual(-1);
59
+ it("should not get Unicode values for invalid glyph names", function () {
60
+ expect((0, _unicode.getUnicodeForGlyph)("Qwerty", standardMap)).toEqual(-1);
61
+ expect((0, _unicode.getUnicodeForGlyph)("Qwerty", dingbatsMap)).toEqual(-1);
62
62
  });
63
63
  });
64
- describe('getUnicodeRangeFor', function () {
65
- it('should get correct Unicode range', function () {
64
+ describe("getUnicodeRangeFor", function () {
65
+ it("should get correct Unicode range", function () {
66
66
  expect((0, _unicode.getUnicodeRangeFor)(0x0041)).toEqual(0);
67
- expect((0, _unicode.getUnicodeRangeFor)(0xFB01)).toEqual(62);
67
+ expect((0, _unicode.getUnicodeRangeFor)(0xfb01)).toEqual(62);
68
68
  });
69
- it('should not get a Unicode range', function () {
70
- expect((0, _unicode.getUnicodeRangeFor)(0x05FF)).toEqual(-1);
69
+ it("should not get a Unicode range", function () {
70
+ expect((0, _unicode.getUnicodeRangeFor)(0x05ff)).toEqual(-1);
71
71
  });
72
72
  });
73
- describe('getNormalizedUnicodes', function () {
73
+ describe("getNormalizedUnicodes", function () {
74
74
  var NormalizedUnicodes;
75
75
  beforeAll(function (done) {
76
76
  NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();
@@ -79,22 +79,25 @@ describe('unicode', function () {
79
79
  afterAll(function () {
80
80
  NormalizedUnicodes = null;
81
81
  });
82
- it('should get normalized Unicode values for ligatures', function () {
83
- expect(NormalizedUnicodes['\uFB01']).toEqual('fi');
84
- expect(NormalizedUnicodes['\u0675']).toEqual('\u0627\u0674');
82
+ it("should get normalized Unicode values for ligatures", function () {
83
+ expect(NormalizedUnicodes["\uFB01"]).toEqual("fi");
84
+ expect(NormalizedUnicodes["\u0675"]).toEqual("\u0627\u0674");
85
85
  });
86
- it('should not normalize standard characters', function () {
87
- expect(NormalizedUnicodes['A']).toEqual(undefined);
86
+ it("should not normalize standard characters", function () {
87
+ expect(NormalizedUnicodes["A"]).toEqual(undefined);
88
88
  });
89
89
  });
90
- describe('reverseIfRtl', function () {
90
+ describe("reverseIfRtl", function () {
91
91
  var NormalizedUnicodes;
92
+
92
93
  function getGlyphUnicode(char) {
93
94
  if (NormalizedUnicodes[char] !== undefined) {
94
95
  return NormalizedUnicodes[char];
95
96
  }
97
+
96
98
  return char;
97
99
  }
100
+
98
101
  beforeAll(function (done) {
99
102
  NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();
100
103
  done();
@@ -102,17 +105,17 @@ describe('unicode', function () {
102
105
  afterAll(function () {
103
106
  NormalizedUnicodes = null;
104
107
  });
105
- it('should not reverse LTR characters', function () {
106
- var A = getGlyphUnicode('A');
107
- expect((0, _unicode.reverseIfRtl)(A)).toEqual('A');
108
- var fi = getGlyphUnicode('\uFB01');
109
- expect((0, _unicode.reverseIfRtl)(fi)).toEqual('fi');
110
- });
111
- it('should reverse RTL characters', function () {
112
- var heAlef = getGlyphUnicode('\u05D0');
113
- expect((0, _unicode.reverseIfRtl)(heAlef)).toEqual('\u05D0');
114
- var arAlef = getGlyphUnicode('\u0675');
115
- expect((0, _unicode.reverseIfRtl)(arAlef)).toEqual('\u0674\u0627');
108
+ it("should not reverse LTR characters", function () {
109
+ var A = getGlyphUnicode("A");
110
+ expect((0, _unicode.reverseIfRtl)(A)).toEqual("A");
111
+ var fi = getGlyphUnicode("\uFB01");
112
+ expect((0, _unicode.reverseIfRtl)(fi)).toEqual("fi");
113
+ });
114
+ it("should reverse RTL characters", function () {
115
+ var heAlef = getGlyphUnicode("\u05D0");
116
+ expect((0, _unicode.reverseIfRtl)(heAlef)).toEqual("\u05D0");
117
+ var arAlef = getGlyphUnicode("\u0675");
118
+ expect((0, _unicode.reverseIfRtl)(arAlef)).toEqual("\u0674\u0627");
116
119
  });
117
120
  });
118
121
  });
@@ -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 2018 Mozilla Foundation
5
+ * Copyright 2020 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,327 +19,223 @@
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
- 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; };
24
+ var _util = require("../../shared/util.js");
25
25
 
26
- var _util = require('../../shared/util');
27
-
28
- var _primitives = require('../../core/primitives');
29
-
30
- var _test_utils = require('./test_utils');
31
-
32
- describe('util', function () {
33
- describe('bytesToString', function () {
34
- it('handles non-array arguments', function () {
26
+ describe("util", function () {
27
+ describe("bytesToString", function () {
28
+ it("handles non-array arguments", function () {
35
29
  expect(function () {
36
30
  (0, _util.bytesToString)(null);
37
- }).toThrow(new Error('Invalid argument for bytesToString'));
31
+ }).toThrow(new Error("Invalid argument for bytesToString"));
38
32
  });
39
- it('handles array arguments with a length not exceeding the maximum', function () {
40
- expect((0, _util.bytesToString)(new Uint8Array([]))).toEqual('');
41
- expect((0, _util.bytesToString)(new Uint8Array([102, 111, 111]))).toEqual('foo');
33
+ it("handles array arguments with a length not exceeding the maximum", function () {
34
+ expect((0, _util.bytesToString)(new Uint8Array([]))).toEqual("");
35
+ expect((0, _util.bytesToString)(new Uint8Array([102, 111, 111]))).toEqual("foo");
42
36
  });
43
- it('handles array arguments with a length exceeding the maximum', function () {
44
- var length = 10000;
45
- var bytes = new Uint8Array(length);
46
- for (var i = 0; i < length; i++) {
47
- bytes[i] = 'a'.charCodeAt(0);
37
+ it("handles array arguments with a length exceeding the maximum", function () {
38
+ const length = 10000;
39
+ const bytes = new Uint8Array(length);
40
+
41
+ for (let i = 0; i < length; i++) {
42
+ bytes[i] = "a".charCodeAt(0);
48
43
  }
49
- var string = Array(length + 1).join('a');
44
+
45
+ const string = Array(length + 1).join("a");
50
46
  expect((0, _util.bytesToString)(bytes)).toEqual(string);
51
47
  });
52
48
  });
53
- describe('getInheritableProperty', function () {
54
- it('handles non-dictionary arguments', function () {
55
- expect((0, _util.getInheritableProperty)({
56
- dict: null,
57
- key: 'foo'
58
- })).toEqual(undefined);
59
- expect((0, _util.getInheritableProperty)({
60
- dict: undefined,
61
- key: 'foo'
62
- })).toEqual(undefined);
63
- });
64
- it('handles dictionaries that do not contain the property', function () {
65
- var emptyDict = new _primitives.Dict();
66
- expect((0, _util.getInheritableProperty)({
67
- dict: emptyDict,
68
- key: 'foo'
69
- })).toEqual(undefined);
70
- var filledDict = new _primitives.Dict();
71
- filledDict.set('bar', 'baz');
72
- expect((0, _util.getInheritableProperty)({
73
- dict: filledDict,
74
- key: 'foo'
75
- })).toEqual(undefined);
76
- });
77
- it('fetches the property if it is not inherited', function () {
78
- var ref = new _primitives.Ref(10, 0);
79
- var xref = new _test_utils.XRefMock([{
80
- ref: ref,
81
- data: 'quux'
82
- }]);
83
- var dict = new _primitives.Dict(xref);
84
- dict.set('foo', 'bar');
85
- expect((0, _util.getInheritableProperty)({
86
- dict: dict,
87
- key: 'foo'
88
- })).toEqual('bar');
89
- dict.set('baz', ['qux', ref]);
90
- expect((0, _util.getInheritableProperty)({
91
- dict: dict,
92
- key: 'baz',
93
- getArray: true
94
- })).toEqual(['qux', 'quux']);
95
- });
96
- it('fetches the property if it is inherited and present on one level', function () {
97
- var ref = new _primitives.Ref(10, 0);
98
- var xref = new _test_utils.XRefMock([{
99
- ref: ref,
100
- data: 'quux'
101
- }]);
102
- var firstDict = new _primitives.Dict(xref);
103
- var secondDict = new _primitives.Dict(xref);
104
- firstDict.set('Parent', secondDict);
105
- secondDict.set('foo', 'bar');
106
- expect((0, _util.getInheritableProperty)({
107
- dict: firstDict,
108
- key: 'foo'
109
- })).toEqual('bar');
110
- secondDict.set('baz', ['qux', ref]);
111
- expect((0, _util.getInheritableProperty)({
112
- dict: firstDict,
113
- key: 'baz',
114
- getArray: true
115
- })).toEqual(['qux', 'quux']);
116
- });
117
- it('fetches the property if it is inherited and present on multiple levels', function () {
118
- var ref = new _primitives.Ref(10, 0);
119
- var xref = new _test_utils.XRefMock([{
120
- ref: ref,
121
- data: 'quux'
122
- }]);
123
- var firstDict = new _primitives.Dict(xref);
124
- var secondDict = new _primitives.Dict(xref);
125
- firstDict.set('Parent', secondDict);
126
- firstDict.set('foo', 'bar1');
127
- secondDict.set('foo', 'bar2');
128
- expect((0, _util.getInheritableProperty)({
129
- dict: firstDict,
130
- key: 'foo'
131
- })).toEqual('bar1');
132
- expect((0, _util.getInheritableProperty)({
133
- dict: firstDict,
134
- key: 'foo',
135
- getArray: false,
136
- stopWhenFound: false
137
- })).toEqual(['bar1', 'bar2']);
138
- firstDict.set('baz', ['qux1', ref]);
139
- secondDict.set('baz', ['qux2', ref]);
140
- expect((0, _util.getInheritableProperty)({
141
- dict: firstDict,
142
- key: 'baz',
143
- getArray: true,
144
- stopWhenFound: false
145
- })).toEqual([['qux1', 'quux'], ['qux2', 'quux']]);
146
- });
147
- it('stops searching when the loop limit is reached', function () {
148
- var dict = new _primitives.Dict();
149
- var currentDict = dict;
150
- var parentDict = null;
151
- for (var i = 0; i < 150; i++) {
152
- parentDict = new _primitives.Dict();
153
- currentDict.set('Parent', parentDict);
154
- currentDict = parentDict;
155
- }
156
- parentDict.set('foo', 'bar');
157
- expect((0, _util.getInheritableProperty)({
158
- dict: dict,
159
- key: 'foo'
160
- })).toEqual(undefined);
161
- dict.set('foo', 'baz');
162
- expect((0, _util.getInheritableProperty)({
163
- dict: dict,
164
- key: 'foo',
165
- getArray: false,
166
- stopWhenFound: false
167
- })).toEqual(['baz']);
168
- });
169
- });
170
- describe('isArrayBuffer', function () {
171
- it('handles array buffer values', function () {
49
+ describe("isArrayBuffer", function () {
50
+ it("handles array buffer values", function () {
172
51
  expect((0, _util.isArrayBuffer)(new ArrayBuffer(0))).toEqual(true);
173
52
  expect((0, _util.isArrayBuffer)(new Uint8Array(0))).toEqual(true);
174
53
  });
175
- it('handles non-array buffer values', function () {
176
- expect((0, _util.isArrayBuffer)('true')).toEqual(false);
54
+ it("handles non-array buffer values", function () {
55
+ expect((0, _util.isArrayBuffer)("true")).toEqual(false);
177
56
  expect((0, _util.isArrayBuffer)(1)).toEqual(false);
178
57
  expect((0, _util.isArrayBuffer)(null)).toEqual(false);
179
58
  expect((0, _util.isArrayBuffer)(undefined)).toEqual(false);
180
59
  });
181
60
  });
182
- describe('isBool', function () {
183
- it('handles boolean values', function () {
61
+ describe("isBool", function () {
62
+ it("handles boolean values", function () {
184
63
  expect((0, _util.isBool)(true)).toEqual(true);
185
64
  expect((0, _util.isBool)(false)).toEqual(true);
186
65
  });
187
- it('handles non-boolean values', function () {
188
- expect((0, _util.isBool)('true')).toEqual(false);
189
- expect((0, _util.isBool)('false')).toEqual(false);
66
+ it("handles non-boolean values", function () {
67
+ expect((0, _util.isBool)("true")).toEqual(false);
68
+ expect((0, _util.isBool)("false")).toEqual(false);
190
69
  expect((0, _util.isBool)(1)).toEqual(false);
191
70
  expect((0, _util.isBool)(0)).toEqual(false);
192
71
  expect((0, _util.isBool)(null)).toEqual(false);
193
72
  expect((0, _util.isBool)(undefined)).toEqual(false);
194
73
  });
195
74
  });
196
- describe('isEmptyObj', function () {
197
- it('handles empty objects', function () {
75
+ describe("isEmptyObj", function () {
76
+ it("handles empty objects", function () {
198
77
  expect((0, _util.isEmptyObj)({})).toEqual(true);
199
78
  });
200
- it('handles non-empty objects', function () {
201
- expect((0, _util.isEmptyObj)({ foo: 'bar' })).toEqual(false);
79
+ it("handles non-empty objects", function () {
80
+ expect((0, _util.isEmptyObj)({
81
+ foo: "bar"
82
+ })).toEqual(false);
202
83
  });
203
84
  });
204
- describe('isNum', function () {
205
- it('handles numeric values', function () {
85
+ describe("isNum", function () {
86
+ it("handles numeric values", function () {
206
87
  expect((0, _util.isNum)(1)).toEqual(true);
207
88
  expect((0, _util.isNum)(0)).toEqual(true);
208
89
  expect((0, _util.isNum)(-1)).toEqual(true);
209
90
  expect((0, _util.isNum)(1000000000000000000)).toEqual(true);
210
91
  expect((0, _util.isNum)(12.34)).toEqual(true);
211
92
  });
212
- it('handles non-numeric values', function () {
213
- expect((0, _util.isNum)('true')).toEqual(false);
93
+ it("handles non-numeric values", function () {
94
+ expect((0, _util.isNum)("true")).toEqual(false);
214
95
  expect((0, _util.isNum)(true)).toEqual(false);
215
96
  expect((0, _util.isNum)(null)).toEqual(false);
216
97
  expect((0, _util.isNum)(undefined)).toEqual(false);
217
98
  });
218
99
  });
219
- describe('isSpace', function () {
220
- it('handles space characters', function () {
221
- expect((0, _util.isSpace)(0x20)).toEqual(true);
222
- expect((0, _util.isSpace)(0x09)).toEqual(true);
223
- expect((0, _util.isSpace)(0x0D)).toEqual(true);
224
- expect((0, _util.isSpace)(0x0A)).toEqual(true);
225
- });
226
- it('handles non-space characters', function () {
227
- expect((0, _util.isSpace)(0x0B)).toEqual(false);
228
- expect((0, _util.isSpace)(null)).toEqual(false);
229
- expect((0, _util.isSpace)(undefined)).toEqual(false);
230
- });
231
- });
232
- describe('isString', function () {
233
- it('handles string values', function () {
234
- expect((0, _util.isString)('foo')).toEqual(true);
235
- expect((0, _util.isString)('')).toEqual(true);
100
+ describe("isString", function () {
101
+ it("handles string values", function () {
102
+ expect((0, _util.isString)("foo")).toEqual(true);
103
+ expect((0, _util.isString)("")).toEqual(true);
236
104
  });
237
- it('handles non-string values', function () {
105
+ it("handles non-string values", function () {
238
106
  expect((0, _util.isString)(true)).toEqual(false);
239
107
  expect((0, _util.isString)(1)).toEqual(false);
240
108
  expect((0, _util.isString)(null)).toEqual(false);
241
109
  expect((0, _util.isString)(undefined)).toEqual(false);
242
110
  });
243
111
  });
244
- describe('log2', function () {
245
- it('handles values smaller than/equal to zero', function () {
246
- expect((0, _util.log2)(0)).toEqual(0);
247
- expect((0, _util.log2)(-1)).toEqual(0);
248
- });
249
- it('handles values larger than zero', function () {
250
- expect((0, _util.log2)(1)).toEqual(0);
251
- expect((0, _util.log2)(2)).toEqual(1);
252
- expect((0, _util.log2)(3)).toEqual(2);
253
- expect((0, _util.log2)(3.14)).toEqual(2);
112
+ describe("string32", function () {
113
+ it("converts unsigned 32-bit integers to strings", function () {
114
+ expect((0, _util.string32)(0x74727565)).toEqual("true");
115
+ expect((0, _util.string32)(0x74797031)).toEqual("typ1");
116
+ expect((0, _util.string32)(0x4f54544f)).toEqual("OTTO");
254
117
  });
255
118
  });
256
- describe('stringToBytes', function () {
257
- it('handles non-string arguments', function () {
119
+ describe("stringToBytes", function () {
120
+ it("handles non-string arguments", function () {
258
121
  expect(function () {
259
122
  (0, _util.stringToBytes)(null);
260
- }).toThrow(new Error('Invalid argument for stringToBytes'));
123
+ }).toThrow(new Error("Invalid argument for stringToBytes"));
261
124
  });
262
- it('handles string arguments', function () {
263
- expect((0, _util.stringToBytes)('')).toEqual(new Uint8Array([]));
264
- expect((0, _util.stringToBytes)('foo')).toEqual(new Uint8Array([102, 111, 111]));
125
+ it("handles string arguments", function () {
126
+ expect((0, _util.stringToBytes)("")).toEqual(new Uint8Array([]));
127
+ expect((0, _util.stringToBytes)("foo")).toEqual(new Uint8Array([102, 111, 111]));
265
128
  });
266
129
  });
267
- describe('stringToPDFString', function () {
268
- it('handles ISO Latin 1 strings', function () {
269
- var str = '\x8Dstring\x8E';
270
- expect((0, _util.stringToPDFString)(str)).toEqual('\u201Cstring\u201D');
130
+ describe("stringToPDFString", function () {
131
+ it("handles ISO Latin 1 strings", function () {
132
+ const str = "\x8Dstring\x8E";
133
+ expect((0, _util.stringToPDFString)(str)).toEqual("\u201Cstring\u201D");
134
+ });
135
+ it("handles UTF-16 big-endian strings", function () {
136
+ const str = "\xFE\xFF\x00\x73\x00\x74\x00\x72\x00\x69\x00\x6E\x00\x67";
137
+ expect((0, _util.stringToPDFString)(str)).toEqual("string");
271
138
  });
272
- it('handles UTF-16BE strings', function () {
273
- var str = '\xFE\xFF\x00\x73\x00\x74\x00\x72\x00\x69\x00\x6E\x00\x67';
274
- expect((0, _util.stringToPDFString)(str)).toEqual('string');
139
+ it("handles UTF-16 little-endian strings", function () {
140
+ const str = "\xFF\xFE\x73\x00\x74\x00\x72\x00\x69\x00\x6E\x00\x67\x00";
141
+ expect((0, _util.stringToPDFString)(str)).toEqual("string");
275
142
  });
276
- it('handles empty strings', function () {
277
- var str1 = '';
278
- expect((0, _util.stringToPDFString)(str1)).toEqual('');
279
- var str2 = '\xFE\xFF';
280
- expect((0, _util.stringToPDFString)(str2)).toEqual('');
143
+ it("handles empty strings", function () {
144
+ const str1 = "";
145
+ expect((0, _util.stringToPDFString)(str1)).toEqual("");
146
+ const str2 = "\xFE\xFF";
147
+ expect((0, _util.stringToPDFString)(str2)).toEqual("");
148
+ const str3 = "\xFF\xFE";
149
+ expect((0, _util.stringToPDFString)(str3)).toEqual("");
281
150
  });
282
151
  });
283
- describe('removeNullCharacters', function () {
284
- it('should not modify string without null characters', function () {
285
- var str = 'string without null chars';
286
- expect((0, _util.removeNullCharacters)(str)).toEqual('string without null chars');
152
+ describe("removeNullCharacters", function () {
153
+ it("should not modify string without null characters", function () {
154
+ const str = "string without null chars";
155
+ expect((0, _util.removeNullCharacters)(str)).toEqual("string without null chars");
287
156
  });
288
- it('should modify string with null characters', function () {
289
- var str = 'string\x00With\x00Null\x00Chars';
290
- expect((0, _util.removeNullCharacters)(str)).toEqual('stringWithNullChars');
157
+ it("should modify string with null characters", function () {
158
+ const str = "string\x00With\x00Null\x00Chars";
159
+ expect((0, _util.removeNullCharacters)(str)).toEqual("stringWithNullChars");
291
160
  });
292
161
  });
293
- describe('ReadableStream', function () {
294
- it('should return an Object', function () {
295
- var readable = new _util.ReadableStream();
296
- expect(typeof readable === 'undefined' ? 'undefined' : _typeof(readable)).toEqual('object');
162
+ describe("ReadableStream", function () {
163
+ it("should return an Object", function () {
164
+ const readable = new ReadableStream();
165
+ expect(typeof readable).toEqual("object");
297
166
  });
298
- it('should have property getReader', function () {
299
- var readable = new _util.ReadableStream();
300
- expect(_typeof(readable.getReader)).toEqual('function');
167
+ it("should have property getReader", function () {
168
+ const readable = new ReadableStream();
169
+ expect(typeof readable.getReader).toEqual("function");
301
170
  });
302
171
  });
303
- describe('URL', function () {
304
- it('should return an Object', function () {
305
- var url = new _util.URL('https://example.com');
306
- expect(typeof url === 'undefined' ? 'undefined' : _typeof(url)).toEqual('object');
172
+ describe("URL", function () {
173
+ it("should return an Object", function () {
174
+ const url = new URL("https://example.com");
175
+ expect(typeof url).toEqual("object");
307
176
  });
308
- it('should have property `href`', function () {
309
- var url = new _util.URL('https://example.com');
310
- expect(_typeof(url.href)).toEqual('string');
177
+ it("should have property `href`", function () {
178
+ const url = new URL("https://example.com");
179
+ expect(typeof url.href).toEqual("string");
311
180
  });
312
181
  });
313
- describe('isSameOrigin', function () {
314
- it('handles invalid base URLs', function () {
315
- expect((0, _util.isSameOrigin)('/foo', '/bar')).toEqual(false);
316
- expect((0, _util.isSameOrigin)('blob:foo', '/bar')).toEqual(false);
182
+ describe("isSameOrigin", function () {
183
+ it("handles invalid base URLs", function () {
184
+ expect((0, _util.isSameOrigin)("/foo", "/bar")).toEqual(false);
185
+ expect((0, _util.isSameOrigin)("blob:foo", "/bar")).toEqual(false);
317
186
  });
318
- it('correctly checks if the origin of both URLs matches', function () {
319
- expect((0, _util.isSameOrigin)('https://www.mozilla.org/foo', 'https://www.mozilla.org/bar')).toEqual(true);
320
- expect((0, _util.isSameOrigin)('https://www.mozilla.org/foo', 'https://www.example.com/bar')).toEqual(false);
187
+ it("correctly checks if the origin of both URLs matches", function () {
188
+ expect((0, _util.isSameOrigin)("https://www.mozilla.org/foo", "https://www.mozilla.org/bar")).toEqual(true);
189
+ expect((0, _util.isSameOrigin)("https://www.mozilla.org/foo", "https://www.example.com/bar")).toEqual(false);
321
190
  });
322
191
  });
323
- describe('createValidAbsoluteUrl', function () {
324
- it('handles invalid URLs', function () {
192
+ describe("createValidAbsoluteUrl", function () {
193
+ it("handles invalid URLs", function () {
325
194
  expect((0, _util.createValidAbsoluteUrl)(undefined, undefined)).toEqual(null);
326
195
  expect((0, _util.createValidAbsoluteUrl)(null, null)).toEqual(null);
327
- expect((0, _util.createValidAbsoluteUrl)('/foo', '/bar')).toEqual(null);
328
- });
329
- it('handles URLs that do not use a whitelisted protocol', function () {
330
- expect((0, _util.createValidAbsoluteUrl)('magnet:?foo', null)).toEqual(null);
331
- });
332
- it('correctly creates a valid URL for whitelisted protocols', function () {
333
- expect((0, _util.createValidAbsoluteUrl)('http://www.mozilla.org/foo', null)).toEqual(new _util.URL('http://www.mozilla.org/foo'));
334
- expect((0, _util.createValidAbsoluteUrl)('/foo', 'http://www.mozilla.org')).toEqual(new _util.URL('http://www.mozilla.org/foo'));
335
- expect((0, _util.createValidAbsoluteUrl)('https://www.mozilla.org/foo', null)).toEqual(new _util.URL('https://www.mozilla.org/foo'));
336
- expect((0, _util.createValidAbsoluteUrl)('/foo', 'https://www.mozilla.org')).toEqual(new _util.URL('https://www.mozilla.org/foo'));
337
- expect((0, _util.createValidAbsoluteUrl)('ftp://www.mozilla.org/foo', null)).toEqual(new _util.URL('ftp://www.mozilla.org/foo'));
338
- expect((0, _util.createValidAbsoluteUrl)('/foo', 'ftp://www.mozilla.org')).toEqual(new _util.URL('ftp://www.mozilla.org/foo'));
339
- expect((0, _util.createValidAbsoluteUrl)('mailto:foo@bar.baz', null)).toEqual(new _util.URL('mailto:foo@bar.baz'));
340
- expect((0, _util.createValidAbsoluteUrl)('/foo', 'mailto:foo@bar.baz')).toEqual(null);
341
- expect((0, _util.createValidAbsoluteUrl)('tel:+0123456789', null)).toEqual(new _util.URL('tel:+0123456789'));
342
- expect((0, _util.createValidAbsoluteUrl)('/foo', 'tel:0123456789')).toEqual(null);
196
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "/bar")).toEqual(null);
197
+ });
198
+ it("handles URLs that do not use a whitelisted protocol", function () {
199
+ expect((0, _util.createValidAbsoluteUrl)("magnet:?foo", null)).toEqual(null);
200
+ });
201
+ it("correctly creates a valid URL for whitelisted protocols", function () {
202
+ expect((0, _util.createValidAbsoluteUrl)("http://www.mozilla.org/foo", null)).toEqual(new URL("http://www.mozilla.org/foo"));
203
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "http://www.mozilla.org")).toEqual(new URL("http://www.mozilla.org/foo"));
204
+ expect((0, _util.createValidAbsoluteUrl)("https://www.mozilla.org/foo", null)).toEqual(new URL("https://www.mozilla.org/foo"));
205
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "https://www.mozilla.org")).toEqual(new URL("https://www.mozilla.org/foo"));
206
+ expect((0, _util.createValidAbsoluteUrl)("ftp://www.mozilla.org/foo", null)).toEqual(new URL("ftp://www.mozilla.org/foo"));
207
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "ftp://www.mozilla.org")).toEqual(new URL("ftp://www.mozilla.org/foo"));
208
+ expect((0, _util.createValidAbsoluteUrl)("mailto:foo@bar.baz", null)).toEqual(new URL("mailto:foo@bar.baz"));
209
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "mailto:foo@bar.baz")).toEqual(null);
210
+ expect((0, _util.createValidAbsoluteUrl)("tel:+0123456789", null)).toEqual(new URL("tel:+0123456789"));
211
+ expect((0, _util.createValidAbsoluteUrl)("/foo", "tel:0123456789")).toEqual(null);
212
+ });
213
+ });
214
+ describe("createPromiseCapability", function () {
215
+ it("should resolve with correct data", function (done) {
216
+ const promiseCapability = (0, _util.createPromiseCapability)();
217
+ expect(promiseCapability.settled).toEqual(false);
218
+ promiseCapability.resolve({
219
+ test: "abc"
220
+ });
221
+ promiseCapability.promise.then(function (data) {
222
+ expect(promiseCapability.settled).toEqual(true);
223
+ expect(data).toEqual({
224
+ test: "abc"
225
+ });
226
+ done();
227
+ }, done.fail);
228
+ });
229
+ it("should reject with correct reason", function (done) {
230
+ const promiseCapability = (0, _util.createPromiseCapability)();
231
+ expect(promiseCapability.settled).toEqual(false);
232
+ promiseCapability.reject(new Error("reason"));
233
+ promiseCapability.promise.then(done.fail, function (reason) {
234
+ expect(promiseCapability.settled).toEqual(true);
235
+ expect(reason instanceof Error).toEqual(true);
236
+ expect(reason.message).toEqual("reason");
237
+ done();
238
+ });
343
239
  });
344
240
  });
345
241
  });