(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("signalR")); else if(typeof define === 'function' && define.amd) define(["signalR"], factory); else if(typeof exports === 'object') exports["msgpack"] = factory(require("signalR")); else root["signalR"] = root["signalR"] || {}, root["signalR"]["protocols"] = root["signalR"]["protocols"] || {}, root["signalR"]["protocols"]["msgpack"] = factory(root["signalR"]); })(self, function(__WEBPACK_EXTERNAL_MODULE__1__) { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__1__; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. (() => { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "MessagePackHubProtocol": () => (/* reexport */ MessagePackHubProtocol), "VERSION": () => (/* reexport */ VERSION) }); ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs // Integer Utility var UINT32_MAX = 4294967295; // DataView extension to handle int64 / uint64, // where the actual range is 53-bits integer (a.k.a. safe integer) function setUint64(view, offset, value) { var high = value / 4294967296; var low = value; // high bits are truncated by DataView view.setUint32(offset, high); view.setUint32(offset + 4, low); } function setInt64(view, offset, value) { var high = Math.floor(value / 4294967296); var low = value; // high bits are truncated by DataView view.setUint32(offset, high); view.setUint32(offset + 4, low); } function getInt64(view, offset) { var high = view.getInt32(offset); var low = view.getUint32(offset + 4); return high * 4294967296 + low; } function getUint64(view, offset) { var high = view.getUint32(offset); var low = view.getUint32(offset + 4); return high * 4294967296 + low; } //# sourceMappingURL=int.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs var _a, _b, _c; /* eslint-disable @typescript-eslint/no-unnecessary-condition */ var TEXT_ENCODING_AVAILABLE = (typeof process === "undefined" || ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a["TEXT_ENCODING"]) !== "never") && typeof TextEncoder !== "undefined" && typeof TextDecoder !== "undefined"; function utf8Count(str) { var strLength = str.length; var byteLength = 0; var pos = 0; while (pos < strLength) { var value = str.charCodeAt(pos++); if ((value & 0xffffff80) === 0) { // 1-byte byteLength++; continue; } else if ((value & 0xfffff800) === 0) { // 2-bytes byteLength += 2; } else { // handle surrogate pair if (value >= 0xd800 && value <= 0xdbff) { // high surrogate if (pos < strLength) { var extra = str.charCodeAt(pos); if ((extra & 0xfc00) === 0xdc00) { ++pos; value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000; } } } if ((value & 0xffff0000) === 0) { // 3-byte byteLength += 3; } else { // 4-byte byteLength += 4; } } } return byteLength; } function utf8EncodeJs(str, output, outputOffset) { var strLength = str.length; var offset = outputOffset; var pos = 0; while (pos < strLength) { var value = str.charCodeAt(pos++); if ((value & 0xffffff80) === 0) { // 1-byte output[offset++] = value; continue; } else if ((value & 0xfffff800) === 0) { // 2-bytes output[offset++] = ((value >> 6) & 0x1f) | 0xc0; } else { // handle surrogate pair if (value >= 0xd800 && value <= 0xdbff) { // high surrogate if (pos < strLength) { var extra = str.charCodeAt(pos); if ((extra & 0xfc00) === 0xdc00) { ++pos; value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000; } } } if ((value & 0xffff0000) === 0) { // 3-byte output[offset++] = ((value >> 12) & 0x0f) | 0xe0; output[offset++] = ((value >> 6) & 0x3f) | 0x80; } else { // 4-byte output[offset++] = ((value >> 18) & 0x07) | 0xf0; output[offset++] = ((value >> 12) & 0x3f) | 0x80; output[offset++] = ((value >> 6) & 0x3f) | 0x80; } } output[offset++] = (value & 0x3f) | 0x80; } } var sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined; var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE ? UINT32_MAX : typeof process !== "undefined" && ((_b = process === null || process === void 0 ? void 0 : process.env) === null || _b === void 0 ? void 0 : _b["TEXT_ENCODING"]) !== "force" ? 200 : 0; function utf8EncodeTEencode(str, output, outputOffset) { output.set(sharedTextEncoder.encode(str), outputOffset); } function utf8EncodeTEencodeInto(str, output, outputOffset) { sharedTextEncoder.encodeInto(str, output.subarray(outputOffset)); } var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode; var CHUNK_SIZE = 4096; function utf8DecodeJs(bytes, inputOffset, byteLength) { var offset = inputOffset; var end = offset + byteLength; var units = []; var result = ""; while (offset < end) { var byte1 = bytes[offset++]; if ((byte1 & 0x80) === 0) { // 1 byte units.push(byte1); } else if ((byte1 & 0xe0) === 0xc0) { // 2 bytes var byte2 = bytes[offset++] & 0x3f; units.push(((byte1 & 0x1f) << 6) | byte2); } else if ((byte1 & 0xf0) === 0xe0) { // 3 bytes var byte2 = bytes[offset++] & 0x3f; var byte3 = bytes[offset++] & 0x3f; units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3); } else if ((byte1 & 0xf8) === 0xf0) { // 4 bytes var byte2 = bytes[offset++] & 0x3f; var byte3 = bytes[offset++] & 0x3f; var byte4 = bytes[offset++] & 0x3f; var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4; if (unit > 0xffff) { unit -= 0x10000; units.push(((unit >>> 10) & 0x3ff) | 0xd800); unit = 0xdc00 | (unit & 0x3ff); } units.push(unit); } else { units.push(byte1); } if (units.length >= CHUNK_SIZE) { result += String.fromCharCode.apply(String, units); units.length = 0; } } if (units.length > 0) { result += String.fromCharCode.apply(String, units); } return result; } var sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null; var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE ? UINT32_MAX : typeof process !== "undefined" && ((_c = process === null || process === void 0 ? void 0 : process.env) === null || _c === void 0 ? void 0 : _c["TEXT_DECODER"]) !== "force" ? 200 : 0; function utf8DecodeTD(bytes, inputOffset, byteLength) { var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength); return sharedTextDecoder.decode(stringBytes); } //# sourceMappingURL=utf8.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs /** * ExtData is used to handle Extension Types that are not registered to ExtensionCodec. */ var ExtData = /** @class */ (function () { function ExtData(type, data) { this.type = type; this.data = data; } return ExtData; }()); //# sourceMappingURL=ExtData.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var DecodeError = /** @class */ (function (_super) { __extends(DecodeError, _super); function DecodeError(message) { var _this = _super.call(this, message) || this; // fix the prototype chain in a cross-platform way var proto = Object.create(DecodeError.prototype); Object.setPrototypeOf(_this, proto); Object.defineProperty(_this, "name", { configurable: true, enumerable: false, value: DecodeError.name, }); return _this; } return DecodeError; }(Error)); //# sourceMappingURL=DecodeError.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs // https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type var EXT_TIMESTAMP = -1; var TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int var TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int function encodeTimeSpecToTimestamp(_a) { var sec = _a.sec, nsec = _a.nsec; if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) { // Here sec >= 0 && nsec >= 0 if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) { // timestamp 32 = { sec32 (unsigned) } var rv = new Uint8Array(4); var view = new DataView(rv.buffer); view.setUint32(0, sec); return rv; } else { // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) } var secHigh = sec / 0x100000000; var secLow = sec & 0xffffffff; var rv = new Uint8Array(8); var view = new DataView(rv.buffer); // nsec30 | secHigh2 view.setUint32(0, (nsec << 2) | (secHigh & 0x3)); // secLow32 view.setUint32(4, secLow); return rv; } } else { // timestamp 96 = { nsec32 (unsigned), sec64 (signed) } var rv = new Uint8Array(12); var view = new DataView(rv.buffer); view.setUint32(0, nsec); setInt64(view, 4, sec); return rv; } } function encodeDateToTimeSpec(date) { var msec = date.getTime(); var sec = Math.floor(msec / 1e3); var nsec = (msec - sec * 1e3) * 1e6; // Normalizes { sec, nsec } to ensure nsec is unsigned. var nsecInSec = Math.floor(nsec / 1e9); return { sec: sec + nsecInSec, nsec: nsec - nsecInSec * 1e9, }; } function encodeTimestampExtension(object) { if (object instanceof Date) { var timeSpec = encodeDateToTimeSpec(object); return encodeTimeSpecToTimestamp(timeSpec); } else { return null; } } function decodeTimestampToTimeSpec(data) { var view = new DataView(data.buffer, data.byteOffset, data.byteLength); // data may be 32, 64, or 96 bits switch (data.byteLength) { case 4: { // timestamp 32 = { sec32 } var sec = view.getUint32(0); var nsec = 0; return { sec: sec, nsec: nsec }; } case 8: { // timestamp 64 = { nsec30, sec34 } var nsec30AndSecHigh2 = view.getUint32(0); var secLow32 = view.getUint32(4); var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32; var nsec = nsec30AndSecHigh2 >>> 2; return { sec: sec, nsec: nsec }; } case 12: { // timestamp 96 = { nsec32 (unsigned), sec64 (signed) } var sec = getInt64(view, 4); var nsec = view.getUint32(0); return { sec: sec, nsec: nsec }; } default: throw new DecodeError("Unrecognized data size for timestamp (expected 4, 8, or 12): ".concat(data.length)); } } function decodeTimestampExtension(data) { var timeSpec = decodeTimestampToTimeSpec(data); return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6); } var timestampExtension = { type: EXT_TIMESTAMP, encode: encodeTimestampExtension, decode: decodeTimestampExtension, }; //# sourceMappingURL=timestamp.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs // ExtensionCodec to handle MessagePack extensions var ExtensionCodec = /** @class */ (function () { function ExtensionCodec() { // built-in extensions this.builtInEncoders = []; this.builtInDecoders = []; // custom extensions this.encoders = []; this.decoders = []; this.register(timestampExtension); } ExtensionCodec.prototype.register = function (_a) { var type = _a.type, encode = _a.encode, decode = _a.decode; if (type >= 0) { // custom extensions this.encoders[type] = encode; this.decoders[type] = decode; } else { // built-in extensions var index = 1 + type; this.builtInEncoders[index] = encode; this.builtInDecoders[index] = decode; } }; ExtensionCodec.prototype.tryToEncode = function (object, context) { // built-in extensions for (var i = 0; i < this.builtInEncoders.length; i++) { var encodeExt = this.builtInEncoders[i]; if (encodeExt != null) { var data = encodeExt(object, context); if (data != null) { var type = -1 - i; return new ExtData(type, data); } } } // custom extensions for (var i = 0; i < this.encoders.length; i++) { var encodeExt = this.encoders[i]; if (encodeExt != null) { var data = encodeExt(object, context); if (data != null) { var type = i; return new ExtData(type, data); } } } if (object instanceof ExtData) { // to keep ExtData as is return object; } return null; }; ExtensionCodec.prototype.decode = function (data, type, context) { var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type]; if (decodeExt) { return decodeExt(data, type, context); } else { // decode() does not fail, returns ExtData instead. return new ExtData(type, data); } }; ExtensionCodec.defaultCodec = new ExtensionCodec(); return ExtensionCodec; }()); //# sourceMappingURL=ExtensionCodec.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs function ensureUint8Array(buffer) { if (buffer instanceof Uint8Array) { return buffer; } else if (ArrayBuffer.isView(buffer)) { return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); } else if (buffer instanceof ArrayBuffer) { return new Uint8Array(buffer); } else { // ArrayLike return Uint8Array.from(buffer); } } function createDataView(buffer) { if (buffer instanceof ArrayBuffer) { return new DataView(buffer); } var bufferView = ensureUint8Array(buffer); return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength); } //# sourceMappingURL=typedArrays.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs var DEFAULT_MAX_DEPTH = 100; var DEFAULT_INITIAL_BUFFER_SIZE = 2048; var Encoder = /** @class */ (function () { function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) { if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; } if (context === void 0) { context = undefined; } if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; } if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; } if (sortKeys === void 0) { sortKeys = false; } if (forceFloat32 === void 0) { forceFloat32 = false; } if (ignoreUndefined === void 0) { ignoreUndefined = false; } if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; } this.extensionCodec = extensionCodec; this.context = context; this.maxDepth = maxDepth; this.initialBufferSize = initialBufferSize; this.sortKeys = sortKeys; this.forceFloat32 = forceFloat32; this.ignoreUndefined = ignoreUndefined; this.forceIntegerToFloat = forceIntegerToFloat; this.pos = 0; this.view = new DataView(new ArrayBuffer(this.initialBufferSize)); this.bytes = new Uint8Array(this.view.buffer); } Encoder.prototype.getUint8Array = function () { return this.bytes.subarray(0, this.pos); }; Encoder.prototype.reinitializeState = function () { this.pos = 0; }; Encoder.prototype.encode = function (object) { this.reinitializeState(); this.doEncode(object, 1); return this.getUint8Array(); }; Encoder.prototype.doEncode = function (object, depth) { if (depth > this.maxDepth) { throw new Error("Too deep objects in depth ".concat(depth)); } if (object == null) { this.encodeNil(); } else if (typeof object === "boolean") { this.encodeBoolean(object); } else if (typeof object === "number") { this.encodeNumber(object); } else if (typeof object === "string") { this.encodeString(object); } else { this.encodeObject(object, depth); } }; Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) { var requiredSize = this.pos + sizeToWrite; if (this.view.byteLength < requiredSize) { this.resizeBuffer(requiredSize * 2); } }; Encoder.prototype.resizeBuffer = function (newSize) { var newBuffer = new ArrayBuffer(newSize); var newBytes = new Uint8Array(newBuffer); var newView = new DataView(newBuffer); newBytes.set(this.bytes); this.view = newView; this.bytes = newBytes; }; Encoder.prototype.encodeNil = function () { this.writeU8(0xc0); }; Encoder.prototype.encodeBoolean = function (object) { if (object === false) { this.writeU8(0xc2); } else { this.writeU8(0xc3); } }; Encoder.prototype.encodeNumber = function (object) { if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) { if (object >= 0) { if (object < 0x80) { // positive fixint this.writeU8(object); } else if (object < 0x100) { // uint 8 this.writeU8(0xcc); this.writeU8(object); } else if (object < 0x10000) { // uint 16 this.writeU8(0xcd); this.writeU16(object); } else if (object < 0x100000000) { // uint 32 this.writeU8(0xce); this.writeU32(object); } else { // uint 64 this.writeU8(0xcf); this.writeU64(object); } } else { if (object >= -0x20) { // negative fixint this.writeU8(0xe0 | (object + 0x20)); } else if (object >= -0x80) { // int 8 this.writeU8(0xd0); this.writeI8(object); } else if (object >= -0x8000) { // int 16 this.writeU8(0xd1); this.writeI16(object); } else if (object >= -0x80000000) { // int 32 this.writeU8(0xd2); this.writeI32(object); } else { // int 64 this.writeU8(0xd3); this.writeI64(object); } } } else { // non-integer numbers if (this.forceFloat32) { // float 32 this.writeU8(0xca); this.writeF32(object); } else { // float 64 this.writeU8(0xcb); this.writeF64(object); } } }; Encoder.prototype.writeStringHeader = function (byteLength) { if (byteLength < 32) { // fixstr this.writeU8(0xa0 + byteLength); } else if (byteLength < 0x100) { // str 8 this.writeU8(0xd9); this.writeU8(byteLength); } else if (byteLength < 0x10000) { // str 16 this.writeU8(0xda); this.writeU16(byteLength); } else if (byteLength < 0x100000000) { // str 32 this.writeU8(0xdb); this.writeU32(byteLength); } else { throw new Error("Too long string: ".concat(byteLength, " bytes in UTF-8")); } }; Encoder.prototype.encodeString = function (object) { var maxHeaderSize = 1 + 4; var strLength = object.length; if (strLength > TEXT_ENCODER_THRESHOLD) { var byteLength = utf8Count(object); this.ensureBufferSizeToWrite(maxHeaderSize + byteLength); this.writeStringHeader(byteLength); utf8EncodeTE(object, this.bytes, this.pos); this.pos += byteLength; } else { var byteLength = utf8Count(object); this.ensureBufferSizeToWrite(maxHeaderSize + byteLength); this.writeStringHeader(byteLength); utf8EncodeJs(object, this.bytes, this.pos); this.pos += byteLength; } }; Encoder.prototype.encodeObject = function (object, depth) { // try to encode objects with custom codec first of non-primitives var ext = this.extensionCodec.tryToEncode(object, this.context); if (ext != null) { this.encodeExtension(ext); } else if (Array.isArray(object)) { this.encodeArray(object, depth); } else if (ArrayBuffer.isView(object)) { this.encodeBinary(object); } else if (typeof object === "object") { this.encodeMap(object, depth); } else { // symbol, function and other special object come here unless extensionCodec handles them. throw new Error("Unrecognized object: ".concat(Object.prototype.toString.apply(object))); } }; Encoder.prototype.encodeBinary = function (object) { var size = object.byteLength; if (size < 0x100) { // bin 8 this.writeU8(0xc4); this.writeU8(size); } else if (size < 0x10000) { // bin 16 this.writeU8(0xc5); this.writeU16(size); } else if (size < 0x100000000) { // bin 32 this.writeU8(0xc6); this.writeU32(size); } else { throw new Error("Too large binary: ".concat(size)); } var bytes = ensureUint8Array(object); this.writeU8a(bytes); }; Encoder.prototype.encodeArray = function (object, depth) { var size = object.length; if (size < 16) { // fixarray this.writeU8(0x90 + size); } else if (size < 0x10000) { // array 16 this.writeU8(0xdc); this.writeU16(size); } else if (size < 0x100000000) { // array 32 this.writeU8(0xdd); this.writeU32(size); } else { throw new Error("Too large array: ".concat(size)); } for (var _i = 0, object_1 = object; _i < object_1.length; _i++) { var item = object_1[_i]; this.doEncode(item, depth + 1); } }; Encoder.prototype.countWithoutUndefined = function (object, keys) { var count = 0; for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { var key = keys_1[_i]; if (object[key] !== undefined) { count++; } } return count; }; Encoder.prototype.encodeMap = function (object, depth) { var keys = Object.keys(object); if (this.sortKeys) { keys.sort(); } var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length; if (size < 16) { // fixmap this.writeU8(0x80 + size); } else if (size < 0x10000) { // map 16 this.writeU8(0xde); this.writeU16(size); } else if (size < 0x100000000) { // map 32 this.writeU8(0xdf); this.writeU32(size); } else { throw new Error("Too large map object: ".concat(size)); } for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) { var key = keys_2[_i]; var value = object[key]; if (!(this.ignoreUndefined && value === undefined)) { this.encodeString(key); this.doEncode(value, depth + 1); } } }; Encoder.prototype.encodeExtension = function (ext) { var size = ext.data.length; if (size === 1) { // fixext 1 this.writeU8(0xd4); } else if (size === 2) { // fixext 2 this.writeU8(0xd5); } else if (size === 4) { // fixext 4 this.writeU8(0xd6); } else if (size === 8) { // fixext 8 this.writeU8(0xd7); } else if (size === 16) { // fixext 16 this.writeU8(0xd8); } else if (size < 0x100) { // ext 8 this.writeU8(0xc7); this.writeU8(size); } else if (size < 0x10000) { // ext 16 this.writeU8(0xc8); this.writeU16(size); } else if (size < 0x100000000) { // ext 32 this.writeU8(0xc9); this.writeU32(size); } else { throw new Error("Too large extension object: ".concat(size)); } this.writeI8(ext.type); this.writeU8a(ext.data); }; Encoder.prototype.writeU8 = function (value) { this.ensureBufferSizeToWrite(1); this.view.setUint8(this.pos, value); this.pos++; }; Encoder.prototype.writeU8a = function (values) { var size = values.length; this.ensureBufferSizeToWrite(size); this.bytes.set(values, this.pos); this.pos += size; }; Encoder.prototype.writeI8 = function (value) { this.ensureBufferSizeToWrite(1); this.view.setInt8(this.pos, value); this.pos++; }; Encoder.prototype.writeU16 = function (value) { this.ensureBufferSizeToWrite(2); this.view.setUint16(this.pos, value); this.pos += 2; }; Encoder.prototype.writeI16 = function (value) { this.ensureBufferSizeToWrite(2); this.view.setInt16(this.pos, value); this.pos += 2; }; Encoder.prototype.writeU32 = function (value) { this.ensureBufferSizeToWrite(4); this.view.setUint32(this.pos, value); this.pos += 4; }; Encoder.prototype.writeI32 = function (value) { this.ensureBufferSizeToWrite(4); this.view.setInt32(this.pos, value); this.pos += 4; }; Encoder.prototype.writeF32 = function (value) { this.ensureBufferSizeToWrite(4); this.view.setFloat32(this.pos, value); this.pos += 4; }; Encoder.prototype.writeF64 = function (value) { this.ensureBufferSizeToWrite(8); this.view.setFloat64(this.pos, value); this.pos += 8; }; Encoder.prototype.writeU64 = function (value) { this.ensureBufferSizeToWrite(8); setUint64(this.view, this.pos, value); this.pos += 8; }; Encoder.prototype.writeI64 = function (value) { this.ensureBufferSizeToWrite(8); setInt64(this.view, this.pos, value); this.pos += 8; }; return Encoder; }()); //# sourceMappingURL=Encoder.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs function prettyByte(byte) { return "".concat(byte < 0 ? "-" : "", "0x").concat(Math.abs(byte).toString(16).padStart(2, "0")); } //# sourceMappingURL=prettyByte.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs var DEFAULT_MAX_KEY_LENGTH = 16; var DEFAULT_MAX_LENGTH_PER_KEY = 16; var CachedKeyDecoder = /** @class */ (function () { function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) { if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; } if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; } this.maxKeyLength = maxKeyLength; this.maxLengthPerKey = maxLengthPerKey; this.hit = 0; this.miss = 0; // avoid `new Array(N)`, which makes a sparse array, // because a sparse array is typically slower than a non-sparse array. this.caches = []; for (var i = 0; i < this.maxKeyLength; i++) { this.caches.push([]); } } CachedKeyDecoder.prototype.canBeCached = function (byteLength) { return byteLength > 0 && byteLength <= this.maxKeyLength; }; CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) { var records = this.caches[byteLength - 1]; FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) { var record = records_1[_i]; var recordBytes = record.bytes; for (var j = 0; j < byteLength; j++) { if (recordBytes[j] !== bytes[inputOffset + j]) { continue FIND_CHUNK; } } return record.str; } return null; }; CachedKeyDecoder.prototype.store = function (bytes, value) { var records = this.caches[bytes.length - 1]; var record = { bytes: bytes, str: value }; if (records.length >= this.maxLengthPerKey) { // `records` are full! // Set `record` to an arbitrary position. records[(Math.random() * records.length) | 0] = record; } else { records.push(record); } }; CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) { var cachedValue = this.find(bytes, inputOffset, byteLength); if (cachedValue != null) { this.hit++; return cachedValue; } this.miss++; var str = utf8DecodeJs(bytes, inputOffset, byteLength); // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer. var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength); this.store(slicedCopyOfBytes, str); return str; }; return CachedKeyDecoder; }()); //# sourceMappingURL=CachedKeyDecoder.mjs.map ;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (undefined && undefined.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __asyncValues = (undefined && undefined.__asyncValues) || function (o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } }; var __await = (undefined && undefined.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } var __asyncGenerator = (undefined && undefined.__asyncGenerator) || function (thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } }; var isValidMapKeyType = function (key) { var keyType = typeof key; return keyType === "string" || keyType === "number"; }; var HEAD_BYTE_REQUIRED = -1; var EMPTY_VIEW = new DataView(new ArrayBuffer(0)); var EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer); // IE11: Hack to support IE11. // IE11: Drop this hack and just use RangeError when IE11 is obsolete. var DataViewIndexOutOfBoundsError = (function () { try { // IE11: The spec says it should throw RangeError, // IE11: but in IE11 it throws TypeError. EMPTY_VIEW.getInt8(0); } catch (e) { return e.constructor; } throw new Error("never reached"); })(); var MORE_DATA = new DataViewIndexOutOfBoundsError("Insufficient data"); var sharedCachedKeyDecoder = new CachedKeyDecoder(); var Decoder = /** @class */ (function () { function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) { if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; } if (context === void 0) { context = undefined; } if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; } if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; } if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; } if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; } if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; } if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; } this.extensionCodec = extensionCodec; this.context = context; this.maxStrLength = maxStrLength; this.maxBinLength = maxBinLength; this.maxArrayLength = maxArrayLength; this.maxMapLength = maxMapLength; this.maxExtLength = maxExtLength; this.keyDecoder = keyDecoder; this.totalPos = 0; this.pos = 0; this.view = EMPTY_VIEW; this.bytes = EMPTY_BYTES; this.headByte = HEAD_BYTE_REQUIRED; this.stack = []; } Decoder.prototype.reinitializeState = function () { this.totalPos = 0; this.headByte = HEAD_BYTE_REQUIRED; this.stack.length = 0; // view, bytes, and pos will be re-initialized in setBuffer() }; Decoder.prototype.setBuffer = function (buffer) { this.bytes = ensureUint8Array(buffer); this.view = createDataView(this.bytes); this.pos = 0; }; Decoder.prototype.appendBuffer = function (buffer) { if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) { this.setBuffer(buffer); } else { var remainingData = this.bytes.subarray(this.pos); var newData = ensureUint8Array(buffer); // concat remainingData + newData var newBuffer = new Uint8Array(remainingData.length + newData.length); newBuffer.set(remainingData); newBuffer.set(newData, remainingData.length); this.setBuffer(newBuffer); } }; Decoder.prototype.hasRemaining = function (size) { return this.view.byteLength - this.pos >= size; }; Decoder.prototype.createExtraByteError = function (posToShow) { var _a = this, view = _a.view, pos = _a.pos; return new RangeError("Extra ".concat(view.byteLength - pos, " of ").concat(view.byteLength, " byte(s) found at buffer[").concat(posToShow, "]")); }; /** * @throws {DecodeError} * @throws {RangeError} */ Decoder.prototype.decode = function (buffer) { this.reinitializeState(); this.setBuffer(buffer); var object = this.doDecodeSync(); if (this.hasRemaining(1)) { throw this.createExtraByteError(this.pos); } return object; }; Decoder.prototype.decodeMulti = function (buffer) { return __generator(this, function (_a) { switch (_a.label) { case 0: this.reinitializeState(); this.setBuffer(buffer); _a.label = 1; case 1: if (!this.hasRemaining(1)) return [3 /*break*/, 3]; return [4 /*yield*/, this.doDecodeSync()]; case 2: _a.sent(); return [3 /*break*/, 1]; case 3: return [2 /*return*/]; } }); }; Decoder.prototype.decodeAsync = function (stream) { var stream_1, stream_1_1; var e_1, _a; return __awaiter(this, void 0, void 0, function () { var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos; return __generator(this, function (_c) { switch (_c.label) { case 0: decoded = false; _c.label = 1; case 1: _c.trys.push([1, 6, 7, 12]); stream_1 = __asyncValues(stream); _c.label = 2; case 2: return [4 /*yield*/, stream_1.next()]; case 3: if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5]; buffer = stream_1_1.value; if (decoded) { throw this.createExtraByteError(this.totalPos); } this.appendBuffer(buffer); try { object = this.doDecodeSync(); decoded = true; } catch (e) { if (!(e instanceof DataViewIndexOutOfBoundsError)) { throw e; // rethrow } // fallthrough } this.totalPos += this.pos; _c.label = 4; case 4: return [3 /*break*/, 2]; case 5: return [3 /*break*/, 12]; case 6: e_1_1 = _c.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 12]; case 7: _c.trys.push([7, , 10, 11]); if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9]; return [4 /*yield*/, _a.call(stream_1)]; case 8: _c.sent(); _c.label = 9; case 9: return [3 /*break*/, 11]; case 10: if (e_1) throw e_1.error; return [7 /*endfinally*/]; case 11: return [7 /*endfinally*/]; case 12: if (decoded) { if (this.hasRemaining(1)) { throw this.createExtraByteError(this.totalPos); } return [2 /*return*/, object]; } _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos; throw new RangeError("Insufficient data in parsing ".concat(prettyByte(headByte), " at ").concat(totalPos, " (").concat(pos, " in the current buffer)")); } }); }); }; Decoder.prototype.decodeArrayStream = function (stream) { return this.decodeMultiAsync(stream, true); }; Decoder.prototype.decodeStream = function (stream) { return this.decodeMultiAsync(stream, false); }; Decoder.prototype.decodeMultiAsync = function (stream, isArray) { return __asyncGenerator(this, arguments, function decodeMultiAsync_1() { var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1; var e_3, _a; return __generator(this, function (_b) { switch (_b.label) { case 0: isArrayHeaderRequired = isArray; arrayItemsLeft = -1; _b.label = 1; case 1: _b.trys.push([1, 13, 14, 19]); stream_2 = __asyncValues(stream); _b.label = 2; case 2: return [4 /*yield*/, __await(stream_2.next())]; case 3: if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12]; buffer = stream_2_1.value; if (isArray && arrayItemsLeft === 0) { throw this.createExtraByteError(this.totalPos); } this.appendBuffer(buffer); if (isArrayHeaderRequired) { arrayItemsLeft = this.readArraySize(); isArrayHeaderRequired = false; this.complete(); } _b.label = 4; case 4: _b.trys.push([4, 9, , 10]); _b.label = 5; case 5: if (false) {} return [4 /*yield*/, __await(this.doDecodeSync())]; case 6: return [4 /*yield*/, _b.sent()]; case 7: _b.sent(); if (--arrayItemsLeft === 0) { return [3 /*break*/, 8]; } return [3 /*break*/, 5]; case 8: return [3 /*break*/, 10]; case 9: e_2 = _b.sent(); if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) { throw e_2; // rethrow } return [3 /*break*/, 10]; case 10: this.totalPos += this.pos; _b.label = 11; case 11: return [3 /*break*/, 2]; case 12: return [3 /*break*/, 19]; case 13: e_3_1 = _b.sent(); e_3 = { error: e_3_1 }; return [3 /*break*/, 19]; case 14: _b.trys.push([14, , 17, 18]); if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16]; return [4 /*yield*/, __await(_a.call(stream_2))]; case 15: _b.sent(); _b.label = 16; case 16: return [3 /*break*/, 18]; case 17: if (e_3) throw e_3.error; return [7 /*endfinally*/]; case 18: return [7 /*endfinally*/]; case 19: return [2 /*return*/]; } }); }); }; Decoder.prototype.doDecodeSync = function () { DECODE: while (true) { var headByte = this.readHeadByte(); var object = void 0; if (headByte >= 0xe0) { // negative fixint (111x xxxx) 0xe0 - 0xff object = headByte - 0x100; } else if (headByte < 0xc0) { if (headByte < 0x80) { // positive fixint (0xxx xxxx) 0x00 - 0x7f object = headByte; } else if (headByte < 0x90) { // fixmap (1000 xxxx) 0x80 - 0x8f var size = headByte - 0x80; if (size !== 0) { this.pushMapState(size); this.complete(); continue DECODE; } else { object = {}; } } else if (headByte < 0xa0) { // fixarray (1001 xxxx) 0x90 - 0x9f var size = headByte - 0x90; if (size !== 0) { this.pushArrayState(size); this.complete(); continue DECODE; } else { object = []; } } else { // fixstr (101x xxxx) 0xa0 - 0xbf var byteLength = headByte - 0xa0; object = this.decodeUtf8String(byteLength, 0); } } else if (headByte === 0xc0) { // nil object = null; } else if (headByte === 0xc2) { // false object = false; } else if (headByte === 0xc3) { // true object = true; } else if (headByte === 0xca) { // float 32 object = this.readF32(); } else if (headByte === 0xcb) { // float 64 object = this.readF64(); } else if (headByte === 0xcc) { // uint 8 object = this.readU8(); } else if (headByte === 0xcd) { // uint 16 object = this.readU16(); } else if (headByte === 0xce) { // uint 32 object = this.readU32(); } else if (headByte === 0xcf) { // uint 64 object = this.readU64(); } else if (headByte === 0xd0) { // int 8 object = this.readI8(); } else if (headByte === 0xd1) { // int 16 object = this.readI16(); } else if (headByte === 0xd2) { // int 32 object = this.readI32(); } else if (headByte === 0xd3) { // int 64 object = this.readI64(); } else if (headByte === 0xd9) { // str 8 var byteLength = this.lookU8(); object = this.decodeUtf8String(byteLength, 1); } else if (headByte === 0xda) { // str 16 var byteLength = this.lookU16(); object = this.decodeUtf8String(byteLength, 2); } else if (headByte === 0xdb) { // str 32 var byteLength = this.lookU32(); object = this.decodeUtf8String(byteLength, 4); } else if (headByte === 0xdc) { // array 16 var size = this.readU16(); if (size !== 0) { this.pushArrayState(size); this.complete(); continue DECODE; } else { object = []; } } else if (headByte === 0xdd) { // array 32 var size = this.readU32(); if (size !== 0) { this.pushArrayState(size); this.complete(); continue DECODE; } else { object = []; } } else if (headByte === 0xde) { // map 16 var size = this.readU16(); if (size !== 0) { this.pushMapState(size); this.complete(); continue DECODE; } else { object = {}; } } else if (headByte === 0xdf) { // map 32 var size = this.readU32(); if (size !== 0) { this.pushMapState(size); this.complete(); continue DECODE; } else { object = {}; } } else if (headByte === 0xc4) { // bin 8 var size = this.lookU8(); object = this.decodeBinary(size, 1); } else if (headByte === 0xc5) { // bin 16 var size = this.lookU16(); object = this.decodeBinary(size, 2); } else if (headByte === 0xc6) { // bin 32 var size = this.lookU32(); object = this.decodeBinary(size, 4); } else if (headByte === 0xd4) { // fixext 1 object = this.decodeExtension(1, 0); } else if (headByte === 0xd5) { // fixext 2 object = this.decodeExtension(2, 0); } else if (headByte === 0xd6) { // fixext 4 object = this.decodeExtension(4, 0); } else if (headByte === 0xd7) { // fixext 8 object = this.decodeExtension(8, 0); } else if (headByte === 0xd8) { // fixext 16 object = this.decodeExtension(16, 0); } else if (headByte === 0xc7) { // ext 8 var size = this.lookU8(); object = this.decodeExtension(size, 1); } else if (headByte === 0xc8) { // ext 16 var size = this.lookU16(); object = this.decodeExtension(size, 2); } else if (headByte === 0xc9) { // ext 32 var size = this.lookU32(); object = this.decodeExtension(size, 4); } else { throw new DecodeError("Unrecognized type byte: ".concat(prettyByte(headByte))); } this.complete(); var stack = this.stack; while (stack.length > 0) { // arrays and maps var state = stack[stack.length - 1]; if (state.type === 0 /* ARRAY */) { state.array[state.position] = object; state.position++; if (state.position === state.size) { stack.pop(); object = state.array; } else { continue DECODE; } } else if (state.type === 1 /* MAP_KEY */) { if (!isValidMapKeyType(object)) { throw new DecodeError("The type of key must be string or number but " + typeof object); } if (object === "__proto__") { throw new DecodeError("The key __proto__ is not allowed"); } state.key = object; state.type = 2 /* MAP_VALUE */; continue DECODE; } else { // it must be `state.type === State.MAP_VALUE` here state.map[state.key] = object; state.readCount++; if (state.readCount === state.size) { stack.pop(); object = state.map; } else { state.key = null; state.type = 1 /* MAP_KEY */; continue DECODE; } } } return object; } }; Decoder.prototype.readHeadByte = function () { if (this.headByte === HEAD_BYTE_REQUIRED) { this.headByte = this.readU8(); // console.log("headByte", prettyByte(this.headByte)); } return this.headByte; }; Decoder.prototype.complete = function () { this.headByte = HEAD_BYTE_REQUIRED; }; Decoder.prototype.readArraySize = function () { var headByte = this.readHeadByte(); switch (headByte) { case 0xdc: return this.readU16(); case 0xdd: return this.readU32(); default: { if (headByte < 0xa0) { return headByte - 0x90; } else { throw new DecodeError("Unrecognized array type byte: ".concat(prettyByte(headByte))); } } } }; Decoder.prototype.pushMapState = function (size) { if (size > this.maxMapLength) { throw new DecodeError("Max length exceeded: map length (".concat(size, ") > maxMapLengthLength (").concat(this.maxMapLength, ")")); } this.stack.push({ type: 1 /* MAP_KEY */, size: size, key: null, readCount: 0, map: {}, }); }; Decoder.prototype.pushArrayState = function (size) { if (size > this.maxArrayLength) { throw new DecodeError("Max length exceeded: array length (".concat(size, ") > maxArrayLength (").concat(this.maxArrayLength, ")")); } this.stack.push({ type: 0 /* ARRAY */, size: size, array: new Array(size), position: 0, }); }; Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) { var _a; if (byteLength > this.maxStrLength) { throw new DecodeError("Max length exceeded: UTF-8 byte length (".concat(byteLength, ") > maxStrLength (").concat(this.maxStrLength, ")")); } if (this.bytes.byteLength < this.pos + headerOffset + byteLength) { throw MORE_DATA; } var offset = this.pos + headerOffset; var object; if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) { object = this.keyDecoder.decode(this.bytes, offset, byteLength); } else if (byteLength > TEXT_DECODER_THRESHOLD) { object = utf8DecodeTD(this.bytes, offset, byteLength); } else { object = utf8DecodeJs(this.bytes, offset, byteLength); } this.pos += headerOffset + byteLength; return object; }; Decoder.prototype.stateIsMapKey = function () { if (this.stack.length > 0) { var state = this.stack[this.stack.length - 1]; return state.type === 1 /* MAP_KEY */; } return false; }; Decoder.prototype.decodeBinary = function (byteLength, headOffset) { if (byteLength > this.maxBinLength) { throw new DecodeError("Max length exceeded: bin length (".concat(byteLength, ") > maxBinLength (").concat(this.maxBinLength, ")")); } if (!this.hasRemaining(byteLength + headOffset)) { throw MORE_DATA; } var offset = this.pos + headOffset; var object = this.bytes.subarray(offset, offset + byteLength); this.pos += headOffset + byteLength; return object; }; Decoder.prototype.decodeExtension = function (size, headOffset) { if (size > this.maxExtLength) { throw new DecodeError("Max length exceeded: ext length (".concat(size, ") > maxExtLength (").concat(this.maxExtLength, ")")); } var extType = this.view.getInt8(this.pos + headOffset); var data = this.decodeBinary(size, headOffset + 1 /* extType */); return this.extensionCodec.decode(data, extType, this.context); }; Decoder.prototype.lookU8 = function () { return this.view.getUint8(this.pos); }; Decoder.prototype.lookU16 = function () { return this.view.getUint16(this.pos); }; Decoder.prototype.lookU32 = function () { return this.view.getUint32(this.pos); }; Decoder.prototype.readU8 = function () { var value = this.view.getUint8(this.pos); this.pos++; return value; }; Decoder.prototype.readI8 = function () { var value = this.view.getInt8(this.pos); this.pos++; return value; }; Decoder.prototype.readU16 = function () { var value = this.view.getUint16(this.pos); this.pos += 2; return value; }; Decoder.prototype.readI16 = function () { var value = this.view.getInt16(this.pos); this.pos += 2; return value; }; Decoder.prototype.readU32 = function () { var value = this.view.getUint32(this.pos); this.pos += 4; return value; }; Decoder.prototype.readI32 = function () { var value = this.view.getInt32(this.pos); this.pos += 4; return value; }; Decoder.prototype.readU64 = function () { var value = getUint64(this.view, this.pos); this.pos += 8; return value; }; Decoder.prototype.readI64 = function () { var value = getInt64(this.view, this.pos); this.pos += 8; return value; }; Decoder.prototype.readF32 = function () { var value = this.view.getFloat32(this.pos); this.pos += 4; return value; }; Decoder.prototype.readF64 = function () { var value = this.view.getFloat64(this.pos); this.pos += 8; return value; }; return Decoder; }()); //# sourceMappingURL=Decoder.mjs.map // EXTERNAL MODULE: external "signalR" var external_signalR_ = __webpack_require__(1); ;// CONCATENATED MODULE: ./src/BinaryMessageFormat.ts // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // Not exported from index. /** @private */ class BinaryMessageFormat { // The length prefix of binary messages is encoded as VarInt. Read the comment in // the BinaryMessageParser.TryParseMessage for details. static write(output) { let size = output.byteLength || output.length; const lenBuffer = []; do { let sizePart = size & 0x7f; size = size >> 7; if (size > 0) { sizePart |= 0x80; } lenBuffer.push(sizePart); } while (size > 0); size = output.byteLength || output.length; const buffer = new Uint8Array(lenBuffer.length + size); buffer.set(lenBuffer, 0); buffer.set(output, lenBuffer.length); return buffer.buffer; } static parse(input) { const result = []; const uint8Array = new Uint8Array(input); const maxLengthPrefixSize = 5; const numBitsToShift = [0, 7, 14, 21, 28]; for (let offset = 0; offset < input.byteLength;) { let numBytes = 0; let size = 0; let byteRead; do { byteRead = uint8Array[offset + numBytes]; size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes])); numBytes++; } while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0); if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) { throw new Error("Cannot read message size."); } if (numBytes === maxLengthPrefixSize && byteRead > 7) { throw new Error("Messages bigger than 2GB are not supported."); } if (uint8Array.byteLength >= (offset + numBytes + size)) { // IE does not support .slice() so use subarray result.push(uint8Array.slice ? uint8Array.slice(offset + numBytes, offset + numBytes + size) : uint8Array.subarray(offset + numBytes, offset + numBytes + size)); } else { throw new Error("Incomplete message."); } offset = offset + numBytes + size; } return result; } } ;// CONCATENATED MODULE: ./src/Utils.ts // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // Copied from signalr/Utils.ts /** @private */ function isArrayBuffer(val) { return val && typeof ArrayBuffer !== "undefined" && (val instanceof ArrayBuffer || // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof (val.constructor && val.constructor.name === "ArrayBuffer")); } ;// CONCATENATED MODULE: ./src/MessagePackHubProtocol.ts // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // TypeDoc's @inheritDoc and @link don't work across modules :( // constant encoding of the ping message // see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1 // Don't use Uint8Array.from as IE does not support it const SERIALIZED_PING_MESSAGE = new Uint8Array([0x91, external_signalR_.MessageType.Ping]); /** Implements the MessagePack Hub Protocol */ class MessagePackHubProtocol { /** * * @param messagePackOptions MessagePack options passed to @msgpack/msgpack */ constructor(messagePackOptions) { /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */ this.name = "messagepack"; /** The version of the protocol. */ this.version = 1; /** The TransferFormat of the protocol. */ this.transferFormat = external_signalR_.TransferFormat.Binary; this._errorResult = 1; this._voidResult = 2; this._nonVoidResult = 3; messagePackOptions = messagePackOptions || {}; this._encoder = new Encoder(messagePackOptions.extensionCodec, messagePackOptions.context, messagePackOptions.maxDepth, messagePackOptions.initialBufferSize, messagePackOptions.sortKeys, messagePackOptions.forceFloat32, messagePackOptions.ignoreUndefined, messagePackOptions.forceIntegerToFloat); this._decoder = new Decoder(messagePackOptions.extensionCodec, messagePackOptions.context, messagePackOptions.maxStrLength, messagePackOptions.maxBinLength, messagePackOptions.maxArrayLength, messagePackOptions.maxMapLength, messagePackOptions.maxExtLength); } /** Creates an array of HubMessage objects from the specified serialized representation. * * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation. * @param {ILogger} logger A logger that will be used to log messages that occur during parsing. */ parseMessages(input, logger) { // The interface does allow "string" to be passed in, but this implementation does not. So let's throw a useful error. if (!(isArrayBuffer(input))) { throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer."); } if (logger === null) { logger = external_signalR_.NullLogger.instance; } const messages = BinaryMessageFormat.parse(input); const hubMessages = []; for (const message of messages) { const parsedMessage = this._parseMessage(message, logger); // Can be null for an unknown message. Unknown message is logged in parseMessage if (parsedMessage) { hubMessages.push(parsedMessage); } } return hubMessages; } /** Writes the specified HubMessage to an ArrayBuffer and returns it. * * @param {HubMessage} message The message to write. * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message. */ writeMessage(message) { switch (message.type) { case external_signalR_.MessageType.Invocation: return this._writeInvocation(message); case external_signalR_.MessageType.StreamInvocation: return this._writeStreamInvocation(message); case external_signalR_.MessageType.StreamItem: return this._writeStreamItem(message); case external_signalR_.MessageType.Completion: return this._writeCompletion(message); case external_signalR_.MessageType.Ping: return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE); case external_signalR_.MessageType.CancelInvocation: return this._writeCancelInvocation(message); default: throw new Error("Invalid message type."); } } _parseMessage(input, logger) { if (input.length === 0) { throw new Error("Invalid payload."); } const properties = this._decoder.decode(input); if (properties.length === 0 || !(properties instanceof Array)) { throw new Error("Invalid payload."); } const messageType = properties[0]; switch (messageType) { case external_signalR_.MessageType.Invocation: return this._createInvocationMessage(this._readHeaders(properties), properties); case external_signalR_.MessageType.StreamItem: return this._createStreamItemMessage(this._readHeaders(properties), properties); case external_signalR_.MessageType.Completion: return this._createCompletionMessage(this._readHeaders(properties), properties); case external_signalR_.MessageType.Ping: return this._createPingMessage(properties); case external_signalR_.MessageType.Close: return this._createCloseMessage(properties); default: // Future protocol changes can add message types, old clients can ignore them logger.log(external_signalR_.LogLevel.Information, "Unknown message type '" + messageType + "' ignored."); return null; } } _createCloseMessage(properties) { // check minimum length to allow protocol to add items to the end of objects in future releases if (properties.length < 2) { throw new Error("Invalid payload for Close message."); } return { // Close messages have no headers. allowReconnect: properties.length >= 3 ? properties[2] : undefined, error: properties[1], type: external_signalR_.MessageType.Close, }; } _createPingMessage(properties) { // check minimum length to allow protocol to add items to the end of objects in future releases if (properties.length < 1) { throw new Error("Invalid payload for Ping message."); } return { // Ping messages have no headers. type: external_signalR_.MessageType.Ping, }; } _createInvocationMessage(headers, properties) { // check minimum length to allow protocol to add items to the end of objects in future releases if (properties.length < 5) { throw new Error("Invalid payload for Invocation message."); } const invocationId = properties[2]; if (invocationId) { return { arguments: properties[4], headers, invocationId, streamIds: [], target: properties[3], type: external_signalR_.MessageType.Invocation, }; } else { return { arguments: properties[4], headers, streamIds: [], target: properties[3], type: external_signalR_.MessageType.Invocation, }; } } _createStreamItemMessage(headers, properties) { // check minimum length to allow protocol to add items to the end of objects in future releases if (properties.length < 4) { throw new Error("Invalid payload for StreamItem message."); } return { headers, invocationId: properties[2], item: properties[3], type: external_signalR_.MessageType.StreamItem, }; } _createCompletionMessage(headers, properties) { // check minimum length to allow protocol to add items to the end of objects in future releases if (properties.length < 4) { throw new Error("Invalid payload for Completion message."); } const resultKind = properties[3]; if (resultKind !== this._voidResult && properties.length < 5) { throw new Error("Invalid payload for Completion message."); } let error; let result; switch (resultKind) { case this._errorResult: error = properties[4]; break; case this._nonVoidResult: result = properties[4]; break; } const completionMessage = { error, headers, invocationId: properties[2], result, type: external_signalR_.MessageType.Completion, }; return completionMessage; } _writeInvocation(invocationMessage) { let payload; if (invocationMessage.streamIds) { payload = this._encoder.encode([external_signalR_.MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null, invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]); } else { payload = this._encoder.encode([external_signalR_.MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null, invocationMessage.target, invocationMessage.arguments]); } return BinaryMessageFormat.write(payload.slice()); } _writeStreamInvocation(streamInvocationMessage) { let payload; if (streamInvocationMessage.streamIds) { payload = this._encoder.encode([external_signalR_.MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId, streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]); } else { payload = this._encoder.encode([external_signalR_.MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId, streamInvocationMessage.target, streamInvocationMessage.arguments]); } return BinaryMessageFormat.write(payload.slice()); } _writeStreamItem(streamItemMessage) { const payload = this._encoder.encode([external_signalR_.MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId, streamItemMessage.item]); return BinaryMessageFormat.write(payload.slice()); } _writeCompletion(completionMessage) { const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult; let payload; switch (resultKind) { case this._errorResult: payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]); break; case this._voidResult: payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]); break; case this._nonVoidResult: payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]); break; } return BinaryMessageFormat.write(payload.slice()); } _writeCancelInvocation(cancelInvocationMessage) { const payload = this._encoder.encode([external_signalR_.MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]); return BinaryMessageFormat.write(payload.slice()); } _readHeaders(properties) { const headers = properties[1]; if (typeof headers !== "object") { throw new Error("Invalid headers."); } return headers; } } ;// CONCATENATED MODULE: ./src/index.ts // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // Version token that will be replaced by the prepack command /** The version of the SignalR Message Pack protocol library. */ const VERSION = "6.0.10"; ;// CONCATENATED MODULE: ./src/browser-index.ts // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds. })(); /******/ return __webpack_exports__; /******/ })() ; }); //# sourceMappingURL=signalr-protocol-msgpack.js.map