pdfjs-dist 2.2.228 → 2.6.347

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 (229) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +8816 -19300
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +27185 -35746
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +26665 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/es5/build/pdf.min.js +22 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +61231 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/build/pdf.worker.min.js +22 -0
  17. package/es5/image_decoders/pdf.image_decoders.js +12529 -0
  18. package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
  19. package/es5/image_decoders/pdf.image_decoders.min.js +22 -0
  20. package/es5/web/images/annotation-check.svg +11 -0
  21. package/es5/web/images/annotation-comment.svg +16 -0
  22. package/es5/web/images/annotation-help.svg +26 -0
  23. package/es5/web/images/annotation-insert.svg +10 -0
  24. package/es5/web/images/annotation-key.svg +11 -0
  25. package/es5/web/images/annotation-newparagraph.svg +11 -0
  26. package/es5/web/images/annotation-noicon.svg +7 -0
  27. package/es5/web/images/annotation-note.svg +42 -0
  28. package/es5/web/images/annotation-paragraph.svg +16 -0
  29. package/es5/web/images/loading-icon.gif +0 -0
  30. package/es5/web/images/shadow.png +0 -0
  31. package/es5/web/pdf_viewer.css +406 -0
  32. package/es5/web/pdf_viewer.js +7886 -0
  33. package/es5/web/pdf_viewer.js.map +1 -0
  34. package/image_decoders/pdf.image_decoders.js +1498 -4832
  35. package/image_decoders/pdf.image_decoders.js.map +1 -1
  36. package/image_decoders/pdf.image_decoders.min.js +22 -1
  37. package/lib/README.md +7 -0
  38. package/lib/core/annotation.js +1144 -927
  39. package/lib/core/arithmetic_decoder.js +81 -97
  40. package/lib/core/bidi.js +54 -46
  41. package/lib/core/ccitt.js +88 -81
  42. package/lib/core/ccitt_stream.js +15 -14
  43. package/lib/core/cff_parser.js +747 -716
  44. package/lib/core/charsets.js +4 -4
  45. package/lib/core/chunked_stream.js +462 -553
  46. package/lib/core/cmap.js +231 -277
  47. package/lib/core/colorspace.js +715 -857
  48. package/lib/core/core_utils.js +57 -52
  49. package/lib/core/crypto.js +416 -437
  50. package/lib/core/document.js +629 -670
  51. package/lib/core/encodings.js +15 -15
  52. package/lib/core/evaluator.js +3229 -2800
  53. package/lib/core/font_renderer.js +135 -178
  54. package/lib/core/fonts.js +602 -534
  55. package/lib/core/function.js +355 -279
  56. package/lib/core/glyphlist.js +4527 -4526
  57. package/lib/core/image.js +442 -439
  58. package/lib/core/image_utils.js +221 -61
  59. package/lib/core/jbig2.js +325 -316
  60. package/lib/core/jbig2_stream.js +18 -17
  61. package/lib/core/jpeg_stream.js +21 -26
  62. package/lib/core/jpg.js +289 -233
  63. package/lib/core/jpx.js +161 -143
  64. package/lib/core/jpx_stream.js +28 -28
  65. package/lib/core/metrics.js +2928 -2928
  66. package/lib/core/murmurhash3.js +87 -102
  67. package/lib/core/obj.js +1343 -1300
  68. package/lib/core/operator_list.js +90 -67
  69. package/lib/core/parser.js +990 -987
  70. package/lib/core/pattern.js +105 -77
  71. package/lib/core/pdf_manager.js +149 -316
  72. package/lib/core/primitives.js +156 -104
  73. package/lib/core/ps_parser.js +175 -214
  74. package/lib/core/standard_fonts.js +237 -236
  75. package/lib/core/stream.js +94 -74
  76. package/lib/core/type1_parser.js +89 -69
  77. package/lib/core/unicode.js +1654 -1654
  78. package/lib/core/worker.js +275 -290
  79. package/lib/core/worker_stream.js +101 -210
  80. package/lib/core/writer.js +242 -0
  81. package/lib/display/annotation_layer.js +772 -1041
  82. package/lib/display/annotation_storage.js +89 -0
  83. package/lib/display/api.js +1575 -1868
  84. package/lib/display/api_compatibility.js +12 -17
  85. package/lib/display/canvas.js +370 -222
  86. package/lib/display/content_disposition.js +40 -59
  87. package/lib/display/display_utils.js +341 -536
  88. package/lib/display/fetch_stream.js +188 -304
  89. package/lib/display/font_loader.js +282 -414
  90. package/lib/display/metadata.js +81 -99
  91. package/lib/display/network.js +362 -511
  92. package/lib/display/network_utils.js +25 -18
  93. package/lib/display/node_stream.js +283 -465
  94. package/lib/display/node_utils.js +87 -0
  95. package/lib/display/optional_content_config.js +184 -0
  96. package/lib/display/pattern_helper.js +93 -44
  97. package/lib/display/svg.js +1163 -1401
  98. package/lib/display/text_layer.js +154 -137
  99. package/lib/display/transport_stream.js +237 -375
  100. package/lib/display/webgl.js +70 -83
  101. package/lib/display/worker_options.js +3 -3
  102. package/lib/display/xml_parser.js +303 -392
  103. package/lib/examples/node/domstubs.js +37 -37
  104. package/lib/pdf.js +220 -58
  105. package/lib/pdf.worker.js +14 -6
  106. package/lib/shared/compatibility.js +3 -246
  107. package/lib/shared/is_node.js +7 -6
  108. package/lib/shared/message_handler.js +327 -332
  109. package/lib/shared/util.js +271 -306
  110. package/lib/test/unit/annotation_spec.js +1902 -763
  111. package/lib/test/unit/annotation_storage_spec.js +83 -0
  112. package/lib/test/unit/api_spec.js +790 -592
  113. package/lib/test/unit/bidi_spec.js +7 -7
  114. package/lib/test/unit/cff_parser_spec.js +73 -72
  115. package/lib/test/unit/clitests_helper.js +7 -9
  116. package/lib/test/unit/cmap_spec.js +86 -88
  117. package/lib/test/unit/colorspace_spec.js +346 -154
  118. package/lib/test/unit/core_utils_spec.js +125 -105
  119. package/lib/test/unit/crypto_spec.js +232 -185
  120. package/lib/test/unit/custom_spec.js +150 -24
  121. package/lib/test/unit/display_svg_spec.js +34 -39
  122. package/lib/test/unit/display_utils_spec.js +139 -149
  123. package/lib/test/unit/document_spec.js +128 -17
  124. package/lib/test/unit/encodings_spec.js +12 -34
  125. package/lib/test/unit/evaluator_spec.js +112 -91
  126. package/lib/test/unit/fetch_stream_spec.js +31 -29
  127. package/lib/test/unit/function_spec.js +206 -204
  128. package/lib/test/unit/jasmine-boot.js +48 -32
  129. package/lib/test/unit/message_handler_spec.js +173 -159
  130. package/lib/test/unit/metadata_spec.js +71 -71
  131. package/lib/test/unit/murmurhash3_spec.js +12 -12
  132. package/lib/test/unit/network_spec.js +13 -11
  133. package/lib/test/unit/network_utils_spec.js +158 -144
  134. package/lib/test/unit/node_stream_spec.js +76 -90
  135. package/lib/test/unit/parser_spec.js +108 -114
  136. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  137. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  138. package/lib/test/unit/pdf_history_spec.js +32 -32
  139. package/lib/test/unit/primitives_spec.js +337 -156
  140. package/lib/test/unit/stream_spec.js +16 -14
  141. package/lib/test/unit/test_utils.js +91 -304
  142. package/lib/test/unit/testreporter.js +33 -22
  143. package/lib/test/unit/type1_parser_spec.js +42 -42
  144. package/lib/test/unit/ui_utils_spec.js +299 -461
  145. package/lib/test/unit/unicode_spec.js +42 -42
  146. package/lib/test/unit/util_spec.js +129 -149
  147. package/lib/test/unit/writer_spec.js +84 -0
  148. package/lib/web/annotation_layer_builder.js +78 -111
  149. package/lib/web/app.js +1542 -1267
  150. package/lib/web/app_options.js +76 -91
  151. package/lib/web/base_tree_viewer.js +100 -0
  152. package/lib/web/base_viewer.js +869 -834
  153. package/lib/web/chromecom.js +165 -252
  154. package/lib/web/debugger.js +149 -205
  155. package/lib/web/download_manager.js +34 -58
  156. package/lib/web/firefox_print_service.js +62 -34
  157. package/lib/web/firefoxcom.js +206 -374
  158. package/lib/web/genericcom.js +26 -108
  159. package/lib/web/genericl10n.js +24 -153
  160. package/lib/web/grab_to_pan.js +30 -30
  161. package/lib/web/interfaces.js +80 -254
  162. package/lib/web/overlay_manager.js +70 -246
  163. package/lib/web/password_prompt.js +38 -64
  164. package/lib/web/pdf_attachment_viewer.js +150 -126
  165. package/lib/web/pdf_cursor_tools.js +75 -102
  166. package/lib/web/pdf_document_properties.js +229 -383
  167. package/lib/web/pdf_find_bar.js +136 -170
  168. package/lib/web/pdf_find_controller.js +492 -548
  169. package/lib/web/pdf_find_utils.js +13 -13
  170. package/lib/web/pdf_history.js +397 -406
  171. package/lib/web/pdf_layer_viewer.js +208 -0
  172. package/lib/web/pdf_link_service.js +304 -348
  173. package/lib/web/pdf_outline_viewer.js +119 -212
  174. package/lib/web/pdf_page_view.js +474 -513
  175. package/lib/web/pdf_presentation_mode.js +308 -357
  176. package/lib/web/pdf_print_service.js +96 -110
  177. package/lib/web/pdf_rendering_queue.js +87 -108
  178. package/lib/web/pdf_sidebar.js +286 -302
  179. package/lib/web/pdf_sidebar_resizer.js +92 -119
  180. package/lib/web/pdf_single_page_viewer.js +77 -126
  181. package/lib/web/pdf_thumbnail_view.js +289 -297
  182. package/lib/web/pdf_thumbnail_viewer.js +202 -206
  183. package/lib/web/pdf_viewer.component.js +20 -21
  184. package/lib/web/pdf_viewer.js +55 -115
  185. package/lib/web/preferences.js +69 -273
  186. package/lib/web/secondary_toolbar.js +164 -196
  187. package/lib/web/text_layer_builder.js +284 -319
  188. package/lib/web/toolbar.js +217 -210
  189. package/lib/web/ui_utils.js +274 -421
  190. package/lib/web/view_history.js +52 -226
  191. package/lib/web/viewer_compatibility.js +21 -6
  192. package/package.json +4 -9
  193. package/types/display/annotation_layer.d.ts +61 -0
  194. package/types/display/annotation_storage.d.ts +36 -0
  195. package/types/display/api.d.ts +1107 -0
  196. package/types/display/api_compatibility.d.ts +1 -0
  197. package/types/display/canvas.d.ts +4 -0
  198. package/types/display/content_disposition.d.ts +7 -0
  199. package/types/display/display_utils.d.ts +243 -0
  200. package/types/display/fetch_stream.d.ts +67 -0
  201. package/types/display/font_loader.d.ts +19 -0
  202. package/types/display/metadata.d.ts +9 -0
  203. package/types/display/network.d.ts +80 -0
  204. package/types/display/network_utils.d.ts +14 -0
  205. package/types/display/node_stream.d.ts +72 -0
  206. package/types/display/node_utils.d.ts +6 -0
  207. package/types/display/optional_content_config.d.ts +12 -0
  208. package/types/display/pattern_helper.d.ts +5 -0
  209. package/types/display/svg.d.ts +2 -0
  210. package/types/display/text_layer.d.ts +83 -0
  211. package/types/display/transport_stream.d.ts +57 -0
  212. package/types/display/webgl.d.ts +20 -0
  213. package/types/display/worker_options.d.ts +27 -0
  214. package/types/display/xml_parser.d.ts +35 -0
  215. package/types/pdf.d.ts +33 -0
  216. package/types/shared/compatibility.d.ts +1 -0
  217. package/types/shared/is_node.d.ts +1 -0
  218. package/types/shared/message_handler.d.ts +62 -0
  219. package/types/shared/util.d.ts +421 -0
  220. package/web/images/shadow.png +0 -0
  221. package/web/pdf_viewer.css +29 -27
  222. package/web/pdf_viewer.js +3524 -4746
  223. package/web/pdf_viewer.js.map +1 -1
  224. package/webpack.js +6 -5
  225. package/external/streams/streams-lib.js +0 -3962
  226. package/external/url/url-lib.js +0 -627
  227. package/lib/shared/streams_polyfill.js +0 -43
  228. package/lib/shared/url_polyfill.js +0 -56
  229. package/web/images/texture.png +0 -0
@@ -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 2019 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.
@@ -21,33 +21,33 @@
21
21
  */
22
22
  "use strict";
23
23
 
24
- var _parser = require("../../core/parser");
24
+ var _parser = require("../../core/parser.js");
25
25
 
26
- var _util = require("../../shared/util");
26
+ var _util = require("../../shared/util.js");
27
27
 
28
- var _primitives = require("../../core/primitives");
28
+ var _primitives = require("../../core/primitives.js");
29
29
 
30
- var _stream = require("../../core/stream");
30
+ var _stream = require("../../core/stream.js");
31
31
 
32
- describe('parser', function () {
33
- describe('Parser', function () {
34
- describe('inlineStreamSkipEI', function () {
35
- it('should skip over the EI marker if it is found', function () {
36
- var string = 'q 1 0 0 1 0 0 cm BI /W 10 /H 10 /BPC 1 ' + '/F /A85 ID abc123~> EI Q';
37
- var input = new _stream.StringStream(string);
38
- var parser = new _parser.Parser({
32
+ describe("parser", function () {
33
+ describe("Parser", function () {
34
+ describe("inlineStreamSkipEI", function () {
35
+ it("should skip over the EI marker if it is found", function () {
36
+ const string = "q 1 0 0 1 0 0 cm BI /W 10 /H 10 /BPC 1 " + "/F /A85 ID abc123~> EI Q";
37
+ const input = new _stream.StringStream(string);
38
+ const parser = new _parser.Parser({
39
39
  lexer: new _parser.Lexer(input),
40
40
  xref: null,
41
41
  allowStreams: true
42
42
  });
43
43
  parser.inlineStreamSkipEI(input);
44
- expect(input.pos).toEqual(string.indexOf('Q'));
44
+ expect(input.pos).toEqual(string.indexOf("Q"));
45
45
  expect(input.peekByte()).toEqual(0x51);
46
46
  });
47
- it('should skip to the end of stream if the EI marker is not found', function () {
48
- var string = 'q 1 0 0 1 0 0 cm BI /W 10 /H 10 /BPC 1 ' + '/F /A85 ID abc123~> Q';
49
- var input = new _stream.StringStream(string);
50
- var parser = new _parser.Parser({
47
+ it("should skip to the end of stream if the EI marker is not found", function () {
48
+ const string = "q 1 0 0 1 0 0 cm BI /W 10 /H 10 /BPC 1 /F /A85 ID abc123~> Q";
49
+ const input = new _stream.StringStream(string);
50
+ const parser = new _parser.Parser({
51
51
  lexer: new _parser.Lexer(input),
52
52
  xref: null,
53
53
  allowStreams: true
@@ -58,53 +58,52 @@ describe('parser', function () {
58
58
  });
59
59
  });
60
60
  });
61
- describe('Lexer', function () {
62
- describe('nextChar', function () {
63
- it('should return and set -1 when the end of the stream is reached', function () {
64
- var input = new _stream.StringStream('');
65
- var lexer = new _parser.Lexer(input);
61
+ describe("Lexer", function () {
62
+ describe("nextChar", function () {
63
+ it("should return and set -1 when the end of the stream is reached", function () {
64
+ const input = new _stream.StringStream("");
65
+ const lexer = new _parser.Lexer(input);
66
66
  expect(lexer.nextChar()).toEqual(-1);
67
67
  expect(lexer.currentChar).toEqual(-1);
68
68
  });
69
- it('should return and set the character after the current position', function () {
70
- var input = new _stream.StringStream('123');
71
- var lexer = new _parser.Lexer(input);
69
+ it("should return and set the character after the current position", function () {
70
+ const input = new _stream.StringStream("123");
71
+ const lexer = new _parser.Lexer(input);
72
72
  expect(lexer.nextChar()).toEqual(0x32);
73
73
  expect(lexer.currentChar).toEqual(0x32);
74
74
  });
75
75
  });
76
- describe('peekChar', function () {
77
- it('should only return -1 when the end of the stream is reached', function () {
78
- var input = new _stream.StringStream('');
79
- var lexer = new _parser.Lexer(input);
76
+ describe("peekChar", function () {
77
+ it("should only return -1 when the end of the stream is reached", function () {
78
+ const input = new _stream.StringStream("");
79
+ const lexer = new _parser.Lexer(input);
80
80
  expect(lexer.peekChar()).toEqual(-1);
81
81
  expect(lexer.currentChar).toEqual(-1);
82
82
  });
83
- it('should only return the character after the current position', function () {
84
- var input = new _stream.StringStream('123');
85
- var lexer = new _parser.Lexer(input);
83
+ it("should only return the character after the current position", function () {
84
+ const input = new _stream.StringStream("123");
85
+ const lexer = new _parser.Lexer(input);
86
86
  expect(lexer.peekChar()).toEqual(0x32);
87
87
  expect(lexer.currentChar).toEqual(0x31);
88
88
  });
89
89
  });
90
- describe('getNumber', function () {
91
- it('should stop parsing numbers at the end of stream', function () {
92
- var input = new _stream.StringStream('11.234');
93
- var lexer = new _parser.Lexer(input);
90
+ describe("getNumber", function () {
91
+ it("should stop parsing numbers at the end of stream", function () {
92
+ const input = new _stream.StringStream("11.234");
93
+ const lexer = new _parser.Lexer(input);
94
94
  expect(lexer.getNumber()).toEqual(11.234);
95
95
  });
96
- it('should parse PostScript numbers', function () {
97
- var numbers = ['-.002', '34.5', '-3.62', '123.6e10', '1E-5', '-1.', '0.0', '123', '-98', '43445', '0', '+17'];
96
+ it("should parse PostScript numbers", function () {
97
+ const numbers = ["-.002", "34.5", "-3.62", "123.6e10", "1E-5", "-1.", "0.0", "123", "-98", "43445", "0", "+17"];
98
98
 
99
- for (var _i = 0, _numbers = numbers; _i < _numbers.length; _i++) {
100
- var number = _numbers[_i];
101
- var input = new _stream.StringStream(number);
102
- var lexer = new _parser.Lexer(input);
103
- var result = lexer.getNumber(),
104
- expected = parseFloat(number);
99
+ for (const number of numbers) {
100
+ const input = new _stream.StringStream(number);
101
+ const lexer = new _parser.Lexer(input);
102
+ const result = lexer.getNumber(),
103
+ expected = parseFloat(number);
105
104
 
106
105
  if (result !== expected && Math.abs(result - expected) < 1e-15) {
107
- console.error("Fuzzy matching \"".concat(result, "\" with \"").concat(expected, "\" to ") + 'work-around rounding bugs in Chromium browsers.');
106
+ console.error(`Fuzzy matching "${result}" with "${expected}" to ` + "work-around rounding bugs in Chromium browsers.");
108
107
  expect(true).toEqual(true);
109
108
  continue;
110
109
  }
@@ -112,98 +111,93 @@ describe('parser', function () {
112
111
  expect(result).toEqual(expected);
113
112
  }
114
113
  });
115
- it('should ignore double negative before number', function () {
116
- var input = new _stream.StringStream('--205.88');
117
- var lexer = new _parser.Lexer(input);
114
+ it("should ignore double negative before number", function () {
115
+ const input = new _stream.StringStream("--205.88");
116
+ const lexer = new _parser.Lexer(input);
118
117
  expect(lexer.getNumber()).toEqual(-205.88);
119
118
  });
120
- it('should ignore minus signs in the middle of number', function () {
121
- var input = new _stream.StringStream('205--.88');
122
- var lexer = new _parser.Lexer(input);
119
+ it("should ignore minus signs in the middle of number", function () {
120
+ const input = new _stream.StringStream("205--.88");
121
+ const lexer = new _parser.Lexer(input);
123
122
  expect(lexer.getNumber()).toEqual(205.88);
124
123
  });
125
- it('should ignore line-breaks between operator and digit in number', function () {
126
- var minusInput = new _stream.StringStream('-\r\n205.88');
127
- var minusLexer = new _parser.Lexer(minusInput);
124
+ it("should ignore line-breaks between operator and digit in number", function () {
125
+ const minusInput = new _stream.StringStream("-\r\n205.88");
126
+ const minusLexer = new _parser.Lexer(minusInput);
128
127
  expect(minusLexer.getNumber()).toEqual(-205.88);
129
- var plusInput = new _stream.StringStream('+\r\n205.88');
130
- var plusLexer = new _parser.Lexer(plusInput);
128
+ const plusInput = new _stream.StringStream("+\r\n205.88");
129
+ const plusLexer = new _parser.Lexer(plusInput);
131
130
  expect(plusLexer.getNumber()).toEqual(205.88);
132
131
  });
133
- it('should treat a single decimal point as zero', function () {
134
- var input = new _stream.StringStream('.');
135
- var lexer = new _parser.Lexer(input);
132
+ it("should treat a single decimal point as zero", function () {
133
+ const input = new _stream.StringStream(".");
134
+ const lexer = new _parser.Lexer(input);
136
135
  expect(lexer.getNumber()).toEqual(0);
137
- var numbers = ['..', '-.', '+.', '-\r\n.', '+\r\n.'];
136
+ const numbers = ["..", "-.", "+.", "-\r\n.", "+\r\n."];
138
137
 
139
- var _loop = function _loop() {
140
- var number = _numbers2[_i2];
141
- var input = new _stream.StringStream(number);
142
- var lexer = new _parser.Lexer(input);
138
+ for (const number of numbers) {
139
+ const invalidInput = new _stream.StringStream(number);
140
+ const invalidLexer = new _parser.Lexer(invalidInput);
143
141
  expect(function () {
144
- return lexer.getNumber();
142
+ return invalidLexer.getNumber();
145
143
  }).toThrowError(_util.FormatError, /^Invalid number:\s/);
146
- };
147
-
148
- for (var _i2 = 0, _numbers2 = numbers; _i2 < _numbers2.length; _i2++) {
149
- _loop();
150
144
  }
151
145
  });
152
- it('should handle glued numbers and operators', function () {
153
- var input = new _stream.StringStream('123ET');
154
- var lexer = new _parser.Lexer(input);
146
+ it("should handle glued numbers and operators", function () {
147
+ const input = new _stream.StringStream("123ET");
148
+ const lexer = new _parser.Lexer(input);
155
149
  expect(lexer.getNumber()).toEqual(123);
156
150
  expect(lexer.currentChar).toEqual(0x45);
157
151
  });
158
152
  });
159
- describe('getString', function () {
160
- it('should stop parsing strings at the end of stream', function () {
161
- var input = new _stream.StringStream('(1$4)');
153
+ describe("getString", function () {
154
+ it("should stop parsing strings at the end of stream", function () {
155
+ const input = new _stream.StringStream("(1$4)");
162
156
 
163
157
  input.getByte = function (super_getByte) {
164
- var ch = super_getByte.call(input);
158
+ const ch = super_getByte.call(input);
165
159
  return ch === 0x24 ? -1 : ch;
166
160
  }.bind(input, input.getByte);
167
161
 
168
- var lexer = new _parser.Lexer(input);
169
- expect(lexer.getString()).toEqual('1');
162
+ const lexer = new _parser.Lexer(input);
163
+ expect(lexer.getString()).toEqual("1");
170
164
  });
171
- it('should ignore escaped CR and LF', function () {
172
- var input = new _stream.StringStream('(\\101\\\r\n\\102\\\r\\103\\\n\\104)');
173
- var lexer = new _parser.Lexer(input);
174
- expect(lexer.getString()).toEqual('ABCD');
165
+ it("should ignore escaped CR and LF", function () {
166
+ const input = new _stream.StringStream("(\\101\\\r\n\\102\\\r\\103\\\n\\104)");
167
+ const lexer = new _parser.Lexer(input);
168
+ expect(lexer.getString()).toEqual("ABCD");
175
169
  });
176
170
  });
177
- describe('getHexString', function () {
178
- it('should not throw exception on bad input', function () {
179
- var input = new _stream.StringStream('<7 0 2 15 5 2 2 2 4 3 2 4>');
180
- var lexer = new _parser.Lexer(input);
171
+ describe("getHexString", function () {
172
+ it("should not throw exception on bad input", function () {
173
+ const input = new _stream.StringStream("<7 0 2 15 5 2 2 2 4 3 2 4>");
174
+ const lexer = new _parser.Lexer(input);
181
175
  expect(lexer.getHexString()).toEqual('p!U"$2');
182
176
  });
183
177
  });
184
- describe('getName', function () {
185
- it('should handle Names with invalid usage of NUMBER SIGN (#)', function () {
186
- var inputNames = ['/# 680 0 R', '/#AQwerty', '/#A<</B'];
187
- var expectedNames = ['#', '#AQwerty', '#A'];
178
+ describe("getName", function () {
179
+ it("should handle Names with invalid usage of NUMBER SIGN (#)", function () {
180
+ const inputNames = ["/# 680 0 R", "/#AQwerty", "/#A<</B"];
181
+ const expectedNames = ["#", "#AQwerty", "#A"];
188
182
 
189
- for (var i = 0, ii = inputNames.length; i < ii; i++) {
190
- var input = new _stream.StringStream(inputNames[i]);
191
- var lexer = new _parser.Lexer(input);
183
+ for (let i = 0, ii = inputNames.length; i < ii; i++) {
184
+ const input = new _stream.StringStream(inputNames[i]);
185
+ const lexer = new _parser.Lexer(input);
192
186
  expect(lexer.getName()).toEqual(_primitives.Name.get(expectedNames[i]));
193
187
  }
194
188
  });
195
189
  });
196
190
  });
197
- describe('Linearization', function () {
198
- it('should not find a linearization dictionary', function () {
199
- var stream1 = new _stream.StringStream('3 0 obj\n' + '<<\n' + '/Length 4622\n' + '/Filter /FlateDecode\n' + '>>\n' + 'endobj');
191
+ describe("Linearization", function () {
192
+ it("should not find a linearization dictionary", function () {
193
+ const stream1 = new _stream.StringStream("3 0 obj\n" + "<<\n" + "/Length 4622\n" + "/Filter /FlateDecode\n" + ">>\n" + "endobj");
200
194
  expect(_parser.Linearization.create(stream1)).toEqual(null);
201
- var stream2 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 0\n' + '>>\n' + 'endobj');
195
+ const stream2 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 0\n" + ">>\n" + "endobj");
202
196
  expect(_parser.Linearization.create(stream2)).toEqual(null);
203
197
  });
204
- it('should accept a valid linearization dictionary', function () {
205
- var stream = new _stream.StringStream('131 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H [ 1388 863 ]\n' + '/L 90\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
206
- var expectedLinearizationDict = {
198
+ it("should accept a valid linearization dictionary", function () {
199
+ const stream = new _stream.StringStream("131 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H [ 1388 863 ]\n" + "/L 90\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
200
+ const expectedLinearizationDict = {
207
201
  length: 90,
208
202
  hints: [1388, 863],
209
203
  objectNumberFirst: 133,
@@ -214,33 +208,33 @@ describe('parser', function () {
214
208
  };
215
209
  expect(_parser.Linearization.create(stream)).toEqual(expectedLinearizationDict);
216
210
  });
217
- it('should reject a linearization dictionary with invalid ' + 'integer parameters', function () {
218
- var stream1 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H [ 1388 863 ]\n' + '/L 196622\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
211
+ it("should reject a linearization dictionary with invalid " + "integer parameters", function () {
212
+ const stream1 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H [ 1388 863 ]\n" + "/L 196622\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
219
213
  expect(function () {
220
214
  return _parser.Linearization.create(stream1);
221
- }).toThrow(new Error('The "L" parameter in the linearization ' + 'dictionary does not equal the stream length.'));
222
- var stream2 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H [ 1388 863 ]\n' + '/L 84\n' + '/E 0\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
215
+ }).toThrow(new Error('The "L" parameter in the linearization ' + "dictionary does not equal the stream length."));
216
+ const stream2 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H [ 1388 863 ]\n" + "/L 84\n" + "/E 0\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
223
217
  expect(function () {
224
218
  return _parser.Linearization.create(stream2);
225
- }).toThrow(new Error('The "E" parameter in the linearization ' + 'dictionary is invalid.'));
226
- var stream3 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O /abc\n' + '/H [ 1388 863 ]\n' + '/L 89\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
219
+ }).toThrow(new Error('The "E" parameter in the linearization dictionary is invalid.'));
220
+ const stream3 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O /abc\n" + "/H [ 1388 863 ]\n" + "/L 89\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
227
221
  expect(function () {
228
222
  return _parser.Linearization.create(stream3);
229
- }).toThrow(new Error('The "O" parameter in the linearization ' + 'dictionary is invalid.'));
223
+ }).toThrow(new Error('The "O" parameter in the linearization dictionary is invalid.'));
230
224
  });
231
- it('should reject a linearization dictionary with invalid hint parameters', function () {
232
- var stream1 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H 1388\n' + '/L 80\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
225
+ it("should reject a linearization dictionary with invalid hint parameters", function () {
226
+ const stream1 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H 1388\n" + "/L 80\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
233
227
  expect(function () {
234
228
  return _parser.Linearization.create(stream1);
235
- }).toThrow(new Error('Hint array in the linearization dictionary ' + 'is invalid.'));
236
- var stream2 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H [ 1388 ]\n' + '/L 84\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
229
+ }).toThrow(new Error("Hint array in the linearization dictionary is invalid."));
230
+ const stream2 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H [ 1388 ]\n" + "/L 84\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
237
231
  expect(function () {
238
232
  return _parser.Linearization.create(stream2);
239
- }).toThrow(new Error('Hint array in the linearization dictionary ' + 'is invalid.'));
240
- var stream3 = new _stream.StringStream('1 0 obj\n' + '<<\n' + '/Linearized 1\n' + '/O 133\n' + '/H [ 1388 863 0 234]\n' + '/L 93\n' + '/E 43573\n' + '/N 18\n' + '/T 193883\n' + '>>\n' + 'endobj');
233
+ }).toThrow(new Error("Hint array in the linearization dictionary is invalid."));
234
+ const stream3 = new _stream.StringStream("1 0 obj\n" + "<<\n" + "/Linearized 1\n" + "/O 133\n" + "/H [ 1388 863 0 234]\n" + "/L 93\n" + "/E 43573\n" + "/N 18\n" + "/T 193883\n" + ">>\n" + "endobj");
241
235
  expect(function () {
242
236
  return _parser.Linearization.create(stream3);
243
- }).toThrow(new Error('Hint (2) in the linearization dictionary ' + 'is invalid.'));
237
+ }).toThrow(new Error("Hint (2) in the linearization dictionary is invalid."));
244
238
  });
245
239
  });
246
240
  });
@@ -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 2019 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.
@@ -21,85 +21,53 @@
21
21
  */
22
22
  "use strict";
23
23
 
24
- var _test_utils = require("./test_utils");
24
+ var _test_utils = require("./test_utils.js");
25
25
 
26
- var _ui_utils = require("../../web/ui_utils");
26
+ var _ui_utils = require("../../web/ui_utils.js");
27
27
 
28
- var _api = require("../../display/api");
28
+ var _api = require("../../display/api.js");
29
29
 
30
- var _pdf_find_controller = require("../../web/pdf_find_controller");
30
+ var _pdf_find_controller = require("../../web/pdf_find_controller.js");
31
31
 
32
- var _pdf_link_service = require("../../web/pdf_link_service");
32
+ var _pdf_link_service = require("../../web/pdf_link_service.js");
33
33
 
34
- 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); }
35
-
36
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
37
-
38
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
39
-
40
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
41
-
42
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
43
-
44
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
-
46
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
-
48
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
49
-
50
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
+ class MockLinkService extends _pdf_link_service.SimpleLinkService {
35
+ constructor() {
36
+ super();
37
+ this._page = 1;
38
+ this._pdfDocument = null;
39
+ }
51
40
 
52
- var MockLinkService =
53
- /*#__PURE__*/
54
- function (_SimpleLinkService) {
55
- _inherits(MockLinkService, _SimpleLinkService);
41
+ setDocument(pdfDocument) {
42
+ this._pdfDocument = pdfDocument;
43
+ }
56
44
 
57
- function MockLinkService() {
58
- var _this;
45
+ get pagesCount() {
46
+ return this._pdfDocument.numPages;
47
+ }
59
48
 
60
- _classCallCheck(this, MockLinkService);
49
+ get page() {
50
+ return this._page;
51
+ }
61
52
 
62
- _this = _possibleConstructorReturn(this, _getPrototypeOf(MockLinkService).call(this));
63
- _this._page = 1;
64
- _this._pdfDocument = null;
65
- return _this;
53
+ set page(value) {
54
+ this._page = value;
66
55
  }
67
56
 
68
- _createClass(MockLinkService, [{
69
- key: "setDocument",
70
- value: function setDocument(pdfDocument) {
71
- this._pdfDocument = pdfDocument;
72
- }
73
- }, {
74
- key: "pagesCount",
75
- get: function get() {
76
- return this._pdfDocument.numPages;
77
- }
78
- }, {
79
- key: "page",
80
- get: function get() {
81
- return this._page;
82
- },
83
- set: function set(value) {
84
- this._page = value;
85
- }
86
- }]);
87
-
88
- return MockLinkService;
89
- }(_pdf_link_service.SimpleLinkService);
90
-
91
- describe('pdf_find_controller', function () {
92
- var eventBus;
93
- var pdfFindController;
57
+ }
58
+
59
+ describe("pdf_find_controller", function () {
60
+ let eventBus;
61
+ let pdfFindController;
94
62
  beforeEach(function (done) {
95
- var loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)('tracemonkey.pdf'));
63
+ const loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)("tracemonkey.pdf"));
96
64
  loadingTask.promise.then(function (pdfDocument) {
97
65
  eventBus = new _ui_utils.EventBus();
98
- var linkService = new MockLinkService();
66
+ const linkService = new MockLinkService();
99
67
  linkService.setDocument(pdfDocument);
100
68
  pdfFindController = new _pdf_find_controller.PDFFindController({
101
- linkService: linkService,
102
- eventBus: eventBus
69
+ linkService,
70
+ eventBus
103
71
  });
104
72
  pdfFindController.setDocument(pdfDocument);
105
73
  done();
@@ -110,34 +78,35 @@ describe('pdf_find_controller', function () {
110
78
  pdfFindController = null;
111
79
  });
112
80
 
113
- function testSearch(_ref) {
114
- var parameters = _ref.parameters,
115
- matchesPerPage = _ref.matchesPerPage,
116
- selectedMatch = _ref.selectedMatch;
81
+ function testSearch({
82
+ parameters,
83
+ matchesPerPage,
84
+ selectedMatch
85
+ }) {
117
86
  return new Promise(function (resolve) {
118
- pdfFindController.executeCommand('find', parameters);
119
- var totalPages = matchesPerPage.length;
87
+ pdfFindController.executeCommand("find", parameters);
88
+ let totalPages = matchesPerPage.length;
120
89
 
121
- for (var i = totalPages - 1; i >= 0; i--) {
90
+ for (let i = totalPages - 1; i >= 0; i--) {
122
91
  if (matchesPerPage[i] > 0) {
123
92
  totalPages = i + 1;
124
93
  break;
125
94
  }
126
95
  }
127
96
 
128
- var totalMatches = matchesPerPage.reduce(function (a, b) {
97
+ const totalMatches = matchesPerPage.reduce((a, b) => {
129
98
  return a + b;
130
99
  });
131
- eventBus.on('updatefindmatchescount', function onUpdateFindMatchesCount(evt) {
100
+ eventBus.on("updatefindmatchescount", function onUpdateFindMatchesCount(evt) {
132
101
  if (pdfFindController.pageMatches.length !== totalPages) {
133
102
  return;
134
103
  }
135
104
 
136
- eventBus.off('updatefindmatchescount', onUpdateFindMatchesCount);
105
+ eventBus.off("updatefindmatchescount", onUpdateFindMatchesCount);
137
106
  expect(evt.matchesCount.total).toBe(totalMatches);
138
107
 
139
- for (var _i = 0; _i < totalPages; _i++) {
140
- expect(pdfFindController.pageMatches[_i].length).toEqual(matchesPerPage[_i]);
108
+ for (let i = 0; i < totalPages; i++) {
109
+ expect(pdfFindController.pageMatches[i].length).toEqual(matchesPerPage[i]);
141
110
  }
142
111
 
143
112
  expect(pdfFindController.selected.pageIdx).toEqual(selectedMatch.pageIndex);
@@ -147,10 +116,10 @@ describe('pdf_find_controller', function () {
147
116
  });
148
117
  }
149
118
 
150
- it('performs a normal search', function (done) {
119
+ it("performs a normal search", function (done) {
151
120
  testSearch({
152
121
  parameters: {
153
- query: 'Dynamic',
122
+ query: "Dynamic",
154
123
  caseSensitive: false,
155
124
  entireWord: false,
156
125
  phraseSearch: true,
@@ -163,10 +132,10 @@ describe('pdf_find_controller', function () {
163
132
  }
164
133
  }).then(done);
165
134
  });
166
- it('performs a normal search and finds the previous result', function (done) {
135
+ it("performs a normal search and finds the previous result", function (done) {
167
136
  testSearch({
168
137
  parameters: {
169
- query: 'conference',
138
+ query: "conference",
170
139
  caseSensitive: false,
171
140
  entireWord: false,
172
141
  phraseSearch: true,
@@ -179,10 +148,10 @@ describe('pdf_find_controller', function () {
179
148
  }
180
149
  }).then(done);
181
150
  });
182
- it('performs a case sensitive search', function (done) {
151
+ it("performs a case sensitive search", function (done) {
183
152
  testSearch({
184
153
  parameters: {
185
- query: 'Dynamic',
154
+ query: "Dynamic",
186
155
  caseSensitive: true,
187
156
  entireWord: false,
188
157
  phraseSearch: true,
@@ -195,10 +164,10 @@ describe('pdf_find_controller', function () {
195
164
  }
196
165
  }).then(done);
197
166
  });
198
- it('performs an entire word search', function (done) {
167
+ it("performs an entire word search", function (done) {
199
168
  testSearch({
200
169
  parameters: {
201
- query: 'Government',
170
+ query: "Government",
202
171
  caseSensitive: false,
203
172
  entireWord: true,
204
173
  phraseSearch: true,
@@ -211,10 +180,10 @@ describe('pdf_find_controller', function () {
211
180
  }
212
181
  }).then(done);
213
182
  });
214
- it('performs a multiple term (no phrase) search', function (done) {
183
+ it("performs a multiple term (no phrase) search", function (done) {
215
184
  testSearch({
216
185
  parameters: {
217
- query: 'alternate solution',
186
+ query: "alternate solution",
218
187
  caseSensitive: false,
219
188
  entireWord: false,
220
189
  phraseSearch: false,