pdfjs-dist 2.0.943 → 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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8286 -14230
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +25500 -26628
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +57878 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +2887 -4094
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +855 -778
- package/lib/core/arithmetic_decoder.js +325 -311
- package/lib/core/bidi.js +117 -50
- package/lib/core/ccitt.js +251 -89
- package/lib/core/ccitt_stream.js +26 -16
- package/lib/core/cff_parser.js +525 -197
- package/lib/core/charsets.js +6 -5
- package/lib/core/chunked_stream.js +541 -406
- package/lib/core/cmap.js +368 -253
- package/lib/core/colorspace.js +781 -800
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +609 -422
- package/lib/core/document.js +649 -481
- package/lib/core/encodings.js +33 -24
- package/lib/core/evaluator.js +1471 -736
- package/lib/core/font_renderer.js +289 -149
- package/lib/core/fonts.js +1067 -413
- package/lib/core/function.js +517 -287
- package/lib/core/glyphlist.js +4529 -4527
- package/lib/core/image.js +232 -114
- package/lib/core/image_utils.js +94 -0
- package/lib/core/jbig2.js +711 -342
- package/lib/core/jbig2_stream.js +31 -19
- package/lib/core/jpeg_stream.js +151 -26
- package/lib/core/jpg.js +433 -181
- package/lib/core/jpx.js +551 -143
- package/lib/core/jpx_stream.js +40 -28
- package/lib/core/metrics.js +2931 -2931
- package/lib/core/murmurhash3.js +104 -97
- package/lib/core/obj.js +1561 -1053
- package/lib/core/operator_list.js +192 -64
- package/lib/core/parser.js +1162 -864
- package/lib/core/pattern.js +224 -75
- package/lib/core/pdf_manager.js +154 -285
- package/lib/core/primitives.js +145 -69
- package/lib/core/ps_parser.js +212 -162
- package/lib/core/standard_fonts.js +245 -244
- package/lib/core/stream.js +353 -81
- package/lib/core/type1_parser.js +218 -68
- package/lib/core/unicode.js +1682 -1655
- package/lib/core/worker.js +233 -302
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +808 -862
- package/lib/display/api.js +1778 -1462
- package/lib/display/api_compatibility.js +14 -9
- package/lib/display/canvas.js +463 -140
- package/lib/display/content_disposition.js +86 -58
- package/lib/display/display_utils.js +524 -0
- package/lib/display/fetch_stream.js +202 -274
- package/lib/display/font_loader.js +311 -333
- package/lib/display/metadata.js +98 -88
- package/lib/display/network.js +343 -347
- package/lib/display/network_utils.js +46 -26
- package/lib/display/node_stream.js +326 -404
- package/lib/display/pattern_helper.js +168 -69
- package/lib/display/svg.js +1296 -885
- package/lib/display/text_layer.js +229 -103
- package/lib/display/transport_stream.js +290 -250
- package/lib/display/webgl.js +116 -83
- package/lib/display/worker_options.js +6 -5
- package/lib/display/xml_parser.js +358 -337
- package/lib/examples/node/domstubs.js +95 -39
- package/lib/pdf.js +49 -31
- package/lib/pdf.worker.js +7 -5
- package/lib/shared/compatibility.js +3 -145
- package/lib/shared/is_node.js +8 -7
- package/lib/shared/message_handler.js +367 -314
- package/lib/shared/util.js +421 -415
- package/lib/test/unit/annotation_spec.js +1570 -690
- package/lib/test/unit/api_spec.js +855 -493
- package/lib/test/unit/bidi_spec.js +12 -12
- package/lib/test/unit/cff_parser_spec.js +88 -61
- package/lib/test/unit/clitests_helper.js +9 -12
- package/lib/test/unit/cmap_spec.js +140 -88
- package/lib/test/unit/colorspace_spec.js +204 -152
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +194 -182
- package/lib/test/unit/custom_spec.js +50 -64
- package/lib/test/unit/display_svg_spec.js +53 -38
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +17 -22
- package/lib/test/unit/encodings_spec.js +15 -57
- package/lib/test/unit/evaluator_spec.js +90 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +219 -205
- package/lib/test/unit/jasmine-boot.js +68 -39
- package/lib/test/unit/message_handler_spec.js +187 -160
- package/lib/test/unit/metadata_spec.js +87 -34
- package/lib/test/unit/murmurhash3_spec.js +13 -13
- package/lib/test/unit/network_spec.js +26 -59
- package/lib/test/unit/network_utils_spec.js +187 -121
- package/lib/test/unit/node_stream_spec.js +98 -90
- package/lib/test/unit/parser_spec.js +173 -131
- package/lib/test/unit/pdf_find_controller_spec.js +148 -67
- package/lib/test/unit/pdf_find_utils_spec.js +35 -34
- package/lib/test/unit/pdf_history_spec.js +45 -33
- package/lib/test/unit/primitives_spec.js +161 -126
- package/lib/test/unit/stream_spec.js +22 -15
- package/lib/test/unit/test_utils.js +149 -98
- package/lib/test/unit/testreporter.js +36 -18
- package/lib/test/unit/type1_parser_spec.js +46 -44
- package/lib/test/unit/ui_utils_spec.js +388 -372
- package/lib/test/unit/unicode_spec.js +49 -46
- package/lib/test/unit/util_spec.js +144 -248
- package/lib/web/annotation_layer_builder.js +75 -95
- package/lib/web/app.js +1538 -1147
- package/lib/web/app_options.js +116 -104
- package/lib/web/base_viewer.js +950 -775
- package/lib/web/chromecom.js +217 -225
- package/lib/web/debugger.js +236 -148
- package/lib/web/download_manager.js +50 -50
- package/lib/web/firefox_print_service.js +51 -33
- package/lib/web/firefoxcom.js +225 -352
- package/lib/web/genericcom.js +30 -93
- package/lib/web/genericl10n.js +26 -143
- package/lib/web/grab_to_pan.js +57 -33
- package/lib/web/interfaces.js +105 -232
- package/lib/web/overlay_manager.js +73 -227
- package/lib/web/password_prompt.js +44 -62
- package/lib/web/pdf_attachment_viewer.js +118 -123
- package/lib/web/pdf_cursor_tools.js +89 -93
- package/lib/web/pdf_document_properties.js +242 -281
- package/lib/web/pdf_find_bar.js +157 -163
- package/lib/web/pdf_find_controller.js +598 -454
- package/lib/web/pdf_find_utils.js +32 -16
- package/lib/web/pdf_history.js +481 -355
- package/lib/web/pdf_link_service.js +355 -323
- package/lib/web/pdf_outline_viewer.js +167 -152
- package/lib/web/pdf_page_view.js +511 -457
- package/lib/web/pdf_presentation_mode.js +347 -335
- package/lib/web/pdf_print_service.js +133 -103
- package/lib/web/pdf_rendering_queue.js +98 -100
- package/lib/web/pdf_sidebar.js +323 -299
- package/lib/web/pdf_sidebar_resizer.js +107 -108
- package/lib/web/pdf_single_page_viewer.js +94 -146
- package/lib/web/pdf_thumbnail_view.js +319 -269
- package/lib/web/pdf_thumbnail_viewer.js +219 -199
- package/lib/web/pdf_viewer.component.js +111 -32
- package/lib/web/pdf_viewer.js +61 -101
- package/lib/web/preferences.js +87 -272
- package/lib/web/secondary_toolbar.js +207 -220
- package/lib/web/text_layer_builder.js +322 -322
- package/lib/web/toolbar.js +227 -180
- package/lib/web/ui_utils.js +476 -421
- package/lib/web/view_history.js +59 -208
- package/lib/web/viewer_compatibility.js +9 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +36 -22
- package/web/pdf_viewer.js +4407 -4516
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/display/dom_utils.js +0 -441
- package/lib/shared/streams_polyfill.js +0 -39
- package/lib/shared/url_polyfill.js +0 -50
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/web/dom_events.js +0 -140
@@ -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 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.
|
@@ -19,51 +19,59 @@
|
|
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
|
-
|
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"); } }; }();
|
27
|
+
exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
|
29
28
|
|
30
29
|
function getFilenameFromContentDispositionHeader(contentDisposition) {
|
31
|
-
|
32
|
-
|
30
|
+
let needsEncodingFixup = true;
|
31
|
+
let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition);
|
32
|
+
|
33
33
|
if (tmp) {
|
34
34
|
tmp = tmp[1];
|
35
|
-
|
35
|
+
let filename = rfc2616unquote(tmp);
|
36
36
|
filename = unescape(filename);
|
37
37
|
filename = rfc5987decode(filename);
|
38
38
|
filename = rfc2047decode(filename);
|
39
39
|
return fixupEncoding(filename);
|
40
40
|
}
|
41
|
+
|
41
42
|
tmp = rfc2231getparam(contentDisposition);
|
43
|
+
|
42
44
|
if (tmp) {
|
43
|
-
|
44
|
-
return fixupEncoding(
|
45
|
+
const filename = rfc2047decode(tmp);
|
46
|
+
return fixupEncoding(filename);
|
45
47
|
}
|
46
|
-
|
48
|
+
|
49
|
+
tmp = toParamRegExp("filename", "i").exec(contentDisposition);
|
50
|
+
|
47
51
|
if (tmp) {
|
48
52
|
tmp = tmp[1];
|
49
|
-
|
50
|
-
|
51
|
-
return fixupEncoding(
|
53
|
+
let filename = rfc2616unquote(tmp);
|
54
|
+
filename = rfc2047decode(filename);
|
55
|
+
return fixupEncoding(filename);
|
52
56
|
}
|
57
|
+
|
53
58
|
function toParamRegExp(attributePattern, flags) {
|
54
|
-
return new RegExp(
|
59
|
+
return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags);
|
55
60
|
}
|
61
|
+
|
56
62
|
function textdecode(encoding, value) {
|
57
63
|
if (encoding) {
|
58
64
|
if (!/^[\x00-\xFF]+$/.test(value)) {
|
59
65
|
return value;
|
60
66
|
}
|
67
|
+
|
61
68
|
try {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
69
|
+
const decoder = new TextDecoder(encoding, {
|
70
|
+
fatal: true
|
71
|
+
});
|
72
|
+
const bytes = Array.from(value, function (ch) {
|
73
|
+
return ch.charCodeAt(0) & 0xff;
|
74
|
+
});
|
67
75
|
value = decoder.decode(new Uint8Array(bytes));
|
68
76
|
needsEncodingFixup = false;
|
69
77
|
} catch (e) {
|
@@ -75,101 +83,121 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
|
|
75
83
|
}
|
76
84
|
}
|
77
85
|
}
|
86
|
+
|
78
87
|
return value;
|
79
88
|
}
|
89
|
+
|
80
90
|
function fixupEncoding(value) {
|
81
91
|
if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
|
82
|
-
value = textdecode(
|
92
|
+
value = textdecode("utf-8", value);
|
93
|
+
|
83
94
|
if (needsEncodingFixup) {
|
84
|
-
value = textdecode(
|
95
|
+
value = textdecode("iso-8859-1", value);
|
85
96
|
}
|
86
97
|
}
|
98
|
+
|
87
99
|
return value;
|
88
100
|
}
|
101
|
+
|
89
102
|
function rfc2231getparam(contentDisposition) {
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
while ((match = iter.exec(contentDisposition)) !== null) {
|
94
|
-
var _match = match,
|
95
|
-
_match2 = _slicedToArray(_match, 4),
|
96
|
-
n = _match2[1],
|
97
|
-
quot = _match2[2],
|
98
|
-
part = _match2[3];
|
103
|
+
const matches = [];
|
104
|
+
let match;
|
105
|
+
const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig");
|
99
106
|
|
107
|
+
while ((match = iter.exec(contentDisposition)) !== null) {
|
108
|
+
let [, n, quot, part] = match;
|
100
109
|
n = parseInt(n, 10);
|
110
|
+
|
101
111
|
if (n in matches) {
|
102
112
|
if (n === 0) {
|
103
113
|
break;
|
104
114
|
}
|
115
|
+
|
105
116
|
continue;
|
106
117
|
}
|
118
|
+
|
107
119
|
matches[n] = [quot, part];
|
108
120
|
}
|
109
|
-
|
110
|
-
|
111
|
-
|
121
|
+
|
122
|
+
const parts = [];
|
123
|
+
|
124
|
+
for (let n = 0; n < matches.length; ++n) {
|
125
|
+
if (!(n in matches)) {
|
112
126
|
break;
|
113
127
|
}
|
114
128
|
|
115
|
-
|
116
|
-
|
117
|
-
|
129
|
+
let [quot, part] = matches[n];
|
130
|
+
part = rfc2616unquote(part);
|
131
|
+
|
132
|
+
if (quot) {
|
133
|
+
part = unescape(part);
|
118
134
|
|
119
|
-
|
120
|
-
|
121
|
-
_part = unescape(_part);
|
122
|
-
if (_n === 0) {
|
123
|
-
_part = rfc5987decode(_part);
|
135
|
+
if (n === 0) {
|
136
|
+
part = rfc5987decode(part);
|
124
137
|
}
|
125
138
|
}
|
126
|
-
|
139
|
+
|
140
|
+
parts.push(part);
|
127
141
|
}
|
128
|
-
|
142
|
+
|
143
|
+
return parts.join("");
|
129
144
|
}
|
145
|
+
|
130
146
|
function rfc2616unquote(value) {
|
131
|
-
if (value.
|
132
|
-
|
133
|
-
|
134
|
-
|
147
|
+
if (value.startsWith('"')) {
|
148
|
+
const parts = value.slice(1).split('\\"');
|
149
|
+
|
150
|
+
for (let i = 0; i < parts.length; ++i) {
|
151
|
+
const quotindex = parts[i].indexOf('"');
|
152
|
+
|
135
153
|
if (quotindex !== -1) {
|
136
154
|
parts[i] = parts[i].slice(0, quotindex);
|
137
155
|
parts.length = i + 1;
|
138
156
|
}
|
139
|
-
|
157
|
+
|
158
|
+
parts[i] = parts[i].replace(/\\(.)/g, "$1");
|
140
159
|
}
|
160
|
+
|
141
161
|
value = parts.join('"');
|
142
162
|
}
|
163
|
+
|
143
164
|
return value;
|
144
165
|
}
|
166
|
+
|
145
167
|
function rfc5987decode(extvalue) {
|
146
|
-
|
168
|
+
const encodingend = extvalue.indexOf("'");
|
169
|
+
|
147
170
|
if (encodingend === -1) {
|
148
171
|
return extvalue;
|
149
172
|
}
|
150
|
-
|
151
|
-
|
152
|
-
|
173
|
+
|
174
|
+
const encoding = extvalue.slice(0, encodingend);
|
175
|
+
const langvalue = extvalue.slice(encodingend + 1);
|
176
|
+
const value = langvalue.replace(/^[^']*'/, "");
|
153
177
|
return textdecode(encoding, value);
|
154
178
|
}
|
179
|
+
|
155
180
|
function rfc2047decode(value) {
|
156
|
-
if (value.
|
181
|
+
if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) {
|
157
182
|
return value;
|
158
183
|
}
|
184
|
+
|
159
185
|
return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
|
160
|
-
if (encoding ===
|
161
|
-
text = text.replace(/_/g,
|
186
|
+
if (encoding === "q" || encoding === "Q") {
|
187
|
+
text = text.replace(/_/g, " ");
|
162
188
|
text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
|
163
189
|
return String.fromCharCode(parseInt(hex, 16));
|
164
190
|
});
|
165
191
|
return textdecode(charset, text);
|
166
192
|
}
|
193
|
+
|
167
194
|
try {
|
168
195
|
text = atob(text);
|
169
196
|
} catch (e) {}
|
197
|
+
|
170
198
|
return textdecode(charset, text);
|
171
199
|
});
|
172
200
|
}
|
173
|
-
|
174
|
-
|
175
|
-
|
201
|
+
|
202
|
+
return "";
|
203
|
+
}
|