pdfjs-dist 2.2.228 → 2.6.347
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/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8816 -19300
- 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 +27185 -35746
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +26665 -0
- package/es5/build/pdf.js.map +1 -0
- package/es5/build/pdf.min.js +22 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +61231 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/build/pdf.worker.min.js +22 -0
- package/es5/image_decoders/pdf.image_decoders.js +12529 -0
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
- package/es5/image_decoders/pdf.image_decoders.min.js +22 -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/pdf_viewer.css +406 -0
- package/es5/web/pdf_viewer.js +7886 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1498 -4832
- 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 +1144 -927
- 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 +747 -716
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +462 -553
- package/lib/core/cmap.js +231 -277
- package/lib/core/colorspace.js +715 -857
- package/lib/core/core_utils.js +57 -52
- package/lib/core/crypto.js +416 -437
- package/lib/core/document.js +629 -670
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +3229 -2800
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +602 -534
- package/lib/core/function.js +355 -279
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +442 -439
- package/lib/core/image_utils.js +221 -61
- 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 +289 -233
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2928 -2928
- package/lib/core/murmurhash3.js +87 -102
- package/lib/core/obj.js +1343 -1300
- package/lib/core/operator_list.js +90 -67
- package/lib/core/parser.js +990 -987
- package/lib/core/pattern.js +105 -77
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +156 -104
- 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 +89 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +275 -290
- package/lib/core/worker_stream.js +101 -210
- package/lib/core/writer.js +242 -0
- package/lib/display/annotation_layer.js +772 -1041
- package/lib/display/annotation_storage.js +89 -0
- package/lib/display/api.js +1575 -1868
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +370 -222
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +341 -536
- package/lib/display/fetch_stream.js +188 -304
- package/lib/display/font_loader.js +282 -414
- package/lib/display/metadata.js +81 -99
- package/lib/display/network.js +362 -511
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +283 -465
- package/lib/display/node_utils.js +87 -0
- package/lib/display/optional_content_config.js +184 -0
- package/lib/display/pattern_helper.js +93 -44
- package/lib/display/svg.js +1163 -1401
- package/lib/display/text_layer.js +154 -137
- package/lib/display/transport_stream.js +237 -375
- 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 +37 -37
- package/lib/pdf.js +220 -58
- 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 +271 -306
- package/lib/test/unit/annotation_spec.js +1902 -763
- package/lib/test/unit/annotation_storage_spec.js +83 -0
- package/lib/test/unit/api_spec.js +790 -592
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +73 -72
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +86 -88
- package/lib/test/unit/colorspace_spec.js +346 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +232 -185
- package/lib/test/unit/custom_spec.js +150 -24
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +128 -17
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +112 -91
- package/lib/test/unit/fetch_stream_spec.js +31 -29
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +48 -32
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +71 -71
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -11
- package/lib/test/unit/network_utils_spec.js +158 -144
- package/lib/test/unit/node_stream_spec.js +76 -90
- package/lib/test/unit/parser_spec.js +108 -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 +337 -156
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +91 -304
- package/lib/test/unit/testreporter.js +33 -22
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +299 -461
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +129 -149
- package/lib/test/unit/writer_spec.js +84 -0
- package/lib/web/annotation_layer_builder.js +78 -111
- package/lib/web/app.js +1542 -1267
- package/lib/web/app_options.js +76 -91
- package/lib/web/base_tree_viewer.js +100 -0
- package/lib/web/base_viewer.js +869 -834
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +34 -58
- package/lib/web/firefox_print_service.js +62 -34
- package/lib/web/firefoxcom.js +206 -374
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +30 -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 +150 -126
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +229 -383
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +492 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_layer_viewer.js +208 -0
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +119 -212
- package/lib/web/pdf_page_view.js +474 -513
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +96 -110
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +286 -302
- 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 +289 -297
- package/lib/web/pdf_thumbnail_viewer.js +202 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +69 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -319
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +274 -421
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +4 -9
- package/types/display/annotation_layer.d.ts +61 -0
- package/types/display/annotation_storage.d.ts +36 -0
- package/types/display/api.d.ts +1107 -0
- package/types/display/api_compatibility.d.ts +1 -0
- package/types/display/canvas.d.ts +4 -0
- package/types/display/content_disposition.d.ts +7 -0
- package/types/display/display_utils.d.ts +243 -0
- package/types/display/fetch_stream.d.ts +67 -0
- package/types/display/font_loader.d.ts +19 -0
- package/types/display/metadata.d.ts +9 -0
- package/types/display/network.d.ts +80 -0
- package/types/display/network_utils.d.ts +14 -0
- package/types/display/node_stream.d.ts +72 -0
- package/types/display/node_utils.d.ts +6 -0
- package/types/display/optional_content_config.d.ts +12 -0
- package/types/display/pattern_helper.d.ts +5 -0
- package/types/display/svg.d.ts +2 -0
- package/types/display/text_layer.d.ts +83 -0
- package/types/display/transport_stream.d.ts +57 -0
- package/types/display/webgl.d.ts +20 -0
- package/types/display/worker_options.d.ts +27 -0
- package/types/display/xml_parser.d.ts +35 -0
- package/types/pdf.d.ts +33 -0
- package/types/shared/compatibility.d.ts +1 -0
- package/types/shared/is_node.d.ts +1 -0
- package/types/shared/message_handler.d.ts +62 -0
- package/types/shared/util.d.ts +421 -0
- package/web/images/shadow.png +0 -0
- package/web/pdf_viewer.css +29 -27
- package/web/pdf_viewer.js +3524 -4746
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +6 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/web/images/texture.png +0 -0
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.
|
@@ -34,15 +34,13 @@ exports.isRefsEqual = isRefsEqual;
|
|
34
34
|
exports.isStream = isStream;
|
35
35
|
exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
|
36
36
|
|
37
|
-
var _util = require("../shared/util");
|
38
|
-
|
39
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
37
|
+
var _util = require("../shared/util.js");
|
40
38
|
|
41
39
|
var EOF = {};
|
42
40
|
exports.EOF = EOF;
|
43
41
|
|
44
42
|
var Name = function NameClosure() {
|
45
|
-
|
43
|
+
let nameCache = Object.create(null);
|
46
44
|
|
47
45
|
function Name(name) {
|
48
46
|
this.name = name;
|
@@ -65,7 +63,7 @@ var Name = function NameClosure() {
|
|
65
63
|
exports.Name = Name;
|
66
64
|
|
67
65
|
var Cmd = function CmdClosure() {
|
68
|
-
|
66
|
+
let cmdCache = Object.create(null);
|
69
67
|
|
70
68
|
function Cmd(cmd) {
|
71
69
|
this.cmd = cmd;
|
@@ -104,83 +102,81 @@ var Dict = function DictClosure() {
|
|
104
102
|
assignXref: function Dict_assignXref(newXref) {
|
105
103
|
this.xref = newXref;
|
106
104
|
},
|
107
|
-
get: function Dict_get(key1, key2, key3) {
|
108
|
-
var value;
|
109
|
-
var xref = this.xref,
|
110
|
-
suppressEncryption = this.suppressEncryption;
|
111
105
|
|
112
|
-
|
113
|
-
|
106
|
+
get size() {
|
107
|
+
return Object.keys(this._map).length;
|
108
|
+
},
|
109
|
+
|
110
|
+
get(key1, key2, key3) {
|
111
|
+
let value = this._map[key1];
|
112
|
+
|
113
|
+
if (value === undefined && key2 !== undefined) {
|
114
|
+
value = this._map[key2];
|
115
|
+
|
116
|
+
if (value === undefined && key3 !== undefined) {
|
117
|
+
value = this._map[key3];
|
118
|
+
}
|
114
119
|
}
|
115
120
|
|
116
|
-
if (
|
117
|
-
return xref
|
121
|
+
if (value instanceof Ref && this.xref) {
|
122
|
+
return this.xref.fetch(value, this.suppressEncryption);
|
118
123
|
}
|
119
124
|
|
120
|
-
value
|
121
|
-
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
125
|
+
return value;
|
122
126
|
},
|
123
|
-
getAsync: function Dict_getAsync(key1, key2, key3) {
|
124
|
-
var value;
|
125
|
-
var xref = this.xref,
|
126
|
-
suppressEncryption = this.suppressEncryption;
|
127
|
-
|
128
|
-
if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
|
129
|
-
if (xref) {
|
130
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
131
|
-
}
|
132
127
|
|
133
|
-
|
134
|
-
|
128
|
+
async getAsync(key1, key2, key3) {
|
129
|
+
let value = this._map[key1];
|
135
130
|
|
136
|
-
if (
|
137
|
-
|
138
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
139
|
-
}
|
131
|
+
if (value === undefined && key2 !== undefined) {
|
132
|
+
value = this._map[key2];
|
140
133
|
|
141
|
-
|
134
|
+
if (value === undefined && key3 !== undefined) {
|
135
|
+
value = this._map[key3];
|
136
|
+
}
|
142
137
|
}
|
143
138
|
|
144
|
-
value
|
145
|
-
|
146
|
-
if (xref) {
|
147
|
-
return xref.fetchIfRefAsync(value, suppressEncryption);
|
139
|
+
if (value instanceof Ref && this.xref) {
|
140
|
+
return this.xref.fetchAsync(value, this.suppressEncryption);
|
148
141
|
}
|
149
142
|
|
150
|
-
return
|
143
|
+
return value;
|
151
144
|
},
|
152
|
-
getArray: function Dict_getArray(key1, key2, key3) {
|
153
|
-
var value = this.get(key1, key2, key3);
|
154
|
-
var xref = this.xref,
|
155
|
-
suppressEncryption = this.suppressEncryption;
|
156
145
|
|
157
|
-
|
146
|
+
getArray(key1, key2, key3) {
|
147
|
+
let value = this.get(key1, key2, key3);
|
148
|
+
|
149
|
+
if (!Array.isArray(value) || !this.xref) {
|
158
150
|
return value;
|
159
151
|
}
|
160
152
|
|
161
153
|
value = value.slice();
|
162
154
|
|
163
|
-
for (
|
164
|
-
if (!
|
155
|
+
for (let i = 0, ii = value.length; i < ii; i++) {
|
156
|
+
if (!(value[i] instanceof Ref)) {
|
165
157
|
continue;
|
166
158
|
}
|
167
159
|
|
168
|
-
value[i] = xref.fetch(value[i], suppressEncryption);
|
160
|
+
value[i] = this.xref.fetch(value[i], this.suppressEncryption);
|
169
161
|
}
|
170
162
|
|
171
163
|
return value;
|
172
164
|
},
|
165
|
+
|
173
166
|
getRaw: function Dict_getRaw(key) {
|
174
167
|
return this._map[key];
|
175
168
|
},
|
176
169
|
getKeys: function Dict_getKeys() {
|
177
170
|
return Object.keys(this._map);
|
178
171
|
},
|
172
|
+
getRawValues: function Dict_getRawValues() {
|
173
|
+
return Object.values(this._map);
|
174
|
+
},
|
179
175
|
set: function Dict_set(key, value) {
|
180
176
|
this._map[key] = value;
|
181
177
|
},
|
182
178
|
has: function Dict_has(key) {
|
183
|
-
return key
|
179
|
+
return this._map[key] !== undefined;
|
184
180
|
},
|
185
181
|
forEach: function Dict_forEach(callback) {
|
186
182
|
for (var key in this._map) {
|
@@ -190,26 +186,75 @@ var Dict = function DictClosure() {
|
|
190
186
|
};
|
191
187
|
Dict.empty = new Dict(null);
|
192
188
|
|
193
|
-
Dict.merge = function (
|
194
|
-
|
189
|
+
Dict.merge = function ({
|
190
|
+
xref,
|
191
|
+
dictArray,
|
192
|
+
mergeSubDicts = false
|
193
|
+
}) {
|
194
|
+
const mergedDict = new Dict(xref);
|
195
|
+
|
196
|
+
if (!mergeSubDicts) {
|
197
|
+
for (const dict of dictArray) {
|
198
|
+
if (!(dict instanceof Dict)) {
|
199
|
+
continue;
|
200
|
+
}
|
201
|
+
|
202
|
+
for (const [key, value] of Object.entries(dict._map)) {
|
203
|
+
if (mergedDict._map[key] === undefined) {
|
204
|
+
mergedDict._map[key] = value;
|
205
|
+
}
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
return mergedDict.size > 0 ? mergedDict : Dict.empty;
|
210
|
+
}
|
211
|
+
|
212
|
+
const properties = new Map();
|
213
|
+
|
214
|
+
for (const dict of dictArray) {
|
215
|
+
if (!(dict instanceof Dict)) {
|
216
|
+
continue;
|
217
|
+
}
|
218
|
+
|
219
|
+
for (const [key, value] of Object.entries(dict._map)) {
|
220
|
+
let property = properties.get(key);
|
195
221
|
|
196
|
-
|
197
|
-
|
222
|
+
if (property === undefined) {
|
223
|
+
property = [];
|
224
|
+
properties.set(key, property);
|
225
|
+
}
|
198
226
|
|
199
|
-
|
227
|
+
property.push(value);
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
231
|
+
for (const [name, values] of properties) {
|
232
|
+
if (values.length === 1 || !(values[0] instanceof Dict)) {
|
233
|
+
mergedDict._map[name] = values[0];
|
200
234
|
continue;
|
201
235
|
}
|
202
236
|
|
203
|
-
|
204
|
-
|
237
|
+
const subDict = new Dict(xref);
|
238
|
+
|
239
|
+
for (const dict of values) {
|
240
|
+
if (!(dict instanceof Dict)) {
|
205
241
|
continue;
|
206
242
|
}
|
207
243
|
|
208
|
-
|
244
|
+
for (const [key, value] of Object.entries(dict._map)) {
|
245
|
+
if (subDict._map[key] === undefined) {
|
246
|
+
subDict._map[key] = value;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
}
|
250
|
+
|
251
|
+
if (subDict.size > 0) {
|
252
|
+
mergedDict._map[name] = subDict;
|
209
253
|
}
|
210
254
|
}
|
211
255
|
|
212
|
-
|
256
|
+
properties.clear();
|
257
|
+
return mergedDict.size > 0 ? mergedDict : Dict.empty;
|
213
258
|
};
|
214
259
|
|
215
260
|
return Dict;
|
@@ -218,7 +263,7 @@ var Dict = function DictClosure() {
|
|
218
263
|
exports.Dict = Dict;
|
219
264
|
|
220
265
|
var Ref = function RefClosure() {
|
221
|
-
|
266
|
+
let refCache = Object.create(null);
|
222
267
|
|
223
268
|
function Ref(num, gen) {
|
224
269
|
this.num = num;
|
@@ -228,16 +273,16 @@ var Ref = function RefClosure() {
|
|
228
273
|
Ref.prototype = {
|
229
274
|
toString: function Ref_toString() {
|
230
275
|
if (this.gen === 0) {
|
231
|
-
return
|
276
|
+
return `${this.num}R`;
|
232
277
|
}
|
233
278
|
|
234
|
-
return
|
279
|
+
return `${this.num}R${this.gen}`;
|
235
280
|
}
|
236
281
|
};
|
237
282
|
|
238
283
|
Ref.get = function (num, gen) {
|
239
|
-
|
240
|
-
|
284
|
+
const key = gen === 0 ? `${num}R` : `${num}R${gen}`;
|
285
|
+
const refValue = refCache[key];
|
241
286
|
return refValue ? refValue : refCache[key] = new Ref(num, gen);
|
242
287
|
};
|
243
288
|
|
@@ -250,56 +295,63 @@ var Ref = function RefClosure() {
|
|
250
295
|
|
251
296
|
exports.Ref = Ref;
|
252
297
|
|
253
|
-
|
254
|
-
|
255
|
-
this.
|
298
|
+
class RefSet {
|
299
|
+
constructor() {
|
300
|
+
this._set = new Set();
|
256
301
|
}
|
257
302
|
|
258
|
-
|
259
|
-
has
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
}
|
269
|
-
|
270
|
-
}
|
303
|
+
has(ref) {
|
304
|
+
return this._set.has(ref.toString());
|
305
|
+
}
|
306
|
+
|
307
|
+
put(ref) {
|
308
|
+
this._set.add(ref.toString());
|
309
|
+
}
|
310
|
+
|
311
|
+
remove(ref) {
|
312
|
+
this._set.delete(ref.toString());
|
313
|
+
}
|
314
|
+
|
315
|
+
}
|
271
316
|
|
272
317
|
exports.RefSet = RefSet;
|
273
318
|
|
274
|
-
|
275
|
-
|
276
|
-
this.
|
319
|
+
class RefSetCache {
|
320
|
+
constructor() {
|
321
|
+
this._map = new Map();
|
277
322
|
}
|
278
323
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
324
|
+
get size() {
|
325
|
+
return this._map.size;
|
326
|
+
}
|
327
|
+
|
328
|
+
get(ref) {
|
329
|
+
return this._map.get(ref.toString());
|
330
|
+
}
|
331
|
+
|
332
|
+
has(ref) {
|
333
|
+
return this._map.has(ref.toString());
|
334
|
+
}
|
335
|
+
|
336
|
+
put(ref, obj) {
|
337
|
+
this._map.set(ref.toString(), obj);
|
338
|
+
}
|
339
|
+
|
340
|
+
putAlias(ref, aliasRef) {
|
341
|
+
this._map.set(ref.toString(), this.get(aliasRef));
|
342
|
+
}
|
343
|
+
|
344
|
+
forEach(callback) {
|
345
|
+
for (const value of this._map.values()) {
|
346
|
+
callback(value);
|
299
347
|
}
|
300
|
-
}
|
301
|
-
|
302
|
-
|
348
|
+
}
|
349
|
+
|
350
|
+
clear() {
|
351
|
+
this._map.clear();
|
352
|
+
}
|
353
|
+
|
354
|
+
}
|
303
355
|
|
304
356
|
exports.RefSetCache = RefSetCache;
|
305
357
|
|
@@ -316,7 +368,7 @@ function isCmd(v, cmd) {
|
|
316
368
|
}
|
317
369
|
|
318
370
|
function isDict(v, type) {
|
319
|
-
return v instanceof Dict && (type === undefined || isName(v.get(
|
371
|
+
return v instanceof Dict && (type === undefined || isName(v.get("Type"), type));
|
320
372
|
}
|
321
373
|
|
322
374
|
function isRef(v) {
|
@@ -328,7 +380,7 @@ function isRefsEqual(v1, v2) {
|
|
328
380
|
}
|
329
381
|
|
330
382
|
function isStream(v) {
|
331
|
-
return
|
383
|
+
return typeof v === "object" && v !== null && v.getBytes !== undefined;
|
332
384
|
}
|
333
385
|
|
334
386
|
function clearPrimitiveCaches() {
|