PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/cbor-x/dist

Просмотр файла: node.cjs.map

{"version":3,"file":"node.cjs","sources":["../decode.js","../encode.js","../stream.js","../iterators.js","../node-index.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\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\n\t\t\t\t\ttoken = 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\tconst byte2 = src[position++] & 0x3f\n\t\t\tunits.push(((byte1 & 0x1f) << 6) | byte2)\n\t\t} else if ((byte1 & 0xf0) === 0xe0) {\n\t\t\t// 3 bytes\n\t\t\tconst byte2 = src[position++] & 0x3f\n\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\tunits.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3)\n\t\t} else if ((byte1 & 0xf8) === 0xf0) {\n\t\t\t// 4 bytes\n\t\t\tconst byte2 = src[position++] & 0x3f\n\t\t\tconst byte3 = src[position++] & 0x3f\n\t\t\tconst byte4 = src[position++] & 0x3f\n\t\t\tlet unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4\n\t\t\tif (unit > 0xffff) {\n\t\t\t\tunit -= 0x10000\n\t\t\t\tunits.push(((unit >>> 10) & 0x3ff) | 0xd800)\n\t\t\t\tunit = 0xdc00 | (unit & 0x3ff)\n\t\t\t}\n\t\t\tunits.push(unit)\n\t\t} else {\n\t\t\tunits.push(byte1)\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","import { Decoder, mult10, Tag, typedArrays, addExtension as decodeAddExtension } from './decode.js'\nlet textEncoder\ntry {\n\ttextEncoder = new TextEncoder()\n} catch (error) {}\nlet extensions, extensionClasses\nconst Buffer = typeof globalThis === 'object' && globalThis.Buffer;\nconst hasNodeBuffer = typeof Buffer !== 'undefined'\nconst ByteArrayAllocate = hasNodeBuffer ? Buffer.allocUnsafeSlow : Uint8Array\nconst ByteArray = hasNodeBuffer ? Buffer : Uint8Array\nconst MAX_STRUCTURES = 0x100\nconst MAX_BUFFER_SIZE = hasNodeBuffer ? 0x100000000 : 0x7fd00000\nlet serializationId = 1\nlet throwOnIterable\nlet target\nlet targetView\nlet position = 0\nlet safeEnd\nlet bundledStrings = null\nconst MAX_BUNDLE_SIZE = 0xf000\nconst hasNonLatin = /[\\u0080-\\uFFFF]/\nconst RECORD_SYMBOL = Symbol('record-id')\nexport class Encoder extends Decoder {\n\tconstructor(options) {\n\t\tsuper(options)\n\t\tthis.offset = 0\n\t\tlet typeBuffer\n\t\tlet start\n\t\tlet sharedStructures\n\t\tlet hasSharedUpdate\n\t\tlet structures\n\t\tlet referenceMap\n\t\toptions = options || {}\n\t\tlet encodeUtf8 = ByteArray.prototype.utf8Write ? function(string, position, maxBytes) {\n\t\t\treturn target.utf8Write(string, position, maxBytes)\n\t\t} : (textEncoder && textEncoder.encodeInto) ?\n\t\t\tfunction(string, position) {\n\t\t\t\treturn textEncoder.encodeInto(string, target.subarray(position)).written\n\t\t\t} : false\n\n\t\tlet encoder = this\n\t\tlet hasSharedStructures = options.structures || options.saveStructures\n\t\tlet maxSharedStructures = options.maxSharedStructures\n\t\tif (maxSharedStructures == null)\n\t\t\tmaxSharedStructures = hasSharedStructures ? 128 : 0\n\t\tif (maxSharedStructures > 8190)\n\t\t\tthrow new Error('Maximum maxSharedStructure is 8190')\n\t\tlet isSequential = options.sequential\n\t\tif (isSequential) {\n\t\t\tmaxSharedStructures = 0\n\t\t}\n\t\tif (!this.structures)\n\t\t\tthis.structures = []\n\t\tif (this.saveStructures)\n\t\t\tthis.saveShared = this.saveStructures\n\t\tlet samplingPackedValues, packedObjectMap, sharedValues = options.sharedValues\n\t\tlet sharedPackedObjectMap\n\t\tif (sharedValues) {\n\t\t\tsharedPackedObjectMap = Object.create(null)\n\t\t\tfor (let i = 0, l = sharedValues.length; i < l; i++) {\n\t\t\t\tsharedPackedObjectMap[sharedValues[i]] = i\n\t\t\t}\n\t\t}\n\t\tlet recordIdsToRemove = []\n\t\tlet transitionsCount = 0\n\t\tlet serializationsSinceTransitionRebuild = 0\n\t\t\n\t\tthis.mapEncode = function(value, encodeOptions) {\n\t\t\t// Experimental support for premapping keys using _keyMap instad of keyMap - not optiimised yet)\n\t\t\tif (this._keyMap && !this._mapped) {\n\t\t\t\t//console.log('encoding ', value)\n\t\t\t\tswitch (value.constructor.name) {\n\t\t\t\t\tcase 'Array': \n\t\t\t\t\t\tvalue = value.map(r => this.encodeKeys(r))\n\t\t\t\t\t\tbreak\n\t\t\t\t\t//case 'Map': \n\t\t\t\t\t//\tvalue = this.encodeKeys(value)\n\t\t\t\t\t//\tbreak\n\t\t\t\t}\n\t\t\t\t//this._mapped = true\n\t\t\t}\n\t\t\treturn this.encode(value, encodeOptions)\n\t\t}\n\t\t\n\t\tthis.encode = function(value, encodeOptions)\t{\n\t\t\tif (!target) {\n\t\t\t\ttarget = new ByteArrayAllocate(8192)\n\t\t\t\ttargetView = new DataView(target.buffer, 0, 8192)\n\t\t\t\tposition = 0\n\t\t\t}\n\t\t\tsafeEnd = target.length - 10\n\t\t\tif (safeEnd - position < 0x800) {\n\t\t\t\t// don't start too close to the end, \n\t\t\t\ttarget = new ByteArrayAllocate(target.length)\n\t\t\t\ttargetView = new DataView(target.buffer, 0, target.length)\n\t\t\t\tsafeEnd = target.length - 10\n\t\t\t\tposition = 0\n\t\t\t} else if (encodeOptions === REUSE_BUFFER_MODE)\n\t\t\t\tposition = (position + 7) & 0x7ffffff8 // Word align to make any future copying of this buffer faster\n\t\t\tstart = position\n\t\t\tif (encoder.useSelfDescribedHeader) {\n\t\t\t\ttargetView.setUint32(position, 0xd9d9f700) // tag two byte, then self-descriptive tag\n\t\t\t\tposition += 3\n\t\t\t}\n\t\t\treferenceMap = encoder.structuredClone ? new Map() : null\n\t\t\tif (encoder.bundleStrings && typeof value !== 'string') {\n\t\t\t\tbundledStrings = []\n\t\t\t\tbundledStrings.size = Infinity // force a new bundle start on first string\n\t\t\t} else\n\t\t\t\tbundledStrings = null\n\n\t\t\tsharedStructures = encoder.structures\n\t\t\tif (sharedStructures) {\n\t\t\t\tif (sharedStructures.uninitialized) {\n\t\t\t\t\tlet sharedData = encoder.getShared() || {}\n\t\t\t\t\tencoder.structures = sharedStructures = sharedData.structures || []\n\t\t\t\t\tencoder.sharedVersion = sharedData.version\n\t\t\t\t\tlet sharedValues = encoder.sharedValues = sharedData.packedValues\n\t\t\t\t\tif (sharedValues) {\n\t\t\t\t\t\tsharedPackedObjectMap = {}\n\t\t\t\t\t\tfor (let i = 0, l = sharedValues.length; i < l; i++)\n\t\t\t\t\t\t\tsharedPackedObjectMap[sharedValues[i]] = i\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet sharedStructuresLength = sharedStructures.length\n\t\t\t\tif (sharedStructuresLength > maxSharedStructures && !isSequential)\n\t\t\t\t\tsharedStructuresLength = maxSharedStructures\n\t\t\t\tif (!sharedStructures.transitions) {\n\t\t\t\t\t// rebuild our structure transitions\n\t\t\t\t\tsharedStructures.transitions = Object.create(null)\n\t\t\t\t\tfor (let i = 0; i < sharedStructuresLength; i++) {\n\t\t\t\t\t\tlet keys = sharedStructures[i]\n\t\t\t\t\t\t//console.log('shared struct keys:', keys)\n\t\t\t\t\t\tif (!keys)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\tlet nextTransition, transition = sharedStructures.transitions\n\t\t\t\t\t\tfor (let j = 0, l = keys.length; j < l; j++) {\n\t\t\t\t\t\t\tif (transition[RECORD_SYMBOL] === undefined)\n\t\t\t\t\t\t\t\ttransition[RECORD_SYMBOL] = i\n\t\t\t\t\t\t\tlet key = keys[j]\n\t\t\t\t\t\t\tnextTransition = transition[key]\n\t\t\t\t\t\t\tif (!nextTransition) {\n\t\t\t\t\t\t\t\tnextTransition = transition[key] = Object.create(null)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttransition = nextTransition\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttransition[RECORD_SYMBOL] = i | 0x100000\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!isSequential)\n\t\t\t\t\tsharedStructures.nextId = sharedStructuresLength\n\t\t\t}\n\t\t\tif (hasSharedUpdate)\n\t\t\t\thasSharedUpdate = false\n\t\t\tstructures = sharedStructures || []\n\t\t\tpackedObjectMap = sharedPackedObjectMap\n\t\t\tif (options.pack) {\n\t\t\t\tlet packedValues = new Map()\n\t\t\t\tpackedValues.values = []\n\t\t\t\tpackedValues.encoder = encoder\n\t\t\t\tpackedValues.maxValues = options.maxPrivatePackedValues || (sharedPackedObjectMap ? 16 : Infinity)\n\t\t\t\tpackedValues.objectMap = sharedPackedObjectMap || false\n\t\t\t\tpackedValues.samplingPackedValues = samplingPackedValues\n\t\t\t\tfindRepetitiveStrings(value, packedValues)\n\t\t\t\tif (packedValues.values.length > 0) {\n\t\t\t\t\ttarget[position++] = 0xd8 // one-byte tag\n\t\t\t\t\ttarget[position++] = 51 // tag 51 for packed shared structures https://www.potaroo.net/ietf/ids/draft-ietf-cbor-packed-03.txt\n\t\t\t\t\twriteArrayHeader(4)\n\t\t\t\t\tlet valuesArray = packedValues.values\n\t\t\t\t\tencode(valuesArray)\n\t\t\t\t\twriteArrayHeader(0) // prefixes\n\t\t\t\t\twriteArrayHeader(0) // suffixes\n\t\t\t\t\tpackedObjectMap = Object.create(sharedPackedObjectMap || null)\n\t\t\t\t\tfor (let i = 0, l = valuesArray.length; i < l; i++) {\n\t\t\t\t\t\tpackedObjectMap[valuesArray[i]] = i\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrowOnIterable = encodeOptions & THROW_ON_ITERABLE;\n\t\t\ttry {\n\t\t\t\tif (throwOnIterable)\n\t\t\t\t\treturn;\n\t\t\t\tencode(value)\n\t\t\t\tif (bundledStrings) {\n\t\t\t\t\twriteBundles(start, encode)\n\t\t\t\t}\n\t\t\t\tencoder.offset = position // update the offset so next serialization doesn't write over our buffer, but can continue writing to same buffer sequentially\n\t\t\t\tif (referenceMap && referenceMap.idsToInsert) {\n\t\t\t\t\tposition += referenceMap.idsToInsert.length * 2\n\t\t\t\t\tif (position > safeEnd)\n\t\t\t\t\t\tmakeRoom(position)\n\t\t\t\t\tencoder.offset = position\n\t\t\t\t\tlet serialized = insertIds(target.subarray(start, position), referenceMap.idsToInsert)\n\t\t\t\t\treferenceMap = null\n\t\t\t\t\treturn serialized\n\t\t\t\t}\n\t\t\t\tif (encodeOptions & REUSE_BUFFER_MODE) {\n\t\t\t\t\ttarget.start = start\n\t\t\t\t\ttarget.end = position\n\t\t\t\t\treturn target\n\t\t\t\t}\n\t\t\t\treturn target.subarray(start, position) // position can change if we call encode again in saveShared, so we get the buffer now\n\t\t\t} finally {\n\t\t\t\tif (sharedStructures) {\n\t\t\t\t\tif (serializationsSinceTransitionRebuild < 10)\n\t\t\t\t\t\tserializationsSinceTransitionRebuild++\n\t\t\t\t\tif (sharedStructures.length > maxSharedStructures)\n\t\t\t\t\t\tsharedStructures.length = maxSharedStructures\n\t\t\t\t\tif (transitionsCount > 10000) {\n\t\t\t\t\t\t// force a rebuild occasionally after a lot of transitions so it can get cleaned up\n\t\t\t\t\t\tsharedStructures.transitions = null\n\t\t\t\t\t\tserializationsSinceTransitionRebuild = 0\n\t\t\t\t\t\ttransitionsCount = 0\n\t\t\t\t\t\tif (recordIdsToRemove.length > 0)\n\t\t\t\t\t\t\trecordIdsToRemove = []\n\t\t\t\t\t} else if (recordIdsToRemove.length > 0 && !isSequential) {\n\t\t\t\t\t\tfor (let i = 0, l = recordIdsToRemove.length; i < l; i++) {\n\t\t\t\t\t\t\trecordIdsToRemove[i][RECORD_SYMBOL] = undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\trecordIdsToRemove = []\n\t\t\t\t\t\t//sharedStructures.nextId = maxSharedStructures\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (hasSharedUpdate && encoder.saveShared) {\n\t\t\t\t\tif (encoder.structures.length > maxSharedStructures) {\n\t\t\t\t\t\tencoder.structures = encoder.structures.slice(0, maxSharedStructures)\n\t\t\t\t\t}\n\t\t\t\t\t// we can't rely on start/end with REUSE_BUFFER_MODE since they will (probably) change when we save\n\t\t\t\t\tlet returnBuffer = target.subarray(start, position)\n\t\t\t\t\tif (encoder.updateSharedData() === false)\n\t\t\t\t\t\treturn encoder.encode(value) // re-encode if it fails\n\t\t\t\t\treturn returnBuffer\n\t\t\t\t}\n\t\t\t\tif (encodeOptions & RESET_BUFFER_MODE)\n\t\t\t\t\tposition = start\n\t\t\t}\n\t\t}\n\t\tthis.findCommonStringsToPack = () => {\n\t\t\tsamplingPackedValues = new Map()\n\t\t\tif (!sharedPackedObjectMap)\n\t\t\t\tsharedPackedObjectMap = Object.create(null)\n\t\t\treturn (options) => {\n\t\t\t\tlet threshold = options && options.threshold || 4\n\t\t\t\tlet position = this.pack ? options.maxPrivatePackedValues || 16 : 0\n\t\t\t\tif (!sharedValues)\n\t\t\t\t\tsharedValues = this.sharedValues = []\n\t\t\t\tfor (let [ key, status ] of samplingPackedValues) {\n\t\t\t\t\tif (status.count > threshold) {\n\t\t\t\t\t\tsharedPackedObjectMap[key] = position++\n\t\t\t\t\t\tsharedValues.push(key)\n\t\t\t\t\t\thasSharedUpdate = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twhile (this.saveShared && this.updateSharedData() === false) {}\n\t\t\t\tsamplingPackedValues = null\n\t\t\t}\n\t\t}\n\t\tconst encode = (value) => {\n\t\t\tif (position > safeEnd)\n\t\t\t\ttarget = makeRoom(position)\n\n\t\t\tvar type = typeof value\n\t\t\tvar length\n\t\t\tif (type === 'string') {\n\t\t\t\tif (packedObjectMap) {\n\t\t\t\t\tlet packedPosition = packedObjectMap[value]\n\t\t\t\t\tif (packedPosition >= 0) {\n\t\t\t\t\t\tif (packedPosition < 16)\n\t\t\t\t\t\t\ttarget[position++] = packedPosition + 0xe0 // simple values, defined in https://www.potaroo.net/ietf/ids/draft-ietf-cbor-packed-03.txt\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttarget[position++] = 0xc6 // tag 6 defined in https://www.potaroo.net/ietf/ids/draft-ietf-cbor-packed-03.txt\n\t\t\t\t\t\t\tif (packedPosition & 1)\n\t\t\t\t\t\t\t\tencode((15 - packedPosition) >> 1)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tencode((packedPosition - 16) >> 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn\n/*\t\t\t\t\t\t} else if (packedStatus.serializationId != serializationId) {\n\t\t\t\t\t\t\tpackedStatus.serializationId = serializationId\n\t\t\t\t\t\t\tpackedStatus.count = 1\n\t\t\t\t\t\t\tif (options.sharedPack) {\n\t\t\t\t\t\t\t\tlet sharedCount = packedStatus.sharedCount = (packedStatus.sharedCount || 0) + 1\n\t\t\t\t\t\t\t\tif (shareCount > (options.sharedPack.threshold || 5)) {\n\t\t\t\t\t\t\t\t\tlet sharedPosition = packedStatus.position = packedStatus.nextSharedPosition\n\t\t\t\t\t\t\t\t\thasSharedUpdate = true\n\t\t\t\t\t\t\t\t\tif (sharedPosition < 16)\n\t\t\t\t\t\t\t\t\t\ttarget[position++] = sharedPosition + 0xc0\n\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} // else any in-doc incrementation?*/\n\t\t\t\t\t} else if (samplingPackedValues && !options.pack) {\n\t\t\t\t\t\tlet status = samplingPackedValues.get(value)\n\t\t\t\t\t\tif (status)\n\t\t\t\t\t\t\tstatus.count++\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tsamplingPackedValues.set(value, {\n\t\t\t\t\t\t\t\tcount: 1,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet strLength = value.length\n\t\t\t\tif (bundledStrings && strLength >= 4 && strLength < 0x400) {\n\t\t\t\t\tif ((bundledStrings.size += strLength) > MAX_BUNDLE_SIZE) {\n\t\t\t\t\t\tlet extStart\n\t\t\t\t\t\tlet maxBytes = (bundledStrings[0] ? bundledStrings[0].length * 3 + bundledStrings[1].length : 0) + 10\n\t\t\t\t\t\tif (position + maxBytes > safeEnd)\n\t\t\t\t\t\t\ttarget = makeRoom(position + maxBytes)\n\t\t\t\t\t\ttarget[position++] = 0xd9 // tag 16-bit\n\t\t\t\t\t\ttarget[position++] = 0xdf // tag 0xdff9\n\t\t\t\t\t\ttarget[position++] = 0xf9\n\t\t\t\t\t\t// TODO: If we only have one bundle with any string data, only write one string bundle\n\t\t\t\t\t\ttarget[position++] = bundledStrings.position ? 0x84 : 0x82 // array of 4 or 2 elements depending on if we write bundles\n\t\t\t\t\t\ttarget[position++] = 0x1a // 32-bit unsigned int\n\t\t\t\t\t\textStart = position - start\n\t\t\t\t\t\tposition += 4 // reserve for writing bundle reference\n\t\t\t\t\t\tif (bundledStrings.position) {\n\t\t\t\t\t\t\twriteBundles(start, encode) // write the last bundles\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbundledStrings = ['', ''] // create new ones\n\t\t\t\t\t\tbundledStrings.size = 0\n\t\t\t\t\t\tbundledStrings.position = extStart\n\t\t\t\t\t}\n\t\t\t\t\tlet twoByte = hasNonLatin.test(value)\n\t\t\t\t\tbundledStrings[twoByte ? 0 : 1] += value\n\t\t\t\t\ttarget[position++] = twoByte ? 0xce : 0xcf\n\t\t\t\t\tencode(strLength);\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlet headerSize\n\t\t\t\t// first we estimate the header size, so we can write to the correct location\n\t\t\t\tif (strLength < 0x20) {\n\t\t\t\t\theaderSize = 1\n\t\t\t\t} else if (strLength < 0x100) {\n\t\t\t\t\theaderSize = 2\n\t\t\t\t} else if (strLength < 0x10000) {\n\t\t\t\t\theaderSize = 3\n\t\t\t\t} else {\n\t\t\t\t\theaderSize = 5\n\t\t\t\t}\n\t\t\t\tlet maxBytes = strLength * 3\n\t\t\t\tif (position + maxBytes > safeEnd)\n\t\t\t\t\ttarget = makeRoom(position + maxBytes)\n\n\t\t\t\tif (strLength < 0x40 || !encodeUtf8) {\n\t\t\t\t\tlet i, c1, c2, strPosition = position + headerSize\n\t\t\t\t\tfor (i = 0; i < strLength; i++) {\n\t\t\t\t\t\tc1 = value.charCodeAt(i)\n\t\t\t\t\t\tif (c1 < 0x80) {\n\t\t\t\t\t\t\ttarget[strPosition++] = c1\n\t\t\t\t\t\t} else if (c1 < 0x800) {\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 6 | 0xc0\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 & 0x3f | 0x80\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t(c1 & 0xfc00) === 0xd800 &&\n\t\t\t\t\t\t\t((c2 = value.charCodeAt(i + 1)) & 0xfc00) === 0xdc00\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tc1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff)\n\t\t\t\t\t\t\ti++\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 18 | 0xf0\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 12 & 0x3f | 0x80\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 6 & 0x3f | 0x80\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 & 0x3f | 0x80\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 12 | 0xe0\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 >> 6 & 0x3f | 0x80\n\t\t\t\t\t\t\ttarget[strPosition++] = c1 & 0x3f | 0x80\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlength = strPosition - position - headerSize\n\t\t\t\t} else {\n\t\t\t\t\tlength = encodeUtf8(value, position + headerSize, maxBytes)\n\t\t\t\t}\n\n\t\t\t\tif (length < 0x18) {\n\t\t\t\t\ttarget[position++] = 0x60 | length\n\t\t\t\t} else if (length < 0x100) {\n\t\t\t\t\tif (headerSize < 2) {\n\t\t\t\t\t\ttarget.copyWithin(position + 2, position + 1, position + 1 + length)\n\t\t\t\t\t}\n\t\t\t\t\ttarget[position++] = 0x78\n\t\t\t\t\ttarget[position++] = length\n\t\t\t\t} else if (length < 0x10000) {\n\t\t\t\t\tif (headerSize < 3) {\n\t\t\t\t\t\ttarget.copyWithin(position + 3, position + 2, position + 2 + length)\n\t\t\t\t\t}\n\t\t\t\t\ttarget[position++] = 0x79\n\t\t\t\t\ttarget[position++] = length >> 8\n\t\t\t\t\ttarget[position++] = length & 0xff\n\t\t\t\t} else {\n\t\t\t\t\tif (headerSize < 5) {\n\t\t\t\t\t\ttarget.copyWithin(position + 5, position + 3, position + 3 + length)\n\t\t\t\t\t}\n\t\t\t\t\ttarget[position++] = 0x7a\n\t\t\t\t\ttargetView.setUint32(position, length)\n\t\t\t\t\tposition += 4\n\t\t\t\t}\n\t\t\t\tposition += length\n\t\t\t} else if (type === 'number') {\n\t\t\t\tif (!this.alwaysUseFloat && value >>> 0 === value) {// positive integer, 32-bit or less\n\t\t\t\t\t// positive uint\n\t\t\t\t\tif (value < 0x18) {\n\t\t\t\t\t\ttarget[position++] = value\n\t\t\t\t\t} else if (value < 0x100) {\n\t\t\t\t\t\ttarget[position++] = 0x18\n\t\t\t\t\t\ttarget[position++] = value\n\t\t\t\t\t} else if (value < 0x10000) {\n\t\t\t\t\t\ttarget[position++] = 0x19\n\t\t\t\t\t\ttarget[position++] = value >> 8\n\t\t\t\t\t\ttarget[position++] = value & 0xff\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget[position++] = 0x1a\n\t\t\t\t\t\ttargetView.setUint32(position, value)\n\t\t\t\t\t\tposition += 4\n\t\t\t\t\t}\n\t\t\t\t} else if (!this.alwaysUseFloat && value >> 0 === value) { // negative integer\n\t\t\t\t\tif (value >= -0x18) {\n\t\t\t\t\t\ttarget[position++] = 0x1f - value\n\t\t\t\t\t} else if (value >= -0x100) {\n\t\t\t\t\t\ttarget[position++] = 0x38\n\t\t\t\t\t\ttarget[position++] = ~value\n\t\t\t\t\t} else if (value >= -0x10000) {\n\t\t\t\t\t\ttarget[position++] = 0x39\n\t\t\t\t\t\ttargetView.setUint16(position, ~value)\n\t\t\t\t\t\tposition += 2\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget[position++] = 0x3a\n\t\t\t\t\t\ttargetView.setUint32(position, ~value)\n\t\t\t\t\t\tposition += 4\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet useFloat32\n\t\t\t\t\tif ((useFloat32 = this.useFloat32) > 0 && value < 0x100000000 && value >= -0x80000000) {\n\t\t\t\t\t\ttarget[position++] = 0xfa\n\t\t\t\t\t\ttargetView.setFloat32(position, value)\n\t\t\t\t\t\tlet xShifted\n\t\t\t\t\t\tif (useFloat32 < 4 ||\n\t\t\t\t\t\t\t\t// this checks for 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\t\t\t((xShifted = value * mult10[((target[position] & 0x7f) << 1) | (target[position + 1] >> 7)]) >> 0) === xShifted) {\n\t\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tposition-- // move back into position for writing a double\n\t\t\t\t\t}\n\t\t\t\t\ttarget[position++] = 0xfb\n\t\t\t\t\ttargetView.setFloat64(position, value)\n\t\t\t\t\tposition += 8\n\t\t\t\t}\n\t\t\t} else if (type === 'object') {\n\t\t\t\tif (!value)\n\t\t\t\t\ttarget[position++] = 0xf6\n\t\t\t\telse {\n\t\t\t\t\tif (referenceMap) {\n\t\t\t\t\t\tlet referee = referenceMap.get(value)\n\t\t\t\t\t\tif (referee) {\n\t\t\t\t\t\t\ttarget[position++] = 0xd8\n\t\t\t\t\t\t\ttarget[position++] = 29 // http://cbor.schmorp.de/value-sharing\n\t\t\t\t\t\t\ttarget[position++] = 0x19 // 16-bit uint\n\t\t\t\t\t\t\tif (!referee.references) {\n\t\t\t\t\t\t\t\tlet idsToInsert = referenceMap.idsToInsert || (referenceMap.idsToInsert = [])\n\t\t\t\t\t\t\t\treferee.references = []\n\t\t\t\t\t\t\t\tidsToInsert.push(referee)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treferee.references.push(position - start)\n\t\t\t\t\t\t\tposition += 2 // TODO: also support 32-bit\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t} else \n\t\t\t\t\t\t\treferenceMap.set(value, { offset: position - start })\n\t\t\t\t\t}\n\t\t\t\t\tlet constructor = value.constructor\n\t\t\t\t\tif (constructor === Object) {\n\t\t\t\t\t\twriteObject(value)\n\t\t\t\t\t} else if (constructor === Array) {\n\t\t\t\t\t\tlength = value.length\n\t\t\t\t\t\tif (length < 0x18) {\n\t\t\t\t\t\t\ttarget[position++] = 0x80 | length\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twriteArrayHeader(length)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\t\tencode(value[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (constructor === Map) {\n\t\t\t\t\t\tif (this.mapsAsObjects ? this.useTag259ForMaps !== false : this.useTag259ForMaps) {\n\t\t\t\t\t\t\t// use Tag 259 (https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec--explicit-maps.md) for maps if the user wants it that way\n\t\t\t\t\t\t\ttarget[position++] = 0xd9\n\t\t\t\t\t\t\ttarget[position++] = 1\n\t\t\t\t\t\t\ttarget[position++] = 3\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlength = value.size\n\t\t\t\t\t\tif (length < 0x18) {\n\t\t\t\t\t\t\ttarget[position++] = 0xa0 | length\n\t\t\t\t\t\t} else if (length < 0x100) {\n\t\t\t\t\t\t\ttarget[position++] = 0xb8\n\t\t\t\t\t\t\ttarget[position++] = length\n\t\t\t\t\t\t} else if (length < 0x10000) {\n\t\t\t\t\t\t\ttarget[position++] = 0xb9\n\t\t\t\t\t\t\ttarget[position++] = length >> 8\n\t\t\t\t\t\t\ttarget[position++] = length & 0xff\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[position++] = 0xba\n\t\t\t\t\t\t\ttargetView.setUint32(position, length)\n\t\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (encoder.keyMap) { \n\t\t\t\t\t\t\tfor (let [ key, entryValue ] of value) {\n\t\t\t\t\t\t\t\tencode(encoder.encodeKey(key))\n\t\t\t\t\t\t\t\tencode(entryValue)\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\tfor (let [ key, entryValue ] of value) {\n\t\t\t\t\t\t\t\tencode(key) \n\t\t\t\t\t\t\t\tencode(entryValue)\n\t\t\t\t\t\t\t} \t\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = 0, l = extensions.length; i < l; i++) {\n\t\t\t\t\t\t\tlet extensionClass = extensionClasses[i]\n\t\t\t\t\t\t\tif (value instanceof extensionClass) {\n\t\t\t\t\t\t\t\tlet extension = extensions[i]\n\t\t\t\t\t\t\t\tlet tag = extension.tag\n\t\t\t\t\t\t\t\tif (tag == undefined)\n\t\t\t\t\t\t\t\t\ttag = extension.getTag && extension.getTag.call(this, value)\n\t\t\t\t\t\t\t\tif (tag < 0x18) {\n\t\t\t\t\t\t\t\t\ttarget[position++] = 0xc0 | tag\n\t\t\t\t\t\t\t\t} else if (tag < 0x100) {\n\t\t\t\t\t\t\t\t\ttarget[position++] = 0xd8\n\t\t\t\t\t\t\t\t\ttarget[position++] = tag\n\t\t\t\t\t\t\t\t} else if (tag < 0x10000) {\n\t\t\t\t\t\t\t\t\ttarget[position++] = 0xd9\n\t\t\t\t\t\t\t\t\ttarget[position++] = tag >> 8\n\t\t\t\t\t\t\t\t\ttarget[position++] = tag & 0xff\n\t\t\t\t\t\t\t\t} else if (tag > -1) {\n\t\t\t\t\t\t\t\t\ttarget[position++] = 0xda\n\t\t\t\t\t\t\t\t\ttargetView.setUint32(position, tag)\n\t\t\t\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\t\t\t} // else undefined, don't write tag\n\t\t\t\t\t\t\t\textension.encode.call(this, value, encode, makeRoom)\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value[Symbol.iterator]) {\n\t\t\t\t\t\t\tif (throwOnIterable) {\n\t\t\t\t\t\t\t\tlet error = new Error('Iterable should be serialized as iterator')\n\t\t\t\t\t\t\t\terror.iteratorNotHandled = true;\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttarget[position++] = 0x9f // indefinite length array\n\t\t\t\t\t\t\tfor (let entry of value) {\n\t\t\t\t\t\t\t\tencode(entry)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttarget[position++] = 0xff // stop-code\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value[Symbol.asyncIterator] || isBlob(value)) {\n\t\t\t\t\t\t\tlet error = new Error('Iterable/blob should be serialized as iterator')\n\t\t\t\t\t\t\terror.iteratorNotHandled = true;\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.useToJSON && value.toJSON) {\n\t\t\t\t\t\t\tconst json = value.toJSON()\n\t\t\t\t\t\t\t// if for some reason value.toJSON returns itself it'll loop forever\n\t\t\t\t\t\t\tif (json !== value)\n\t\t\t\t\t\t\t\treturn encode(json)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// no extension found, write as a plain object\n\t\t\t\t\t\twriteObject(value)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === 'boolean') {\n\t\t\t\ttarget[position++] = value ? 0xf5 : 0xf4\n\t\t\t} else if (type === 'bigint') {\n\t\t\t\tif (value < (BigInt(1)<<BigInt(64)) && value >= 0) {\n\t\t\t\t\t// use an unsigned int as long as it fits\n\t\t\t\t\ttarget[position++] = 0x1b\n\t\t\t\t\ttargetView.setBigUint64(position, value)\n\t\t\t\t} else if (value > -(BigInt(1)<<BigInt(64)) && value < 0) {\n\t\t\t\t\t// if we can fit an unsigned int, use that\n\t\t\t\t\ttarget[position++] = 0x3b\n\t\t\t\t\ttargetView.setBigUint64(position, -value - BigInt(1))\n\t\t\t\t} else {\n\t\t\t\t\t// overflow\n\t\t\t\t\tif (this.largeBigIntToFloat) {\n\t\t\t\t\t\ttarget[position++] = 0xfb\n\t\t\t\t\t\ttargetView.setFloat64(position, Number(value))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (value >= BigInt(0))\n\t\t\t\t\t\t\ttarget[position++] = 0xc2 // tag 2\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttarget[position++] = 0xc3 // tag 2\n\t\t\t\t\t\t\tvalue = BigInt(-1) - value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet bytes = [];\n\t\t\t\t\t\twhile (value) {\n\t\t\t\t\t\t\tbytes.push(Number(value & BigInt(0xff)));\n\t\t\t\t\t\t\tvalue >>= BigInt(8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\twriteBuffer(new Uint8Array(bytes.reverse()), makeRoom);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tposition += 8\n\t\t\t} else if (type === 'undefined') {\n\t\t\t\ttarget[position++] = 0xf7\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unknown type: ' + type)\n\t\t\t}\n\t\t}\n\n\t\tconst writeObject = this.useRecords === false ? this.variableMapSize ? (object) => {\n\t\t\t// this method is slightly slower, but generates \"preferred serialization\" (optimally small for smaller objects)\n\t\t\tlet keys = Object.keys(object)\n\t\t\tlet vals = Object.values(object)\n\t\t\tlet length = keys.length\n\t\t\tif (length < 0x18) {\n\t\t\t\ttarget[position++] = 0xa0 | length\n\t\t\t} else if (length < 0x100) {\n\t\t\t\ttarget[position++] = 0xb8\n\t\t\t\ttarget[position++] = length\n\t\t\t} else if (length < 0x10000) {\n\t\t\t\ttarget[position++] = 0xb9\n\t\t\t\ttarget[position++] = length >> 8\n\t\t\t\ttarget[position++] = length & 0xff\n\t\t\t} else {\n\t\t\t\ttarget[position++] = 0xba\n\t\t\t\ttargetView.setUint32(position, length)\n\t\t\t\tposition += 4\n\t\t\t}\n\t\t\tlet key\n\t\t\tif (encoder.keyMap) { \n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tencode(encoder.encodeKey(keys[i]))\n\t\t\t\t\tencode(vals[i])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tencode(keys[i])\n\t\t\t\t\tencode(vals[i])\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\t\t(object) => {\n\t\t\ttarget[position++] = 0xb9 // always use map 16, so we can preallocate and set the length afterwards\n\t\t\tlet objectOffset = position - start\n\t\t\tposition += 2\n\t\t\tlet size = 0\n\t\t\tif (encoder.keyMap) {\n\t\t\t\tfor (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) {\n\t\t\t\t\tencode(encoder.encodeKey(key))\n\t\t\t\t\tencode(object[key])\n\t\t\t\t\tsize++\n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\tfor (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) {\n\t\t\t\t\t\tencode(key)\n\t\t\t\t\t\tencode(object[key])\n\t\t\t\t\tsize++\n\t\t\t\t}\n\t\t\t}\n\t\t\ttarget[objectOffset++ + start] = size >> 8\n\t\t\ttarget[objectOffset + start] = size & 0xff\n\t\t} :\n\t\t(object, skipValues) => {\n\t\t\tlet nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null))\n\t\t\tlet newTransitions = 0\n\t\t\tlet length = 0\n\t\t\tlet parentRecordId\n\t\t\tlet keys\n\t\t\tif (this.keyMap) {\n\t\t\t\tkeys = Object.keys(object).map(k => this.encodeKey(k))\n\t\t\t\tlength = keys.length\n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tlet key = keys[i]\n\t\t\t\t\tnextTransition = transition[key]\n\t\t\t\t\tif (!nextTransition) {\n\t\t\t\t\t\tnextTransition = transition[key] = Object.create(null)\n\t\t\t\t\t\tnewTransitions++\n\t\t\t\t\t}\n\t\t\t\t\ttransition = nextTransition\n\t\t\t\t}\t\t\t\t\n\t\t\t} else {\n\t\t\t\tfor (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) {\n\t\t\t\t\tnextTransition = transition[key]\n\t\t\t\t\tif (!nextTransition) {\n\t\t\t\t\t\tif (transition[RECORD_SYMBOL] & 0x100000) {// this indicates it is a brancheable/extendable terminal node, so we will use this record id and extend it\n\t\t\t\t\t\t\tparentRecordId = transition[RECORD_SYMBOL] & 0xffff\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextTransition = transition[key] = Object.create(null)\n\t\t\t\t\t\tnewTransitions++\n\t\t\t\t\t}\n\t\t\t\t\ttransition = nextTransition\n\t\t\t\t\tlength++\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet recordId = transition[RECORD_SYMBOL]\n\t\t\tif (recordId !== undefined) {\n\t\t\t\trecordId &= 0xffff\n\t\t\t\ttarget[position++] = 0xd9\n\t\t\t\ttarget[position++] = (recordId >> 8) | 0xe0\n\t\t\t\ttarget[position++] = recordId & 0xff\n\t\t\t} else {\n\t\t\t\tif (!keys)\n\t\t\t\t\tkeys = transition.__keys__ || (transition.__keys__ = Object.keys(object))\n\t\t\t\tif (parentRecordId === undefined) {\n\t\t\t\t\trecordId = structures.nextId++\n\t\t\t\t\tif (!recordId) {\n\t\t\t\t\t\trecordId = 0\n\t\t\t\t\t\tstructures.nextId = 1\n\t\t\t\t\t}\n\t\t\t\t\tif (recordId >= MAX_STRUCTURES) {// cycle back around\n\t\t\t\t\t\tstructures.nextId = (recordId = maxSharedStructures) + 1\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\trecordId = parentRecordId\n\t\t\t\t}\n\t\t\t\tstructures[recordId] = keys\n\t\t\t\tif (recordId < maxSharedStructures) {\n\t\t\t\t\ttarget[position++] = 0xd9\n\t\t\t\t\ttarget[position++] = (recordId >> 8) | 0xe0\n\t\t\t\t\ttarget[position++] = recordId & 0xff\n\t\t\t\t\ttransition = structures.transitions\n\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\tif (transition[RECORD_SYMBOL] === undefined || (transition[RECORD_SYMBOL] & 0x100000))\n\t\t\t\t\t\t\ttransition[RECORD_SYMBOL] = recordId\n\t\t\t\t\t\ttransition = transition[keys[i]]\n\t\t\t\t\t}\n\t\t\t\t\ttransition[RECORD_SYMBOL] = recordId | 0x100000 // indicates it is a extendable terminal\n\t\t\t\t\thasSharedUpdate = true\n\t\t\t\t} else {\n\t\t\t\t\ttransition[RECORD_SYMBOL] = recordId\n\t\t\t\t\ttargetView.setUint32(position, 0xd9dfff00) // tag two byte, then record definition id\n\t\t\t\t\tposition += 3\n\t\t\t\t\tif (newTransitions)\n\t\t\t\t\t\ttransitionsCount += serializationsSinceTransitionRebuild * newTransitions\n\t\t\t\t\t// record the removal of the id, we can maintain our shared structure\n\t\t\t\t\tif (recordIdsToRemove.length >= MAX_STRUCTURES - maxSharedStructures)\n\t\t\t\t\t\trecordIdsToRemove.shift()[RECORD_SYMBOL] = undefined // we are cycling back through, and have to remove old ones\n\t\t\t\t\trecordIdsToRemove.push(transition)\n\t\t\t\t\twriteArrayHeader(length + 2)\n\t\t\t\t\tencode(0xe000 + recordId)\n\t\t\t\t\tencode(keys)\n\t\t\t\t\tif (skipValues) return; // special exit for iterator\n\t\t\t\t\tfor (let key in object)\n\t\t\t\t\t\tif (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key))\n\t\t\t\t\t\t\tencode(object[key])\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (length < 0x18) { // write the array header\n\t\t\t\ttarget[position++] = 0x80 | length\n\t\t\t} else {\n\t\t\t\twriteArrayHeader(length)\n\t\t\t}\n\t\t\tif (skipValues) return; // special exit for iterator\n\t\t\tfor (let key in object)\n\t\t\t\tif (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key))\n\t\t\t\t\tencode(object[key])\n\t\t}\n\t\tconst makeRoom = (end) => {\n\t\t\tlet newSize\n\t\t\tif (end > 0x1000000) {\n\t\t\t\t// special handling for really large buffers\n\t\t\t\tif ((end - start) > MAX_BUFFER_SIZE)\n\t\t\t\t\tthrow new Error('Encoded buffer would be larger than maximum buffer size')\n\t\t\t\tnewSize = Math.min(MAX_BUFFER_SIZE,\n\t\t\t\t\tMath.round(Math.max((end - start) * (end > 0x4000000 ? 1.25 : 2), 0x400000) / 0x1000) * 0x1000)\n\t\t\t} else // faster handling for smaller buffers\n\t\t\t\tnewSize = ((Math.max((end - start) << 2, target.length - 1) >> 12) + 1) << 12\n\t\t\tlet newBuffer = new ByteArrayAllocate(newSize)\n\t\t\ttargetView = new DataView(newBuffer.buffer, 0, newSize)\n\t\t\tif (target.copy)\n\t\t\t\ttarget.copy(newBuffer, 0, start, end)\n\t\t\telse\n\t\t\t\tnewBuffer.set(target.slice(start, end))\n\t\t\tposition -= start\n\t\t\tstart = 0\n\t\t\tsafeEnd = newBuffer.length - 10\n\t\t\treturn target = newBuffer\n\t\t}\n\t\tlet chunkThreshold = 100;\n\t\tlet continuedChunkThreshold = 1000;\n\t\tthis.encodeAsIterable = function(value, options) {\n\t\t\treturn startEncoding(value, options, encodeObjectAsIterable);\n\t\t}\n\t\tthis.encodeAsAsyncIterable = function(value, options) {\n\t\t\treturn startEncoding(value, options, encodeObjectAsAsyncIterable);\n\t\t}\n\n\t\tfunction* encodeObjectAsIterable(object, iterateProperties, finalIterable) {\n\t\t\tlet constructor = object.constructor;\n\t\t\tif (constructor === Object) {\n\t\t\t\tlet useRecords = encoder.useRecords !== false;\n\t\t\t\tif (useRecords)\n\t\t\t\t\twriteObject(object, true); // write the record identifier\n\t\t\t\telse\n\t\t\t\t\twriteEntityLength(Object.keys(object).length, 0xa0);\n\t\t\t\tfor (let key in object) {\n\t\t\t\t\tlet value = object[key];\n\t\t\t\t\tif (!useRecords) encode(key);\n\t\t\t\t\tif (value && typeof value === 'object') {\n\t\t\t\t\t\tif (iterateProperties[key])\n\t\t\t\t\t\t\tyield* encodeObjectAsIterable(value, iterateProperties[key]);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tyield* tryEncode(value, iterateProperties, key);\n\t\t\t\t\t} else encode(value);\n\t\t\t\t}\n\t\t\t} else if (constructor === Array) {\n\t\t\t\tlet length = object.length;\n\t\t\t\twriteArrayHeader(length);\n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tlet value = object[i];\n\t\t\t\t\tif (value && (typeof value === 'object' || position - start > chunkThreshold)) {\n\t\t\t\t\t\tif (iterateProperties.element)\n\t\t\t\t\t\t\tyield* encodeObjectAsIterable(value, iterateProperties.element);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tyield* tryEncode(value, iterateProperties, 'element');\n\t\t\t\t\t} else encode(value);\n\t\t\t\t}\n\t\t\t} else if (object[Symbol.iterator] && !object.buffer) { // iterator, but exclude typed arrays\n\t\t\t\ttarget[position++] = 0x9f; // start indefinite array\n\t\t\t\tfor (let value of object) {\n\t\t\t\t\tif (value && (typeof value === 'object' || position - start > chunkThreshold)) {\n\t\t\t\t\t\tif (iterateProperties.element)\n\t\t\t\t\t\t\tyield* encodeObjectAsIterable(value, iterateProperties.element);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tyield* tryEncode(value, iterateProperties, 'element');\n\t\t\t\t\t} else encode(value);\n\t\t\t\t}\n\t\t\t\ttarget[position++] = 0xff; // stop byte\n\t\t\t} else if (isBlob(object)){\n\t\t\t\twriteEntityLength(object.size, 0x40); // encode as binary data\n\t\t\t\tyield target.subarray(start, position);\n\t\t\t\tyield object; // directly return blobs, they have to be encoded asynchronously\n\t\t\t\trestartEncoding();\n\t\t\t} else if (object[Symbol.asyncIterator]) {\n\t\t\t\ttarget[position++] = 0x9f; // start indefinite array\n\t\t\t\tyield target.subarray(start, position);\n\t\t\t\tyield object; // directly return async iterators, they have to be encoded asynchronously\n\t\t\t\trestartEncoding();\n\t\t\t\ttarget[position++] = 0xff; // stop byte\n\t\t\t} else {\n\t\t\t\tencode(object);\n\t\t\t}\n\t\t\tif (finalIterable && position > start) yield target.subarray(start, position);\n\t\t\telse if (position - start > chunkThreshold) {\n\t\t\t\tyield target.subarray(start, position);\n\t\t\t\trestartEncoding();\n\t\t\t}\n\t\t}\n\t\tfunction* tryEncode(value, iterateProperties, key) {\n\t\t\tlet restart = position - start;\n\t\t\ttry {\n\t\t\t\tencode(value);\n\t\t\t\tif (position - start > chunkThreshold) {\n\t\t\t\t\tyield target.subarray(start, position);\n\t\t\t\t\trestartEncoding();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error.iteratorNotHandled) {\n\t\t\t\t\titerateProperties[key] = {};\n\t\t\t\t\tposition = start + restart; // restart our position so we don't have partial data from last encode\n\t\t\t\t\tyield* encodeObjectAsIterable.call(this, value, iterateProperties[key]);\n\t\t\t\t} else throw error;\n\t\t\t}\n\t\t}\n\t\tfunction restartEncoding() {\n\t\t\tchunkThreshold = continuedChunkThreshold;\n\t\t\tencoder.encode(null, THROW_ON_ITERABLE); // restart encoding\n\t\t}\n\t\tfunction startEncoding(value, options, encodeIterable) {\n\t\t\tif (options && options.chunkThreshold) // explicitly specified chunk sizes\n\t\t\t\tchunkThreshold = continuedChunkThreshold = options.chunkThreshold;\n\t\t\telse // we start with a smaller threshold to get initial bytes sent quickly\n\t\t\t\tchunkThreshold = 100;\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tencoder.encode(null, THROW_ON_ITERABLE); // start encoding\n\t\t\t\treturn encodeIterable(value, encoder.iterateProperties || (encoder.iterateProperties = {}), true);\n\t\t\t}\n\t\t\treturn [encoder.encode(value)];\n\t\t}\n\n\t\tasync function* encodeObjectAsAsyncIterable(value, iterateProperties) {\n\t\t\tfor (let encodedValue of encodeObjectAsIterable(value, iterateProperties, true)) {\n\t\t\t\tlet constructor = encodedValue.constructor;\n\t\t\t\tif (constructor === ByteArray || constructor === Uint8Array)\n\t\t\t\t\tyield encodedValue;\n\t\t\t\telse if (isBlob(encodedValue)) {\n\t\t\t\t\tlet reader = encodedValue.stream().getReader();\n\t\t\t\t\tlet next;\n\t\t\t\t\twhile (!(next = await reader.read()).done) {\n\t\t\t\t\t\tyield next.value;\n\t\t\t\t\t}\n\t\t\t\t} else if (encodedValue[Symbol.asyncIterator]) {\n\t\t\t\t\tfor await (let asyncValue of encodedValue) {\n\t\t\t\t\t\trestartEncoding();\n\t\t\t\t\t\tif (asyncValue)\n\t\t\t\t\t\t\tyield* encodeObjectAsAsyncIterable(asyncValue, iterateProperties.async || (iterateProperties.async = {}));\n\t\t\t\t\t\telse yield encoder.encode(asyncValue);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tyield encodedValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tuseBuffer(buffer) {\n\t\t// this means we are finished using our own buffer and we can write over it safely\n\t\ttarget = buffer\n\t\ttargetView = new DataView(target.buffer, target.byteOffset, target.byteLength)\n\t\tposition = 0\n\t}\n\tclearSharedData() {\n\t\tif (this.structures)\n\t\t\tthis.structures = []\n\t\tif (this.sharedValues)\n\t\t\tthis.sharedValues = undefined\n\t}\n\tupdateSharedData() {\n\t\tlet lastVersion = this.sharedVersion || 0\n\t\tthis.sharedVersion = lastVersion + 1\n\t\tlet structuresCopy = this.structures.slice(0)\n\t\tlet sharedData = new SharedData(structuresCopy, this.sharedValues, this.sharedVersion)\n\t\tlet saveResults = this.saveShared(sharedData,\n\t\t\t\texistingShared => (existingShared && existingShared.version || 0) == lastVersion)\n\t\tif (saveResults === false) {\n\t\t\t// get updated structures and try again if the update failed\n\t\t\tsharedData = this.getShared() || {}\n\t\t\tthis.structures = sharedData.structures || []\n\t\t\tthis.sharedValues = sharedData.packedValues\n\t\t\tthis.sharedVersion = sharedData.version\n\t\t\tthis.structures.nextId = this.structures.length\n\t\t} else {\n\t\t\t// restore structures\n\t\t\tstructuresCopy.forEach((structure, i) => this.structures[i] = structure)\n\t\t}\n\t\t// saveShared may fail to write and reload, or may have reloaded to check compatibility and overwrite saved data, either way load the correct shared data\n\t\treturn saveResults\n\t}\n}\nfunction writeEntityLength(length, majorValue) {\n\tif (length < 0x18)\n\t\ttarget[position++] = majorValue | length\n\telse if (length < 0x100) {\n\t\ttarget[position++] = majorValue | 0x18\n\t\ttarget[position++] = length\n\t} else if (length < 0x10000) {\n\t\ttarget[position++] = majorValue | 0x19\n\t\ttarget[position++] = length >> 8\n\t\ttarget[position++] = length & 0xff\n\t} else {\n\t\ttarget[position++] = majorValue | 0x1a\n\t\ttargetView.setUint32(position, length)\n\t\tposition += 4\n\t}\n\n}\nclass SharedData {\n\tconstructor(structures, values, version) {\n\t\tthis.structures = structures\n\t\tthis.packedValues = values\n\t\tthis.version = version\n\t}\n}\n\nfunction writeArrayHeader(length) {\n\tif (length < 0x18)\n\t\ttarget[position++] = 0x80 | length\n\telse if (length < 0x100) {\n\t\ttarget[position++] = 0x98\n\t\ttarget[position++] = length\n\t} else if (length < 0x10000) {\n\t\ttarget[position++] = 0x99\n\t\ttarget[position++] = length >> 8\n\t\ttarget[position++] = length & 0xff\n\t} else {\n\t\ttarget[position++] = 0x9a\n\t\ttargetView.setUint32(position, length)\n\t\tposition += 4\n\t}\n}\n\nconst BlobConstructor = typeof Blob === 'undefined' ? function(){} : Blob;\nfunction isBlob(object) {\n\tif (object instanceof BlobConstructor)\n\t\treturn true;\n\tlet tag = object[Symbol.toStringTag];\n\treturn tag === 'Blob' || tag === 'File';\n}\nfunction findRepetitiveStrings(value, packedValues) {\n\tswitch(typeof value) {\n\t\tcase 'string':\n\t\t\tif (value.length > 3) {\n\t\t\t\tif (packedValues.objectMap[value] > -1 || packedValues.values.length >= packedValues.maxValues)\n\t\t\t\t\treturn\n\t\t\t\tlet packedStatus = packedValues.get(value)\n\t\t\t\tif (packedStatus) {\n\t\t\t\t\tif (++packedStatus.count == 2) {\n\t\t\t\t\t\tpackedValues.values.push(value)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpackedValues.set(value, {\n\t\t\t\t\t\tcount: 1,\n\t\t\t\t\t})\n\t\t\t\t\tif (packedValues.samplingPackedValues) {\n\t\t\t\t\t\tlet status = packedValues.samplingPackedValues.get(value)\n\t\t\t\t\t\tif (status)\n\t\t\t\t\t\t\tstatus.count++\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tpackedValues.samplingPackedValues.set(value, {\n\t\t\t\t\t\t\t\tcount: 1,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'object':\n\t\t\tif (value) {\n\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\tfor (let i = 0, l = value.length; i < l; i++) {\n\t\t\t\t\t\tfindRepetitiveStrings(value[i], packedValues)\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tlet includeKeys = !packedValues.encoder.useRecords\n\t\t\t\t\tfor (var key in value) {\n\t\t\t\t\t\tif (value.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tif (includeKeys)\n\t\t\t\t\t\t\t\tfindRepetitiveStrings(key, packedValues)\n\t\t\t\t\t\t\tfindRepetitiveStrings(value[key], packedValues)\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\tbreak\n\t\tcase 'function': console.log(value)\n\t}\n}\nconst isLittleEndianMachine = new Uint8Array(new Uint16Array([1]).buffer)[0] == 1\nextensionClasses = [ Date, Set, Error, RegExp, Tag, ArrayBuffer,\n\tUint8Array, Uint8ClampedArray, Uint16Array, Uint32Array,\n\ttypeof BigUint64Array == 'undefined' ? function() {} : BigUint64Array, Int8Array, Int16Array, Int32Array,\n\ttypeof BigInt64Array == 'undefined' ? function() {} : BigInt64Array,\n\tFloat32Array, Float64Array, SharedData ]\n\n//Object.getPrototypeOf(Uint8Array.prototype).constructor /*TypedArray*/\nextensions = [{ // Date\n\ttag: 1,\n\tencode(date, encode) {\n\t\tlet seconds = date.getTime() / 1000\n\t\tif ((this.useTimestamp32 || date.getMilliseconds() === 0) && seconds >= 0 && seconds < 0x100000000) {\n\t\t\t// Timestamp 32\n\t\t\ttarget[position++] = 0x1a\n\t\t\ttargetView.setUint32(position, seconds)\n\t\t\tposition += 4\n\t\t} else {\n\t\t\t// Timestamp float64\n\t\t\ttarget[position++] = 0xfb\n\t\t\ttargetView.setFloat64(position, seconds)\n\t\t\tposition += 8\n\t\t}\n\t}\n}, { // Set\n\ttag: 258, // https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md\n\tencode(set, encode) {\n\t\tlet array = Array.from(set)\n\t\tencode(array)\n\t}\n}, { // Error\n\ttag: 27, // http://cbor.schmorp.de/generic-object\n\tencode(error, encode) {\n\t\tencode([ error.name, error.message ])\n\t}\n}, { // RegExp\n\ttag: 27, // http://cbor.schmorp.de/generic-object\n\tencode(regex, encode) {\n\t\tencode([ 'RegExp', regex.source, regex.flags ])\n\t}\n}, { // Tag\n\tgetTag(tag) {\n\t\treturn tag.tag\n\t},\n\tencode(tag, encode) {\n\t\tencode(tag.value)\n\t}\n}, { // ArrayBuffer\n\tencode(arrayBuffer, encode, makeRoom) {\n\t\twriteBuffer(arrayBuffer, makeRoom)\n\t}\n}, { // Uint8Array\n\tgetTag(typedArray) {\n\t\tif (typedArray.constructor === Uint8Array) {\n\t\t\tif (this.tagUint8Array || hasNodeBuffer && this.tagUint8Array !== false)\n\t\t\t\treturn 64;\n\t\t} // else no tag\n\t},\n\tencode(typedArray, encode, makeRoom) {\n\t\twriteBuffer(typedArray, makeRoom)\n\t}\n},\n\ttypedArrayEncoder(68, 1),\n\ttypedArrayEncoder(69, 2),\n\ttypedArrayEncoder(70, 4),\n\ttypedArrayEncoder(71, 8),\n\ttypedArrayEncoder(72, 1),\n\ttypedArrayEncoder(77, 2),\n\ttypedArrayEncoder(78, 4),\n\ttypedArrayEncoder(79, 8),\n\ttypedArrayEncoder(85, 4),\n\ttypedArrayEncoder(86, 8),\n{\n\tencode(sharedData, encode) { // write SharedData\n\t\tlet packedValues = sharedData.packedValues || []\n\t\tlet sharedStructures = sharedData.structures || []\n\t\tif (packedValues.values.length > 0) {\n\t\t\ttarget[position++] = 0xd8 // one-byte tag\n\t\t\ttarget[position++] = 51 // tag 51 for packed shared structures https://www.potaroo.net/ietf/ids/draft-ietf-cbor-packed-03.txt\n\t\t\twriteArrayHeader(4)\n\t\t\tlet valuesArray = packedValues.values\n\t\t\tencode(valuesArray)\n\t\t\twriteArrayHeader(0) // prefixes\n\t\t\twriteArrayHeader(0) // suffixes\n\t\t\tpackedObjectMap = Object.create(sharedPackedObjectMap || null)\n\t\t\tfor (let i = 0, l = valuesArray.length; i < l; i++) {\n\t\t\t\tpackedObjectMap[valuesArray[i]] = i\n\t\t\t}\n\t\t}\n\t\tif (sharedStructures) {\n\t\t\ttargetView.setUint32(position, 0xd9dffe00)\n\t\t\tposition += 3\n\t\t\tlet definitions = sharedStructures.slice(0)\n\t\t\tdefinitions.unshift(0xe000)\n\t\t\tdefinitions.push(new Tag(sharedData.version, 0x53687264))\n\t\t\tencode(definitions)\n\t\t} else\n\t\t\tencode(new Tag(sharedData.version, 0x53687264))\n\t\t}\n\t}]\nfunction typedArrayEncoder(tag, size) {\n\tif (!isLittleEndianMachine && size > 1)\n\t\ttag -= 4 // the big endian equivalents are 4 less\n\treturn {\n\t\ttag: tag,\n\t\tencode: function writeExtBuffer(typedArray, encode) {\n\t\t\tlet length = typedArray.byteLength\n\t\t\tlet offset = typedArray.byteOffset || 0\n\t\t\tlet buffer = typedArray.buffer || typedArray\n\t\t\tencode(hasNodeBuffer ? Buffer.from(buffer, offset, length) :\n\t\t\t\tnew Uint8Array(buffer, offset, length))\n\t\t}\n\t}\n}\nfunction writeBuffer(buffer, makeRoom) {\n\tlet length = buffer.byteLength\n\tif (length < 0x18) {\n\t\ttarget[position++] = 0x40 + length\n\t} else if (length < 0x100) {\n\t\ttarget[position++] = 0x58\n\t\ttarget[position++] = length\n\t} else if (length < 0x10000) {\n\t\ttarget[position++] = 0x59\n\t\ttarget[position++] = length >> 8\n\t\ttarget[position++] = length & 0xff\n\t} else {\n\t\ttarget[position++] = 0x5a\n\t\ttargetView.setUint32(position, length)\n\t\tposition += 4\n\t}\n\tif (position + length >= target.length) {\n\t\tmakeRoom(position + length)\n\t}\n\t// if it is already a typed array (has an ArrayBuffer), use that, but if it is an ArrayBuffer itself,\n\t// must wrap it to set it.\n\ttarget.set(buffer.buffer ? buffer : new Uint8Array(buffer), position)\n\tposition += length\n}\n\nfunction insertIds(serialized, idsToInsert) {\n\t// insert the ids that need to be referenced for structured clones\n\tlet nextId\n\tlet distanceToMove = idsToInsert.length * 2\n\tlet lastEnd = serialized.length - distanceToMove\n\tidsToInsert.sort((a, b) => a.offset > b.offset ? 1 : -1)\n\tfor (let id = 0; id < idsToInsert.length; id++) {\n\t\tlet referee = idsToInsert[id]\n\t\treferee.id = id\n\t\tfor (let position of referee.references) {\n\t\t\tserialized[position++] = id >> 8\n\t\t\tserialized[position] = id & 0xff\n\t\t}\n\t}\n\twhile (nextId = idsToInsert.pop()) {\n\t\tlet offset = nextId.offset\n\t\tserialized.copyWithin(offset + distanceToMove, offset, lastEnd)\n\t\tdistanceToMove -= 2\n\t\tlet position = offset + distanceToMove\n\t\tserialized[position++] = 0xd8\n\t\tserialized[position++] = 28 // http://cbor.schmorp.de/value-sharing\n\t\tlastEnd = offset\n\t}\n\treturn serialized\n}\nfunction writeBundles(start, encode) {\n\ttargetView.setUint32(bundledStrings.position + start, position - bundledStrings.position - start + 1) // the offset to bundle\n\tlet writeStrings = bundledStrings\n\tbundledStrings = null\n\tencode(writeStrings[0])\n\tencode(writeStrings[1])\n}\n\nexport function addExtension(extension) {\n\tif (extension.Class) {\n\t\tif (!extension.encode)\n\t\t\tthrow new Error('Extension has no encode function')\n\t\textensionClasses.unshift(extension.Class)\n\t\textensions.unshift(extension)\n\t}\n\tdecodeAddExtension(extension)\n}\nlet defaultEncoder = new Encoder({ useRecords: false })\nexport const encode = defaultEncoder.encode\nexport const encodeAsIterable = defaultEncoder.encodeAsIterable\nexport const encodeAsAsyncIterable = defaultEncoder.encodeAsAsyncIterable\nexport { FLOAT32_OPTIONS } from './decode.js'\nimport { FLOAT32_OPTIONS } from './decode.js'\nexport const { NEVER, ALWAYS, DECIMAL_ROUND, DECIMAL_FIT } = FLOAT32_OPTIONS\nexport const REUSE_BUFFER_MODE = 512\nexport const RESET_BUFFER_MODE = 1024\nexport const THROW_ON_ITERABLE = 2048\n\n\n","import { Transform } from 'stream'\nimport { Encoder } from './encode.js'\nimport { checkedRead, getPosition, Decoder, clearSource } from './decode.js'\nvar DEFAULT_OPTIONS = {objectMode: true}\n\nexport class EncoderStream extends Transform {\n\tconstructor(options) {\n\t\tif (!options)\n\t\t\toptions = {}\n\t\toptions.writableObjectMode = true\n\t\tsuper(options)\n\t\toptions.sequential = true\n\t\tthis.encoder = options.encoder || new Encoder(options)\n\t}\n\tasync _transform(value, encoding, callback) {\n\t\ttry {\n\t\t\tfor await (let chunk of this.encoder.encodeAsAsyncIterable(value)) {\n\t\t\t\tthis.push(chunk)\n\t\t\t}\n\t\t\tcallback()\n\t\t} catch(error) { callback (error) }\n\t}\n}\n\nexport class DecoderStream extends Transform {\n\tconstructor(options) {\n\t\tif (!options)\n\t\t\toptions = {}\n\t\toptions.objectMode = true\n\t\tsuper(options)\n\t\toptions.structures = []\n\t\tthis.decoder = options.decoder || new Decoder(options)\n\t}\n\t_transform(chunk, encoding, callback) {\n\t\tif (this.incompleteBuffer) {\n\t\t\tchunk = Buffer.concat([this.incompleteBuffer, chunk])\n\t\t\tthis.incompleteBuffer = null\n\t\t}\n\t\tlet values\n\t\ttry {\n\t\t\tvalues = this.decoder.decodeMultiple(chunk)\n\t\t} catch(error) {\n\t\t\tif (error.incomplete) {\n\t\t\t\tthis.incompleteBuffer = chunk.slice(error.lastPosition)\n\t\t\t\tvalues = error.values\n\t\t\t} else {\n\t\t\t\treturn callback(error)\n\t\t\t}\n\t\t} finally {\n\t\t\tfor (let value of values || []) {\n\t\t\t\tif (value === null)\n\t\t\t\t\tvalue = this.getNullValue()\n\t\t\t\tthis.push(value)\n\t\t\t}\n\t\t}\n\t\tcallback()\n\t}\n\tgetNullValue() {\n\t\treturn Symbol.for(null)\n\t}\n}\n","import { Encoder } from './encode.js'\nimport { Decoder } from './decode.js'\n\n/**\n * Given an Iterable first argument, returns an Iterable where each value is encoded as a Buffer\n * If the argument is only Async Iterable, the return value will be an Async Iterable.\n * @param {Iterable|Iterator|AsyncIterable|AsyncIterator} objectIterator - iterable source, like a Readable object stream, an array, Set, or custom object\n * @param {options} [options] - cbor-x Encoder options\n * @returns {IterableIterator|Promise.<AsyncIterableIterator>}\n */\nexport function encodeIter (objectIterator, options = {}) {\n  if (!objectIterator || typeof objectIterator !== 'object') {\n    throw new Error('first argument must be an Iterable, Async Iterable, or a Promise for an Async Iterable')\n  } else if (typeof objectIterator[Symbol.iterator] === 'function') {\n    return encodeIterSync(objectIterator, options)\n  } else if (typeof objectIterator.then === 'function' || typeof objectIterator[Symbol.asyncIterator] === 'function') {\n    return encodeIterAsync(objectIterator, options)\n  } else {\n    throw new Error('first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise')\n  }\n}\n\nfunction * encodeIterSync (objectIterator, options) {\n  const encoder = new Encoder(options)\n  for (const value of objectIterator) {\n    yield encoder.encode(value)\n  }\n}\n\nasync function * encodeIterAsync (objectIterator, options) {\n  const encoder = new Encoder(options)\n  for await (const value of objectIterator) {\n    yield encoder.encode(value)\n  }\n}\n\n/**\n * Given an Iterable/Iterator input which yields buffers, returns an IterableIterator which yields sync decoded objects\n * Or, given an Async Iterable/Iterator which yields promises resolving in buffers, returns an AsyncIterableIterator.\n * @param {Iterable|Iterator|AsyncIterable|AsyncIterableIterator} bufferIterator\n * @param {object} [options] - Decoder options\n * @returns {IterableIterator|Promise.<AsyncIterableIterator}\n */\nexport function decodeIter (bufferIterator, options = {}) {\n  if (!bufferIterator || typeof bufferIterator !== 'object') {\n    throw new Error('first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a promise')\n  }\n\n  const decoder = new Decoder(options)\n  let incomplete\n  const parser = (chunk) => {\n    let yields\n    // if there's incomplete data from previous chunk, concatinate and try again\n    if (incomplete) {\n      chunk = Buffer.concat([incomplete, chunk])\n      incomplete = undefined\n    }\n\n    try {\n      yields = decoder.decodeMultiple(chunk)\n    } catch (err) {\n      if (err.incomplete) {\n        incomplete = chunk.slice(err.lastPosition)\n        yields = err.values\n      } else {\n        throw err\n      }\n    }\n    return yields\n  }\n\n  if (typeof bufferIterator[Symbol.iterator] === 'function') {\n    return (function * iter () {\n      for (const value of bufferIterator) {\n        yield * parser(value)\n      }\n    })()\n  } else if (typeof bufferIterator[Symbol.asyncIterator] === 'function') {\n    return (async function * iter () {\n      for await (const value of bufferIterator) {\n        yield * parser(value)\n      }\n    })()\n  }\n}\n","export { Encoder, addExtension, encode, encodeAsIterable, encodeAsAsyncIterable, NEVER, ALWAYS, DECIMAL_ROUND, DECIMAL_FIT, REUSE_BUFFER_MODE } from './encode.js'\nexport { Tag, Decoder, decodeMultiple, decode, FLOAT32_OPTIONS, clearSource, roundFloat32, isNativeAccelerationEnabled, setSizeLimits } from './decode.js'\nexport { EncoderStream, DecoderStream } from './stream.js'\nexport { decodeIter, encodeIter } from './iterators.js'\nexport const useRecords = false\nexport const mapsAsObjects = true\nimport { setExtractor } from './decode.js'\nimport { createRequire } from 'module'\n\nconst nativeAccelerationDisabled = process.env.CBOR_NATIVE_ACCELERATION_DISABLED !== undefined && process.env.CBOR_NATIVE_ACCELERATION_DISABLED.toLowerCase() === 'true';\n\nif (!nativeAccelerationDisabled) {\n\tlet extractor\n\ttry {\n\t\tif (typeof require == 'function')\n\t\t\textractor = require('cbor-extract')\n\t\telse\n\t\t\textractor = createRequire(import.meta.url)('cbor-extract')\n\t\tif (extractor)\n\t\t\tsetExtractor(extractor.extractStrings)\n\t} catch (error) {\n\t\t// native module is optional\n\t}\n}\n"],"names":["position","bundledStrings","isNativeAccelerationEnabled","isLittleEndianMachine","addExtension","Buffer","decodeAddExtension","Transform","createRequire"],"mappings":"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"}

Выполнить команду


Для локальной разработки. Не используйте в интернете!