@webvpn/dgram 0.0.1 → 0.2.0

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.
Files changed (91) hide show
  1. package/build/index.cjs +2235 -2327
  2. package/build/index.cjs.map +1 -1
  3. package/build/index.d.ts +5 -184
  4. package/build/index.js +10094 -2664
  5. package/build/index.js.map +1 -1
  6. package/package.json +4 -6
  7. package/src/index.ts +5 -698
  8. package/vite-plugin-node-stdlib-browser.cjs +61 -61
  9. package/vite.config.ts +29 -29
  10. package/build/index.mjs +0 -3252
  11. package/build/index.mjs.map +0 -1
  12. package/build/test.d.ts +0 -1
  13. package/build/utils.d.ts +0 -13
  14. package/index.html +0 -11
  15. package/src/chrome-dgram.js +0 -503
  16. package/src/flatbuffers/client-packet-type.ts +0 -40
  17. package/src/flatbuffers/client-packet.ts +0 -162
  18. package/src/flatbuffers/client-tcpserver-close.ts +0 -93
  19. package/src/flatbuffers/client-tcpserver-get-connections.ts +0 -93
  20. package/src/flatbuffers/client-tcpserver-listen.ts +0 -211
  21. package/src/flatbuffers/client-tcpserver.ts +0 -159
  22. package/src/flatbuffers/client-tcpsocket-connect.ts +0 -253
  23. package/src/flatbuffers/client-tcpsocket-destroy-soon.ts +0 -75
  24. package/src/flatbuffers/client-tcpsocket-destroy.ts +0 -93
  25. package/src/flatbuffers/client-tcpsocket-end.ts +0 -93
  26. package/src/flatbuffers/client-tcpsocket-pause.ts +0 -75
  27. package/src/flatbuffers/client-tcpsocket-reset-and-destroy.ts +0 -75
  28. package/src/flatbuffers/client-tcpsocket-resume.ts +0 -75
  29. package/src/flatbuffers/client-tcpsocket-set-encoding.ts +0 -93
  30. package/src/flatbuffers/client-tcpsocket-set-keep-alive.ts +0 -103
  31. package/src/flatbuffers/client-tcpsocket-set-no-delay.ts +0 -89
  32. package/src/flatbuffers/client-tcpsocket-set-timeout.ts +0 -107
  33. package/src/flatbuffers/client-tcpsocket-write.ts +0 -147
  34. package/src/flatbuffers/client-tcpsocket.ts +0 -89
  35. package/src/flatbuffers/client-udpsocket-add-membership.ts +0 -110
  36. package/src/flatbuffers/client-udpsocket-add-source-specific-membership.ts +0 -127
  37. package/src/flatbuffers/client-udpsocket-bind.ts +0 -138
  38. package/src/flatbuffers/client-udpsocket-close.ts +0 -93
  39. package/src/flatbuffers/client-udpsocket-disconnect.ts +0 -75
  40. package/src/flatbuffers/client-udpsocket-drop-membership.ts +0 -110
  41. package/src/flatbuffers/client-udpsocket-drop-source-specific-membership.ts +0 -127
  42. package/src/flatbuffers/client-udpsocket-send.ts +0 -189
  43. package/src/flatbuffers/client-udpsocket-set-broadcast.ts +0 -89
  44. package/src/flatbuffers/client-udpsocket-set-multicast-interface.ts +0 -93
  45. package/src/flatbuffers/client-udpsocket-set-multicast-loopback.ts +0 -89
  46. package/src/flatbuffers/client-udpsocket-set-multicast-ttl.ts +0 -89
  47. package/src/flatbuffers/client-udpsocket-set-recv-buffer-size.ts +0 -89
  48. package/src/flatbuffers/client-udpsocket-set-send-buffer-size.ts +0 -89
  49. package/src/flatbuffers/client-udpsocket-set-ttl.ts +0 -89
  50. package/src/flatbuffers/client-udpsocket.ts +0 -149
  51. package/src/flatbuffers/packet-handshake-type.ts +0 -9
  52. package/src/flatbuffers/packet.ts +0 -210
  53. package/src/flatbuffers/schema.ts +0 -75
  54. package/src/flatbuffers/server-packet-type.ts +0 -38
  55. package/src/flatbuffers/server-packet.ts +0 -158
  56. package/src/flatbuffers/server-tcpserver-callback-close.ts +0 -93
  57. package/src/flatbuffers/server-tcpserver-callback-get-connections.ts +0 -124
  58. package/src/flatbuffers/server-tcpserver-callback-listen.ts +0 -141
  59. package/src/flatbuffers/server-tcpserver-event-close.ts +0 -75
  60. package/src/flatbuffers/server-tcpserver-event-drop.ts +0 -75
  61. package/src/flatbuffers/server-tcpserver-event-error.ts +0 -75
  62. package/src/flatbuffers/server-tcpserver-event-listening.ts +0 -124
  63. package/src/flatbuffers/server-tcpsocket-callback-connect.ts +0 -189
  64. package/src/flatbuffers/server-tcpsocket-callback-end.ts +0 -93
  65. package/src/flatbuffers/server-tcpsocket-callback-set-timeout.ts +0 -93
  66. package/src/flatbuffers/server-tcpsocket-callback-write.ts +0 -93
  67. package/src/flatbuffers/server-tcpsocket-event-close.ts +0 -89
  68. package/src/flatbuffers/server-tcpsocket-event-connect.ts +0 -172
  69. package/src/flatbuffers/server-tcpsocket-event-connection-attempt-failed.ts +0 -138
  70. package/src/flatbuffers/server-tcpsocket-event-connection-attempt-timeout.ts +0 -121
  71. package/src/flatbuffers/server-tcpsocket-event-connection-attempt.ts +0 -121
  72. package/src/flatbuffers/server-tcpsocket-event-data.ts +0 -113
  73. package/src/flatbuffers/server-tcpsocket-event-drain.ts +0 -75
  74. package/src/flatbuffers/server-tcpsocket-event-end.ts +0 -75
  75. package/src/flatbuffers/server-tcpsocket-event-error.ts +0 -93
  76. package/src/flatbuffers/server-tcpsocket-event-lookup.ts +0 -141
  77. package/src/flatbuffers/server-tcpsocket-event-ready.ts +0 -75
  78. package/src/flatbuffers/server-tcpsocket-event-timeout.ts +0 -75
  79. package/src/flatbuffers/server-udpsocket-callback-bind.ts +0 -141
  80. package/src/flatbuffers/server-udpsocket-callback-close.ts +0 -93
  81. package/src/flatbuffers/server-udpsocket-callback-connect.ts +0 -141
  82. package/src/flatbuffers/server-udpsocket-callback-send.ts +0 -93
  83. package/src/flatbuffers/server-udpsocket-event-close.ts +0 -75
  84. package/src/flatbuffers/server-udpsocket-event-connect.ts +0 -75
  85. package/src/flatbuffers/server-udpsocket-event-error.ts +0 -93
  86. package/src/flatbuffers/server-udpsocket-event-listening.ts +0 -124
  87. package/src/flatbuffers/server-udpsocket-event-message.ts +0 -175
  88. package/src/net.js +0 -2442
  89. package/src/test.ts +0 -34
  90. package/src/types.ts +0 -16
  91. package/src/utils.ts +0 -45
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../node_modules/events/events.js","../node_modules/msgpackr/unpack.js","../node_modules/msgpackr/pack.js","../node_modules/osra/build/index.js","../node_modules/@fkn/lib/build/index.js","../src/utils.ts","../src/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","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, options) {\n\t\treturn this.unpack(source, options)\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 asSafeString(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\nfunction asSafeString(property) {\n\t// protect against expensive (DoS) string conversions\n\tif (typeof property === 'string') return property;\n\tif (typeof property === 'number' || typeof property === 'boolean' || typeof property === 'bigint') return property.toString();\n\tif (property == null) return property + '';\n\tthrow new Error('Invalid property type for record', typeof property);\n}\n// the registration of the record definition extension (as \"r\")\nconst recordDefinition = (id, highByte) => {\n\tlet structure = read().map(asSafeString) // ensure that all keys are strings and\n\t// 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\ncurrentExtensions[0x42] = (data) => {\n\t// decode bigint\n\tlet length = data.length;\n\tlet value = BigInt(data[0] & 0x80 ? data[0] - 0x100 : data[0]);\n\tfor (let i = 1; i < length; i++) {\n\t\tvalue <<= 8n;\n\t\tvalue += BigInt(data[i]);\n\t}\n\treturn value;\n}\n\nlet errors = { Error, TypeError, ReferenceError };\ncurrentExtensions[0x65] = () => {\n\tlet data = read()\n\treturn (errors[data[0]] || Error)(data[1], { cause: data[2] })\n}\n\ncurrentExtensions[0x69] = (data) => {\n\t// id extension (for structured clones)\n\tif (currentUnpackr.structuredClone === false) throw new Error('Structured clone extension is disabled')\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\tif (currentUnpackr.structuredClone === false) throw new Error('Structured clone extension is disabled')\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\tif (typeCode === 16) {\n\t\t\tlet ab = new ArrayBuffer(data.length - 1)\n\t\t\tlet u8 = new Uint8Array(ab)\n\t\t\tu8.set(data.subarray(1))\n\t\t\treturn ab;\n\t\t}\n\t\tthrow new Error('Could not find typed array for code ' + typeCode)\n\t}\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","import { Unpackr, mult10, C1Type, typedArrays, addExtension as unpackAddExtension } from './unpack.js'\nlet textEncoder\ntry {\n\ttextEncoder = new TextEncoder()\n} catch (error) {}\nlet extensions, extensionClasses\nconst hasNodeBuffer = typeof Buffer !== 'undefined'\nconst ByteArrayAllocate = hasNodeBuffer ?\n\tfunction(length) { return Buffer.allocUnsafeSlow(length) } : Uint8Array\nconst ByteArray = hasNodeBuffer ? Buffer : Uint8Array\nconst MAX_BUFFER_SIZE = hasNodeBuffer ? 0x100000000 : 0x7fd00000\nlet target, keysTarget\nlet targetView\nlet position = 0\nlet safeEnd\nlet bundledStrings = null\nlet writeStructSlots\nconst MAX_BUNDLE_SIZE = 0x5500 // maximum characters such that the encoded bytes fits in 16 bits.\nconst hasNonLatin = /[\\u0080-\\uFFFF]/\nexport const RECORD_SYMBOL = Symbol('record-id')\nexport class Packr extends Unpackr {\n\tconstructor(options) {\n\t\tsuper(options)\n\t\tthis.offset = 0\n\t\tlet typeBuffer\n\t\tlet start\n\t\tlet hasSharedUpdate\n\t\tlet structures\n\t\tlet referenceMap\n\t\tlet encodeUtf8 = ByteArray.prototype.utf8Write ? function(string, position) {\n\t\t\treturn target.utf8Write(string, position, 0xffffffff)\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 packr = this\n\t\tif (!options)\n\t\t\toptions = {}\n\t\tlet isSequential = options && options.sequential\n\t\tlet hasSharedStructures = options.structures || options.saveStructures\n\t\tlet maxSharedStructures = options.maxSharedStructures\n\t\tif (maxSharedStructures == null)\n\t\t\tmaxSharedStructures = hasSharedStructures ? 32 : 0\n\t\tif (maxSharedStructures > 8160)\n\t\t\tthrow new Error('Maximum maxSharedStructure is 8160')\n\t\tif (options.structuredClone && options.moreTypes == undefined) {\n\t\t\tthis.moreTypes = true\n\t\t}\n\t\tlet maxOwnStructures = options.maxOwnStructures\n\t\tif (maxOwnStructures == null)\n\t\t\tmaxOwnStructures = hasSharedStructures ? 32 : 64\n\t\tif (!this.structures && options.useRecords != false)\n\t\t\tthis.structures = []\n\t\t// two byte record ids for shared structures\n\t\tlet useTwoByteRecords = maxSharedStructures > 32 || (maxOwnStructures + maxSharedStructures > 64)\t\t\n\t\tlet sharedLimitId = maxSharedStructures + 0x40\n\t\tlet maxStructureId = maxSharedStructures + maxOwnStructures + 0x40\n\t\tif (maxStructureId > 8256) {\n\t\t\tthrow new Error('Maximum maxSharedStructure + maxOwnStructure is 8192')\n\t\t}\n\t\tlet recordIdsToRemove = []\n\t\tlet transitionsCount = 0\n\t\tlet serializationsSinceTransitionRebuild = 0\n\n\t\tthis.pack = this.encode = function(value, encodeOptions) {\n\t\t\tif (!target) {\n\t\t\t\ttarget = new ByteArrayAllocate(8192)\n\t\t\t\ttargetView = target.dataView || (target.dataView = 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 = target.dataView || (target.dataView = 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\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 (encodeOptions & RESERVE_START_SPACE) position += (encodeOptions & 0xff)\n\t\t\treferenceMap = packr.structuredClone ? new Map() : null\n\t\t\tif (packr.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\t\t\tstructures = packr.structures\n\t\t\tif (structures) {\n\t\t\t\tif (structures.uninitialized)\n\t\t\t\t\tstructures = packr._mergeStructures(packr.getStructures())\n\t\t\t\tlet sharedLength = structures.sharedLength || 0\n\t\t\t\tif (sharedLength > maxSharedStructures) {\n\t\t\t\t\t//if (maxSharedStructures <= 32 && structures.sharedLength > 32) // TODO: could support this, but would need to update the limit ids\n\t\t\t\t\tthrow new Error('Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to ' + structures.sharedLength)\n\t\t\t\t}\n\t\t\t\tif (!structures.transitions) {\n\t\t\t\t\t// rebuild our structure transitions\n\t\t\t\t\tstructures.transitions = Object.create(null)\n\t\t\t\t\tfor (let i = 0; i < sharedLength; i++) {\n\t\t\t\t\t\tlet keys = structures[i]\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 = structures.transitions\n\t\t\t\t\t\tfor (let j = 0, l = keys.length; j < l; j++) {\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 + 0x40\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastNamedStructuresLength = sharedLength\n\t\t\t\t}\n\t\t\t\tif (!isSequential) {\n\t\t\t\t\tstructures.nextId = sharedLength + 0x40\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hasSharedUpdate)\n\t\t\t\thasSharedUpdate = false\n\t\t\tlet encodingError;\n\t\t\ttry {\n\t\t\t\tif (packr.randomAccessStructure && value && value.constructor && value.constructor === Object)\n\t\t\t\t\twriteStruct(value);\n\t\t\t\telse\n\t\t\t\t\tpack(value)\n\t\t\t\tlet lastBundle = bundledStrings;\n\t\t\t\tif (bundledStrings)\n\t\t\t\t\twriteBundles(start, pack, 0)\n\t\t\t\tif (referenceMap && referenceMap.idsToInsert) {\n\t\t\t\t\tlet idsToInsert = referenceMap.idsToInsert.sort((a, b) => a.offset > b.offset ? 1 : -1);\n\t\t\t\t\tlet i = idsToInsert.length;\n\t\t\t\t\tlet incrementPosition = -1;\n\t\t\t\t\twhile (lastBundle && i > 0) {\n\t\t\t\t\t\tlet insertionPoint = idsToInsert[--i].offset + start;\n\t\t\t\t\t\tif (insertionPoint < (lastBundle.stringsPosition + start) && incrementPosition === -1)\n\t\t\t\t\t\t\tincrementPosition = 0;\n\t\t\t\t\t\tif (insertionPoint > (lastBundle.position + start)) {\n\t\t\t\t\t\t\tif (incrementPosition >= 0)\n\t\t\t\t\t\t\t\tincrementPosition += 6;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (incrementPosition >= 0) {\n\t\t\t\t\t\t\t\t// update the bundle reference now\n\t\t\t\t\t\t\t\ttargetView.setUint32(lastBundle.position + start,\n\t\t\t\t\t\t\t\t\ttargetView.getUint32(lastBundle.position + start) + incrementPosition)\n\t\t\t\t\t\t\t\tincrementPosition = -1; // reset\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlastBundle = lastBundle.previous;\n\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (incrementPosition >= 0 && lastBundle) {\n\t\t\t\t\t\t// update the bundle reference now\n\t\t\t\t\t\ttargetView.setUint32(lastBundle.position + start,\n\t\t\t\t\t\t\ttargetView.getUint32(lastBundle.position + start) + incrementPosition)\n\t\t\t\t\t}\n\t\t\t\t\tposition += idsToInsert.length * 6;\n\t\t\t\t\tif (position > safeEnd)\n\t\t\t\t\t\tmakeRoom(position)\n\t\t\t\t\tpackr.offset = position\n\t\t\t\t\tlet serialized = insertIds(target.subarray(start, position), idsToInsert)\n\t\t\t\t\treferenceMap = null\n\t\t\t\t\treturn serialized\n\t\t\t\t}\n\t\t\t\tpackr.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 (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 pack again in saveStructures, so we get the buffer now\n\t\t\t} catch(error) {\n\t\t\t\tencodingError = error;\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (structures) {\n\t\t\t\t\tresetStructures();\n\t\t\t\t\tif (hasSharedUpdate && packr.saveStructures) {\n\t\t\t\t\t\tlet sharedLength = structures.sharedLength || 0\n\t\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\t\tlet returnBuffer = target.subarray(start, position)\n\t\t\t\t\t\tlet newSharedData = prepareStructures(structures, packr);\n\t\t\t\t\t\tif (!encodingError) { // TODO: If there is an encoding error, should make the structures as uninitialized so they get rebuilt next time\n\t\t\t\t\t\t\tif (packr.saveStructures(newSharedData, newSharedData.isCompatible) === false) {\n\t\t\t\t\t\t\t\t// get updated structures and try again if the update failed\n\t\t\t\t\t\t\t\treturn packr.pack(value, encodeOptions)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpackr.lastNamedStructuresLength = sharedLength\n\t\t\t\t\t\t\t// don't keep large buffers around\n\t\t\t\t\t\t\tif (target.length > 0x40000000) target = null\n\t\t\t\t\t\t\treturn returnBuffer\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// don't keep large buffers around, they take too much memory and cause problems (limit at 1GB)\n\t\t\t\tif (target.length > 0x40000000) target = null\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\tconst resetStructures = () => {\n\t\t\tif (serializationsSinceTransitionRebuild < 10)\n\t\t\t\tserializationsSinceTransitionRebuild++\n\t\t\tlet sharedLength = structures.sharedLength || 0\n\t\t\tif (structures.length > sharedLength && !isSequential)\n\t\t\t\tstructures.length = sharedLength\n\t\t\tif (transitionsCount > 10000) {\n\t\t\t\t// force a rebuild occasionally after a lot of transitions so it can get cleaned up\n\t\t\t\tstructures.transitions = null\n\t\t\t\tserializationsSinceTransitionRebuild = 0\n\t\t\t\ttransitionsCount = 0\n\t\t\t\tif (recordIdsToRemove.length > 0)\n\t\t\t\t\trecordIdsToRemove = []\n\t\t\t} else if (recordIdsToRemove.length > 0 && !isSequential) {\n\t\t\t\tfor (let i = 0, l = recordIdsToRemove.length; i < l; i++) {\n\t\t\t\t\trecordIdsToRemove[i][RECORD_SYMBOL] = 0\n\t\t\t\t}\n\t\t\t\trecordIdsToRemove = []\n\t\t\t}\n\t\t}\n\t\tconst packArray = (value) => {\n\t\t\tvar length = value.length\n\t\t\tif (length < 0x10) {\n\t\t\t\ttarget[position++] = 0x90 | length\n\t\t\t} else if (length < 0x10000) {\n\t\t\t\ttarget[position++] = 0xdc\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++] = 0xdd\n\t\t\t\ttargetView.setUint32(position, length)\n\t\t\t\tposition += 4\n\t\t\t}\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tpack(value[i])\n\t\t\t}\n\t\t}\n\t\tconst pack = (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\tlet strLength = value.length\n\t\t\t\tif (bundledStrings && strLength >= 4 && strLength < 0x1000) {\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\tlet lastBundle\n\t\t\t\t\t\tif (bundledStrings.position) { // here we use the 0x62 extension to write the last bundle and reserve space for the reference pointer to the next/current bundle\n\t\t\t\t\t\t\tlastBundle = bundledStrings\n\t\t\t\t\t\t\ttarget[position] = 0xc8 // ext 16\n\t\t\t\t\t\t\tposition += 3 // reserve for the writing bundle size\n\t\t\t\t\t\t\ttarget[position++] = 0x62 // 'b'\n\t\t\t\t\t\t\textStart = position - start\n\t\t\t\t\t\t\tposition += 4 // reserve for writing bundle reference\n\t\t\t\t\t\t\twriteBundles(start, pack, 0) // write the last bundles\n\t\t\t\t\t\t\ttargetView.setUint16(extStart + start - 3, position - start - extStart)\n\t\t\t\t\t\t} else { // here we use the 0x62 extension just to reserve the space for the reference pointer to the bundle (will be updated once the bundle is written)\n\t\t\t\t\t\t\ttarget[position++] = 0xd6 // fixext 4\n\t\t\t\t\t\t\ttarget[position++] = 0x62 // 'b'\n\t\t\t\t\t\t\textStart = position - start\n\t\t\t\t\t\t\tposition += 4 // reserve for writing bundle reference\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbundledStrings = ['', ''] // create new ones\n\t\t\t\t\t\tbundledStrings.previous = lastBundle;\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++] = 0xc1\n\t\t\t\t\tpack(twoByte ? -strLength : 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)\n\t\t\t\t}\n\n\t\t\t\tif (length < 0x20) {\n\t\t\t\t\ttarget[position++] = 0xa0 | 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++] = 0xd9\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++] = 0xda\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++] = 0xdb\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 (value >>> 0 === value) {// positive integer, 32-bit or less\n\t\t\t\t\t// positive uint\n\t\t\t\t\tif (value < 0x20 || (value < 0x80 && this.useRecords === false) || (value < 0x40 && !this.randomAccessStructure)) {\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++] = 0xcc\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++] = 0xcd\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++] = 0xce\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 (value >> 0 === value) { // negative integer\n\t\t\t\t\tif (value >= -0x20) {\n\t\t\t\t\t\ttarget[position++] = 0x100 + value\n\t\t\t\t\t} else if (value >= -0x80) {\n\t\t\t\t\t\ttarget[position++] = 0xd0\n\t\t\t\t\t\ttarget[position++] = value + 0x100\n\t\t\t\t\t} else if (value >= -0x8000) {\n\t\t\t\t\t\ttarget[position++] = 0xd1\n\t\t\t\t\t\ttargetView.setInt16(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++] = 0xd2\n\t\t\t\t\t\ttargetView.setInt32(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++] = 0xca\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++] = 0xcb\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' || type === 'function') {\n\t\t\t\tif (!value)\n\t\t\t\t\ttarget[position++] = 0xc0\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\tif (!referee.id) {\n\t\t\t\t\t\t\t\tlet idsToInsert = referenceMap.idsToInsert || (referenceMap.idsToInsert = [])\n\t\t\t\t\t\t\t\treferee.id = idsToInsert.push(referee)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttarget[position++] = 0xd6 // fixext 4\n\t\t\t\t\t\t\ttarget[position++] = 0x70 // \"p\" for pointer\n\t\t\t\t\t\t\ttargetView.setUint32(position, referee.id)\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\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\tpackArray(value)\n\t\t\t\t\t} else if (constructor === Map) {\n\t\t\t\t\t\tif (this.mapAsEmptyObject) target[position++] = 0x80\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlength = value.size\n\t\t\t\t\t\t\tif (length < 0x10) {\n\t\t\t\t\t\t\t\ttarget[position++] = 0x80 | length\n\t\t\t\t\t\t\t} else if (length < 0x10000) {\n\t\t\t\t\t\t\t\ttarget[position++] = 0xde\n\t\t\t\t\t\t\t\ttarget[position++] = length >> 8\n\t\t\t\t\t\t\t\ttarget[position++] = length & 0xff\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttarget[position++] = 0xdf\n\t\t\t\t\t\t\t\ttargetView.setUint32(position, length)\n\t\t\t\t\t\t\t\tposition += 4\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (let [key, entryValue] of value) {\n\t\t\t\t\t\t\t\tpack(key)\n\t\t\t\t\t\t\t\tpack(entryValue)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\t\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\tif (extension.write) {\n\t\t\t\t\t\t\t\t\tif (extension.type) {\n\t\t\t\t\t\t\t\t\t\ttarget[position++] = 0xd4 // one byte \"tag\" extension\n\t\t\t\t\t\t\t\t\t\ttarget[position++] = extension.type\n\t\t\t\t\t\t\t\t\t\ttarget[position++] = 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlet writeResult = extension.write.call(this, value)\n\t\t\t\t\t\t\t\t\tif (writeResult === value) { // avoid infinite recursion\n\t\t\t\t\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\t\t\t\t\tpackArray(value)\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\twriteObject(value)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tpack(writeResult)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlet currentTarget = target\n\t\t\t\t\t\t\t\tlet currentTargetView = targetView\n\t\t\t\t\t\t\t\tlet currentPosition = position\n\t\t\t\t\t\t\t\ttarget = null\n\t\t\t\t\t\t\t\tlet result\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tresult = extension.pack.call(this, value, (size) => {\n\t\t\t\t\t\t\t\t\t\t// restore target and use it\n\t\t\t\t\t\t\t\t\t\ttarget = currentTarget\n\t\t\t\t\t\t\t\t\t\tcurrentTarget = null\n\t\t\t\t\t\t\t\t\t\tposition += size\n\t\t\t\t\t\t\t\t\t\tif (position > safeEnd)\n\t\t\t\t\t\t\t\t\t\t\tmakeRoom(position)\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\ttarget, targetView, position: position - size\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, pack)\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\t// restore current target information (unless already restored)\n\t\t\t\t\t\t\t\t\tif (currentTarget) {\n\t\t\t\t\t\t\t\t\t\ttarget = currentTarget\n\t\t\t\t\t\t\t\t\t\ttargetView = currentTargetView\n\t\t\t\t\t\t\t\t\t\tposition = currentPosition\n\t\t\t\t\t\t\t\t\t\tsafeEnd = target.length - 10\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\tif (result.length + position > safeEnd)\n\t\t\t\t\t\t\t\t\t\tmakeRoom(result.length + position)\n\t\t\t\t\t\t\t\t\tposition = writeExtensionData(result, target, position, extension.type)\n\t\t\t\t\t\t\t\t}\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\t// check isArray after extensions, because extensions can extend Array\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tpackArray(value)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// use this as an alternate mechanism for expressing how to serialize\n\t\t\t\t\t\t\tif (value.toJSON) {\n\t\t\t\t\t\t\t\tconst json = value.toJSON()\n\t\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\t\tif (json !== value)\n\t\t\t\t\t\t\t\t\treturn pack(json)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// if there is a writeFunction, use it, otherwise just encode as undefined\n\t\t\t\t\t\t\tif (type === 'function')\n\t\t\t\t\t\t\t\treturn pack(this.writeFunction && this.writeFunction(value));\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// no extension found, write as plain object\n\t\t\t\t\t\t\twriteObject(value)\n\t\t\t\t\t\t}\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 ? 0xc3 : 0xc2\n\t\t\t} else if (type === 'bigint') {\n\t\t\t\tif (value < (BigInt(1)<<BigInt(63)) && value >= -(BigInt(1)<<BigInt(63))) {\n\t\t\t\t\t// use a signed int as long as it fits\n\t\t\t\t\ttarget[position++] = 0xd3\n\t\t\t\t\ttargetView.setBigInt64(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++] = 0xcf\n\t\t\t\t\ttargetView.setBigUint64(position, value)\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++] = 0xcb\n\t\t\t\t\t\ttargetView.setFloat64(position, Number(value))\n\t\t\t\t\t} else if (this.useBigIntExtension && value < 2n**(1023n) && value > -(2n**(1023n))) {\n\t\t\t\t\t\ttarget[position++] = 0xc7\n\t\t\t\t\t\tposition++;\n\t\t\t\t\t\ttarget[position++] = 0x42 // \"B\" for BigInt\n\t\t\t\t\t\tlet bytes = [];\n\t\t\t\t\t\tlet alignedSign;\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tlet byte = value & 0xffn;\n\t\t\t\t\t\t\talignedSign = (byte & 0x80n) === (value < 0n ? 0x80n : 0n);\n\t\t\t\t\t\t\tbytes.push(byte);\n\t\t\t\t\t\t\tvalue >>= 8n;\n\t\t\t\t\t\t} while (!((value === 0n || value === -1n) && alignedSign));\n\t\t\t\t\t\ttarget[position-2] = bytes.length;\n\t\t\t\t\t\tfor (let i = bytes.length; i > 0;) {\n\t\t\t\t\t\t\ttarget[position++] = Number(bytes[--i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new RangeError(value + ' was too large to fit in MessagePack 64-bit integer format, use' +\n\t\t\t\t\t\t\t' useBigIntExtension or set largeBigIntToFloat to convert to float-64')\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\tif (this.encodeUndefinedAsNil)\n\t\t\t\t\ttarget[position++] = 0xc0\n\t\t\t\telse {\n\t\t\t\t\ttarget[position++] = 0xd4 // a number of implementations use fixext1 with type 0, data 0 to denote undefined, so we follow suite\n\t\t\t\t\ttarget[position++] = 0\n\t\t\t\t\ttarget[position++] = 0\n\t\t\t\t}\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 writePlainObject = (this.variableMapSize || this.coercibleKeyAsNumber) ? (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 length = keys.length\n\t\t\tif (length < 0x10) {\n\t\t\t\ttarget[position++] = 0x80 | length\n\t\t\t} else if (length < 0x10000) {\n\t\t\t\ttarget[position++] = 0xde\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++] = 0xdf\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 (this.coercibleKeyAsNumber) {\n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tkey = keys[i]\n\t\t\t\t\tlet num = Number(key)\n\t\t\t\t\tpack(isNaN(num) ? key : num)\n\t\t\t\t\tpack(object[key])\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\tpack(key = keys[i])\n\t\t\t\t\tpack(object[key])\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\t\t(object) => {\n\t\t\ttarget[position++] = 0xde // always using 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\tfor (let key in object) {\n\t\t\t\tif (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) {\n\t\t\t\t\tpack(key)\n\t\t\t\t\tpack(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\n\t\tconst writeRecord = this.useRecords === false ? writePlainObject :\n\t\t(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)\n\t\t(object) => {\n\t\t\tlet nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null))\n\t\t\tlet objectOffset = position++ - start\n\t\t\tlet wroteKeys\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\tnextTransition = transition[key]\n\t\t\t\t\tif (nextTransition)\n\t\t\t\t\t\ttransition = nextTransition\n\t\t\t\t\telse {\n\t\t\t\t\t\t// record doesn't exist, create full new record and insert it\n\t\t\t\t\t\tlet keys = Object.keys(object)\n\t\t\t\t\t\tlet lastTransition = transition\n\t\t\t\t\t\ttransition = structures.transitions\n\t\t\t\t\t\tlet newTransitions = 0\n\t\t\t\t\t\tfor (let i = 0, l = keys.length; i < l; i++) {\n\t\t\t\t\t\t\tlet key = keys[i]\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\tnewTransitions++\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\tif (objectOffset + start + 1 == position) {\n\t\t\t\t\t\t\t// first key, so we don't need to insert, we can just write record directly\n\t\t\t\t\t\t\tposition--\n\t\t\t\t\t\t\tnewRecord(transition, keys, newTransitions)\n\t\t\t\t\t\t} else // otherwise we need to insert the record, moving existing data after the record\n\t\t\t\t\t\t\tinsertNewRecord(transition, keys, objectOffset, newTransitions)\n\t\t\t\t\t\twroteKeys = true\n\t\t\t\t\t\ttransition = lastTransition[key]\n\t\t\t\t\t}\n\t\t\t\t\tpack(object[key])\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!wroteKeys) {\n\t\t\t\tlet recordId = transition[RECORD_SYMBOL]\n\t\t\t\tif (recordId)\n\t\t\t\t\ttarget[objectOffset + start] = recordId\n\t\t\t\telse\n\t\t\t\t\tinsertNewRecord(transition, Object.keys(object), objectOffset, 0)\n\t\t\t}\n\t\t} :\n\t\t(object) => {\n\t\t\tlet nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null))\n\t\t\tlet newTransitions = 0\n\t\t\tfor (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) {\n\t\t\t\tnextTransition = transition[key]\n\t\t\t\tif (!nextTransition) {\n\t\t\t\t\tnextTransition = transition[key] = Object.create(null)\n\t\t\t\t\tnewTransitions++\n\t\t\t\t}\n\t\t\t\ttransition = nextTransition\n\t\t\t}\n\t\t\tlet recordId = transition[RECORD_SYMBOL]\n\t\t\tif (recordId) {\n\t\t\t\tif (recordId >= 0x60 && useTwoByteRecords) {\n\t\t\t\t\ttarget[position++] = ((recordId -= 0x60) & 0x1f) + 0x60\n\t\t\t\t\ttarget[position++] = recordId >> 5\n\t\t\t\t} else\n\t\t\t\t\ttarget[position++] = recordId\n\t\t\t} else {\n\t\t\t\tnewRecord(transition, transition.__keys__ || Object.keys(object), newTransitions)\n\t\t\t}\n\t\t\t// now write the values\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\tpack(object[key])\n\t\t\t\t}\n\t\t}\n\n\t\t// craete reference to useRecords if useRecords is a function\n\t\tconst checkUseRecords = typeof this.useRecords == 'function' && this.useRecords;\n\t\t\n\t\tconst writeObject = checkUseRecords ? (object) => {\n\t\t\tcheckUseRecords(object) ? writeRecord(object) : writePlainObject(object)\n\t\t} : writeRecord\n\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('Packed 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 = newBuffer.dataView || (newBuffer.dataView = new DataView(newBuffer.buffer, 0, newSize))\n\t\t\tend = Math.min(end, target.length)\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\tconst newRecord = (transition, keys, newTransitions) => {\n\t\t\tlet recordId = structures.nextId\n\t\t\tif (!recordId)\n\t\t\t\trecordId = 0x40\n\t\t\tif (recordId < sharedLimitId && this.shouldShareStructure && !this.shouldShareStructure(keys)) {\n\t\t\t\trecordId = structures.nextOwnId\n\t\t\t\tif (!(recordId < maxStructureId))\n\t\t\t\t\trecordId = sharedLimitId\n\t\t\t\tstructures.nextOwnId = recordId + 1\n\t\t\t} else {\n\t\t\t\tif (recordId >= maxStructureId)// cycle back around\n\t\t\t\t\trecordId = sharedLimitId\n\t\t\t\tstructures.nextId = recordId + 1\n\t\t\t}\n\t\t\tlet highByte = keys.highByte = recordId >= 0x60 && useTwoByteRecords ? (recordId - 0x60) >> 5 : -1\n\t\t\ttransition[RECORD_SYMBOL] = recordId\n\t\t\ttransition.__keys__ = keys\n\t\t\tstructures[recordId - 0x40] = keys\n\n\t\t\tif (recordId < sharedLimitId) {\n\t\t\t\tkeys.isShared = true\n\t\t\t\tstructures.sharedLength = recordId - 0x3f\n\t\t\t\thasSharedUpdate = true\n\t\t\t\tif (highByte >= 0) {\n\t\t\t\t\ttarget[position++] = (recordId & 0x1f) + 0x60\n\t\t\t\t\ttarget[position++] = highByte\n\t\t\t\t} else {\n\t\t\t\t\ttarget[position++] = recordId\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (highByte >= 0) {\n\t\t\t\t\ttarget[position++] = 0xd5 // fixext 2\n\t\t\t\t\ttarget[position++] = 0x72 // \"r\" record defintion extension type\n\t\t\t\t\ttarget[position++] = (recordId & 0x1f) + 0x60\n\t\t\t\t\ttarget[position++] = highByte\n\t\t\t\t} else {\n\t\t\t\t\ttarget[position++] = 0xd4 // fixext 1\n\t\t\t\t\ttarget[position++] = 0x72 // \"r\" record defintion extension type\n\t\t\t\t\ttarget[position++] = recordId\n\t\t\t\t}\n\n\t\t\t\tif (newTransitions)\n\t\t\t\t\ttransitionsCount += serializationsSinceTransitionRebuild * newTransitions\n\t\t\t\t// record the removal of the id, we can maintain our shared structure\n\t\t\t\tif (recordIdsToRemove.length >= maxOwnStructures)\n\t\t\t\t\trecordIdsToRemove.shift()[RECORD_SYMBOL] = 0 // we are cycling back through, and have to remove old ones\n\t\t\t\trecordIdsToRemove.push(transition)\n\t\t\t\tpack(keys)\n\t\t\t}\n\t\t}\n\t\tconst insertNewRecord = (transition, keys, insertionOffset, newTransitions) => {\n\t\t\tlet mainTarget = target\n\t\t\tlet mainPosition = position\n\t\t\tlet mainSafeEnd = safeEnd\n\t\t\tlet mainStart = start\n\t\t\ttarget = keysTarget\n\t\t\tposition = 0\n\t\t\tstart = 0\n\t\t\tif (!target)\n\t\t\t\tkeysTarget = target = new ByteArrayAllocate(8192)\n\t\t\tsafeEnd = target.length - 10\n\t\t\tnewRecord(transition, keys, newTransitions)\n\t\t\tkeysTarget = target\n\t\t\tlet keysPosition = position\n\t\t\ttarget = mainTarget\n\t\t\tposition = mainPosition\n\t\t\tsafeEnd = mainSafeEnd\n\t\t\tstart = mainStart\n\t\t\tif (keysPosition > 1) {\n\t\t\t\tlet newEnd = position + keysPosition - 1\n\t\t\t\tif (newEnd > safeEnd)\n\t\t\t\t\tmakeRoom(newEnd)\n\t\t\t\tlet insertionPosition = insertionOffset + start\n\t\t\t\ttarget.copyWithin(insertionPosition + keysPosition, insertionPosition + 1, position)\n\t\t\t\ttarget.set(keysTarget.slice(0, keysPosition), insertionPosition)\n\t\t\t\tposition = newEnd\n\t\t\t} else {\n\t\t\t\ttarget[insertionOffset + start] = keysTarget[0]\n\t\t\t}\n\t\t}\n\t\tconst writeStruct = (object) => {\n\t\t\tlet newPosition = writeStructSlots(object, target, start, position, structures, makeRoom, (value, newPosition, notifySharedUpdate) => {\n\t\t\t\tif (notifySharedUpdate)\n\t\t\t\t\treturn hasSharedUpdate = true;\n\t\t\t\tposition = newPosition;\n\t\t\t\tlet startTarget = target;\n\t\t\t\tpack(value);\n\t\t\t\tresetStructures();\n\t\t\t\tif (startTarget !== target) {\n\t\t\t\t\treturn { position, targetView, target }; // indicate the buffer was re-allocated\n\t\t\t\t}\n\t\t\t\treturn position;\n\t\t\t}, this);\n\t\t\tif (newPosition === 0) // bail and go to a msgpack object\n\t\t\t\treturn writeObject(object);\n\t\t\tposition = newPosition;\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.typedStructs)\n\t\t\tthis.typedStructs = []\n\t}\n}\n\nfunction copyBinary(source, target, targetOffset, offset, endOffset) {\n\twhile (offset < endOffset) {\n\t\ttarget[targetOffset++] = source[offset++]\n\t}\n}\n\nextensionClasses = [ Date, Set, Error, RegExp, ArrayBuffer, Object.getPrototypeOf(Uint8Array.prototype).constructor /*TypedArray*/, C1Type ]\nextensions = [{\n\tpack(date, allocateForWrite, pack) {\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\tlet { target, targetView, position} = allocateForWrite(6)\n\t\t\ttarget[position++] = 0xd6\n\t\t\ttarget[position++] = 0xff\n\t\t\ttargetView.setUint32(position, seconds)\n\t\t} else if (seconds > 0 && seconds < 0x100000000) {\n\t\t\t// Timestamp 64\n\t\t\tlet { target, targetView, position} = allocateForWrite(10)\n\t\t\ttarget[position++] = 0xd7\n\t\t\ttarget[position++] = 0xff\n\t\t\ttargetView.setUint32(position, date.getMilliseconds() * 4000000 + ((seconds / 1000 / 0x100000000) >> 0))\n\t\t\ttargetView.setUint32(position + 4, seconds)\n\t\t} else if (isNaN(seconds)) {\n\t\t\tif (this.onInvalidDate) {\n\t\t\t\tallocateForWrite(0)\n\t\t\t\treturn pack(this.onInvalidDate())\n\t\t\t}\n\t\t\t// Intentionally invalid timestamp\n\t\t\tlet { target, targetView, position} = allocateForWrite(3)\n\t\t\ttarget[position++] = 0xd4\n\t\t\ttarget[position++] = 0xff\n\t\t\ttarget[position++] = 0xff\n\t\t} else {\n\t\t\t// Timestamp 96\n\t\t\tlet { target, targetView, position} = allocateForWrite(15)\n\t\t\ttarget[position++] = 0xc7\n\t\t\ttarget[position++] = 12\n\t\t\ttarget[position++] = 0xff\n\t\t\ttargetView.setUint32(position, date.getMilliseconds() * 1000000)\n\t\t\ttargetView.setBigInt64(position + 4, BigInt(Math.floor(seconds)))\n\t\t}\n\t}\n}, {\n\tpack(set, allocateForWrite, pack) {\n\t\tif (this.setAsEmptyObject) {\n\t\t\tallocateForWrite(0);\n\t\t\treturn pack({})\n\t\t}\n\t\tlet array = Array.from(set)\n\t\tlet { target, position} = allocateForWrite(this.moreTypes ? 3 : 0)\n\t\tif (this.moreTypes) {\n\t\t\ttarget[position++] = 0xd4\n\t\t\ttarget[position++] = 0x73 // 's' for Set\n\t\t\ttarget[position++] = 0\n\t\t}\n\t\tpack(array)\n\t}\n}, {\n\tpack(error, allocateForWrite, pack) {\n\t\tlet { target, position} = allocateForWrite(this.moreTypes ? 3 : 0)\n\t\tif (this.moreTypes) {\n\t\t\ttarget[position++] = 0xd4\n\t\t\ttarget[position++] = 0x65 // 'e' for error\n\t\t\ttarget[position++] = 0\n\t\t}\n\t\tpack([ error.name, error.message, error.cause ])\n\t}\n}, {\n\tpack(regex, allocateForWrite, pack) {\n\t\tlet { target, position} = allocateForWrite(this.moreTypes ? 3 : 0)\n\t\tif (this.moreTypes) {\n\t\t\ttarget[position++] = 0xd4\n\t\t\ttarget[position++] = 0x78 // 'x' for regeXp\n\t\t\ttarget[position++] = 0\n\t\t}\n\t\tpack([ regex.source, regex.flags ])\n\t}\n}, {\n\tpack(arrayBuffer, allocateForWrite) {\n\t\tif (this.moreTypes)\n\t\t\twriteExtBuffer(arrayBuffer, 0x10, allocateForWrite)\n\t\telse\n\t\t\twriteBuffer(hasNodeBuffer ? Buffer.from(arrayBuffer) : new Uint8Array(arrayBuffer), allocateForWrite)\n\t}\n}, {\n\tpack(typedArray, allocateForWrite) {\n\t\tlet constructor = typedArray.constructor\n\t\tif (constructor !== ByteArray && this.moreTypes)\n\t\t\twriteExtBuffer(typedArray, typedArrays.indexOf(constructor.name), allocateForWrite)\n\t\telse\n\t\t\twriteBuffer(typedArray, allocateForWrite)\n\t}\n}, {\n\tpack(c1, allocateForWrite) { // specific 0xC1 object\n\t\tlet { target, position} = allocateForWrite(1)\n\t\ttarget[position] = 0xc1\n\t}\n}]\n\nfunction writeExtBuffer(typedArray, type, allocateForWrite, encode) {\n\tlet length = typedArray.byteLength\n\tif (length + 1 < 0x100) {\n\t\tvar { target, position } = allocateForWrite(4 + length)\n\t\ttarget[position++] = 0xc7\n\t\ttarget[position++] = length + 1\n\t} else if (length + 1 < 0x10000) {\n\t\tvar { target, position } = allocateForWrite(5 + length)\n\t\ttarget[position++] = 0xc8\n\t\ttarget[position++] = (length + 1) >> 8\n\t\ttarget[position++] = (length + 1) & 0xff\n\t} else {\n\t\tvar { target, position, targetView } = allocateForWrite(7 + length)\n\t\ttarget[position++] = 0xc9\n\t\ttargetView.setUint32(position, length + 1) // plus one for the type byte\n\t\tposition += 4\n\t}\n\ttarget[position++] = 0x74 // \"t\" for typed array\n\ttarget[position++] = type\n\tif (!typedArray.buffer) typedArray = new Uint8Array(typedArray)\n\ttarget.set(new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength), position)\n}\nfunction writeBuffer(buffer, allocateForWrite) {\n\tlet length = buffer.byteLength\n\tvar target, position\n\tif (length < 0x100) {\n\t\tvar { target, position } = allocateForWrite(length + 2)\n\t\ttarget[position++] = 0xc4\n\t\ttarget[position++] = length\n\t} else if (length < 0x10000) {\n\t\tvar { target, position } = allocateForWrite(length + 3)\n\t\ttarget[position++] = 0xc5\n\t\ttarget[position++] = length >> 8\n\t\ttarget[position++] = length & 0xff\n\t} else {\n\t\tvar { target, position, targetView } = allocateForWrite(length + 5)\n\t\ttarget[position++] = 0xc6\n\t\ttargetView.setUint32(position, length)\n\t\tposition += 4\n\t}\n\ttarget.set(buffer, position)\n}\n\nfunction writeExtensionData(result, target, position, type) {\n\tlet length = result.length\n\tswitch (length) {\n\t\tcase 1:\n\t\t\ttarget[position++] = 0xd4\n\t\t\tbreak\n\t\tcase 2:\n\t\t\ttarget[position++] = 0xd5\n\t\t\tbreak\n\t\tcase 4:\n\t\t\ttarget[position++] = 0xd6\n\t\t\tbreak\n\t\tcase 8:\n\t\t\ttarget[position++] = 0xd7\n\t\t\tbreak\n\t\tcase 16:\n\t\t\ttarget[position++] = 0xd8\n\t\t\tbreak\n\t\tdefault:\n\t\t\tif (length < 0x100) {\n\t\t\t\ttarget[position++] = 0xc7\n\t\t\t\ttarget[position++] = length\n\t\t\t} else if (length < 0x10000) {\n\t\t\t\ttarget[position++] = 0xc8\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++] = 0xc9\n\t\t\t\ttarget[position++] = length >> 24\n\t\t\t\ttarget[position++] = (length >> 16) & 0xff\n\t\t\t\ttarget[position++] = (length >> 8) & 0xff\n\t\t\t\ttarget[position++] = length & 0xff\n\t\t\t}\n\t}\n\ttarget[position++] = type\n\ttarget.set(result, position)\n\tposition += length\n\treturn position\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 * 6\n\tlet lastEnd = serialized.length - distanceToMove\n\twhile (nextId = idsToInsert.pop()) {\n\t\tlet offset = nextId.offset\n\t\tlet id = nextId.id\n\t\tserialized.copyWithin(offset + distanceToMove, offset, lastEnd)\n\t\tdistanceToMove -= 6\n\t\tlet position = offset + distanceToMove\n\t\tserialized[position++] = 0xd6\n\t\tserialized[position++] = 0x69 // 'i'\n\t\tserialized[position++] = id >> 24\n\t\tserialized[position++] = (id >> 16) & 0xff\n\t\tserialized[position++] = (id >> 8) & 0xff\n\t\tserialized[position++] = id & 0xff\n\t\tlastEnd = offset\n\t}\n\treturn serialized\n}\n\nfunction writeBundles(start, pack, incrementPosition) {\n\tif (bundledStrings.length > 0) {\n\t\ttargetView.setUint32(bundledStrings.position + start, position + incrementPosition - bundledStrings.position - start)\n\t\tbundledStrings.stringsPosition = position - start;\n\t\tlet writeStrings = bundledStrings\n\t\tbundledStrings = null\n\t\tpack(writeStrings[0])\n\t\tpack(writeStrings[1])\n\t}\n}\n\nexport function addExtension(extension) {\n\tif (extension.Class) {\n\t\tif (!extension.pack && !extension.write)\n\t\t\tthrow new Error('Extension has no pack or write function')\n\t\tif (extension.pack && !extension.type)\n\t\t\tthrow new Error('Extension has no type (numeric code to identify the extension)')\n\t\textensionClasses.unshift(extension.Class)\n\t\textensions.unshift(extension)\n\t}\n\tunpackAddExtension(extension)\n}\nfunction prepareStructures(structures, packr) {\n\tstructures.isCompatible = (existingStructures) => {\n\t\tlet compatible = !existingStructures || ((packr.lastNamedStructuresLength || 0) === existingStructures.length)\n\t\tif (!compatible) // we want to merge these existing structures immediately since we already have it and we are in the right transaction\n\t\t\tpackr._mergeStructures(existingStructures);\n\t\treturn compatible;\n\t}\n\treturn structures\n}\nexport function setWriteStructSlots(writeSlots, makeStructures) {\n\twriteStructSlots = writeSlots;\n\tprepareStructures = makeStructures;\n}\n\nlet defaultPackr = new Packr({ useRecords: false })\nexport const pack = defaultPackr.pack\nexport const encode = defaultPackr.pack\nexport const Encoder = Packr\nexport { FLOAT32_OPTIONS } from './unpack.js'\nimport { FLOAT32_OPTIONS } from './unpack.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 RESERVE_START_SPACE = 2048","// src/shared.ts\nvar MESSAGE_SOURCE_KEY = \"osra-message\";\n\n// src/register.ts\nvar registerListener = ({\n target,\n resolvers,\n filter,\n map,\n key = MESSAGE_SOURCE_KEY\n}) => {\n const listener = (event) => {\n if (!event.data || typeof event.data !== \"object\")\n return;\n if (event.data?.source !== key)\n return;\n if (filter && !filter(event))\n return;\n const { type, data, port } = event.data;\n const resolver = resolvers[type];\n if (!resolver)\n throw new Error(`Osra received a message of type \"${String(type)}\" but no resolver was found for type.`);\n if (map)\n resolver(...map(data, { event, type, port }));\n else\n resolver(data, { event, type, port });\n };\n target.addEventListener(\"message\", listener);\n return {\n listener,\n resolvers\n };\n};\n\n// src/utils.ts\nvar isClonable = (value) => globalThis.SharedArrayBuffer && value instanceof globalThis.SharedArrayBuffer ? true : false;\nvar isTransferable = (value) => globalThis.ArrayBuffer && value instanceof globalThis.ArrayBuffer ? true : globalThis.MessagePort && value instanceof globalThis.MessagePort ? true : globalThis.ReadableStream && value instanceof globalThis.ReadableStream ? true : globalThis.WritableStream && value instanceof globalThis.WritableStream ? true : globalThis.TransformStream && value instanceof globalThis.TransformStream ? true : globalThis.ImageBitmap && value instanceof globalThis.ImageBitmap ? true : false;\nvar getTransferableObjects = (value) => {\n const transferables = [];\n const recurse = (value2) => isClonable(value2) ? void 0 : isTransferable(value2) ? transferables.push(value2) : Array.isArray(value2) ? value2.map(recurse) : value2 && typeof value2 === \"object\" ? Object.values(value2).map(recurse) : void 0;\n recurse(value);\n return transferables;\n};\nvar PROXY_FUNCTION_PROPERTY = \"__proxyFunctionPort__\";\nvar makeProxyFunction = (func) => {\n const { port1, port2 } = new MessageChannel();\n port1.addEventListener(\"message\", async (ev) => {\n try {\n const result = await func(...ev.data);\n const proxiedResult = proxyObjectFunctions(result);\n const transferables = getTransferableObjects(proxiedResult);\n port1.postMessage({ result: proxiedResult }, { transfer: transferables });\n } catch (err) {\n port1.postMessage({ error: err });\n }\n });\n port1.start();\n return port2;\n};\nvar proxyObjectFunctions = (value) => isClonable(value) ? value : isTransferable(value) ? value : typeof value === \"function\" ? { [PROXY_FUNCTION_PROPERTY]: makeProxyFunction(value) } : Array.isArray(value) ? value.map(proxyObjectFunctions) : value && typeof value === \"object\" ? Object.fromEntries(Object.entries(value).map(([key, value2]) => [\n key,\n proxyObjectFunctions(value2)\n])) : value;\nvar makeProxiedFunction = (port) => (...args) => new Promise((resolve, reject) => {\n const proxiedArguments = proxyObjectFunctions(args);\n const transferables = getTransferableObjects(proxiedArguments);\n port.addEventListener(\"message\", (ev) => {\n if (ev.data.error)\n reject(ev.data.error);\n else\n resolve(makeObjectProxiedFunctions(ev.data.result));\n });\n port.start();\n port.postMessage(proxiedArguments, { transfer: transferables });\n});\nvar makeObjectProxiedFunctions = (value) => isClonable(value) ? value : isTransferable(value) ? value : value && typeof value === \"object\" && value[PROXY_FUNCTION_PROPERTY] ? makeProxiedFunction(value[PROXY_FUNCTION_PROPERTY]) : Array.isArray(value) ? value.map(proxyObjectFunctions) : value && typeof value === \"object\" ? Object.fromEntries(Object.entries(value).map(([key, value2]) => [\n key,\n makeObjectProxiedFunctions(value2)\n])) : value;\n\n// src/call.ts\nvar call = (target, { key = MESSAGE_SOURCE_KEY } = { key: MESSAGE_SOURCE_KEY }) => (type, data) => new Promise((resolve, reject) => {\n const { port1, port2 } = new MessageChannel();\n port1.addEventListener(\"message\", ({ data: data2 }) => {\n if (data2.error) {\n reject(data2.error);\n } else {\n const proxiedData2 = makeObjectProxiedFunctions(data2.result);\n resolve(proxiedData2);\n }\n port1.close();\n port2.close();\n }, { once: true });\n port1.start();\n const proxiedData = proxyObjectFunctions(data);\n const transferables = getTransferableObjects(proxiedData);\n target.postMessage({\n source: key,\n type,\n data: proxiedData,\n port: port2\n }, {\n targetOrigin: \"*\",\n transfer: [port2, ...transferables ?? []]\n });\n});\nvar makeCallListener = (func) => async (data, extra) => {\n const { port } = extra;\n const proxiedData = makeObjectProxiedFunctions(data);\n try {\n const result = await func(proxiedData, extra);\n const proxyData = proxyObjectFunctions(result);\n const transferables = getTransferableObjects(proxyData);\n port.postMessage({ result: proxyData }, { transfer: transferables });\n port.close();\n return result;\n } catch (error) {\n port.postMessage({ error });\n port.close();\n throw error;\n }\n};\nexport {\n call,\n makeCallListener,\n registerListener\n};\n","import { call as g } from \"osra\";\nlet c, i;\nconst d = () => (i = new Promise((t, e) => {\n c = t;\n}), i), p = d(), m = async (t) => {\n t === p && d(), c(await t);\n}, h = \"https://fkn.app\", f = globalThis.window === void 0, o = globalThis?.document.querySelector(`iframe[src=\"${h}/sandbox-api\"]`), n = globalThis.document?.createElement(\"iframe\");\n!o && n && (n.src = `${h}/sandbox-api`, n.style.display = \"none\", document.body.appendChild(n));\nconst w = o || n, l = w?.contentWindow, b = (t) => m(t), u = () => i, x = async () => g(await u(), { key: \"fkn-sandbox-api\" })(\"API_PORT\", {});\nif (f) {\n let t = !1;\n i.then(() => {\n t = !0;\n }), setTimeout(() => {\n t || console.warn(\"@fkn/lib's api target has not resolved after 250ms while in a worker, make sure to call `setApiTarget(messagePort)`\");\n }, 250);\n} else {\n if (!w)\n throw new Error(\"Missing appended iframe\");\n const t = setInterval(\n () => g(l, { key: \"fkn-sandbox\" })(\"APP_READY\", {}).then(() => {\n m(l), clearInterval(t);\n }).catch(() => {\n console.warn(\"Failed to connect to sandbox, trying again in 10ms\");\n }),\n 10\n );\n}\nconst _ = (t, e) => u().then(\n (a) => g(a, { key: \"fkn-sandbox-api\" })(t, e)\n), y = async (t, e) => {\n const a = t, s = e, { body: I, ...r } = await _(\"SERVER_PROXY_FETCH\", { input: a, init: s });\n return new Response(\n I,\n {\n ...r,\n headers: {\n ...r.headers,\n ...r.headers && {\n setCookie: r.headers[\"set-cookie\"]\n }\n }\n }\n );\n};\nclass M {\n _internals;\n _awaitedInternals;\n closed;\n constructor() {\n this.closed = new Promise((e) => {\n this._internals = _(\n \"WEBVPN_WEBTRANSPORT\",\n {\n close: ({ closeCode: a, reason: s }) => e({ closeCode: a, reason: s })\n }\n ), this._internals.then((a) => {\n this._awaitedInternals = a;\n });\n });\n }\n close(e) {\n this._internals.then(({ close: a }) => a(e ?? {}));\n }\n get ready() {\n return this._internals.then(() => {\n });\n }\n get incomingBidirectionalStreams() {\n return this._awaitedInternals.incomingBidirectionalStreams;\n }\n get incomingUnidirectionalStreams() {\n return this._awaitedInternals.incomingUnidirectionalStreams;\n }\n async createBidirectionalStream() {\n const { readable: e, writable: a } = await this._awaitedInternals.createBidirectionalStream();\n return { readable: e, writable: a };\n }\n createUnidirectionalStream() {\n return this._awaitedInternals.createUnidirectionalStream();\n }\n get datagrams() {\n const e = this;\n return {\n get incomingHighWaterMark() {\n return e._awaitedInternals.datagrams.incomingHighWaterMark;\n },\n set incomingHighWaterMark(a) {\n e._awaitedInternals.datagrams.setIncomingHighWaterMark(a);\n },\n get incomingMaxAge() {\n return e._awaitedInternals.datagrams.incomingMaxAge;\n },\n set incomingMaxAge(a) {\n e._awaitedInternals.datagrams.setIncomingMaxAge(a);\n },\n get maxDatagramSize() {\n return e._awaitedInternals.datagrams.maxDatagramSize;\n },\n get outgoingHighWaterMark() {\n return e._awaitedInternals.datagrams.outgoingHighWaterMark;\n },\n set outgoingHighWaterMark(a) {\n e._awaitedInternals.datagrams.setOutgoingHighWaterMark(a);\n },\n get outgoingMaxAge() {\n return e._awaitedInternals.datagrams.outgoingMaxAge;\n },\n set outgoingMaxAge(a) {\n e._awaitedInternals.datagrams.setOutgoingMaxAge(a);\n },\n get readable() {\n return e._awaitedInternals.datagrams.readable;\n },\n get writable() {\n return e._awaitedInternals.datagrams.writable;\n }\n };\n }\n}\nexport {\n M as WebVPNWebTransport,\n u as getApiTarget,\n x as getApiTargetPort,\n y as serverProxyFetch,\n b as setApiTarget\n};\n","import { Packr } from 'msgpackr'\r\nimport { WebVPNWebTransport } from '@fkn/lib'\r\n\r\nimport { SocketClientPacket, SocketServerPacket, WebVPNHandshakePacket } from '.'\r\n\r\nconst packr = new Packr()\r\n\r\nexport const packPacket = (packet: WebVPNHandshakePacket | SocketClientPacket) => packr.pack(packet)\r\nexport const unpackPacket = (data: Uint8Array) => packr.unpack(data) as SocketServerPacket\r\nexport const unpackMultiplePackets = (data: Uint8Array) => packr.unpackMultiple(data) as SocketServerPacket[]\r\n\r\nexport interface WebTransportOptions {\r\n address: string\r\n serverCertificateHashes: {\r\n algorithm: string\r\n value: number[]\r\n }[]\r\n}\r\n\r\nexport const makeWebVPNWebtransport = async () => {\r\n const webtransport = new WebVPNWebTransport()\r\n await webtransport.ready\r\n return webtransport\r\n}\r\n\r\n// let _webtransportOptions: Promise<WebTransportOptions>\r\n// export const makeWebVPNWebtransport = async () => {\r\n// if (!_webtransportOptions) {\r\n// _webtransportOptions =\r\n// fetch('http://localhost:4002/')\r\n// .then(res => res.json() as Promise<WebTransportOptions>)\r\n// }\r\n// const webtransportOptions = await _webtransportOptions\r\n// const webtransport = new WebTransport(\r\n// webtransportOptions.address,\r\n// {\r\n// serverCertificateHashes: [{\r\n// algorithm: webtransportOptions.serverCertificateHashes[0].algorithm,\r\n// value: new Uint8Array(webtransportOptions.serverCertificateHashes[0].value)\r\n// }]\r\n// }\r\n// )\r\n// await webtransport.ready\r\n// return webtransport\r\n// }\r\n","import type { BindOptions, Socket as DgramSocket, RemoteInfo, SocketOptions, SocketType } from 'dgram'\r\nimport type { AddressInfo } from 'net'\r\n\r\nimport { DuplexOptions, Stream } from 'stream'\r\nimport { EventEmitter, } from 'events'\r\n\r\nimport { Packr } from 'msgpackr'\r\nimport { makeWebVPNWebtransport, packPacket, unpackMultiplePackets, unpackPacket } from './utils'\r\n\r\ntype TypedWebTransportStream = WebTransportBidirectionalStream & {\r\n readable: ReadableStream<Uint8Array>\r\n writable: WritableStream<Uint8Array>\r\n}\r\n\r\nexport type WebVPNHandshakePacket =\r\n {\r\n type: 'udp-socket'\r\n socketType: 'udp4' | 'udp6'\r\n reuseAddr?: boolean\r\n ipv6Only?: boolean\r\n recvBufferSize?: number\r\n sendBufferSize?: number\r\n // lookup?:\r\n // | ((\r\n // hostname: string,\r\n // options: dns.LookupOneOptions,\r\n // callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void,\r\n // ) => void)\r\n }\r\n\r\nexport type SocketClientPacket =\r\n {\r\n type: 'addMembership'\r\n multicastAddress: string\r\n multicastInterface?: string\r\n } |\r\n {\r\n type: 'addSourceSpecificMembership'\r\n sourceAddress: string\r\n groupAddress: string\r\n multicastInterface?: string\r\n } |\r\n {\r\n type: 'bind'\r\n uuid?: string\r\n port?: number\r\n address?: string\r\n exclusive?: boolean\r\n // fd?: number\r\n } |\r\n {\r\n type: 'close'\r\n uuid?: string\r\n } |\r\n {\r\n type: 'connect'\r\n uuid?: string\r\n port: number\r\n address?: string\r\n } |\r\n {\r\n type: 'disconnect'\r\n } |\r\n {\r\n type: 'dropMembership'\r\n multicastAddress: string\r\n multicastInterface?: string\r\n } |\r\n {\r\n type: 'dropSourceSpecificMembership'\r\n sourceAddress: string\r\n groupAddress: string\r\n multicastInterface?: string\r\n } |\r\n {\r\n type: 'send'\r\n // uuid?: string\r\n msg: string | readonly any[] | Uint8Array\r\n offset?: number\r\n length?: number\r\n port?: number\r\n address?: string\r\n } |\r\n {\r\n type: 'setBroadcast'\r\n flag: boolean\r\n } |\r\n {\r\n type: 'setMulticastInterface'\r\n multicastInterface: string\r\n } |\r\n {\r\n type: 'setMulticastLoopback'\r\n flag: boolean\r\n } |\r\n {\r\n type: 'setMulticastTTL'\r\n ttl: number\r\n } |\r\n {\r\n type: 'setRecvBufferSize'\r\n size: number\r\n } |\r\n {\r\n type: 'setSendBufferSize'\r\n size: number\r\n } |\r\n {\r\n type: 'setTTL'\r\n ttl: number\r\n }\r\n\r\nexport type SocketServerPacket =\r\n {\r\n type: 'event-close'\r\n } |\r\n {\r\n type: 'event-connect'\r\n } |\r\n {\r\n type: 'event-error'\r\n exception: string\r\n } |\r\n {\r\n type: 'event-listening'\r\n address: {\r\n address: string\r\n port: number\r\n family: 'IPv4' | 'IPv6'\r\n }\r\n } |\r\n // handled by datagram stream\r\n {\r\n type: 'event-message'\r\n message: Uint8Array\r\n rinfo: {\r\n address: string\r\n family: 'IPv4' | 'IPv6'\r\n port: number\r\n size: number\r\n }\r\n } |\r\n {\r\n type: 'callback-bind'\r\n uuid: string\r\n address: {\r\n address: string\r\n port: number\r\n family: 'IPv4' | 'IPv6'\r\n }\r\n } |\r\n {\r\n type: 'callback-close'\r\n uuid: string\r\n } |\r\n {\r\n type: 'callback-connect'\r\n uuid: string\r\n remoteAddress: {\r\n address: string\r\n port: number\r\n family: 'IPv4' | 'IPv6'\r\n }\r\n } |\r\n {\r\n type: 'callback-send'\r\n uuid: string\r\n }\r\n\r\nconst normalizeBindArgs = (\r\n args:\r\n [port: number, address: string, callback: () => void] |\r\n [port: number, callback: () => void] |\r\n [callback: () => void] |\r\n [options: BindOptions, callback: () => void]\r\n) => {\r\n if (args.length === 1) {\r\n return {\r\n port: undefined,\r\n address: undefined,\r\n callback: args[0]\r\n }\r\n } else if (args.length === 2) {\r\n if (typeof args[0] === 'number') {\r\n return {\r\n port: args[0],\r\n address: undefined,\r\n callback: args[1]\r\n }\r\n }\r\n if (args[0].fd !== undefined) {\r\n throw new Error('FKN WebVPN does not support file descriptors')\r\n }\r\n return {\r\n ...args[0],\r\n callback: args[1]\r\n }\r\n }\r\n return {\r\n port: args[0],\r\n address: args[1],\r\n callback: args[2]\r\n }\r\n}\r\n\r\nconst normalizeConnectArgs = (\r\n args:\r\n [port: number, address?: string, callback?: () => void] |\r\n [port: number, callback: () => void]\r\n) => {\r\n if (args.length === 2) {\r\n return {\r\n port: args[0],\r\n address: undefined,\r\n callback: args[1] as () => void\r\n }\r\n } else {\r\n return {\r\n port: args[0],\r\n address: args[1],\r\n callback: args[2]\r\n }\r\n }\r\n}\r\n\r\nconst normalizeSendArgs = (\r\n args:\r\n [msg: string | readonly any[] | Uint8Array, port: number, address: string, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | readonly any[] | Uint8Array, port: number, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | readonly any[] | Uint8Array, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, port: number, address: string, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, port: number, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, callback: (error: Error | null, bytes: number) => void]\r\n) => {\r\n if (args.length === 6) {\r\n return {\r\n msg: args[0],\r\n offset: args[1],\r\n length: args[2],\r\n port: args[3],\r\n address: args[4],\r\n callback: args[5]\r\n }\r\n } else if (args.length === 5) {\r\n return {\r\n msg: args[0],\r\n offset: args[1],\r\n length: args[2],\r\n port: args[3],\r\n address: undefined,\r\n callback: args[4]\r\n }\r\n } else if (args.length === 4) {\r\n if (typeof args[3] === 'string') {\r\n return {\r\n msg: args[0],\r\n offset: undefined,\r\n length: undefined,\r\n port: args[1],\r\n address: args[2] as string,\r\n callback: args[3]\r\n }\r\n } else {\r\n return {\r\n msg: args[0],\r\n offset: args[1],\r\n length: undefined,\r\n port: args[2] as number,\r\n address: undefined,\r\n callback: args[3]\r\n }\r\n }\r\n } else if (args.length === 3) {\r\n return {\r\n msg: args[0],\r\n offset: undefined,\r\n length: undefined,\r\n port: args[1],\r\n address: undefined,\r\n callback: args[2]\r\n }\r\n } else if (args.length === 2) {\r\n return {\r\n msg: args[0],\r\n offset: undefined,\r\n length: undefined,\r\n port: undefined,\r\n address: undefined,\r\n callback: args[1]\r\n }\r\n } else {\r\n return {\r\n msg: args[0],\r\n offset: undefined,\r\n length: undefined,\r\n port: undefined,\r\n address: undefined,\r\n callback: undefined\r\n }\r\n }\r\n}\r\n\r\ninterface EventEmitterOptions {\r\n /**\r\n * Enables automatic capturing of promise rejection.\r\n */\r\n captureRejections?: boolean | undefined;\r\n}\r\n\r\nexport class Socket extends EventEmitter implements DgramSocket {\r\n _webVPN: Promise<{\r\n webtransport: WebTransport\r\n reader: ReadableStreamDefaultReader<Uint8Array>\r\n writer: WritableStreamDefaultWriter<Uint8Array>\r\n datagramReader: ReadableStreamDefaultReader<Uint8Array>\r\n datagramWriter: WritableStreamDefaultWriter<Uint8Array>\r\n }>\r\n _type: 'udp4' | 'udp6'\r\n _address: {\r\n address: string,\r\n port: number\r\n family: string\r\n } | undefined\r\n _remoteAddress: {\r\n address: string,\r\n port: number\r\n family: string\r\n } | undefined\r\n\r\n constructor(options: SocketOptions & EventEmitterOptions) {\r\n // console.log('new socket')\r\n super(options)\r\n this._type = options.type\r\n this._address = undefined\r\n this._webVPN =\r\n makeWebVPNWebtransport()\r\n .then(async (webtransport) => {\r\n const connectionDatagramReader = webtransport.datagrams.readable.getReader()\r\n const connectionDatagramWriter = webtransport.datagrams.writable.getWriter()\r\n await connectionDatagramWriter.ready\r\n const webTransportBidirectionalStream = await webtransport.createBidirectionalStream()\r\n const { readable, writable } = webTransportBidirectionalStream\r\n const reader = readable.getReader()\r\n const writer = writable.getWriter()\r\n await writer.ready\r\n await writer.write(packPacket({ type: 'udp-socket', socketType: options.type }))\r\n\r\n const read = async () => {\r\n const { done, value } = await reader.read()\r\n if (done) return\r\n try {\r\n const packets = unpackMultiplePackets(value) as SocketServerPacket[]\r\n for (const packet of packets) {\r\n // console.log('socket recv packet', packet)\r\n if (packet.type === 'event-close') {\r\n this.emit('close')\r\n } else if (packet.type === 'event-connect') {\r\n this.emit('connect')\r\n } else if (packet.type === 'event-error') {\r\n this.emit('error', new Error(packet.exception))\r\n } else if (packet.type === 'event-listening') {\r\n this._address = packet.address\r\n this.emit('listening')\r\n // handled by dgram stream\r\n // } else if (packet.type === 'event-message') {\r\n } else if (packet.type === 'callback-bind') {\r\n this._address = packet.address\r\n this.emit('callback-bind', { uuid: packet.uuid })\r\n } else if (packet.type === 'callback-close') {\r\n this.emit('callback-close', { uuid: packet.uuid })\r\n } else if (packet.type === 'callback-connect') {\r\n this._remoteAddress = packet.remoteAddress\r\n this.emit('callback-connect', { uuid: packet.uuid })\r\n } else if (packet.type === 'callback-send') {\r\n this.emit('callback-send', { uuid: packet.uuid })\r\n } else {\r\n console.error('unknown packet type', packet)\r\n }\r\n }\r\n } catch (err) {\r\n console.error(err)\r\n } finally {\r\n await read()\r\n }\r\n }\r\n read()\r\n \r\n return {\r\n webtransport: webtransport,\r\n reader: reader,\r\n writer: writer,\r\n datagramReader: connectionDatagramReader,\r\n datagramWriter: connectionDatagramWriter\r\n }\r\n })\r\n }\r\n addMembership(multicastAddress: string, multicastInterface?: string | undefined): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'addMembership',\r\n multicastAddress,\r\n multicastInterface\r\n })\r\n )\r\n })\r\n }\r\n address(): AddressInfo {\r\n if (!this._address) throw new Error('EBADF')\r\n return this._address\r\n }\r\n\r\n bind(port?: number | undefined, address?: string | undefined, callback?: (() => void) | undefined): this\r\n bind(port?: number | undefined, callback?: (() => void) | undefined): this\r\n bind(callback?: (() => void) | undefined): this\r\n bind(options: BindOptions, callback?: (() => void) | undefined): this\r\n bind(\r\n args:\r\n [port: number, address: string, callback: () => void] |\r\n [port: number, callback: () => void] |\r\n [callback: () => void] |\r\n [options: BindOptions, callback: () => void]\r\n ): this {\r\n // console.log('bind')\r\n const normalizedOptions = normalizeBindArgs(args)\r\n this._webVPN.then(webVPN => {\r\n const uuid = normalizedOptions.callback ? self.crypto.randomUUID() : undefined\r\n if (uuid && normalizedOptions.callback) {\r\n this.on('callback-bind', function callbackBind({ uuid: _uuid }) {\r\n if (_uuid !== uuid) return\r\n this.off('callback-bind', callbackBind)\r\n normalizedOptions.callback!()\r\n })\r\n }\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'bind',\r\n uuid,\r\n port: normalizedOptions.port,\r\n address: normalizedOptions.address,\r\n exclusive: normalizedOptions.exclusive\r\n })\r\n )\r\n })\r\n return this\r\n }\r\n close(callback?: (() => void) | undefined): this {\r\n this._webVPN.then(webVPN => {\r\n const uuid = callback ? self.crypto.randomUUID() : undefined\r\n if (uuid && callback) {\r\n this.on('callback-close', function callbackClose({ uuid: _uuid }) {\r\n if (_uuid !== uuid) return\r\n this.off('callback-close', callbackClose)\r\n callback()\r\n })\r\n }\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'close',\r\n uuid\r\n })\r\n )\r\n })\r\n return this\r\n }\r\n\r\n connect(port: number, address?: string, callback?: () => void): void;\r\n connect(port: number, callback: () => void): void;\r\n connect(\r\n ...args:\r\n [port: number, address?: string, callback?: () => void] |\r\n [port: number, callback: () => void]\r\n ): void {\r\n const normalizedOptions = normalizeConnectArgs(args)\r\n const address = normalizedOptions.address\r\n const port = normalizedOptions.port\r\n\r\n if (!address) throw new Error('port is required')\r\n if (!port) throw new Error('address is required')\r\n\r\n this._webVPN.then(webVPN => {\r\n const uuid = normalizedOptions.callback ? self.crypto.randomUUID() : undefined\r\n if (uuid && normalizedOptions.callback) {\r\n this.on('callback-connect', function callbackConnect({ uuid: _uuid }) {\r\n if (_uuid !== uuid) return\r\n this.off('callback-connect', callbackConnect)\r\n normalizedOptions.callback!()\r\n })\r\n }\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'connect',\r\n uuid,\r\n address,\r\n port\r\n })\r\n )\r\n })\r\n }\r\n disconnect(): void {\r\n if (!this._address) throw new Error('ERR_SOCKET_DGRAM_NOT_CONNECTED')\r\n this._address = undefined\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(packPacket({ type: 'disconnect' }))\r\n })\r\n }\r\n dropMembership(multicastAddress: string, multicastInterface?: string | undefined): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'dropMembership',\r\n multicastAddress,\r\n multicastInterface\r\n })\r\n )\r\n })\r\n }\r\n getRecvBufferSize(): number {\r\n return 0\r\n }\r\n getSendBufferSize(): number {\r\n return 0\r\n }\r\n getSendQueueSize(): number {\r\n return 0\r\n }\r\n getSendQueueCount(): number {\r\n return 0\r\n }\r\n ref(): this {\r\n return this\r\n }\r\n remoteAddress(): AddressInfo {\r\n if (!this._remoteAddress) throw new Error('ERR_SOCKET_DGRAM_NOT_CONNECTED')\r\n return {\r\n address: this._remoteAddress.address,\r\n family: this._remoteAddress.family,\r\n port: this._remoteAddress.port\r\n }\r\n }\r\n\r\n send(msg: string | readonly any[] | Uint8Array, port?: number | undefined, address?: string | undefined, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: string | readonly any[] | Uint8Array, port?: number | undefined, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: string | readonly any[] | Uint8Array, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: string | Uint8Array, offset: number, length: number, port?: number | undefined, address?: string | undefined, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: string | Uint8Array, offset: number, length: number, port?: number | undefined, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: string | Uint8Array, offset: number, length: number, callback?: ((error: Error | null, bytes: number) => void) | undefined): void\r\n send(msg: unknown, offset?: unknown, length?: unknown, port?: unknown, address?: unknown, callback?: unknown): void\r\n send(\r\n ...args:\r\n [msg: string | readonly any[] | Uint8Array, port: number, address: string, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | readonly any[] | Uint8Array, port: number, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | readonly any[] | Uint8Array, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, port: number, address: string, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, port: number, callback: (error: Error | null, bytes: number) => void] |\r\n [msg: string | Uint8Array, offset: number, length: number, callback: (error: Error | null, bytes: number) => void]\r\n ): void {\r\n const { address, callback, length, msg, offset, port } = normalizeSendArgs(args)\r\n this._webVPN.then(webVPN => {\r\n // const uuid = callback ? self.crypto.randomUUID() : undefined\r\n // if (uuid && callback) {\r\n // this.on('callback-send', function callbackSend({ uuid: _uuid }) {\r\n // if (_uuid !== uuid) return\r\n // this.off('callback-send', callbackSend)\r\n // callback(null, 0)\r\n // })\r\n // }\r\n // console.log('send', {\r\n // type: 'send',\r\n // msg,\r\n // offset,\r\n // length,\r\n // port,\r\n // address\r\n // }, args)\r\n webVPN.datagramWriter.write(\r\n packPacket({\r\n type: 'send',\r\n msg,\r\n offset,\r\n length,\r\n port,\r\n address\r\n })\r\n )\r\n if (typeof callback === 'function') {\r\n callback(null, 0)\r\n }\r\n })\r\n }\r\n setBroadcast(flag: boolean): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setBroadcast',\r\n flag\r\n })\r\n )\r\n })\r\n }\r\n setMulticastInterface(multicastInterface: string): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setMulticastInterface',\r\n multicastInterface\r\n })\r\n )\r\n })\r\n }\r\n setMulticastLoopback(flag: boolean): boolean {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setMulticastLoopback',\r\n flag\r\n })\r\n )\r\n })\r\n return true\r\n }\r\n setMulticastTTL(ttl: number): number {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setMulticastTTL',\r\n ttl\r\n })\r\n )\r\n })\r\n return ttl\r\n }\r\n setRecvBufferSize(size: number): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setRecvBufferSize',\r\n size\r\n })\r\n )\r\n })\r\n }\r\n setSendBufferSize(size: number): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setSendBufferSize',\r\n size\r\n })\r\n )\r\n })\r\n }\r\n setTTL(ttl: number): number {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'setTTL',\r\n ttl\r\n })\r\n )\r\n })\r\n return ttl\r\n }\r\n unref(): this {\r\n return this\r\n }\r\n addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string | undefined): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'addSourceSpecificMembership',\r\n sourceAddress,\r\n groupAddress,\r\n multicastInterface\r\n })\r\n )\r\n })\r\n }\r\n dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string | undefined): void {\r\n this._webVPN.then(webVPN => {\r\n webVPN.writer.write(\r\n packPacket({\r\n type: 'dropSourceSpecificMembership',\r\n sourceAddress,\r\n groupAddress,\r\n multicastInterface\r\n })\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const createSocket = (options: SocketType | SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void) => {\r\n const socket = new Socket(\r\n typeof options === 'string'\r\n ? { type: options }\r\n : options\r\n )\r\n if (callback) socket.on('message', callback)\r\n return socket\r\n}\r\n"],"names":["eventsModule","position","bundledStrings","g","WebVPNWebTransport","EventEmitter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/build/test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};