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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +21618 -14369
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +22758 -11399
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +11500 -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 +767 -258
- 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 +428 -157
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +173 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +575 -272
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1032 -351
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +813 -196
- package/lib/core/function.js +253 -27
- package/lib/core/glyphlist.js +5 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +502 -72
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +293 -52
- package/lib/core/jpx.js +419 -12
- 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 +1368 -500
- package/lib/core/operator_list.js +159 -43
- package/lib/core/parser.js +544 -199
- package/lib/core/pattern.js +170 -21
- package/lib/core/pdf_manager.js +324 -134
- package/lib/core/primitives.js +169 -61
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +327 -34
- package/lib/core/type1_parser.js +148 -8
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +215 -229
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +618 -192
- package/lib/display/api.js +1798 -882
- package/lib/display/api_compatibility.js +5 -10
- package/lib/display/canvas.js +366 -45
- package/lib/display/content_disposition.js +71 -24
- package/lib/display/display_utils.js +777 -0
- package/lib/display/fetch_stream.js +205 -87
- 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 +38 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +103 -36
- package/lib/display/svg.js +1232 -519
- package/lib/display/text_layer.js +208 -75
- 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 +35 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +170 -572
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +216 -163
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/util.js +495 -385
- package/lib/test/unit/annotation_spec.js +1464 -401
- package/lib/test/unit/api_spec.js +718 -361
- 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 +9 -10
- 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 +59 -20
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/message_handler_spec.js +30 -13
- 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 +22 -55
- package/lib/test/unit/network_utils_spec.js +105 -14
- package/lib/test/unit/node_stream_spec.js +58 -34
- 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 +55 -22
- 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 +9 -7
- package/lib/test/unit/ui_utils_spec.js +236 -36
- 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 +1252 -609
- package/lib/web/app_options.js +103 -65
- package/lib/web/base_viewer.js +522 -242
- package/lib/web/chromecom.js +259 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +31 -12
- package/lib/web/firefox_print_service.js +27 -14
- package/lib/web/firefoxcom.js +318 -78
- 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 +174 -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 +144 -79
- package/lib/web/pdf_outline_viewer.js +124 -47
- package/lib/web/pdf_page_view.js +194 -74
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +59 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +144 -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 +82 -87
- package/lib/web/preferences.js +284 -91
- package/lib/web/secondary_toolbar.js +132 -59
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +80 -43
- package/lib/web/ui_utils.js +400 -134
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +3 -8
- package/package.json +3 -2
- package/web/pdf_viewer.css +23 -15
- package/web/pdf_viewer.js +3429 -1245
- package/web/pdf_viewer.js.map +1 -1
- package/external/streams/streams-lib.js +0 -3962
- package/lib/display/dom_utils.js +0 -429
- 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) { 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, {
|
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) {
|
@@ -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
|
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
|
-
|
111
|
-
|
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$
|
116
|
-
|
117
|
-
|
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
|
-
|
120
|
-
|
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
|
-
|
158
|
+
|
159
|
+
parts.push(part);
|
127
160
|
}
|
161
|
+
|
128
162
|
return parts.join('');
|
129
163
|
}
|
164
|
+
|
130
165
|
function rfc2616unquote(value) {
|
131
|
-
if (value.
|
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.
|
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
|
+
}
|