msgpackr 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -993,10 +993,10 @@
993
993
  currentExtensions[0] = () => {}; // notepack defines extension 0 to mean undefined, so use that as the default here
994
994
  currentExtensions[0].noBuffer = true;
995
995
 
996
- let glbl = typeof globalThis === 'object' ? globalThis : window;
996
+ let errors = { Error, TypeError, ReferenceError };
997
997
  currentExtensions[0x65] = () => {
998
998
  let data = read();
999
- return (glbl[data[0]] || Error)(data[1])
999
+ return (errors[data[0]] || Error)(data[1])
1000
1000
  };
1001
1001
 
1002
1002
  currentExtensions[0x69] = (data) => {
@@ -1034,6 +1034,7 @@
1034
1034
 
1035
1035
  const typedArrays = ['Int8','Uint8','Uint8Clamped','Int16','Uint16','Int32','Uint32','Float32','Float64','BigInt64','BigUint64'].map(type => type + 'Array');
1036
1036
 
1037
+ let glbl = typeof globalThis === 'object' ? globalThis : window;
1037
1038
  currentExtensions[0x74] = (data) => {
1038
1039
  let typeCode = data[0];
1039
1040
  let typedArrayName = typedArrays[typeCode];
@@ -1 +1 @@
1
- {"version":3,"file":"unpack-no-eval.cjs","sources":["../unpack.js"],"sourcesContent":["var decoder\ntry {\n\tdecoder = new TextDecoder()\n} catch(error) {}\nvar src\nvar srcEnd\nvar position = 0\nvar alreadySet\nconst EMPTY_ARRAY = []\nvar strings = EMPTY_ARRAY\nvar stringPosition = 0\nvar currentUnpackr = {}\nvar currentStructures\nvar srcString\nvar srcStringStart = 0\nvar srcStringEnd = 0\nvar bundledStrings\nvar referenceMap\nvar currentExtensions = []\nvar dataView\nvar defaultOptions = {\n\tuseRecords: false,\n\tmapsAsObjects: true\n}\nexport class C1Type {}\nexport const C1 = new C1Type()\nC1.name = 'MessagePack 0xC1'\nvar sequentialMode = false\nvar inlineObjectReadThreshold = 2\nvar readStruct, onLoadedStructures, onSaveState\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\nexport class Unpackr {\n\tconstructor(options) {\n\t\tif (options) {\n\t\t\tif (options.useRecords === false && options.mapsAsObjects === undefined)\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\tif (options.sequential && options.trusted !== false) {\n\t\t\t\toptions.trusted = true;\n\t\t\t\tif (!options.structures && options.useRecords != false) {\n\t\t\t\t\toptions.structures = []\n\t\t\t\t\tif (!options.maxSharedStructures)\n\t\t\t\t\t\toptions.maxSharedStructures = 0\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.structures)\n\t\t\t\toptions.structures.sharedLength = options.structures.length\n\t\t\telse if (options.getStructures) {\n\t\t\t\t(options.structures = []).uninitialized = true // this is what we use to denote an uninitialized structures\n\t\t\t\toptions.structures.sharedLength = 0\n\t\t\t}\n\t\t\tif (options.int64AsNumber) {\n\t\t\t\toptions.int64AsType = 'number'\n\t\t\t}\n\t\t}\n\t\tObject.assign(this, options)\n\t}\n\tunpack(source, options) {\n\t\tif (src) {\n\t\t\t// re-entrant execution, save the state and restore it after we do this unpack\n\t\t\treturn saveState(() => {\n\t\t\t\tclearSource()\n\t\t\t\treturn this ? this.unpack(source, options) : Unpackr.prototype.unpack.call(defaultOptions, source, options)\n\t\t\t})\n\t\t}\n\t\tif (!source.buffer && source.constructor === ArrayBuffer)\n\t\t\tsource = typeof Buffer !== 'undefined' ? Buffer.from(source) : new Uint8Array(source);\n\t\tif (typeof options === 'object') {\n\t\t\tsrcEnd = options.end || source.length\n\t\t\tposition = options.start || 0\n\t\t} else {\n\t\t\tposition = 0\n\t\t\tsrcEnd = options > -1 ? options : source.length\n\t\t}\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 Unpackr) {\n\t\t\tcurrentUnpackr = this\n\t\t\tif (this.structures) {\n\t\t\t\tcurrentStructures = this.structures\n\t\t\t\treturn checkedRead(options)\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\tcurrentUnpackr = defaultOptions\n\t\t\tif (!currentStructures || currentStructures.length > 0)\n\t\t\t\tcurrentStructures = []\n\t\t}\n\t\treturn checkedRead(options)\n\t}\n\tunpackMultiple(source, forEach) {\n\t\tlet values, lastPosition = 0\n\t\ttry {\n\t\t\tsequentialMode = true\n\t\t\tlet size = source.length\n\t\t\tlet value = this ? this.unpack(source, size) : defaultUnpackr.unpack(source, size)\n\t\t\tif (forEach) {\n\t\t\t\tif (forEach(value, lastPosition, position) === false) return;\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tif (forEach(checkedRead(), lastPosition, position) === 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\t_mergeStructures(loadedStructures, existingStructures) {\n\t\tif (onLoadedStructures)\n\t\t\tloadedStructures = onLoadedStructures.call(this, loadedStructures);\n\t\tloadedStructures = loadedStructures || []\n\t\tif (Object.isFrozen(loadedStructures))\n\t\t\tloadedStructures = loadedStructures.map(structure => structure.slice(0))\n\t\tfor (let i = 0, l = loadedStructures.length; i < l; i++) {\n\t\t\tlet structure = loadedStructures[i]\n\t\t\tif (structure) {\n\t\t\t\tstructure.isShared = true\n\t\t\t\tif (i >= 32)\n\t\t\t\t\tstructure.highByte = (i - 32) >> 5\n\t\t\t}\n\t\t}\n\t\tloadedStructures.sharedLength = loadedStructures.length\n\t\tfor (let id in existingStructures || []) {\n\t\t\tif (id >= 0) {\n\t\t\t\tlet structure = loadedStructures[id]\n\t\t\t\tlet existing = existingStructures[id]\n\t\t\t\tif (existing) {\n\t\t\t\t\tif (structure)\n\t\t\t\t\t\t(loadedStructures.restoreStructures || (loadedStructures.restoreStructures = []))[id] = structure\n\t\t\t\t\tloadedStructures[id] = existing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.structures = loadedStructures\n\t}\n\tdecode(source, end) {\n\t\treturn this.unpack(source, end)\n\t}\n}\nexport function getPosition() {\n\treturn position\n}\nexport function checkedRead(options) {\n\ttry {\n\t\tif (!currentUnpackr.trusted && !sequentialMode) {\n\t\t\tlet sharedLength = currentStructures.sharedLength || 0\n\t\t\tif (sharedLength < currentStructures.length)\n\t\t\t\tcurrentStructures.length = sharedLength\n\t\t}\n\t\tlet result\n\t\tif (currentUnpackr.randomAccessStructure && src[position] < 0x40 && src[position] >= 0x20 && readStruct) {\n\t\t\tresult = readStruct(src, position, srcEnd, currentUnpackr)\n\t\t\tsrc = null // dispose of this so that recursive unpack calls don't save state\n\t\t\tif (!(options && options.lazy) && result)\n\t\t\t\tresult = result.toJSON()\n\t\t\tposition = srcEnd\n\t\t} else\n\t\t\tresult = read()\n\t\tif (bundledStrings) { // bundled strings to skip past\n\t\t\tposition = bundledStrings.postBundlePosition\n\t\t\tbundledStrings = null\n\t\t}\n\t\tif (sequentialMode)\n\t\t\t// we only need to restore the structures if there was an error, but if we completed a read,\n\t\t\t// we can clear this out and keep the structures we read\n\t\t\tcurrentStructures.restoreStructures = null\n\n\t\tif (position == srcEnd) {\n\t\t\t// finished reading this source, cleanup references\n\t\t\tif (currentStructures && currentStructures.restoreStructures)\n\t\t\t\trestoreStructures()\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\tthrow new Error('Unexpected end of MessagePack data')\n\t\t} else if (!sequentialMode) {\n\t\t\tlet jsonView;\n\t\t\ttry {\n\t\t\t\tjsonView = JSON.stringify(result, (_, value) => typeof value === \"bigint\" ? `${value}n` : value).slice(0, 100)\n\t\t\t} catch(error) {\n\t\t\t\tjsonView = '(JSON view not available ' + error + ')'\n\t\t\t}\n\t\t\tthrow new Error('Data read, but end of buffer not reached ' + jsonView)\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\tif (currentStructures && currentStructures.restoreStructures)\n\t\t\trestoreStructures()\n\t\tclearSource()\n\t\tif (error instanceof RangeError || error.message.startsWith('Unexpected end of buffer') || position > srcEnd) {\n\t\t\terror.incomplete = true\n\t\t}\n\t\tthrow error\n\t}\n}\n\nfunction restoreStructures() {\n\tfor (let id in currentStructures.restoreStructures) {\n\t\tcurrentStructures[id] = currentStructures.restoreStructures[id]\n\t}\n\tcurrentStructures.restoreStructures = null\n}\n\nexport function read() {\n\tlet token = src[position++]\n\tif (token < 0xa0) {\n\t\tif (token < 0x80) {\n\t\t\tif (token < 0x40)\n\t\t\t\treturn token\n\t\t\telse {\n\t\t\t\tlet structure = currentStructures[token & 0x3f] ||\n\t\t\t\t\tcurrentUnpackr.getStructures && loadStructures()[token & 0x3f]\n\t\t\t\tif (structure) {\n\t\t\t\t\tif (!structure.read) {\n\t\t\t\t\t\tstructure.read = createStructureReader(structure, token & 0x3f)\n\t\t\t\t\t}\n\t\t\t\t\treturn structure.read()\n\t\t\t\t} else\n\t\t\t\t\treturn token\n\t\t\t}\n\t\t} else if (token < 0x90) {\n\t\t\t// map\n\t\t\ttoken -= 0x80\n\t\t\tif (currentUnpackr.mapsAsObjects) {\n\t\t\t\tlet object = {}\n\t\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\t\tlet key = readKey()\n\t\t\t\t\tif (key === '__proto__')\n\t\t\t\t\t\tkey = '__proto_'\n\t\t\t\t\tobject[key] = read()\n\t\t\t\t}\n\t\t\t\treturn object\n\t\t\t} else {\n\t\t\t\tlet map = new Map()\n\t\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\t\tmap.set(read(), read())\n\t\t\t\t}\n\t\t\t\treturn map\n\t\t\t}\n\t\t} else {\n\t\t\ttoken -= 0x90\n\t\t\tlet array = new Array(token)\n\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\tarray[i] = read()\n\t\t\t}\n\t\t\tif (currentUnpackr.freezeData)\n\t\t\t\treturn Object.freeze(array)\n\t\t\treturn array\n\t\t}\n\t} else if (token < 0xc0) {\n\t\t// fixstr\n\t\tlet length = token - 0xa0\n\t\tif (srcStringEnd >= position) {\n\t\t\treturn srcString.slice(position - srcStringStart, (position += length) - srcStringStart)\n\t\t}\n\t\tif (srcStringEnd == 0 && srcEnd < 140) {\n\t\t\t// for small blocks, avoiding the overhead of the extract call is helpful\n\t\t\tlet string = length < 16 ? shortStringInJS(length) : longStringInJS(length)\n\t\t\tif (string != null)\n\t\t\t\treturn string\n\t\t}\n\t\treturn readFixedString(length)\n\t} else {\n\t\tlet value\n\t\tswitch (token) {\n\t\t\tcase 0xc0: return null\n\t\t\tcase 0xc1:\n\t\t\t\tif (bundledStrings) {\n\t\t\t\t\tvalue = read() // followed by the length of the string in characters (not bytes!)\n\t\t\t\t\tif (value > 0)\n\t\t\t\t\t\treturn bundledStrings[1].slice(bundledStrings.position1, bundledStrings.position1 += value)\n\t\t\t\t\telse\n\t\t\t\t\t\treturn bundledStrings[0].slice(bundledStrings.position0, bundledStrings.position0 -= value)\n\t\t\t\t}\n\t\t\t\treturn C1; // \"never-used\", return special object to denote that\n\t\t\tcase 0xc2: return false\n\t\t\tcase 0xc3: return true\n\t\t\tcase 0xc4:\n\t\t\t\t// bin 8\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (value === undefined)\n\t\t\t\t\tthrow new Error('Unexpected end of buffer')\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc5:\n\t\t\t\t// bin 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc6:\n\t\t\t\t// bin 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc7:\n\t\t\t\t// ext 8\n\t\t\t\treturn readExt(src[position++])\n\t\t\tcase 0xc8:\n\t\t\t\t// ext 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readExt(value)\n\t\t\tcase 0xc9:\n\t\t\t\t// ext 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readExt(value)\n\t\t\tcase 0xca:\n\t\t\t\tvalue = dataView.getFloat32(position)\n\t\t\t\tif (currentUnpackr.useFloat32 > 2) {\n\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\tlet multiplier = mult10[((src[position] & 0x7f) << 1) | (src[position + 1] >> 7)]\n\t\t\t\t\tposition += 4\n\t\t\t\t\treturn ((multiplier * value + (value > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n\t\t\t\t}\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xcb:\n\t\t\t\tvalue = dataView.getFloat64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\t\t\t// uint handlers\n\t\t\tcase 0xcc:\n\t\t\t\treturn src[position++]\n\t\t\tcase 0xcd:\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn value\n\t\t\tcase 0xce:\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xcf:\n\t\t\t\tif (currentUnpackr.int64AsType === 'number') {\n\t\t\t\t\tvalue = dataView.getUint32(position) * 0x100000000\n\t\t\t\t\tvalue += dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'string') {\n\t\t\t\t\tvalue = dataView.getBigUint64(position).toString()\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'auto') {\n\t\t\t\t\tvalue = dataView.getBigUint64(position)\n\t\t\t\t\tif (value<=BigInt(2)<<BigInt(52)) value=Number(value)\n\t\t\t\t} else\n\t\t\t\t\tvalue = dataView.getBigUint64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\n\t\t\t// int handlers\n\t\t\tcase 0xd0:\n\t\t\t\treturn dataView.getInt8(position++)\n\t\t\tcase 0xd1:\n\t\t\t\tvalue = dataView.getInt16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn value\n\t\t\tcase 0xd2:\n\t\t\t\tvalue = dataView.getInt32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xd3:\n\t\t\t\tif (currentUnpackr.int64AsType === 'number') {\n\t\t\t\t\tvalue = dataView.getInt32(position) * 0x100000000\n\t\t\t\t\tvalue += dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'string') {\n\t\t\t\t\tvalue = dataView.getBigInt64(position).toString()\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'auto') {\n\t\t\t\t\tvalue = dataView.getBigInt64(position)\n\t\t\t\t\tif (value>=BigInt(-2)<<BigInt(52)&&value<=BigInt(2)<<BigInt(52)) value=Number(value)\n\t\t\t\t} else\n\t\t\t\t\tvalue = dataView.getBigInt64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\n\t\t\tcase 0xd4:\n\t\t\t\t// fixext 1\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (value == 0x72) {\n\t\t\t\t\treturn recordDefinition(src[position++] & 0x3f)\n\t\t\t\t} else {\n\t\t\t\t\tlet extension = currentExtensions[value]\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\tif (extension.read) {\n\t\t\t\t\t\t\tposition++ // skip filler byte\n\t\t\t\t\t\t\treturn extension.read(read())\n\t\t\t\t\t\t} else if (extension.noBuffer) {\n\t\t\t\t\t\t\tposition++ // skip filler byte\n\t\t\t\t\t\t\treturn extension()\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\treturn extension(src.subarray(position, ++position))\n\t\t\t\t\t} else\n\t\t\t\t\t\tthrow new Error('Unknown extension ' + value)\n\t\t\t\t}\n\t\t\tcase 0xd5:\n\t\t\t\t// fixext 2\n\t\t\t\tvalue = src[position]\n\t\t\t\tif (value == 0x72) {\n\t\t\t\t\tposition++\n\t\t\t\t\treturn recordDefinition(src[position++] & 0x3f, src[position++])\n\t\t\t\t} else\n\t\t\t\t\treturn readExt(2)\n\t\t\tcase 0xd6:\n\t\t\t\t// fixext 4\n\t\t\t\treturn readExt(4)\n\t\t\tcase 0xd7:\n\t\t\t\t// fixext 8\n\t\t\t\treturn readExt(8)\n\t\t\tcase 0xd8:\n\t\t\t\t// fixext 16\n\t\t\t\treturn readExt(16)\n\t\t\tcase 0xd9:\n\t\t\t// str 8\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString8(value)\n\t\t\tcase 0xda:\n\t\t\t// str 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString16(value)\n\t\t\tcase 0xdb:\n\t\t\t// str 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString32(value)\n\t\t\tcase 0xdc:\n\t\t\t// array 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readArray(value)\n\t\t\tcase 0xdd:\n\t\t\t// array 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readArray(value)\n\t\t\tcase 0xde:\n\t\t\t// map 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readMap(value)\n\t\t\tcase 0xdf:\n\t\t\t// map 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readMap(value)\n\t\t\tdefault: // negative int\n\t\t\t\tif (token >= 0xe0)\n\t\t\t\t\treturn token - 0x100\n\t\t\t\tif (token === undefined) {\n\t\t\t\t\tlet error = new Error('Unexpected end of MessagePack data')\n\t\t\t\t\terror.incomplete = true\n\t\t\t\t\tthrow error\n\t\t\t\t}\n\t\t\t\tthrow new Error('Unknown MessagePack token ' + token)\n\n\t\t}\n\t}\n}\nconst validName = /^[a-zA-Z_$][a-zA-Z\\d_$]*$/\nfunction createStructureReader(structure, firstId) {\n\tfunction readObject() {\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\tif (readObject.count++ > inlineObjectReadThreshold) {\n\t\t\tlet readObject = structure.read = (new Function('r', 'return function(){return ' + (currentUnpackr.freezeData ? 'Object.freeze' : '') +\n\t\t\t\t'({' + structure.map(key => key === '__proto__' ? '__proto_:r()' : validName.test(key) ? key + ':r()' : ('[' + JSON.stringify(key) + ']:r()')).join(',') + '})}'))(read)\n\t\t\tif (structure.highByte === 0)\n\t\t\t\tstructure.read = createSecondByteReader(firstId, structure.read)\n\t\t\treturn readObject() // second byte is already read, if there is one so immediately read object\n\t\t}\n\t\tlet object = {}\n\t\tfor (let i = 0, l = structure.length; i < l; i++) {\n\t\t\tlet key = structure[i]\n\t\t\tif (key === '__proto__')\n\t\t\t\tkey = '__proto_'\n\t\t\tobject[key] = read()\n\t\t}\n\t\tif (currentUnpackr.freezeData)\n\t\t\treturn Object.freeze(object);\n\t\treturn object\n\t}\n\treadObject.count = 0\n\tif (structure.highByte === 0) {\n\t\treturn createSecondByteReader(firstId, readObject)\n\t}\n\treturn readObject\n}\n\nconst createSecondByteReader = (firstId, read0) => {\n\treturn function() {\n\t\tlet highByte = src[position++]\n\t\tif (highByte === 0)\n\t\t\treturn read0()\n\t\tlet id = firstId < 32 ? -(firstId + (highByte << 5)) : firstId + (highByte << 5)\n\t\tlet structure = currentStructures[id] || loadStructures()[id]\n\t\tif (!structure) {\n\t\t\tthrow new Error('Record id is not defined for ' + id)\n\t\t}\n\t\tif (!structure.read)\n\t\t\tstructure.read = createStructureReader(structure, firstId)\n\t\treturn structure.read()\n\t}\n}\n\nexport function loadStructures() {\n\tlet loadedStructures = saveState(() => {\n\t\t// save the state in case getStructures modifies our buffer\n\t\tsrc = null\n\t\treturn currentUnpackr.getStructures()\n\t})\n\treturn currentStructures = currentUnpackr._mergeStructures(loadedStructures, currentStructures)\n}\n\nvar readFixedString = readStringJS\nvar readString8 = readStringJS\nvar readString16 = readStringJS\nvar readString32 = readStringJS\nexport let isNativeAccelerationEnabled = false\n\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 byteOffset = src.byteOffset\n\t\t\t\tlet extraction = extractStrings(position - headerLength + byteOffset, srcEnd + byteOffset, src.buffer)\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}\nexport function readString(source, start, length) {\n\tlet existingSrc = src;\n\tsrc = source;\n\tposition = start;\n\ttry {\n\t\treturn readStringJS(length);\n\t} finally {\n\t\tsrc = existingSrc;\n\t}\n}\n\nfunction readArray(length) {\n\tlet array = new Array(length)\n\tfor (let i = 0; i < length; i++) {\n\t\tarray[i] = read()\n\t}\n\tif (currentUnpackr.freezeData)\n\t\treturn Object.freeze(array)\n\treturn array\n}\n\nfunction readMap(length) {\n\tif (currentUnpackr.mapsAsObjects) {\n\t\tlet object = {}\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tlet key = readKey()\n\t\t\tif (key === '__proto__')\n\t\t\t\tkey = '__proto_';\n\t\t\tobject[key] = read()\n\t\t}\n\t\treturn object\n\t} else {\n\t\tlet map = new Map()\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tmap.set(read(), read())\n\t\t}\n\t\treturn map\n\t}\n}\n\nvar 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\t\tposition = start\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbytes[i] = byte\n\t\t}\n\t\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 readOnlyJSString() {\n\tlet token = src[position++]\n\tlet length\n\tif (token < 0xc0) {\n\t\t// fixstr\n\t\tlength = token - 0xa0\n\t} else {\n\t\tswitch(token) {\n\t\t\tcase 0xd9:\n\t\t\t// str 8\n\t\t\t\tlength = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0xda:\n\t\t\t// str 16\n\t\t\t\tlength = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0xdb:\n\t\t\t// str 32\n\t\t\t\tlength = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Expected string')\n\t\t}\n\t}\n\treturn readStringJS(length)\n}\n\n\nfunction readBin(length) {\n\treturn currentUnpackr.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\tlet end\n\t\treturn currentExtensions[type](src.subarray(position, end = (position += length)), (readPosition) => {\n\t\t\tposition = readPosition;\n\t\t\ttry {\n\t\t\t\treturn read();\n\t\t\t} finally {\n\t\t\t\tposition = end;\n\t\t\t}\n\t\t})\n\t}\n\telse\n\t\tthrow new Error('Unknown extension type ' + type)\n}\n\nvar keyCache = new Array(4096)\nfunction readKey() {\n\tlet length = src[position++]\n\tif (length >= 0xa0 && length < 0xc0) {\n\t\t// fixstr, potentially use key cache\n\t\tlength = length - 0xa0\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().toString()\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\n// the registration of the record definition extension (as \"r\")\nconst recordDefinition = (id, highByte) => {\n\tlet structure = read().map(property => property.toString()) // ensure that all keys are strings and that the array is mutable\n\tlet firstByte = id\n\tif (highByte !== undefined) {\n\t\tid = id < 32 ? -((highByte << 5) + id) : ((highByte << 5) + id)\n\t\tstructure.highByte = highByte\n\t}\n\tlet existingStructure = currentStructures[id]\n\t// If it is a shared structure, we need to restore any changes after reading.\n\t// Also in sequential mode, we may get incomplete reads and thus errors, and we need to restore\n\t// to the state prior to an incomplete read in order to properly resume.\n\tif (existingStructure && (existingStructure.isShared || sequentialMode)) {\n\t\t(currentStructures.restoreStructures || (currentStructures.restoreStructures = []))[id] = existingStructure\n\t}\n\tcurrentStructures[id] = structure\n\tstructure.read = createStructureReader(structure, firstByte)\n\treturn structure.read()\n}\ncurrentExtensions[0] = () => {} // notepack defines extension 0 to mean undefined, so use that as the default here\ncurrentExtensions[0].noBuffer = true\n\nlet glbl = typeof globalThis === 'object' ? globalThis : window;\ncurrentExtensions[0x65] = () => {\n\tlet data = read()\n\treturn (glbl[data[0]] || Error)(data[1])\n}\n\ncurrentExtensions[0x69] = (data) => {\n\t// id extension (for structured clones)\n\tlet id = dataView.getUint32(position - 4)\n\tif (!referenceMap)\n\t\treferenceMap = new Map()\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 >= 0x90 && token < 0xa0 || token == 0xdc || token == 0xdd)\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\treturn Object.assign(target, targetProperties)\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}\n\ncurrentExtensions[0x70] = (data) => {\n\t// pointer extension (for structured clones)\n\tlet id = dataView.getUint32(position - 4)\n\tlet refEntry = referenceMap.get(id)\n\trefEntry.used = true\n\treturn refEntry.target\n}\n\ncurrentExtensions[0x73] = () => new Set(read())\n\nexport const typedArrays = ['Int8','Uint8','Uint8Clamped','Int16','Uint16','Int32','Uint32','Float32','Float64','BigInt64','BigUint64'].map(type => type + 'Array')\n\ncurrentExtensions[0x74] = (data) => {\n\tlet typeCode = data[0]\n\tlet typedArrayName = typedArrays[typeCode]\n\tif (!typedArrayName)\n\t\tthrow new Error('Could not find typed array for code ' + typeCode)\n\t// we have to always slice/copy here to get a new ArrayBuffer that is word/byte aligned\n\treturn new glbl[typedArrayName](Uint8Array.prototype.slice.call(data, 1).buffer)\n}\ncurrentExtensions[0x78] = () => {\n\tlet data = read()\n\treturn new RegExp(data[0], data[1])\n}\nconst TEMP_BUNDLE = []\ncurrentExtensions[0x62] = (data) => {\n\tlet dataSize = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]\n\tlet dataPosition = position\n\tposition += dataSize - data.length\n\tbundledStrings = TEMP_BUNDLE\n\tbundledStrings = [readOnlyJSString(), readOnlyJSString()]\n\tbundledStrings.position0 = 0\n\tbundledStrings.position1 = 0\n\tbundledStrings.postBundlePosition = position\n\tposition = dataPosition\n\treturn read()\n}\n\ncurrentExtensions[0xff] = (data) => {\n\t// 32-bit date extension\n\tif (data.length == 4)\n\t\treturn new Date((data[0] * 0x1000000 + (data[1] << 16) + (data[2] << 8) + data[3]) * 1000)\n\telse if (data.length == 8)\n\t\treturn new Date(\n\t\t\t((data[0] << 22) + (data[1] << 14) + (data[2] << 6) + (data[3] >> 2)) / 1000000 +\n\t\t\t((data[3] & 0x3) * 0x100000000 + data[4] * 0x1000000 + (data[5] << 16) + (data[6] << 8) + data[7]) * 1000)\n\telse if (data.length == 12)// TODO: Implement support for negative\n\t\treturn new Date(\n\t\t\t((data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]) / 1000000 +\n\t\t\t(((data[4] & 0x80) ? -0x1000000000000 : 0) + data[6] * 0x10000000000 + data[7] * 0x100000000 + data[8] * 0x1000000 + (data[9] << 16) + (data[10] << 8) + data[11]) * 1000)\n\telse\n\t\treturn new Date('invalid')\n} // notepack defines extension 0 to mean undefined, so use that as the default here\n// registration of bulk record definition?\n// currentExtensions[0x52] = () =>\n\nfunction saveState(callback) {\n\tif (onSaveState)\n\t\tonSaveState();\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 savedStructuresContents = currentStructures.slice(0, currentStructures.length)\n\tlet savedPackr = currentUnpackr\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\tcurrentStructures.splice(0, currentStructures.length, ...savedStructuresContents)\n\tcurrentUnpackr = savedPackr\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\tif (extension.unpack)\n\t\tcurrentExtensions[extension.type] = extension.unpack\n\telse\n\t\tcurrentExtensions[extension.type] = extension\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}\nexport const Decoder = Unpackr\nvar defaultUnpackr = new Unpackr({ useRecords: false })\nexport const unpack = defaultUnpackr.unpack\nexport const unpackMultiple = defaultUnpackr.unpackMultiple\nexport const decode = defaultUnpackr.unpack\nexport const FLOAT32_OPTIONS = {\n\tNEVER: 0,\n\tALWAYS: 1,\n\tDECIMAL_ROUND: 3,\n\tDECIMAL_FIT: 4\n}\nlet f32Array = new Float32Array(1)\nlet u8Array = new Uint8Array(f32Array.buffer, 0, 4)\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}\nexport function setReadStruct(updatedReadStruct, loadedStructs, saveState) {\n\treadStruct = updatedReadStruct;\n\tonLoadedStructures = loadedStructs;\n\tonSaveState = saveState;\n}\n"],"names":["isNativeAccelerationEnabled"],"mappings":"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"}
1
+ {"version":3,"file":"unpack-no-eval.cjs","sources":["../unpack.js"],"sourcesContent":["var decoder\ntry {\n\tdecoder = new TextDecoder()\n} catch(error) {}\nvar src\nvar srcEnd\nvar position = 0\nvar alreadySet\nconst EMPTY_ARRAY = []\nvar strings = EMPTY_ARRAY\nvar stringPosition = 0\nvar currentUnpackr = {}\nvar currentStructures\nvar srcString\nvar srcStringStart = 0\nvar srcStringEnd = 0\nvar bundledStrings\nvar referenceMap\nvar currentExtensions = []\nvar dataView\nvar defaultOptions = {\n\tuseRecords: false,\n\tmapsAsObjects: true\n}\nexport class C1Type {}\nexport const C1 = new C1Type()\nC1.name = 'MessagePack 0xC1'\nvar sequentialMode = false\nvar inlineObjectReadThreshold = 2\nvar readStruct, onLoadedStructures, onSaveState\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\nexport class Unpackr {\n\tconstructor(options) {\n\t\tif (options) {\n\t\t\tif (options.useRecords === false && options.mapsAsObjects === undefined)\n\t\t\t\toptions.mapsAsObjects = true\n\t\t\tif (options.sequential && options.trusted !== false) {\n\t\t\t\toptions.trusted = true;\n\t\t\t\tif (!options.structures && options.useRecords != false) {\n\t\t\t\t\toptions.structures = []\n\t\t\t\t\tif (!options.maxSharedStructures)\n\t\t\t\t\t\toptions.maxSharedStructures = 0\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.structures)\n\t\t\t\toptions.structures.sharedLength = options.structures.length\n\t\t\telse if (options.getStructures) {\n\t\t\t\t(options.structures = []).uninitialized = true // this is what we use to denote an uninitialized structures\n\t\t\t\toptions.structures.sharedLength = 0\n\t\t\t}\n\t\t\tif (options.int64AsNumber) {\n\t\t\t\toptions.int64AsType = 'number'\n\t\t\t}\n\t\t}\n\t\tObject.assign(this, options)\n\t}\n\tunpack(source, options) {\n\t\tif (src) {\n\t\t\t// re-entrant execution, save the state and restore it after we do this unpack\n\t\t\treturn saveState(() => {\n\t\t\t\tclearSource()\n\t\t\t\treturn this ? this.unpack(source, options) : Unpackr.prototype.unpack.call(defaultOptions, source, options)\n\t\t\t})\n\t\t}\n\t\tif (!source.buffer && source.constructor === ArrayBuffer)\n\t\t\tsource = typeof Buffer !== 'undefined' ? Buffer.from(source) : new Uint8Array(source);\n\t\tif (typeof options === 'object') {\n\t\t\tsrcEnd = options.end || source.length\n\t\t\tposition = options.start || 0\n\t\t} else {\n\t\t\tposition = 0\n\t\t\tsrcEnd = options > -1 ? options : source.length\n\t\t}\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 Unpackr) {\n\t\t\tcurrentUnpackr = this\n\t\t\tif (this.structures) {\n\t\t\t\tcurrentStructures = this.structures\n\t\t\t\treturn checkedRead(options)\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\tcurrentUnpackr = defaultOptions\n\t\t\tif (!currentStructures || currentStructures.length > 0)\n\t\t\t\tcurrentStructures = []\n\t\t}\n\t\treturn checkedRead(options)\n\t}\n\tunpackMultiple(source, forEach) {\n\t\tlet values, lastPosition = 0\n\t\ttry {\n\t\t\tsequentialMode = true\n\t\t\tlet size = source.length\n\t\t\tlet value = this ? this.unpack(source, size) : defaultUnpackr.unpack(source, size)\n\t\t\tif (forEach) {\n\t\t\t\tif (forEach(value, lastPosition, position) === false) return;\n\t\t\t\twhile(position < size) {\n\t\t\t\t\tlastPosition = position\n\t\t\t\t\tif (forEach(checkedRead(), lastPosition, position) === 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\t_mergeStructures(loadedStructures, existingStructures) {\n\t\tif (onLoadedStructures)\n\t\t\tloadedStructures = onLoadedStructures.call(this, loadedStructures);\n\t\tloadedStructures = loadedStructures || []\n\t\tif (Object.isFrozen(loadedStructures))\n\t\t\tloadedStructures = loadedStructures.map(structure => structure.slice(0))\n\t\tfor (let i = 0, l = loadedStructures.length; i < l; i++) {\n\t\t\tlet structure = loadedStructures[i]\n\t\t\tif (structure) {\n\t\t\t\tstructure.isShared = true\n\t\t\t\tif (i >= 32)\n\t\t\t\t\tstructure.highByte = (i - 32) >> 5\n\t\t\t}\n\t\t}\n\t\tloadedStructures.sharedLength = loadedStructures.length\n\t\tfor (let id in existingStructures || []) {\n\t\t\tif (id >= 0) {\n\t\t\t\tlet structure = loadedStructures[id]\n\t\t\t\tlet existing = existingStructures[id]\n\t\t\t\tif (existing) {\n\t\t\t\t\tif (structure)\n\t\t\t\t\t\t(loadedStructures.restoreStructures || (loadedStructures.restoreStructures = []))[id] = structure\n\t\t\t\t\tloadedStructures[id] = existing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.structures = loadedStructures\n\t}\n\tdecode(source, end) {\n\t\treturn this.unpack(source, end)\n\t}\n}\nexport function getPosition() {\n\treturn position\n}\nexport function checkedRead(options) {\n\ttry {\n\t\tif (!currentUnpackr.trusted && !sequentialMode) {\n\t\t\tlet sharedLength = currentStructures.sharedLength || 0\n\t\t\tif (sharedLength < currentStructures.length)\n\t\t\t\tcurrentStructures.length = sharedLength\n\t\t}\n\t\tlet result\n\t\tif (currentUnpackr.randomAccessStructure && src[position] < 0x40 && src[position] >= 0x20 && readStruct) {\n\t\t\tresult = readStruct(src, position, srcEnd, currentUnpackr)\n\t\t\tsrc = null // dispose of this so that recursive unpack calls don't save state\n\t\t\tif (!(options && options.lazy) && result)\n\t\t\t\tresult = result.toJSON()\n\t\t\tposition = srcEnd\n\t\t} else\n\t\t\tresult = read()\n\t\tif (bundledStrings) { // bundled strings to skip past\n\t\t\tposition = bundledStrings.postBundlePosition\n\t\t\tbundledStrings = null\n\t\t}\n\t\tif (sequentialMode)\n\t\t\t// we only need to restore the structures if there was an error, but if we completed a read,\n\t\t\t// we can clear this out and keep the structures we read\n\t\t\tcurrentStructures.restoreStructures = null\n\n\t\tif (position == srcEnd) {\n\t\t\t// finished reading this source, cleanup references\n\t\t\tif (currentStructures && currentStructures.restoreStructures)\n\t\t\t\trestoreStructures()\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\tthrow new Error('Unexpected end of MessagePack data')\n\t\t} else if (!sequentialMode) {\n\t\t\tlet jsonView;\n\t\t\ttry {\n\t\t\t\tjsonView = JSON.stringify(result, (_, value) => typeof value === \"bigint\" ? `${value}n` : value).slice(0, 100)\n\t\t\t} catch(error) {\n\t\t\t\tjsonView = '(JSON view not available ' + error + ')'\n\t\t\t}\n\t\t\tthrow new Error('Data read, but end of buffer not reached ' + jsonView)\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\tif (currentStructures && currentStructures.restoreStructures)\n\t\t\trestoreStructures()\n\t\tclearSource()\n\t\tif (error instanceof RangeError || error.message.startsWith('Unexpected end of buffer') || position > srcEnd) {\n\t\t\terror.incomplete = true\n\t\t}\n\t\tthrow error\n\t}\n}\n\nfunction restoreStructures() {\n\tfor (let id in currentStructures.restoreStructures) {\n\t\tcurrentStructures[id] = currentStructures.restoreStructures[id]\n\t}\n\tcurrentStructures.restoreStructures = null\n}\n\nexport function read() {\n\tlet token = src[position++]\n\tif (token < 0xa0) {\n\t\tif (token < 0x80) {\n\t\t\tif (token < 0x40)\n\t\t\t\treturn token\n\t\t\telse {\n\t\t\t\tlet structure = currentStructures[token & 0x3f] ||\n\t\t\t\t\tcurrentUnpackr.getStructures && loadStructures()[token & 0x3f]\n\t\t\t\tif (structure) {\n\t\t\t\t\tif (!structure.read) {\n\t\t\t\t\t\tstructure.read = createStructureReader(structure, token & 0x3f)\n\t\t\t\t\t}\n\t\t\t\t\treturn structure.read()\n\t\t\t\t} else\n\t\t\t\t\treturn token\n\t\t\t}\n\t\t} else if (token < 0x90) {\n\t\t\t// map\n\t\t\ttoken -= 0x80\n\t\t\tif (currentUnpackr.mapsAsObjects) {\n\t\t\t\tlet object = {}\n\t\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\t\tlet key = readKey()\n\t\t\t\t\tif (key === '__proto__')\n\t\t\t\t\t\tkey = '__proto_'\n\t\t\t\t\tobject[key] = read()\n\t\t\t\t}\n\t\t\t\treturn object\n\t\t\t} else {\n\t\t\t\tlet map = new Map()\n\t\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\t\tmap.set(read(), read())\n\t\t\t\t}\n\t\t\t\treturn map\n\t\t\t}\n\t\t} else {\n\t\t\ttoken -= 0x90\n\t\t\tlet array = new Array(token)\n\t\t\tfor (let i = 0; i < token; i++) {\n\t\t\t\tarray[i] = read()\n\t\t\t}\n\t\t\tif (currentUnpackr.freezeData)\n\t\t\t\treturn Object.freeze(array)\n\t\t\treturn array\n\t\t}\n\t} else if (token < 0xc0) {\n\t\t// fixstr\n\t\tlet length = token - 0xa0\n\t\tif (srcStringEnd >= position) {\n\t\t\treturn srcString.slice(position - srcStringStart, (position += length) - srcStringStart)\n\t\t}\n\t\tif (srcStringEnd == 0 && srcEnd < 140) {\n\t\t\t// for small blocks, avoiding the overhead of the extract call is helpful\n\t\t\tlet string = length < 16 ? shortStringInJS(length) : longStringInJS(length)\n\t\t\tif (string != null)\n\t\t\t\treturn string\n\t\t}\n\t\treturn readFixedString(length)\n\t} else {\n\t\tlet value\n\t\tswitch (token) {\n\t\t\tcase 0xc0: return null\n\t\t\tcase 0xc1:\n\t\t\t\tif (bundledStrings) {\n\t\t\t\t\tvalue = read() // followed by the length of the string in characters (not bytes!)\n\t\t\t\t\tif (value > 0)\n\t\t\t\t\t\treturn bundledStrings[1].slice(bundledStrings.position1, bundledStrings.position1 += value)\n\t\t\t\t\telse\n\t\t\t\t\t\treturn bundledStrings[0].slice(bundledStrings.position0, bundledStrings.position0 -= value)\n\t\t\t\t}\n\t\t\t\treturn C1; // \"never-used\", return special object to denote that\n\t\t\tcase 0xc2: return false\n\t\t\tcase 0xc3: return true\n\t\t\tcase 0xc4:\n\t\t\t\t// bin 8\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (value === undefined)\n\t\t\t\t\tthrow new Error('Unexpected end of buffer')\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc5:\n\t\t\t\t// bin 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc6:\n\t\t\t\t// bin 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readBin(value)\n\t\t\tcase 0xc7:\n\t\t\t\t// ext 8\n\t\t\t\treturn readExt(src[position++])\n\t\t\tcase 0xc8:\n\t\t\t\t// ext 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readExt(value)\n\t\t\tcase 0xc9:\n\t\t\t\t// ext 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readExt(value)\n\t\t\tcase 0xca:\n\t\t\t\tvalue = dataView.getFloat32(position)\n\t\t\t\tif (currentUnpackr.useFloat32 > 2) {\n\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\tlet multiplier = mult10[((src[position] & 0x7f) << 1) | (src[position + 1] >> 7)]\n\t\t\t\t\tposition += 4\n\t\t\t\t\treturn ((multiplier * value + (value > 0 ? 0.5 : -0.5)) >> 0) / multiplier\n\t\t\t\t}\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xcb:\n\t\t\t\tvalue = dataView.getFloat64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\t\t\t// uint handlers\n\t\t\tcase 0xcc:\n\t\t\t\treturn src[position++]\n\t\t\tcase 0xcd:\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn value\n\t\t\tcase 0xce:\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xcf:\n\t\t\t\tif (currentUnpackr.int64AsType === 'number') {\n\t\t\t\t\tvalue = dataView.getUint32(position) * 0x100000000\n\t\t\t\t\tvalue += dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'string') {\n\t\t\t\t\tvalue = dataView.getBigUint64(position).toString()\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'auto') {\n\t\t\t\t\tvalue = dataView.getBigUint64(position)\n\t\t\t\t\tif (value<=BigInt(2)<<BigInt(52)) value=Number(value)\n\t\t\t\t} else\n\t\t\t\t\tvalue = dataView.getBigUint64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\n\t\t\t// int handlers\n\t\t\tcase 0xd0:\n\t\t\t\treturn dataView.getInt8(position++)\n\t\t\tcase 0xd1:\n\t\t\t\tvalue = dataView.getInt16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn value\n\t\t\tcase 0xd2:\n\t\t\t\tvalue = dataView.getInt32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn value\n\t\t\tcase 0xd3:\n\t\t\t\tif (currentUnpackr.int64AsType === 'number') {\n\t\t\t\t\tvalue = dataView.getInt32(position) * 0x100000000\n\t\t\t\t\tvalue += dataView.getUint32(position + 4)\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'string') {\n\t\t\t\t\tvalue = dataView.getBigInt64(position).toString()\n\t\t\t\t} else if (currentUnpackr.int64AsType === 'auto') {\n\t\t\t\t\tvalue = dataView.getBigInt64(position)\n\t\t\t\t\tif (value>=BigInt(-2)<<BigInt(52)&&value<=BigInt(2)<<BigInt(52)) value=Number(value)\n\t\t\t\t} else\n\t\t\t\t\tvalue = dataView.getBigInt64(position)\n\t\t\t\tposition += 8\n\t\t\t\treturn value\n\n\t\t\tcase 0xd4:\n\t\t\t\t// fixext 1\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (value == 0x72) {\n\t\t\t\t\treturn recordDefinition(src[position++] & 0x3f)\n\t\t\t\t} else {\n\t\t\t\t\tlet extension = currentExtensions[value]\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\tif (extension.read) {\n\t\t\t\t\t\t\tposition++ // skip filler byte\n\t\t\t\t\t\t\treturn extension.read(read())\n\t\t\t\t\t\t} else if (extension.noBuffer) {\n\t\t\t\t\t\t\tposition++ // skip filler byte\n\t\t\t\t\t\t\treturn extension()\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\treturn extension(src.subarray(position, ++position))\n\t\t\t\t\t} else\n\t\t\t\t\t\tthrow new Error('Unknown extension ' + value)\n\t\t\t\t}\n\t\t\tcase 0xd5:\n\t\t\t\t// fixext 2\n\t\t\t\tvalue = src[position]\n\t\t\t\tif (value == 0x72) {\n\t\t\t\t\tposition++\n\t\t\t\t\treturn recordDefinition(src[position++] & 0x3f, src[position++])\n\t\t\t\t} else\n\t\t\t\t\treturn readExt(2)\n\t\t\tcase 0xd6:\n\t\t\t\t// fixext 4\n\t\t\t\treturn readExt(4)\n\t\t\tcase 0xd7:\n\t\t\t\t// fixext 8\n\t\t\t\treturn readExt(8)\n\t\t\tcase 0xd8:\n\t\t\t\t// fixext 16\n\t\t\t\treturn readExt(16)\n\t\t\tcase 0xd9:\n\t\t\t// str 8\n\t\t\t\tvalue = src[position++]\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString8(value)\n\t\t\tcase 0xda:\n\t\t\t// str 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString16(value)\n\t\t\tcase 0xdb:\n\t\t\t// str 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tif (srcStringEnd >= position) {\n\t\t\t\t\treturn srcString.slice(position - srcStringStart, (position += value) - srcStringStart)\n\t\t\t\t}\n\t\t\t\treturn readString32(value)\n\t\t\tcase 0xdc:\n\t\t\t// array 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readArray(value)\n\t\t\tcase 0xdd:\n\t\t\t// array 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readArray(value)\n\t\t\tcase 0xde:\n\t\t\t// map 16\n\t\t\t\tvalue = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\treturn readMap(value)\n\t\t\tcase 0xdf:\n\t\t\t// map 32\n\t\t\t\tvalue = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\treturn readMap(value)\n\t\t\tdefault: // negative int\n\t\t\t\tif (token >= 0xe0)\n\t\t\t\t\treturn token - 0x100\n\t\t\t\tif (token === undefined) {\n\t\t\t\t\tlet error = new Error('Unexpected end of MessagePack data')\n\t\t\t\t\terror.incomplete = true\n\t\t\t\t\tthrow error\n\t\t\t\t}\n\t\t\t\tthrow new Error('Unknown MessagePack token ' + token)\n\n\t\t}\n\t}\n}\nconst validName = /^[a-zA-Z_$][a-zA-Z\\d_$]*$/\nfunction createStructureReader(structure, firstId) {\n\tfunction readObject() {\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\tif (readObject.count++ > inlineObjectReadThreshold) {\n\t\t\tlet readObject = structure.read = (new Function('r', 'return function(){return ' + (currentUnpackr.freezeData ? 'Object.freeze' : '') +\n\t\t\t\t'({' + structure.map(key => key === '__proto__' ? '__proto_:r()' : validName.test(key) ? key + ':r()' : ('[' + JSON.stringify(key) + ']:r()')).join(',') + '})}'))(read)\n\t\t\tif (structure.highByte === 0)\n\t\t\t\tstructure.read = createSecondByteReader(firstId, structure.read)\n\t\t\treturn readObject() // second byte is already read, if there is one so immediately read object\n\t\t}\n\t\tlet object = {}\n\t\tfor (let i = 0, l = structure.length; i < l; i++) {\n\t\t\tlet key = structure[i]\n\t\t\tif (key === '__proto__')\n\t\t\t\tkey = '__proto_'\n\t\t\tobject[key] = read()\n\t\t}\n\t\tif (currentUnpackr.freezeData)\n\t\t\treturn Object.freeze(object);\n\t\treturn object\n\t}\n\treadObject.count = 0\n\tif (structure.highByte === 0) {\n\t\treturn createSecondByteReader(firstId, readObject)\n\t}\n\treturn readObject\n}\n\nconst createSecondByteReader = (firstId, read0) => {\n\treturn function() {\n\t\tlet highByte = src[position++]\n\t\tif (highByte === 0)\n\t\t\treturn read0()\n\t\tlet id = firstId < 32 ? -(firstId + (highByte << 5)) : firstId + (highByte << 5)\n\t\tlet structure = currentStructures[id] || loadStructures()[id]\n\t\tif (!structure) {\n\t\t\tthrow new Error('Record id is not defined for ' + id)\n\t\t}\n\t\tif (!structure.read)\n\t\t\tstructure.read = createStructureReader(structure, firstId)\n\t\treturn structure.read()\n\t}\n}\n\nexport function loadStructures() {\n\tlet loadedStructures = saveState(() => {\n\t\t// save the state in case getStructures modifies our buffer\n\t\tsrc = null\n\t\treturn currentUnpackr.getStructures()\n\t})\n\treturn currentStructures = currentUnpackr._mergeStructures(loadedStructures, currentStructures)\n}\n\nvar readFixedString = readStringJS\nvar readString8 = readStringJS\nvar readString16 = readStringJS\nvar readString32 = readStringJS\nexport let isNativeAccelerationEnabled = false\n\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 byteOffset = src.byteOffset\n\t\t\t\tlet extraction = extractStrings(position - headerLength + byteOffset, srcEnd + byteOffset, src.buffer)\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}\nexport function readString(source, start, length) {\n\tlet existingSrc = src;\n\tsrc = source;\n\tposition = start;\n\ttry {\n\t\treturn readStringJS(length);\n\t} finally {\n\t\tsrc = existingSrc;\n\t}\n}\n\nfunction readArray(length) {\n\tlet array = new Array(length)\n\tfor (let i = 0; i < length; i++) {\n\t\tarray[i] = read()\n\t}\n\tif (currentUnpackr.freezeData)\n\t\treturn Object.freeze(array)\n\treturn array\n}\n\nfunction readMap(length) {\n\tif (currentUnpackr.mapsAsObjects) {\n\t\tlet object = {}\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tlet key = readKey()\n\t\t\tif (key === '__proto__')\n\t\t\t\tkey = '__proto_';\n\t\t\tobject[key] = read()\n\t\t}\n\t\treturn object\n\t} else {\n\t\tlet map = new Map()\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tmap.set(read(), read())\n\t\t}\n\t\treturn map\n\t}\n}\n\nvar 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\t\tposition = start\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbytes[i] = byte\n\t\t}\n\t\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 readOnlyJSString() {\n\tlet token = src[position++]\n\tlet length\n\tif (token < 0xc0) {\n\t\t// fixstr\n\t\tlength = token - 0xa0\n\t} else {\n\t\tswitch(token) {\n\t\t\tcase 0xd9:\n\t\t\t// str 8\n\t\t\t\tlength = src[position++]\n\t\t\t\tbreak\n\t\t\tcase 0xda:\n\t\t\t// str 16\n\t\t\t\tlength = dataView.getUint16(position)\n\t\t\t\tposition += 2\n\t\t\t\tbreak\n\t\t\tcase 0xdb:\n\t\t\t// str 32\n\t\t\t\tlength = dataView.getUint32(position)\n\t\t\t\tposition += 4\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Expected string')\n\t\t}\n\t}\n\treturn readStringJS(length)\n}\n\n\nfunction readBin(length) {\n\treturn currentUnpackr.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\tlet end\n\t\treturn currentExtensions[type](src.subarray(position, end = (position += length)), (readPosition) => {\n\t\t\tposition = readPosition;\n\t\t\ttry {\n\t\t\t\treturn read();\n\t\t\t} finally {\n\t\t\t\tposition = end;\n\t\t\t}\n\t\t})\n\t}\n\telse\n\t\tthrow new Error('Unknown extension type ' + type)\n}\n\nvar keyCache = new Array(4096)\nfunction readKey() {\n\tlet length = src[position++]\n\tif (length >= 0xa0 && length < 0xc0) {\n\t\t// fixstr, potentially use key cache\n\t\tlength = length - 0xa0\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().toString()\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\n// the registration of the record definition extension (as \"r\")\nconst recordDefinition = (id, highByte) => {\n\tlet structure = read().map(property => property.toString()) // ensure that all keys are strings and that the array is mutable\n\tlet firstByte = id\n\tif (highByte !== undefined) {\n\t\tid = id < 32 ? -((highByte << 5) + id) : ((highByte << 5) + id)\n\t\tstructure.highByte = highByte\n\t}\n\tlet existingStructure = currentStructures[id]\n\t// If it is a shared structure, we need to restore any changes after reading.\n\t// Also in sequential mode, we may get incomplete reads and thus errors, and we need to restore\n\t// to the state prior to an incomplete read in order to properly resume.\n\tif (existingStructure && (existingStructure.isShared || sequentialMode)) {\n\t\t(currentStructures.restoreStructures || (currentStructures.restoreStructures = []))[id] = existingStructure\n\t}\n\tcurrentStructures[id] = structure\n\tstructure.read = createStructureReader(structure, firstByte)\n\treturn structure.read()\n}\ncurrentExtensions[0] = () => {} // notepack defines extension 0 to mean undefined, so use that as the default here\ncurrentExtensions[0].noBuffer = true\n\nlet errors = { Error, TypeError, ReferenceError };\ncurrentExtensions[0x65] = () => {\n\tlet data = read()\n\treturn (errors[data[0]] || Error)(data[1])\n}\n\ncurrentExtensions[0x69] = (data) => {\n\t// id extension (for structured clones)\n\tlet id = dataView.getUint32(position - 4)\n\tif (!referenceMap)\n\t\treferenceMap = new Map()\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 >= 0x90 && token < 0xa0 || token == 0xdc || token == 0xdd)\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\treturn Object.assign(target, targetProperties)\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}\n\ncurrentExtensions[0x70] = (data) => {\n\t// pointer extension (for structured clones)\n\tlet id = dataView.getUint32(position - 4)\n\tlet refEntry = referenceMap.get(id)\n\trefEntry.used = true\n\treturn refEntry.target\n}\n\ncurrentExtensions[0x73] = () => new Set(read())\n\nexport const typedArrays = ['Int8','Uint8','Uint8Clamped','Int16','Uint16','Int32','Uint32','Float32','Float64','BigInt64','BigUint64'].map(type => type + 'Array')\n\nlet glbl = typeof globalThis === 'object' ? globalThis : window;\ncurrentExtensions[0x74] = (data) => {\n\tlet typeCode = data[0]\n\tlet typedArrayName = typedArrays[typeCode]\n\tif (!typedArrayName)\n\t\tthrow new Error('Could not find typed array for code ' + typeCode)\n\t// we have to always slice/copy here to get a new ArrayBuffer that is word/byte aligned\n\treturn new glbl[typedArrayName](Uint8Array.prototype.slice.call(data, 1).buffer)\n}\ncurrentExtensions[0x78] = () => {\n\tlet data = read()\n\treturn new RegExp(data[0], data[1])\n}\nconst TEMP_BUNDLE = []\ncurrentExtensions[0x62] = (data) => {\n\tlet dataSize = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]\n\tlet dataPosition = position\n\tposition += dataSize - data.length\n\tbundledStrings = TEMP_BUNDLE\n\tbundledStrings = [readOnlyJSString(), readOnlyJSString()]\n\tbundledStrings.position0 = 0\n\tbundledStrings.position1 = 0\n\tbundledStrings.postBundlePosition = position\n\tposition = dataPosition\n\treturn read()\n}\n\ncurrentExtensions[0xff] = (data) => {\n\t// 32-bit date extension\n\tif (data.length == 4)\n\t\treturn new Date((data[0] * 0x1000000 + (data[1] << 16) + (data[2] << 8) + data[3]) * 1000)\n\telse if (data.length == 8)\n\t\treturn new Date(\n\t\t\t((data[0] << 22) + (data[1] << 14) + (data[2] << 6) + (data[3] >> 2)) / 1000000 +\n\t\t\t((data[3] & 0x3) * 0x100000000 + data[4] * 0x1000000 + (data[5] << 16) + (data[6] << 8) + data[7]) * 1000)\n\telse if (data.length == 12)// TODO: Implement support for negative\n\t\treturn new Date(\n\t\t\t((data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]) / 1000000 +\n\t\t\t(((data[4] & 0x80) ? -0x1000000000000 : 0) + data[6] * 0x10000000000 + data[7] * 0x100000000 + data[8] * 0x1000000 + (data[9] << 16) + (data[10] << 8) + data[11]) * 1000)\n\telse\n\t\treturn new Date('invalid')\n} // notepack defines extension 0 to mean undefined, so use that as the default here\n// registration of bulk record definition?\n// currentExtensions[0x52] = () =>\n\nfunction saveState(callback) {\n\tif (onSaveState)\n\t\tonSaveState();\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 savedStructuresContents = currentStructures.slice(0, currentStructures.length)\n\tlet savedPackr = currentUnpackr\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\tcurrentStructures.splice(0, currentStructures.length, ...savedStructuresContents)\n\tcurrentUnpackr = savedPackr\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\tif (extension.unpack)\n\t\tcurrentExtensions[extension.type] = extension.unpack\n\telse\n\t\tcurrentExtensions[extension.type] = extension\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}\nexport const Decoder = Unpackr\nvar defaultUnpackr = new Unpackr({ useRecords: false })\nexport const unpack = defaultUnpackr.unpack\nexport const unpackMultiple = defaultUnpackr.unpackMultiple\nexport const decode = defaultUnpackr.unpack\nexport const FLOAT32_OPTIONS = {\n\tNEVER: 0,\n\tALWAYS: 1,\n\tDECIMAL_ROUND: 3,\n\tDECIMAL_FIT: 4\n}\nlet f32Array = new Float32Array(1)\nlet u8Array = new Uint8Array(f32Array.buffer, 0, 4)\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}\nexport function setReadStruct(updatedReadStruct, loadedStructs, saveState) {\n\treadStruct = updatedReadStruct;\n\tonLoadedStructures = loadedStructs;\n\tonSaveState = saveState;\n}\n"],"names":["isNativeAccelerationEnabled"],"mappings":"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"}
package/index.d.cts CHANGED
@@ -7,13 +7,14 @@ export enum FLOAT32_OPTIONS {
7
7
 
8
8
  export interface Options {
9
9
  useFloat32?: FLOAT32_OPTIONS
10
- useRecords?: boolean
10
+ useRecords?: boolean | ((value:any)=> boolean)
11
11
  structures?: {}[]
12
12
  moreTypes?: boolean
13
13
  sequential?: boolean
14
14
  structuredClone?: boolean
15
15
  mapsAsObjects?: boolean
16
16
  variableMapSize?: boolean
17
+ coercibleKeyAsNumber?: boolean
17
18
  copyBuffers?: boolean
18
19
  bundleStrings?: boolean
19
20
  useTimestamp32?: boolean
@@ -32,8 +33,8 @@ export interface Options {
32
33
  onInvalidDate?: () => any
33
34
  }
34
35
  interface Extension {
35
- Class: Function
36
- type: number
36
+ Class?: Function
37
+ type?: number
37
38
  pack?(value: any): Buffer | Uint8Array
38
39
  unpack?(messagePack: Buffer | Uint8Array): any
39
40
  read?(datum: any): any
package/index.d.ts CHANGED
@@ -7,13 +7,14 @@ export enum FLOAT32_OPTIONS {
7
7
 
8
8
  export interface Options {
9
9
  useFloat32?: FLOAT32_OPTIONS
10
- useRecords?: boolean
10
+ useRecords?: boolean | ((value:any)=> boolean)
11
11
  structures?: {}[]
12
12
  moreTypes?: boolean
13
13
  sequential?: boolean
14
14
  structuredClone?: boolean
15
15
  mapsAsObjects?: boolean
16
16
  variableMapSize?: boolean
17
+ coercibleKeyAsNumber?: boolean
17
18
  copyBuffers?: boolean
18
19
  bundleStrings?: boolean
19
20
  useTimestamp32?: boolean
@@ -32,8 +33,8 @@ export interface Options {
32
33
  onInvalidDate?: () => any
33
34
  }
34
35
  interface Extension {
35
- Class: Function
36
- type: number
36
+ Class?: Function
37
+ type?: number
37
38
  pack?(value: any): Buffer | Uint8Array
38
39
  unpack?(messagePack: Buffer | Uint8Array): any
39
40
  read?(datum: any): any
package/pack.js CHANGED
@@ -383,7 +383,7 @@ export class Packr extends Unpackr {
383
383
  targetView.setFloat64(position, value)
384
384
  position += 8
385
385
  }
386
- } else if (type === 'object') {
386
+ } else if (type === 'object' || type === 'function') {
387
387
  if (!value)
388
388
  target[position++] = 0xc0
389
389
  else {
@@ -490,6 +490,11 @@ export class Packr extends Unpackr {
490
490
  } else {
491
491
  if (value.toJSON) // use this as an alternate mechanism for expressing how to serialize
492
492
  return pack(value.toJSON());
493
+
494
+ // if there is a writeFunction, use it, otherwise just encode as undefined
495
+ if (type === 'function')
496
+ return pack(this.writeFunction && this.writeFunction(value));
497
+
493
498
  // no extension found, write as object
494
499
  writeObject(value, !value.hasOwnProperty) // if it doesn't have hasOwnProperty, don't do hasOwnProperty checks
495
500
  }
@@ -524,14 +529,12 @@ export class Packr extends Unpackr {
524
529
  target[position++] = 0
525
530
  target[position++] = 0
526
531
  }
527
- } else if (type === 'function') {
528
- pack(this.writeFunction && this.writeFunction()) // if there is a writeFunction, use it, otherwise just encode as undefined
529
532
  } else {
530
533
  throw new Error('Unknown type: ' + type)
531
534
  }
532
535
  }
533
536
 
534
- const writeObject = this.useRecords === false ? this.variableMapSize ? (object) => {
537
+ const writePlainObject = (this.variableMapSize || this.coercibleKeyAsNumber) ? (object) => {
535
538
  // this method is slightly slower, but generates "preferred serialization" (optimally small for smaller objects)
536
539
  let keys = Object.keys(object)
537
540
  let length = keys.length
@@ -547,9 +550,19 @@ export class Packr extends Unpackr {
547
550
  position += 4
548
551
  }
549
552
  let key
550
- for (let i = 0; i < length; i++) {
551
- pack(key = keys[i])
552
- pack(object[key])
553
+ if (this.coercibleKeyAsNumber) {
554
+ for (let i = 0; i < length; i++) {
555
+ key = keys[i]
556
+ let num = Number(key)
557
+ pack(isNaN(num) ? key : num)
558
+ pack(object[key])
559
+ }
560
+
561
+ } else {
562
+ for (let i = 0; i < length; i++) {
563
+ pack(key = keys[i])
564
+ pack(object[key])
565
+ }
553
566
  }
554
567
  } :
555
568
  (object, safePrototype) => {
@@ -566,7 +579,9 @@ export class Packr extends Unpackr {
566
579
  }
567
580
  target[objectOffset++ + start] = size >> 8
568
581
  target[objectOffset + start] = size & 0xff
569
- } :
582
+ }
583
+
584
+ const writeRecord = this.useRecords === false ? writePlainObject :
570
585
  (options.progressiveRecords && !useTwoByteRecords) ? // this is about 2% faster for highly stable structures, since it only requires one for-in loop (but much more expensive when new structure needs to be written)
571
586
  (object, safePrototype) => {
572
587
  let nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null))
@@ -638,6 +653,14 @@ export class Packr extends Unpackr {
638
653
  if (safePrototype || object.hasOwnProperty(key))
639
654
  pack(object[key])
640
655
  }
656
+
657
+ // craete reference to useRecords if useRecords is a function
658
+ const checkUseRecords = typeof this.useRecords == 'function' && this.useRecords;
659
+
660
+ const writeObject = checkUseRecords ? (object, safePrototype) => {
661
+ checkUseRecords(object) ? writeRecord(object,safePrototype) : writePlainObject(object,safePrototype)
662
+ } : writeRecord
663
+
641
664
  const makeRoom = (end) => {
642
665
  let newSize
643
666
  if (end > 0x1000000) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "msgpackr",
3
3
  "author": "Kris Zyp",
4
- "version": "1.9.2",
4
+ "version": "1.9.4",
5
5
  "description": "Ultra-fast MessagePack implementation with extensions for records and structured cloning",
6
6
  "license": "MIT",
7
7
  "types": "./index.d.ts",
package/unpack.js CHANGED
@@ -988,10 +988,10 @@ const recordDefinition = (id, highByte) => {
988
988
  currentExtensions[0] = () => {} // notepack defines extension 0 to mean undefined, so use that as the default here
989
989
  currentExtensions[0].noBuffer = true
990
990
 
991
- let glbl = typeof globalThis === 'object' ? globalThis : window;
991
+ let errors = { Error, TypeError, ReferenceError };
992
992
  currentExtensions[0x65] = () => {
993
993
  let data = read()
994
- return (glbl[data[0]] || Error)(data[1])
994
+ return (errors[data[0]] || Error)(data[1])
995
995
  }
996
996
 
997
997
  currentExtensions[0x69] = (data) => {
@@ -1029,6 +1029,7 @@ currentExtensions[0x73] = () => new Set(read())
1029
1029
 
1030
1030
  export const typedArrays = ['Int8','Uint8','Uint8Clamped','Int16','Uint16','Int32','Uint32','Float32','Float64','BigInt64','BigUint64'].map(type => type + 'Array')
1031
1031
 
1032
+ let glbl = typeof globalThis === 'object' ? globalThis : window;
1032
1033
  currentExtensions[0x74] = (data) => {
1033
1034
  let typeCode = data[0]
1034
1035
  let typedArrayName = typedArrays[typeCode]