pdfjs-dist 2.1.266 → 2.5.207
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 +8382 -18492
- 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 +20417 -29816
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25688 -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 +58239 -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 +403 -0
- package/es5/web/pdf_viewer.js +7742 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1475 -4897
- 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 +750 -899
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +235 -183
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +447 -542
- package/lib/core/cmap.js +222 -264
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +573 -660
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +1103 -868
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +570 -491
- package/lib/core/function.js +291 -288
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +145 -149
- package/lib/core/image_utils.js +170 -0
- package/lib/core/jbig2.js +325 -316
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +21 -26
- package/lib/core/jpg.js +284 -232
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2929 -2929
- package/lib/core/murmurhash3.js +90 -101
- package/lib/core/obj.js +1183 -1157
- package/lib/core/operator_list.js +99 -67
- package/lib/core/parser.js +972 -911
- package/lib/core/pattern.js +87 -70
- package/lib/core/pdf_manager.js +150 -315
- package/lib/core/primitives.js +83 -56
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +94 -74
- package/lib/core/type1_parser.js +87 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +193 -390
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +741 -972
- package/lib/display/api.js +1500 -1791
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +165 -165
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +515 -0
- package/lib/display/fetch_stream.js +183 -298
- package/lib/display/font_loader.js +273 -413
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +266 -359
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +285 -458
- package/lib/display/pattern_helper.js +113 -65
- package/lib/display/svg.js +1166 -901
- package/lib/display/text_layer.js +156 -132
- package/lib/display/transport_stream.js +262 -278
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +40 -37
- package/lib/pdf.js +226 -59
- package/lib/pdf.worker.js +14 -6
- package/lib/shared/compatibility.js +3 -246
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +327 -332
- package/lib/shared/util.js +266 -416
- package/lib/test/unit/annotation_spec.js +1555 -701
- package/lib/test/unit/api_spec.js +802 -604
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +84 -69
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +74 -76
- package/lib/test/unit/colorspace_spec.js +166 -161
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +20 -22
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +16 -21
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +83 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +46 -30
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +69 -69
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -61
- package/lib/test/unit/network_utils_spec.js +183 -119
- package/lib/test/unit/node_stream_spec.js +78 -92
- package/lib/test/unit/parser_spec.js +172 -114
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +140 -125
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +131 -143
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +297 -459
- package/lib/test/unit/unicode_spec.js +38 -38
- package/lib/test/unit/util_spec.js +121 -305
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1328 -1214
- package/lib/web/app_options.js +105 -107
- package/lib/web/base_viewer.js +824 -838
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +39 -55
- package/lib/web/firefox_print_service.js +37 -27
- package/lib/web/firefoxcom.js +212 -363
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +32 -30
- package/lib/web/interfaces.js +80 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +113 -131
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +221 -306
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +491 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +140 -175
- package/lib/web/pdf_page_view.js +452 -523
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +84 -108
- package/lib/web/pdf_sidebar.js +276 -306
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +276 -297
- package/lib/web/pdf_thumbnail_viewer.js +186 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +82 -286
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +282 -339
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +267 -420
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +35 -25
- package/web/pdf_viewer.js +3489 -4855
- 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 -494
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/lib/test/unit/dom_utils_spec.js +0 -89
package/lib/core/primitives.js
CHANGED
@@ -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.
|
@@ -24,6 +24,7 @@
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
+
exports.clearPrimitiveCaches = clearPrimitiveCaches;
|
27
28
|
exports.isEOF = isEOF;
|
28
29
|
exports.isCmd = isCmd;
|
29
30
|
exports.isDict = isDict;
|
@@ -33,42 +34,52 @@ exports.isRefsEqual = isRefsEqual;
|
|
33
34
|
exports.isStream = isStream;
|
34
35
|
exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
|
35
36
|
|
36
|
-
|
37
|
+
var _util = require("../shared/util.js");
|
37
38
|
|
38
39
|
var EOF = {};
|
39
40
|
exports.EOF = EOF;
|
40
41
|
|
41
42
|
var Name = function NameClosure() {
|
43
|
+
let nameCache = Object.create(null);
|
44
|
+
|
42
45
|
function Name(name) {
|
43
46
|
this.name = name;
|
44
47
|
}
|
45
48
|
|
46
49
|
Name.prototype = {};
|
47
|
-
var nameCache = Object.create(null);
|
48
50
|
|
49
51
|
Name.get = function Name_get(name) {
|
50
52
|
var nameValue = nameCache[name];
|
51
53
|
return nameValue ? nameValue : nameCache[name] = new Name(name);
|
52
54
|
};
|
53
55
|
|
56
|
+
Name._clearCache = function () {
|
57
|
+
nameCache = Object.create(null);
|
58
|
+
};
|
59
|
+
|
54
60
|
return Name;
|
55
61
|
}();
|
56
62
|
|
57
63
|
exports.Name = Name;
|
58
64
|
|
59
65
|
var Cmd = function CmdClosure() {
|
66
|
+
let cmdCache = Object.create(null);
|
67
|
+
|
60
68
|
function Cmd(cmd) {
|
61
69
|
this.cmd = cmd;
|
62
70
|
}
|
63
71
|
|
64
72
|
Cmd.prototype = {};
|
65
|
-
var cmdCache = Object.create(null);
|
66
73
|
|
67
74
|
Cmd.get = function Cmd_get(cmd) {
|
68
75
|
var cmdValue = cmdCache[cmd];
|
69
76
|
return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);
|
70
77
|
};
|
71
78
|
|
79
|
+
Cmd._clearCache = function () {
|
80
|
+
cmdCache = Object.create(null);
|
81
|
+
};
|
82
|
+
|
72
83
|
return Cmd;
|
73
84
|
}();
|
74
85
|
|
@@ -91,72 +102,63 @@ var Dict = function DictClosure() {
|
|
91
102
|
assignXref: function Dict_assignXref(newXref) {
|
92
103
|
this.xref = newXref;
|
93
104
|
},
|
94
|
-
get: function Dict_get(key1, key2, key3) {
|
95
|
-
var value;
|
96
|
-
var xref = this.xref,
|
97
|
-
suppressEncryption = this.suppressEncryption;
|
98
105
|
|
99
|
-
|
100
|
-
|
106
|
+
get(key1, key2, key3) {
|
107
|
+
let value = this._map[key1];
|
108
|
+
|
109
|
+
if (value === undefined && key2 !== undefined) {
|
110
|
+
value = this._map[key2];
|
111
|
+
|
112
|
+
if (value === undefined && key3 !== undefined) {
|
113
|
+
value = this._map[key3];
|
114
|
+
}
|
101
115
|
}
|
102
116
|
|
103
|
-
if (
|
104
|
-
return xref
|
117
|
+
if (value instanceof Ref && this.xref) {
|
118
|
+
return this.xref.fetch(value, this.suppressEncryption);
|
105
119
|
}
|
106
120
|
|
107
|
-
value
|
108
|
-
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
121
|
+
return value;
|
109
122
|
},
|
110
|
-
getAsync: function Dict_getAsync(key1, key2, key3) {
|
111
|
-
var value;
|
112
|
-
var xref = this.xref,
|
113
|
-
suppressEncryption = this.suppressEncryption;
|
114
|
-
|
115
|
-
if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
|
116
|
-
if (xref) {
|
117
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
118
|
-
}
|
119
123
|
|
120
|
-
|
121
|
-
|
124
|
+
async getAsync(key1, key2, key3) {
|
125
|
+
let value = this._map[key1];
|
122
126
|
|
123
|
-
if (
|
124
|
-
|
125
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
126
|
-
}
|
127
|
+
if (value === undefined && key2 !== undefined) {
|
128
|
+
value = this._map[key2];
|
127
129
|
|
128
|
-
|
130
|
+
if (value === undefined && key3 !== undefined) {
|
131
|
+
value = this._map[key3];
|
132
|
+
}
|
129
133
|
}
|
130
134
|
|
131
|
-
value
|
132
|
-
|
133
|
-
if (xref) {
|
134
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
135
|
+
if (value instanceof Ref && this.xref) {
|
136
|
+
return this.xref.fetchAsync(value, this.suppressEncryption);
|
135
137
|
}
|
136
138
|
|
137
|
-
return
|
139
|
+
return value;
|
138
140
|
},
|
139
|
-
getArray: function Dict_getArray(key1, key2, key3) {
|
140
|
-
var value = this.get(key1, key2, key3);
|
141
|
-
var xref = this.xref,
|
142
|
-
suppressEncryption = this.suppressEncryption;
|
143
141
|
|
144
|
-
|
142
|
+
getArray(key1, key2, key3) {
|
143
|
+
let value = this.get(key1, key2, key3);
|
144
|
+
|
145
|
+
if (!Array.isArray(value) || !this.xref) {
|
145
146
|
return value;
|
146
147
|
}
|
147
148
|
|
148
149
|
value = value.slice();
|
149
150
|
|
150
|
-
for (
|
151
|
-
if (!
|
151
|
+
for (let i = 0, ii = value.length; i < ii; i++) {
|
152
|
+
if (!(value[i] instanceof Ref)) {
|
152
153
|
continue;
|
153
154
|
}
|
154
155
|
|
155
|
-
value[i] = xref.fetch(value[i], suppressEncryption);
|
156
|
+
value[i] = this.xref.fetch(value[i], this.suppressEncryption);
|
156
157
|
}
|
157
158
|
|
158
159
|
return value;
|
159
160
|
},
|
161
|
+
|
160
162
|
getRaw: function Dict_getRaw(key) {
|
161
163
|
return this._map[key];
|
162
164
|
},
|
@@ -167,7 +169,7 @@ var Dict = function DictClosure() {
|
|
167
169
|
this._map[key] = value;
|
168
170
|
},
|
169
171
|
has: function Dict_has(key) {
|
170
|
-
return key
|
172
|
+
return this._map[key] !== undefined;
|
171
173
|
},
|
172
174
|
forEach: function Dict_forEach(callback) {
|
173
175
|
for (var key in this._map) {
|
@@ -178,16 +180,16 @@ var Dict = function DictClosure() {
|
|
178
180
|
Dict.empty = new Dict(null);
|
179
181
|
|
180
182
|
Dict.merge = function (xref, dictArray) {
|
181
|
-
|
183
|
+
const mergedDict = new Dict(xref);
|
182
184
|
|
183
|
-
for (
|
184
|
-
|
185
|
+
for (let i = 0, ii = dictArray.length; i < ii; i++) {
|
186
|
+
const dict = dictArray[i];
|
185
187
|
|
186
188
|
if (!isDict(dict)) {
|
187
189
|
continue;
|
188
190
|
}
|
189
191
|
|
190
|
-
for (
|
192
|
+
for (const keyName in dict._map) {
|
191
193
|
if (mergedDict._map[keyName] !== undefined) {
|
192
194
|
continue;
|
193
195
|
}
|
@@ -205,6 +207,8 @@ var Dict = function DictClosure() {
|
|
205
207
|
exports.Dict = Dict;
|
206
208
|
|
207
209
|
var Ref = function RefClosure() {
|
210
|
+
let refCache = Object.create(null);
|
211
|
+
|
208
212
|
function Ref(num, gen) {
|
209
213
|
this.num = num;
|
210
214
|
this.gen = gen;
|
@@ -212,13 +216,24 @@ var Ref = function RefClosure() {
|
|
212
216
|
|
213
217
|
Ref.prototype = {
|
214
218
|
toString: function Ref_toString() {
|
215
|
-
if (this.gen
|
216
|
-
return
|
219
|
+
if (this.gen === 0) {
|
220
|
+
return `${this.num}R`;
|
217
221
|
}
|
218
222
|
|
219
|
-
return
|
223
|
+
return `${this.num}R${this.gen}`;
|
220
224
|
}
|
221
225
|
};
|
226
|
+
|
227
|
+
Ref.get = function (num, gen) {
|
228
|
+
const key = gen === 0 ? `${num}R` : `${num}R${gen}`;
|
229
|
+
const refValue = refCache[key];
|
230
|
+
return refValue ? refValue : refCache[key] = new Ref(num, gen);
|
231
|
+
};
|
232
|
+
|
233
|
+
Ref._clearCache = function () {
|
234
|
+
refCache = Object.create(null);
|
235
|
+
};
|
236
|
+
|
222
237
|
return Ref;
|
223
238
|
}();
|
224
239
|
|
@@ -251,6 +266,10 @@ var RefSetCache = function RefSetCacheClosure() {
|
|
251
266
|
}
|
252
267
|
|
253
268
|
RefSetCache.prototype = {
|
269
|
+
get size() {
|
270
|
+
return Object.keys(this.dict).length;
|
271
|
+
},
|
272
|
+
|
254
273
|
get: function RefSetCache_get(ref) {
|
255
274
|
return this.dict[ref.toString()];
|
256
275
|
},
|
@@ -263,9 +282,9 @@ var RefSetCache = function RefSetCacheClosure() {
|
|
263
282
|
putAlias: function RefSetCache_putAlias(ref, aliasRef) {
|
264
283
|
this.dict[ref.toString()] = this.get(aliasRef);
|
265
284
|
},
|
266
|
-
forEach: function RefSetCache_forEach(
|
267
|
-
for (
|
268
|
-
|
285
|
+
forEach: function RefSetCache_forEach(callback) {
|
286
|
+
for (const i in this.dict) {
|
287
|
+
callback(this.dict[i]);
|
269
288
|
}
|
270
289
|
},
|
271
290
|
clear: function RefSetCache_clear() {
|
@@ -290,7 +309,7 @@ function isCmd(v, cmd) {
|
|
290
309
|
}
|
291
310
|
|
292
311
|
function isDict(v, type) {
|
293
|
-
return v instanceof Dict && (type === undefined || isName(v.get(
|
312
|
+
return v instanceof Dict && (type === undefined || isName(v.get("Type"), type));
|
294
313
|
}
|
295
314
|
|
296
315
|
function isRef(v) {
|
@@ -302,5 +321,13 @@ function isRefsEqual(v1, v2) {
|
|
302
321
|
}
|
303
322
|
|
304
323
|
function isStream(v) {
|
305
|
-
return
|
324
|
+
return typeof v === "object" && v !== null && v.getBytes !== undefined;
|
325
|
+
}
|
326
|
+
|
327
|
+
function clearPrimitiveCaches() {
|
328
|
+
Cmd._clearCache();
|
329
|
+
|
330
|
+
Name._clearCache();
|
331
|
+
|
332
|
+
Ref._clearCache();
|
306
333
|
}
|