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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- 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
|
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
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
+
exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
|
27
28
|
|
28
|
-
|
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 (!/^[
|
75
|
+
if (!/^[\x00-\xFF]+$/.test(value)) {
|
59
76
|
return value;
|
60
77
|
}
|
78
|
+
|
61
79
|
try {
|
62
|
-
var decoder = new TextDecoder(encoding, {
|
63
|
-
|
64
|
-
|
65
|
-
|
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
|
-
|
72
|
-
|
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
|
-
|
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
|
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
|
-
|
106
|
-
|
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$
|
111
|
-
|
112
|
-
|
145
|
+
var _matches$n = _slicedToArray(matches[n], 2),
|
146
|
+
quot = _matches$n[0],
|
147
|
+
part = _matches$n[1];
|
113
148
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
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
|
-
|
158
|
+
|
159
|
+
parts.push(part);
|
122
160
|
}
|
161
|
+
|
123
162
|
return parts.join('');
|
124
163
|
}
|
164
|
+
|
125
165
|
function rfc2616unquote(value) {
|
126
|
-
if (value.
|
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.
|
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
|
-
|
164
|
-
} catch (e) {
|
165
|
-
|
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
|
+
}
|