pdfjs-dist 2.0.550 → 2.3.200

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 (168) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +21618 -14369
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +22758 -11399
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/image_decoders/pdf.image_decoders.js +11500 -0
  10. package/image_decoders/pdf.image_decoders.js.map +1 -0
  11. package/image_decoders/pdf.image_decoders.min.js +1 -0
  12. package/lib/core/annotation.js +767 -258
  13. package/lib/core/arithmetic_decoder.js +275 -245
  14. package/lib/core/bidi.js +65 -6
  15. package/lib/core/ccitt.js +173 -18
  16. package/lib/core/ccitt_stream.js +15 -6
  17. package/lib/core/cff_parser.js +433 -61
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +428 -157
  20. package/lib/core/cmap.js +326 -87
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/core_utils.js +173 -0
  23. package/lib/core/crypto.js +290 -45
  24. package/lib/core/document.js +575 -272
  25. package/lib/core/encodings.js +19 -10
  26. package/lib/core/evaluator.js +1032 -351
  27. package/lib/core/font_renderer.js +331 -97
  28. package/lib/core/fonts.js +813 -196
  29. package/lib/core/function.js +253 -27
  30. package/lib/core/glyphlist.js +5 -3
  31. package/lib/core/image.js +169 -62
  32. package/lib/core/image_utils.js +111 -0
  33. package/lib/core/jbig2.js +502 -72
  34. package/lib/core/jbig2_stream.js +19 -8
  35. package/lib/core/jpeg_stream.js +38 -13
  36. package/lib/core/jpg.js +293 -52
  37. package/lib/core/jpx.js +419 -12
  38. package/lib/core/jpx_stream.js +18 -6
  39. package/lib/core/metrics.js +15 -15
  40. package/lib/core/murmurhash3.js +56 -34
  41. package/lib/core/obj.js +1368 -500
  42. package/lib/core/operator_list.js +159 -43
  43. package/lib/core/parser.js +544 -199
  44. package/lib/core/pattern.js +170 -21
  45. package/lib/core/pdf_manager.js +324 -134
  46. package/lib/core/primitives.js +169 -61
  47. package/lib/core/ps_parser.js +134 -45
  48. package/lib/core/standard_fonts.js +17 -17
  49. package/lib/core/stream.js +327 -34
  50. package/lib/core/type1_parser.js +148 -8
  51. package/lib/core/unicode.js +32 -5
  52. package/lib/core/worker.js +215 -229
  53. package/lib/core/worker_stream.js +277 -0
  54. package/lib/display/annotation_layer.js +618 -192
  55. package/lib/display/api.js +1798 -882
  56. package/lib/display/api_compatibility.js +5 -10
  57. package/lib/display/canvas.js +366 -45
  58. package/lib/display/content_disposition.js +71 -24
  59. package/lib/display/display_utils.js +777 -0
  60. package/lib/display/fetch_stream.js +205 -87
  61. package/lib/display/font_loader.js +468 -236
  62. package/lib/display/metadata.js +38 -16
  63. package/lib/display/network.js +635 -428
  64. package/lib/display/network_utils.js +38 -19
  65. package/lib/display/node_stream.js +367 -175
  66. package/lib/display/pattern_helper.js +103 -36
  67. package/lib/display/svg.js +1232 -519
  68. package/lib/display/text_layer.js +208 -75
  69. package/lib/display/transport_stream.js +345 -94
  70. package/lib/display/webgl.js +64 -18
  71. package/lib/display/worker_options.js +5 -4
  72. package/lib/display/xml_parser.js +166 -53
  73. package/lib/examples/node/domstubs.js +60 -4
  74. package/lib/pdf.js +35 -14
  75. package/lib/pdf.worker.js +5 -3
  76. package/lib/shared/compatibility.js +170 -572
  77. package/lib/shared/global_scope.js +2 -2
  78. package/lib/shared/is_node.js +4 -4
  79. package/lib/shared/message_handler.js +216 -163
  80. package/lib/shared/streams_polyfill.js +21 -17
  81. package/lib/shared/util.js +495 -385
  82. package/lib/test/unit/annotation_spec.js +1464 -401
  83. package/lib/test/unit/api_spec.js +718 -361
  84. package/lib/test/unit/bidi_spec.js +7 -7
  85. package/lib/test/unit/cff_parser_spec.js +54 -11
  86. package/lib/test/unit/clitests_helper.js +9 -10
  87. package/lib/test/unit/cmap_spec.js +95 -41
  88. package/lib/test/unit/colorspace_spec.js +115 -63
  89. package/lib/test/unit/core_utils_spec.js +191 -0
  90. package/lib/test/unit/crypto_spec.js +17 -5
  91. package/lib/test/unit/custom_spec.js +43 -55
  92. package/lib/test/unit/display_svg_spec.js +34 -18
  93. package/lib/test/unit/display_utils_spec.js +273 -0
  94. package/lib/test/unit/document_spec.js +8 -13
  95. package/lib/test/unit/encodings_spec.js +25 -45
  96. package/lib/test/unit/evaluator_spec.js +59 -20
  97. package/lib/test/unit/fetch_stream_spec.js +111 -0
  98. package/lib/test/unit/function_spec.js +17 -5
  99. package/lib/test/unit/jasmine-boot.js +33 -20
  100. package/lib/test/unit/message_handler_spec.js +30 -13
  101. package/lib/test/unit/metadata_spec.js +71 -11
  102. package/lib/test/unit/murmurhash3_spec.js +3 -3
  103. package/lib/test/unit/network_spec.js +22 -55
  104. package/lib/test/unit/network_utils_spec.js +105 -14
  105. package/lib/test/unit/node_stream_spec.js +58 -34
  106. package/lib/test/unit/parser_spec.js +162 -71
  107. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  108. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  109. package/lib/test/unit/pdf_history_spec.js +21 -9
  110. package/lib/test/unit/primitives_spec.js +55 -22
  111. package/lib/test/unit/stream_spec.js +12 -4
  112. package/lib/test/unit/test_utils.js +273 -56
  113. package/lib/test/unit/testreporter.js +21 -3
  114. package/lib/test/unit/type1_parser_spec.js +9 -7
  115. package/lib/test/unit/ui_utils_spec.js +236 -36
  116. package/lib/test/unit/unicode_spec.js +18 -15
  117. package/lib/test/unit/util_spec.js +87 -128
  118. package/lib/web/annotation_layer_builder.js +39 -22
  119. package/lib/web/app.js +1252 -609
  120. package/lib/web/app_options.js +103 -65
  121. package/lib/web/base_viewer.js +522 -242
  122. package/lib/web/chromecom.js +259 -117
  123. package/lib/web/debugger.js +166 -22
  124. package/lib/web/download_manager.js +31 -12
  125. package/lib/web/firefox_print_service.js +27 -14
  126. package/lib/web/firefoxcom.js +318 -78
  127. package/lib/web/genericcom.js +89 -30
  128. package/lib/web/genericl10n.js +142 -30
  129. package/lib/web/grab_to_pan.js +28 -4
  130. package/lib/web/interfaces.js +174 -47
  131. package/lib/web/overlay_manager.js +235 -85
  132. package/lib/web/password_prompt.js +22 -14
  133. package/lib/web/pdf_attachment_viewer.js +38 -18
  134. package/lib/web/pdf_cursor_tools.js +39 -16
  135. package/lib/web/pdf_document_properties.js +255 -136
  136. package/lib/web/pdf_find_bar.js +84 -40
  137. package/lib/web/pdf_find_controller.js +495 -184
  138. package/lib/web/pdf_find_utils.js +111 -0
  139. package/lib/web/pdf_history.js +190 -53
  140. package/lib/web/pdf_link_service.js +144 -79
  141. package/lib/web/pdf_outline_viewer.js +124 -47
  142. package/lib/web/pdf_page_view.js +194 -74
  143. package/lib/web/pdf_presentation_mode.js +99 -34
  144. package/lib/web/pdf_print_service.js +59 -13
  145. package/lib/web/pdf_rendering_queue.js +28 -9
  146. package/lib/web/pdf_sidebar.js +144 -81
  147. package/lib/web/pdf_sidebar_resizer.js +42 -16
  148. package/lib/web/pdf_single_page_viewer.js +74 -66
  149. package/lib/web/pdf_thumbnail_view.js +104 -33
  150. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  151. package/lib/web/pdf_viewer.component.js +112 -32
  152. package/lib/web/pdf_viewer.js +82 -87
  153. package/lib/web/preferences.js +284 -91
  154. package/lib/web/secondary_toolbar.js +132 -59
  155. package/lib/web/text_layer_builder.js +134 -59
  156. package/lib/web/toolbar.js +80 -43
  157. package/lib/web/ui_utils.js +400 -134
  158. package/lib/web/view_history.js +215 -67
  159. package/lib/web/viewer_compatibility.js +3 -8
  160. package/package.json +3 -2
  161. package/web/pdf_viewer.css +23 -15
  162. package/web/pdf_viewer.js +3429 -1245
  163. package/web/pdf_viewer.js.map +1 -1
  164. package/external/streams/streams-lib.js +0 -3962
  165. package/lib/display/dom_utils.js +0 -429
  166. package/lib/test/unit/dom_utils_spec.js +0 -89
  167. package/lib/test/unit/fonts_spec.js +0 -81
  168. 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,17 +19,25 @@
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
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
+ exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
27
28
 
28
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
29
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
30
+
31
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
32
+
33
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
34
+
35
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
36
 
30
37
  function getFilenameFromContentDispositionHeader(contentDisposition) {
31
38
  var needsEncodingFixup = true;
32
39
  var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition);
40
+
33
41
  if (tmp) {
34
42
  tmp = tmp[1];
35
43
  var filename = rfc2616unquote(tmp);
@@ -38,32 +46,43 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
38
46
  filename = rfc2047decode(filename);
39
47
  return fixupEncoding(filename);
40
48
  }
49
+
41
50
  tmp = rfc2231getparam(contentDisposition);
51
+
42
52
  if (tmp) {
43
53
  var _filename = rfc2047decode(tmp);
54
+
44
55
  return fixupEncoding(_filename);
45
56
  }
57
+
46
58
  tmp = toParamRegExp('filename', 'i').exec(contentDisposition);
59
+
47
60
  if (tmp) {
48
61
  tmp = tmp[1];
62
+
49
63
  var _filename2 = rfc2616unquote(tmp);
64
+
50
65
  _filename2 = rfc2047decode(_filename2);
51
66
  return fixupEncoding(_filename2);
52
67
  }
68
+
53
69
  function toParamRegExp(attributePattern, flags) {
54
70
  return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags);
55
71
  }
72
+
56
73
  function textdecode(encoding, value) {
57
74
  if (encoding) {
58
75
  if (!/^[\x00-\xFF]+$/.test(value)) {
59
76
  return value;
60
77
  }
78
+
61
79
  try {
62
- var decoder = new TextDecoder(encoding, { fatal: true });
63
- var bytes = new Array(value.length);
64
- for (var i = 0; i < value.length; ++i) {
65
- bytes[i] = value.charCodeAt(i);
66
- }
80
+ var decoder = new TextDecoder(encoding, {
81
+ fatal: true
82
+ });
83
+ var bytes = Array.from(value, function (ch) {
84
+ return ch.charCodeAt(0) & 0xFF;
85
+ });
67
86
  value = decoder.decode(new Uint8Array(bytes));
68
87
  needsEncodingFixup = false;
69
88
  } catch (e) {
@@ -75,21 +94,27 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
75
94
  }
76
95
  }
77
96
  }
97
+
78
98
  return value;
79
99
  }
100
+
80
101
  function fixupEncoding(value) {
81
102
  if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
82
103
  value = textdecode('utf-8', value);
104
+
83
105
  if (needsEncodingFixup) {
84
106
  value = textdecode('iso-8859-1', value);
85
107
  }
86
108
  }
109
+
87
110
  return value;
88
111
  }
112
+
89
113
  function rfc2231getparam(contentDisposition) {
90
114
  var matches = [],
91
- match = void 0;
115
+ match;
92
116
  var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig');
117
+
93
118
  while ((match = iter.exec(contentDisposition)) !== null) {
94
119
  var _match = match,
95
120
  _match2 = _slicedToArray(_match, 4),
@@ -98,64 +123,84 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
98
123
  part = _match2[3];
99
124
 
100
125
  n = parseInt(n, 10);
126
+
101
127
  if (n in matches) {
102
128
  if (n === 0) {
103
129
  break;
104
130
  }
131
+
105
132
  continue;
106
133
  }
134
+
107
135
  matches[n] = [quot, part];
108
136
  }
137
+
109
138
  var parts = [];
110
- for (var _n = 0; _n < matches.length; ++_n) {
111
- if (!(_n in matches)) {
139
+
140
+ for (var n = 0; n < matches.length; ++n) {
141
+ if (!(n in matches)) {
112
142
  break;
113
143
  }
114
144
 
115
- var _matches$_n = _slicedToArray(matches[_n], 2),
116
- _quot = _matches$_n[0],
117
- _part = _matches$_n[1];
145
+ var _matches$n = _slicedToArray(matches[n], 2),
146
+ quot = _matches$n[0],
147
+ part = _matches$n[1];
148
+
149
+ part = rfc2616unquote(part);
150
+
151
+ if (quot) {
152
+ part = unescape(part);
118
153
 
119
- _part = rfc2616unquote(_part);
120
- if (_quot) {
121
- _part = unescape(_part);
122
- if (_n === 0) {
123
- _part = rfc5987decode(_part);
154
+ if (n === 0) {
155
+ part = rfc5987decode(part);
124
156
  }
125
157
  }
126
- parts.push(_part);
158
+
159
+ parts.push(part);
127
160
  }
161
+
128
162
  return parts.join('');
129
163
  }
164
+
130
165
  function rfc2616unquote(value) {
131
- if (value.charAt(0) === '"') {
166
+ if (value.startsWith('"')) {
132
167
  var parts = value.slice(1).split('\\"');
168
+
133
169
  for (var i = 0; i < parts.length; ++i) {
134
170
  var quotindex = parts[i].indexOf('"');
171
+
135
172
  if (quotindex !== -1) {
136
173
  parts[i] = parts[i].slice(0, quotindex);
137
174
  parts.length = i + 1;
138
175
  }
176
+
139
177
  parts[i] = parts[i].replace(/\\(.)/g, '$1');
140
178
  }
179
+
141
180
  value = parts.join('"');
142
181
  }
182
+
143
183
  return value;
144
184
  }
185
+
145
186
  function rfc5987decode(extvalue) {
146
187
  var encodingend = extvalue.indexOf('\'');
188
+
147
189
  if (encodingend === -1) {
148
190
  return extvalue;
149
191
  }
192
+
150
193
  var encoding = extvalue.slice(0, encodingend);
151
194
  var langvalue = extvalue.slice(encodingend + 1);
152
195
  var value = langvalue.replace(/^[^']*'/, '');
153
196
  return textdecode(encoding, value);
154
197
  }
198
+
155
199
  function rfc2047decode(value) {
156
- if (value.slice(0, 2) !== '=?' || /[\x00-\x19\x80-\xff]/.test(value)) {
200
+ if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) {
157
201
  return value;
158
202
  }
203
+
159
204
  return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
160
205
  if (encoding === 'q' || encoding === 'Q') {
161
206
  text = text.replace(/_/g, ' ');
@@ -164,12 +209,14 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
164
209
  });
165
210
  return textdecode(charset, text);
166
211
  }
212
+
167
213
  try {
168
214
  text = atob(text);
169
215
  } catch (e) {}
216
+
170
217
  return textdecode(charset, text);
171
218
  });
172
219
  }
220
+
173
221
  return '';
174
- }
175
- exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
222
+ }