pdfjs-dist 2.0.487 → 2.1.266

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 (161) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15564 -9476
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +46644 -36309
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/external/url/url-lib.js +627 -0
  9. package/image_decoders/pdf.image_decoders.js +11430 -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 +406 -131
  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 +376 -53
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +387 -149
  20. package/lib/core/cmap.js +310 -75
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/crypto.js +290 -45
  23. package/lib/core/document.js +545 -260
  24. package/lib/core/encodings.js +19 -10
  25. package/lib/core/evaluator.js +725 -147
  26. package/lib/core/font_renderer.js +360 -91
  27. package/lib/core/fonts.js +791 -186
  28. package/lib/core/function.js +284 -71
  29. package/lib/core/glyphlist.js +3 -2
  30. package/lib/core/image.js +168 -61
  31. package/lib/core/jbig2.js +479 -66
  32. package/lib/core/jbig2_stream.js +19 -8
  33. package/lib/core/jpeg_stream.js +38 -13
  34. package/lib/core/jpg.js +252 -29
  35. package/lib/core/jpx.js +396 -6
  36. package/lib/core/jpx_stream.js +18 -6
  37. package/lib/core/metrics.js +4 -4
  38. package/lib/core/murmurhash3.js +24 -6
  39. package/lib/core/obj.js +1137 -475
  40. package/lib/core/operator_list.js +108 -6
  41. package/lib/core/parser.js +321 -68
  42. package/lib/core/pattern.js +145 -13
  43. package/lib/core/pdf_manager.js +321 -133
  44. package/lib/core/primitives.js +75 -22
  45. package/lib/core/ps_parser.js +134 -45
  46. package/lib/core/standard_fonts.js +10 -10
  47. package/lib/core/stream.js +313 -34
  48. package/lib/core/type1_parser.js +143 -13
  49. package/lib/core/unicode.js +31 -4
  50. package/lib/core/worker.js +210 -66
  51. package/lib/display/annotation_layer.js +361 -123
  52. package/lib/display/api.js +1454 -729
  53. package/lib/display/api_compatibility.js +11 -13
  54. package/lib/display/canvas.js +324 -29
  55. package/lib/display/content_disposition.js +83 -32
  56. package/lib/display/dom_utils.js +226 -41
  57. package/lib/display/fetch_stream.js +208 -84
  58. package/lib/display/font_loader.js +465 -236
  59. package/lib/display/metadata.js +38 -16
  60. package/lib/display/network.js +216 -51
  61. package/lib/display/network_utils.js +32 -19
  62. package/lib/display/node_stream.js +352 -169
  63. package/lib/display/pattern_helper.js +58 -7
  64. package/lib/display/svg.js +242 -29
  65. package/lib/display/text_layer.js +132 -18
  66. package/lib/display/transport_stream.js +171 -42
  67. package/lib/display/webgl.js +64 -18
  68. package/lib/display/worker_options.js +5 -4
  69. package/lib/display/xml_parser.js +166 -53
  70. package/lib/examples/node/domstubs.js +57 -4
  71. package/lib/pdf.js +21 -4
  72. package/lib/pdf.worker.js +5 -3
  73. package/lib/shared/compatibility.js +158 -564
  74. package/lib/shared/global_scope.js +2 -2
  75. package/lib/shared/is_node.js +4 -4
  76. package/lib/shared/message_handler.js +521 -0
  77. package/lib/shared/streams_polyfill.js +21 -17
  78. package/lib/shared/url_polyfill.js +56 -0
  79. package/lib/shared/util.js +295 -650
  80. package/lib/test/unit/annotation_spec.js +629 -345
  81. package/lib/test/unit/api_spec.js +555 -253
  82. package/lib/test/unit/bidi_spec.js +7 -7
  83. package/lib/test/unit/cff_parser_spec.js +40 -11
  84. package/lib/test/unit/clitests_helper.js +9 -7
  85. package/lib/test/unit/cmap_spec.js +80 -26
  86. package/lib/test/unit/colorspace_spec.js +99 -52
  87. package/lib/test/unit/crypto_spec.js +17 -5
  88. package/lib/test/unit/custom_spec.js +41 -53
  89. package/lib/test/unit/display_svg_spec.js +33 -17
  90. package/lib/test/unit/document_spec.js +3 -3
  91. package/lib/test/unit/dom_utils_spec.js +9 -9
  92. package/lib/test/unit/encodings_spec.js +25 -45
  93. package/lib/test/unit/evaluator_spec.js +34 -9
  94. package/lib/test/unit/function_spec.js +17 -5
  95. package/lib/test/unit/jasmine-boot.js +31 -18
  96. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  97. package/lib/test/unit/metadata_spec.js +71 -11
  98. package/lib/test/unit/murmurhash3_spec.js +3 -3
  99. package/lib/test/unit/network_spec.js +20 -5
  100. package/lib/test/unit/network_utils_spec.js +41 -14
  101. package/lib/test/unit/node_stream_spec.js +51 -27
  102. package/lib/test/unit/parser_spec.js +35 -8
  103. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  104. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  105. package/lib/test/unit/pdf_history_spec.js +21 -9
  106. package/lib/test/unit/primitives_spec.js +24 -4
  107. package/lib/test/unit/stream_spec.js +12 -4
  108. package/lib/test/unit/test_utils.js +90 -27
  109. package/lib/test/unit/testreporter.js +21 -3
  110. package/lib/test/unit/type1_parser_spec.js +8 -6
  111. package/lib/test/unit/ui_utils_spec.js +452 -14
  112. package/lib/test/unit/unicode_spec.js +14 -11
  113. package/lib/test/unit/util_spec.js +131 -9
  114. package/lib/web/annotation_layer_builder.js +39 -22
  115. package/lib/web/app.js +1240 -582
  116. package/lib/web/app_options.js +71 -41
  117. package/lib/web/base_viewer.js +508 -179
  118. package/lib/web/chromecom.js +261 -117
  119. package/lib/web/debugger.js +166 -22
  120. package/lib/web/download_manager.js +31 -13
  121. package/lib/web/firefox_print_service.js +17 -9
  122. package/lib/web/firefoxcom.js +283 -79
  123. package/lib/web/genericcom.js +89 -30
  124. package/lib/web/genericl10n.js +142 -30
  125. package/lib/web/grab_to_pan.js +26 -4
  126. package/lib/web/interfaces.js +170 -47
  127. package/lib/web/overlay_manager.js +235 -85
  128. package/lib/web/password_prompt.js +21 -13
  129. package/lib/web/pdf_attachment_viewer.js +38 -18
  130. package/lib/web/pdf_cursor_tools.js +39 -16
  131. package/lib/web/pdf_document_properties.js +80 -30
  132. package/lib/web/pdf_find_bar.js +84 -40
  133. package/lib/web/pdf_find_controller.js +495 -184
  134. package/lib/web/pdf_find_utils.js +111 -0
  135. package/lib/web/pdf_history.js +190 -53
  136. package/lib/web/pdf_link_service.js +137 -76
  137. package/lib/web/pdf_outline_viewer.js +73 -22
  138. package/lib/web/pdf_page_view.js +196 -63
  139. package/lib/web/pdf_presentation_mode.js +99 -34
  140. package/lib/web/pdf_print_service.js +57 -11
  141. package/lib/web/pdf_rendering_queue.js +27 -5
  142. package/lib/web/pdf_sidebar.js +120 -67
  143. package/lib/web/pdf_sidebar_resizer.js +42 -16
  144. package/lib/web/pdf_single_page_viewer.js +74 -66
  145. package/lib/web/pdf_thumbnail_view.js +103 -32
  146. package/lib/web/pdf_thumbnail_viewer.js +64 -24
  147. package/lib/web/pdf_viewer.component.js +112 -32
  148. package/lib/web/pdf_viewer.js +91 -52
  149. package/lib/web/preferences.js +275 -80
  150. package/lib/web/secondary_toolbar.js +165 -40
  151. package/lib/web/text_layer_builder.js +162 -65
  152. package/lib/web/toolbar.js +78 -43
  153. package/lib/web/ui_utils.js +462 -136
  154. package/lib/web/view_history.js +215 -67
  155. package/lib/web/viewer_compatibility.js +4 -13
  156. package/package.json +5 -4
  157. package/web/pdf_viewer.css +58 -1
  158. package/web/pdf_viewer.js +6346 -3919
  159. package/web/pdf_viewer.js.map +1 -1
  160. package/lib/test/unit/fonts_spec.js +0 -81
  161. 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 2018 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) { 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,53 +46,75 @@ 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
- if (!/^[^\x00-\xFF]+$/.test(value)) {
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(0);
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) {
70
89
  if (/^utf-?8$/i.test(encoding)) {
71
- value = decodeURIComponent(escape(value));
72
- needsEncodingFixup = false;
90
+ try {
91
+ value = decodeURIComponent(escape(value));
92
+ needsEncodingFixup = false;
93
+ } catch (err) {}
73
94
  }
74
95
  }
75
96
  }
97
+
76
98
  return value;
77
99
  }
100
+
78
101
  function fixupEncoding(value) {
79
102
  if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
80
- return textdecode('utf-8', value);
103
+ value = textdecode('utf-8', value);
104
+
105
+ if (needsEncodingFixup) {
106
+ value = textdecode('iso-8859-1', value);
107
+ }
81
108
  }
109
+
82
110
  return value;
83
111
  }
112
+
84
113
  function rfc2231getparam(contentDisposition) {
85
114
  var matches = [],
86
- match = void 0;
115
+ match;
87
116
  var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig');
117
+
88
118
  while ((match = iter.exec(contentDisposition)) !== null) {
89
119
  var _match = match,
90
120
  _match2 = _slicedToArray(_match, 4),
@@ -93,64 +123,84 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
93
123
  part = _match2[3];
94
124
 
95
125
  n = parseInt(n, 10);
126
+
96
127
  if (n in matches) {
97
128
  if (n === 0) {
98
129
  break;
99
130
  }
131
+
100
132
  continue;
101
133
  }
134
+
102
135
  matches[n] = [quot, part];
103
136
  }
137
+
104
138
  var parts = [];
105
- for (var _n = 0; _n < matches.length; ++_n) {
106
- if (!(_n in matches)) {
139
+
140
+ for (var n = 0; n < matches.length; ++n) {
141
+ if (!(n in matches)) {
107
142
  break;
108
143
  }
109
144
 
110
- var _matches$_n = _slicedToArray(matches[_n], 2),
111
- _quot = _matches$_n[0],
112
- _part = _matches$_n[1];
145
+ var _matches$n = _slicedToArray(matches[n], 2),
146
+ quot = _matches$n[0],
147
+ part = _matches$n[1];
113
148
 
114
- _part = rfc2616unquote(_part);
115
- if (_quot) {
116
- _part = unescape(_part);
117
- if (_n === 0) {
118
- _part = rfc5987decode(_part);
149
+ part = rfc2616unquote(part);
150
+
151
+ if (quot) {
152
+ part = unescape(part);
153
+
154
+ if (n === 0) {
155
+ part = rfc5987decode(part);
119
156
  }
120
157
  }
121
- parts.push(_part);
158
+
159
+ parts.push(part);
122
160
  }
161
+
123
162
  return parts.join('');
124
163
  }
164
+
125
165
  function rfc2616unquote(value) {
126
- if (value.charAt(0) === '"') {
166
+ if (value.startsWith('"')) {
127
167
  var parts = value.slice(1).split('\\"');
168
+
128
169
  for (var i = 0; i < parts.length; ++i) {
129
170
  var quotindex = parts[i].indexOf('"');
171
+
130
172
  if (quotindex !== -1) {
131
173
  parts[i] = parts[i].slice(0, quotindex);
132
174
  parts.length = i + 1;
133
175
  }
176
+
134
177
  parts[i] = parts[i].replace(/\\(.)/g, '$1');
135
178
  }
179
+
136
180
  value = parts.join('"');
137
181
  }
182
+
138
183
  return value;
139
184
  }
185
+
140
186
  function rfc5987decode(extvalue) {
141
187
  var encodingend = extvalue.indexOf('\'');
188
+
142
189
  if (encodingend === -1) {
143
190
  return extvalue;
144
191
  }
192
+
145
193
  var encoding = extvalue.slice(0, encodingend);
146
194
  var langvalue = extvalue.slice(encodingend + 1);
147
195
  var value = langvalue.replace(/^[^']*'/, '');
148
196
  return textdecode(encoding, value);
149
197
  }
198
+
150
199
  function rfc2047decode(value) {
151
- if (value.slice(0, 2) !== '=?' || /[\x00-\x19\x80-\xff]/.test(value)) {
200
+ if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) {
152
201
  return value;
153
202
  }
203
+
154
204
  return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
155
205
  if (encoding === 'q' || encoding === 'Q') {
156
206
  text = text.replace(/_/g, ' ');
@@ -159,13 +209,14 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
159
209
  });
160
210
  return textdecode(charset, text);
161
211
  }
212
+
162
213
  try {
163
- return atob(text);
164
- } catch (e) {
165
- return text;
166
- }
214
+ text = atob(text);
215
+ } catch (e) {}
216
+
217
+ return textdecode(charset, text);
167
218
  });
168
219
  }
220
+
169
221
  return '';
170
- }
171
- exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
222
+ }