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.
@@ -26,15 +26,15 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.Jbig2Stream = void 0;
28
28
 
29
- var _primitives = require("./primitives");
29
+ var _primitives = require("./primitives.js");
30
30
 
31
- var _stream = require("./stream");
31
+ var _stream = require("./stream.js");
32
32
 
33
- var _jbig = require("./jbig2");
33
+ var _jbig = require("./jbig2.js");
34
34
 
35
- var _util = require("../shared/util");
35
+ var _util = require("../shared/util.js");
36
36
 
37
- var Jbig2Stream = function Jbig2StreamClosure() {
37
+ const Jbig2Stream = function Jbig2StreamClosure() {
38
38
  function Jbig2Stream(stream, maybeLength, dict, params) {
39
39
  this.stream = stream;
40
40
  this.maybeLength = maybeLength;
@@ -45,10 +45,11 @@ var Jbig2Stream = function Jbig2StreamClosure() {
45
45
  }
46
46
 
47
47
  Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);
48
- Object.defineProperty(Jbig2Stream.prototype, 'bytes', {
49
- get: function get() {
50
- return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));
48
+ Object.defineProperty(Jbig2Stream.prototype, "bytes", {
49
+ get() {
50
+ return (0, _util.shadow)(this, "bytes", this.stream.getBytes(this.maybeLength));
51
51
  },
52
+
52
53
  configurable: true
53
54
  });
54
55
 
@@ -59,14 +60,14 @@ var Jbig2Stream = function Jbig2StreamClosure() {
59
60
  return;
60
61
  }
61
62
 
62
- var jbig2Image = new _jbig.Jbig2Image();
63
- var chunks = [];
63
+ const jbig2Image = new _jbig.Jbig2Image();
64
+ const chunks = [];
64
65
 
65
66
  if ((0, _primitives.isDict)(this.params)) {
66
- var globalsStream = this.params.get('JBIG2Globals');
67
+ const globalsStream = this.params.get("JBIG2Globals");
67
68
 
68
69
  if ((0, _primitives.isStream)(globalsStream)) {
69
- var globals = globalsStream.getBytes();
70
+ const globals = globalsStream.getBytes();
70
71
  chunks.push({
71
72
  data: globals,
72
73
  start: 0,
@@ -80,11 +81,11 @@ var Jbig2Stream = function Jbig2StreamClosure() {
80
81
  start: 0,
81
82
  end: this.bytes.length
82
83
  });
83
- var data = jbig2Image.parseChunks(chunks);
84
- var dataLength = data.length;
84
+ const data = jbig2Image.parseChunks(chunks);
85
+ const dataLength = data.length;
85
86
 
86
- for (var i = 0; i < dataLength; i++) {
87
- data[i] ^= 0xFF;
87
+ for (let i = 0; i < dataLength; i++) {
88
+ data[i] ^= 0xff;
88
89
  }
89
90
 
90
91
  this.buffer = data;
@@ -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.
@@ -26,20 +26,20 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.JpegStream = void 0;
28
28
 
29
- var _util = require("../shared/util");
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _stream = require("./stream");
31
+ var _stream = require("./stream.js");
32
32
 
33
- var _primitives = require("./primitives");
33
+ var _primitives = require("./primitives.js");
34
34
 
35
- var _jpg = require("./jpg");
35
+ var _jpg = require("./jpg.js");
36
36
 
37
- var JpegStream = function JpegStreamClosure() {
37
+ const JpegStream = function JpegStreamClosure() {
38
38
  function JpegStream(stream, maybeLength, dict, params) {
39
- var ch;
39
+ let ch;
40
40
 
41
41
  while ((ch = stream.getByte()) !== -1) {
42
- if (ch === 0xFF) {
42
+ if (ch === 0xff) {
43
43
  stream.skip(-1);
44
44
  break;
45
45
  }
@@ -54,9 +54,9 @@ var JpegStream = function JpegStreamClosure() {
54
54
  }
55
55
 
56
56
  JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);
57
- Object.defineProperty(JpegStream.prototype, 'bytes', {
57
+ Object.defineProperty(JpegStream.prototype, "bytes", {
58
58
  get: function JpegStream_bytes() {
59
- return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));
59
+ return (0, _util.shadow)(this, "bytes", this.stream.getBytes(this.maybeLength));
60
60
  },
61
61
  configurable: true
62
62
  });
@@ -68,20 +68,20 @@ var JpegStream = function JpegStreamClosure() {
68
68
  return;
69
69
  }
70
70
 
71
- var jpegOptions = {
71
+ const jpegOptions = {
72
72
  decodeTransform: undefined,
73
73
  colorTransform: undefined
74
74
  };
75
- var decodeArr = this.dict.getArray('Decode', 'D');
75
+ const decodeArr = this.dict.getArray("Decode", "D");
76
76
 
77
77
  if (this.forceRGB && Array.isArray(decodeArr)) {
78
- var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;
79
- var decodeArrLength = decodeArr.length;
80
- var transform = new Int32Array(decodeArrLength);
81
- var transformNeeded = false;
82
- var maxValue = (1 << bitsPerComponent) - 1;
78
+ const bitsPerComponent = this.dict.get("BitsPerComponent") || 8;
79
+ const decodeArrLength = decodeArr.length;
80
+ const transform = new Int32Array(decodeArrLength);
81
+ let transformNeeded = false;
82
+ const maxValue = (1 << bitsPerComponent) - 1;
83
83
 
84
- for (var i = 0; i < decodeArrLength; i += 2) {
84
+ for (let i = 0; i < decodeArrLength; i += 2) {
85
85
  transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;
86
86
  transform[i + 1] = decodeArr[i] * maxValue | 0;
87
87
 
@@ -96,16 +96,16 @@ var JpegStream = function JpegStreamClosure() {
96
96
  }
97
97
 
98
98
  if ((0, _primitives.isDict)(this.params)) {
99
- var colorTransform = this.params.get('ColorTransform');
99
+ const colorTransform = this.params.get("ColorTransform");
100
100
 
101
101
  if (Number.isInteger(colorTransform)) {
102
102
  jpegOptions.colorTransform = colorTransform;
103
103
  }
104
104
  }
105
105
 
106
- var jpegImage = new _jpg.JpegImage(jpegOptions);
106
+ const jpegImage = new _jpg.JpegImage(jpegOptions);
107
107
  jpegImage.parse(this.bytes);
108
- var data = jpegImage.getData({
108
+ const data = jpegImage.getData({
109
109
  width: this.drawWidth,
110
110
  height: this.drawHeight,
111
111
  forceRGB: this.forceRGB,
@@ -116,9 +116,118 @@ var JpegStream = function JpegStreamClosure() {
116
116
  this.eof = true;
117
117
  };
118
118
 
119
- JpegStream.prototype.getIR = function () {
120
- var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
121
- return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);
119
+ Object.defineProperty(JpegStream.prototype, "maybeValidDimensions", {
120
+ get: function JpegStream_maybeValidDimensions() {
121
+ const {
122
+ dict,
123
+ stream
124
+ } = this;
125
+ const dictHeight = dict.get("Height", "H");
126
+ const startPos = stream.pos;
127
+ let validDimensions = true,
128
+ foundSOF = false,
129
+ b;
130
+
131
+ while ((b = stream.getByte()) !== -1) {
132
+ if (b !== 0xff) {
133
+ continue;
134
+ }
135
+
136
+ switch (stream.getByte()) {
137
+ case 0xc0:
138
+ case 0xc1:
139
+ case 0xc2:
140
+ foundSOF = true;
141
+ stream.pos += 2;
142
+ stream.pos += 1;
143
+ const scanLines = stream.getUint16();
144
+
145
+ if (scanLines === dictHeight) {
146
+ break;
147
+ }
148
+
149
+ if (scanLines === 0) {
150
+ validDimensions = false;
151
+ break;
152
+ }
153
+
154
+ if (scanLines > dictHeight * 10) {
155
+ validDimensions = false;
156
+ break;
157
+ }
158
+
159
+ break;
160
+
161
+ case 0xc3:
162
+ case 0xc5:
163
+ case 0xc6:
164
+ case 0xc7:
165
+ case 0xc9:
166
+ case 0xca:
167
+ case 0xcb:
168
+ case 0xcd:
169
+ case 0xce:
170
+ case 0xcf:
171
+ foundSOF = true;
172
+ break;
173
+
174
+ case 0xc4:
175
+ case 0xcc:
176
+ case 0xda:
177
+ case 0xdb:
178
+ case 0xdc:
179
+ case 0xdd:
180
+ case 0xde:
181
+ case 0xdf:
182
+ case 0xe0:
183
+ case 0xe1:
184
+ case 0xe2:
185
+ case 0xe3:
186
+ case 0xe4:
187
+ case 0xe5:
188
+ case 0xe6:
189
+ case 0xe7:
190
+ case 0xe8:
191
+ case 0xe9:
192
+ case 0xea:
193
+ case 0xeb:
194
+ case 0xec:
195
+ case 0xed:
196
+ case 0xee:
197
+ case 0xef:
198
+ case 0xfe:
199
+ const markerLength = stream.getUint16();
200
+
201
+ if (markerLength > 2) {
202
+ stream.skip(markerLength - 2);
203
+ } else {
204
+ stream.skip(-2);
205
+ }
206
+
207
+ break;
208
+
209
+ case 0xff:
210
+ stream.skip(-1);
211
+ break;
212
+
213
+ case 0xd9:
214
+ foundSOF = true;
215
+ break;
216
+ }
217
+
218
+ if (foundSOF) {
219
+ break;
220
+ }
221
+ }
222
+
223
+ stream.pos = startPos;
224
+ return (0, _util.shadow)(this, "maybeValidDimensions", validDimensions);
225
+ },
226
+ configurable: true
227
+ });
228
+
229
+ JpegStream.prototype.getIR = function (forceDataSchema = false) {
230
+ return (0, _util.createObjectURL)(this.bytes, "image/jpeg", forceDataSchema);
122
231
  };
123
232
 
124
233
  return JpegStream;