{"version":3,"file":"objectsender.cjs","sources":["../../../node_modules/lodash-es/_freeGlobal.js","../../../node_modules/lodash-es/_root.js","../../../node_modules/lodash-es/_Symbol.js","../../../node_modules/lodash-es/_getRawTag.js","../../../node_modules/lodash-es/_objectToString.js","../../../node_modules/lodash-es/_baseGetTag.js","../../../node_modules/lodash-es/isObjectLike.js","../../../node_modules/lodash-es/isSymbol.js","../../../node_modules/lodash-es/_arrayMap.js","../../../node_modules/lodash-es/isArray.js","../../../node_modules/lodash-es/_baseToString.js","../../../node_modules/lodash-es/isObject.js","../../../node_modules/lodash-es/isFunction.js","../../../node_modules/lodash-es/_coreJsData.js","../../../node_modules/lodash-es/_isMasked.js","../../../node_modules/lodash-es/_toSource.js","../../../node_modules/lodash-es/_baseIsNative.js","../../../node_modules/lodash-es/_getValue.js","../../../node_modules/lodash-es/_getNative.js","../../../node_modules/lodash-es/eq.js","../../../node_modules/lodash-es/_isKey.js","../../../node_modules/lodash-es/_nativeCreate.js","../../../node_modules/lodash-es/_hashClear.js","../../../node_modules/lodash-es/_hashDelete.js","../../../node_modules/lodash-es/_hashGet.js","../../../node_modules/lodash-es/_hashHas.js","../../../node_modules/lodash-es/_hashSet.js","../../../node_modules/lodash-es/_Hash.js","../../../node_modules/lodash-es/_listCacheClear.js","../../../node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/lodash-es/_listCacheGet.js","../../../node_modules/lodash-es/_listCacheHas.js","../../../node_modules/lodash-es/_listCacheSet.js","../../../node_modules/lodash-es/_ListCache.js","../../../node_modules/lodash-es/_Map.js","../../../node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/lodash-es/_isKeyable.js","../../../node_modules/lodash-es/_getMapData.js","../../../node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/lodash-es/_MapCache.js","../../../node_modules/lodash-es/memoize.js","../../../node_modules/lodash-es/_memoizeCapped.js","../../../node_modules/lodash-es/_stringToPath.js","../../../node_modules/lodash-es/toString.js","../../../node_modules/lodash-es/_castPath.js","../../../node_modules/lodash-es/_toKey.js","../../../node_modules/lodash-es/_baseGet.js","../../../node_modules/lodash-es/get.js","../src/utils/Decorators.ts","../src/utils/Serializer.ts","../src/transports/ServerTransport.ts","../src/utils/Base.ts","../src/index.ts"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import 'reflect-metadata'\n\nconst detachMetadataKey = Symbol('detach')\nconst chunkableMetadataKey = Symbol('chunkable')\n\nexport function Detach() {\n  return Reflect.metadata(detachMetadataKey, true)\n}\n\nexport function Chunkable(size: number) {\n  return Reflect.metadata(chunkableMetadataKey, size)\n}\n\nexport function isDetached(target: object, propertyKey: string) {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n  const metadata = Reflect.getMetadata(detachMetadataKey, target, propertyKey)\n  return metadata ? true : false\n}\n\nexport function isChunkable(target: object, propertyKey: string) {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n  const metadata = Reflect.getMetadata(chunkableMetadataKey, target, propertyKey)\n  return metadata ? true : false\n}\n\nexport function getChunkSize(target: object, propertyKey: string) {\n  return Reflect.getMetadata(chunkableMetadataKey, target, propertyKey) as number\n}\n","/* eslint-disable camelcase */\nimport { ITransport } from '../transports/ITransport'\nimport { Base } from './Base'\nimport { IDisposable } from './IDisposable'\nimport { isObjectLike, get } from '#lodash'\nimport { getChunkSize, isChunkable, isDetached } from './Decorators'\nimport { md5 } from '@speckle/shared'\n\ntype BasicSpeckleObject = Record<string, unknown> & {\n  speckle_type: string\n}\n\nconst isSpeckleObject = (obj: unknown): obj is BasicSpeckleObject =>\n  isObjectLike(obj) && !!get(obj, 'speckle_type')\n\nexport class Serializer implements IDisposable {\n  chunkSize: number\n  detachLineage: boolean[]\n  lineage: string[]\n  familyTree: Record<string, Record<string, number>>\n  closureTable: Record<string, unknown>\n  transport: ITransport | null\n  uniqueId: number\n  hashingFunction: (s: string) => string\n\n  constructor(\n    transport: ITransport,\n    chunkSize: number = 1000,\n    hashingFunction: (s: string) => string = md5\n  ) {\n    this.chunkSize = chunkSize\n    this.detachLineage = [true] // first ever call is always detached\n    this.lineage = []\n    this.familyTree = {}\n    this.closureTable = {}\n    this.transport = transport\n    this.uniqueId = 0\n    this.hashingFunction = hashingFunction || md5\n  }\n\n  async write(obj: Base) {\n    return await this.#traverse(obj, true)\n  }\n\n  async #traverse(obj: Record<string, unknown>, root: boolean) {\n    const temporaryId = `${this.uniqueId++}-obj`\n    this.lineage.push(temporaryId)\n\n    const traversed = { speckle_type: obj.speckle_type || 'Base' } as Record<\n      string,\n      unknown\n    >\n\n    for (const propKey in obj) {\n      const value = obj[propKey]\n      // 0. skip some props\n      if (value === undefined || propKey === 'id' || propKey.startsWith('_')) continue\n\n      // 1. primitives (numbers, bools, strings)\n      if (value === null || typeof value !== 'object') {\n        traversed[propKey] = value\n        continue\n      }\n\n      const isDetachedProp = propKey.startsWith('@') || isDetached(obj, propKey)\n\n      // 2. chunked arrays\n      const isArray = Array.isArray(value)\n      const isChunked = isArray\n        ? isChunkable(obj, propKey) || propKey.match(/^@\\((\\d*)\\)/)\n        : false // chunk syntax\n\n      if (isArray && isChunked && value.length !== 0 && typeof value[0] !== 'object') {\n        let chunkSize = this.chunkSize\n        if (typeof isChunked === 'boolean') {\n          chunkSize = getChunkSize(obj, propKey)\n        } else {\n          chunkSize = isChunked[1] !== '' ? parseInt(isChunked[1]) : this.chunkSize\n        }\n\n        const chunkRefs = []\n\n        let chunk = new DataChunk()\n        let count = 0\n        for (const el of value) {\n          if (count === chunkSize) {\n            chunkRefs.push(await this.#handleChunk(chunk))\n            chunk = new DataChunk()\n            count = 0\n          }\n          chunk.data.push(el)\n          count++\n        }\n\n        if (chunk.data.length !== 0) chunkRefs.push(await this.#handleChunk(chunk))\n\n        if (typeof isChunked === 'boolean') {\n          traversed[propKey] = chunkRefs // no need to strip chunk syntax\n        } else {\n          traversed[propKey.replace(isChunked[0], '')] = chunkRefs // strip chunk syntax\n        }\n\n        continue\n      }\n\n      // 3. speckle objects\n      if ((value as Record<string, unknown>).speckle_type) {\n        const child = (await this.#traverseValue({\n          value,\n          isDetached: isDetachedProp\n        })) as {\n          id: string\n        }\n        traversed[propKey] = isDetachedProp ? this.#detachHelper(child.id) : child\n        continue\n      }\n\n      // 4. other objects (dicts/maps, lists)\n      traversed[propKey] = await this.#traverseValue({\n        value,\n        isDetached: isDetachedProp\n      })\n    }\n    // We've finished going through all the properties of this object, now let's perform the last rites\n    const detached = this.detachLineage.pop()\n    const parent = this.lineage.pop() as string\n\n    if (this.familyTree[parent]) {\n      const closure = {} as Record<string, number>\n\n      Object.entries(this.familyTree[parent]).forEach(([ref, depth]) => {\n        closure[ref] = depth - this.detachLineage.length\n      })\n\n      traversed['totalChildrenCount'] = Object.keys(closure).length\n\n      if (traversed['totalChildrenCount']) {\n        traversed['__closure'] = closure\n      }\n    }\n\n    const { hash, serializedObject, size } = this.#generateId(traversed)\n    traversed.id = hash\n\n    // Pop it in\n    if ((detached || root) && this.transport) {\n      await this.transport.write(serializedObject, size, hash)\n    }\n\n    // We've reached the end, let's flush\n    if (root && this.transport) {\n      await this.transport.flush()\n    }\n\n    return { hash, traversed }\n  }\n\n  async #traverseValue({\n    value,\n    isDetached = false\n  }: {\n    value: unknown\n    isDetached?: boolean\n  }): Promise<unknown> {\n    // 1. primitives\n    if (typeof value !== 'object') return value\n\n    // 2. arrays\n    if (Array.isArray(value)) {\n      const arr = value as unknown[]\n      // 2.1 empty arrays\n      if (arr.length === 0) return value as unknown\n\n      // 2.2 primitive arrays\n      if (typeof arr[0] !== 'object') return arr\n\n      // 2.3. non-primitive non-detached arrays\n      if (!isDetached) {\n        return Promise.all(\n          value.map(async (el) => await this.#traverseValue({ value: el }))\n        )\n      }\n\n      // 2.4 non-primitive detached arrays\n      const detachedList = [] as unknown[]\n      for (const el of value) {\n        if (isSpeckleObject(el)) {\n          this.detachLineage.push(isDetached)\n          const { hash } = await this.#traverse(el, false)\n          detachedList.push(this.#detachHelper(hash))\n        } else {\n          detachedList.push(await this.#traverseValue({ value: el, isDetached }))\n        }\n      }\n      return detachedList\n    }\n\n    // 3. dicts\n    if (!(value as { speckle_type?: string }).speckle_type) return value\n\n    // 4. base objects\n    if ((value as { speckle_type?: string }).speckle_type) {\n      this.detachLineage.push(isDetached)\n      const res = await this.#traverse(value as Record<string, unknown>, false)\n      return res.traversed\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-base-to-string\n    throw new Error(`Unsupported type '${typeof value}': ${value}.`)\n  }\n\n  #detachHelper(refHash: string) {\n    this.lineage.forEach((parent) => {\n      if (!this.familyTree[parent]) this.familyTree[parent] = {}\n\n      if (\n        !this.familyTree[parent][refHash] ||\n        this.familyTree[parent][refHash] > this.detachLineage.length\n      ) {\n        this.familyTree[parent][refHash] = this.detachLineage.length\n      }\n    })\n    return {\n      referencedId: refHash,\n      speckle_type: 'reference'\n    }\n  }\n\n  async #handleChunk(chunk: DataChunk) {\n    this.detachLineage.push(true)\n    const { hash } = await this.#traverse(\n      chunk as unknown as Record<string, unknown>,\n      false\n    )\n    return this.#detachHelper(hash)\n  }\n\n  #generateId(obj: Record<string, unknown>) {\n    const s = JSON.stringify(obj)\n    const h = this.hashingFunction(s)\n    const f = s.substring(0, 1) + `\"id\":\"${h}\",` + s.substring(1)\n    return {\n      hash: h,\n      serializedObject: f,\n      size: s.length // approx, good enough as we're just limiting artificially batch sizes based on this\n    }\n  }\n\n  dispose() {\n    this.detachLineage = []\n    this.lineage = []\n    this.familyTree = {}\n    this.closureTable = {}\n    this.transport = null\n  }\n}\n\nclass DataChunk {\n  speckle_type: 'Speckle.Core.Models.DataChunk'\n  data: unknown[]\n  constructor() {\n    this.data = []\n    this.speckle_type = 'Speckle.Core.Models.DataChunk'\n  }\n}\n","import { ITransport } from './ITransport'\nimport { IDisposable } from '../utils/IDisposable'\nimport { retry, timeoutAt, TIME_MS } from '@speckle/shared'\n\nexport type TransportOptions = Partial<{\n  maxSize: number\n  flushRetryCount: number\n  flushTimeout: number\n}>\n\n/**\n * Basic object sender to a speckle server\n */\nexport class ServerTransport implements ITransport, IDisposable {\n  #buffer: [string, string][]\n  #maxSize: number\n  #currSize: number\n  #serverUrl: string\n  #projectId: string\n  #authToken: string\n  #flushRetryCount: number\n  #flushTimeout: number\n\n  constructor(\n    serverUrl: string,\n    projectId: string,\n    authToken: string,\n    options?: TransportOptions\n  ) {\n    this.#maxSize = options?.maxSize || 200_000\n    this.#flushRetryCount = options?.flushRetryCount || 3\n    this.#flushTimeout = options?.flushTimeout || 2 * TIME_MS.minute\n\n    this.#currSize = 0\n    this.#serverUrl = serverUrl\n    this.#projectId = projectId\n    this.#authToken = authToken\n    this.#buffer = []\n  }\n\n  async write(serialisedObject: string, size: number, objectId: string) {\n    this.#buffer.push([objectId, serialisedObject])\n    this.#currSize += size\n    if (this.#currSize < this.#maxSize) return // return fast\n    await this.flush() // block until we send objects\n  }\n\n  async flush() {\n    if (this.#buffer.length === 0) return\n\n    const speckleObjects = await this.diff()\n    const formData = new FormData()\n    const concat = '[' + speckleObjects.join(',') + ']'\n    formData.append('object-batch', new Blob([concat], { type: 'application/json' }))\n    const url = new URL(`/objects/${this.#projectId}`, this.#serverUrl)\n    const res = await retry(\n      async () =>\n        await Promise.race([\n          fetch(url, {\n            method: 'POST',\n            headers: { Authorization: `Bearer ${this.#authToken}` },\n            body: formData\n          }),\n          timeoutAt(this.#flushTimeout, 'Object sender flush timed out')\n        ]),\n      this.#flushRetryCount,\n      (i) => {\n        return i * TIME_MS.second\n      }\n    )\n\n    if (res.status !== 201) {\n      throw new Error(\n        `Unexpected error when sending data. Expected status 200, got ${res.status}`\n      )\n    }\n\n    this.#buffer = []\n    this.#currSize = 0\n  }\n\n  async diff() {\n    const objectIds = this.#buffer.map(([id]) => id)\n\n    const url = new URL(`/api/diff/${this.#projectId}`, this.#serverUrl)\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: {\n        Authorization: `Bearer ${this.#authToken}`,\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({ objects: JSON.stringify(objectIds) })\n    })\n\n    if (!response.ok) {\n      const data = (await response.json()) as { error: Error }\n      throw new Error(\n        `Unexpected error when sending data. Received ${data.error.message}`\n      )\n    }\n\n    const existingObjects = (await response.json()) as Record<string, boolean>\n\n    return this.#buffer.filter(([id]) => !existingObjects[id]).map(([, value]) => value)\n  }\n\n  dispose() {\n    this.#buffer = []\n  }\n}\n","/* eslint-disable camelcase */\n/**\n * Basic 'Base'-like object from .NET. It will create a 'speckle_type' prop that defaults to the class' name. This can be overriden by providing yourself a 'speckle_type' property in the props argument of the constructor.\n */\nexport class Base implements Record<string, unknown> {\n  speckle_type: string\n  constructor(props?: Record<string, unknown>) {\n    this.speckle_type = this.constructor.name\n\n    if (props) {\n      for (const key in props) this[key] = props[key]\n    }\n  }\n  [x: string]: unknown\n}\n","import { Serializer } from './utils/Serializer'\nimport { ServerTransport } from './transports/ServerTransport'\nimport type { TransportOptions } from './transports/ServerTransport'\nimport { Base } from './utils/Base'\nimport { TIME_MS } from '@speckle/shared'\nexport { Base }\n\nexport { Detach, Chunkable } from './utils/Decorators'\n\nexport type SendParams = {\n  serverUrl?: string\n  projectId: string\n  token: string\n  logger?: {\n    log: (message: unknown) => void\n    error: (message: unknown) => void\n  }\n  options?: {\n    transport: TransportOptions\n    chunkSize?: number\n    hashingFunction?: (s: string) => string\n  }\n}\n\nexport type SendResult = {\n  hash: string\n  traversed: Record<string, unknown>\n}\n\n/**\n * Decomposes, serializes and sends to a speckle server a given object. Note, for objects to be detached, they need to have a 'speckle_type' property.\n * @param object object to decompose, serialise and send to speckle\n * @param parameters: server url, project id and token\n * @returns the hash of the root object and the value of the root object\n */\nexport const send = async (\n  object: Base,\n  {\n    serverUrl = 'https://app.speckle.systems',\n    projectId,\n    token,\n    logger = console,\n    options = undefined\n  }: SendParams\n) => {\n  const t0 = performance.now()\n  logger?.log('Starting to send')\n  const transport = new ServerTransport(serverUrl, projectId, token, options?.transport)\n  const serializer = new Serializer(\n    transport,\n    options?.chunkSize,\n    options?.hashingFunction\n  )\n\n  let result: SendResult\n  try {\n    result = await serializer.write(object)\n  } finally {\n    transport.dispose()\n    serializer.dispose()\n  }\n  const t1 = performance.now()\n  logger.log(`Finished sending in ${(t1 - t0) / TIME_MS.second}s.`)\n  return result\n}\n"],"names":["freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","array","iteratee","index","length","isArray","symbolProto","symbolToString","baseToString","isObject","type","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","maskSrcKey","uid","isMasked","func","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","object","key","getNative","eq","other","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","data","hashHas","hashSet","Hash","entries","entry","listCacheClear","assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","isKeyable","getMapData","map","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","size","MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","cache","MAX_MEMOIZE_SIZE","memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","toString","castPath","toKey","baseGet","path","get","defaultValue","detachMetadataKey","chunkableMetadataKey","Detach","Chunkable","isDetached","target","propertyKey","isChunkable","getChunkSize","isSpeckleObject","obj","Serializer","transport","chunkSize","hashingFunction","md5","__privateAdd","_Serializer_instances","__publicField","__privateMethod","traverse_fn","temporaryId","traversed","propKey","isDetachedProp","isChunked","chunkRefs","chunk","DataChunk","count","el","handleChunk_fn","child","traverseValue_fn","detachHelper_fn","detached","parent","closure","ref","depth","hash","serializedObject","generateId_fn","arr","detachedList","refHash","s","h","f","ServerTransport","serverUrl","projectId","authToken","options","_buffer","_maxSize","_currSize","_serverUrl","_projectId","_authToken","_flushRetryCount","_flushTimeout","__privateSet","TIME_MS","serialisedObject","objectId","__privateGet","speckleObjects","formData","concat","url","res","retry","timeoutAt","i","objectIds","id","response","existingObjects","Base","props","send","token","logger","t0","serializer","t1"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]}