cbor-x 1.6.5 → 1.6.6
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.
- package/README.md +5 -3
- package/decode.d.ts +1 -1
- package/decode.js +16 -5
- package/dist/decode-no-eval.cjs +16 -5
- package/dist/decode-no-eval.cjs.map +1 -1
- package/dist/index-no-eval.cjs +16 -5
- package/dist/index-no-eval.cjs.map +1 -1
- package/dist/index-no-eval.min.js +1 -1
- package/dist/index-no-eval.min.js.map +1 -1
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/node.cjs +16 -5
- package/dist/node.cjs.map +1 -1
- package/dist/test.js +16 -5
- package/dist/test.js.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -230,17 +230,19 @@ Note, that the performance is decreased with decimal rounding by about 20-25%, a
|
|
|
230
230
|
In addition, msgpackr exports a `roundFloat32(number)` function that can be used to round floating point numbers to the maximum significant decimal digits that can be stored in 32-bit float, just as DECIMAL_ROUND does when decoding. This can be useful for determining how a number will be decoded prior to encoding it.
|
|
231
231
|
|
|
232
232
|
### Setting Size Limits
|
|
233
|
-
You can set size limits on objects, arrays, and maps to prevent resource exhaustion when decoding. This can be done by calling the
|
|
233
|
+
You can set size limits on objects, arrays, and maps to prevent resource exhaustion when decoding. This can be done by calling the setSizeLimits export. Each of the properties are optional (only provide
|
|
234
234
|
the properties you want to change), for example (with the defaults):
|
|
235
235
|
```JavaScript
|
|
236
|
-
import {
|
|
237
|
-
|
|
236
|
+
import { setSizeLimits } from 'cbor-x';
|
|
237
|
+
setSizeLimits({
|
|
238
238
|
maxArraySize: 112810000,
|
|
239
239
|
maxMapSize: 16810000,
|
|
240
240
|
maxObjectSize : 16710000
|
|
241
241
|
});
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
+
Declared array and map lengths are also always validated against the number of bytes remaining in the source, so truncated or malformed input is rejected immediately instead of allocating for the length it claims. These limits are for bounding legitimately encoded (but unwanted) large data.
|
|
245
|
+
|
|
244
246
|
## Performance
|
|
245
247
|
Cbor-x is fast. Really fast. Here is comparison with the next fastest JS projects using the benchmark tool from `msgpack-lite` (and the sample data is from some clinical research data we use that has a good mix of different value types and structures). It also includes comparison to V8 native JSON functionality, and JavaScript Avro (`avsc`, a very optimized Avro implementation):
|
|
246
248
|
|
package/decode.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { decode, decodeMultiple, Decoder, addExtension, clearSource,roundFloat32, isNativeAccelerationEnabled,
|
|
2
|
-
Extension, Options, FLOAT32_OPTIONS,
|
|
2
|
+
Extension, Options, FLOAT32_OPTIONS, setSizeLimits, SizeLimitOptions } from '.'
|
package/decode.js
CHANGED
|
@@ -243,13 +243,22 @@ export function checkedRead() {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
function endOfCBORError() {
|
|
247
|
+
let error = new Error('Unexpected end of CBOR data')
|
|
248
|
+
error.incomplete = true
|
|
249
|
+
return error
|
|
250
|
+
}
|
|
251
|
+
|
|
246
252
|
export function read() {
|
|
253
|
+
// compared as < so that a NaN position (from a corrupt length) also throws instead of reading undefined
|
|
254
|
+
if (!(position < srcEnd)) throw endOfCBORError()
|
|
247
255
|
let token = src[position++]
|
|
248
256
|
let majorType = token >> 5
|
|
249
257
|
token = token & 0x1f
|
|
250
258
|
if (token > 0x17) {
|
|
251
259
|
switch (token) {
|
|
252
260
|
case 0x18:
|
|
261
|
+
if (position >= srcEnd) throw endOfCBORError()
|
|
253
262
|
token = src[position++]
|
|
254
263
|
break
|
|
255
264
|
case 0x19:
|
|
@@ -378,6 +387,9 @@ export function read() {
|
|
|
378
387
|
return readFixedString(token)
|
|
379
388
|
case 4: // array
|
|
380
389
|
if (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)
|
|
390
|
+
// every element occupies at least one byte, so a length beyond what remains in the source can
|
|
391
|
+
// never be satisfied; check before allocating so a tiny header can not force a huge allocation
|
|
392
|
+
if (token > srcEnd - position) throw endOfCBORError()
|
|
381
393
|
let array = new Array(token)
|
|
382
394
|
//if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read())
|
|
383
395
|
//else
|
|
@@ -385,6 +397,7 @@ export function read() {
|
|
|
385
397
|
return array
|
|
386
398
|
case 5: // map
|
|
387
399
|
if (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`)
|
|
400
|
+
if (token > (srcEnd - position) / 2) throw endOfCBORError() // each entry needs at least two bytes
|
|
388
401
|
if (currentDecoder.mapsAsObjects) {
|
|
389
402
|
let object = {}
|
|
390
403
|
if (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read()
|
|
@@ -476,11 +489,7 @@ export function read() {
|
|
|
476
489
|
throw new Error('Unknown token ' + token)
|
|
477
490
|
}
|
|
478
491
|
default: // negative int
|
|
479
|
-
if (isNaN(token))
|
|
480
|
-
let error = new Error('Unexpected end of CBOR data')
|
|
481
|
-
error.incomplete = true
|
|
482
|
-
throw error
|
|
483
|
-
}
|
|
492
|
+
if (isNaN(token)) throw endOfCBORError()
|
|
484
493
|
throw new Error('Unknown CBOR token ' + token)
|
|
485
494
|
}
|
|
486
495
|
}
|
|
@@ -1220,10 +1229,12 @@ function readBundleExt() {
|
|
|
1220
1229
|
}
|
|
1221
1230
|
|
|
1222
1231
|
function readJustLength() {
|
|
1232
|
+
if (!(position < srcEnd)) throw endOfCBORError()
|
|
1223
1233
|
let token = src[position++] & 0x1f
|
|
1224
1234
|
if (token > 0x17) {
|
|
1225
1235
|
switch (token) {
|
|
1226
1236
|
case 0x18:
|
|
1237
|
+
if (position >= srcEnd) throw endOfCBORError()
|
|
1227
1238
|
token = src[position++]
|
|
1228
1239
|
break
|
|
1229
1240
|
case 0x19:
|
package/dist/decode-no-eval.cjs
CHANGED
|
@@ -244,13 +244,22 @@
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
+
function endOfCBORError() {
|
|
248
|
+
let error = new Error('Unexpected end of CBOR data');
|
|
249
|
+
error.incomplete = true;
|
|
250
|
+
return error
|
|
251
|
+
}
|
|
252
|
+
|
|
247
253
|
function read() {
|
|
254
|
+
// compared as < so that a NaN position (from a corrupt length) also throws instead of reading undefined
|
|
255
|
+
if (!(position < srcEnd)) throw endOfCBORError()
|
|
248
256
|
let token = src[position++];
|
|
249
257
|
let majorType = token >> 5;
|
|
250
258
|
token = token & 0x1f;
|
|
251
259
|
if (token > 0x17) {
|
|
252
260
|
switch (token) {
|
|
253
261
|
case 0x18:
|
|
262
|
+
if (position >= srcEnd) throw endOfCBORError()
|
|
254
263
|
token = src[position++];
|
|
255
264
|
break
|
|
256
265
|
case 0x19:
|
|
@@ -379,6 +388,9 @@
|
|
|
379
388
|
return readFixedString(token)
|
|
380
389
|
case 4: // array
|
|
381
390
|
if (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)
|
|
391
|
+
// every element occupies at least one byte, so a length beyond what remains in the source can
|
|
392
|
+
// never be satisfied; check before allocating so a tiny header can not force a huge allocation
|
|
393
|
+
if (token > srcEnd - position) throw endOfCBORError()
|
|
382
394
|
let array = new Array(token);
|
|
383
395
|
//if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read())
|
|
384
396
|
//else
|
|
@@ -386,6 +398,7 @@
|
|
|
386
398
|
return array
|
|
387
399
|
case 5: // map
|
|
388
400
|
if (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`)
|
|
401
|
+
if (token > (srcEnd - position) / 2) throw endOfCBORError() // each entry needs at least two bytes
|
|
389
402
|
if (currentDecoder.mapsAsObjects) {
|
|
390
403
|
let object = {};
|
|
391
404
|
if (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read();
|
|
@@ -477,11 +490,7 @@
|
|
|
477
490
|
throw new Error('Unknown token ' + token)
|
|
478
491
|
}
|
|
479
492
|
default: // negative int
|
|
480
|
-
if (isNaN(token))
|
|
481
|
-
let error = new Error('Unexpected end of CBOR data');
|
|
482
|
-
error.incomplete = true;
|
|
483
|
-
throw error
|
|
484
|
-
}
|
|
493
|
+
if (isNaN(token)) throw endOfCBORError()
|
|
485
494
|
throw new Error('Unknown CBOR token ' + token)
|
|
486
495
|
}
|
|
487
496
|
}
|
|
@@ -1145,10 +1154,12 @@
|
|
|
1145
1154
|
}
|
|
1146
1155
|
|
|
1147
1156
|
function readJustLength() {
|
|
1157
|
+
if (!(position < srcEnd)) throw endOfCBORError()
|
|
1148
1158
|
let token = src[position++] & 0x1f;
|
|
1149
1159
|
if (token > 0x17) {
|
|
1150
1160
|
switch (token) {
|
|
1151
1161
|
case 0x18:
|
|
1162
|
+
if (position >= srcEnd) throw endOfCBORError()
|
|
1152
1163
|
token = src[position++];
|
|
1153
1164
|
break
|
|
1154
1165
|
case 0x19:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-no-eval.cjs","sources":["../decode.js"],"sourcesContent":["let decoder\ntry {\n\tdecoder = new TextDecoder()\n} catch(error) {}\nlet src\nlet srcEnd\nlet position = 0\nlet alreadySet\nconst EMPTY_ARRAY = []\nconst LEGACY_RECORD_INLINE_ID = 105\nconst RECORD_DEFINITIONS_ID = 0xdffe\nconst RECORD_INLINE_ID = 0xdfff // temporary first-come first-serve tag // proposed tag: 0x7265 // 're'\nconst BUNDLED_STRINGS_ID = 0xdff9\nconst PACKED_TABLE_TAG_ID = 51\nconst PACKED_REFERENCE_TAG_ID = 6\nconst STOP_CODE = {}\nlet maxArraySize = 112810000 // This is the maximum array size in V8. We would potentially detect and set it higher\n// for JSC, but this is pretty large and should be sufficient for most use cases\nlet maxMapSize = 16810000 // JavaScript has a fixed maximum map size of about 16710000, but JS itself enforces this,\n// so we don't need to\n\nlet maxObjectSize = 16710000; // This is the maximum number of keys in a Map. It takes over a minute to create this\n// many keys in an object, so also probably a reasonable choice there.\nlet strings = EMPTY_ARRAY\nlet stringPosition = 0\nlet currentDecoder = {}\nlet currentStructures\nlet srcString\nlet srcStringStart = 0\nlet srcStringEnd = 0\nlet bundledStrings\nlet referenceMap\nlet currentExtensions = []\nlet currentExtensionRanges = []\nlet packedValues\nlet dataView\nlet restoreMapsAsObject\nlet defaultOptions = {\n\tuseRecords: false,\n\tmapsAsObjects: true\n}\nlet sequentialMode = false\nlet inlineObjectReadThreshold = 2;\nvar BlockedFunction // we use search and replace to change the next call to BlockedFunction to avoid CSP issues for\n// no-eval build\ntry {\n\tnew Function('')\n} catch(error) {\n\t// if eval variants are not supported, do not create inline object readers ever\n\tinlineObjectReadThreshold = Infinity\n}\n\n\n\nexport class Decoder {\n\tconstructor(options) {\n\t\tif (options) {\n\t\t\tif ((options.keyMap || options._keyMap) && !options.useRecords) {\n\t\t\t\toptions.useRecords = false\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\t}\n\t\t\tif (options.useRecords === false && options.mapsAsObjects === undefined)\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\tif (options.getStructures)\n\t\t\t\toptions.getShared = options.getStructures\n\t\t\tif (options.getShared && !options.structures)\n\t\t\t\t(options.structures = []).uninitialized = true // this is what we use to denote an uninitialized structures\n\t\t\tif (options.keyMap) {\n\t\t\t\tthis.mapKey = new Map()\n\t\t\t\tfor (let [k,v] of Object.entries(options.keyMap)) this.mapKey.set(v,k)\n\t\t\t}\n\t\t}\n\t\tObject.assign(this, options)\n\t}\n\t/*\n\tdecodeKey(key) {\n\t\treturn this.keyMap\n\t\t\t? Object.keys(this.keyMap)[Object.values(this.keyMap).indexOf(key)] || key\n\t\t\t: key\n\t}\n\t*/\n\tdecodeKey(key) {\n\t\treturn this.keyMap ? this.mapKey.get(key) || key : key\n\t}\n\t\n\tencodeKey(key) {\n\t\treturn this.keyMap && this.keyMap.hasOwnProperty(key) ? this.keyMap[key] : key\n\t}\n\n\tencodeKeys(rec) {\n\t\tif (!this._keyMap) return rec\n\t\tlet map = new Map()\n\t\tfor (let [k,v] of Object.entries(rec)) map.set((this._keyMap.hasOwnProperty(k) ? this._keyMap[k] : k), v)\n\t\treturn map\n\t}\n\n\tdecodeKeys(map) {\n\t\tif (!this._keyMap || map.constructor.name != 'Map') return map\n\t\tif (!this._mapKey) {\n\t\t\tthis._mapKey = new Map()\n\t\t\tfor (let [k,v] of Object.entries(this._keyMap)) this._mapKey.set(v,k)\n\t\t}\n\t\tlet res = {}\n\t\t//map.forEach((v,k) => res[Object.keys(this._keyMap)[Object.values(this._keyMap).indexOf(k)] || k] = v)\n\t\tmap.forEach((v,k) => res[safeKey(this._mapKey.has(k) ? this._mapKey.get(k) : k)] = v)\n\t\treturn res\n\t}\n\t\n\tmapDecode(source, end) {\n\t\n\t\tlet res = this.decode(source)\n\t\tif (this._keyMap) { \n\t\t\t//Experiemntal support for Optimised KeyMap decoding \n\t\t\tswitch (res.constructor.name) {\n\t\t\t\tcase 'Array': return res.map(r => this.decodeKeys(r))\n\t\t\t\t//case 'Map': return this.decodeKeys(res)\n\t\t\t}\n\t\t}\n\t\treturn res\n\t}\n\n\tdecode(source, end) {\n\t\tif (src) {\n\t\t\t// re-entrant execution, save the state and restore it after we do this decode\n\t\t\treturn saveState(() => {\n\t\t\t\tclearSource()\n\t\t\t\treturn this ? this.decode(source, end) : Decoder.prototype.decode.call(defaultOptions, source, end)\n\t\t\t})\n\t\t}\n\t\tsrcEnd = end > -1 ? end : source.length\n\t\tposition = 0\n\t\tstringPosition = 0\n\t\tsrcStringEnd = 0\n\t\tsrcString = null\n\t\tstrings = EMPTY_ARRAY\n\t\tbundledStrings = null\n\t\tsrc = source\n\t\t// this provides cached access to the data view for a buffer if it is getting reused, which is a recommend\n\t\t// technique for getting data from a database where it can be copied into an existing buffer instead of creating\n\t\t// new ones\n\t\ttry {\n\t\t\tdataView = source.dataView || (source.dataView = new DataView(source.buffer, source.byteOffset, source.byteLength))\n\t\t} catch(error) {\n\t\t\t// if it doesn't have a buffer, maybe it is the wrong type of object\n\t\t\tsrc = null\n\t\t\tif (source instanceof Uint8Array)\n\t\t\t\tthrow error\n\t\t\tthrow new Error('Source must be a Uint8Array or Buffer but was a ' + ((source && typeof source == 'object') ? source.constructor.name : typeof source))\n\t\t}\n\t\tif (this instanceof Decoder) {\n\t\t\tcurrentDecoder = this\n\t\t\tpackedValues = this.sharedValues &&\n\t\t\t\t(this.pack ? new Array(this.maxPrivatePackedValues || 16).concat(this.sharedValues) :\n\t\t\t\tthis.sharedValues)\n\t\t\tif (this.structures) {\n\t\t\t\tcurrentStructures = this.structures\n\t\t\t\treturn checkedRead()\n\t\t\t} else if (!currentStructures || currentStructures.length > 0) {\n\t\t\t\tcurrentStructures = []\n\t\t\t}\n\t\t} else {\n\t\t\tcurrentDecoder = defaultOptions\n\t\t\tif (!currentStructures || currentStructures.length > 0)\n\t\t\t\tcurrentStructures = []\n\t\t\tpackedValues = null\n\t\t}\n\t\treturn checkedRead()\n\t}\n\tdecodeMultiple(source, forEach) {\n\t\tlet values, lastPosition = 0\n\t\ttry {\n\t\t\tlet size = source.length\n\t\t\tsequentialMode = true\n\t\t\tlet value = this ? this.decode(source, size) : defaultDecoder.decode(source, size)\n\t\t\tif (forEach) {\n\t\t\t\tif (forEach(value) === false) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tif (forEach(checkedRead()) === false) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalues = [ value ]\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tvalues.push(checkedRead())\n\t\t\t\t}\n\t\t\t\treturn values\n\t\t\t}\n\t\t} catch(error) {\n\t\t\terror.lastPosition = lastPosition\n\t\t\terror.values = values\n\t\t\tthrow error\n\t\t} finally {\n\t\t\tsequentialMode = false\n\t\t\tclearSource()\n\t\t}\n\t}\n}\nexport function getPosition() {\n\treturn position\n}\nexport function checkedRead() {\n\ttry {\n\t\tlet result = read()\n\t\tif (bundledStrings) {\n\t\t\tif (position >= bundledStrings.postBundlePosition) {\n\t\t\t\tlet error = new Error('Unexpected bundle position');\n\t\t\t\terror.incomplete = true;\n\t\t\t\tthrow error\n\t\t\t}\n\t\t\t// bundled strings to skip past\n\t\t\tposition = bundledStrings.postBundlePosition;\n\t\t\tbundledStrings = null;\n\t\t}\n\n\t\tif (position == srcEnd) {\n\t\t\t// finished reading this source, cleanup references\n\t\t\tcurrentStructures = null\n\t\t\tsrc = null\n\t\t\tif (referenceMap)\n\t\t\t\treferenceMap = null\n\t\t} else if (position > srcEnd) {\n\t\t\t// over read\n\t\t\tlet error = new Error('Unexpected end of CBOR data')\n\t\t\terror.incomplete = true\n\t\t\tthrow error\n\t\t} else if (!sequentialMode) {\n\t\t\tthrow new Error('Data read, but end of buffer not reached')\n\t\t}\n\t\t// else more to read, but we are reading sequentially, so don't clear source yet\n\t\treturn result\n\t} catch(error) {\n\t\tclearSource()\n\t\tif (error instanceof RangeError || error.message.startsWith('Unexpected end of buffer')) {\n\t\t\terror.incomplete = true\n\t\t}\n\t\tthrow error\n\t}\n}\n\nexport function read() {\n\tlet token = src[position++]\n\tlet majorType = token >> 5\n\ttoken = token & 0x1f\n\tif (token > 0x17) {\n\t\tswitch (token) {\n\t\t\tcase 0x18:\n\t\t\t\ttoken = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0x19:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\treturn getFloat16()\n\t\t\t\t}\n\t\t\t\ttoken = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0x1a:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\tlet value = dataView.getFloat32(position)\n\t\t\t\t\tif (currentDecoder.useFloat32 > 2) {\n\t\t\t\t\t\t// this does rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved\n\t\t\t\t\t\tlet multiplier = mult10[((src[position] & 0x7f) << 1) | (src[position + 1] >> 7)]\n\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\treturn ((multiplier * value + (value > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n\t\t\t\t\t}\n\t\t\t\t\tposition += 4\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\ttoken = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tif (majorType === 1) return -1 - token; // can't safely use negation operator here\n\t\t\t\tbreak\n\t\t\tcase 0x1b:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\tlet value = dataView.getFloat64(position)\n\t\t\t\t\tposition += 8\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\tif (majorType > 1) {\n\t\t\t\t\tif (dataView.getUint32(position) > 0)\n\t\t\t\t\t\tthrow new Error('JavaScript does not support arrays, maps, or strings with length over 4294967295')\n\t\t\t\t\ttoken = dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentDecoder.int64AsNumber) {\n\t\t\t\t\ttoken = dataView.getUint32(position) * 0x100000000\n\t\t\t\t\ttoken += dataView.getUint32(position + 4)\n\t\t\t\t} else token = dataView.getBigUint64(position)\n\t\t\t\tposition += 8\n\t\t\t\tbreak\n\t\t\tcase 0x1f: \n\t\t\t\t// indefinite length\n\t\t\t\tswitch(majorType) {\n\t\t\t\t\tcase 2: // byte string\n\t\t\t\t\tcase 3: // text string\n\t\t\t\t\t\tthrow new Error('Indefinite length not supported for byte or text strings')\n\t\t\t\t\tcase 4: // array\n\t\t\t\t\t\tlet array = []\n\t\t\t\t\t\tlet value, i = 0\n\t\t\t\t\t\twhile ((value = read()) != STOP_CODE) {\n\t\t\t\t\t\t\tif (i >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)\n\t\t\t\t\t\t\tarray[i++] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn majorType == 4 ? array : majorType == 3 ? array.join('') : Buffer.concat(array)\n\t\t\t\t\tcase 5: // map\n\t\t\t\t\t\tlet key\n\t\t\t\t\t\tif (currentDecoder.mapsAsObjects) {\n\t\t\t\t\t\t\tlet object = {}\n\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\tif (currentDecoder.keyMap) {\n\t\t\t\t\t\t\t\twhile((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`)\n\t\t\t\t\t\t\t\t\tobject[safeKey(currentDecoder.decodeKey(key))] = read()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\twhile ((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`)\n\t\t\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn object\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (restoreMapsAsObject) {\n\t\t\t\t\t\t\t\tcurrentDecoder.mapsAsObjects = true\n\t\t\t\t\t\t\t\trestoreMapsAsObject = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet map = new Map()\n\t\t\t\t\t\t\tif (currentDecoder.keyMap) {\n\t\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\t\twhile((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`Map size exceeds ${maxMapSize}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmap.set(currentDecoder.decodeKey(key), read())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\t\twhile ((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`Map size exceeds ${maxMapSize}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmap.set(key, read())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn map\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 7:\n\t\t\t\t\t\treturn STOP_CODE\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error('Invalid major type for indefinite length ' + majorType)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown token ' + token)\n\t\t}\n\t}\n\tswitch (majorType) {\n\t\tcase 0: // positive int\n\t\t\treturn token\n\t\tcase 1: // negative int\n\t\t\treturn ~token\n\t\tcase 2: // buffer\n\t\t\treturn readBin(token)\n\t\tcase 3: // string\n\t\t\tif (srcStringEnd >= position) {\n\t\t\t\treturn srcString.slice(position - srcStringStart, (position += token) - srcStringStart)\n\t\t\t}\n\t\t\tif (srcStringEnd == 0 && srcEnd < 140 && token < 32) {\n\t\t\t\t// for small blocks, avoiding the overhead of the extract call is helpful\n\t\t\t\tlet string = token < 16 ? shortStringInJS(token) : longStringInJS(token)\n\t\t\t\tif (string != null)\n\t\t\t\t\treturn string\n\t\t\t}\n\t\t\treturn readFixedString(token)\n\t\tcase 4: // array\n\t\t\tif (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)\n\t\t\tlet array = new Array(token)\n\t\t //if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read())\t\n\t\t\t//else \n\t\t\tfor (let i = 0; i < token; i++) array[i] = read()\n\t\t\treturn array\n\t\tcase 5: // map\n\t\t\tif (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`)\n\t\t\tif (currentDecoder.mapsAsObjects) {\n\t\t\t\tlet object = {}\n\t\t\t\tif (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read()\n\t\t\t\telse for (let i = 0; i < token; i++) object[safeKey(read())] = read()\n\t\t\t\treturn object\n\t\t\t} else {\n\t\t\t\tif (restoreMapsAsObject) {\n\t\t\t\t\tcurrentDecoder.mapsAsObjects = true\n\t\t\t\t\trestoreMapsAsObject = false\n\t\t\t\t}\n\t\t\t\tlet map = new Map()\n\t\t\t\tif (currentDecoder.keyMap) for (let i = 0; i < token; i++) map.set(currentDecoder.decodeKey(read()),read())\n\t\t\t\telse for (let i = 0; i < token; i++) map.set(read(), read())\n\t\t\t\treturn map\n\t\t\t}\n\t\tcase 6: // extension\n\t\t\tif (token >= BUNDLED_STRINGS_ID) {\n\t\t\t\tlet structure = currentStructures[token & 0x1fff] // check record structures first\n\t\t\t\t// At some point we may provide an option for dynamic tag assignment with a range like token >= 8 && (token < 16 || (token > 0x80 && token < 0xc0) || (token > 0x130 && token < 0x4000))\n\t\t\t\tif (structure) {\n\t\t\t\t\tif (!structure.read) structure.read = createStructureReader(structure)\n\t\t\t\t\treturn structure.read()\n\t\t\t\t}\n\t\t\t\tif (token < 0x10000) {\n\t\t\t\t\tif (token == RECORD_INLINE_ID) { // we do a special check for this so that we can keep the\n\t\t\t\t\t\t// currentExtensions as densely stored array (v8 stores arrays densely under about 3000 elements)\n\t\t\t\t\t\tlet length = readJustLength()\n\t\t\t\t\t\tlet id = read()\n\t\t\t\t\t\tlet structure = read()\n\t\t\t\t\t\trecordDefinition(id, structure)\n\t\t\t\t\t\tlet object = {}\n\t\t\t\t\t\tif (currentDecoder.keyMap) for (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\tlet key = currentDecoder.decodeKey(structure[i - 2])\n\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse for (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\tlet key = structure[i - 2]\n\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn object\n\t\t\t\t\t}\n\t\t\t\t\telse if (token == RECORD_DEFINITIONS_ID) {\n\t\t\t\t\t\tlet length = readJustLength()\n\t\t\t\t\t\tlet id = read()\n\t\t\t\t\t\tfor (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\trecordDefinition(id++, read())\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn read()\n\t\t\t\t\t} else if (token == BUNDLED_STRINGS_ID) {\n\t\t\t\t\t\treturn readBundleExt()\n\t\t\t\t\t}\n\t\t\t\t\tif (currentDecoder.getShared) {\n\t\t\t\t\t\tloadShared()\n\t\t\t\t\t\tstructure = currentStructures[token & 0x1fff]\n\t\t\t\t\t\tif (structure) {\n\t\t\t\t\t\t\tif (!structure.read)\n\t\t\t\t\t\t\t\tstructure.read = createStructureReader(structure)\n\t\t\t\t\t\t\treturn structure.read()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet extension = currentExtensions[token]\n\t\t\tif (extension) {\n\t\t\t\tif (extension.handlesRead)\n\t\t\t\t\treturn extension(read)\n\t\t\t\telse\n\t\t\t\t\treturn extension(read())\n\t\t\t} else {\n\t\t\t\tlet input = read()\n\t\t\t\tfor (let i = 0; i < currentExtensionRanges.length; i++) {\n\t\t\t\t\tlet value = currentExtensionRanges[i](token, input)\n\t\t\t\t\tif (value !== undefined)\n\t\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\treturn new Tag(input, token)\n\t\t\t}\n\t\tcase 7: // fixed value\n\t\t\tswitch (token) {\n\t\t\t\tcase 0x14: return false\n\t\t\t\tcase 0x15: return true\n\t\t\t\tcase 0x16: return null\n\t\t\t\tcase 0x17: return; // undefined\n\t\t\t\tcase 0x1f:\n\t\t\t\tdefault:\n\t\t\t\t\tlet packedValue = (packedValues || getPackedValues())[token]\n\t\t\t\t\tif (packedValue !== undefined)\n\t\t\t\t\t\treturn packedValue\n\t\t\t\t\tthrow new Error('Unknown token ' + token)\n\t\t\t}\n\t\tdefault: // negative int\n\t\t\tif (isNaN(token)) {\n\t\t\t\tlet error = new Error('Unexpected end of CBOR data')\n\t\t\t\terror.incomplete = true\n\t\t\t\tthrow error\n\t\t\t}\n\t\t\tthrow new Error('Unknown CBOR token ' + token)\n\t}\n}\nconst validName = /^[a-zA-Z_$][a-zA-Z\\d_$]*$/\nfunction createStructureReader(structure) {\n\tif (!structure) throw new Error('Structure is required in record definition');\n\tfunction readObject() {\n\t\t// get the array size from the header\n\t\tlet length = src[position++]\n\t\t//let majorType = token >> 5\n\t\tlength = length & 0x1f\n\t\tif (length > 0x17) {\n\t\t\tswitch (length) {\n\t\t\t\tcase 0x18:\n\t\t\t\t\tlength = src[position++]\n\t\t\t\t\tbreak\n\t\t\t\tcase 0x19:\n\t\t\t\t\tlength = dataView.getUint16(position)\n\t\t\t\t\tposition += 2\n\t\t\t\t\tbreak\n\t\t\t\tcase 0x1a:\n\t\t\t\t\tlength = dataView.getUint32(position)\n\t\t\t\t\tposition += 4\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error('Expected array header, but got ' + src[position - 1])\n\t\t\t}\n\t\t}\n\t\t// This initial function is quick to instantiate, but runs slower. After several iterations pay the cost to build the faster function\n\t\tlet compiledReader = this.compiledReader // first look to see if we have the fast compiled function\n\t\twhile(compiledReader) {\n\t\t\t// we have a fast compiled object literal reader\n\t\t\tif (compiledReader.propertyCount === length)\n\t\t\t\treturn compiledReader(read) // with the right length, so we use it\n\t\t\tcompiledReader = compiledReader.next // see if there is another reader with the right length\n\t\t}\n\t\tif (this.slowReads++ >= inlineObjectReadThreshold) { // create a fast compiled reader\n\t\t\tlet array = this.length == length ? this : this.slice(0, length)\n\t\t\tcompiledReader = currentDecoder.keyMap \n\t\t\t? new Function('r', 'return {' + array.map(k => currentDecoder.decodeKey(k)).map(k => validName.test(k) ? safeKey(k) + ':r()' : ('[' + JSON.stringify(k) + ']:r()')).join(',') + '}')\n\t\t\t: new Function('r', 'return {' + array.map(key => validName.test(key) ? safeKey(key) + ':r()' : ('[' + JSON.stringify(key) + ']:r()')).join(',') + '}')\n\t\t\tif (this.compiledReader)\n\t\t\t\tcompiledReader.next = this.compiledReader // if there is an existing one, we store multiple readers as a linked list because it is usually pretty rare to have multiple readers (of different length) for the same structure\n\t\t\tcompiledReader.propertyCount = length\n\t\t\tthis.compiledReader = compiledReader\n\t\t\treturn compiledReader(read)\n\t\t}\n\t\tlet object = {}\n\t\tif (currentDecoder.keyMap) for (let i = 0; i < length; i++) object[safeKey(currentDecoder.decodeKey(this[i]))] = read()\n\t\telse for (let i = 0; i < length; i++) {\n\t\t\tobject[safeKey(this[i])] = read();\n\t\t}\n\t\treturn object\n\t}\n\tstructure.slowReads = 0\n\treturn readObject\n}\n\nfunction safeKey(key) {\n\t// protect against prototype pollution\n\tif (typeof key === 'string') return key === '__proto__' ? '__proto_' : key\n\tif (typeof key === 'number' || typeof key === 'boolean' || typeof key === 'bigint') return key.toString();\n\tif (key == null) return key + '';\n\t// protect against expensive (DoS) string conversions\n\tthrow new Error('Invalid property name type ' + typeof key);\n}\n\nlet readFixedString = readStringJS\nlet readString8 = readStringJS\nlet readString16 = readStringJS\nlet readString32 = readStringJS\n\nexport let isNativeAccelerationEnabled = false\nexport function setExtractor(extractStrings) {\n\tisNativeAccelerationEnabled = true\n\treadFixedString = readString(1)\n\treadString8 = readString(2)\n\treadString16 = readString(3)\n\treadString32 = readString(5)\n\tfunction readString(headerLength) {\n\t\treturn function readString(length) {\n\t\t\tlet string = strings[stringPosition++]\n\t\t\tif (string == null) {\n\t\t\t\tif (bundledStrings)\n\t\t\t\t\treturn readStringJS(length)\n\t\t\t\tlet extraction = extractStrings(position, srcEnd, length, src)\n\t\t\t\tif (typeof extraction == 'string') {\n\t\t\t\t\tstring = extraction\n\t\t\t\t\tstrings = EMPTY_ARRAY\n\t\t\t\t} else {\n\t\t\t\t\tstrings = extraction\n\t\t\t\t\tstringPosition = 1\n\t\t\t\t\tsrcStringEnd = 1 // even if a utf-8 string was decoded, must indicate we are in the midst of extracted strings and can't skip strings\n\t\t\t\t\tstring = strings[0]\n\t\t\t\t\tif (string === undefined)\n\t\t\t\t\t\tthrow new Error('Unexpected end of buffer')\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet srcStringLength = string.length\n\t\t\tif (srcStringLength <= length) {\n\t\t\t\tposition += length\n\t\t\t\treturn string\n\t\t\t}\n\t\t\tsrcString = string\n\t\t\tsrcStringStart = position\n\t\t\tsrcStringEnd = position + srcStringLength\n\t\t\tposition += length\n\t\t\treturn string.slice(0, length) // we know we just want the beginning\n\t\t}\n\t}\n}\nfunction readStringJS(length) {\n\tlet result\n\tif (length < 16) {\n\t\tif (result = shortStringInJS(length))\n\t\t\treturn result\n\t}\n\tif (length > 64 && decoder)\n\t\treturn decoder.decode(src.subarray(position, position += length))\n\tconst end = position + length\n\tconst units = []\n\tresult = ''\n\twhile (position < end) {\n\t\tconst byte1 = src[position++]\n\t\tif ((byte1 & 0x80) === 0) {\n\t\t\t// 1 byte\n\t\t\tunits.push(byte1)\n\t\t} else if ((byte1 & 0xe0) === 0xc0) {\n\t\t\t// 2 bytes\n\t\t\tif (byte1 < 0xc2 || position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tconst byte2 = src[position++] & 0x3f\n\t\t\t\tunits.push(((byte1 & 0x1f) << 6) | byte2)\n\t\t\t}\n\t\t} else if ((byte1 & 0xf0) === 0xe0) {\n\t\t\t// 3 bytes\n\t\t\tconst byte2 = position < end ? src[position] : 0\n\t\t\tif (position >= end || (byte2 & 0xc0) !== 0x80 ||\n\t\t\t\t(byte1 === 0xe0 && byte2 < 0xa0) || (byte1 === 0xed && byte2 >= 0xa0)) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tposition++\n\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t} else {\n\t\t\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\t\t\tunits.push(((byte1 & 0x1f) << 12) | ((byte2 & 0x3f) << 6) | byte3)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ((byte1 & 0xf8) === 0xf0) {\n\t\t\t// 4 bytes\n\t\t\tconst byte2 = position < end ? src[position] : 0\n\t\t\tif (byte1 > 0xf4 || position >= end || (byte2 & 0xc0) !== 0x80 ||\n\t\t\t\t(byte1 === 0xf0 && byte2 < 0x90) || (byte1 === 0xf4 && byte2 >= 0x90)) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tposition++\n\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t} else {\n\t\t\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst byte4 = src[position++] & 0x3f\n\t\t\t\t\t\tlet unit = ((byte1 & 0x07) << 0x12) | ((byte2 & 0x3f) << 0x0c) | (byte3 << 0x06) | byte4\n\t\t\t\t\t\tunit -= 0x10000\n\t\t\t\t\t\tunits.push(((unit >>> 10) & 0x3ff) | 0xd800)\n\t\t\t\t\t\tunits.push(0xdc00 | (unit & 0x3ff))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tunits.push(0xFFFD) // replacement character for invalid lead byte\n\t\t}\n\n\t\tif (units.length >= 0x1000) {\n\t\t\tresult += fromCharCode.apply(String, units)\n\t\t\tunits.length = 0\n\t\t}\n\t}\n\n\tif (units.length > 0) {\n\t\tresult += fromCharCode.apply(String, units)\n\t}\n\n\treturn result\n}\nlet fromCharCode = String.fromCharCode\nfunction longStringInJS(length) {\n\tlet start = position\n\tlet bytes = new Array(length)\n\tfor (let i = 0; i < length; i++) {\n\t\tconst byte = src[position++];\n\t\tif ((byte & 0x80) > 0) {\n\t\t\tposition = start\n \t\t\treturn\n \t\t}\n \t\tbytes[i] = byte\n \t}\n \treturn fromCharCode.apply(String, bytes)\n}\nfunction shortStringInJS(length) {\n\tif (length < 4) {\n\t\tif (length < 2) {\n\t\t\tif (length === 0)\n\t\t\t\treturn ''\n\t\t\telse {\n\t\t\t\tlet a = src[position++]\n\t\t\t\tif ((a & 0x80) > 1) {\n\t\t\t\t\tposition -= 1\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a)\n\t\t\t}\n\t\t} else {\n\t\t\tlet a = src[position++]\n\t\t\tlet b = src[position++]\n\t\t\tif ((a & 0x80) > 0 || (b & 0x80) > 0) {\n\t\t\t\tposition -= 2\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 3)\n\t\t\t\treturn fromCharCode(a, b)\n\t\t\tlet c = src[position++]\n\t\t\tif ((c & 0x80) > 0) {\n\t\t\t\tposition -= 3\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn fromCharCode(a, b, c)\n\t\t}\n\t} else {\n\t\tlet a = src[position++]\n\t\tlet b = src[position++]\n\t\tlet c = src[position++]\n\t\tlet d = src[position++]\n\t\tif ((a & 0x80) > 0 || (b & 0x80) > 0 || (c & 0x80) > 0 || (d & 0x80) > 0) {\n\t\t\tposition -= 4\n\t\t\treturn\n\t\t}\n\t\tif (length < 6) {\n\t\t\tif (length === 4)\n\t\t\t\treturn fromCharCode(a, b, c, d)\n\t\t\telse {\n\t\t\t\tlet e = src[position++]\n\t\t\t\tif ((e & 0x80) > 0) {\n\t\t\t\t\tposition -= 5\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a, b, c, d, e)\n\t\t\t}\n\t\t} else if (length < 8) {\n\t\t\tlet e = src[position++]\n\t\t\tlet f = src[position++]\n\t\t\tif ((e & 0x80) > 0 || (f & 0x80) > 0) {\n\t\t\t\tposition -= 6\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 7)\n\t\t\t\treturn fromCharCode(a, b, c, d, e, f)\n\t\t\tlet g = src[position++]\n\t\t\tif ((g & 0x80) > 0) {\n\t\t\t\tposition -= 7\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn fromCharCode(a, b, c, d, e, f, g)\n\t\t} else {\n\t\t\tlet e = src[position++]\n\t\t\tlet f = src[position++]\n\t\t\tlet g = src[position++]\n\t\t\tlet h = src[position++]\n\t\t\tif ((e & 0x80) > 0 || (f & 0x80) > 0 || (g & 0x80) > 0 || (h & 0x80) > 0) {\n\t\t\t\tposition -= 8\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 10) {\n\t\t\t\tif (length === 8)\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h)\n\t\t\t\telse {\n\t\t\t\t\tlet i = src[position++]\n\t\t\t\t\tif ((i & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 9\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i)\n\t\t\t\t}\n\t\t\t} else if (length < 12) {\n\t\t\t\tlet i = src[position++]\n\t\t\t\tlet j = src[position++]\n\t\t\t\tif ((i & 0x80) > 0 || (j & 0x80) > 0) {\n\t\t\t\t\tposition -= 10\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (length < 11)\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j)\n\t\t\t\tlet k = src[position++]\n\t\t\t\tif ((k & 0x80) > 0) {\n\t\t\t\t\tposition -= 11\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k)\n\t\t\t} else {\n\t\t\t\tlet i = src[position++]\n\t\t\t\tlet j = src[position++]\n\t\t\t\tlet k = src[position++]\n\t\t\t\tlet l = src[position++]\n\t\t\t\tif ((i & 0x80) > 0 || (j & 0x80) > 0 || (k & 0x80) > 0 || (l & 0x80) > 0) {\n\t\t\t\t\tposition -= 12\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (length < 14) {\n\t\t\t\t\tif (length === 12)\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l)\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet m = src[position++]\n\t\t\t\t\t\tif ((m & 0x80) > 0) {\n\t\t\t\t\t\t\tposition -= 13\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet m = src[position++]\n\t\t\t\t\tlet n = src[position++]\n\t\t\t\t\tif ((m & 0x80) > 0 || (n & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 14\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tif (length < 15)\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n)\n\t\t\t\t\tlet o = src[position++]\n\t\t\t\t\tif ((o & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 15\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction readBin(length) {\n\treturn currentDecoder.copyBuffers ?\n\t\t// specifically use the copying slice (not the node one)\n\t\tUint8Array.prototype.slice.call(src, position, position += length) :\n\t\tsrc.subarray(position, position += length)\n}\nfunction readExt(length) {\n\tlet type = src[position++]\n\tif (currentExtensions[type]) {\n\t\treturn currentExtensions[type](src.subarray(position, position += length))\n\t}\n\telse\n\t\tthrow new Error('Unknown extension type ' + type)\n}\nlet f32Array = new Float32Array(1)\nlet u8Array = new Uint8Array(f32Array.buffer, 0, 4)\nfunction getFloat16() {\n\tlet byte0 = src[position++]\n\tlet byte1 = src[position++]\n\tlet exponent = (byte0 & 0x7f) >> 2;\n\tif (exponent === 0x1f) { // specials\n\t\tif (byte1 || (byte0 & 3))\n\t\t\treturn NaN;\n\t\treturn (byte0 & 0x80) ? -Infinity : Infinity;\n\t}\n\tif (exponent === 0) { // sub-normals\n\t\t// significand with 10 fractional bits and divided by 2^14\n\t\tlet abs = (((byte0 & 3) << 8) | byte1) / (1 << 24)\n\t\treturn (byte0 & 0x80) ? -abs : abs\n\t}\n\n\tu8Array[3] = (byte0 & 0x80) | // sign bit\n\t\t((exponent >> 1) + 56) // 4 of 5 of the exponent bits, re-offset-ed\n\tu8Array[2] = ((byte0 & 7) << 5) | // last exponent bit and first two mantissa bits\n\t\t(byte1 >> 3) // next 5 bits of mantissa\n\tu8Array[1] = byte1 << 5; // last three bits of mantissa\n\tu8Array[0] = 0;\n\treturn f32Array[0];\n}\n\nlet keyCache = new Array(4096)\nfunction readKey() {\n\tlet length = src[position++]\n\tif (length >= 0x60 && length < 0x78) {\n\t\t// fixstr, potentially use key cache\n\t\tlength = length - 0x60\n\t\tif (srcStringEnd >= position) // if it has been extracted, must use it (and faster anyway)\n\t\t\treturn srcString.slice(position - srcStringStart, (position += length) - srcStringStart)\n\t\telse if (!(srcStringEnd == 0 && srcEnd < 180))\n\t\t\treturn readFixedString(length)\n\t} else { // not cacheable, go back and do a standard read\n\t\tposition--\n\t\treturn read()\n\t}\n\tlet key = ((length << 5) ^ (length > 1 ? dataView.getUint16(position) : length > 0 ? src[position] : 0)) & 0xfff\n\tlet entry = keyCache[key]\n\tlet checkPosition = position\n\tlet end = position + length - 3\n\tlet chunk\n\tlet i = 0\n\tif (entry && entry.bytes == length) {\n\t\twhile (checkPosition < end) {\n\t\t\tchunk = dataView.getUint32(checkPosition)\n\t\t\tif (chunk != entry[i++]) {\n\t\t\t\tcheckPosition = 0x70000000\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcheckPosition += 4\n\t\t}\n\t\tend += 3\n\t\twhile (checkPosition < end) {\n\t\t\tchunk = src[checkPosition++]\n\t\t\tif (chunk != entry[i++]) {\n\t\t\t\tcheckPosition = 0x70000000\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (checkPosition === end) {\n\t\t\tposition = checkPosition\n\t\t\treturn entry.string\n\t\t}\n\t\tend -= 3\n\t\tcheckPosition = position\n\t}\n\tentry = []\n\tkeyCache[key] = entry\n\tentry.bytes = length\n\twhile (checkPosition < end) {\n\t\tchunk = dataView.getUint32(checkPosition)\n\t\tentry.push(chunk)\n\t\tcheckPosition += 4\n\t}\n\tend += 3\n\twhile (checkPosition < end) {\n\t\tchunk = src[checkPosition++]\n\t\tentry.push(chunk)\n\t}\n\t// for small blocks, avoiding the overhead of the extract call is helpful\n\tlet string = length < 16 ? shortStringInJS(length) : longStringInJS(length)\n\tif (string != null)\n\t\treturn entry.string = string\n\treturn entry.string = readFixedString(length)\n}\n\nexport class Tag {\n\tconstructor(value, tag) {\n\t\tthis.value = value\n\t\tthis.tag = tag\n\t}\n}\n\ncurrentExtensions[0] = (dateString) => {\n\t// string date extension\n\treturn new Date(dateString)\n}\n\ncurrentExtensions[1] = (epochSec) => {\n\t// numeric date extension\n\treturn new Date(Math.round(epochSec * 1000))\n}\n\ncurrentExtensions[2] = (buffer) => {\n\t// bigint extension\n\tlet value = BigInt(0)\n\tfor (let i = 0, l = buffer.byteLength; i < l; i++) {\n\t\tvalue = BigInt(buffer[i]) + (value << BigInt(8))\n\t}\n\treturn value\n}\n\ncurrentExtensions[3] = (buffer) => {\n\t// negative bigint extension\n\treturn BigInt(-1) - currentExtensions[2](buffer)\n}\ncurrentExtensions[4] = (fraction) => {\n\t// best to reparse to maintain accuracy\n\treturn +(fraction[1] + 'e' + fraction[0])\n}\n\ncurrentExtensions[5] = (fraction) => {\n\t// probably not sufficiently accurate\n\treturn fraction[1] * Math.exp(fraction[0] * Math.log(2))\n}\n\n// the registration of the record definition extension\nconst recordDefinition = (id, structure) => {\n\tid = id - 0xe000\n\tlet existingStructure = currentStructures[id]\n\tif (existingStructure && existingStructure.isShared) {\n\t\t(currentStructures.restoreStructures || (currentStructures.restoreStructures = []))[id] = existingStructure\n\t}\n\tcurrentStructures[id] = structure\n\n\tstructure.read = createStructureReader(structure)\n}\ncurrentExtensions[LEGACY_RECORD_INLINE_ID] = (data) => {\n\tlet length = data.length\n\tlet structure = data[1]\n\trecordDefinition(data[0], structure)\n\tlet object = {}\n\tfor (let i = 2; i < length; i++) {\n\t\tlet key = structure[i - 2]\n\t\tobject[safeKey(key)] = data[i]\n\t}\n\treturn object\n}\ncurrentExtensions[14] = (value) => {\n\tif (bundledStrings)\n\t\treturn bundledStrings[0].slice(bundledStrings.position0, bundledStrings.position0 += value)\n\treturn new Tag(value, 14)\n}\ncurrentExtensions[15] = (value) => {\n\tif (bundledStrings)\n\t\treturn bundledStrings[1].slice(bundledStrings.position1, bundledStrings.position1 += value)\n\treturn new Tag(value, 15)\n}\nlet glbl = { Error, RegExp }\ncurrentExtensions[27] = (data) => { // http://cbor.schmorp.de/generic-object\n\treturn (glbl[data[0]] || Error)(data[1], data[2])\n}\nconst packedTable = (read) => {\n\tif (src[position++] != 0x84) {\n\t\tlet error = new Error('Packed values structure must be followed by a 4 element array')\n\t\tif (src.length < position)\n\t\t\terror.incomplete = true\n\t\tthrow error\n\t}\n\tlet newPackedValues = read() // packed values\n\tif (!newPackedValues || !newPackedValues.length) {\n\t\tlet error = new Error('Packed values structure must be followed by a 4 element array')\n\t\terror.incomplete = true\n\t\tthrow error\n\t}\n\tpackedValues = packedValues ? newPackedValues.concat(packedValues.slice(newPackedValues.length)) : newPackedValues\n\tpackedValues.prefixes = read()\n\tpackedValues.suffixes = read()\n\treturn read() // read the rump\n}\npackedTable.handlesRead = true\ncurrentExtensions[51] = packedTable\n\ncurrentExtensions[PACKED_REFERENCE_TAG_ID] = (data) => { // packed reference\n\tif (!packedValues) {\n\t\tif (currentDecoder.getShared)\n\t\t\tloadShared()\n\t\telse\n\t\t\treturn new Tag(data, PACKED_REFERENCE_TAG_ID)\n\t}\n\tif (typeof data == 'number')\n\t\treturn packedValues[16 + (data >= 0 ? 2 * data : (-2 * data - 1))]\n\tlet error = new Error('No support for non-integer packed references yet')\n\tif (data === undefined)\n\t\terror.incomplete = true\n\tthrow error\n}\n\n// The following code is an incomplete implementation of http://cbor.schmorp.de/stringref\n// the real thing would need to implemennt more logic to populate the stringRefs table and\n// maintain a stack of stringRef \"namespaces\".\n//\n// currentExtensions[25] = (id) => {\n// \treturn stringRefs[id]\n// }\n// currentExtensions[256] = (read) => {\n// \tstringRefs = []\n// \ttry {\n// \t\treturn read()\n// \t} finally {\n// \t\tstringRefs = null\n// \t}\n// }\n// currentExtensions[256].handlesRead = true\n\ncurrentExtensions[28] = (read) => { \n\t// shareable http://cbor.schmorp.de/value-sharing (for structured clones)\n\tif (!referenceMap) {\n\t\treferenceMap = new Map()\n\t\treferenceMap.id = 0\n\t}\n\tlet id = referenceMap.id++\n\tlet startingPosition = position\n\tlet token = src[position]\n\tlet target\n\t// TODO: handle Maps, Sets, and other types that can cycle; this is complicated, because you potentially need to read\n\t// ahead past references to record structure definitions\n\tif ((token >> 5) == 4)\n\t\ttarget = []\n\telse\n\t\ttarget = {}\n\n\tlet refEntry = { target } // a placeholder object\n\treferenceMap.set(id, refEntry)\n\tlet targetProperties = read() // read the next value as the target object to id\n\tif (refEntry.used) {// there is a cycle, so we have to assign properties to original target\n\t\tif (Object.getPrototypeOf(target) !== Object.getPrototypeOf(targetProperties)) {\n\t\t\t// this means that the returned target does not match the targetProperties, so we need rerun the read to\n\t\t\t// have the correctly create instance be assigned as a reference, then we do the copy the properties back to the\n\t\t\t// target\n\t\t\t// reset the position so that the read can be repeated\n\t\t\tposition = startingPosition\n\t\t\t// the returned instance is our new target for references\n\t\t\ttarget = targetProperties\n\t\t\treferenceMap.set(id, { target })\n\t\t\ttargetProperties = read()\n\t\t}\n\t\treturn Object.assign(target, targetProperties)\n\t}\n\trefEntry.target = targetProperties // the placeholder wasn't used, replace with the deserialized one\n\treturn targetProperties // no cycle, can just use the returned read object\n}\ncurrentExtensions[28].handlesRead = true\n\ncurrentExtensions[29] = (id) => {\n\t// sharedref http://cbor.schmorp.de/value-sharing (for structured clones)\n\tlet refEntry = referenceMap.get(id)\n\trefEntry.used = true\n\treturn refEntry.target\n}\n\ncurrentExtensions[258] = (array) => new Set(array); // https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md\n(currentExtensions[259] = (read) => {\n\t// https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec\n\t// for decoding as a standard Map\n\tif (currentDecoder.mapsAsObjects) {\n\t\tcurrentDecoder.mapsAsObjects = false\n\t\trestoreMapsAsObject = true\n\t}\n\treturn read()\n}).handlesRead = true\nfunction combine(a, b) {\n\tif (typeof a === 'string')\n\t\treturn a + b\n\tif (a instanceof Array)\n\t\treturn a.concat(b)\n\treturn Object.assign({}, a, b)\n}\nfunction getPackedValues() {\n\tif (!packedValues) {\n\t\tif (currentDecoder.getShared)\n\t\t\tloadShared()\n\t\telse\n\t\t\tthrow new Error('No packed values available')\n\t}\n\treturn packedValues\n}\nconst SHARED_DATA_TAG_ID = 0x53687264 // ascii 'Shrd'\ncurrentExtensionRanges.push((tag, input) => {\n\tif (tag >= 225 && tag <= 255)\n\t\treturn combine(getPackedValues().prefixes[tag - 224], input)\n\tif (tag >= 28704 && tag <= 32767)\n\t\treturn combine(getPackedValues().prefixes[tag - 28672], input)\n\tif (tag >= 1879052288 && tag <= 2147483647)\n\t\treturn combine(getPackedValues().prefixes[tag - 1879048192], input)\n\tif (tag >= 216 && tag <= 223)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 216])\n\tif (tag >= 27647 && tag <= 28671)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 27639])\n\tif (tag >= 1811940352 && tag <= 1879048191)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 1811939328])\n\tif (tag == SHARED_DATA_TAG_ID) {// we do a special check for this so that we can keep the currentExtensions as densely stored array (v8 stores arrays densely under about 3000 elements)\n\t\treturn {\n\t\t\tpackedValues: packedValues,\n\t\t\tstructures: currentStructures.slice(0),\n\t\t\tversion: input,\n\t\t}\n\t}\n\tif (tag == 55799) // self-descriptive CBOR tag, just return input value\n\t\treturn input\n})\n\nconst isLittleEndianMachine = new Uint8Array(new Uint16Array([1]).buffer)[0] == 1\nexport const typedArrays = [Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array,\n\ttypeof BigUint64Array == 'undefined' ? { name:'BigUint64Array' } : BigUint64Array, Int8Array, Int16Array, Int32Array,\n\ttypeof BigInt64Array == 'undefined' ? { name:'BigInt64Array' } : BigInt64Array, Float32Array, Float64Array]\nconst typedArrayTags = [64, 68, 69, 70, 71, 72, 77, 78, 79, 85, 86]\nfor (let i = 0; i < typedArrays.length; i++) {\n\tregisterTypedArray(typedArrays[i], typedArrayTags[i])\n}\nfunction registerTypedArray(TypedArray, tag) {\n\tlet dvMethod = 'get' + TypedArray.name.slice(0, -5)\n\tlet bytesPerElement;\n\tif (typeof TypedArray === 'function')\n\t\tbytesPerElement = TypedArray.BYTES_PER_ELEMENT;\n\telse\n\t\tTypedArray = null;\n\tfor (let littleEndian = 0; littleEndian < 2; littleEndian++) {\n\t\tif (!littleEndian && bytesPerElement == 1)\n\t\t\tcontinue\n\t\tlet sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : bytesPerElement == 8 ? 3 : 0\n\t\tcurrentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine) ? (buffer) => {\n\t\t\tif (!TypedArray)\n\t\t\t\tthrow new Error('Could not find typed array for code ' + tag)\n\t\t\tif (!currentDecoder.copyBuffers) {\n\t\t\t\t// try provide a direct view, but will only work if we are byte-aligned\n\t\t\t\tif (bytesPerElement === 1 ||\n\t\t\t\t\tbytesPerElement === 2 && !(buffer.byteOffset & 1) ||\n\t\t\t\t\tbytesPerElement === 4 && !(buffer.byteOffset & 3) ||\n\t\t\t\t\tbytesPerElement === 8 && !(buffer.byteOffset & 7))\n\t\t\t\t\treturn new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength >> sizeShift);\n\t\t\t}\n\t\t\t// we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned\n\t\t\treturn new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer)\n\t\t} : buffer => {\n\t\t\tif (!TypedArray)\n\t\t\t\tthrow new Error('Could not find typed array for code ' + tag)\n\t\t\tlet dv = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t\t\tlet elements = buffer.length >> sizeShift\n\t\t\tlet ta = new TypedArray(elements)\n\t\t\tlet method = dv[dvMethod]\n\t\t\tfor (let i = 0; i < elements; i++) {\n\t\t\t\tta[i] = method.call(dv, i << sizeShift, littleEndian)\n\t\t\t}\n\t\t\treturn ta\n\t\t}\n\t}\n}\n\nfunction readBundleExt() {\n\tlet length = readJustLength()\n\tlet bundlePosition = position + read()\n\tfor (let i = 2; i < length; i++) {\n\t\t// skip past bundles that were already read\n\t\tlet bundleLength = readJustLength() // this will increment position, so must add to position afterwards\n\t\tposition += bundleLength\n\t}\n\tlet dataPosition = position\n\tposition = bundlePosition\n\tbundledStrings = [readStringJS(readJustLength()), readStringJS(readJustLength())]\n\tbundledStrings.position0 = 0\n\tbundledStrings.position1 = 0\n\tbundledStrings.postBundlePosition = position\n\tposition = dataPosition\n\treturn read()\n}\n\nfunction readJustLength() {\n\tlet token = src[position++] & 0x1f\n\tif (token > 0x17) {\n\t\tswitch (token) {\n\t\t\tcase 0x18:\n\t\t\t\ttoken = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0x19:\n\t\t\t\ttoken = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0x1a:\n\t\t\t\ttoken = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tbreak\n\t\t}\n\t}\n\treturn token\n}\n\nfunction loadShared() {\n\tif (currentDecoder.getShared) {\n\t\tlet sharedData = saveState(() => {\n\t\t\t// save the state in case getShared modifies our buffer\n\t\t\tsrc = null\n\t\t\treturn currentDecoder.getShared()\n\t\t}) || {}\n\t\tlet updatedStructures = sharedData.structures || []\n\t\tcurrentDecoder.sharedVersion = sharedData.version\n\t\tpackedValues = currentDecoder.sharedValues = sharedData.packedValues\n\t\tif (currentStructures === true)\n\t\t\tcurrentDecoder.structures = currentStructures = updatedStructures\n\t\telse\n\t\t\tcurrentStructures.splice.apply(currentStructures, [0, updatedStructures.length].concat(updatedStructures))\n\t}\n}\n\nfunction saveState(callback) {\n\tlet savedSrcEnd = srcEnd\n\tlet savedPosition = position\n\tlet savedStringPosition = stringPosition\n\tlet savedSrcStringStart = srcStringStart\n\tlet savedSrcStringEnd = srcStringEnd\n\tlet savedSrcString = srcString\n\tlet savedStrings = strings\n\tlet savedReferenceMap = referenceMap\n\tlet savedBundledStrings = bundledStrings\n\n\t// TODO: We may need to revisit this if we do more external calls to user code (since it could be slow)\n\tlet savedSrc = new Uint8Array(src.slice(0, srcEnd)) // we copy the data in case it changes while external data is processed\n\tlet savedStructures = currentStructures\n\tlet savedDecoder = currentDecoder\n\tlet savedSequentialMode = sequentialMode\n\tlet value = callback()\n\tsrcEnd = savedSrcEnd\n\tposition = savedPosition\n\tstringPosition = savedStringPosition\n\tsrcStringStart = savedSrcStringStart\n\tsrcStringEnd = savedSrcStringEnd\n\tsrcString = savedSrcString\n\tstrings = savedStrings\n\treferenceMap = savedReferenceMap\n\tbundledStrings = savedBundledStrings\n\tsrc = savedSrc\n\tsequentialMode = savedSequentialMode\n\tcurrentStructures = savedStructures\n\tcurrentDecoder = savedDecoder\n\tdataView = new DataView(src.buffer, src.byteOffset, src.byteLength)\n\treturn value\n}\nexport function clearSource() {\n\tsrc = null\n\treferenceMap = null\n\tcurrentStructures = null\n}\n\nexport function addExtension(extension) {\n\tcurrentExtensions[extension.tag] = extension.decode\n}\n\nexport function setSizeLimits(limits) {\n\tif (limits.maxMapSize) maxMapSize = limits.maxMapSize;\n\tif (limits.maxArraySize) maxArraySize = limits.maxArraySize;\n\tif (limits.maxObjectSize) maxObjectSize = limits.maxObjectSize;\n}\n\nexport const mult10 = new Array(147) // this is a table matching binary exponents to the multiplier to determine significant digit rounding\nfor (let i = 0; i < 256; i++) {\n\tmult10[i] = +('1e' + Math.floor(45.15 - i * 0.30103))\n}\nlet defaultDecoder = new Decoder({ useRecords: false })\nexport const decode = defaultDecoder.decode\nexport const decodeMultiple = defaultDecoder.decodeMultiple\nexport const FLOAT32_OPTIONS = {\n\tNEVER: 0,\n\tALWAYS: 1,\n\tDECIMAL_ROUND: 3,\n\tDECIMAL_FIT: 4\n}\nexport function roundFloat32(float32Number) {\n\tf32Array[0] = float32Number\n\tlet multiplier = mult10[((u8Array[3] & 0x7f) << 1) | (u8Array[2] >> 7)]\n\treturn ((multiplier * float32Number + (float32Number > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n}\n"],"names":["isNativeAccelerationEnabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decode-no-eval.cjs","sources":["../decode.js"],"sourcesContent":["let decoder\ntry {\n\tdecoder = new TextDecoder()\n} catch(error) {}\nlet src\nlet srcEnd\nlet position = 0\nlet alreadySet\nconst EMPTY_ARRAY = []\nconst LEGACY_RECORD_INLINE_ID = 105\nconst RECORD_DEFINITIONS_ID = 0xdffe\nconst RECORD_INLINE_ID = 0xdfff // temporary first-come first-serve tag // proposed tag: 0x7265 // 're'\nconst BUNDLED_STRINGS_ID = 0xdff9\nconst PACKED_TABLE_TAG_ID = 51\nconst PACKED_REFERENCE_TAG_ID = 6\nconst STOP_CODE = {}\nlet maxArraySize = 112810000 // This is the maximum array size in V8. We would potentially detect and set it higher\n// for JSC, but this is pretty large and should be sufficient for most use cases\nlet maxMapSize = 16810000 // JavaScript has a fixed maximum map size of about 16710000, but JS itself enforces this,\n// so we don't need to\n\nlet maxObjectSize = 16710000; // This is the maximum number of keys in a Map. It takes over a minute to create this\n// many keys in an object, so also probably a reasonable choice there.\nlet strings = EMPTY_ARRAY\nlet stringPosition = 0\nlet currentDecoder = {}\nlet currentStructures\nlet srcString\nlet srcStringStart = 0\nlet srcStringEnd = 0\nlet bundledStrings\nlet referenceMap\nlet currentExtensions = []\nlet currentExtensionRanges = []\nlet packedValues\nlet dataView\nlet restoreMapsAsObject\nlet defaultOptions = {\n\tuseRecords: false,\n\tmapsAsObjects: true\n}\nlet sequentialMode = false\nlet inlineObjectReadThreshold = 2;\nvar BlockedFunction // we use search and replace to change the next call to BlockedFunction to avoid CSP issues for\n// no-eval build\ntry {\n\tnew Function('')\n} catch(error) {\n\t// if eval variants are not supported, do not create inline object readers ever\n\tinlineObjectReadThreshold = Infinity\n}\n\n\n\nexport class Decoder {\n\tconstructor(options) {\n\t\tif (options) {\n\t\t\tif ((options.keyMap || options._keyMap) && !options.useRecords) {\n\t\t\t\toptions.useRecords = false\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\t}\n\t\t\tif (options.useRecords === false && options.mapsAsObjects === undefined)\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\tif (options.getStructures)\n\t\t\t\toptions.getShared = options.getStructures\n\t\t\tif (options.getShared && !options.structures)\n\t\t\t\t(options.structures = []).uninitialized = true // this is what we use to denote an uninitialized structures\n\t\t\tif (options.keyMap) {\n\t\t\t\tthis.mapKey = new Map()\n\t\t\t\tfor (let [k,v] of Object.entries(options.keyMap)) this.mapKey.set(v,k)\n\t\t\t}\n\t\t}\n\t\tObject.assign(this, options)\n\t}\n\t/*\n\tdecodeKey(key) {\n\t\treturn this.keyMap\n\t\t\t? Object.keys(this.keyMap)[Object.values(this.keyMap).indexOf(key)] || key\n\t\t\t: key\n\t}\n\t*/\n\tdecodeKey(key) {\n\t\treturn this.keyMap ? this.mapKey.get(key) || key : key\n\t}\n\t\n\tencodeKey(key) {\n\t\treturn this.keyMap && this.keyMap.hasOwnProperty(key) ? this.keyMap[key] : key\n\t}\n\n\tencodeKeys(rec) {\n\t\tif (!this._keyMap) return rec\n\t\tlet map = new Map()\n\t\tfor (let [k,v] of Object.entries(rec)) map.set((this._keyMap.hasOwnProperty(k) ? this._keyMap[k] : k), v)\n\t\treturn map\n\t}\n\n\tdecodeKeys(map) {\n\t\tif (!this._keyMap || map.constructor.name != 'Map') return map\n\t\tif (!this._mapKey) {\n\t\t\tthis._mapKey = new Map()\n\t\t\tfor (let [k,v] of Object.entries(this._keyMap)) this._mapKey.set(v,k)\n\t\t}\n\t\tlet res = {}\n\t\t//map.forEach((v,k) => res[Object.keys(this._keyMap)[Object.values(this._keyMap).indexOf(k)] || k] = v)\n\t\tmap.forEach((v,k) => res[safeKey(this._mapKey.has(k) ? this._mapKey.get(k) : k)] = v)\n\t\treturn res\n\t}\n\t\n\tmapDecode(source, end) {\n\t\n\t\tlet res = this.decode(source)\n\t\tif (this._keyMap) { \n\t\t\t//Experiemntal support for Optimised KeyMap decoding \n\t\t\tswitch (res.constructor.name) {\n\t\t\t\tcase 'Array': return res.map(r => this.decodeKeys(r))\n\t\t\t\t//case 'Map': return this.decodeKeys(res)\n\t\t\t}\n\t\t}\n\t\treturn res\n\t}\n\n\tdecode(source, end) {\n\t\tif (src) {\n\t\t\t// re-entrant execution, save the state and restore it after we do this decode\n\t\t\treturn saveState(() => {\n\t\t\t\tclearSource()\n\t\t\t\treturn this ? this.decode(source, end) : Decoder.prototype.decode.call(defaultOptions, source, end)\n\t\t\t})\n\t\t}\n\t\tsrcEnd = end > -1 ? end : source.length\n\t\tposition = 0\n\t\tstringPosition = 0\n\t\tsrcStringEnd = 0\n\t\tsrcString = null\n\t\tstrings = EMPTY_ARRAY\n\t\tbundledStrings = null\n\t\tsrc = source\n\t\t// this provides cached access to the data view for a buffer if it is getting reused, which is a recommend\n\t\t// technique for getting data from a database where it can be copied into an existing buffer instead of creating\n\t\t// new ones\n\t\ttry {\n\t\t\tdataView = source.dataView || (source.dataView = new DataView(source.buffer, source.byteOffset, source.byteLength))\n\t\t} catch(error) {\n\t\t\t// if it doesn't have a buffer, maybe it is the wrong type of object\n\t\t\tsrc = null\n\t\t\tif (source instanceof Uint8Array)\n\t\t\t\tthrow error\n\t\t\tthrow new Error('Source must be a Uint8Array or Buffer but was a ' + ((source && typeof source == 'object') ? source.constructor.name : typeof source))\n\t\t}\n\t\tif (this instanceof Decoder) {\n\t\t\tcurrentDecoder = this\n\t\t\tpackedValues = this.sharedValues &&\n\t\t\t\t(this.pack ? new Array(this.maxPrivatePackedValues || 16).concat(this.sharedValues) :\n\t\t\t\tthis.sharedValues)\n\t\t\tif (this.structures) {\n\t\t\t\tcurrentStructures = this.structures\n\t\t\t\treturn checkedRead()\n\t\t\t} else if (!currentStructures || currentStructures.length > 0) {\n\t\t\t\tcurrentStructures = []\n\t\t\t}\n\t\t} else {\n\t\t\tcurrentDecoder = defaultOptions\n\t\t\tif (!currentStructures || currentStructures.length > 0)\n\t\t\t\tcurrentStructures = []\n\t\t\tpackedValues = null\n\t\t}\n\t\treturn checkedRead()\n\t}\n\tdecodeMultiple(source, forEach) {\n\t\tlet values, lastPosition = 0\n\t\ttry {\n\t\t\tlet size = source.length\n\t\t\tsequentialMode = true\n\t\t\tlet value = this ? this.decode(source, size) : defaultDecoder.decode(source, size)\n\t\t\tif (forEach) {\n\t\t\t\tif (forEach(value) === false) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tif (forEach(checkedRead()) === false) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalues = [ value ]\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tvalues.push(checkedRead())\n\t\t\t\t}\n\t\t\t\treturn values\n\t\t\t}\n\t\t} catch(error) {\n\t\t\terror.lastPosition = lastPosition\n\t\t\terror.values = values\n\t\t\tthrow error\n\t\t} finally {\n\t\t\tsequentialMode = false\n\t\t\tclearSource()\n\t\t}\n\t}\n}\nexport function getPosition() {\n\treturn position\n}\nexport function checkedRead() {\n\ttry {\n\t\tlet result = read()\n\t\tif (bundledStrings) {\n\t\t\tif (position >= bundledStrings.postBundlePosition) {\n\t\t\t\tlet error = new Error('Unexpected bundle position');\n\t\t\t\terror.incomplete = true;\n\t\t\t\tthrow error\n\t\t\t}\n\t\t\t// bundled strings to skip past\n\t\t\tposition = bundledStrings.postBundlePosition;\n\t\t\tbundledStrings = null;\n\t\t}\n\n\t\tif (position == srcEnd) {\n\t\t\t// finished reading this source, cleanup references\n\t\t\tcurrentStructures = null\n\t\t\tsrc = null\n\t\t\tif (referenceMap)\n\t\t\t\treferenceMap = null\n\t\t} else if (position > srcEnd) {\n\t\t\t// over read\n\t\t\tlet error = new Error('Unexpected end of CBOR data')\n\t\t\terror.incomplete = true\n\t\t\tthrow error\n\t\t} else if (!sequentialMode) {\n\t\t\tthrow new Error('Data read, but end of buffer not reached')\n\t\t}\n\t\t// else more to read, but we are reading sequentially, so don't clear source yet\n\t\treturn result\n\t} catch(error) {\n\t\tclearSource()\n\t\tif (error instanceof RangeError || error.message.startsWith('Unexpected end of buffer')) {\n\t\t\terror.incomplete = true\n\t\t}\n\t\tthrow error\n\t}\n}\n\nfunction endOfCBORError() {\n\tlet error = new Error('Unexpected end of CBOR data')\n\terror.incomplete = true\n\treturn error\n}\n\nexport function read() {\n\t// compared as < so that a NaN position (from a corrupt length) also throws instead of reading undefined\n\tif (!(position < srcEnd)) throw endOfCBORError()\n\tlet token = src[position++]\n\tlet majorType = token >> 5\n\ttoken = token & 0x1f\n\tif (token > 0x17) {\n\t\tswitch (token) {\n\t\t\tcase 0x18:\n\t\t\t\tif (position >= srcEnd) throw endOfCBORError()\n\t\t\t\ttoken = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0x19:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\treturn getFloat16()\n\t\t\t\t}\n\t\t\t\ttoken = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0x1a:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\tlet value = dataView.getFloat32(position)\n\t\t\t\t\tif (currentDecoder.useFloat32 > 2) {\n\t\t\t\t\t\t// this does rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved\n\t\t\t\t\t\tlet multiplier = mult10[((src[position] & 0x7f) << 1) | (src[position + 1] >> 7)]\n\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\treturn ((multiplier * value + (value > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n\t\t\t\t\t}\n\t\t\t\t\tposition += 4\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\ttoken = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tif (majorType === 1) return -1 - token; // can't safely use negation operator here\n\t\t\t\tbreak\n\t\t\tcase 0x1b:\n\t\t\t\tif (majorType == 7) {\n\t\t\t\t\tlet value = dataView.getFloat64(position)\n\t\t\t\t\tposition += 8\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\tif (majorType > 1) {\n\t\t\t\t\tif (dataView.getUint32(position) > 0)\n\t\t\t\t\t\tthrow new Error('JavaScript does not support arrays, maps, or strings with length over 4294967295')\n\t\t\t\t\ttoken = dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentDecoder.int64AsNumber) {\n\t\t\t\t\ttoken = dataView.getUint32(position) * 0x100000000\n\t\t\t\t\ttoken += dataView.getUint32(position + 4)\n\t\t\t\t} else token = dataView.getBigUint64(position)\n\t\t\t\tposition += 8\n\t\t\t\tbreak\n\t\t\tcase 0x1f: \n\t\t\t\t// indefinite length\n\t\t\t\tswitch(majorType) {\n\t\t\t\t\tcase 2: // byte string\n\t\t\t\t\tcase 3: // text string\n\t\t\t\t\t\tthrow new Error('Indefinite length not supported for byte or text strings')\n\t\t\t\t\tcase 4: // array\n\t\t\t\t\t\tlet array = []\n\t\t\t\t\t\tlet value, i = 0\n\t\t\t\t\t\twhile ((value = read()) != STOP_CODE) {\n\t\t\t\t\t\t\tif (i >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)\n\t\t\t\t\t\t\tarray[i++] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn majorType == 4 ? array : majorType == 3 ? array.join('') : Buffer.concat(array)\n\t\t\t\t\tcase 5: // map\n\t\t\t\t\t\tlet key\n\t\t\t\t\t\tif (currentDecoder.mapsAsObjects) {\n\t\t\t\t\t\t\tlet object = {}\n\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\tif (currentDecoder.keyMap) {\n\t\t\t\t\t\t\t\twhile((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`)\n\t\t\t\t\t\t\t\t\tobject[safeKey(currentDecoder.decodeKey(key))] = read()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\twhile ((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`)\n\t\t\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn object\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (restoreMapsAsObject) {\n\t\t\t\t\t\t\t\tcurrentDecoder.mapsAsObjects = true\n\t\t\t\t\t\t\t\trestoreMapsAsObject = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet map = new Map()\n\t\t\t\t\t\t\tif (currentDecoder.keyMap) {\n\t\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\t\twhile((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`Map size exceeds ${maxMapSize}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmap.set(currentDecoder.decodeKey(key), read())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\t\twhile ((key = read()) != STOP_CODE) {\n\t\t\t\t\t\t\t\t\tif (i++ >= maxMapSize) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`Map size exceeds ${maxMapSize}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmap.set(key, read())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn map\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 7:\n\t\t\t\t\t\treturn STOP_CODE\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error('Invalid major type for indefinite length ' + majorType)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown token ' + token)\n\t\t}\n\t}\n\tswitch (majorType) {\n\t\tcase 0: // positive int\n\t\t\treturn token\n\t\tcase 1: // negative int\n\t\t\treturn ~token\n\t\tcase 2: // buffer\n\t\t\treturn readBin(token)\n\t\tcase 3: // string\n\t\t\tif (srcStringEnd >= position) {\n\t\t\t\treturn srcString.slice(position - srcStringStart, (position += token) - srcStringStart)\n\t\t\t}\n\t\t\tif (srcStringEnd == 0 && srcEnd < 140 && token < 32) {\n\t\t\t\t// for small blocks, avoiding the overhead of the extract call is helpful\n\t\t\t\tlet string = token < 16 ? shortStringInJS(token) : longStringInJS(token)\n\t\t\t\tif (string != null)\n\t\t\t\t\treturn string\n\t\t\t}\n\t\t\treturn readFixedString(token)\n\t\tcase 4: // array\n\t\t\tif (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`)\n\t\t\t// every element occupies at least one byte, so a length beyond what remains in the source can\n\t\t\t// never be satisfied; check before allocating so a tiny header can not force a huge allocation\n\t\t\tif (token > srcEnd - position) throw endOfCBORError()\n\t\t\tlet array = new Array(token)\n\t\t //if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read())\t\n\t\t\t//else \n\t\t\tfor (let i = 0; i < token; i++) array[i] = read()\n\t\t\treturn array\n\t\tcase 5: // map\n\t\t\tif (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`)\n\t\t\tif (token > (srcEnd - position) / 2) throw endOfCBORError() // each entry needs at least two bytes\n\t\t\tif (currentDecoder.mapsAsObjects) {\n\t\t\t\tlet object = {}\n\t\t\t\tif (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read()\n\t\t\t\telse for (let i = 0; i < token; i++) object[safeKey(read())] = read()\n\t\t\t\treturn object\n\t\t\t} else {\n\t\t\t\tif (restoreMapsAsObject) {\n\t\t\t\t\tcurrentDecoder.mapsAsObjects = true\n\t\t\t\t\trestoreMapsAsObject = false\n\t\t\t\t}\n\t\t\t\tlet map = new Map()\n\t\t\t\tif (currentDecoder.keyMap) for (let i = 0; i < token; i++) map.set(currentDecoder.decodeKey(read()),read())\n\t\t\t\telse for (let i = 0; i < token; i++) map.set(read(), read())\n\t\t\t\treturn map\n\t\t\t}\n\t\tcase 6: // extension\n\t\t\tif (token >= BUNDLED_STRINGS_ID) {\n\t\t\t\tlet structure = currentStructures[token & 0x1fff] // check record structures first\n\t\t\t\t// At some point we may provide an option for dynamic tag assignment with a range like token >= 8 && (token < 16 || (token > 0x80 && token < 0xc0) || (token > 0x130 && token < 0x4000))\n\t\t\t\tif (structure) {\n\t\t\t\t\tif (!structure.read) structure.read = createStructureReader(structure)\n\t\t\t\t\treturn structure.read()\n\t\t\t\t}\n\t\t\t\tif (token < 0x10000) {\n\t\t\t\t\tif (token == RECORD_INLINE_ID) { // we do a special check for this so that we can keep the\n\t\t\t\t\t\t// currentExtensions as densely stored array (v8 stores arrays densely under about 3000 elements)\n\t\t\t\t\t\tlet length = readJustLength()\n\t\t\t\t\t\tlet id = read()\n\t\t\t\t\t\tlet structure = read()\n\t\t\t\t\t\trecordDefinition(id, structure)\n\t\t\t\t\t\tlet object = {}\n\t\t\t\t\t\tif (currentDecoder.keyMap) for (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\tlet key = currentDecoder.decodeKey(structure[i - 2])\n\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse for (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\tlet key = structure[i - 2]\n\t\t\t\t\t\t\tobject[safeKey(key)] = read()\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn object\n\t\t\t\t\t}\n\t\t\t\t\telse if (token == RECORD_DEFINITIONS_ID) {\n\t\t\t\t\t\tlet length = readJustLength()\n\t\t\t\t\t\tlet id = read()\n\t\t\t\t\t\tfor (let i = 2; i < length; i++) {\n\t\t\t\t\t\t\trecordDefinition(id++, read())\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn read()\n\t\t\t\t\t} else if (token == BUNDLED_STRINGS_ID) {\n\t\t\t\t\t\treturn readBundleExt()\n\t\t\t\t\t}\n\t\t\t\t\tif (currentDecoder.getShared) {\n\t\t\t\t\t\tloadShared()\n\t\t\t\t\t\tstructure = currentStructures[token & 0x1fff]\n\t\t\t\t\t\tif (structure) {\n\t\t\t\t\t\t\tif (!structure.read)\n\t\t\t\t\t\t\t\tstructure.read = createStructureReader(structure)\n\t\t\t\t\t\t\treturn structure.read()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet extension = currentExtensions[token]\n\t\t\tif (extension) {\n\t\t\t\tif (extension.handlesRead)\n\t\t\t\t\treturn extension(read)\n\t\t\t\telse\n\t\t\t\t\treturn extension(read())\n\t\t\t} else {\n\t\t\t\tlet input = read()\n\t\t\t\tfor (let i = 0; i < currentExtensionRanges.length; i++) {\n\t\t\t\t\tlet value = currentExtensionRanges[i](token, input)\n\t\t\t\t\tif (value !== undefined)\n\t\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t\treturn new Tag(input, token)\n\t\t\t}\n\t\tcase 7: // fixed value\n\t\t\tswitch (token) {\n\t\t\t\tcase 0x14: return false\n\t\t\t\tcase 0x15: return true\n\t\t\t\tcase 0x16: return null\n\t\t\t\tcase 0x17: return; // undefined\n\t\t\t\tcase 0x1f:\n\t\t\t\tdefault:\n\t\t\t\t\tlet packedValue = (packedValues || getPackedValues())[token]\n\t\t\t\t\tif (packedValue !== undefined)\n\t\t\t\t\t\treturn packedValue\n\t\t\t\t\tthrow new Error('Unknown token ' + token)\n\t\t\t}\n\t\tdefault: // negative int\n\t\t\tif (isNaN(token)) throw endOfCBORError()\n\t\t\tthrow new Error('Unknown CBOR token ' + token)\n\t}\n}\nconst validName = /^[a-zA-Z_$][a-zA-Z\\d_$]*$/\nfunction createStructureReader(structure) {\n\tif (!structure) throw new Error('Structure is required in record definition');\n\tfunction readObject() {\n\t\t// get the array size from the header\n\t\tlet length = src[position++]\n\t\t//let majorType = token >> 5\n\t\tlength = length & 0x1f\n\t\tif (length > 0x17) {\n\t\t\tswitch (length) {\n\t\t\t\tcase 0x18:\n\t\t\t\t\tlength = src[position++]\n\t\t\t\t\tbreak\n\t\t\t\tcase 0x19:\n\t\t\t\t\tlength = dataView.getUint16(position)\n\t\t\t\t\tposition += 2\n\t\t\t\t\tbreak\n\t\t\t\tcase 0x1a:\n\t\t\t\t\tlength = dataView.getUint32(position)\n\t\t\t\t\tposition += 4\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error('Expected array header, but got ' + src[position - 1])\n\t\t\t}\n\t\t}\n\t\t// This initial function is quick to instantiate, but runs slower. After several iterations pay the cost to build the faster function\n\t\tlet compiledReader = this.compiledReader // first look to see if we have the fast compiled function\n\t\twhile(compiledReader) {\n\t\t\t// we have a fast compiled object literal reader\n\t\t\tif (compiledReader.propertyCount === length)\n\t\t\t\treturn compiledReader(read) // with the right length, so we use it\n\t\t\tcompiledReader = compiledReader.next // see if there is another reader with the right length\n\t\t}\n\t\tif (this.slowReads++ >= inlineObjectReadThreshold) { // create a fast compiled reader\n\t\t\tlet array = this.length == length ? this : this.slice(0, length)\n\t\t\tcompiledReader = currentDecoder.keyMap \n\t\t\t? new Function('r', 'return {' + array.map(k => currentDecoder.decodeKey(k)).map(k => validName.test(k) ? safeKey(k) + ':r()' : ('[' + JSON.stringify(k) + ']:r()')).join(',') + '}')\n\t\t\t: new Function('r', 'return {' + array.map(key => validName.test(key) ? safeKey(key) + ':r()' : ('[' + JSON.stringify(key) + ']:r()')).join(',') + '}')\n\t\t\tif (this.compiledReader)\n\t\t\t\tcompiledReader.next = this.compiledReader // if there is an existing one, we store multiple readers as a linked list because it is usually pretty rare to have multiple readers (of different length) for the same structure\n\t\t\tcompiledReader.propertyCount = length\n\t\t\tthis.compiledReader = compiledReader\n\t\t\treturn compiledReader(read)\n\t\t}\n\t\tlet object = {}\n\t\tif (currentDecoder.keyMap) for (let i = 0; i < length; i++) object[safeKey(currentDecoder.decodeKey(this[i]))] = read()\n\t\telse for (let i = 0; i < length; i++) {\n\t\t\tobject[safeKey(this[i])] = read();\n\t\t}\n\t\treturn object\n\t}\n\tstructure.slowReads = 0\n\treturn readObject\n}\n\nfunction safeKey(key) {\n\t// protect against prototype pollution\n\tif (typeof key === 'string') return key === '__proto__' ? '__proto_' : key\n\tif (typeof key === 'number' || typeof key === 'boolean' || typeof key === 'bigint') return key.toString();\n\tif (key == null) return key + '';\n\t// protect against expensive (DoS) string conversions\n\tthrow new Error('Invalid property name type ' + typeof key);\n}\n\nlet readFixedString = readStringJS\nlet readString8 = readStringJS\nlet readString16 = readStringJS\nlet readString32 = readStringJS\n\nexport let isNativeAccelerationEnabled = false\nexport function setExtractor(extractStrings) {\n\tisNativeAccelerationEnabled = true\n\treadFixedString = readString(1)\n\treadString8 = readString(2)\n\treadString16 = readString(3)\n\treadString32 = readString(5)\n\tfunction readString(headerLength) {\n\t\treturn function readString(length) {\n\t\t\tlet string = strings[stringPosition++]\n\t\t\tif (string == null) {\n\t\t\t\tif (bundledStrings)\n\t\t\t\t\treturn readStringJS(length)\n\t\t\t\tlet extraction = extractStrings(position, srcEnd, length, src)\n\t\t\t\tif (typeof extraction == 'string') {\n\t\t\t\t\tstring = extraction\n\t\t\t\t\tstrings = EMPTY_ARRAY\n\t\t\t\t} else {\n\t\t\t\t\tstrings = extraction\n\t\t\t\t\tstringPosition = 1\n\t\t\t\t\tsrcStringEnd = 1 // even if a utf-8 string was decoded, must indicate we are in the midst of extracted strings and can't skip strings\n\t\t\t\t\tstring = strings[0]\n\t\t\t\t\tif (string === undefined)\n\t\t\t\t\t\tthrow new Error('Unexpected end of buffer')\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet srcStringLength = string.length\n\t\t\tif (srcStringLength <= length) {\n\t\t\t\tposition += length\n\t\t\t\treturn string\n\t\t\t}\n\t\t\tsrcString = string\n\t\t\tsrcStringStart = position\n\t\t\tsrcStringEnd = position + srcStringLength\n\t\t\tposition += length\n\t\t\treturn string.slice(0, length) // we know we just want the beginning\n\t\t}\n\t}\n}\nfunction readStringJS(length) {\n\tlet result\n\tif (length < 16) {\n\t\tif (result = shortStringInJS(length))\n\t\t\treturn result\n\t}\n\tif (length > 64 && decoder)\n\t\treturn decoder.decode(src.subarray(position, position += length))\n\tconst end = position + length\n\tconst units = []\n\tresult = ''\n\twhile (position < end) {\n\t\tconst byte1 = src[position++]\n\t\tif ((byte1 & 0x80) === 0) {\n\t\t\t// 1 byte\n\t\t\tunits.push(byte1)\n\t\t} else if ((byte1 & 0xe0) === 0xc0) {\n\t\t\t// 2 bytes\n\t\t\tif (byte1 < 0xc2 || position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tconst byte2 = src[position++] & 0x3f\n\t\t\t\tunits.push(((byte1 & 0x1f) << 6) | byte2)\n\t\t\t}\n\t\t} else if ((byte1 & 0xf0) === 0xe0) {\n\t\t\t// 3 bytes\n\t\t\tconst byte2 = position < end ? src[position] : 0\n\t\t\tif (position >= end || (byte2 & 0xc0) !== 0x80 ||\n\t\t\t\t(byte1 === 0xe0 && byte2 < 0xa0) || (byte1 === 0xed && byte2 >= 0xa0)) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tposition++\n\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t} else {\n\t\t\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\t\t\tunits.push(((byte1 & 0x1f) << 12) | ((byte2 & 0x3f) << 6) | byte3)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ((byte1 & 0xf8) === 0xf0) {\n\t\t\t// 4 bytes\n\t\t\tconst byte2 = position < end ? src[position] : 0\n\t\t\tif (byte1 > 0xf4 || position >= end || (byte2 & 0xc0) !== 0x80 ||\n\t\t\t\t(byte1 === 0xf0 && byte2 < 0x90) || (byte1 === 0xf4 && byte2 >= 0x90)) {\n\t\t\t\tunits.push(0xFFFD)\n\t\t\t} else {\n\t\t\t\tposition++\n\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t} else {\n\t\t\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\t\t\tif (position >= end || (src[position] & 0xc0) !== 0x80) {\n\t\t\t\t\t\tunits.push(0xFFFD)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst byte4 = src[position++] & 0x3f\n\t\t\t\t\t\tlet unit = ((byte1 & 0x07) << 0x12) | ((byte2 & 0x3f) << 0x0c) | (byte3 << 0x06) | byte4\n\t\t\t\t\t\tunit -= 0x10000\n\t\t\t\t\t\tunits.push(((unit >>> 10) & 0x3ff) | 0xd800)\n\t\t\t\t\t\tunits.push(0xdc00 | (unit & 0x3ff))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tunits.push(0xFFFD) // replacement character for invalid lead byte\n\t\t}\n\n\t\tif (units.length >= 0x1000) {\n\t\t\tresult += fromCharCode.apply(String, units)\n\t\t\tunits.length = 0\n\t\t}\n\t}\n\n\tif (units.length > 0) {\n\t\tresult += fromCharCode.apply(String, units)\n\t}\n\n\treturn result\n}\nlet fromCharCode = String.fromCharCode\nfunction longStringInJS(length) {\n\tlet start = position\n\tlet bytes = new Array(length)\n\tfor (let i = 0; i < length; i++) {\n\t\tconst byte = src[position++];\n\t\tif ((byte & 0x80) > 0) {\n\t\t\tposition = start\n \t\t\treturn\n \t\t}\n \t\tbytes[i] = byte\n \t}\n \treturn fromCharCode.apply(String, bytes)\n}\nfunction shortStringInJS(length) {\n\tif (length < 4) {\n\t\tif (length < 2) {\n\t\t\tif (length === 0)\n\t\t\t\treturn ''\n\t\t\telse {\n\t\t\t\tlet a = src[position++]\n\t\t\t\tif ((a & 0x80) > 1) {\n\t\t\t\t\tposition -= 1\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a)\n\t\t\t}\n\t\t} else {\n\t\t\tlet a = src[position++]\n\t\t\tlet b = src[position++]\n\t\t\tif ((a & 0x80) > 0 || (b & 0x80) > 0) {\n\t\t\t\tposition -= 2\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 3)\n\t\t\t\treturn fromCharCode(a, b)\n\t\t\tlet c = src[position++]\n\t\t\tif ((c & 0x80) > 0) {\n\t\t\t\tposition -= 3\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn fromCharCode(a, b, c)\n\t\t}\n\t} else {\n\t\tlet a = src[position++]\n\t\tlet b = src[position++]\n\t\tlet c = src[position++]\n\t\tlet d = src[position++]\n\t\tif ((a & 0x80) > 0 || (b & 0x80) > 0 || (c & 0x80) > 0 || (d & 0x80) > 0) {\n\t\t\tposition -= 4\n\t\t\treturn\n\t\t}\n\t\tif (length < 6) {\n\t\t\tif (length === 4)\n\t\t\t\treturn fromCharCode(a, b, c, d)\n\t\t\telse {\n\t\t\t\tlet e = src[position++]\n\t\t\t\tif ((e & 0x80) > 0) {\n\t\t\t\t\tposition -= 5\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a, b, c, d, e)\n\t\t\t}\n\t\t} else if (length < 8) {\n\t\t\tlet e = src[position++]\n\t\t\tlet f = src[position++]\n\t\t\tif ((e & 0x80) > 0 || (f & 0x80) > 0) {\n\t\t\t\tposition -= 6\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 7)\n\t\t\t\treturn fromCharCode(a, b, c, d, e, f)\n\t\t\tlet g = src[position++]\n\t\t\tif ((g & 0x80) > 0) {\n\t\t\t\tposition -= 7\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn fromCharCode(a, b, c, d, e, f, g)\n\t\t} else {\n\t\t\tlet e = src[position++]\n\t\t\tlet f = src[position++]\n\t\t\tlet g = src[position++]\n\t\t\tlet h = src[position++]\n\t\t\tif ((e & 0x80) > 0 || (f & 0x80) > 0 || (g & 0x80) > 0 || (h & 0x80) > 0) {\n\t\t\t\tposition -= 8\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (length < 10) {\n\t\t\t\tif (length === 8)\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h)\n\t\t\t\telse {\n\t\t\t\t\tlet i = src[position++]\n\t\t\t\t\tif ((i & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 9\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i)\n\t\t\t\t}\n\t\t\t} else if (length < 12) {\n\t\t\t\tlet i = src[position++]\n\t\t\t\tlet j = src[position++]\n\t\t\t\tif ((i & 0x80) > 0 || (j & 0x80) > 0) {\n\t\t\t\t\tposition -= 10\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (length < 11)\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j)\n\t\t\t\tlet k = src[position++]\n\t\t\t\tif ((k & 0x80) > 0) {\n\t\t\t\t\tposition -= 11\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k)\n\t\t\t} else {\n\t\t\t\tlet i = src[position++]\n\t\t\t\tlet j = src[position++]\n\t\t\t\tlet k = src[position++]\n\t\t\t\tlet l = src[position++]\n\t\t\t\tif ((i & 0x80) > 0 || (j & 0x80) > 0 || (k & 0x80) > 0 || (l & 0x80) > 0) {\n\t\t\t\t\tposition -= 12\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (length < 14) {\n\t\t\t\t\tif (length === 12)\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l)\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet m = src[position++]\n\t\t\t\t\t\tif ((m & 0x80) > 0) {\n\t\t\t\t\t\t\tposition -= 13\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet m = src[position++]\n\t\t\t\t\tlet n = src[position++]\n\t\t\t\t\tif ((m & 0x80) > 0 || (n & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 14\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tif (length < 15)\n\t\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n)\n\t\t\t\t\tlet o = src[position++]\n\t\t\t\t\tif ((o & 0x80) > 0) {\n\t\t\t\t\t\tposition -= 15\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\treturn fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction readBin(length) {\n\treturn currentDecoder.copyBuffers ?\n\t\t// specifically use the copying slice (not the node one)\n\t\tUint8Array.prototype.slice.call(src, position, position += length) :\n\t\tsrc.subarray(position, position += length)\n}\nfunction readExt(length) {\n\tlet type = src[position++]\n\tif (currentExtensions[type]) {\n\t\treturn currentExtensions[type](src.subarray(position, position += length))\n\t}\n\telse\n\t\tthrow new Error('Unknown extension type ' + type)\n}\nlet f32Array = new Float32Array(1)\nlet u8Array = new Uint8Array(f32Array.buffer, 0, 4)\nfunction getFloat16() {\n\tlet byte0 = src[position++]\n\tlet byte1 = src[position++]\n\tlet exponent = (byte0 & 0x7f) >> 2;\n\tif (exponent === 0x1f) { // specials\n\t\tif (byte1 || (byte0 & 3))\n\t\t\treturn NaN;\n\t\treturn (byte0 & 0x80) ? -Infinity : Infinity;\n\t}\n\tif (exponent === 0) { // sub-normals\n\t\t// significand with 10 fractional bits and divided by 2^14\n\t\tlet abs = (((byte0 & 3) << 8) | byte1) / (1 << 24)\n\t\treturn (byte0 & 0x80) ? -abs : abs\n\t}\n\n\tu8Array[3] = (byte0 & 0x80) | // sign bit\n\t\t((exponent >> 1) + 56) // 4 of 5 of the exponent bits, re-offset-ed\n\tu8Array[2] = ((byte0 & 7) << 5) | // last exponent bit and first two mantissa bits\n\t\t(byte1 >> 3) // next 5 bits of mantissa\n\tu8Array[1] = byte1 << 5; // last three bits of mantissa\n\tu8Array[0] = 0;\n\treturn f32Array[0];\n}\n\nlet keyCache = new Array(4096)\nfunction readKey() {\n\tlet length = src[position++]\n\tif (length >= 0x60 && length < 0x78) {\n\t\t// fixstr, potentially use key cache\n\t\tlength = length - 0x60\n\t\tif (srcStringEnd >= position) // if it has been extracted, must use it (and faster anyway)\n\t\t\treturn srcString.slice(position - srcStringStart, (position += length) - srcStringStart)\n\t\telse if (!(srcStringEnd == 0 && srcEnd < 180))\n\t\t\treturn readFixedString(length)\n\t} else { // not cacheable, go back and do a standard read\n\t\tposition--\n\t\treturn read()\n\t}\n\tlet key = ((length << 5) ^ (length > 1 ? dataView.getUint16(position) : length > 0 ? src[position] : 0)) & 0xfff\n\tlet entry = keyCache[key]\n\tlet checkPosition = position\n\tlet end = position + length - 3\n\tlet chunk\n\tlet i = 0\n\tif (entry && entry.bytes == length) {\n\t\twhile (checkPosition < end) {\n\t\t\tchunk = dataView.getUint32(checkPosition)\n\t\t\tif (chunk != entry[i++]) {\n\t\t\t\tcheckPosition = 0x70000000\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcheckPosition += 4\n\t\t}\n\t\tend += 3\n\t\twhile (checkPosition < end) {\n\t\t\tchunk = src[checkPosition++]\n\t\t\tif (chunk != entry[i++]) {\n\t\t\t\tcheckPosition = 0x70000000\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (checkPosition === end) {\n\t\t\tposition = checkPosition\n\t\t\treturn entry.string\n\t\t}\n\t\tend -= 3\n\t\tcheckPosition = position\n\t}\n\tentry = []\n\tkeyCache[key] = entry\n\tentry.bytes = length\n\twhile (checkPosition < end) {\n\t\tchunk = dataView.getUint32(checkPosition)\n\t\tentry.push(chunk)\n\t\tcheckPosition += 4\n\t}\n\tend += 3\n\twhile (checkPosition < end) {\n\t\tchunk = src[checkPosition++]\n\t\tentry.push(chunk)\n\t}\n\t// for small blocks, avoiding the overhead of the extract call is helpful\n\tlet string = length < 16 ? shortStringInJS(length) : longStringInJS(length)\n\tif (string != null)\n\t\treturn entry.string = string\n\treturn entry.string = readFixedString(length)\n}\n\nexport class Tag {\n\tconstructor(value, tag) {\n\t\tthis.value = value\n\t\tthis.tag = tag\n\t}\n}\n\ncurrentExtensions[0] = (dateString) => {\n\t// string date extension\n\treturn new Date(dateString)\n}\n\ncurrentExtensions[1] = (epochSec) => {\n\t// numeric date extension\n\treturn new Date(Math.round(epochSec * 1000))\n}\n\ncurrentExtensions[2] = (buffer) => {\n\t// bigint extension\n\tlet value = BigInt(0)\n\tfor (let i = 0, l = buffer.byteLength; i < l; i++) {\n\t\tvalue = BigInt(buffer[i]) + (value << BigInt(8))\n\t}\n\treturn value\n}\n\ncurrentExtensions[3] = (buffer) => {\n\t// negative bigint extension\n\treturn BigInt(-1) - currentExtensions[2](buffer)\n}\ncurrentExtensions[4] = (fraction) => {\n\t// best to reparse to maintain accuracy\n\treturn +(fraction[1] + 'e' + fraction[0])\n}\n\ncurrentExtensions[5] = (fraction) => {\n\t// probably not sufficiently accurate\n\treturn fraction[1] * Math.exp(fraction[0] * Math.log(2))\n}\n\n// the registration of the record definition extension\nconst recordDefinition = (id, structure) => {\n\tid = id - 0xe000\n\tlet existingStructure = currentStructures[id]\n\tif (existingStructure && existingStructure.isShared) {\n\t\t(currentStructures.restoreStructures || (currentStructures.restoreStructures = []))[id] = existingStructure\n\t}\n\tcurrentStructures[id] = structure\n\n\tstructure.read = createStructureReader(structure)\n}\ncurrentExtensions[LEGACY_RECORD_INLINE_ID] = (data) => {\n\tlet length = data.length\n\tlet structure = data[1]\n\trecordDefinition(data[0], structure)\n\tlet object = {}\n\tfor (let i = 2; i < length; i++) {\n\t\tlet key = structure[i - 2]\n\t\tobject[safeKey(key)] = data[i]\n\t}\n\treturn object\n}\ncurrentExtensions[14] = (value) => {\n\tif (bundledStrings)\n\t\treturn bundledStrings[0].slice(bundledStrings.position0, bundledStrings.position0 += value)\n\treturn new Tag(value, 14)\n}\ncurrentExtensions[15] = (value) => {\n\tif (bundledStrings)\n\t\treturn bundledStrings[1].slice(bundledStrings.position1, bundledStrings.position1 += value)\n\treturn new Tag(value, 15)\n}\nlet glbl = { Error, RegExp }\ncurrentExtensions[27] = (data) => { // http://cbor.schmorp.de/generic-object\n\treturn (glbl[data[0]] || Error)(data[1], data[2])\n}\nconst packedTable = (read) => {\n\tif (src[position++] != 0x84) {\n\t\tlet error = new Error('Packed values structure must be followed by a 4 element array')\n\t\tif (src.length < position)\n\t\t\terror.incomplete = true\n\t\tthrow error\n\t}\n\tlet newPackedValues = read() // packed values\n\tif (!newPackedValues || !newPackedValues.length) {\n\t\tlet error = new Error('Packed values structure must be followed by a 4 element array')\n\t\terror.incomplete = true\n\t\tthrow error\n\t}\n\tpackedValues = packedValues ? newPackedValues.concat(packedValues.slice(newPackedValues.length)) : newPackedValues\n\tpackedValues.prefixes = read()\n\tpackedValues.suffixes = read()\n\treturn read() // read the rump\n}\npackedTable.handlesRead = true\ncurrentExtensions[51] = packedTable\n\ncurrentExtensions[PACKED_REFERENCE_TAG_ID] = (data) => { // packed reference\n\tif (!packedValues) {\n\t\tif (currentDecoder.getShared)\n\t\t\tloadShared()\n\t\telse\n\t\t\treturn new Tag(data, PACKED_REFERENCE_TAG_ID)\n\t}\n\tif (typeof data == 'number')\n\t\treturn packedValues[16 + (data >= 0 ? 2 * data : (-2 * data - 1))]\n\tlet error = new Error('No support for non-integer packed references yet')\n\tif (data === undefined)\n\t\terror.incomplete = true\n\tthrow error\n}\n\n// The following code is an incomplete implementation of http://cbor.schmorp.de/stringref\n// the real thing would need to implemennt more logic to populate the stringRefs table and\n// maintain a stack of stringRef \"namespaces\".\n//\n// currentExtensions[25] = (id) => {\n// \treturn stringRefs[id]\n// }\n// currentExtensions[256] = (read) => {\n// \tstringRefs = []\n// \ttry {\n// \t\treturn read()\n// \t} finally {\n// \t\tstringRefs = null\n// \t}\n// }\n// currentExtensions[256].handlesRead = true\n\ncurrentExtensions[28] = (read) => { \n\t// shareable http://cbor.schmorp.de/value-sharing (for structured clones)\n\tif (!referenceMap) {\n\t\treferenceMap = new Map()\n\t\treferenceMap.id = 0\n\t}\n\tlet id = referenceMap.id++\n\tlet startingPosition = position\n\tlet token = src[position]\n\tlet target\n\t// TODO: handle Maps, Sets, and other types that can cycle; this is complicated, because you potentially need to read\n\t// ahead past references to record structure definitions\n\tif ((token >> 5) == 4)\n\t\ttarget = []\n\telse\n\t\ttarget = {}\n\n\tlet refEntry = { target } // a placeholder object\n\treferenceMap.set(id, refEntry)\n\tlet targetProperties = read() // read the next value as the target object to id\n\tif (refEntry.used) {// there is a cycle, so we have to assign properties to original target\n\t\tif (Object.getPrototypeOf(target) !== Object.getPrototypeOf(targetProperties)) {\n\t\t\t// this means that the returned target does not match the targetProperties, so we need rerun the read to\n\t\t\t// have the correctly create instance be assigned as a reference, then we do the copy the properties back to the\n\t\t\t// target\n\t\t\t// reset the position so that the read can be repeated\n\t\t\tposition = startingPosition\n\t\t\t// the returned instance is our new target for references\n\t\t\ttarget = targetProperties\n\t\t\treferenceMap.set(id, { target })\n\t\t\ttargetProperties = read()\n\t\t}\n\t\treturn Object.assign(target, targetProperties)\n\t}\n\trefEntry.target = targetProperties // the placeholder wasn't used, replace with the deserialized one\n\treturn targetProperties // no cycle, can just use the returned read object\n}\ncurrentExtensions[28].handlesRead = true\n\ncurrentExtensions[29] = (id) => {\n\t// sharedref http://cbor.schmorp.de/value-sharing (for structured clones)\n\tlet refEntry = referenceMap.get(id)\n\trefEntry.used = true\n\treturn refEntry.target\n}\n\ncurrentExtensions[258] = (array) => new Set(array); // https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md\n(currentExtensions[259] = (read) => {\n\t// https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec\n\t// for decoding as a standard Map\n\tif (currentDecoder.mapsAsObjects) {\n\t\tcurrentDecoder.mapsAsObjects = false\n\t\trestoreMapsAsObject = true\n\t}\n\treturn read()\n}).handlesRead = true\nfunction combine(a, b) {\n\tif (typeof a === 'string')\n\t\treturn a + b\n\tif (a instanceof Array)\n\t\treturn a.concat(b)\n\treturn Object.assign({}, a, b)\n}\nfunction getPackedValues() {\n\tif (!packedValues) {\n\t\tif (currentDecoder.getShared)\n\t\t\tloadShared()\n\t\telse\n\t\t\tthrow new Error('No packed values available')\n\t}\n\treturn packedValues\n}\nconst SHARED_DATA_TAG_ID = 0x53687264 // ascii 'Shrd'\ncurrentExtensionRanges.push((tag, input) => {\n\tif (tag >= 225 && tag <= 255)\n\t\treturn combine(getPackedValues().prefixes[tag - 224], input)\n\tif (tag >= 28704 && tag <= 32767)\n\t\treturn combine(getPackedValues().prefixes[tag - 28672], input)\n\tif (tag >= 1879052288 && tag <= 2147483647)\n\t\treturn combine(getPackedValues().prefixes[tag - 1879048192], input)\n\tif (tag >= 216 && tag <= 223)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 216])\n\tif (tag >= 27647 && tag <= 28671)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 27639])\n\tif (tag >= 1811940352 && tag <= 1879048191)\n\t\treturn combine(input, getPackedValues().suffixes[tag - 1811939328])\n\tif (tag == SHARED_DATA_TAG_ID) {// we do a special check for this so that we can keep the currentExtensions as densely stored array (v8 stores arrays densely under about 3000 elements)\n\t\treturn {\n\t\t\tpackedValues: packedValues,\n\t\t\tstructures: currentStructures.slice(0),\n\t\t\tversion: input,\n\t\t}\n\t}\n\tif (tag == 55799) // self-descriptive CBOR tag, just return input value\n\t\treturn input\n})\n\nconst isLittleEndianMachine = new Uint8Array(new Uint16Array([1]).buffer)[0] == 1\nexport const typedArrays = [Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array,\n\ttypeof BigUint64Array == 'undefined' ? { name:'BigUint64Array' } : BigUint64Array, Int8Array, Int16Array, Int32Array,\n\ttypeof BigInt64Array == 'undefined' ? { name:'BigInt64Array' } : BigInt64Array, Float32Array, Float64Array]\nconst typedArrayTags = [64, 68, 69, 70, 71, 72, 77, 78, 79, 85, 86]\nfor (let i = 0; i < typedArrays.length; i++) {\n\tregisterTypedArray(typedArrays[i], typedArrayTags[i])\n}\nfunction registerTypedArray(TypedArray, tag) {\n\tlet dvMethod = 'get' + TypedArray.name.slice(0, -5)\n\tlet bytesPerElement;\n\tif (typeof TypedArray === 'function')\n\t\tbytesPerElement = TypedArray.BYTES_PER_ELEMENT;\n\telse\n\t\tTypedArray = null;\n\tfor (let littleEndian = 0; littleEndian < 2; littleEndian++) {\n\t\tif (!littleEndian && bytesPerElement == 1)\n\t\t\tcontinue\n\t\tlet sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : bytesPerElement == 8 ? 3 : 0\n\t\tcurrentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine) ? (buffer) => {\n\t\t\tif (!TypedArray)\n\t\t\t\tthrow new Error('Could not find typed array for code ' + tag)\n\t\t\tif (!currentDecoder.copyBuffers) {\n\t\t\t\t// try provide a direct view, but will only work if we are byte-aligned\n\t\t\t\tif (bytesPerElement === 1 ||\n\t\t\t\t\tbytesPerElement === 2 && !(buffer.byteOffset & 1) ||\n\t\t\t\t\tbytesPerElement === 4 && !(buffer.byteOffset & 3) ||\n\t\t\t\t\tbytesPerElement === 8 && !(buffer.byteOffset & 7))\n\t\t\t\t\treturn new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength >> sizeShift);\n\t\t\t}\n\t\t\t// we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned\n\t\t\treturn new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer)\n\t\t} : buffer => {\n\t\t\tif (!TypedArray)\n\t\t\t\tthrow new Error('Could not find typed array for code ' + tag)\n\t\t\tlet dv = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t\t\tlet elements = buffer.length >> sizeShift\n\t\t\tlet ta = new TypedArray(elements)\n\t\t\tlet method = dv[dvMethod]\n\t\t\tfor (let i = 0; i < elements; i++) {\n\t\t\t\tta[i] = method.call(dv, i << sizeShift, littleEndian)\n\t\t\t}\n\t\t\treturn ta\n\t\t}\n\t}\n}\n\nfunction readBundleExt() {\n\tlet length = readJustLength()\n\tlet bundlePosition = position + read()\n\tfor (let i = 2; i < length; i++) {\n\t\t// skip past bundles that were already read\n\t\tlet bundleLength = readJustLength() // this will increment position, so must add to position afterwards\n\t\tposition += bundleLength\n\t}\n\tlet dataPosition = position\n\tposition = bundlePosition\n\tbundledStrings = [readStringJS(readJustLength()), readStringJS(readJustLength())]\n\tbundledStrings.position0 = 0\n\tbundledStrings.position1 = 0\n\tbundledStrings.postBundlePosition = position\n\tposition = dataPosition\n\treturn read()\n}\n\nfunction readJustLength() {\n\tif (!(position < srcEnd)) throw endOfCBORError()\n\tlet token = src[position++] & 0x1f\n\tif (token > 0x17) {\n\t\tswitch (token) {\n\t\t\tcase 0x18:\n\t\t\t\tif (position >= srcEnd) throw endOfCBORError()\n\t\t\t\ttoken = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0x19:\n\t\t\t\ttoken = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0x1a:\n\t\t\t\ttoken = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tbreak\n\t\t}\n\t}\n\treturn token\n}\n\nfunction loadShared() {\n\tif (currentDecoder.getShared) {\n\t\tlet sharedData = saveState(() => {\n\t\t\t// save the state in case getShared modifies our buffer\n\t\t\tsrc = null\n\t\t\treturn currentDecoder.getShared()\n\t\t}) || {}\n\t\tlet updatedStructures = sharedData.structures || []\n\t\tcurrentDecoder.sharedVersion = sharedData.version\n\t\tpackedValues = currentDecoder.sharedValues = sharedData.packedValues\n\t\tif (currentStructures === true)\n\t\t\tcurrentDecoder.structures = currentStructures = updatedStructures\n\t\telse\n\t\t\tcurrentStructures.splice.apply(currentStructures, [0, updatedStructures.length].concat(updatedStructures))\n\t}\n}\n\nfunction saveState(callback) {\n\tlet savedSrcEnd = srcEnd\n\tlet savedPosition = position\n\tlet savedStringPosition = stringPosition\n\tlet savedSrcStringStart = srcStringStart\n\tlet savedSrcStringEnd = srcStringEnd\n\tlet savedSrcString = srcString\n\tlet savedStrings = strings\n\tlet savedReferenceMap = referenceMap\n\tlet savedBundledStrings = bundledStrings\n\n\t// TODO: We may need to revisit this if we do more external calls to user code (since it could be slow)\n\tlet savedSrc = new Uint8Array(src.slice(0, srcEnd)) // we copy the data in case it changes while external data is processed\n\tlet savedStructures = currentStructures\n\tlet savedDecoder = currentDecoder\n\tlet savedSequentialMode = sequentialMode\n\tlet value = callback()\n\tsrcEnd = savedSrcEnd\n\tposition = savedPosition\n\tstringPosition = savedStringPosition\n\tsrcStringStart = savedSrcStringStart\n\tsrcStringEnd = savedSrcStringEnd\n\tsrcString = savedSrcString\n\tstrings = savedStrings\n\treferenceMap = savedReferenceMap\n\tbundledStrings = savedBundledStrings\n\tsrc = savedSrc\n\tsequentialMode = savedSequentialMode\n\tcurrentStructures = savedStructures\n\tcurrentDecoder = savedDecoder\n\tdataView = new DataView(src.buffer, src.byteOffset, src.byteLength)\n\treturn value\n}\nexport function clearSource() {\n\tsrc = null\n\treferenceMap = null\n\tcurrentStructures = null\n}\n\nexport function addExtension(extension) {\n\tcurrentExtensions[extension.tag] = extension.decode\n}\n\nexport function setSizeLimits(limits) {\n\tif (limits.maxMapSize) maxMapSize = limits.maxMapSize;\n\tif (limits.maxArraySize) maxArraySize = limits.maxArraySize;\n\tif (limits.maxObjectSize) maxObjectSize = limits.maxObjectSize;\n}\n\nexport const mult10 = new Array(147) // this is a table matching binary exponents to the multiplier to determine significant digit rounding\nfor (let i = 0; i < 256; i++) {\n\tmult10[i] = +('1e' + Math.floor(45.15 - i * 0.30103))\n}\nlet defaultDecoder = new Decoder({ useRecords: false })\nexport const decode = defaultDecoder.decode\nexport const decodeMultiple = defaultDecoder.decodeMultiple\nexport const FLOAT32_OPTIONS = {\n\tNEVER: 0,\n\tALWAYS: 1,\n\tDECIMAL_ROUND: 3,\n\tDECIMAL_FIT: 4\n}\nexport function roundFloat32(float32Number) {\n\tf32Array[0] = float32Number\n\tlet multiplier = mult10[((u8Array[3] & 0x7f) << 1) | (u8Array[2] >> 7)]\n\treturn ((multiplier * float32Number + (float32Number > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n}\n"],"names":["isNativeAccelerationEnabled"],"mappings":"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"}
|