pdfjs-dist 2.0.489 → 2.2.228

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (169) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +18515 -11402
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +48266 -37137
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/external/url/url-lib.js +627 -0
  10. package/image_decoders/pdf.image_decoders.js +11350 -0
  11. package/image_decoders/pdf.image_decoders.js.map +1 -0
  12. package/image_decoders/pdf.image_decoders.min.js +1 -0
  13. package/lib/core/annotation.js +587 -242
  14. package/lib/core/arithmetic_decoder.js +275 -245
  15. package/lib/core/bidi.js +65 -6
  16. package/lib/core/ccitt.js +173 -18
  17. package/lib/core/ccitt_stream.js +15 -6
  18. package/lib/core/cff_parser.js +433 -61
  19. package/lib/core/charsets.js +5 -4
  20. package/lib/core/chunked_stream.js +400 -152
  21. package/lib/core/cmap.js +326 -87
  22. package/lib/core/colorspace.js +874 -594
  23. package/lib/core/core_utils.js +147 -0
  24. package/lib/core/crypto.js +290 -45
  25. package/lib/core/document.js +560 -268
  26. package/lib/core/encodings.js +19 -10
  27. package/lib/core/evaluator.js +1005 -360
  28. package/lib/core/font_renderer.js +331 -97
  29. package/lib/core/fonts.js +812 -195
  30. package/lib/core/function.js +284 -71
  31. package/lib/core/glyphlist.js +4 -3
  32. package/lib/core/image.js +169 -62
  33. package/lib/core/image_utils.js +111 -0
  34. package/lib/core/jbig2.js +479 -66
  35. package/lib/core/jbig2_stream.js +19 -8
  36. package/lib/core/jpeg_stream.js +38 -13
  37. package/lib/core/jpg.js +253 -29
  38. package/lib/core/jpx.js +396 -6
  39. package/lib/core/jpx_stream.js +18 -6
  40. package/lib/core/metrics.js +15 -15
  41. package/lib/core/murmurhash3.js +56 -34
  42. package/lib/core/obj.js +1354 -488
  43. package/lib/core/operator_list.js +144 -31
  44. package/lib/core/parser.js +539 -191
  45. package/lib/core/pattern.js +148 -14
  46. package/lib/core/pdf_manager.js +323 -133
  47. package/lib/core/primitives.js +111 -24
  48. package/lib/core/ps_parser.js +134 -45
  49. package/lib/core/standard_fonts.js +17 -17
  50. package/lib/core/stream.js +313 -34
  51. package/lib/core/type1_parser.js +143 -13
  52. package/lib/core/unicode.js +32 -5
  53. package/lib/core/worker.js +217 -190
  54. package/lib/core/worker_stream.js +277 -0
  55. package/lib/display/annotation_layer.js +450 -133
  56. package/lib/display/api.js +1597 -784
  57. package/lib/display/api_compatibility.js +11 -13
  58. package/lib/display/canvas.js +360 -44
  59. package/lib/display/content_disposition.js +83 -32
  60. package/lib/display/display_utils.js +747 -0
  61. package/lib/display/fetch_stream.js +221 -90
  62. package/lib/display/font_loader.js +468 -236
  63. package/lib/display/metadata.js +38 -16
  64. package/lib/display/network.js +635 -428
  65. package/lib/display/network_utils.js +32 -19
  66. package/lib/display/node_stream.js +367 -175
  67. package/lib/display/pattern_helper.js +81 -31
  68. package/lib/display/svg.js +1235 -519
  69. package/lib/display/text_layer.js +153 -29
  70. package/lib/display/transport_stream.js +345 -94
  71. package/lib/display/webgl.js +64 -18
  72. package/lib/display/worker_options.js +5 -4
  73. package/lib/display/xml_parser.js +166 -53
  74. package/lib/examples/node/domstubs.js +60 -4
  75. package/lib/pdf.js +36 -14
  76. package/lib/pdf.worker.js +5 -3
  77. package/lib/shared/compatibility.js +158 -564
  78. package/lib/shared/global_scope.js +2 -2
  79. package/lib/shared/is_node.js +4 -4
  80. package/lib/shared/message_handler.js +521 -0
  81. package/lib/shared/streams_polyfill.js +21 -17
  82. package/lib/shared/url_polyfill.js +56 -0
  83. package/lib/shared/util.js +243 -710
  84. package/lib/test/unit/annotation_spec.js +870 -401
  85. package/lib/test/unit/api_spec.js +657 -345
  86. package/lib/test/unit/bidi_spec.js +7 -7
  87. package/lib/test/unit/cff_parser_spec.js +54 -11
  88. package/lib/test/unit/clitests_helper.js +10 -8
  89. package/lib/test/unit/cmap_spec.js +95 -41
  90. package/lib/test/unit/colorspace_spec.js +115 -63
  91. package/lib/test/unit/core_utils_spec.js +191 -0
  92. package/lib/test/unit/crypto_spec.js +17 -5
  93. package/lib/test/unit/custom_spec.js +43 -55
  94. package/lib/test/unit/display_svg_spec.js +34 -18
  95. package/lib/test/unit/display_utils_spec.js +273 -0
  96. package/lib/test/unit/document_spec.js +8 -13
  97. package/lib/test/unit/encodings_spec.js +25 -45
  98. package/lib/test/unit/evaluator_spec.js +38 -15
  99. package/lib/test/unit/fetch_stream_spec.js +109 -0
  100. package/lib/test/unit/function_spec.js +17 -5
  101. package/lib/test/unit/jasmine-boot.js +33 -20
  102. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  103. package/lib/test/unit/metadata_spec.js +71 -11
  104. package/lib/test/unit/murmurhash3_spec.js +3 -3
  105. package/lib/test/unit/network_spec.js +19 -54
  106. package/lib/test/unit/network_utils_spec.js +91 -14
  107. package/lib/test/unit/node_stream_spec.js +56 -32
  108. package/lib/test/unit/parser_spec.js +162 -71
  109. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  110. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  111. package/lib/test/unit/pdf_history_spec.js +21 -9
  112. package/lib/test/unit/primitives_spec.js +53 -20
  113. package/lib/test/unit/stream_spec.js +12 -4
  114. package/lib/test/unit/test_utils.js +273 -56
  115. package/lib/test/unit/testreporter.js +21 -3
  116. package/lib/test/unit/type1_parser_spec.js +8 -6
  117. package/lib/test/unit/ui_utils_spec.js +454 -16
  118. package/lib/test/unit/unicode_spec.js +18 -15
  119. package/lib/test/unit/util_spec.js +87 -128
  120. package/lib/web/annotation_layer_builder.js +39 -22
  121. package/lib/web/app.js +1290 -588
  122. package/lib/web/app_options.js +100 -62
  123. package/lib/web/base_viewer.js +511 -182
  124. package/lib/web/chromecom.js +261 -117
  125. package/lib/web/debugger.js +166 -22
  126. package/lib/web/download_manager.js +32 -13
  127. package/lib/web/firefox_print_service.js +20 -10
  128. package/lib/web/firefoxcom.js +315 -80
  129. package/lib/web/genericcom.js +89 -30
  130. package/lib/web/genericl10n.js +142 -30
  131. package/lib/web/grab_to_pan.js +28 -4
  132. package/lib/web/interfaces.js +170 -47
  133. package/lib/web/overlay_manager.js +235 -85
  134. package/lib/web/password_prompt.js +22 -14
  135. package/lib/web/pdf_attachment_viewer.js +38 -18
  136. package/lib/web/pdf_cursor_tools.js +39 -16
  137. package/lib/web/pdf_document_properties.js +255 -136
  138. package/lib/web/pdf_find_bar.js +84 -40
  139. package/lib/web/pdf_find_controller.js +495 -184
  140. package/lib/web/pdf_find_utils.js +111 -0
  141. package/lib/web/pdf_history.js +190 -53
  142. package/lib/web/pdf_link_service.js +138 -77
  143. package/lib/web/pdf_outline_viewer.js +122 -46
  144. package/lib/web/pdf_page_view.js +191 -67
  145. package/lib/web/pdf_presentation_mode.js +99 -34
  146. package/lib/web/pdf_print_service.js +61 -13
  147. package/lib/web/pdf_rendering_queue.js +28 -9
  148. package/lib/web/pdf_sidebar.js +141 -81
  149. package/lib/web/pdf_sidebar_resizer.js +42 -16
  150. package/lib/web/pdf_single_page_viewer.js +74 -66
  151. package/lib/web/pdf_thumbnail_view.js +104 -33
  152. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  153. package/lib/web/pdf_viewer.component.js +112 -32
  154. package/lib/web/pdf_viewer.js +91 -52
  155. package/lib/web/preferences.js +284 -89
  156. package/lib/web/secondary_toolbar.js +165 -40
  157. package/lib/web/text_layer_builder.js +134 -59
  158. package/lib/web/toolbar.js +78 -43
  159. package/lib/web/ui_utils.js +462 -136
  160. package/lib/web/view_history.js +215 -67
  161. package/lib/web/viewer_compatibility.js +4 -13
  162. package/package.json +5 -4
  163. package/web/pdf_viewer.css +79 -11
  164. package/web/pdf_viewer.js +6107 -3748
  165. package/web/pdf_viewer.js.map +1 -1
  166. package/lib/display/dom_utils.js +0 -309
  167. package/lib/test/unit/dom_utils_spec.js +0 -89
  168. package/lib/test/unit/fonts_spec.js +0 -81
  169. package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,24 +19,30 @@
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 _primitives = require('../../core/primitives');
24
+ var _primitives = require("../../core/primitives");
25
25
 
26
- var _test_utils = require('./test_utils');
26
+ var _test_utils = require("./test_utils");
27
27
 
28
28
  describe('primitives', function () {
29
29
  describe('Name', function () {
30
30
  it('should retain the given name', function () {
31
31
  var givenName = 'Font';
32
+
32
33
  var name = _primitives.Name.get(givenName);
34
+
33
35
  expect(name.name).toEqual(givenName);
34
36
  });
35
37
  it('should create only one object for a name and cache it', function () {
36
38
  var firstFont = _primitives.Name.get('Font');
39
+
37
40
  var secondFont = _primitives.Name.get('Font');
41
+
38
42
  var firstSubtype = _primitives.Name.get('Subtype');
43
+
39
44
  var secondSubtype = _primitives.Name.get('Subtype');
45
+
40
46
  expect(firstFont).toBe(secondFont);
41
47
  expect(firstSubtype).toBe(secondSubtype);
42
48
  expect(firstFont).not.toBe(firstSubtype);
@@ -45,14 +51,20 @@ describe('primitives', function () {
45
51
  describe('Cmd', function () {
46
52
  it('should retain the given cmd name', function () {
47
53
  var givenCmd = 'BT';
54
+
48
55
  var cmd = _primitives.Cmd.get(givenCmd);
56
+
49
57
  expect(cmd.cmd).toEqual(givenCmd);
50
58
  });
51
59
  it('should create only one object for a command and cache it', function () {
52
60
  var firstBT = _primitives.Cmd.get('BT');
61
+
53
62
  var secondBT = _primitives.Cmd.get('BT');
63
+
54
64
  var firstET = _primitives.Cmd.get('ET');
65
+
55
66
  var secondET = _primitives.Cmd.get('ET');
67
+
56
68
  expect(firstBT).toBe(secondBT);
57
69
  expect(firstET).toBe(secondET);
58
70
  expect(firstBT).not.toBe(firstET);
@@ -63,12 +75,14 @@ describe('primitives', function () {
63
75
  expect(dict.has()).toBeFalsy();
64
76
  expect(dict.has('Prev')).toBeFalsy();
65
77
  };
78
+
66
79
  var checkInvalidKeyValues = function checkInvalidKeyValues(dict) {
67
80
  expect(dict.get()).toBeUndefined();
68
81
  expect(dict.get('Prev')).toBeUndefined();
69
82
  expect(dict.get('Decode', 'D')).toBeUndefined();
70
83
  expect(dict.get('FontFile', 'FontFile2', 'FontFile3')).toBeNull();
71
84
  };
85
+
72
86
  var emptyDict, dictWithSizeKey, dictWithManyKeys;
73
87
  var storedSize = 42;
74
88
  var testFontFile = 'file1';
@@ -121,7 +135,7 @@ describe('primitives', function () {
121
135
  expect(values[0]).toBeUndefined();
122
136
  expect(values[1]).toBeNull();
123
137
  done();
124
- }).catch(function (reason) {
138
+ })["catch"](function (reason) {
125
139
  done.fail(reason);
126
140
  });
127
141
  });
@@ -132,7 +146,7 @@ describe('primitives', function () {
132
146
  expect(values[1]).toEqual(testFontFile2);
133
147
  expect(values[2]).toEqual(testFontFile);
134
148
  done();
135
- }).catch(function (reason) {
149
+ })["catch"](function (reason) {
136
150
  done.fail(reason);
137
151
  });
138
152
  });
@@ -147,7 +161,8 @@ describe('primitives', function () {
147
161
  expect(callbackSpyCalls.count()).toEqual(3);
148
162
  });
149
163
  it('should handle keys pointing to indirect objects, both sync and async', function (done) {
150
- var fontRef = new _primitives.Ref(1, 0);
164
+ var fontRef = _primitives.Ref.get(1, 0);
165
+
151
166
  var xref = new _test_utils.XRefMock([{
152
167
  ref: fontRef,
153
168
  data: testFontFile
@@ -159,13 +174,14 @@ describe('primitives', function () {
159
174
  fontDict.getAsync('FontFile', 'FontFile2', 'FontFile3').then(function (value) {
160
175
  expect(value).toEqual(testFontFile);
161
176
  done();
162
- }).catch(function (reason) {
177
+ })["catch"](function (reason) {
163
178
  done.fail(reason);
164
179
  });
165
180
  });
166
181
  it('should handle arrays containing indirect objects', function () {
167
- var minCoordRef = new _primitives.Ref(1, 0),
168
- maxCoordRef = new _primitives.Ref(2, 0);
182
+ var minCoordRef = _primitives.Ref.get(1, 0),
183
+ maxCoordRef = _primitives.Ref.get(2, 0);
184
+
169
185
  var minCoord = 0,
170
186
  maxCoord = 1;
171
187
  var xref = new _test_utils.XRefMock([{
@@ -195,7 +211,9 @@ describe('primitives', function () {
195
211
  var expectedKeys = ['FontFile', 'FontFile2', 'FontFile3', 'Size'];
196
212
  var fontFileDict = new _primitives.Dict();
197
213
  fontFileDict.set('FontFile', 'Type1 font file');
214
+
198
215
  var mergedDict = _primitives.Dict.merge(null, [dictWithManyKeys, dictWithSizeKey, fontFileDict]);
216
+
199
217
  var mergedKeys = mergedDict.getKeys();
200
218
  expect(mergedKeys.sort()).toEqual(expectedKeys);
201
219
  expect(mergedDict.get('FontFile')).toEqual(testFontFile);
@@ -205,24 +223,30 @@ describe('primitives', function () {
205
223
  it('should retain the stored values', function () {
206
224
  var storedNum = 4;
207
225
  var storedGen = 2;
208
- var ref = new _primitives.Ref(storedNum, storedGen);
226
+
227
+ var ref = _primitives.Ref.get(storedNum, storedGen);
228
+
209
229
  expect(ref.num).toEqual(storedNum);
210
230
  expect(ref.gen).toEqual(storedGen);
211
231
  });
212
232
  });
213
233
  describe('RefSet', function () {
214
234
  it('should have a stored value', function () {
215
- var ref = new _primitives.Ref(4, 2);
235
+ var ref = _primitives.Ref.get(4, 2);
236
+
216
237
  var refset = new _primitives.RefSet();
217
238
  refset.put(ref);
218
239
  expect(refset.has(ref)).toBeTruthy();
219
240
  });
220
241
  it('should not have an unknown value', function () {
221
- var ref = new _primitives.Ref(4, 2);
242
+ var ref = _primitives.Ref.get(4, 2);
243
+
222
244
  var refset = new _primitives.RefSet();
223
245
  expect(refset.has(ref)).toBeFalsy();
224
246
  refset.put(ref);
225
- var anotherRef = new _primitives.Ref(2, 4);
247
+
248
+ var anotherRef = _primitives.Ref.get(2, 4);
249
+
226
250
  expect(refset.has(anotherRef)).toBeFalsy();
227
251
  });
228
252
  });
@@ -233,10 +257,12 @@ describe('primitives', function () {
233
257
  });
234
258
  it('handles names', function () {
235
259
  var name = _primitives.Name.get('Font');
260
+
236
261
  expect((0, _primitives.isName)(name)).toEqual(true);
237
262
  });
238
263
  it('handles names with name check', function () {
239
264
  var name = _primitives.Name.get('Font');
265
+
240
266
  expect((0, _primitives.isName)(name, 'Font')).toEqual(true);
241
267
  expect((0, _primitives.isName)(name, 'Subtype')).toEqual(false);
242
268
  });
@@ -248,10 +274,12 @@ describe('primitives', function () {
248
274
  });
249
275
  it('handles commands', function () {
250
276
  var cmd = _primitives.Cmd.get('BT');
277
+
251
278
  expect((0, _primitives.isCmd)(cmd)).toEqual(true);
252
279
  });
253
280
  it('handles commands with cmd check', function () {
254
281
  var cmd = _primitives.Cmd.get('BT');
282
+
255
283
  expect((0, _primitives.isCmd)(cmd, 'BT')).toEqual(true);
256
284
  expect((0, _primitives.isCmd)(cmd, 'ET')).toEqual(false);
257
285
  });
@@ -279,19 +307,24 @@ describe('primitives', function () {
279
307
  expect((0, _primitives.isRef)(nonRef)).toEqual(false);
280
308
  });
281
309
  it('handles refs', function () {
282
- var ref = new _primitives.Ref(1, 0);
310
+ var ref = _primitives.Ref.get(1, 0);
311
+
283
312
  expect((0, _primitives.isRef)(ref)).toEqual(true);
284
313
  });
285
314
  });
286
315
  describe('isRefsEqual', function () {
287
- it('should handle different Refs pointing to the same object', function () {
288
- var ref1 = new _primitives.Ref(1, 0);
289
- var ref2 = new _primitives.Ref(1, 0);
316
+ it('should handle Refs pointing to the same object', function () {
317
+ var ref1 = _primitives.Ref.get(1, 0);
318
+
319
+ var ref2 = _primitives.Ref.get(1, 0);
320
+
290
321
  expect((0, _primitives.isRefsEqual)(ref1, ref2)).toEqual(true);
291
322
  });
292
323
  it('should handle Refs pointing to different objects', function () {
293
- var ref1 = new _primitives.Ref(1, 0);
294
- var ref2 = new _primitives.Ref(2, 0);
324
+ var ref1 = _primitives.Ref.get(1, 0);
325
+
326
+ var ref2 = _primitives.Ref.get(2, 0);
327
+
295
328
  expect((0, _primitives.isRefsEqual)(ref1, ref2)).toEqual(false);
296
329
  });
297
330
  });
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,11 +19,11 @@
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 _stream = require('../../core/stream');
24
+ var _stream = require("../../core/stream");
25
25
 
26
- var _primitives = require('../../core/primitives');
26
+ var _primitives = require("../../core/primitives");
27
27
 
28
28
  describe('stream', function () {
29
29
  beforeEach(function () {
@@ -32,20 +32,25 @@ describe('stream', function () {
32
32
  return {
33
33
  compare: function compare(actual, expected) {
34
34
  var result = {};
35
+
35
36
  if (actual.length !== expected.length) {
36
37
  result.pass = false;
37
38
  result.message = 'Array length: ' + actual.length + ', expected: ' + expected.length;
38
39
  return result;
39
40
  }
41
+
40
42
  result.pass = true;
43
+
41
44
  for (var i = 0, ii = expected.length; i < ii; i++) {
42
45
  var a = actual[i],
43
46
  b = expected[i];
47
+
44
48
  if (a !== b) {
45
49
  result.pass = false;
46
50
  break;
47
51
  }
48
52
  }
53
+
49
54
  return result;
50
55
  }
51
56
  };
@@ -63,6 +68,9 @@ describe('stream', function () {
63
68
  var predictor = new _stream.PredictorStream(input, 9, dict);
64
69
  var result = predictor.getBytes(6);
65
70
  expect(result).toMatchTypedArray(new Uint8Array([100, 3, 101, 2, 102, 1]));
71
+ predictor.reset();
72
+ var clampedResult = predictor.getBytes(6, true);
73
+ expect(clampedResult).toEqual(new Uint8ClampedArray([100, 3, 101, 2, 102, 1]));
66
74
  });
67
75
  });
68
76
  });