pdfjs-dist 2.3.200 → 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 (185) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +6499 -17971
  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 +19303 -29896
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +25473 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  13. package/es5/build/pdf.worker.js +57878 -0
  14. package/es5/build/pdf.worker.js.map +1 -0
  15. package/es5/web/images/annotation-check.svg +11 -0
  16. package/es5/web/images/annotation-comment.svg +16 -0
  17. package/es5/web/images/annotation-help.svg +26 -0
  18. package/es5/web/images/annotation-insert.svg +10 -0
  19. package/es5/web/images/annotation-key.svg +11 -0
  20. package/es5/web/images/annotation-newparagraph.svg +11 -0
  21. package/es5/web/images/annotation-noicon.svg +7 -0
  22. package/es5/web/images/annotation-note.svg +42 -0
  23. package/es5/web/images/annotation-paragraph.svg +16 -0
  24. package/es5/web/images/loading-icon.gif +0 -0
  25. package/es5/web/images/shadow.png +0 -0
  26. package/es5/web/images/texture.png +0 -0
  27. package/es5/web/pdf_viewer.css +407 -0
  28. package/es5/web/pdf_viewer.js +7757 -0
  29. package/es5/web/pdf_viewer.js.map +1 -0
  30. package/image_decoders/pdf.image_decoders.js +1333 -4839
  31. package/image_decoders/pdf.image_decoders.js.map +1 -1
  32. package/image_decoders/pdf.image_decoders.min.js +22 -1
  33. package/lib/README.md +7 -0
  34. package/lib/core/annotation.js +683 -1066
  35. package/lib/core/arithmetic_decoder.js +81 -97
  36. package/lib/core/bidi.js +54 -46
  37. package/lib/core/ccitt.js +88 -81
  38. package/lib/core/ccitt_stream.js +15 -14
  39. package/lib/core/cff_parser.js +196 -193
  40. package/lib/core/charsets.js +4 -4
  41. package/lib/core/chunked_stream.js +441 -569
  42. package/lib/core/cmap.js +220 -279
  43. package/lib/core/colorspace.js +699 -863
  44. package/lib/core/core_utils.js +59 -80
  45. package/lib/core/crypto.js +379 -437
  46. package/lib/core/document.js +564 -673
  47. package/lib/core/encodings.js +15 -15
  48. package/lib/core/evaluator.js +983 -889
  49. package/lib/core/font_renderer.js +128 -171
  50. package/lib/core/fonts.js +451 -400
  51. package/lib/core/function.js +289 -285
  52. package/lib/core/glyphlist.js +4527 -4527
  53. package/lib/core/image.js +138 -117
  54. package/lib/core/image_utils.js +46 -63
  55. package/lib/core/jbig2.js +324 -332
  56. package/lib/core/jbig2_stream.js +18 -17
  57. package/lib/core/jpeg_stream.js +133 -24
  58. package/lib/core/jpg.js +238 -210
  59. package/lib/core/jpx.js +158 -157
  60. package/lib/core/jpx_stream.js +28 -28
  61. package/lib/core/metrics.js +2928 -2928
  62. package/lib/core/murmurhash3.js +87 -102
  63. package/lib/core/obj.js +1111 -1302
  64. package/lib/core/operator_list.js +55 -42
  65. package/lib/core/parser.js +956 -987
  66. package/lib/core/pattern.js +69 -69
  67. package/lib/core/pdf_manager.js +149 -316
  68. package/lib/core/primitives.js +45 -77
  69. package/lib/core/ps_parser.js +175 -214
  70. package/lib/core/standard_fonts.js +237 -236
  71. package/lib/core/stream.js +83 -77
  72. package/lib/core/type1_parser.js +78 -68
  73. package/lib/core/unicode.js +1654 -1654
  74. package/lib/core/worker.js +148 -196
  75. package/lib/core/worker_stream.js +101 -210
  76. package/lib/display/annotation_layer.js +733 -1155
  77. package/lib/display/api.js +1539 -1928
  78. package/lib/display/api_compatibility.js +10 -8
  79. package/lib/display/canvas.js +159 -158
  80. package/lib/display/content_disposition.js +36 -55
  81. package/lib/display/display_utils.js +298 -551
  82. package/lib/display/fetch_stream.js +181 -305
  83. package/lib/display/font_loader.js +273 -416
  84. package/lib/display/metadata.js +86 -98
  85. package/lib/display/network.js +376 -511
  86. package/lib/display/network_utils.js +20 -19
  87. package/lib/display/node_stream.js +276 -460
  88. package/lib/display/pattern_helper.js +76 -44
  89. package/lib/display/svg.js +1137 -1405
  90. package/lib/display/text_layer.js +75 -82
  91. package/lib/display/transport_stream.js +236 -374
  92. package/lib/display/webgl.js +70 -83
  93. package/lib/display/worker_options.js +3 -3
  94. package/lib/display/xml_parser.js +303 -392
  95. package/lib/examples/node/domstubs.js +37 -37
  96. package/lib/pdf.js +22 -21
  97. package/lib/pdf.worker.js +5 -5
  98. package/lib/shared/compatibility.js +2 -251
  99. package/lib/shared/is_node.js +7 -6
  100. package/lib/shared/message_handler.js +222 -194
  101. package/lib/shared/util.js +269 -405
  102. package/lib/test/unit/annotation_spec.js +1089 -1014
  103. package/lib/test/unit/api_spec.js +617 -544
  104. package/lib/test/unit/bidi_spec.js +7 -7
  105. package/lib/test/unit/cff_parser_spec.js +63 -62
  106. package/lib/test/unit/clitests_helper.js +7 -9
  107. package/lib/test/unit/cmap_spec.js +84 -86
  108. package/lib/test/unit/colorspace_spec.js +154 -154
  109. package/lib/test/unit/core_utils_spec.js +125 -105
  110. package/lib/test/unit/crypto_spec.js +181 -181
  111. package/lib/test/unit/custom_spec.js +22 -24
  112. package/lib/test/unit/display_svg_spec.js +35 -36
  113. package/lib/test/unit/display_utils_spec.js +139 -149
  114. package/lib/test/unit/document_spec.js +16 -16
  115. package/lib/test/unit/encodings_spec.js +12 -34
  116. package/lib/test/unit/evaluator_spec.js +81 -95
  117. package/lib/test/unit/fetch_stream_spec.js +30 -30
  118. package/lib/test/unit/function_spec.js +206 -204
  119. package/lib/test/unit/jasmine-boot.js +48 -32
  120. package/lib/test/unit/message_handler_spec.js +172 -162
  121. package/lib/test/unit/metadata_spec.js +69 -69
  122. package/lib/test/unit/murmurhash3_spec.js +12 -12
  123. package/lib/test/unit/network_spec.js +12 -12
  124. package/lib/test/unit/network_utils_spec.js +152 -152
  125. package/lib/test/unit/node_stream_spec.js +74 -90
  126. package/lib/test/unit/parser_spec.js +107 -113
  127. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  128. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  129. package/lib/test/unit/pdf_history_spec.js +32 -32
  130. package/lib/test/unit/primitives_spec.js +117 -115
  131. package/lib/test/unit/stream_spec.js +16 -14
  132. package/lib/test/unit/test_utils.js +119 -285
  133. package/lib/test/unit/testreporter.js +19 -19
  134. package/lib/test/unit/type1_parser_spec.js +41 -41
  135. package/lib/test/unit/ui_utils_spec.js +318 -426
  136. package/lib/test/unit/unicode_spec.js +42 -42
  137. package/lib/test/unit/util_spec.js +122 -143
  138. package/lib/web/annotation_layer_builder.js +66 -103
  139. package/lib/web/app.js +1166 -1196
  140. package/lib/web/app_options.js +61 -77
  141. package/lib/web/base_viewer.js +804 -850
  142. package/lib/web/chromecom.js +164 -249
  143. package/lib/web/debugger.js +149 -205
  144. package/lib/web/download_manager.js +38 -57
  145. package/lib/web/firefox_print_service.js +35 -30
  146. package/lib/web/firefoxcom.js +175 -374
  147. package/lib/web/genericcom.js +26 -108
  148. package/lib/web/genericl10n.js +24 -153
  149. package/lib/web/grab_to_pan.js +30 -30
  150. package/lib/web/interfaces.js +80 -258
  151. package/lib/web/overlay_manager.js +70 -246
  152. package/lib/web/password_prompt.js +38 -64
  153. package/lib/web/pdf_attachment_viewer.js +105 -130
  154. package/lib/web/pdf_cursor_tools.js +75 -102
  155. package/lib/web/pdf_document_properties.js +227 -376
  156. package/lib/web/pdf_find_bar.js +137 -171
  157. package/lib/web/pdf_find_controller.js +492 -549
  158. package/lib/web/pdf_find_utils.js +13 -13
  159. package/lib/web/pdf_history.js +395 -406
  160. package/lib/web/pdf_link_service.js +302 -349
  161. package/lib/web/pdf_outline_viewer.js +148 -209
  162. package/lib/web/pdf_page_view.js +449 -507
  163. package/lib/web/pdf_presentation_mode.js +304 -357
  164. package/lib/web/pdf_print_service.js +90 -104
  165. package/lib/web/pdf_rendering_queue.js +87 -108
  166. package/lib/web/pdf_sidebar.js +264 -304
  167. package/lib/web/pdf_sidebar_resizer.js +92 -119
  168. package/lib/web/pdf_single_page_viewer.js +77 -126
  169. package/lib/web/pdf_thumbnail_view.js +276 -297
  170. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  171. package/lib/web/pdf_viewer.component.js +20 -21
  172. package/lib/web/pdf_viewer.js +55 -115
  173. package/lib/web/preferences.js +66 -273
  174. package/lib/web/secondary_toolbar.js +164 -196
  175. package/lib/web/text_layer_builder.js +284 -317
  176. package/lib/web/toolbar.js +216 -211
  177. package/lib/web/ui_utils.js +303 -404
  178. package/lib/web/view_history.js +49 -222
  179. package/lib/web/viewer_compatibility.js +7 -5
  180. package/package.json +2 -9
  181. package/web/pdf_viewer.css +25 -18
  182. package/web/pdf_viewer.js +3481 -4764
  183. package/web/pdf_viewer.js.map +1 -1
  184. package/webpack.js +14 -5
  185. package/lib/shared/streams_polyfill.js +0 -43
@@ -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 input = new _stream.StringStream(number);
140
+ const lexer = new _parser.Lexer(input);
143
141
  expect(function () {
144
142
  return lexer.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,