{"version":3,"file":"static/js/vendor.initial~3bc97332.f6273a26.js","mappings":"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","sources":["../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/bond_const.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.encoding.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.floatutils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.io.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.primitives.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/bond/microsoft.bond.utils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTClockSkewManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTKillSwitch.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTNotificationManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTRecordBatcher.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTRetryPolicy.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTSerializer.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/AWTStatsManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/Enums.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/common/Utils.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTAutoCollection.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTEventProperties.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTHttpManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogManagerSettings.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTLogger.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTQueueManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTSemanticContext.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTTransmissionManager.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AWTTransmissionManagerCore.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/AriaSDK.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/DataModels.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/Enums.js","../../../../node_modules/.pnpm/@aria+webjs-sdk@1.8.4/node_modules/@aria/webjs-sdk/dist/src/webjs/Version.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js","../../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/dist/browser/axios.cjs","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/bind.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/utils.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/AxiosError.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/toFormData.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/buildURL.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/InterceptorManager.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/defaults/transitional.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/browser/index.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/browser/classes/FormData.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/browser/classes/Blob.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/common/utils.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/platform/index.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/defaults/index.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/parseHeaders.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/AxiosHeaders.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/transformData.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/cancel/isCancel.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/cancel/CanceledError.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/settle.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/speedometer.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/throttle.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/progressEventReducer.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/cookies.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/buildFullPath.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/combineURLs.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/mergeConfig.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/resolveConfig.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/adapters/xhr.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/parseProtocol.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/composeSignals.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/trackStream.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/adapters/fetch.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/adapters/adapters.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/null.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/dispatchRequest.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/env/data.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/validator.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/core/Axios.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/cancel/CancelToken.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/axios.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/spread.js","../../../../node_modules/.pnpm/axios@1.8.2/node_modules/axios/lib/helpers/isAxiosError.js"],"sourcesContent":["\"use strict\";\r\n/**\r\n* bond_const.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//------------------------------------------------------------------------------\r\n// \r\n// This code was generated by a tool.\r\n//\r\n// Tool : bondc, Version=3.0.1, Build=bond-git.debug.not\r\n// Template : Microsoft.Bond.Rules.dll#TypeScript.tt\r\n// File : bond_const.ts\r\n//\r\n// Changes to this file may cause incorrect behavior and will be lost when\r\n// the code is regenerated.\r\n// \r\n//------------------------------------------------------------------------------\r\nvar _BondDataType;\r\n(function (_BondDataType) {\r\n _BondDataType[_BondDataType[\"_BT_STOP\"] = 0] = \"_BT_STOP\";\r\n _BondDataType[_BondDataType[\"_BT_STOP_BASE\"] = 1] = \"_BT_STOP_BASE\";\r\n _BondDataType[_BondDataType[\"_BT_BOOL\"] = 2] = \"_BT_BOOL\";\r\n _BondDataType[_BondDataType[\"_BT_DOUBLE\"] = 8] = \"_BT_DOUBLE\";\r\n _BondDataType[_BondDataType[\"_BT_STRING\"] = 9] = \"_BT_STRING\";\r\n _BondDataType[_BondDataType[\"_BT_STRUCT\"] = 10] = \"_BT_STRUCT\";\r\n _BondDataType[_BondDataType[\"_BT_LIST\"] = 11] = \"_BT_LIST\";\r\n _BondDataType[_BondDataType[\"_BT_MAP\"] = 13] = \"_BT_MAP\";\r\n _BondDataType[_BondDataType[\"_BT_INT32\"] = 16] = \"_BT_INT32\";\r\n _BondDataType[_BondDataType[\"_BT_INT64\"] = 17] = \"_BT_INT64\";\r\n})(_BondDataType = exports._BondDataType || (exports._BondDataType = {}));\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.encoding.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nvar microsoft_bond_floatutils_1 = require(\"./microsoft.bond.floatutils\");\r\nvar microsoft_bond_utils_1 = require(\"./microsoft.bond.utils\");\r\nfunction _Utf8_GetBytes(value) {\r\n var array = [];\r\n for (var i = 0; i < value.length; ++i) {\r\n var char = value.charCodeAt(i);\r\n if (char < 0x80) {\r\n array.push(char);\r\n }\r\n else if (char < 0x800) {\r\n array.push(0xc0 | (char >> 6), 0x80 | (char & 0x3f));\r\n }\r\n else if (char < 0xd800 || char >= 0xe000) {\r\n array.push(0xe0 | (char >> 12), 0x80 | ((char >> 6) & 0x3f), 0x80 | (char & 0x3f));\r\n }\r\n else {\r\n char = 0x10000 + (((char & 0x3ff) << 10) | (value.charCodeAt(++i) & 0x3ff));\r\n array.push(0xf0 | (char >> 18), 0x80 | ((char >> 12) & 0x3f), 0x80 | ((char >> 6) & 0x3f), 0x80 | (char & 0x3f));\r\n }\r\n }\r\n return array;\r\n}\r\nexports._Utf8_GetBytes = _Utf8_GetBytes;\r\nfunction _Base64_GetString(inArray) {\r\n var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var output = [];\r\n var paddingBytes = inArray.length % 3;\r\n var toBase64 = function (num) {\r\n return [lookup.charAt((num >> 18) & 0x3F),\r\n lookup.charAt((num >> 12) & 0x3F),\r\n lookup.charAt((num >> 6) & 0x3F),\r\n lookup.charAt(num & 0x3F)].join('');\r\n };\r\n for (var i = 0, length_1 = inArray.length - paddingBytes; i < length_1; i += 3) {\r\n var temp = (inArray[i] << 16) + (inArray[i + 1] << 8) + (inArray[i + 2]);\r\n output.push(toBase64(temp));\r\n }\r\n switch (paddingBytes) {\r\n case 1:\r\n var temp = inArray[inArray.length - 1];\r\n output.push(lookup.charAt(temp >> 2));\r\n output.push(lookup.charAt((temp << 4) & 0x3F));\r\n output.push('==');\r\n break;\r\n case 2:\r\n var temp2 = (inArray[inArray.length - 2] << 8) + (inArray[inArray.length - 1]);\r\n output.push(lookup.charAt(temp2 >> 10));\r\n output.push(lookup.charAt((temp2 >> 4) & 0x3F));\r\n output.push(lookup.charAt((temp2 << 2) & 0x3F));\r\n output.push('=');\r\n break;\r\n }\r\n return output.join('');\r\n}\r\nexports._Base64_GetString = _Base64_GetString;\r\nfunction _Varint_GetBytes(value) {\r\n var array = [];\r\n while (value & 0xffffff80) {\r\n array.push((value & 0x7f) | 0x80);\r\n value >>>= 7;\r\n }\r\n array.push(value & 0x7f);\r\n return array;\r\n}\r\nexports._Varint_GetBytes = _Varint_GetBytes;\r\nfunction _Varint64_GetBytes(value) {\r\n var low = value.low;\r\n var high = value.high;\r\n var array = [];\r\n while (high || (0xffffff80 & low)) {\r\n array.push((low & 0x7f) | 0x80);\r\n low = ((high & 0x7f) << 25) | (low >>> 7);\r\n high >>>= 7;\r\n }\r\n array.push(low & 0x7f);\r\n return array;\r\n}\r\nexports._Varint64_GetBytes = _Varint64_GetBytes;\r\n// Note: see notes of Float.\r\nfunction _Double_GetBytes(value) {\r\n if (microsoft_bond_utils_1.BrowserChecker._IsDataViewSupport()) {\r\n var view = new DataView(new ArrayBuffer(8));\r\n view.setFloat64(0, value, true /*littleEndian*/);\r\n var array = [];\r\n for (var i = 0; i < 8; ++i) {\r\n array.push(view.getUint8(i));\r\n }\r\n return array;\r\n }\r\n else {\r\n return microsoft_bond_floatutils_1.FloatUtils._ConvertNumberToArray(value, true /*isDouble*/);\r\n }\r\n}\r\nexports._Double_GetBytes = _Double_GetBytes;\r\nfunction _Zigzag_EncodeZigzag32(value) {\r\n value = microsoft_bond_primitives_1.Number._ToInt32(value);\r\n return ((value << 1) ^ (value >> (4 /*sizeof(int)*/ * 8 - 1)));\r\n}\r\nexports._Zigzag_EncodeZigzag32 = _Zigzag_EncodeZigzag32;\r\nfunction _Zigzag_EncodeZigzag64(value) {\r\n var low = value.low;\r\n var high = value.high;\r\n var tmpH = (high << 1) | (low >>> 31);\r\n var tmpL = low << 1;\r\n if (high & 0x80000000) {\r\n tmpH = ~tmpH;\r\n tmpL = ~tmpL;\r\n }\r\n var res = new microsoft_bond_primitives_1.UInt64('0');\r\n res.low = tmpL;\r\n res.high = tmpH;\r\n return res;\r\n}\r\nexports._Zigzag_EncodeZigzag64 = _Zigzag_EncodeZigzag64;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* microsoft.bond.floatutils.ts\r\n* Copyright: Microsoft 2016\r\n*\r\n* This class will be used to convert float/double to byte array on browsers which don't support html5.\r\n*\r\n* Format: IEEE-754, littleEndian, http://en.wikipedia.org/wiki/IEEE_754-1985\r\n*\r\n* \\note\r\n* 1. Don't have negative zero. All zero will be positive zero.\r\n* 2. If the buffer array passed to ConvertArrayToFloat() is actual NaN or Inifinity value,\r\n* exception will be raised.\r\n*/\r\nvar FloatUtils = /** @class */ (function () {\r\n function FloatUtils() {\r\n }\r\n FloatUtils._ConvertNumberToArray = function (num, isDouble) {\r\n if (!num) {\r\n return isDouble ? this._doubleZero : this._floatZero;\r\n }\r\n var exponentBits = isDouble ? 11 : 8;\r\n var precisionBits = isDouble ? 52 : 23;\r\n // follow IEEE-754, exponent bias is 2^(k-1)-1 where k is the number of bits\r\n // in the exponent: http://en.wikipedia.org/wiki/Exponent_bias\r\n var bias = (1 << (exponentBits - 1)) - 1;\r\n var minExponent = 1 - bias;\r\n var maxExponent = bias;\r\n var sign = num < 0 ? 1 : 0;\r\n num = Math.abs(num);\r\n var intPart = Math.floor(num);\r\n var floatPart = num - intPart;\r\n var len = 2 * (bias + 2) + precisionBits;\r\n var buffer = new Array(len);\r\n var i = 0;\r\n while (i < len) {\r\n buffer[i++] = 0;\r\n }\r\n // caculate the intPart\r\n i = bias + 2;\r\n while (i && intPart) {\r\n buffer[--i] = intPart % 2;\r\n intPart = Math.floor(intPart / 2);\r\n }\r\n // caculate the floatPart\r\n i = bias + 1;\r\n while (i < len - 1 && floatPart > 0) {\r\n floatPart *= 2;\r\n if (floatPart >= 1) {\r\n buffer[++i] = 1;\r\n --floatPart;\r\n }\r\n else {\r\n buffer[++i] = 0;\r\n }\r\n }\r\n // find the first 1\r\n var firstBit = 0;\r\n while (firstBit < len && !buffer[firstBit]) {\r\n firstBit++;\r\n }\r\n // caculate exponent\r\n var exponent = bias + 1 - firstBit;\r\n // caculate round\r\n var lastBit = firstBit + precisionBits;\r\n if (buffer[lastBit + 1]) {\r\n for (i = lastBit; i > firstBit; --i) {\r\n buffer[i] = 1 - buffer[i];\r\n if (buffer) {\r\n break;\r\n }\r\n }\r\n if (i === firstBit) {\r\n ++exponent;\r\n }\r\n }\r\n // check overflow\r\n if (exponent > maxExponent || intPart) {\r\n if (sign) {\r\n return isDouble ? this._doubleNegInifinity : this._floatNegInifinity;\r\n }\r\n else {\r\n return isDouble ? this._doubleInifinity : this._floatInifinity;\r\n }\r\n }\r\n else if (exponent < minExponent) {\r\n return isDouble ? this._doubleZero : this._floatZero;\r\n }\r\n // caculate the result\r\n if (isDouble) {\r\n var high = 0;\r\n for (i = 0; i < 20; ++i) {\r\n high = (high << 1) | buffer[++firstBit];\r\n }\r\n var low = 0;\r\n for (; i < 52; ++i) {\r\n low = (low << 1) | buffer[++firstBit];\r\n }\r\n high |= (exponent + bias) << 20;\r\n high = (sign << 31) | (high & 0x7FFFFFFF);\r\n var resArray = [low & 0xff, (low >> 8) & 0xff, (low >> 16) & 0xff, low >>> 24,\r\n high & 0xff, (high >> 8) & 0xff, (high >> 16) & 0xff, high >>> 24];\r\n return resArray;\r\n }\r\n else {\r\n var result = 0;\r\n for (i = 0; i < 23; ++i) {\r\n result = (result << 1) | buffer[++firstBit];\r\n }\r\n result |= (exponent + bias) << 23;\r\n result = (sign << 31) | (result & 0x7FFFFFFF);\r\n var resArray = [result & 0xff, (result >> 8) & 0xff, (result >> 16) & 0xff, result >>> 24];\r\n return resArray;\r\n }\r\n };\r\n FloatUtils._floatZero = [0x00, 0x00, 0x00, 0x00];\r\n FloatUtils._doubleZero = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00];\r\n FloatUtils._floatInifinity = [0x00, 0x00, 0x80, 0x7F];\r\n FloatUtils._floatNegInifinity = [0x00, 0x00, 0x80, 0xFF];\r\n FloatUtils._doubleInifinity = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f];\r\n FloatUtils._doubleNegInifinity = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff];\r\n return FloatUtils;\r\n}());\r\nexports.FloatUtils = FloatUtils;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* microsoft.bond.io.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nvar MemoryStream = /** @class */ (function () {\r\n function MemoryStream() {\r\n this._buffer = [];\r\n }\r\n /*override*/\r\n MemoryStream.prototype._WriteByte = function (byte) {\r\n this._buffer.push(microsoft_bond_primitives_1.Number._ToByte(byte));\r\n };\r\n /*override*/\r\n MemoryStream.prototype._Write = function (buffer, offset, count) {\r\n while (count--) {\r\n this._WriteByte(buffer[offset++]);\r\n }\r\n };\r\n /**\r\n * Returns the array of unsigned bytes from which this stream was created.\r\n */\r\n MemoryStream.prototype._GetBuffer = function () {\r\n return this._buffer;\r\n };\r\n return MemoryStream;\r\n}());\r\nexports.MemoryStream = MemoryStream;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar bond_const_1 = require(\"./bond_const\");\r\nexports._BondDataType = bond_const_1._BondDataType;\r\nvar _Encoding = require(\"./microsoft.bond.encoding\");\r\nexports._Encoding = _Encoding;\r\nvar IO = require(\"./microsoft.bond.io\");\r\nexports.IO = IO;\r\nvar microsoft_bond_primitives_1 = require(\"./microsoft.bond.primitives\");\r\nexports.Int64 = microsoft_bond_primitives_1.Int64;\r\nexports.UInt64 = microsoft_bond_primitives_1.UInt64;\r\nexports.Number = microsoft_bond_primitives_1.Number;\r\nvar CompactBinaryProtocolWriter = /** @class */ (function () {\r\n function CompactBinaryProtocolWriter(stream) {\r\n this._stream = stream;\r\n }\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteBlob = function (blob) {\r\n this._stream._Write(blob, 0, blob.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteBool = function (value) {\r\n this._stream._WriteByte(value ? 1 : 0);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteContainerBegin = function (size, elementType) {\r\n this._WriteUInt8(elementType);\r\n this._WriteUInt32(size);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteMapContainerBegin = function (size, keyType, valueType) {\r\n this._WriteUInt8(keyType);\r\n this._WriteUInt8(valueType);\r\n this._WriteUInt32(size);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteDouble = function (value) {\r\n var array = _Encoding._Double_GetBytes(value);\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteFieldBegin = function (type, id, metadata) {\r\n if (id <= 5) {\r\n this._stream._WriteByte(type | (id << 5));\r\n }\r\n else if (id <= 0xff) {\r\n this._stream._WriteByte(type | (6 << 5));\r\n this._stream._WriteByte(id);\r\n }\r\n else {\r\n this._stream._WriteByte(type | (7 << 5));\r\n this._stream._WriteByte(id);\r\n this._stream._WriteByte(id >> 8);\r\n }\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteInt32 = function (value) {\r\n value = _Encoding._Zigzag_EncodeZigzag32(value);\r\n this._WriteUInt32(value);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteInt64 = function (value) {\r\n this._WriteUInt64(_Encoding._Zigzag_EncodeZigzag64(value));\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteString = function (value) {\r\n if (value === '') {\r\n this._WriteUInt32(0 /*length*/);\r\n }\r\n else {\r\n var array = _Encoding._Utf8_GetBytes(value);\r\n this._WriteUInt32(array.length);\r\n this._stream._Write(array, 0, array.length);\r\n }\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteStructEnd = function (isBase) {\r\n this._WriteUInt8(isBase ? bond_const_1._BondDataType._BT_STOP_BASE : bond_const_1._BondDataType._BT_STOP);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt32 = function (value) {\r\n var array = _Encoding._Varint_GetBytes(microsoft_bond_primitives_1.Number._ToUInt32(value));\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt64 = function (value) {\r\n var array = _Encoding._Varint64_GetBytes(value);\r\n this._stream._Write(array, 0, array.length);\r\n };\r\n /*override*/\r\n CompactBinaryProtocolWriter.prototype._WriteUInt8 = function (value) {\r\n this._stream._WriteByte(microsoft_bond_primitives_1.Number._ToUInt8(value));\r\n };\r\n return CompactBinaryProtocolWriter;\r\n}());\r\nexports.CompactBinaryProtocolWriter = CompactBinaryProtocolWriter;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.primitives.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Int64 = /** @class */ (function () {\r\n function Int64(numberStr) {\r\n this.low = 0;\r\n this.high = 0;\r\n this.low = parseInt(numberStr, 10);\r\n if (this.low < 0) {\r\n this.high = -1;\r\n }\r\n }\r\n Int64.prototype._Equals = function (numberStr) {\r\n var tmp = new Int64(numberStr);\r\n return this.low === tmp.low && this.high === tmp.high;\r\n };\r\n return Int64;\r\n}());\r\nexports.Int64 = Int64;\r\nvar UInt64 = /** @class */ (function () {\r\n function UInt64(numberStr) {\r\n this.low = 0;\r\n this.high = 0;\r\n this.low = parseInt(numberStr, 10);\r\n }\r\n UInt64.prototype._Equals = function (numberStr) {\r\n var tmp = new UInt64(numberStr);\r\n return this.low === tmp.low && this.high === tmp.high;\r\n };\r\n return UInt64;\r\n}());\r\nexports.UInt64 = UInt64;\r\nvar Number = /** @class */ (function () {\r\n function Number() {\r\n }\r\n Number._ToByte = function (value) {\r\n return this._ToUInt8(value);\r\n };\r\n Number._ToUInt8 = function (value) {\r\n return value & 0xff;\r\n };\r\n Number._ToInt32 = function (value) {\r\n var signMask = (value & 0x80000000);\r\n return (value & 0x7fffffff) | signMask;\r\n };\r\n Number._ToUInt32 = function (value) {\r\n return value & 0xffffffff;\r\n };\r\n return Number;\r\n}());\r\nexports.Number = Number;\r\n","\"use strict\";\r\n/**\r\n* microsoft.bond.utils.ts\r\n* Copyright: Microsoft 2016\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BrowserChecker = /** @class */ (function () {\r\n function BrowserChecker() {\r\n }\r\n BrowserChecker._IsDataViewSupport = function () {\r\n return typeof ArrayBuffer !== 'undefined' &&\r\n typeof DataView !== 'undefined';\r\n };\r\n return BrowserChecker;\r\n}());\r\nexports.BrowserChecker = BrowserChecker;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTClockSkewManager.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\n/**\r\n* Class to manage clock skew correction.\r\n*/\r\nvar AWTClockSkewManager = /** @class */ (function () {\r\n function AWTClockSkewManager(clockSkewRefreshDurationInMins) {\r\n this.clockSkewRefreshDurationInMins = clockSkewRefreshDurationInMins;\r\n this._reset();\r\n }\r\n /**\r\n * Determine if the request can be sent.\r\n * @return {boolean} True if requests can be sent, false otherwise.\r\n */\r\n AWTClockSkewManager.prototype.allowRequestSending = function () {\r\n if (this._isFirstRequest && !this._clockSkewSet) {\r\n this._isFirstRequest = false;\r\n this._allowRequestSending = false;\r\n return true;\r\n }\r\n return this._allowRequestSending;\r\n };\r\n /**\r\n * Determine if clock skew headers should be added to the request.\r\n * @return {boolean} True if clock skew headers should be added, false otherwise.\r\n */\r\n AWTClockSkewManager.prototype.shouldAddClockSkewHeaders = function () {\r\n return this._shouldAddClockSkewHeaders;\r\n };\r\n /**\r\n * Gets the clock skew header value.\r\n * @return {string} The clock skew header value.\r\n */\r\n AWTClockSkewManager.prototype.getClockSkewHeaderValue = function () {\r\n return this._clockSkewHeaderValue;\r\n };\r\n /**\r\n * Sets the clock skew header value. Once clock skew is set this method\r\n * is no-op.\r\n * @param {string} timeDeltaInMillis - Time delta to be saved as the clock skew header value.\r\n */\r\n AWTClockSkewManager.prototype.setClockSkew = function (timeDeltaInMillis) {\r\n if (!this._clockSkewSet) {\r\n if (timeDeltaInMillis) {\r\n this._clockSkewHeaderValue = timeDeltaInMillis;\r\n }\r\n else {\r\n this._shouldAddClockSkewHeaders = false;\r\n }\r\n this._clockSkewSet = true;\r\n this._allowRequestSending = true;\r\n }\r\n };\r\n AWTClockSkewManager.prototype._reset = function () {\r\n var _this = this;\r\n this._isFirstRequest = true;\r\n this._clockSkewSet = false;\r\n this._allowRequestSending = true;\r\n this._shouldAddClockSkewHeaders = true;\r\n this._clockSkewHeaderValue = 'use-collector-delta';\r\n if (this.clockSkewRefreshDurationInMins > 0) {\r\n setTimeout(function () { return _this._reset(); }, this.clockSkewRefreshDurationInMins * 60000);\r\n }\r\n };\r\n return AWTClockSkewManager;\r\n}());\r\nexports.default = AWTClockSkewManager;\r\n","\"use strict\";\r\n/**\r\n* AWTKillSwitch.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SecToMsMultiplier = 1000;\r\n/**\r\n* Class to stop certain tenants sending events.\r\n*/\r\nvar AWTKillSwitch = /** @class */ (function () {\r\n function AWTKillSwitch() {\r\n this._killedTokenDictionary = {};\r\n }\r\n /**\r\n * Set the tenants that are to be killed along with the duration. If the duration is\r\n * a special value identifying that the tokens are too be killed for only this request, then\r\n * a array of tokens is returned.\r\n * @param {string} killedTokens - Tokens that are too be marked to be killed.\r\n * @param {string} killDuration - The duration for which the tokens are to be killed.\r\n * @return {string[]} The tokens that are killed only for this given request.\r\n */\r\n AWTKillSwitch.prototype.setKillSwitchTenants = function (killTokens, killDuration) {\r\n if (killTokens && killDuration) {\r\n try {\r\n var killedTokens = killTokens.split(',');\r\n if (killDuration === 'this-request-only') {\r\n return killedTokens;\r\n }\r\n var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;\r\n for (var i = 0; i < killedTokens.length; ++i) {\r\n this._killedTokenDictionary[killedTokens[i]] = Date.now() + durationMs;\r\n }\r\n }\r\n catch (ex) {\r\n return [];\r\n }\r\n }\r\n return [];\r\n };\r\n /**\r\n * Determing if the given tenant token has been killed for the moment.\r\n * @param {string} tenantToken - The token to be checked.\r\n * @return {boolean} True if token has been killed, false otherwise.\r\n */\r\n AWTKillSwitch.prototype.isTenantKilled = function (tenantToken) {\r\n if (this._killedTokenDictionary[tenantToken] !== undefined && this._killedTokenDictionary[tenantToken] > Date.now()) {\r\n return true;\r\n }\r\n delete this._killedTokenDictionary[tenantToken];\r\n return false;\r\n };\r\n return AWTKillSwitch;\r\n}());\r\nexports.default = AWTKillSwitch;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar AWTNotificationManager = /** @class */ (function () {\r\n function AWTNotificationManager() {\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {object} listener - The notification listener to be added.\r\n */\r\n AWTNotificationManager.addNotificationListener = function (listener) {\r\n this.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {object} listener - AWTNotificationListener to remove.\r\n */\r\n AWTNotificationManager.removeNotificationListener = function (listener) {\r\n var index = this.listeners.indexOf(listener);\r\n while (index > -1) {\r\n this.listeners.splice(index, 1);\r\n index = this.listeners.indexOf(listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {object[]} events - The array of events that have been sent.\r\n */\r\n AWTNotificationManager.eventsSent = function (events) {\r\n var _this = this;\r\n var _loop_1 = function (i) {\r\n if (this_1.listeners[i].eventsSent) {\r\n setTimeout(function () { return _this.listeners[i].eventsSent(events); }, 0);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_1(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being dropped.\r\n * @param {object[]} events - The array of events that have been dropped.\r\n * @param {enum} reason - The reason for which the SDK dropped the events.\r\n */\r\n AWTNotificationManager.eventsDropped = function (events, reason) {\r\n var _this = this;\r\n var _loop_2 = function (i) {\r\n if (this_2.listeners[i].eventsDropped) {\r\n setTimeout(function () { return _this.listeners[i].eventsDropped(events, reason); }, 0);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_2(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being retried when the request failed with a retryable status.\r\n * @param {object[]} events - The array of events that are being retried.\r\n */\r\n AWTNotificationManager.eventsRetrying = function (events) {\r\n var _this = this;\r\n var _loop_3 = function (i) {\r\n if (this_3.listeners[i].eventsRetrying) {\r\n setTimeout(function () { return _this.listeners[i].eventsRetrying(events); }, 0);\r\n }\r\n };\r\n var this_3 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_3(i);\r\n }\r\n };\r\n /**\r\n * Notification for events being rejected.\r\n * @param {object[]} events - The array of events that have been rejected.\r\n * @param {enum} reason - The reason for which the SDK rejeceted the events.\r\n */\r\n AWTNotificationManager.eventsRejected = function (events, reason) {\r\n var _this = this;\r\n var _loop_4 = function (i) {\r\n if (this_4.listeners[i].eventsRejected) {\r\n setTimeout(function () { return _this.listeners[i].eventsRejected(events, reason); }, 0);\r\n }\r\n };\r\n var this_4 = this;\r\n for (var i = 0; i < this.listeners.length; ++i) {\r\n _loop_4(i);\r\n }\r\n };\r\n AWTNotificationManager.listeners = [];\r\n return AWTNotificationManager;\r\n}());\r\nexports.default = AWTNotificationManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"./Enums\");\r\n/**\r\n* Class to batch events.\r\n*/\r\nvar AWTRecordBatcher = /** @class */ (function () {\r\n function AWTRecordBatcher(_outboundQueue, _maxNumberOfEvents) {\r\n this._outboundQueue = _outboundQueue;\r\n this._maxNumberOfEvents = _maxNumberOfEvents;\r\n this._currentBatch = {};\r\n this._currentNumEventsInBatch = 0;\r\n }\r\n /**\r\n * Add an event to the current batch.\r\n * If the priority of the event is synchronous, it will also return the batch containing only the synchronous event.\r\n * @param {object} event - The event that needs to be batched.\r\n * @return {object} If the priority of the event is synchronous, it will also return the batch containing only the synchronous event.\r\n * Otherwise returns null.\r\n */\r\n AWTRecordBatcher.prototype.addEventToBatch = function (event) {\r\n if (event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n //batch immediate priority into its own batch\r\n var immediateBatch = {};\r\n immediateBatch[event.apiKey] = [event];\r\n return immediateBatch;\r\n }\r\n else {\r\n if (this._currentNumEventsInBatch >= this._maxNumberOfEvents) {\r\n this.flushBatch();\r\n }\r\n if (this._currentBatch[event.apiKey] === undefined) {\r\n this._currentBatch[event.apiKey] = [];\r\n }\r\n this._currentBatch[event.apiKey].push(event);\r\n this._currentNumEventsInBatch++;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Flush the current batch so that it is added to the outbound queue.\r\n */\r\n AWTRecordBatcher.prototype.flushBatch = function () {\r\n if (this._currentNumEventsInBatch > 0) {\r\n this._outboundQueue.push(this._currentBatch);\r\n this._currentBatch = {};\r\n this._currentNumEventsInBatch = 0;\r\n }\r\n };\r\n /**\r\n * Check if there is a batch that contains events.\r\n */\r\n AWTRecordBatcher.prototype.hasBatch = function () {\r\n return this._currentNumEventsInBatch > 0;\r\n };\r\n return AWTRecordBatcher;\r\n}());\r\nexports.default = AWTRecordBatcher;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTRetryPolicy.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar RandomizationLowerThreshold = 0.8;\r\nvar RandomizationUpperThreshold = 1.2;\r\nvar BaseBackoff = 3000;\r\nvar MaxBackoff = 120000;\r\n/**\r\n* Class for retry policy.\r\n*/\r\nvar AWTRetryPolicy = /** @class */ (function () {\r\n function AWTRetryPolicy() {\r\n }\r\n /**\r\n * Determine if the request should be retried for the given status code.\r\n * The below expression reads that we should only retry for:\r\n * - HttpStatusCodes that are smaller than 300.\r\n * - HttpStatusCodes greater or equal to 500 (except for 501-NotImplement\r\n * and 505-HttpVersionNotSupport).\r\n * - HttpStatusCode 408-RequestTimeout.\r\n * This is based on Microsoft.WindowsAzure.Storage.RetryPolicies.ExponentialRetry class\r\n * @param {number} httpStatusCode - The status code returned for the request.\r\n * @return {boolean} True if request should be retried, false otherwise.\r\n */\r\n AWTRetryPolicy.shouldRetryForStatus = function (httpStatusCode) {\r\n /* */\r\n return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode !== 408)\r\n || (httpStatusCode === 501)\r\n || (httpStatusCode === 505));\r\n };\r\n /**\r\n * Gets the number of milliseconds to back off before retrying the request. The\r\n * back off duration is exponentially scaled based on the number of retries already\r\n * done for the request.\r\n * @param {number} retriesSoFar - The number of times the request has already been retried.\r\n * @return {number} The back off duration for the request before it can be retried.\r\n */\r\n AWTRetryPolicy.getMillisToBackoffForRetry = function (retriesSoFar) {\r\n var waitDuration = 0;\r\n var minBackoff = BaseBackoff * RandomizationLowerThreshold;\r\n var maxBackoff = BaseBackoff * RandomizationUpperThreshold;\r\n var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;\r\n waitDuration = Math.pow(4, retriesSoFar) * randomBackoff;\r\n return Math.min(waitDuration, MaxBackoff);\r\n };\r\n return AWTRetryPolicy;\r\n}());\r\nexports.default = AWTRetryPolicy;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTSerializer.ts\r\n* @author Brent Erickson (brericks) and Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Bond = require(\"../bond/microsoft.bond\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar AWTNotificationManager_1 = require(\"./AWTNotificationManager\");\r\nvar Utils = require(\"./Utils\");\r\nvar RequestSizeLimitBytes = 2936012; //approx 2.8 Mb\r\n/**\r\n* Class to handle serialization of event and request.\r\n* Currently uses Bond for serialization. Please note that this may be subject to change.\r\n*/\r\nvar AWTSerializer = /** @class */ (function () {\r\n function AWTSerializer() {\r\n }\r\n /**\r\n * Serialies a request using Bond.\r\n * @param {object} requestDictionary - A dictionary containing the token to event mapping.\r\n * @param {number} tokenCount - Number of tenant tokens to be sent in the request.\r\n * @return {number[]} The serialized bond request.\r\n */\r\n AWTSerializer.getPayloadBlob = function (requestDictionary, tokenCount) {\r\n var requestFull = false;\r\n var remainingRequest;\r\n var stream = new Bond.IO.MemoryStream();\r\n var writer = new Bond.CompactBinaryProtocolWriter(stream);\r\n //Write TokenToDataPackagesMap\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 3, null);\r\n writer._WriteMapContainerBegin(tokenCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_LIST);\r\n for (var token in requestDictionary) {\r\n if (!requestFull) {\r\n if (requestDictionary.hasOwnProperty(token)) {\r\n //write token\r\n writer._WriteString(token);\r\n var dataPackage = requestDictionary[token];\r\n // Write list of DataPackages\r\n writer._WriteContainerBegin(1, Bond._BondDataType._BT_STRUCT);\r\n // Source\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 2, null);\r\n writer._WriteString('act_default_source');\r\n // DataPackageId\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 5, null);\r\n writer._WriteString(Utils.newGuid());\r\n // Timestamp\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT64, 6, null);\r\n writer._WriteInt64(Utils.numberToBondInt64(Date.now()));\r\n // Records\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_LIST, 8, null);\r\n //Advance position by 1 for the elementy type which is always struct\r\n var dpSizePos = stream._GetBuffer().length + 1;\r\n writer._WriteContainerBegin(requestDictionary[token].length, Bond._BondDataType._BT_STRUCT);\r\n var dpSizeSerialized = stream._GetBuffer().length - dpSizePos;\r\n for (var i = 0; i < dataPackage.length; ++i) {\r\n var currentStreamPos = stream._GetBuffer().length;\r\n this.writeEvent(dataPackage[i], writer);\r\n if (stream._GetBuffer().length - currentStreamPos > RequestSizeLimitBytes) {\r\n //single event too big\r\n AWTNotificationManager_1.default.eventsRejected([dataPackage[i]], Enums_1.AWTEventsRejectedReason.SizeLimitExceeded);\r\n //move i one place back so that we can evaluate the next element once we delete the current element at pos i\r\n dataPackage.splice(i--, 1);\r\n stream._GetBuffer().splice(currentStreamPos);\r\n //Bond serialization to change the datapackage length since we couldnt send this event\r\n this._addNewDataPackageSize(dataPackage.length, stream, dpSizeSerialized, dpSizePos);\r\n continue;\r\n }\r\n if (stream._GetBuffer().length > RequestSizeLimitBytes) {\r\n //Adding this event exceeded the max request size. We should rever this event and send the serialized request.\r\n //The remaining events should be returned to send in a separate request.\r\n stream._GetBuffer().splice(currentStreamPos);\r\n if (!remainingRequest) {\r\n remainingRequest = {};\r\n }\r\n requestDictionary[token] = dataPackage.splice(0, i);\r\n remainingRequest[token] = dataPackage;\r\n this._addNewDataPackageSize(requestDictionary[token].length, stream, dpSizeSerialized, dpSizePos);\r\n requestFull = true;\r\n break;\r\n }\r\n }\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n else {\r\n if (!remainingRequest) {\r\n remainingRequest = {};\r\n }\r\n remainingRequest[token] = requestDictionary[token];\r\n delete requestDictionary[token];\r\n }\r\n }\r\n // End ClientCollector\r\n writer._WriteStructEnd(false);\r\n return { payloadBlob: stream._GetBuffer(), remainingRequest: remainingRequest };\r\n };\r\n AWTSerializer._addNewDataPackageSize = function (size, stream, oldDpSize, streamPos) {\r\n //Bond serialization to change the datapackage length since we couldnt send everything\r\n var newRecordCountSerialized = Bond._Encoding._Varint_GetBytes(Bond.Number._ToUInt32(size));\r\n for (var j = 0; j < oldDpSize; ++j) {\r\n if (j < newRecordCountSerialized.length) {\r\n stream._GetBuffer()[streamPos + j] = newRecordCountSerialized[j];\r\n }\r\n else {\r\n stream._GetBuffer().slice(streamPos + j, oldDpSize - j);\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Bond serialize the event.\r\n * @param {object} eventData - The event that needs to be serialized.\r\n * @return {number[]} The serialized bond event.\r\n */\r\n AWTSerializer.writeEvent = function (eventData, writer) {\r\n // ID\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 1, null);\r\n writer._WriteString(eventData.id);\r\n // Timestamp\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT64, 3, null);\r\n writer._WriteInt64(Utils.numberToBondInt64(eventData.timestamp));\r\n // Type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 5, null);\r\n writer._WriteString(eventData.type);\r\n // Event Type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 6, null);\r\n writer._WriteString(eventData.name);\r\n var propsString = {};\r\n var propStringCount = 0;\r\n var propsInt64 = {};\r\n var propInt64Count = 0;\r\n var propsDouble = {};\r\n var propDoubleCount = 0;\r\n var propsBool = {};\r\n var propBoolCount = 0;\r\n var propsDate = {};\r\n var propDateCount = 0;\r\n var piiProps = {};\r\n var piiPropCount = 0;\r\n var ccProps = {};\r\n var ccPropCount = 0;\r\n // Iterate across event data properties and separate based on pii\r\n for (var key in eventData.properties) {\r\n if (eventData.properties.hasOwnProperty(key)) {\r\n var property = eventData.properties[key];\r\n if (property.cc > 0) {\r\n ccProps[key] = property;\r\n ccPropCount++;\r\n }\r\n else if (property.pii > 0) {\r\n piiProps[key] = property;\r\n piiPropCount++;\r\n }\r\n else {\r\n switch (property.type) {\r\n case Enums_1.AWTPropertyType.String:\r\n propsString[key] = property.value;\r\n propStringCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Int64:\r\n propsInt64[key] = property.value;\r\n propInt64Count++;\r\n break;\r\n case Enums_1.AWTPropertyType.Double:\r\n propsDouble[key] = property.value;\r\n propDoubleCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Boolean:\r\n propsBool[key] = property.value;\r\n propBoolCount++;\r\n break;\r\n case Enums_1.AWTPropertyType.Date:\r\n propsDate[key] = property.value;\r\n propDateCount++;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n //Extension map\r\n if (propStringCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 13, null);\r\n writer._WriteMapContainerBegin(propStringCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRING);\r\n for (var key in propsString) {\r\n if (propsString.hasOwnProperty(key)) {\r\n var value = propsString[key];\r\n writer._WriteString(key);\r\n writer._WriteString(value.toString());\r\n }\r\n }\r\n }\r\n // Pii\r\n if (piiPropCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 30, null);\r\n writer._WriteMapContainerBegin(piiPropCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRUCT);\r\n for (var key in piiProps) {\r\n if (piiProps.hasOwnProperty(key)) {\r\n var property = piiProps[key];\r\n writer._WriteString(key);\r\n // PII Data\r\n // O365 scrubber type\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 1, null);\r\n writer._WriteInt32(1);\r\n // PII Kind\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 2, null);\r\n writer._WriteInt32(property.pii);\r\n // Value\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 3, null);\r\n writer._WriteString(property.value.toString());\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n }\r\n // TypedExtensionBoolean map\r\n if (propBoolCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 31, null);\r\n writer._WriteMapContainerBegin(propBoolCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_BOOL);\r\n for (var key in propsBool) {\r\n if (propsBool.hasOwnProperty(key)) {\r\n var value = propsBool[key];\r\n writer._WriteString(key);\r\n writer._WriteBool(value);\r\n }\r\n }\r\n }\r\n //TypedExtensionDateTime map\r\n if (propDateCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 32, null);\r\n writer._WriteMapContainerBegin(propDateCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_INT64);\r\n for (var key in propsDate) {\r\n if (propsDate.hasOwnProperty(key)) {\r\n var value = propsDate[key];\r\n writer._WriteString(key);\r\n writer._WriteInt64(Utils.numberToBondInt64(value));\r\n }\r\n }\r\n }\r\n //TypedExtensionInt64 map\r\n if (propInt64Count) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 33, null);\r\n writer._WriteMapContainerBegin(propInt64Count, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_INT64);\r\n for (var key in propsInt64) {\r\n if (propsInt64.hasOwnProperty(key)) {\r\n var value = propsInt64[key];\r\n writer._WriteString(key);\r\n writer._WriteInt64(Utils.numberToBondInt64(value));\r\n }\r\n }\r\n }\r\n //TypedExtensionDouble map\r\n if (propDoubleCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 34, null);\r\n writer._WriteMapContainerBegin(propDoubleCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_DOUBLE);\r\n for (var key in propsDouble) {\r\n if (propsDouble.hasOwnProperty(key)) {\r\n var value = propsDouble[key];\r\n writer._WriteString(key);\r\n writer._WriteDouble(value);\r\n }\r\n }\r\n }\r\n //CustomerContentExtensions map\r\n if (ccPropCount) {\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_MAP, 36, null);\r\n writer._WriteMapContainerBegin(ccPropCount, Bond._BondDataType._BT_STRING, Bond._BondDataType._BT_STRUCT);\r\n for (var key in ccProps) {\r\n if (ccProps.hasOwnProperty(key)) {\r\n var property = ccProps[key];\r\n writer._WriteString(key);\r\n // CustomerContent Data\r\n // CustomerContentKind\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_INT32, 1, null);\r\n writer._WriteInt32(property.cc);\r\n // RawContent\r\n writer._WriteFieldBegin(Bond._BondDataType._BT_STRING, 2, null);\r\n writer._WriteString(property.value.toString());\r\n writer._WriteStructEnd(false);\r\n }\r\n }\r\n }\r\n writer._WriteStructEnd(false);\r\n };\r\n /**\r\n * Base64 encode the given number[].\r\n * @param {number[]} data - The data to be base64 encoded.\r\n * @return {string} The base64 encoded data.\r\n */\r\n AWTSerializer.base64Encode = function (data) {\r\n return Bond._Encoding._Base64_GetString(data);\r\n };\r\n return AWTSerializer;\r\n}());\r\nexports.default = AWTSerializer;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTStatsManager.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Utils = require(\"./Utils\");\r\nvar AWTNotificationManager_1 = require(\"./AWTNotificationManager\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar StatsTimer = 60000;\r\n/**\r\n* Class that manages the stats.\r\n*/\r\nvar AWTStatsManager = /** @class */ (function () {\r\n function AWTStatsManager() {\r\n }\r\n /**\r\n * Intiailizes the stats collection.\r\n * @param {function} sendStats - The function to call when the stats are ready to be sent.\r\n */\r\n AWTStatsManager.initialize = function (sendStats) {\r\n var _this = this;\r\n this._sendStats = sendStats;\r\n this._isInitalized = true;\r\n AWTNotificationManager_1.default.addNotificationListener({\r\n eventsSent: function (events) {\r\n _this._addStat('records_sent_count', events.length, events[0].apiKey);\r\n },\r\n eventsDropped: function (events, reason) {\r\n switch (reason) {\r\n case Enums_1.AWTEventsDroppedReason.NonRetryableStatus:\r\n _this._addStat('d_send_fail', events.length, events[0].apiKey);\r\n _this._addStat('records_dropped_count', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsDroppedReason.MaxRetryLimit:\r\n _this._addStat('d_retry_limit', events.length, events[0].apiKey);\r\n _this._addStat('records_dropped_count', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsDroppedReason.QueueFull:\r\n _this._addStat('d_queue_full', events.length, events[0].apiKey);\r\n break;\r\n }\r\n },\r\n eventsRejected: function (events, reason) {\r\n switch (reason) {\r\n case Enums_1.AWTEventsRejectedReason.InvalidEvent:\r\n _this._addStat('r_inv', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsRejectedReason.KillSwitch:\r\n _this._addStat('r_kl', events.length, events[0].apiKey);\r\n break;\r\n case Enums_1.AWTEventsRejectedReason.SizeLimitExceeded:\r\n _this._addStat('r_size', events.length, events[0].apiKey);\r\n break;\r\n }\r\n _this._addStat('r_count', events.length, events[0].apiKey);\r\n },\r\n eventsRetrying: null\r\n });\r\n setTimeout(function () { return _this.flush(); }, StatsTimer);\r\n };\r\n /**\r\n * Flush the current stats and stop the stats collection.\r\n */\r\n AWTStatsManager.teardown = function () {\r\n if (this._isInitalized) {\r\n this.flush();\r\n this._isInitalized = false;\r\n }\r\n };\r\n /**\r\n * Increments the stat for event received.\r\n * @param {string} apiKey - The apiKey for which the event was received\r\n */\r\n AWTStatsManager.eventReceived = function (apiKey) {\r\n AWTStatsManager._addStat('records_received_count', 1, apiKey);\r\n };\r\n /**\r\n * Creates an event for each tenant token which had a stat and calls the\r\n * sendStats for that token.\r\n */\r\n AWTStatsManager.flush = function () {\r\n var _this = this;\r\n if (this._isInitalized) {\r\n for (var tenantId in this._stats) {\r\n if (this._stats.hasOwnProperty(tenantId)) {\r\n this._sendStats(this._stats[tenantId], tenantId);\r\n }\r\n }\r\n this._stats = {};\r\n setTimeout(function () { return _this.flush(); }, StatsTimer);\r\n }\r\n };\r\n AWTStatsManager._addStat = function (statName, value, apiKey) {\r\n if (this._isInitalized && apiKey !== Utils.StatsApiKey) {\r\n var tenantId = Utils.getTenantId(apiKey);\r\n if (!this._stats[tenantId]) {\r\n this._stats[tenantId] = {};\r\n }\r\n if (!this._stats[tenantId][statName]) {\r\n this._stats[tenantId][statName] = value;\r\n }\r\n else {\r\n this._stats[tenantId][statName] = this._stats[tenantId][statName] + value;\r\n }\r\n }\r\n };\r\n AWTStatsManager._isInitalized = false;\r\n AWTStatsManager._stats = {};\r\n return AWTStatsManager;\r\n}());\r\nexports.default = AWTStatsManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File containing the enums.\r\n*/\r\n/**\r\n * The AWTPropertyType enumeration contains a set of values that specify types of properties.\r\n * @enum {number}\r\n */\r\nvar AWTPropertyType;\r\n(function (AWTPropertyType) {\r\n /**\r\n * Property type is unspecified.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * A string.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"String\"] = 1] = \"String\";\r\n /**\r\n * A 64-bit integer.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Int64\"] = 2] = \"Int64\";\r\n /**\r\n * A double.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Double\"] = 3] = \"Double\";\r\n /**\r\n * A boolean.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Boolean\"] = 4] = \"Boolean\";\r\n /**\r\n * A date.\r\n */\r\n AWTPropertyType[AWTPropertyType[\"Date\"] = 5] = \"Date\";\r\n})(AWTPropertyType = exports.AWTPropertyType || (exports.AWTPropertyType = {}));\r\n/**\r\n * The AWTPiiKind enumeration contains a set of values that specify the kind of PII (Personal Identifiable Information).\r\n * @enum {number}\r\n */\r\nvar AWTPiiKind;\r\n(function (AWTPiiKind) {\r\n /**\r\n * No kind.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * An LDAP distinguished name. For example, CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=COM.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"DistinguishedName\"] = 1] = \"DistinguishedName\";\r\n /**\r\n * Generic information.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"GenericData\"] = 2] = \"GenericData\";\r\n /**\r\n * An IPV4 Internet address. For example, 192.0.2.1.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPV4Address\"] = 3] = \"IPV4Address\";\r\n /**\r\n * An IPV6 Internet address. For example, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPv6Address\"] = 4] = \"IPv6Address\";\r\n /**\r\n * The Subject of an e-mail message.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"MailSubject\"] = 5] = \"MailSubject\";\r\n /**\r\n * A telephone number.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"PhoneNumber\"] = 6] = \"PhoneNumber\";\r\n /**\r\n * A query string.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"QueryString\"] = 7] = \"QueryString\";\r\n /**\r\n * An SIP (Session Internet Protocol) address.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"SipAddress\"] = 8] = \"SipAddress\";\r\n /**\r\n * An e-mail address.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"SmtpAddress\"] = 9] = \"SmtpAddress\";\r\n /**\r\n * An user ID.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Identity\"] = 10] = \"Identity\";\r\n /**\r\n * A URI (Uniform Resource Identifier).\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Uri\"] = 11] = \"Uri\";\r\n /**\r\n * The fully-qualified domain name.\r\n */\r\n AWTPiiKind[AWTPiiKind[\"Fqdn\"] = 12] = \"Fqdn\";\r\n /**\r\n * Scrubs the last octet in a IPV4 Internet address.\r\n * For example: 10.121.227.147 becomes 10.121.227.*\r\n */\r\n AWTPiiKind[AWTPiiKind[\"IPV4AddressLegacy\"] = 13] = \"IPV4AddressLegacy\";\r\n})(AWTPiiKind = exports.AWTPiiKind || (exports.AWTPiiKind = {}));\r\n/**\r\n * The AWTCustomerContentKind enumeration contains a set of values that specify the kind of customer content.\r\n * @enum {number}\r\n */\r\nvar AWTCustomerContentKind;\r\n(function (AWTCustomerContentKind) {\r\n /**\r\n * No kind.\r\n */\r\n AWTCustomerContentKind[AWTCustomerContentKind[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Generic content.\r\n */\r\n AWTCustomerContentKind[AWTCustomerContentKind[\"GenericContent\"] = 1] = \"GenericContent\";\r\n})(AWTCustomerContentKind = exports.AWTCustomerContentKind || (exports.AWTCustomerContentKind = {}));\r\n/**\r\n * The AWTEventPriority enumeration contains a set of values that specify an event's priority.\r\n * @enum {number}\r\n */\r\nvar AWTEventPriority;\r\n(function (AWTEventPriority) {\r\n /**\r\n * Low priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Low\"] = 1] = \"Low\";\r\n /**\r\n * Normal priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Normal\"] = 2] = \"Normal\";\r\n /**\r\n * High priority.\r\n */\r\n AWTEventPriority[AWTEventPriority[\"High\"] = 3] = \"High\";\r\n /**\r\n * Immediate_sync priority (Events are sent sync immediately).\r\n */\r\n AWTEventPriority[AWTEventPriority[\"Immediate_sync\"] = 5] = \"Immediate_sync\";\r\n})(AWTEventPriority = exports.AWTEventPriority || (exports.AWTEventPriority = {}));\r\n/**\r\n * The AWTEventsDroppedReason enumeration contains a set of values that specify the reason for dropping an event.\r\n * @enum {number}\r\n */\r\nvar AWTEventsDroppedReason;\r\n(function (AWTEventsDroppedReason) {\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"NonRetryableStatus\"] = 1] = \"NonRetryableStatus\";\r\n /**\r\n * Enum value 2 has been deprecated\r\n */\r\n /**\r\n * The event queue is full.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"QueueFull\"] = 3] = \"QueueFull\";\r\n /**\r\n * Max retry limit reached.\r\n */\r\n AWTEventsDroppedReason[AWTEventsDroppedReason[\"MaxRetryLimit\"] = 4] = \"MaxRetryLimit\";\r\n})(AWTEventsDroppedReason = exports.AWTEventsDroppedReason || (exports.AWTEventsDroppedReason = {}));\r\n/**\r\n * The AWTEventsRejectedReason enumeration contains a set of values that specify the reason for rejecting an event.\r\n * @enum {number}\r\n */\r\nvar AWTEventsRejectedReason;\r\n(function (AWTEventsRejectedReason) {\r\n /**\r\n * The event is invalid.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"InvalidEvent\"] = 1] = \"InvalidEvent\";\r\n /**\r\n * The size of the event is too large.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"SizeLimitExceeded\"] = 2] = \"SizeLimitExceeded\";\r\n /**\r\n * The server is not accepting events from this token.\r\n */\r\n AWTEventsRejectedReason[AWTEventsRejectedReason[\"KillSwitch\"] = 3] = \"KillSwitch\";\r\n})(AWTEventsRejectedReason = exports.AWTEventsRejectedReason || (exports.AWTEventsRejectedReason = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Utils.ts\r\n* @author Brent Erickson (brericks) and Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File containing utility functions.\r\n*/\r\nvar microsoft_bond_primitives_1 = require(\"../bond/microsoft.bond.primitives\");\r\nvar Enums_1 = require(\"./Enums\");\r\nvar GuidRegex = /[xy]/g;\r\nvar MSTillUnixEpoch = 62135596800000;\r\nvar MSToTicksMultiplier = 10000;\r\nvar NullValue = null;\r\nexports.EventNameAndTypeRegex = /^[a-zA-Z]([a-zA-Z0-9]|_){2,98}[a-zA-Z0-9]$/;\r\nexports.EventNameDotRegex = /\\./g;\r\nexports.PropertyNameRegex = /^[a-zA-Z](([a-zA-Z0-9|_|\\.]){0,98}[a-zA-Z0-9])?$/;\r\nexports.StatsApiKey = 'a387cfcf60114a43a7699f9fbb49289e-9bceb9fe-1c06-460f-96c5-6a0b247358bc-7238';\r\nvar beaconsSupported = NullValue;\r\nvar uInt8ArraySupported = NullValue;\r\nvar useXDR = NullValue;\r\n/**\r\n * Converts a number to Bond Int64.\r\n * @param {number} value - The number to be converted.\r\n * @return {object} The Int64 value for the passed number.\r\n */\r\nfunction numberToBondInt64(value) {\r\n // Construct bond timestamp for aria\r\n var bond_value = new microsoft_bond_primitives_1.Int64('0');\r\n bond_value.low = value & 0xffffffff;\r\n bond_value.high = Math.floor(value / 0x100000000);\r\n return bond_value;\r\n}\r\nexports.numberToBondInt64 = numberToBondInt64;\r\n/**\r\n * Creates a new GUID.\r\n * @return {string} A GUID.\r\n */\r\nfunction newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex, function (c) {\r\n var r = (Math.random() * 16 | 0), v = (c === 'x' ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\nexports.newGuid = newGuid;\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nfunction isString(value) {\r\n return typeof value === 'string';\r\n}\r\nexports.isString = isString;\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nfunction isNumber(value) {\r\n return typeof value === 'number';\r\n}\r\nexports.isNumber = isNumber;\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nfunction isBoolean(value) {\r\n return typeof value === 'boolean';\r\n}\r\nexports.isBoolean = isBoolean;\r\n/**\r\n * Check if the type of value is a date.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a date, false otherwise.\r\n */\r\nfunction isDate(value) {\r\n return value instanceof Date;\r\n}\r\nexports.isDate = isDate;\r\n/**\r\n * Converts milliseconds to ticks since 00:00:00 Jan 1, 0001.\r\n * @param {number} msToTicks - The milliseconds value to be converted.\r\n * @return {number} The value of the milliseconds in .Net Ticks.\r\n */\r\nfunction msToTicks(timeInMs) {\r\n return (timeInMs + MSTillUnixEpoch) * MSToTicksMultiplier;\r\n}\r\nexports.msToTicks = msToTicks;\r\n/**\r\n * Gets the tenant id from the tenant token.\r\n * @param {string} apiKey - The token from which the tenant id is to be extracted.\r\n * @return {string} The tenant id.\r\n */\r\nfunction getTenantId(apiKey) {\r\n var indexTenantId = apiKey.indexOf('-');\r\n if (indexTenantId > -1) {\r\n return apiKey.substring(0, indexTenantId);\r\n }\r\n return '';\r\n}\r\nexports.getTenantId = getTenantId;\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @return {boolean} True if supported, false otherwise.\r\n */\r\nfunction isBeaconsSupported() {\r\n if (beaconsSupported === NullValue) {\r\n beaconsSupported = typeof navigator !== 'undefined' && Boolean(navigator.sendBeacon);\r\n }\r\n return beaconsSupported;\r\n}\r\nexports.isBeaconsSupported = isBeaconsSupported;\r\n/**\r\n * Checks if Uint8Array are available in the current environment. Safari and Firefox along with\r\n * ReactNative are known to not support Uint8Array properly.\r\n * @return {boolean} True if available, false otherwise.\r\n */\r\nfunction isUint8ArrayAvailable() {\r\n if (uInt8ArraySupported === NullValue) {\r\n uInt8ArraySupported = typeof Uint8Array !== 'undefined' && !isSafariOrFirefox() && !isReactNative();\r\n }\r\n return uInt8ArraySupported;\r\n}\r\nexports.isUint8ArrayAvailable = isUint8ArrayAvailable;\r\n/**\r\n * Checks if the value is an AWTEventPriority.\r\n * @param {enum} value - The value that needs to be checked.\r\n * @return {boolean} True if the value is in AWTEventPriority, false otherwise.\r\n */\r\nfunction isPriority(value) {\r\n if (isNumber(value) && ((value >= 1 && value <= 3) || value === 5)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isPriority = isPriority;\r\n/**\r\n * Sanitizes the Property. It checks the that the property name and value are valid. It also\r\n * checks/populates the correct type and pii of the property value.\r\n * @param {string} name - The property name.\r\n * @param {string|number|boolean|Date|object} property - The property value or an AWTEventProperty containing value,\r\n * type ,pii and customer content.\r\n * @return {object} AWTEventProperty containing valid name, value, pii and type or null if invalid.\r\n */\r\nfunction sanitizeProperty(name, property) {\r\n //Check that property is valid\r\n if (!exports.PropertyNameRegex.test(name) || isNotDefined(property)) {\r\n return NullValue;\r\n }\r\n //Check if type is AWTEventProperty. If not convert to AWTEventProperty\r\n if (isNotDefined(property.value)) {\r\n property = { value: property, type: Enums_1.AWTPropertyType.Unspecified };\r\n }\r\n property.type = sanitizePropertyType(property.value, property.type);\r\n if (!property.type) {\r\n return NullValue;\r\n }\r\n //If value is date. Then convert to number in Ticks.\r\n if (isDate(property.value)) {\r\n property.value = msToTicks(property.value.getTime());\r\n }\r\n //Ensure that only one of pii or customer content can be set\r\n if (property.pii > 0 && property.cc > 0) {\r\n return NullValue;\r\n }\r\n //If pii is set we need to validate its enum value.\r\n if (property.pii) {\r\n return isPii(property.pii) ? property : NullValue;\r\n }\r\n //If cc is set we need to validate its enum value.\r\n if (property.cc) {\r\n return isCustomerContent(property.cc) ? property : NullValue;\r\n }\r\n return property;\r\n}\r\nexports.sanitizeProperty = sanitizeProperty;\r\n/**\r\n * Converts a date object into an ISO string. This is needed because not all browsers support ISO string format\r\n * on the date.\r\n * @param {object} date - The date which needs to be converted to ISO format.\r\n * @return {string} The date in ISO format.\r\n */\r\nfunction getISOString(date) {\r\n return date.getUTCFullYear() + '-' +\r\n twoDigit(date.getUTCMonth() + 1) + '-' +\r\n twoDigit(date.getUTCDate()) + 'T' +\r\n twoDigit(date.getUTCHours()) + ':' +\r\n twoDigit(date.getUTCMinutes()) + ':' +\r\n twoDigit(date.getUTCSeconds()) + '.' +\r\n threeDigit(date.getUTCMilliseconds()) + 'Z';\r\n}\r\nexports.getISOString = getISOString;\r\nfunction useXDomainRequest() {\r\n if (useXDR === NullValue) {\r\n var conn = new XMLHttpRequest();\r\n if (typeof conn.withCredentials === 'undefined' &&\r\n typeof XDomainRequest !== 'undefined') {\r\n useXDR = true;\r\n }\r\n else {\r\n useXDR = false;\r\n }\r\n }\r\n return useXDR;\r\n}\r\nexports.useXDomainRequest = useXDomainRequest;\r\nfunction isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n if (typeof navigator !== 'undefined' && navigator.product) {\r\n return navigator.product === 'ReactNative';\r\n }\r\n return false;\r\n}\r\nexports.isReactNative = isReactNative;\r\nfunction twoDigit(n) {\r\n // Format integers to have at least two digits.\r\n return n < 10 ? '0' + n : n.toString();\r\n}\r\nfunction threeDigit(n) {\r\n // Format integers to have at least three digits.\r\n if (n < 10) {\r\n return '00' + n;\r\n }\r\n else if (n < 100) {\r\n return '0' + n;\r\n }\r\n return n.toString();\r\n}\r\nfunction sanitizePropertyType(value, type) {\r\n type = !isPropertyType(type) ? Enums_1.AWTPropertyType.Unspecified : type;\r\n switch (type) {\r\n case Enums_1.AWTPropertyType.Unspecified:\r\n return getCorrectType(value);\r\n case Enums_1.AWTPropertyType.String:\r\n return isString(value) ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Boolean:\r\n return isBoolean(value) ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Date:\r\n return isDate(value) && value.getTime() !== NaN ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Int64:\r\n return isNumber(value) && value % 1 === 0 ? type : NullValue;\r\n case Enums_1.AWTPropertyType.Double:\r\n return isNumber(value) ? type : NullValue;\r\n }\r\n return NullValue;\r\n}\r\nfunction getCorrectType(value) {\r\n switch (typeof value) {\r\n case 'string':\r\n return Enums_1.AWTPropertyType.String;\r\n case 'boolean':\r\n return Enums_1.AWTPropertyType.Boolean;\r\n case 'number':\r\n return Enums_1.AWTPropertyType.Double;\r\n case 'object':\r\n return isDate(value) ? Enums_1.AWTPropertyType.Date : NullValue;\r\n }\r\n return NullValue;\r\n}\r\nfunction isPii(value) {\r\n if (isNumber(value) && value >= 0 && value <= 13) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isCustomerContent(value) {\r\n if (isNumber(value) && value >= 0 && value <= 1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isPropertyType(value) {\r\n if (isNumber(value) && value >= 0 && value <= 4) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSafariOrFirefox() {\r\n // If non-browser navigator will be undefined\r\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\r\n var ua = navigator.userAgent.toLowerCase();\r\n if ((ua.indexOf('safari') >= 0 || ua.indexOf('firefox') >= 0) && ua.indexOf('chrome') < 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction isNotDefined(value) {\r\n return value === undefined || value === NullValue || value === '';\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTAutoCollection.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Utils = require(\"../common/Utils\");\r\nvar DEVICE_ID_COOKIE = 'MicrosoftApplicationsTelemetryDeviceId';\r\nvar FIRSTLAUNCHTIME_COOKIE = 'MicrosoftApplicationsTelemetryFirstLaunchTime';\r\nvar BROWSERS = {\r\n MSIE: 'MSIE',\r\n CHROME: 'Chrome',\r\n FIREFOX: 'Firefox',\r\n SAFARI: 'Safari',\r\n EDGE: 'Edge',\r\n ELECTRON: 'Electron',\r\n SKYPE_SHELL: 'SkypeShell',\r\n PHANTOMJS: 'PhantomJS',\r\n OPERA: 'Opera'\r\n};\r\nvar OPERATING_SYSTEMS = {\r\n WINDOWS: 'Windows',\r\n MACOSX: 'Mac OS X',\r\n WINDOWS_PHONE: 'Windows Phone',\r\n WINDOWS_RT: 'Windows RT',\r\n IOS: 'iOS',\r\n ANDROID: 'Android',\r\n LINUX: 'Linux',\r\n CROS: 'Chrome OS',\r\n UNKNOWN: 'Unknown'\r\n};\r\nvar OSNAMEREGEX = {\r\n WIN: /(windows|win32)/i,\r\n WINRT: / arm;/i,\r\n WINPHONE: /windows\\sphone\\s\\d+\\.\\d+/i,\r\n OSX: /(macintosh|mac os x)/i,\r\n IOS: /(iPad|iPhone|iPod)(?=.*like Mac OS X)/i,\r\n LINUX: /(linux|joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk)/i,\r\n ANDROID: /android/i,\r\n CROS: /CrOS/i\r\n};\r\nvar VERSION_MAPPINGS = {\r\n '5.1': 'XP',\r\n '6.0': 'Vista',\r\n '6.1': '7',\r\n '6.2': '8',\r\n '6.3': '8.1',\r\n '10.0': '10'\r\n};\r\nvar REGEX_VERSION = '([\\\\d,.]+)';\r\nvar REGEX_VERSION_MAC = '([\\\\d,_,.]+)';\r\nvar UNKNOWN = 'Unknown';\r\nvar UNDEFINED = 'undefined';\r\n/**\r\n * Class that stores semantic properties.\r\n */\r\nvar AWTAutoCollection = /** @class */ (function () {\r\n function AWTAutoCollection() {\r\n }\r\n /**\r\n * Add a property storage override to override the usage of document.cookie to store\r\n * properties. The property storage object should implement both getProperty and setProperty, otherwise\r\n * it will be rejected.\r\n * @param {object} propertyStorage - Property storage object which is used for storing SDK properties.\r\n * @return {boolean} True if the property storage override was accepted, false otherwise.\r\n */\r\n AWTAutoCollection.addPropertyStorageOverride = function (propertyStorage) {\r\n if (propertyStorage) {\r\n this._propertyStorage = propertyStorage;\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Auto collect semantic context properties.\r\n * @param {object} semantContext - The semantic context to use to set auto collected information.\r\n * @param {boolean} disableCookies - Determines if setting cookies is disabled.\r\n * @param {object} userAgent - UserAgent string to be used for auto collection of semantic properties.\r\n */\r\n AWTAutoCollection.autoCollect = function (semanticContext, disableCookies, userAgent) {\r\n this._semanticContext = semanticContext;\r\n this._disableCookies = disableCookies;\r\n this._autoCollect();\r\n if (!userAgent && typeof navigator !== UNDEFINED) {\r\n userAgent = navigator.userAgent || '';\r\n }\r\n this._autoCollectFromUserAgent(userAgent);\r\n if (this._disableCookies && !this._propertyStorage) {\r\n this._deleteCookie(DEVICE_ID_COOKIE);\r\n this._deleteCookie(FIRSTLAUNCHTIME_COOKIE);\r\n return;\r\n }\r\n //Only collect device id if it can be stored\r\n if (this._propertyStorage || (this._areCookiesAvailable && !this._disableCookies)) {\r\n this._autoCollectDeviceId();\r\n }\r\n };\r\n /**\r\n * Checks if the device id stored is the same as the new device id. If they are not,\r\n * store the new id and store a new first launch time.\r\n * @param {string} deviceId - The new device id.\r\n */\r\n AWTAutoCollection.checkAndSaveDeviceId = function (deviceId) {\r\n if (deviceId) {\r\n var oldDeviceId = this._getData(DEVICE_ID_COOKIE);\r\n var flt = this._getData(FIRSTLAUNCHTIME_COOKIE);\r\n if (oldDeviceId !== deviceId) {\r\n flt = Utils.getISOString(new Date());\r\n }\r\n this._saveData(DEVICE_ID_COOKIE, deviceId);\r\n this._saveData(FIRSTLAUNCHTIME_COOKIE, flt);\r\n this._setFirstLaunchTime(flt);\r\n }\r\n };\r\n /**\r\n * Auto collect the device SDK Id.\r\n */\r\n AWTAutoCollection._autoCollectDeviceId = function () {\r\n var deviceId = this._getData(DEVICE_ID_COOKIE);\r\n if (!deviceId) {\r\n deviceId = Utils.newGuid();\r\n }\r\n this._semanticContext.setDeviceId(deviceId);\r\n };\r\n AWTAutoCollection._autoCollect = function () {\r\n //Get app language\r\n if (typeof document !== UNDEFINED && document.documentElement) {\r\n this._semanticContext.setAppLanguage(document.documentElement.lang);\r\n }\r\n //Get user language\r\n if (typeof navigator !== UNDEFINED) {\r\n this._semanticContext.setUserLanguage(navigator.userLanguage || navigator.language);\r\n }\r\n //Get time zone\r\n var timeZone = new Date().getTimezoneOffset();\r\n var minutes = timeZone % 60;\r\n var hours = (timeZone - minutes) / 60;\r\n var timeZonePrefix = '+';\r\n if (hours > 0) {\r\n timeZonePrefix = '-';\r\n }\r\n hours = Math.abs(hours);\r\n minutes = Math.abs(minutes);\r\n this._semanticContext.setUserTimeZone(timeZonePrefix + (hours < 10 ? '0' + hours : hours.toString()) + ':'\r\n + (minutes < 10 ? '0' + minutes : minutes.toString()));\r\n };\r\n AWTAutoCollection._autoCollectFromUserAgent = function (userAgent) {\r\n if (userAgent) {\r\n var browserName = this._getBrowserName(userAgent);\r\n this._semanticContext.setDeviceBrowserName(browserName);\r\n this._semanticContext.setDeviceBrowserVersion(this._getBrowserVersion(userAgent, browserName));\r\n var osName = this._getOsName(userAgent);\r\n this._semanticContext.setDeviceOsName(osName);\r\n this._semanticContext.setDeviceOsVersion(this._getOsVersion(userAgent, osName));\r\n }\r\n };\r\n AWTAutoCollection._getBrowserName = function (userAgent) {\r\n //Check for Opera first \r\n if (this._userAgentContainsString('OPR/', userAgent)) {\r\n return BROWSERS.OPERA;\r\n }\r\n //Check for Phantom JS\r\n if (this._userAgentContainsString(BROWSERS.PHANTOMJS, userAgent)) {\r\n return BROWSERS.PHANTOMJS;\r\n }\r\n //Check for Edge\r\n if (this._userAgentContainsString(BROWSERS.EDGE, userAgent)) {\r\n return BROWSERS.EDGE;\r\n }\r\n //Check for Electron\r\n if (this._userAgentContainsString(BROWSERS.ELECTRON, userAgent)) {\r\n return BROWSERS.ELECTRON;\r\n }\r\n //Check for Chrome\r\n if (this._userAgentContainsString(BROWSERS.CHROME, userAgent)) {\r\n return BROWSERS.CHROME;\r\n }\r\n //Check for Internet Explorer\r\n if (this._userAgentContainsString('Trident', userAgent)) {\r\n return BROWSERS.MSIE;\r\n }\r\n //Check for Firefox\r\n if (this._userAgentContainsString(BROWSERS.FIREFOX, userAgent)) {\r\n return BROWSERS.FIREFOX;\r\n }\r\n //Check for Safari\r\n if (this._userAgentContainsString(BROWSERS.SAFARI, userAgent)) {\r\n return BROWSERS.SAFARI;\r\n }\r\n //Check for Skype shell\r\n if (this._userAgentContainsString(BROWSERS.SKYPE_SHELL, userAgent)) {\r\n return BROWSERS.SKYPE_SHELL;\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._setFirstLaunchTime = function (flt) {\r\n if (!isNaN(flt)) {\r\n var fltDate = new Date();\r\n fltDate.setTime(parseInt(flt, 10));\r\n flt = Utils.getISOString(fltDate);\r\n }\r\n this.firstLaunchTime = flt;\r\n };\r\n AWTAutoCollection._userAgentContainsString = function (searchString, userAgent) {\r\n return userAgent.indexOf(searchString) > -1;\r\n };\r\n AWTAutoCollection._getBrowserVersion = function (userAgent, browserName) {\r\n if (browserName === BROWSERS.MSIE) {\r\n return this._getIeVersion(userAgent);\r\n }\r\n else {\r\n return this._getOtherVersion(browserName, userAgent);\r\n }\r\n };\r\n AWTAutoCollection._getIeVersion = function (userAgent) {\r\n var classicIeVersionMatches = userAgent.match(new RegExp(BROWSERS.MSIE + ' ' + REGEX_VERSION));\r\n if (classicIeVersionMatches) {\r\n return classicIeVersionMatches[1];\r\n }\r\n else {\r\n var ieVersionMatches = userAgent.match(new RegExp('rv:' + REGEX_VERSION));\r\n if (ieVersionMatches) {\r\n return ieVersionMatches[1];\r\n }\r\n }\r\n };\r\n AWTAutoCollection._getOtherVersion = function (browserString, userAgent) {\r\n if (browserString === BROWSERS.SAFARI) {\r\n browserString = 'Version';\r\n }\r\n var matches = userAgent.match(new RegExp(browserString + '/' + REGEX_VERSION));\r\n if (matches) {\r\n return matches[1];\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getOsName = function (userAgent) {\r\n if (userAgent.match(OSNAMEREGEX.WINPHONE)) {\r\n return OPERATING_SYSTEMS.WINDOWS_PHONE;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.WINRT)) {\r\n return OPERATING_SYSTEMS.WINDOWS_RT;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.IOS)) {\r\n return OPERATING_SYSTEMS.IOS;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.ANDROID)) {\r\n return OPERATING_SYSTEMS.ANDROID;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.LINUX)) {\r\n return OPERATING_SYSTEMS.LINUX;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.OSX)) {\r\n return OPERATING_SYSTEMS.MACOSX;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.WIN)) {\r\n return OPERATING_SYSTEMS.WINDOWS;\r\n }\r\n if (userAgent.match(OSNAMEREGEX.CROS)) {\r\n return OPERATING_SYSTEMS.CROS;\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getOsVersion = function (userAgent, osName) {\r\n if (osName === OPERATING_SYSTEMS.WINDOWS) {\r\n return this._getGenericOsVersion(userAgent, 'Windows NT');\r\n }\r\n if (osName === OPERATING_SYSTEMS.ANDROID) {\r\n return this._getGenericOsVersion(userAgent, osName);\r\n }\r\n if (osName === OPERATING_SYSTEMS.MACOSX) {\r\n return this._getMacOsxVersion(userAgent);\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getGenericOsVersion = function (userAgent, osName) {\r\n var ntVersionMatches = userAgent.match(new RegExp(osName + ' ' + REGEX_VERSION));\r\n if (ntVersionMatches) {\r\n if (VERSION_MAPPINGS[ntVersionMatches[1]]) {\r\n return VERSION_MAPPINGS[ntVersionMatches[1]];\r\n }\r\n return ntVersionMatches[1];\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getMacOsxVersion = function (userAgent) {\r\n var macOsxVersionInUserAgentMatches = userAgent.match(new RegExp(OPERATING_SYSTEMS.MACOSX + ' ' + REGEX_VERSION_MAC));\r\n if (macOsxVersionInUserAgentMatches) {\r\n var versionString = macOsxVersionInUserAgentMatches[1].replace(/_/g, '.');\r\n if (versionString) {\r\n var delimiter = this._getDelimiter(versionString);\r\n if (delimiter) {\r\n var components = versionString.split(delimiter);\r\n return components[0];\r\n }\r\n else {\r\n return versionString;\r\n }\r\n }\r\n }\r\n return UNKNOWN;\r\n };\r\n AWTAutoCollection._getDelimiter = function (versionString) {\r\n if (versionString.indexOf('.') > -1) {\r\n return '.';\r\n }\r\n if (versionString.indexOf('_') > -1) {\r\n return '_';\r\n }\r\n return null;\r\n };\r\n AWTAutoCollection._saveData = function (name, value) {\r\n if (this._propertyStorage) {\r\n this._propertyStorage.setProperty(name, value);\r\n }\r\n else if (this._areCookiesAvailable) {\r\n //Expires in 365 days\r\n var date = new Date();\r\n date.setTime(date.getTime() + 31536000000 /*365 days in milliseconds*/);\r\n var expires = 'expires=' + date.toUTCString();\r\n document.cookie = name + '=' + value + '; ' + expires;\r\n }\r\n };\r\n AWTAutoCollection._getData = function (name) {\r\n if (this._propertyStorage) {\r\n return this._propertyStorage.getProperty(name) || '';\r\n }\r\n else if (this._areCookiesAvailable) {\r\n name = name + '=';\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n var j = 0;\r\n while (c.charAt(j) === ' ') {\r\n j++;\r\n }\r\n c = c.substring(j);\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n }\r\n return '';\r\n };\r\n AWTAutoCollection._deleteCookie = function (name) {\r\n if (this._areCookiesAvailable) {\r\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n }\r\n };\r\n AWTAutoCollection._disableCookies = false;\r\n AWTAutoCollection._areCookiesAvailable = typeof document !== UNDEFINED && typeof document.cookie !== UNDEFINED;\r\n return AWTAutoCollection;\r\n}());\r\nexports.default = AWTAutoCollection;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTEventProperties.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Utils = require(\"../common/Utils\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\n/**\r\n* The AWTEventProperties class is used for creating an event.\r\n*/\r\nvar AWTEventProperties = /** @class */ (function () {\r\n /**\r\n * The AWTEventProperties class constructor.\r\n * @constructor\r\n * @param {string} - [Optional] The name of the event.\r\n */\r\n function AWTEventProperties(name) {\r\n this._event = { name: '', properties: {} };\r\n if (name) {\r\n this.setName(name);\r\n }\r\n }\r\n /**\r\n * Sets the name of the event.\r\n * @param {string} name - The name of the event.\r\n */\r\n AWTEventProperties.prototype.setName = function (name) {\r\n this._event.name = name;\r\n };\r\n /**\r\n * Gets the name of the event.\r\n * @return {string|undefined} - The name of the event, or undefined if the name has not been set.\r\n */\r\n AWTEventProperties.prototype.getName = function () {\r\n return this._event.name;\r\n };\r\n /**\r\n * Sets the base type of the event.\r\n * @param {string} type - The base type of the event.\r\n */\r\n AWTEventProperties.prototype.setType = function (type) {\r\n this._event.type = type;\r\n };\r\n /**\r\n * Gets the base type of the event.\r\n * @return {string|undefined} The base type of the event, or undefined if the base type has not been set.\r\n */\r\n AWTEventProperties.prototype.getType = function () {\r\n return this._event.type;\r\n };\r\n /**\r\n * Sets the timestamp for the event.\r\n * @param {number} timestampInEpochMillis - The timestamp (in milliseconds) since UNIX Epoch.\r\n */\r\n AWTEventProperties.prototype.setTimestamp = function (timestampInEpochMillis) {\r\n this._event.timestamp = timestampInEpochMillis;\r\n };\r\n /**\r\n * Gets the timestamp for the event.\r\n * @return {number|undefined} The timestamp for the event, or undefined if it has not been set.\r\n */\r\n AWTEventProperties.prototype.getTimestamp = function () {\r\n return this._event.timestamp;\r\n };\r\n /**\r\n * Sets the priority for sending the event. The default priority\r\n * of the event is Normal.\r\n * @param {enum} priority - An AWTEventPriority enumeration value that specifies the priority of the event.\r\n */\r\n AWTEventProperties.prototype.setEventPriority = function (priority) {\r\n this._event.priority = priority;\r\n };\r\n /**\r\n * Gets the priority for the event.\r\n * @return {AWTEventPriority} - An AWTEventPriority enumeration value that specifies the priority of the event.\r\n */\r\n AWTEventProperties.prototype.getEventPriority = function () {\r\n return this._event.priority;\r\n };\r\n /**\r\n * Sets a property with a name and value. Optionally sets the property type.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setProperty = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: Enums_1.AWTPiiKind.NotSet, cc: Enums_1.AWTCustomerContentKind.NotSet };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Sets a property with a name, a value, and a PII. Optionally sets the property type.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} pii - The kind of PII for the property.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setPropertyWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: pii, cc: Enums_1.AWTCustomerContentKind.NotSet };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Sets a property with name, value and customer content. Optionally set the property type of the value.\r\n * @param {string} name - The name of the property.\r\n * @param {string|number|boolean|Date} value - The property's value.\r\n * @param {enum} customerContent - The customer content kind for the property.\r\n * @param {enum} type - [Optional] One of the AWTPropertyType enumeration values that specifies\r\n * the type for the property.\r\n */\r\n AWTEventProperties.prototype.setPropertyWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n var property = { value: value, type: type, pii: Enums_1.AWTPiiKind.NotSet, cc: customerContent };\r\n property = Utils.sanitizeProperty(name, property);\r\n if (property === null) {\r\n delete this._event.properties[name];\r\n return;\r\n }\r\n this._event.properties[name] = property;\r\n };\r\n /**\r\n * Gets the properties currently added to the event.\r\n * @return {object} A Map containing the current properties.\r\n */\r\n AWTEventProperties.prototype.getPropertyMap = function () {\r\n return this._event.properties;\r\n };\r\n /**\r\n * Gets the event from this event properties object.\r\n * @return {object} The event properties compiled into AWTEventData.\r\n */\r\n AWTEventProperties.prototype.getEvent = function () {\r\n return this._event;\r\n };\r\n return AWTEventProperties;\r\n}());\r\nexports.default = AWTEventProperties;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTSerializer_1 = require(\"../common/AWTSerializer\");\r\nvar AWTRetryPolicy_1 = require(\"../common/AWTRetryPolicy\");\r\nvar AWTKillSwitch_1 = require(\"../common/AWTKillSwitch\");\r\nvar AWTClockSkewManager_1 = require(\"../common/AWTClockSkewManager\");\r\nvar Version = require(\"./Version\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar MaxConnections = 2;\r\nvar MaxRetries = 1;\r\nvar Method = 'POST';\r\n/**\r\n * Class managing the sending of requests.\r\n */\r\nvar AWTHttpManager = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {object} requestQueue - The queue that contains the requests to be sent.\r\n * @param {string} collectorUrl - The collector url to which the requests must be sent.\r\n * @param {object} _queueManager - The queue manager that we should add requests back to if needed.\r\n * @param {object} _httpInterface - The http interface that should be used to send HTTP requests.\r\n */\r\n function AWTHttpManager(_requestQueue, collectorUrl, _queueManager, _httpInterface, clockSkewRefreshDurationInMins) {\r\n var _this = this;\r\n this._requestQueue = _requestQueue;\r\n this._queueManager = _queueManager;\r\n this._httpInterface = _httpInterface;\r\n this._urlString = '?qsp=true&content-type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version='\r\n + Version.FullVersionString;\r\n this._killSwitch = new AWTKillSwitch_1.default();\r\n this._paused = false;\r\n this._useBeacons = false;\r\n this._activeConnections = 0;\r\n this._clockSkewManager = new AWTClockSkewManager_1.default(clockSkewRefreshDurationInMins);\r\n if (!Utils.isUint8ArrayAvailable()) {\r\n this._urlString += '&content-encoding=base64';\r\n }\r\n this._urlString = collectorUrl + this._urlString;\r\n if (!this._httpInterface) {\r\n this._useBeacons = !Utils.isReactNative(); //Only use beacons if not running in React Native\r\n this._httpInterface = {\r\n sendPOST: function (urlString, data, ontimeout, onerror, onload, sync) {\r\n try {\r\n if (Utils.useXDomainRequest()) {\r\n var xdr = new XDomainRequest();\r\n xdr.open(Method, urlString);\r\n //can't get the status code in xdr.\r\n xdr.onload = function () {\r\n // we will assume onload means the request succeeded.\r\n onload(200, null);\r\n };\r\n xdr.onerror = function () {\r\n // we will assume onerror means we need to drop the events.\r\n onerror(400, null);\r\n };\r\n xdr.ontimeout = function () {\r\n // we will assume ontimeout means we need to retry the events.\r\n ontimeout(500, null);\r\n };\r\n xdr.send(data);\r\n }\r\n else if (Utils.isReactNative()) {\r\n //Use the fetch API to send events in React Native\r\n fetch(urlString, {\r\n body: data,\r\n method: Method\r\n }).then(function (response) {\r\n var headerMap = {};\r\n if (response.headers) {\r\n response.headers.forEach(function (value, name) {\r\n headerMap[name] = value;\r\n });\r\n }\r\n onload(response.status, headerMap);\r\n }).catch(function (error) {\r\n //In case there is an error in the request. Set the status to 0\r\n //so that the events can be retried later.\r\n onerror(0, {});\r\n });\r\n }\r\n else {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(Method, urlString, !sync);\r\n xhr_1.onload = function () {\r\n onload(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.onerror = function () {\r\n onerror(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.ontimeout = function () {\r\n ontimeout(xhr_1.status, _this._convertAllHeadersToMap(xhr_1.getAllResponseHeaders()));\r\n };\r\n xhr_1.send(data);\r\n }\r\n }\r\n catch (e) {\r\n // we will assume exception means we need to drop the events.\r\n onerror(400, null);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n /**\r\n * Check if there is an idle connection overwhich we can send a request.\r\n * @return {boolean} True if there is an idle connection, false otherwise.\r\n */\r\n AWTHttpManager.prototype.hasIdleConnection = function () {\r\n return this._activeConnections < MaxConnections;\r\n };\r\n /**\r\n * Send requests in the request queue up if there is an idle connection, sending is\r\n * not pause and clock skew manager allows sending request.\r\n */\r\n AWTHttpManager.prototype.sendQueuedRequests = function () {\r\n while (this.hasIdleConnection() && !this._paused && this._requestQueue.length > 0\r\n && this._clockSkewManager.allowRequestSending()) {\r\n this._activeConnections++;\r\n this._sendRequest(this._requestQueue.shift(), 0, false);\r\n }\r\n //No more requests to send, tell TPM to try to schedule timer\r\n //in case it was waiting for idle connections\r\n if (this.hasIdleConnection()) {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Check if there are no active requests being sent.\r\n * @return {boolean} True if idle, false otherwise.\r\n */\r\n AWTHttpManager.prototype.isCompletelyIdle = function () {\r\n return this._activeConnections === 0;\r\n };\r\n /**\r\n * Queue all the remaning requests to be sent. The requests will be\r\n * sent using HTML5 Beacons if they are available.\r\n */\r\n AWTHttpManager.prototype.teardown = function () {\r\n while (this._requestQueue.length > 0) {\r\n this._sendRequest(this._requestQueue.shift(), 0, true);\r\n }\r\n };\r\n /**\r\n * Pause the sending of requests. No new requests will be sent.\r\n */\r\n AWTHttpManager.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n /**\r\n * Resume the sending of requests.\r\n */\r\n AWTHttpManager.prototype.resume = function () {\r\n this._paused = false;\r\n this.sendQueuedRequests();\r\n };\r\n /**\r\n * Removes any pending requests to be sent.\r\n */\r\n AWTHttpManager.prototype.removeQueuedRequests = function () {\r\n this._requestQueue.length = 0;\r\n };\r\n /**\r\n * Sends a request synchronously to the Aria collector. This api is used to send\r\n * a request containing a single immediate event.\r\n *\r\n * @param request - The request to be sent.\r\n * @param token - The token used to send the request.\r\n */\r\n AWTHttpManager.prototype.sendSynchronousRequest = function (request, token) {\r\n //This will not take into account the max connections restriction. Since this is sync, we can \r\n //only send one of this request at a time and thus should not worry about multiple connections \r\n //being used to send synchronoush events.\r\n if (this._paused) {\r\n //If paused then convert to High priority. It will be added back to queue in _sendRequest\r\n request[token][0].priority = Enums_1.AWTEventPriority.High;\r\n }\r\n //Increment active connection since we are still going to use a connection to send the request.\r\n this._activeConnections++;\r\n //For sync requests we will not wait for the clock skew. \r\n this._sendRequest(request, 0, false, true);\r\n };\r\n AWTHttpManager.prototype._sendRequest = function (request, retryCount, isTeardown, isSynchronous) {\r\n var _this = this;\r\n if (isSynchronous === void 0) { isSynchronous = false; }\r\n try {\r\n if (this._paused) {\r\n this._activeConnections--;\r\n this._queueManager.addBackRequest(request);\r\n return;\r\n }\r\n var tokenCount_1 = 0;\r\n var apikey_1 = '';\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n if (!this._killSwitch.isTenantKilled(token)) {\r\n if (apikey_1.length > 0) {\r\n apikey_1 += ',';\r\n }\r\n apikey_1 += token;\r\n tokenCount_1++;\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsRejected(request[token], Enums_1.AWTEventsRejectedReason.KillSwitch);\r\n delete request[token];\r\n }\r\n }\r\n }\r\n if (tokenCount_1 > 0) {\r\n var payloadResult = AWTSerializer_1.default.getPayloadBlob(request, tokenCount_1);\r\n if (payloadResult.remainingRequest) {\r\n this._requestQueue.push(payloadResult.remainingRequest);\r\n }\r\n var urlString = this._urlString + '&x-apikey=' + apikey_1 + '&client-time-epoch-millis='\r\n + Date.now().toString();\r\n if (this._clockSkewManager.shouldAddClockSkewHeaders()) {\r\n urlString = urlString + '&time-delta-to-apply-millis=' + this._clockSkewManager.getClockSkewHeaderValue();\r\n }\r\n var data = void 0;\r\n if (!Utils.isUint8ArrayAvailable()) {\r\n data = AWTSerializer_1.default.base64Encode(payloadResult.payloadBlob);\r\n }\r\n else {\r\n data = new Uint8Array(payloadResult.payloadBlob);\r\n }\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n //Increment the send attempt count\r\n for (var i = 0; i < request[token].length; ++i) {\r\n request[token][i].sendAttempt > 0 ? request[token][i].sendAttempt++ : request[token][i].sendAttempt = 1;\r\n }\r\n }\r\n }\r\n //beacons will not be used if an http interface was passed by the customer\r\n if (this._useBeacons && isTeardown && Utils.isBeaconsSupported()) {\r\n if (navigator.sendBeacon(urlString, data)) {\r\n //Request sent via beacon.\r\n return;\r\n }\r\n }\r\n //Send sync requests if the request is immediate or we are tearing down telemetry.\r\n this._httpInterface.sendPOST(urlString, data, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, function (status, headers) {\r\n _this._retryRequestIfNeeded(status, headers, request, tokenCount_1, apikey_1, retryCount, isTeardown, isSynchronous);\r\n }, isTeardown || isSynchronous);\r\n }\r\n else if (!isTeardown) {\r\n this._handleRequestFinished(false, {}, isTeardown, isSynchronous);\r\n }\r\n }\r\n catch (e) {\r\n //If we catch any error while sending the request, drop the request.\r\n this._handleRequestFinished(false, {}, isTeardown, isSynchronous);\r\n }\r\n };\r\n AWTHttpManager.prototype._retryRequestIfNeeded = function (status, headers, request, tokenCount, apikey, retryCount, isTeardown, isSynchronous) {\r\n var _this = this;\r\n var shouldRetry = true;\r\n if (typeof status !== 'undefined') {\r\n if (headers) {\r\n var killedTokens = this._killSwitch.setKillSwitchTenants(headers['kill-tokens'], headers['kill-duration-seconds']);\r\n this._clockSkewManager.setClockSkew(headers['time-delta-millis']);\r\n for (var i = 0; i < killedTokens.length; ++i) {\r\n AWTNotificationManager_1.default.eventsRejected(request[killedTokens[i]], Enums_1.AWTEventsRejectedReason.KillSwitch);\r\n delete request[killedTokens[i]];\r\n tokenCount--;\r\n }\r\n }\r\n else {\r\n this._clockSkewManager.setClockSkew(null);\r\n }\r\n if (status === 200) {\r\n this._handleRequestFinished(true, request, isTeardown, isSynchronous);\r\n return;\r\n }\r\n if (!AWTRetryPolicy_1.default.shouldRetryForStatus(status) || tokenCount <= 0) {\r\n shouldRetry = false;\r\n }\r\n }\r\n if (shouldRetry) {\r\n if (isSynchronous) {\r\n //Synchronous events only contain a single event so the apiKey is equal to the token for that event.\r\n //Convert the event to High priority and add back to queue to be sent as High event.\r\n this._activeConnections--;\r\n request[apikey][0].priority = Enums_1.AWTEventPriority.High;\r\n this._queueManager.addBackRequest(request);\r\n }\r\n else if (retryCount < MaxRetries) {\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n AWTNotificationManager_1.default.eventsRetrying(request[token]);\r\n }\r\n }\r\n setTimeout(function () { return _this._sendRequest(request, retryCount + 1, false); }, AWTRetryPolicy_1.default.getMillisToBackoffForRetry(retryCount));\r\n }\r\n else {\r\n this._activeConnections--;\r\n AWTTransmissionManagerCore_1.default.backOffTransmission();\r\n this._queueManager.addBackRequest(request);\r\n }\r\n }\r\n else {\r\n this._handleRequestFinished(false, request, isTeardown, isSynchronous);\r\n }\r\n };\r\n AWTHttpManager.prototype._handleRequestFinished = function (success, request, isTeardown, isSynchronous) {\r\n if (success) {\r\n AWTTransmissionManagerCore_1.default.clearBackOff();\r\n }\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n if (success) {\r\n AWTNotificationManager_1.default.eventsSent(request[token]);\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsDropped(request[token], Enums_1.AWTEventsDroppedReason.NonRetryableStatus);\r\n }\r\n }\r\n }\r\n this._activeConnections--;\r\n if (!isSynchronous && !isTeardown) {\r\n //Only continue sending more requests as long as the current request was not an synchronous request or sent\r\n //during teardown. We want to return after just sending this one sync request.\r\n this.sendQueuedRequests();\r\n }\r\n };\r\n /**\r\n * Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n */\r\n AWTHttpManager.prototype._convertAllHeadersToMap = function (headersString) {\r\n var headers = {};\r\n if (headersString) {\r\n var headersArray = headersString.split('\\n');\r\n for (var i = 0; i < headersArray.length; ++i) {\r\n var header = headersArray[i].split(': ');\r\n headers[header[0]] = header[1];\r\n }\r\n }\r\n return headers;\r\n };\r\n return AWTHttpManager;\r\n}());\r\nexports.default = AWTHttpManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar AWTLogManagerSettings_1 = require(\"./AWTLogManagerSettings\");\r\nvar AWTLogger_1 = require(\"./AWTLogger\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\n/**\r\n* The AWTLogManager class manages the Aria SDK.\r\n*/\r\nvar AWTLogManager = /** @class */ (function () {\r\n function AWTLogManager() {\r\n }\r\n /**\r\n * Initializes the log manager. After this method is called, events are\r\n * accepted for transmission.\r\n * @param {string} tenantToken - A string that contains the default tenant token.\r\n * @param {object} config - [Optional] Configuration settings for initialize, as an AWTLogConfiguration object.\r\n */\r\n AWTLogManager.initialize = function (tenantToken, configuration) {\r\n if (configuration === void 0) { configuration = {}; }\r\n if (this._isInitialized) {\r\n return;\r\n }\r\n this._isInitialized = true;\r\n AWTLogManagerSettings_1.default.defaultTenantToken = tenantToken;\r\n this._overrideValuesFromConfig(configuration);\r\n if (this._config.disableCookiesUsage && !this._config.propertyStorageOverride) {\r\n AWTLogManagerSettings_1.default.sessionEnabled = false;\r\n }\r\n AWTAutoCollection_1.default.addPropertyStorageOverride(this._config.propertyStorageOverride);\r\n AWTAutoCollection_1.default.autoCollect(AWTLogManagerSettings_1.default.semanticContext, this._config.disableCookiesUsage, this._config.userAgent);\r\n //Create sender\r\n AWTTransmissionManagerCore_1.default.initialize(this._config);\r\n AWTLogManagerSettings_1.default.loggingEnabled = true;\r\n //Autolog session events for browsers\r\n if (this._config.enableAutoUserSession) {\r\n this.getLogger().logSession(Enums_2.AWTSessionState.Started);\r\n window.addEventListener('beforeunload', this.flushAndTeardown);\r\n }\r\n return this.getLogger();\r\n };\r\n /**\r\n * Gets the global semantic context.\r\n *\r\n * @return A AWTSemanticContext object, through which you can set common semantic properties.\r\n */\r\n AWTLogManager.getSemanticContext = function () {\r\n return AWTLogManagerSettings_1.default.semanticContext;\r\n };\r\n /**\r\n * Asynchronously sends events currently in the queue. New events added\r\n * are sent after the current flush finishes. The passed callback is\r\n * called when flush finishes. Note: If LogManager is paused, or if\r\n * flush is called again in less than 30 seconds, then flush is no-op, and\r\n * the callback is not called.\r\n * @param {function} callback - The function that is called when flush finishes.\r\n */\r\n AWTLogManager.flush = function (callback) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.flush(callback);\r\n }\r\n };\r\n /**\r\n * Prevents new events from being added for transmission. It also batches all\r\n * events currently in the queue, and creates requests for them to be sent. If\r\n * HTML5 Beacons are supported, then they will be used.\r\n */\r\n AWTLogManager.flushAndTeardown = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n if (this._config.enableAutoUserSession) {\r\n this.getLogger().logSession(Enums_2.AWTSessionState.Ended);\r\n }\r\n AWTTransmissionManagerCore_1.default.flushAndTeardown();\r\n AWTLogManagerSettings_1.default.loggingEnabled = false;\r\n this._isDestroyed = true;\r\n }\r\n };\r\n /**\r\n * Pasues the transmission of events.\r\n */\r\n AWTLogManager.pauseTransmission = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.pauseTransmission();\r\n }\r\n };\r\n /**\r\n * Resumes the tranmission of events.\r\n */\r\n AWTLogManager.resumeTransmision = function () {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.resumeTransmision();\r\n }\r\n };\r\n /**\r\n * Sets the transmit profile. This changes the transmission timers\r\n * based on the transmit profile.\r\n * @param {string} profileName - A string that contains the name of the transmit profile.\r\n */\r\n AWTLogManager.setTransmitProfile = function (profileName) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.setTransmitProfile(profileName);\r\n }\r\n };\r\n /**\r\n * Loads custom transmission profiles. Each profile should have timers for\r\n * high, normal, and low. Each profile should make sure\r\n * that a each priority timer is a multiple of the priority higher than it.\r\n * Setting the timer value to -1 means the events for that priority will\r\n * not be sent. Note that once a priority has been set to not send, then all priorities\r\n * below it will also not be sent. The timers should be in the form of [low, normal, high].\r\n * E.g, Custom: [30,10,5].\r\n * This method removes any previously loaded custom profiles.\r\n * @param {object} profiles - A dictionary that contains the transmit profiles.\r\n */\r\n AWTLogManager.loadTransmitProfiles = function (profiles) {\r\n if (this._isInitialized && !this._isDestroyed) {\r\n AWTTransmissionManagerCore_1.default.loadTransmitProfiles(profiles);\r\n }\r\n };\r\n /**\r\n * Sets the context sent with every event.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContext = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setProperty(name, value, type);\r\n };\r\n /**\r\n * Sets the context sents with every event, and tags it as PII.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} pii - The kind of PII for the context property.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContextWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setPropertyWithPii(name, value, pii, type);\r\n };\r\n /**\r\n * Sets the context sent with every event from this logger, and tags it as customer content.\r\n * @param {string} name - A string that contains the name of the context property.\r\n * @param {string|number|boolean} value - The value of the context property.\r\n * @param {enum} customerContent - The kind of customer content for the context property, as one of the\r\n * AWTCustomerContentKind enumeration values.\r\n * @param {enum} type - [Optional] The type for the context property value, as one of the\r\n * AWTPropertyType enumeration values.\r\n */\r\n AWTLogManager.setContextWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n AWTLogManagerSettings_1.default.logManagerContext.setPropertyWithCustomerContent(name, value, customerContent, type);\r\n };\r\n /**\r\n * Gets the logger for the specified tenant token.\r\n * @param {string} tenantToken - A string that contains the tenant token.\r\n * @return An AWTLogger object which sends data with the specified tenant token. If the tenant token is\r\n * undefined, or null, or empty, then undefined is returned.\r\n */\r\n AWTLogManager.getLogger = function (tenantToken) {\r\n var key = tenantToken;\r\n if (!key || key === AWTLogManagerSettings_1.default.defaultTenantToken) {\r\n key = '';\r\n }\r\n if (!this._loggers[key]) {\r\n this._loggers[key] = new AWTLogger_1.default(key);\r\n }\r\n return this._loggers[key];\r\n };\r\n /**\r\n * Adds a notification listener. The Aria SDK calls methods on the listener\r\n * when an appropriate notification is raised.\r\n * @param {object} listener - An AWTNotificationListener object.\r\n */\r\n AWTLogManager.addNotificationListener = function (listener) {\r\n AWTNotificationManager_1.default.addNotificationListener(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {object} listener - AWTNotificationListener to remove.\r\n */\r\n AWTLogManager.removeNotificationListener = function (listener) {\r\n AWTNotificationManager_1.default.removeNotificationListener(listener);\r\n };\r\n AWTLogManager._overrideValuesFromConfig = function (config) {\r\n if (config.collectorUri) {\r\n this._config.collectorUri = config.collectorUri;\r\n }\r\n if (config.cacheMemorySizeLimitInNumberOfEvents > 0) {\r\n this._config.cacheMemorySizeLimitInNumberOfEvents = config.cacheMemorySizeLimitInNumberOfEvents;\r\n }\r\n if (config.httpXHROverride && config.httpXHROverride.sendPOST) {\r\n this._config.httpXHROverride = config.httpXHROverride;\r\n }\r\n if (config.propertyStorageOverride && config.propertyStorageOverride.getProperty &&\r\n config.propertyStorageOverride.setProperty) {\r\n this._config.propertyStorageOverride = config.propertyStorageOverride;\r\n }\r\n if (config.userAgent) {\r\n this._config.userAgent = config.userAgent;\r\n }\r\n if (config.disableCookiesUsage) {\r\n this._config.disableCookiesUsage = config.disableCookiesUsage;\r\n }\r\n if (config.canSendStatEvent) {\r\n this._config.canSendStatEvent = config.canSendStatEvent;\r\n }\r\n if (config.enableAutoUserSession && typeof window !== 'undefined' && window.addEventListener) {\r\n this._config.enableAutoUserSession = config.enableAutoUserSession;\r\n }\r\n if (config.clockSkewRefreshDurationInMins > 0) {\r\n this._config.clockSkewRefreshDurationInMins = config.clockSkewRefreshDurationInMins;\r\n }\r\n };\r\n AWTLogManager._loggers = {};\r\n AWTLogManager._isInitialized = false;\r\n AWTLogManager._isDestroyed = false;\r\n AWTLogManager._config = {\r\n collectorUri: 'https://browser.pipe.aria.microsoft.com/Collector/3.0/',\r\n cacheMemorySizeLimitInNumberOfEvents: 10000,\r\n disableCookiesUsage: false,\r\n canSendStatEvent: function (eventName) { return true; },\r\n clockSkewRefreshDurationInMins: 0\r\n };\r\n return AWTLogManager;\r\n}());\r\nexports.default = AWTLogManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTLogManagerSettings.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\n/**\r\n* Class that stores LogManagers context.\r\n*/\r\nvar AWTLogManagerSettings = /** @class */ (function () {\r\n function AWTLogManagerSettings() {\r\n }\r\n AWTLogManagerSettings.logManagerContext = new AWTEventProperties_1.default();\r\n AWTLogManagerSettings.sessionEnabled = true;\r\n AWTLogManagerSettings.loggingEnabled = false;\r\n AWTLogManagerSettings.defaultTenantToken = '';\r\n AWTLogManagerSettings.semanticContext = new AWTSemanticContext_1.default(true, AWTLogManagerSettings.logManagerContext);\r\n return AWTLogManagerSettings;\r\n}());\r\nexports.default = AWTLogManagerSettings;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTLogger.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar AWTStatsManager_1 = require(\"../common/AWTStatsManager\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTLogManagerSettings_1 = require(\"./AWTLogManagerSettings\");\r\nvar Version = require(\"./Version\");\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\n/**\r\n* The AWTLogger class defines a logger.\r\n*/\r\nvar AWTLogger = /** @class */ (function () {\r\n /**\r\n * The AWTLogger class constructor.\r\n * @constructor\r\n * @param {string} _apiKey - The API key (also known as application key, and tenant token).\r\n */\r\n function AWTLogger(_apiKey) {\r\n this._apiKey = _apiKey;\r\n this._contextProperties = new AWTEventProperties_1.default();\r\n this._semanticContext = new AWTSemanticContext_1.default(false, this._contextProperties);\r\n this._sessionStartTime = 0;\r\n this._createInitId();\r\n }\r\n /**\r\n * Sets the context sent with every event from this logger.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContext = function (name, value, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setProperty(name, value, type);\r\n };\r\n /**\r\n * Sets context that will be sent with every event from this logger, and tags it as PII.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} pii - The kind of PII for the context property, as one of the AWTPiiKind enumeration values.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContextWithPii = function (name, value, pii, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setPropertyWithPii(name, value, pii, type);\r\n };\r\n /**\r\n * Sets the context that sent with every event from this logger, and tags it as customer content.\r\n * @param {string} name - The name of the context property.\r\n * @param {string|number|boolean} value - The context property's value.\r\n * @param {enum} customerContent - The customer content kind, as one of the AWTCustomerContentKind enumeration values.\r\n * @param {enum} type - [Optional] The type of context property, as one of the AWTPropertyType enumeration values.\r\n */\r\n AWTLogger.prototype.setContextWithCustomerContent = function (name, value, customerContent, type) {\r\n if (type === void 0) { type = Enums_1.AWTPropertyType.Unspecified; }\r\n this._contextProperties.setPropertyWithCustomerContent(name, value, customerContent, type);\r\n };\r\n /**\r\n * Gets the logger semantic context.\r\n * Note: Device properties are not permitted at the logger level, but you can set them\r\n * at the global level using the AWTLogManager class.\r\n *\r\n * @return A AWTSemanticContext object that you can use to set common semantic properties.\r\n */\r\n AWTLogger.prototype.getSemanticContext = function () {\r\n return this._semanticContext;\r\n };\r\n /**\r\n * Logs a custom event with the specified name and fields - to track information\r\n * such as how a particular feature is used.\r\n * @param {Object} event - Can be either an AWTEventProperties object or an AWTEventData object or an event name.\r\n */\r\n AWTLogger.prototype.logEvent = function (event) {\r\n if (AWTLogManagerSettings_1.default.loggingEnabled) {\r\n if (!this._apiKey) {\r\n this._apiKey = AWTLogManagerSettings_1.default.defaultTenantToken;\r\n this._createInitId();\r\n }\r\n var sanitizeProperties = true;\r\n if (Utils.isString(event)) {\r\n event = {\r\n name: event\r\n };\r\n }\r\n else if (event instanceof AWTEventProperties_1.default) {\r\n event = event.getEvent();\r\n //AWTEventProperties will already sanitize properties\r\n sanitizeProperties = false;\r\n }\r\n AWTStatsManager_1.default.eventReceived(this._apiKey);\r\n AWTLogger._logEvent(AWTLogger._getInternalEvent(event, this._apiKey, sanitizeProperties), this._contextProperties);\r\n }\r\n };\r\n /**\r\n * Logs the session state.\r\n * Note: Calling Logging session start while a session already exists will produce a no-op. Similarly, calling logging\r\n * session end while a session does not exist will also produce a no-op.\r\n * @param {enum} state - The session's state.\r\n * @param {obbject} properties - [Optional] Properties of the session event as either a AWTEventProperties object,\r\n * or a AWTEventData object.\r\n */\r\n AWTLogger.prototype.logSession = function (state, properties) {\r\n if (AWTLogManagerSettings_1.default.sessionEnabled) {\r\n var sessionEvent = {\r\n name: 'session',\r\n type: 'session',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(sessionEvent, properties);\r\n sessionEvent.priority = Enums_1.AWTEventPriority.High;\r\n if (state === Enums_2.AWTSessionState.Started) {\r\n if (this._sessionStartTime > 0) {\r\n //Session start called out of order. Session start time being non zero indicates an ongoing session.\r\n return;\r\n }\r\n this._sessionStartTime = (new Date()).getTime();\r\n this._sessionId = Utils.newGuid();\r\n this.setContext('Session.Id', this._sessionId);\r\n sessionEvent.properties['Session.State'] = 'Started';\r\n }\r\n else if (state === Enums_2.AWTSessionState.Ended) {\r\n if (this._sessionStartTime === 0) {\r\n //Session end called out of order. Session start time being zero indicates no ongoing session.\r\n return;\r\n }\r\n var sessionDurationSec = Math.floor(((new Date()).getTime() - this._sessionStartTime) / 1000);\r\n sessionEvent.properties['Session.Id'] = this._sessionId;\r\n sessionEvent.properties['Session.State'] = 'Ended';\r\n sessionEvent.properties['Session.Duration'] = sessionDurationSec.toString();\r\n sessionEvent.properties['Session.DurationBucket'] =\r\n AWTLogger._getSessionDurationFromTime(sessionDurationSec);\r\n this._sessionStartTime = 0;\r\n this.setContext('Session.Id', null);\r\n this._sessionId = undefined;\r\n }\r\n else {\r\n return;\r\n }\r\n sessionEvent.properties['Session.FirstLaunchTime'] = AWTAutoCollection_1.default.firstLaunchTime;\r\n this.logEvent(sessionEvent);\r\n }\r\n };\r\n /**\r\n * Gets the session ID for the ongoing session.\r\n * @return {string} A string that contains the session ID for the ongoing session. Returns undefined if there is\r\n * no ongoing session.\r\n */\r\n AWTLogger.prototype.getSessionId = function () {\r\n return this._sessionId;\r\n };\r\n /**\r\n * Logs a failure event, such as an application exception.\r\n * @param {string} signature - A string that identifies the bucket of the failure.\r\n * @param {string} detail - A string that contains the a description of the failure.\r\n * @param {string} category - [Optional] A string that identifies the category of the failure, such as an application error,\r\n * a hang, or a crash.\r\n * @param {string} id - [Optional] A string that that uniquely identifies this failure.\r\n * @param {object} properties - [Optional] Properties of the failure event, as either an AWTEventProperties object or an\r\n * AWTEventData object. This value can also be null.\r\n */\r\n AWTLogger.prototype.logFailure = function (signature, detail, category, id, properties) {\r\n if (!signature || !detail) {\r\n return;\r\n }\r\n var failureEvent = {\r\n name: 'failure',\r\n type: 'failure',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(failureEvent, properties);\r\n failureEvent.properties['Failure.Signature'] = signature;\r\n failureEvent.properties['Failure.Detail'] = detail;\r\n if (category) {\r\n failureEvent.properties['Failure.Category'] = category;\r\n }\r\n if (id) {\r\n failureEvent.properties['Failure.Id'] = id;\r\n }\r\n failureEvent.priority = Enums_1.AWTEventPriority.High;\r\n this.logEvent(failureEvent);\r\n };\r\n /**\r\n * Logs a page view event which is normally a result of a user action on a UI page - such as search query,\r\n * a content request, or a page navigation.\r\n *\r\n * @param {string} id - A string that uniquely identifies this page.\r\n * @param {string} pageName - The name of the page.\r\n * @param {string} category - [Optional] A string that contains the category to which this page belongs.\r\n * @param {string} uri - [Optional] A string that contains the URI of this page.\r\n * @param {string} referrerUri - [Optional] A string that contains the URI that refers to this page.\r\n * @param {object} properties - [Optional] Properties of the page view event, as an AWTEventProperties object.\r\n * This value can also be null.\r\n */\r\n AWTLogger.prototype.logPageView = function (id, pageName, category, uri, referrerUri, properties) {\r\n if (!id || !pageName) {\r\n return;\r\n }\r\n var pageViewEvent = {\r\n name: 'pageview',\r\n type: 'pageview',\r\n properties: {}\r\n };\r\n AWTLogger._addPropertiesToEvent(pageViewEvent, properties);\r\n pageViewEvent.properties['PageView.Id'] = id;\r\n pageViewEvent.properties['PageView.Name'] = pageName;\r\n if (category) {\r\n pageViewEvent.properties['PageView.Category'] = category;\r\n }\r\n if (uri) {\r\n pageViewEvent.properties['PageView.Uri'] = uri;\r\n }\r\n if (referrerUri) {\r\n pageViewEvent.properties['PageView.ReferrerUri'] = referrerUri;\r\n }\r\n this.logEvent(pageViewEvent);\r\n };\r\n AWTLogger.prototype._createInitId = function () {\r\n // If no init ID for this tenant token exists, create one\r\n if (!AWTLogger._initIdMap[this._apiKey] && this._apiKey) {\r\n AWTLogger._initIdMap[this._apiKey] = Utils.newGuid();\r\n }\r\n };\r\n AWTLogger._addPropertiesToEvent = function (event, propertiesEvent) {\r\n if (propertiesEvent) {\r\n if (propertiesEvent instanceof AWTEventProperties_1.default) {\r\n propertiesEvent = propertiesEvent.getEvent();\r\n }\r\n if (propertiesEvent.name) {\r\n event.name = propertiesEvent.name;\r\n }\r\n if (propertiesEvent.priority) {\r\n event.priority = propertiesEvent.priority;\r\n }\r\n for (var name_1 in propertiesEvent.properties) {\r\n if (propertiesEvent.properties.hasOwnProperty(name_1)) {\r\n event.properties[name_1] = propertiesEvent.properties[name_1];\r\n }\r\n }\r\n }\r\n };\r\n AWTLogger._getSessionDurationFromTime = function (timeInSec) {\r\n if (timeInSec < 0) {\r\n return 'Undefined';\r\n }\r\n else if (timeInSec <= 3) {\r\n return 'UpTo3Sec';\r\n }\r\n else if (timeInSec <= 10) {\r\n return 'UpTo10Sec';\r\n }\r\n else if (timeInSec <= 30) {\r\n return 'UpTo30Sec';\r\n }\r\n else if (timeInSec <= 60) {\r\n return 'UpTo60Sec';\r\n }\r\n else if (timeInSec <= 180) {\r\n return 'UpTo3Min';\r\n }\r\n else if (timeInSec <= 600) {\r\n return 'UpTo10Min';\r\n }\r\n else if (timeInSec <= 1800) {\r\n return 'UpTo30Min';\r\n }\r\n return 'Above30Min';\r\n };\r\n AWTLogger._logEvent = function (eventWithMetaData, contextProperties) {\r\n if (!eventWithMetaData.name || !Utils.isString(eventWithMetaData.name)) {\r\n AWTNotificationManager_1.default.eventsRejected([eventWithMetaData], Enums_1.AWTEventsRejectedReason.InvalidEvent);\r\n return;\r\n }\r\n eventWithMetaData.name = eventWithMetaData.name.toLowerCase();\r\n //Check if name is a string and replace . with _ if it is. Drop otherwise.\r\n eventWithMetaData.name = eventWithMetaData.name.replace(Utils.EventNameDotRegex, '_');\r\n if (!eventWithMetaData.type || !Utils.isString(eventWithMetaData.type)) {\r\n eventWithMetaData.type = 'custom';\r\n }\r\n else {\r\n eventWithMetaData.type = eventWithMetaData.type.toLowerCase();\r\n }\r\n //Validate name and type and drop if invalid\r\n if (!Utils.EventNameAndTypeRegex.test(eventWithMetaData.name) || !Utils.EventNameAndTypeRegex.test(eventWithMetaData.type)) {\r\n AWTNotificationManager_1.default.eventsRejected([eventWithMetaData], Enums_1.AWTEventsRejectedReason.InvalidEvent);\r\n return;\r\n }\r\n //Add the timestamp if the timestamp is not set or is negative.\r\n if (!Utils.isNumber(eventWithMetaData.timestamp) || eventWithMetaData.timestamp < 0) {\r\n eventWithMetaData.timestamp = (new Date()).getTime();\r\n }\r\n //If no properties create one for EventInfo and context \r\n if (!eventWithMetaData.properties) {\r\n eventWithMetaData.properties = {};\r\n }\r\n // Logger ContextProperties\r\n this._addContextIfAbsent(eventWithMetaData, contextProperties.getPropertyMap());\r\n // LogManager ContextProperties\r\n this._addContextIfAbsent(eventWithMetaData, AWTLogManagerSettings_1.default.logManagerContext.getPropertyMap());\r\n //Add event info\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.InitId', this._getInitId(eventWithMetaData.apiKey));\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Sequence', this._getSequenceId(eventWithMetaData.apiKey));\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.SdkVersion', Version.FullVersionString);\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Name', eventWithMetaData.name);\r\n this._setDefaultProperty(eventWithMetaData, 'EventInfo.Time', (new Date(eventWithMetaData.timestamp)).toISOString());\r\n if (!Utils.isPriority(eventWithMetaData.priority)) {\r\n eventWithMetaData.priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n this._sendEvent(eventWithMetaData);\r\n };\r\n AWTLogger._addContextIfAbsent = function (event, contextProperties) {\r\n if (contextProperties) {\r\n for (var name_2 in contextProperties) {\r\n if (contextProperties.hasOwnProperty(name_2)) {\r\n if (!event.properties[name_2]) {\r\n event.properties[name_2] = contextProperties[name_2];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n AWTLogger._setDefaultProperty = function (event, name, value) {\r\n event.properties[name] = { value: value, pii: Enums_1.AWTPiiKind.NotSet, type: Enums_1.AWTPropertyType.String };\r\n };\r\n AWTLogger._sendEvent = function (event) {\r\n AWTTransmissionManagerCore_1.default.sendEvent(event);\r\n };\r\n AWTLogger._getInternalEvent = function (event, apiKey, sanitizeProperties) {\r\n event.properties = event.properties || {};\r\n if (sanitizeProperties) {\r\n // Event Properties \r\n for (var name_3 in event.properties) {\r\n if (event.properties.hasOwnProperty(name_3)) {\r\n event.properties[name_3] = Utils.sanitizeProperty(name_3, event.properties[name_3]);\r\n if (event.properties[name_3] === null) {\r\n delete event.properties[name_3];\r\n }\r\n }\r\n }\r\n }\r\n var internalEvent = event;\r\n internalEvent.id = Utils.newGuid();\r\n internalEvent.apiKey = apiKey;\r\n return internalEvent;\r\n };\r\n AWTLogger._getInitId = function (apiKey) {\r\n return AWTLogger._initIdMap[apiKey];\r\n };\r\n AWTLogger._getSequenceId = function (apiKey) {\r\n if (AWTLogger._sequenceIdMap[apiKey] === undefined) {\r\n AWTLogger._sequenceIdMap[apiKey] = 0;\r\n }\r\n return (++AWTLogger._sequenceIdMap[apiKey]).toString();\r\n };\r\n AWTLogger._sequenceIdMap = {};\r\n AWTLogger._initIdMap = {};\r\n return AWTLogger;\r\n}());\r\nexports.default = AWTLogger;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTHttpManager_1 = require(\"./AWTHttpManager\");\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\nvar AWTRecordBatcher_1 = require(\"../common/AWTRecordBatcher\");\r\nvar AWTNotificationManager_1 = require(\"../common/AWTNotificationManager\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar UploadNowCheckTimer = 250;\r\nvar MaxNumberEventPerBatch = 500;\r\nvar MaxSendAttempts = 6;\r\n/**\r\n * Class that manages adding events to inbound queues and batching of events\r\n * into requests.\r\n */\r\nvar AWTQueueManager = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {string} collectorUrl - The collector url to which the requests must be sent.\r\n */\r\n function AWTQueueManager(collectorUrl, _queueSizeLimit, xhrOverride, clockSkewRefreshDurationInMins) {\r\n this._queueSizeLimit = _queueSizeLimit;\r\n this._isCurrentlyUploadingNow = false;\r\n this._uploadNowQueue = [];\r\n this._shouldDropEventsOnPause = false;\r\n this._paused = false;\r\n this._queueSize = 0;\r\n this._outboundQueue = [];\r\n this._inboundQueues = {};\r\n this._inboundQueues[Enums_1.AWTEventPriority.High] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low] = [];\r\n this._addEmptyQueues();\r\n this._batcher = new AWTRecordBatcher_1.default(this._outboundQueue, MaxNumberEventPerBatch);\r\n this._httpManager = new AWTHttpManager_1.default(this._outboundQueue, collectorUrl, this, xhrOverride, clockSkewRefreshDurationInMins);\r\n }\r\n /**\r\n * Add an event to the appropriate inbound queue based on its priority.\r\n * @param {object} event - The event to be added to the queue.\r\n */\r\n AWTQueueManager.prototype.addEvent = function (event) {\r\n if (!Utils.isPriority(event.priority)) {\r\n //If invalid priority, then send it with normal priority\r\n event.priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n if (event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n //Log event synchronously\r\n this._httpManager.sendSynchronousRequest(this._batcher.addEventToBatch(event), event.apiKey);\r\n }\r\n else if (this._queueSize < this._queueSizeLimit) {\r\n this._addEventToProperQueue(event);\r\n }\r\n else {\r\n //Drop old event from lower or equal priority\r\n if (this._dropEventWithPriorityOrLess(event.priority)) {\r\n this._addEventToProperQueue(event);\r\n }\r\n else {\r\n //Can't drop events from current queues because the all the slots are taken by queues that are being flushed.\r\n AWTNotificationManager_1.default.eventsDropped([event], Enums_1.AWTEventsDroppedReason.QueueFull);\r\n }\r\n }\r\n };\r\n /**\r\n * Batch and send events currently in the queue for the given priority.\r\n * @param {enum} priority - Priority for which to send events.\r\n */\r\n AWTQueueManager.prototype.sendEventsForPriorityAndAbove = function (priority) {\r\n this._batchEvents(priority);\r\n this._httpManager.sendQueuedRequests();\r\n };\r\n /**\r\n * Check if the inbound queues or batcher has any events that can be sent presently.\r\n * @return {boolean} True if there are events, false otherwise.\r\n */\r\n AWTQueueManager.prototype.hasEvents = function () {\r\n return (this._inboundQueues[Enums_1.AWTEventPriority.High][0].length > 0 || this._inboundQueues[Enums_1.AWTEventPriority.Normal][0].length > 0\r\n || this._inboundQueues[Enums_1.AWTEventPriority.Low][0].length > 0 || this._batcher.hasBatch())\r\n && this._httpManager.hasIdleConnection();\r\n };\r\n /**\r\n * Add back the events from a failed request back to the queue.\r\n * @param {object} request - The request whose events need to be added back to the batcher.\r\n */\r\n AWTQueueManager.prototype.addBackRequest = function (request) {\r\n if (!this._paused || !this._shouldDropEventsOnPause) {\r\n for (var token in request) {\r\n if (request.hasOwnProperty(token)) {\r\n for (var i = 0; i < request[token].length; ++i) {\r\n if (request[token][i].sendAttempt < MaxSendAttempts) {\r\n this.addEvent(request[token][i]);\r\n }\r\n else {\r\n AWTNotificationManager_1.default.eventsDropped([request[token][i]], Enums_1.AWTEventsDroppedReason.MaxRetryLimit);\r\n }\r\n }\r\n }\r\n }\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Batch all current events in the queues and send them.\r\n */\r\n AWTQueueManager.prototype.teardown = function () {\r\n if (!this._paused) {\r\n this._batchEvents(Enums_1.AWTEventPriority.Low);\r\n this._httpManager.teardown();\r\n }\r\n };\r\n /**\r\n * Sends events for all priority for the current inbound queue.\r\n * This method adds new inbound queues to which new events will be added.\r\n * @param {function} callback - The function to be called when uploadNow is finished.\r\n */\r\n AWTQueueManager.prototype.uploadNow = function (callback) {\r\n var _this = this;\r\n this._addEmptyQueues();\r\n if (!this._isCurrentlyUploadingNow) {\r\n this._isCurrentlyUploadingNow = true;\r\n setTimeout(function () { return _this._uploadNow(callback); }, 0);\r\n }\r\n else {\r\n this._uploadNowQueue.push(callback);\r\n }\r\n };\r\n /**\r\n * Pause the tranmission of any requests\r\n */\r\n AWTQueueManager.prototype.pauseTransmission = function () {\r\n this._paused = true;\r\n this._httpManager.pause();\r\n if (this.shouldDropEventsOnPause) {\r\n this._queueSize -= (this._inboundQueues[Enums_1.AWTEventPriority.High][0].length +\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal][0].length + this._inboundQueues[Enums_1.AWTEventPriority.Low][0].length);\r\n this._inboundQueues[Enums_1.AWTEventPriority.High][0] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal][0] = [];\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low][0] = [];\r\n this._httpManager.removeQueuedRequests();\r\n }\r\n };\r\n /**\r\n * Resumes transmission of events.\r\n */\r\n AWTQueueManager.prototype.resumeTransmission = function () {\r\n this._paused = false;\r\n this._httpManager.resume();\r\n };\r\n /**\r\n * Determines whether events in the queues should be dropped when transmission is paused.\r\n */\r\n AWTQueueManager.prototype.shouldDropEventsOnPause = function (shouldDropEventsOnPause) {\r\n this._shouldDropEventsOnPause = shouldDropEventsOnPause;\r\n };\r\n /**\r\n * Remove the first queues for all priorities in the inbound queues map. This is called\r\n * when transmission manager has finished flushing the events in the old queues. We now make\r\n * the next queue the primary queue.\r\n */\r\n AWTQueueManager.prototype._removeFirstQueues = function () {\r\n this._inboundQueues[Enums_1.AWTEventPriority.High].shift();\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal].shift();\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low].shift();\r\n };\r\n /**\r\n * Add empty queues for all priorities in the inbound queues map. This is called\r\n * when Transmission Manager is being flushed. This ensures that new events added\r\n * after flush are stored separately till we flush the current events.\r\n */\r\n AWTQueueManager.prototype._addEmptyQueues = function () {\r\n this._inboundQueues[Enums_1.AWTEventPriority.High].push([]);\r\n this._inboundQueues[Enums_1.AWTEventPriority.Normal].push([]);\r\n this._inboundQueues[Enums_1.AWTEventPriority.Low].push([]);\r\n };\r\n AWTQueueManager.prototype._addEventToProperQueue = function (event) {\r\n if (!this._paused || !this._shouldDropEventsOnPause) {\r\n this._queueSize++;\r\n this._inboundQueues[event.priority][this._inboundQueues[event.priority].length - 1].push(event);\r\n }\r\n };\r\n AWTQueueManager.prototype._dropEventWithPriorityOrLess = function (priority) {\r\n var currentPriority = Enums_1.AWTEventPriority.Low;\r\n while (currentPriority <= priority) {\r\n if (this._inboundQueues[currentPriority][this._inboundQueues[currentPriority].length - 1].length > 0) {\r\n //Dropped oldest event from lowest possible priority\r\n AWTNotificationManager_1.default.eventsDropped([this._inboundQueues[currentPriority][this._inboundQueues[currentPriority].length - 1].shift()], Enums_1.AWTEventsDroppedReason.QueueFull);\r\n return true;\r\n }\r\n currentPriority++;\r\n }\r\n return false;\r\n };\r\n AWTQueueManager.prototype._batchEvents = function (priority) {\r\n var priorityToProcess = Enums_1.AWTEventPriority.High;\r\n while (priorityToProcess >= priority) {\r\n while (this._inboundQueues[priorityToProcess][0].length > 0) {\r\n var event_1 = this._inboundQueues[priorityToProcess][0].pop();\r\n this._queueSize--;\r\n this._batcher.addEventToBatch(event_1);\r\n }\r\n priorityToProcess--;\r\n }\r\n this._batcher.flushBatch();\r\n };\r\n AWTQueueManager.prototype._uploadNow = function (callback) {\r\n var _this = this;\r\n if (this.hasEvents()) {\r\n this.sendEventsForPriorityAndAbove(Enums_1.AWTEventPriority.Low);\r\n }\r\n this._checkOutboundQueueEmptyAndSent(function () {\r\n //Move the next queues to be primary\r\n _this._removeFirstQueues();\r\n if (callback !== null && callback !== undefined) {\r\n callback();\r\n }\r\n if (_this._uploadNowQueue.length > 0) {\r\n setTimeout(function () { return _this._uploadNow(_this._uploadNowQueue.shift()); }, 0);\r\n }\r\n else {\r\n _this._isCurrentlyUploadingNow = false;\r\n if (_this.hasEvents()) {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n }\r\n }\r\n });\r\n };\r\n AWTQueueManager.prototype._checkOutboundQueueEmptyAndSent = function (callback) {\r\n var _this = this;\r\n if (this._httpManager.isCompletelyIdle()) {\r\n callback();\r\n }\r\n else {\r\n setTimeout(function () { return _this._checkOutboundQueueEmptyAndSent(callback); }, UploadNowCheckTimer);\r\n }\r\n };\r\n return AWTQueueManager;\r\n}());\r\nexports.default = AWTQueueManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AWTAutoCollection_1 = require(\"./AWTAutoCollection\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar Enums_2 = require(\"./Enums\");\r\nvar UI_IDTYPE = 'UserInfo.IdType';\r\n/**\r\n * Class to allow users to set semantic context properties.\r\n */\r\nvar AWTSemanticContext = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * @param {boolean} _allowDeviceFields - Allow setting of device semantic context.\r\n * @param {object} _properties - The event properties where to add the semantic context.\r\n */\r\n function AWTSemanticContext(_allowDeviceFields, _properties) {\r\n this._allowDeviceFields = _allowDeviceFields;\r\n this._properties = _properties;\r\n }\r\n /**\r\n * Sets the field AppInfo.Id with the given value.\r\n * @param {string} appId - The Id uniquely identifies the App from this this event originated.\r\n * In the multi-tenant Aria Platform, this is the Application Id of the\r\n * registered Application. Example, \"735d47645f7c4de69964e2c01888d6b6\".\r\n */\r\n AWTSemanticContext.prototype.setAppId = function (appId) {\r\n this._addContext('AppInfo.Id', appId);\r\n };\r\n /**\r\n * Sets the field AppInfo.Version with the given value.\r\n * @param {string} appVersion - The version of the App, retrieved programmatically where possible. This\r\n * is app/platform dependent. Examples such as \"7.0.0.100\" for Skype,\r\n * or \"12.0.30723.00 Update 3\" for Microsoft Visual Studio Ultimate 2013\r\n */\r\n AWTSemanticContext.prototype.setAppVersion = function (appVersion) {\r\n this._addContext('AppInfo.Version', appVersion);\r\n };\r\n /**\r\n * Sets the field AppInfo.Language with the given value.\r\n * @param {string} appLanguage - Language of the App in IETF language tag format, as described in RFC 4646.\r\n * Examples of acceptable values include \"en\", \"pt-BR\" and \"zh-Hant-CN\".\r\n */\r\n AWTSemanticContext.prototype.setAppLanguage = function (appLanguage) {\r\n this._addContext('AppInfo.Language', appLanguage);\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceId - The device Id uniquely identifies the physical device, using platform\r\n * available API's. This allows correlation against Aria Hardware Inventory.\r\n */\r\n AWTSemanticContext.prototype.setDeviceId = function (deviceId) {\r\n if (this._allowDeviceFields) {\r\n AWTAutoCollection_1.default.checkAndSaveDeviceId(deviceId);\r\n this._addContext('DeviceInfo.Id', deviceId);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.OsName with the given value.\r\n * @param {string} deviceOsName - The name of the OS. The SDK should ensure this is a limited normalized\r\n * set. Asimov is using very high level value e.g. Windows/Android/iOS.\r\n * Examples such as \"iOS\" or \"Windows Phone\".\r\n */\r\n AWTSemanticContext.prototype.setDeviceOsName = function (deviceOsName) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.OsName', deviceOsName);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.OsVersion with the given value.\r\n * @param {string} deviceOsVersion - The version of the OS, retrieved programmatically, which can be used\r\n * for aggregation or filtering for scenarios like real time monitoring\r\n * or metrics reporting. Flurry and GA provide aggregation at this level.\r\n * Examples such as \"8.1.2\" for iOS, or \"8.1\" for Windows Phone.\r\n */\r\n AWTSemanticContext.prototype.setDeviceOsVersion = function (deviceOsVersion) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.OsVersion', deviceOsVersion);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceBrowserName - he name of the OS. The SDK should ensure this is a limited normalized set.\r\n * Examples such as \"Chrome\" or \"Edge\".\r\n */\r\n AWTSemanticContext.prototype.setDeviceBrowserName = function (deviceBrowserName) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.BrowserName', deviceBrowserName);\r\n }\r\n };\r\n /**\r\n * Sets the field DeviceInfo.Id with the given value.\r\n * @param {string} deviceBrowserVersion - The version of the browser, retrieved programmatically, which can be used\r\n * for aggregation or filtering for scenarios like real time monitoring or metrics reporting.\r\n * Examples such as \"57.0.2987.133\" for Chrome, or \"15.15063\" for Edge.\r\n */\r\n AWTSemanticContext.prototype.setDeviceBrowserVersion = function (deviceBrowserVersion) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.BrowserVersion', deviceBrowserVersion);\r\n }\r\n };\r\n /**\r\n * Set the device manufacturer context information of telemetry event.\r\n * Can only be set at the LogManager level. Setting it via the object obtained from ILogger\r\n * will be no-op.\r\n * @param {string} deviceMake The manufacturer of the device, retrieved\r\n * programmatically where possible and is app/platform specific\r\n */\r\n AWTSemanticContext.prototype.setDeviceMake = function (deviceMake) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.Make', deviceMake);\r\n }\r\n };\r\n /**\r\n * Set the device model context information of telemetry event.\r\n * Can only be set at the LogManager level. Setting it via the object obtained from ILogger\r\n * will be no-op.\r\n * @param {string} deviceModel The model of the device, retrieved programmatically\r\n * where possible and is app/platform specific\r\n */\r\n AWTSemanticContext.prototype.setDeviceModel = function (deviceModel) {\r\n if (this._allowDeviceFields) {\r\n this._addContext('DeviceInfo.Model', deviceModel);\r\n }\r\n };\r\n /**\r\n * Sets the field UserInfo.Id with the given value.\r\n * @param {string} userId - The id uniquely identifies the user in an application-specific\r\n * user namespace, such as a Skype ID in the Skype App. This may be empty for Apps\r\n * which do not require user sign-in.\r\n * @param {enum} pii - Optional pii type for the user id.\r\n * @param {enum} userIdType - Optional id type for the user id.\r\n */\r\n AWTSemanticContext.prototype.setUserId = function (userId, pii, userIdType) {\r\n if (!isNaN(userIdType) && userIdType !== null && userIdType >= 0 && userIdType <= 12) {\r\n this._addContext(UI_IDTYPE, userIdType.toString());\r\n }\r\n else {\r\n var inferredUserIdType = void 0;\r\n switch (pii) {\r\n case Enums_1.AWTPiiKind.SipAddress:\r\n inferredUserIdType = Enums_2.AWTUserIdType.SipAddress;\r\n break;\r\n case Enums_1.AWTPiiKind.PhoneNumber:\r\n inferredUserIdType = Enums_2.AWTUserIdType.PhoneNumber;\r\n break;\r\n case Enums_1.AWTPiiKind.SmtpAddress:\r\n inferredUserIdType = Enums_2.AWTUserIdType.EmailAddress;\r\n break;\r\n default:\r\n inferredUserIdType = Enums_2.AWTUserIdType.Unknown;\r\n break;\r\n }\r\n this._addContext(UI_IDTYPE, inferredUserIdType.toString());\r\n }\r\n if (isNaN(pii) || pii === null || pii === Enums_1.AWTPiiKind.NotSet || pii > 13) {\r\n switch (userIdType) {\r\n case Enums_2.AWTUserIdType.Skype:\r\n pii = Enums_1.AWTPiiKind.Identity;\r\n break;\r\n case Enums_2.AWTUserIdType.EmailAddress:\r\n pii = Enums_1.AWTPiiKind.SmtpAddress;\r\n break;\r\n case Enums_2.AWTUserIdType.PhoneNumber:\r\n pii = Enums_1.AWTPiiKind.PhoneNumber;\r\n break;\r\n case Enums_2.AWTUserIdType.SipAddress:\r\n pii = Enums_1.AWTPiiKind.SipAddress;\r\n break;\r\n default:\r\n pii = Enums_1.AWTPiiKind.NotSet;\r\n break;\r\n }\r\n }\r\n this._addContextWithPii('UserInfo.Id', userId, pii);\r\n };\r\n /**\r\n * Sets the field UserInfo.AdvertisingId with the given value.\r\n * @param {string} userAdvertisingId - The AdvertisingId is the user-specific device id obtainable through\r\n * platform API's. This may not be available if users choose to opt-out\r\n * of this id, or if the underlying platform does not support it.\r\n */\r\n AWTSemanticContext.prototype.setUserAdvertisingId = function (userAdvertisingId) {\r\n this._addContext('UserInfo.AdvertisingId', userAdvertisingId);\r\n };\r\n /**\r\n * Sets the field UserInfo.TimeZone with the given value.\r\n * @param {string} userTimeZone - The user's time zone relative to UTC, in ISO 8601 time zone format.\r\n * Examples of acceptable values include \"+00\", \"+07:00\", and \"-1130\".\r\n */\r\n AWTSemanticContext.prototype.setUserTimeZone = function (userTimeZone) {\r\n this._addContext('UserInfo.TimeZone', userTimeZone);\r\n };\r\n /**\r\n * Sets the field UserInfo.Language with the given value.\r\n * @param {string} userLanguage - The user's language in IETF language tag format, as described in RFC 4646.\r\n * Examples of acceptable values include \"en\", \"pt-BR\" and \"zh-Hant-CN\".\r\n */\r\n AWTSemanticContext.prototype.setUserLanguage = function (userLanguage) {\r\n this._addContext('UserInfo.Language', userLanguage);\r\n };\r\n AWTSemanticContext.prototype._addContext = function (key, value) {\r\n if (typeof value === 'string') {\r\n this._properties.setProperty(key, value);\r\n }\r\n };\r\n AWTSemanticContext.prototype._addContextWithPii = function (key, value, pii) {\r\n if (typeof value === 'string') {\r\n this._properties.setPropertyWithPii(key, value, pii);\r\n }\r\n };\r\n return AWTSemanticContext;\r\n}());\r\nexports.default = AWTSemanticContext;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AWTTransmissionManagerCore_1 = require(\"./AWTTransmissionManagerCore\");\r\n/**\r\n * The AWTTransmissionManager calss is a wrapper class that exposes some of the\r\n * Transmission functionality needed by other Aria modules.\r\n */\r\nvar AWTTransmissionManager = /** @class */ (function () {\r\n function AWTTransmissionManager() {\r\n }\r\n /**\r\n * Sets the event handler used by the tranmission manager.\r\n * The default event handler is the Inbound queue manager. This handler\r\n * is used to batch and send events to Aria. If you intend to send events\r\n * to Aria please make sure that your event handler forwards events to the Inbound\r\n * Queue Manager. You can retrieve the Inbound Queue Manager by calling\r\n * getEventsHandler before you set your handler.\r\n * @param {object} eventsHandler - An AWTEventHandler event handler used by the tranmission\r\n * manager.\r\n */\r\n AWTTransmissionManager.setEventsHandler = function (eventsHandler) {\r\n AWTTransmissionManagerCore_1.default.setEventsHandler(eventsHandler);\r\n };\r\n /**\r\n * Gets the current event handler used by the tranmission manager.\r\n * @return {object} An AWTEventHandler event handler used by the tranmission manager.\r\n */\r\n AWTTransmissionManager.getEventsHandler = function () {\r\n return AWTTransmissionManagerCore_1.default.getEventsHandler();\r\n };\r\n /**\r\n * The scheduleTimer method tries to schedule the waiting period after which events are sent. If there are\r\n * no events to be sent, or if there is already a timer scheduled, or if the\r\n * http manager doesn't have any idle connections, then this method is no-op.\r\n */\r\n AWTTransmissionManager.scheduleTimer = function () {\r\n AWTTransmissionManagerCore_1.default.scheduleTimer();\r\n };\r\n return AWTTransmissionManager;\r\n}());\r\nexports.default = AWTTransmissionManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AWTTransmissionManagerCore.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n*/\r\nvar DataModels_1 = require(\"./DataModels\");\r\nvar Enums_1 = require(\"../common/Enums\");\r\nvar AWTQueueManager_1 = require(\"./AWTQueueManager\");\r\nvar AWTStatsManager_1 = require(\"../common/AWTStatsManager\");\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nvar AWTLogManager_1 = require(\"./AWTLogManager\");\r\nvar Utils = require(\"../common/Utils\");\r\nvar MaxBackoffCount = 4;\r\nvar MinDurationBetweenUploadNow = 30000; //30 sec\r\nvar StatName = 'awt_stats';\r\n/**\r\n * Class that manages the timers for when to send events. It also\r\n * handles flush and flushAndTeardown. This class also allows setting\r\n * new event handlers. The default event handler is the Inbound Queue Manager.\r\n */\r\nvar AWTTransmissionManagerCore = /** @class */ (function () {\r\n function AWTTransmissionManagerCore() {\r\n }\r\n /**\r\n * Sets the event handler to be used by the tranmission manager.\r\n * The default event handler is the Inbound queue manager. This handler\r\n * is used to batch and send events to Aria. If you intend to send events\r\n * to Aria please make sure your event handler forwards events to the Inbound\r\n * Queue Manager. You can retrieve the Inbound Queue Manager by calling\r\n * getEventsHandler before you set your handler.\r\n * @param {object} eventsHandler - The new events handler to be used by the tranmission\r\n * manager.\r\n */\r\n AWTTransmissionManagerCore.setEventsHandler = function (eventsHandler) {\r\n this._eventHandler = eventsHandler;\r\n };\r\n /**\r\n * Gets the current event handler used by the tranmission manager.\r\n * @return {object} The event handler currently used by the tranmission manager.\r\n */\r\n AWTTransmissionManagerCore.getEventsHandler = function () {\r\n return this._eventHandler;\r\n };\r\n /**\r\n * Try to schedule the timer after which events will be sent. If there are\r\n * no events to be sent, or there is already a timer scheduled, or the\r\n * http manager doesn't have any idle connections this method is no-op.\r\n */\r\n AWTTransmissionManagerCore.scheduleTimer = function () {\r\n var _this = this;\r\n var timer = this._profiles[this._currentProfile][2];\r\n if (this._timeout < 0 && timer >= 0 && !this._paused) {\r\n if (this._eventHandler.hasEvents()) {\r\n //If the transmission is backed off make the timer atleast 1 sec to allow for backoff.\r\n if (timer === 0 && this._currentBackoffCount > 0) {\r\n timer = 1;\r\n }\r\n this._timeout = setTimeout(function () { return _this._batchAndSendEvents(); }, timer * (1 << this._currentBackoffCount) * 1000);\r\n }\r\n else {\r\n this._timerCount = 0;\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the transmission manager. After this method is called events are\r\n * accepted for tranmission.\r\n * @param {object} config - The configuration passed during AWTLogManager initialize.\r\n */\r\n AWTTransmissionManagerCore.initialize = function (config) {\r\n var _this = this;\r\n this._newEventsAllowed = true;\r\n this._config = config;\r\n this._eventHandler = new AWTQueueManager_1.default(config.collectorUri, config.cacheMemorySizeLimitInNumberOfEvents, config.httpXHROverride, config.clockSkewRefreshDurationInMins);\r\n this._initializeProfiles();\r\n AWTStatsManager_1.default.initialize(function (stats, tenantId) {\r\n if (_this._config.canSendStatEvent(StatName)) {\r\n var event_1 = new AWTEventProperties_1.default(StatName);\r\n event_1.setEventPriority(Enums_1.AWTEventPriority.High);\r\n event_1.setProperty('TenantId', tenantId);\r\n for (var statKey in stats) {\r\n if (stats.hasOwnProperty(statKey)) {\r\n event_1.setProperty(statKey, stats[statKey].toString());\r\n }\r\n }\r\n AWTLogManager_1.default.getLogger(Utils.StatsApiKey).logEvent(event_1);\r\n }\r\n });\r\n };\r\n /**\r\n * Set the transmit profile to be used. This will change the tranmission timers\r\n * based on the transmit profile.\r\n * @param {string} profileName - The name of the transmit profile to be used.\r\n */\r\n AWTTransmissionManagerCore.setTransmitProfile = function (profileName) {\r\n if (this._currentProfile !== profileName && this._profiles[profileName] !== undefined) {\r\n this.clearTimeout();\r\n this._currentProfile = profileName;\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Load custom tranmission profiles. Each profile should have timers for\r\n * high, normal and low. Each profile should make sure\r\n * that a each priority timer is a multiple of the priority higher than it.\r\n * Setting the timer value to -1 means that the events for that priority will\r\n * not be sent. Note that once a priority has been set to not send, all priorities\r\n * below it will also not be sent. The timers should be in the form of [low, normal, high].\r\n * e.g Custom: [30,10,5]\r\n * This also removes any previously loaded custom profiles.\r\n * @param {object} profiles - A dictionary containing the transmit profiles.\r\n */\r\n AWTTransmissionManagerCore.loadTransmitProfiles = function (profiles) {\r\n this._resetTransmitProfiles();\r\n for (var profileName in profiles) {\r\n if (profiles.hasOwnProperty(profileName)) {\r\n if (profiles[profileName].length !== 3) {\r\n continue;\r\n }\r\n //Make sure if a higher priority is set to not send then dont send lower priority\r\n for (var i = 2; i >= 0; --i) {\r\n if (profiles[profileName][i] < 0) {\r\n for (var j = i; j >= 0; --j) {\r\n profiles[profileName][j] = -1;\r\n }\r\n break;\r\n }\r\n }\r\n //Make sure each priority is multiple of the priority higher then it. If not a multiple\r\n //we round up so that it becomes a multiple.\r\n for (var i = 2; i > 0; --i) {\r\n if (profiles[profileName][i] > 0 && profiles[profileName][i - 1] > 0) {\r\n var timerMultiplier = profiles[profileName][i - 1] / profiles[profileName][i];\r\n profiles[profileName][i - 1] = Math.ceil(timerMultiplier) * profiles[profileName][i];\r\n }\r\n }\r\n this._profiles[profileName] = profiles[profileName];\r\n }\r\n }\r\n };\r\n /**\r\n * Pass the event to the event handler and try to schedule the timer.\r\n * @param {object} event - The event to be sent.\r\n */\r\n AWTTransmissionManagerCore.sendEvent = function (event) {\r\n if (this._newEventsAllowed) {\r\n //If the transmission is backed off then do not send synchronous events.\r\n //We will convert these events to High priority instead.\r\n if (this._currentBackoffCount > 0 && event.priority === Enums_1.AWTEventPriority.Immediate_sync) {\r\n event.priority = Enums_1.AWTEventPriority.High;\r\n }\r\n this._eventHandler.addEvent(event);\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Sends events for all priority for the current inbound queue.\r\n * This method adds new inbound queues to which new events will be added.\r\n * Note: If LogManager is paused or flush is called again in less than 30 sec\r\n * then flush will be no-op and the callback will not be called.\r\n * @param {function} callback - The function to be called when flush is finished.\r\n */\r\n AWTTransmissionManagerCore.flush = function (callback) {\r\n var currentTime = (new Date()).getTime();\r\n if (!this._paused && this._lastUploadNowCall + MinDurationBetweenUploadNow < currentTime) {\r\n this._lastUploadNowCall = currentTime;\r\n if (this._timeout > -1) {\r\n clearTimeout(this._timeout);\r\n this._timeout = -1;\r\n }\r\n this._eventHandler.uploadNow(callback);\r\n }\r\n };\r\n /**\r\n * Pauses transmission. It pauses the http manager and also clears timers.\r\n */\r\n AWTTransmissionManagerCore.pauseTransmission = function () {\r\n if (!this._paused) {\r\n this.clearTimeout();\r\n this._eventHandler.pauseTransmission();\r\n this._paused = true;\r\n }\r\n };\r\n /**\r\n * Resumes tranmission. It resumes the http manager and tries to schedule the timer.\r\n */\r\n AWTTransmissionManagerCore.resumeTransmision = function () {\r\n if (this._paused) {\r\n this._paused = false;\r\n this._eventHandler.resumeTransmission();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Stops allowing new events being added for tranmission. It also batches all\r\n * events currently in the queue and creates requests from them to be sent.\r\n */\r\n AWTTransmissionManagerCore.flushAndTeardown = function () {\r\n AWTStatsManager_1.default.teardown();\r\n this._newEventsAllowed = false;\r\n this.clearTimeout();\r\n //No op if offline storage is added\r\n this._eventHandler.teardown();\r\n };\r\n /**\r\n * Backs off tranmission. This exponentially increases all the timers.\r\n */\r\n AWTTransmissionManagerCore.backOffTransmission = function () {\r\n if (this._currentBackoffCount < MaxBackoffCount) {\r\n this._currentBackoffCount++;\r\n this.clearTimeout();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Clears backoff for tranmission.\r\n */\r\n AWTTransmissionManagerCore.clearBackOff = function () {\r\n if (this._currentBackoffCount > 0) {\r\n this._currentBackoffCount = 0;\r\n this.clearTimeout();\r\n this.scheduleTimer();\r\n }\r\n };\r\n /**\r\n * Resets the transmit profiles to the default profiles of Real Time, Near Real Time\r\n * and Best Effort. This removes all the custom profiles that were loaded.\r\n */\r\n AWTTransmissionManagerCore._resetTransmitProfiles = function () {\r\n this.clearTimeout();\r\n this._initializeProfiles();\r\n this._currentProfile = DataModels_1.AWT_REAL_TIME;\r\n this.scheduleTimer();\r\n };\r\n AWTTransmissionManagerCore.clearTimeout = function () {\r\n if (this._timeout > 0) {\r\n clearTimeout(this._timeout);\r\n this._timeout = -1;\r\n this._timerCount = 0;\r\n }\r\n };\r\n AWTTransmissionManagerCore._batchAndSendEvents = function () {\r\n var priority = Enums_1.AWTEventPriority.High;\r\n this._timerCount++;\r\n if (this._timerCount * this._profiles[this._currentProfile][2] === this._profiles[this._currentProfile][0]) {\r\n priority = Enums_1.AWTEventPriority.Low;\r\n this._timerCount = 0;\r\n }\r\n else if (this._timerCount * this._profiles[this._currentProfile][2] === this._profiles[this._currentProfile][1]) {\r\n priority = Enums_1.AWTEventPriority.Normal;\r\n }\r\n this._eventHandler.sendEventsForPriorityAndAbove(priority);\r\n this._timeout = -1;\r\n this.scheduleTimer();\r\n };\r\n AWTTransmissionManagerCore._initializeProfiles = function () {\r\n this._profiles = {};\r\n this._profiles[DataModels_1.AWT_REAL_TIME] = [4, 2, 1];\r\n this._profiles[DataModels_1.AWT_NEAR_REAL_TIME] = [12, 6, 3];\r\n this._profiles[DataModels_1.AWT_BEST_EFFORT] = [36, 18, 9];\r\n };\r\n AWTTransmissionManagerCore._newEventsAllowed = false;\r\n AWTTransmissionManagerCore._currentProfile = DataModels_1.AWT_REAL_TIME;\r\n AWTTransmissionManagerCore._timeout = -1;\r\n AWTTransmissionManagerCore._currentBackoffCount = 0;\r\n AWTTransmissionManagerCore._paused = false;\r\n AWTTransmissionManagerCore._timerCount = 0;\r\n AWTTransmissionManagerCore._lastUploadNowCall = 0;\r\n return AWTTransmissionManagerCore;\r\n}());\r\nexports.default = AWTTransmissionManagerCore;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* AriaSDK.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File to export public classes, interfaces and enums.\r\n*/\r\nvar Enums_1 = require(\"../common/Enums\");\r\nexports.AWTPropertyType = Enums_1.AWTPropertyType;\r\nexports.AWTPiiKind = Enums_1.AWTPiiKind;\r\nexports.AWTEventPriority = Enums_1.AWTEventPriority;\r\nexports.AWTEventsDroppedReason = Enums_1.AWTEventsDroppedReason;\r\nexports.AWTEventsRejectedReason = Enums_1.AWTEventsRejectedReason;\r\nexports.AWTCustomerContentKind = Enums_1.AWTCustomerContentKind;\r\nvar Enums_2 = require(\"./Enums\");\r\nexports.AWTUserIdType = Enums_2.AWTUserIdType;\r\nexports.AWTSessionState = Enums_2.AWTSessionState;\r\nvar DataModels_1 = require(\"./DataModels\");\r\nexports.AWT_BEST_EFFORT = DataModels_1.AWT_BEST_EFFORT;\r\nexports.AWT_NEAR_REAL_TIME = DataModels_1.AWT_NEAR_REAL_TIME;\r\nexports.AWT_REAL_TIME = DataModels_1.AWT_REAL_TIME;\r\nvar AWTEventProperties_1 = require(\"./AWTEventProperties\");\r\nexports.AWTEventProperties = AWTEventProperties_1.default;\r\nvar AWTLogger_1 = require(\"./AWTLogger\");\r\nexports.AWTLogger = AWTLogger_1.default;\r\nvar AWTLogManager_1 = require(\"./AWTLogManager\");\r\nexports.AWTLogManager = AWTLogManager_1.default;\r\nvar AWTTransmissionManager_1 = require(\"./AWTTransmissionManager\");\r\nexports.AWTTransmissionManager = AWTTransmissionManager_1.default;\r\nvar AWTSerializer_1 = require(\"../common/AWTSerializer\");\r\nexports.AWTSerializer = AWTSerializer_1.default;\r\nvar AWTSemanticContext_1 = require(\"./AWTSemanticContext\");\r\nexports.AWTSemanticContext = AWTSemanticContext_1.default;\r\nexports.AWT_COLLECTOR_URL_UNITED_STATES = 'https://us.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_GERMANY = 'https://de.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_JAPAN = 'https://jp.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_AUSTRALIA = 'https://au.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_EUROPE = 'https://eu.pipe.aria.microsoft.com/Collector/3.0/';\r\nexports.AWT_COLLECTOR_URL_USGOV_DOD = 'https://pf.pipe.aria.microsoft.com/Collector/3.0';\r\nexports.AWT_COLLECTOR_URL_USGOV_DOJ = 'https://tb.pipe.aria.microsoft.com/Collector/3.0';\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AWT_REAL_TIME = 'REAL_TIME';\r\nexports.AWT_NEAR_REAL_TIME = 'NEAR_REAL_TIME';\r\nexports.AWT_BEST_EFFORT = 'BEST_EFFORT';\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Enums.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2017\r\n* File containing the enums.\r\n*/\r\n/**\r\n * The AWTUserIdType enumeration contains a set of values that specify the type of user ID.\r\n * @enum {number}\r\n */\r\nvar AWTUserIdType;\r\n(function (AWTUserIdType) {\r\n /**\r\n * The user ID type is unknown.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * Microsoft Account ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MSACID\"] = 1] = \"MSACID\";\r\n /**\r\n * Microsoft .NET Passport Unique ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MSAPUID\"] = 2] = \"MSAPUID\";\r\n /**\r\n * Anonymous user ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"ANID\"] = 3] = \"ANID\";\r\n /**\r\n * Organization customer ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"OrgIdCID\"] = 4] = \"OrgIdCID\";\r\n /**\r\n * Microsoft Exchange Passport ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"OrgIdPUID\"] = 5] = \"OrgIdPUID\";\r\n /**\r\n * User object ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"UserObjectId\"] = 6] = \"UserObjectId\";\r\n /**\r\n * Skype ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Skype\"] = 7] = \"Skype\";\r\n /**\r\n * Yammer ID.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"Yammer\"] = 8] = \"Yammer\";\r\n /**\r\n * E-mail address.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"EmailAddress\"] = 9] = \"EmailAddress\";\r\n /**\r\n * Telephone number.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"PhoneNumber\"] = 10] = \"PhoneNumber\";\r\n /**\r\n * SIP address.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"SipAddress\"] = 11] = \"SipAddress\";\r\n /**\r\n * Multiple unit identity.\r\n */\r\n AWTUserIdType[AWTUserIdType[\"MUID\"] = 12] = \"MUID\";\r\n})(AWTUserIdType = exports.AWTUserIdType || (exports.AWTUserIdType = {}));\r\n/**\r\n * The AWTSessionState enumeration contains a set of values that indicate the session state.\r\n * @enum {number}\r\n */\r\nvar AWTSessionState;\r\n(function (AWTSessionState) {\r\n /**\r\n * Session started.\r\n */\r\n AWTSessionState[AWTSessionState[\"Started\"] = 0] = \"Started\";\r\n /**\r\n * Session ended.\r\n */\r\n AWTSessionState[AWTSessionState[\"Ended\"] = 1] = \"Ended\";\r\n})(AWTSessionState = exports.AWTSessionState || (exports.AWTSessionState = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Version.ts\r\n* @author Abhilash Panwar (abpanwar)\r\n* @copyright Microsoft 2018\r\n* File for SDK version.\r\n*/\r\nexports.Version = '1.8.4';\r\nexports.FullVersionString = 'AWT-Web-JS-' + exports.Version;\r\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.8.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.8.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n"],"names":["Object","defineProperty","exports","value","_BondDataType","microsoft_bond_primitives_1","microsoft_bond_floatutils_1","microsoft_bond_utils_1","_Utf8_GetBytes","array","i","length","char","charCodeAt","push","_Base64_GetString","inArray","num","lookup","output","paddingBytes","length_1","temp","charAt","join","temp2","_Varint_GetBytes","_Varint64_GetBytes","low","high","_Double_GetBytes","BrowserChecker","_IsDataViewSupport","view","DataView","ArrayBuffer","setFloat64","getUint8","FloatUtils","_ConvertNumberToArray","_Zigzag_EncodeZigzag32","Number","_ToInt32","_Zigzag_EncodeZigzag64","tmpH","tmpL","res","UInt64","isDouble","this","_doubleZero","_floatZero","precisionBits","bias","minExponent","maxExponent","sign","Math","abs","intPart","floor","floatPart","len","buffer","Array","firstBit","exponent","lastBit","_doubleNegInifinity","_floatNegInifinity","_doubleInifinity","_floatInifinity","result","MemoryStream","_buffer","prototype","_WriteByte","byte","_ToByte","_Write","offset","count","_GetBuffer","bond_const_1","_Encoding","IO","Int64","CompactBinaryProtocolWriter","stream","_stream","_WriteBlob","blob","_WriteBool","_WriteContainerBegin","size","elementType","_WriteUInt8","_WriteUInt32","_WriteMapContainerBegin","keyType","valueType","_WriteDouble","_WriteFieldBegin","type","id","metadata","_WriteInt32","_WriteInt64","_WriteUInt64","_WriteString","_WriteStructEnd","isBase","_BT_STOP_BASE","_BT_STOP","_ToUInt32","_ToUInt8","numberStr","parseInt","_Equals","tmp","AWTClockSkewManager","clockSkewRefreshDurationInMins","_reset","allowRequestSending","_isFirstRequest","_clockSkewSet","_allowRequestSending","shouldAddClockSkewHeaders","_shouldAddClockSkewHeaders","getClockSkewHeaderValue","_clockSkewHeaderValue","setClockSkew","timeDeltaInMillis","_this","setTimeout","AWTKillSwitch","_killedTokenDictionary","setKillSwitchTenants","killTokens","killDuration","killedTokens","split","durationMs","Date","now","ex","isTenantKilled","tenantToken","undefined","AWTNotificationManager","addNotificationListener","listener","listeners","removeNotificationListener","index","indexOf","splice","eventsSent","events","_loop_1","this_1","eventsDropped","reason","_loop_2","this_2","eventsRetrying","_loop_3","this_3","eventsRejected","_loop_4","this_4","Enums_1","AWTRecordBatcher","_outboundQueue","_maxNumberOfEvents","_currentBatch","_currentNumEventsInBatch","addEventToBatch","event","priority","AWTEventPriority","Immediate_sync","immediateBatch","apiKey","flushBatch","hasBatch","AWTRetryPolicy","shouldRetryForStatus","httpStatusCode","getMillisToBackoffForRetry","retriesSoFar","waitDuration","randomBackoff","random","BaseBackoff","pow","min","Bond","AWTNotificationManager_1","Utils","RequestSizeLimitBytes","AWTSerializer","getPayloadBlob","requestDictionary","tokenCount","remainingRequest","requestFull","writer","token","_BT_MAP","_BT_STRING","_BT_LIST","hasOwnProperty","dataPackage","_BT_STRUCT","newGuid","_BT_INT64","numberToBondInt64","dpSizePos","dpSizeSerialized","currentStreamPos","writeEvent","default","AWTEventsRejectedReason","SizeLimitExceeded","_addNewDataPackageSize","payloadBlob","oldDpSize","streamPos","newRecordCountSerialized","j","slice","eventData","timestamp","name","propsString","propStringCount","propsInt64","propInt64Count","propsDouble","propDoubleCount","propsBool","propBoolCount","propsDate","propDateCount","piiProps","piiPropCount","ccProps","ccPropCount","key","properties","property","cc","pii","AWTPropertyType","String","Double","Boolean","toString","_BT_INT32","_BT_BOOL","_BT_DOUBLE","base64Encode","data","AWTStatsManager","initialize","sendStats","_sendStats","_isInitalized","_addStat","AWTEventsDroppedReason","NonRetryableStatus","MaxRetryLimit","QueueFull","InvalidEvent","KillSwitch","flush","teardown","eventReceived","tenantId","_stats","statName","StatsApiKey","getTenantId","AWTPiiKind","AWTCustomerContentKind","GuidRegex","NullValue","EventNameAndTypeRegex","EventNameDotRegex","PropertyNameRegex","beaconsSupported","uInt8ArraySupported","useXDR","isString","isNumber","isBoolean","isDate","msToTicks","timeInMs","isReactNative","navigator","product","twoDigit","n","isNotDefined","bond_value","replace","c","r","indexTenantId","substring","isBeaconsSupported","sendBeacon","isUint8ArrayAvailable","Uint8Array","userAgent","ua","toLowerCase","isSafariOrFirefox","isPriority","sanitizeProperty","test","Unspecified","isPropertyType","getCorrectType","NaN","getTime","sanitizePropertyType","isPii","isCustomerContent","getISOString","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","threeDigit","getUTCMilliseconds","useXDomainRequest","conn","XMLHttpRequest","withCredentials","XDomainRequest","DEVICE_ID_COOKIE","FIRSTLAUNCHTIME_COOKIE","BROWSERS","OPERATING_SYSTEMS","OSNAMEREGEX","VERSION_MAPPINGS","REGEX_VERSION","UNKNOWN","UNDEFINED","AWTAutoCollection","addPropertyStorageOverride","propertyStorage","_propertyStorage","autoCollect","semanticContext","disableCookies","_semanticContext","_disableCookies","_autoCollect","_autoCollectFromUserAgent","_deleteCookie","_areCookiesAvailable","_autoCollectDeviceId","checkAndSaveDeviceId","deviceId","oldDeviceId","_getData","flt","_saveData","_setFirstLaunchTime","setDeviceId","document","documentElement","setAppLanguage","lang","setUserLanguage","userLanguage","language","timeZone","getTimezoneOffset","minutes","hours","timeZonePrefix","setUserTimeZone","browserName","_getBrowserName","setDeviceBrowserName","setDeviceBrowserVersion","_getBrowserVersion","osName","_getOsName","setDeviceOsName","setDeviceOsVersion","_getOsVersion","_userAgentContainsString","isNaN","fltDate","setTime","firstLaunchTime","searchString","_getIeVersion","_getOtherVersion","classicIeVersionMatches","match","RegExp","ieVersionMatches","browserString","matches","_getGenericOsVersion","_getMacOsxVersion","ntVersionMatches","macOsxVersionInUserAgentMatches","versionString","delimiter","_getDelimiter","setProperty","expires","toUTCString","cookie","getProperty","ca","AWTEventProperties","_event","setName","getName","setType","getType","setTimestamp","timestampInEpochMillis","getTimestamp","setEventPriority","getEventPriority","NotSet","setPropertyWithPii","setPropertyWithCustomerContent","customerContent","getPropertyMap","getEvent","AWTSerializer_1","AWTRetryPolicy_1","AWTKillSwitch_1","AWTClockSkewManager_1","Version","AWTTransmissionManagerCore_1","Method","AWTHttpManager","_requestQueue","collectorUrl","_queueManager","_httpInterface","_urlString","FullVersionString","_killSwitch","_paused","_useBeacons","_activeConnections","_clockSkewManager","sendPOST","urlString","ontimeout","onerror","onload","sync","xdr","open","send","fetch","body","method","then","response","headerMap","headers","forEach","status","catch","error","xhr_1","_convertAllHeadersToMap","getAllResponseHeaders","e","hasIdleConnection","sendQueuedRequests","_sendRequest","shift","scheduleTimer","isCompletelyIdle","pause","resume","removeQueuedRequests","sendSynchronousRequest","request","High","retryCount","isTeardown","isSynchronous","addBackRequest","tokenCount_1","apikey_1","payloadResult","sendAttempt","_retryRequestIfNeeded","_handleRequestFinished","apikey","shouldRetry","backOffTransmission","success","clearBackOff","headersString","headersArray","header","Enums_2","AWTLogManagerSettings_1","AWTLogger_1","AWTAutoCollection_1","AWTLogManager","configuration","_isInitialized","defaultTenantToken","_overrideValuesFromConfig","_config","disableCookiesUsage","propertyStorageOverride","sessionEnabled","loggingEnabled","enableAutoUserSession","getLogger","logSession","AWTSessionState","Started","window","addEventListener","flushAndTeardown","getSemanticContext","callback","_isDestroyed","Ended","pauseTransmission","resumeTransmision","setTransmitProfile","profileName","loadTransmitProfiles","profiles","setContext","logManagerContext","setContextWithPii","setContextWithCustomerContent","_loggers","config","collectorUri","cacheMemorySizeLimitInNumberOfEvents","httpXHROverride","canSendStatEvent","eventName","AWTEventProperties_1","AWTSemanticContext_1","AWTLogManagerSettings","AWTStatsManager_1","AWTLogger","_apiKey","_contextProperties","_sessionStartTime","_createInitId","logEvent","sanitizeProperties","_logEvent","_getInternalEvent","state","sessionEvent","_addPropertiesToEvent","_sessionId","sessionDurationSec","_getSessionDurationFromTime","getSessionId","logFailure","signature","detail","category","failureEvent","logPageView","pageName","uri","referrerUri","pageViewEvent","_initIdMap","propertiesEvent","name_1","timeInSec","eventWithMetaData","contextProperties","_addContextIfAbsent","_setDefaultProperty","_getInitId","_getSequenceId","toISOString","Normal","_sendEvent","name_2","sendEvent","name_3","internalEvent","_sequenceIdMap","AWTHttpManager_1","AWTRecordBatcher_1","AWTQueueManager","_queueSizeLimit","xhrOverride","_isCurrentlyUploadingNow","_uploadNowQueue","_shouldDropEventsOnPause","_queueSize","_inboundQueues","Low","_addEmptyQueues","_batcher","_httpManager","addEvent","_dropEventWithPriorityOrLess","_addEventToProperQueue","sendEventsForPriorityAndAbove","_batchEvents","hasEvents","uploadNow","_uploadNow","shouldDropEventsOnPause","resumeTransmission","_removeFirstQueues","currentPriority","priorityToProcess","event_1","pop","_checkOutboundQueueEmptyAndSent","UI_IDTYPE","AWTSemanticContext","_allowDeviceFields","_properties","setAppId","appId","_addContext","setAppVersion","appVersion","appLanguage","deviceOsName","deviceOsVersion","deviceBrowserName","deviceBrowserVersion","setDeviceMake","deviceMake","setDeviceModel","deviceModel","setUserId","userId","userIdType","inferredUserIdType","SipAddress","AWTUserIdType","PhoneNumber","SmtpAddress","EmailAddress","Unknown","Skype","Identity","_addContextWithPii","setUserAdvertisingId","userAdvertisingId","userTimeZone","AWTTransmissionManager","setEventsHandler","eventsHandler","getEventsHandler","DataModels_1","AWTQueueManager_1","AWTLogManager_1","StatName","AWTTransmissionManagerCore","_eventHandler","timer","_profiles","_currentProfile","_timeout","_currentBackoffCount","_batchAndSendEvents","_timerCount","_newEventsAllowed","_initializeProfiles","stats","statKey","clearTimeout","_resetTransmitProfiles","timerMultiplier","ceil","currentTime","_lastUploadNowCall","AWT_REAL_TIME","AWT_NEAR_REAL_TIME","AWT_BEST_EFFORT","AWTTransmissionManager_1","AWT_COLLECTOR_URL_UNITED_STATES","AWT_COLLECTOR_URL_GERMANY","AWT_COLLECTOR_URL_JAPAN","AWT_COLLECTOR_URL_AUSTRALIA","AWT_COLLECTOR_URL_EUROPE","AWT_COLLECTOR_URL_USGOV_DOD","AWT_COLLECTOR_URL_USGOV_DOJ","compileSchema","resolve","Cache","SchemaObject","stableStringify","formats","rules","$dataMetaSchema","util","module","Ajv","validate","schemaKeyRef","v","getSchema","Error","schemaObj","_addSchema","_compile","valid","$async","errors","compile","schema","_meta","addSchema","_skipValidation","isArray","_getId","checkUnique","normalizeId","_schemas","addMetaSchema","skipValidation","validateSchema","throwOrLogError","$schema","_opts","defaultMeta","self","meta","META_SCHEMA_ID","logger","warn","message","errorsText","keyRef","_getSchemaObj","ref","call","root","baseId","_fragments","fragment","_getSchemaFragment","removeSchema","_removeAllSchemas","_refs","_cache","clear","del","cacheKey","serialize","addFormat","format","_formats","options","separator","dataVar","text","dataPath","shouldAddSchema","cached","get","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","compiling","callValidate","currentOpts","_metaOpts","refs","refVal","_validate","apply","arguments","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","validateKeyword","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","META_IGNORE_OPTIONS","META_SUPPORT_DATA","opts","copy","log","noop","console","setLogger","cache","_loadingSchemas","_compilations","RULES","schemaId","_get$IdOrId","_get$Id","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","metaOpts","getMetaSchemaOptions","addInitialFormats","keywords","keyword","addInitialKeywords","$dataSchema","$data","$id","metaSchema","addDefaultMetaSchema","nullable","optsSchemas","schemas","addInitialSchemas","regex","loadSchema","p","loadMetaSchemaOf","_compileAsync","sch","$ref","Promise","missingSchema","added","missingRef","schemaPromise","removePromise","loadMissingSchema","url","fullPath","errorSubclass","Subclass","create","constructor","ajv","validation","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","mode","str","year","month","day","isLeapYear","time","full","hour","minute","second","fast","email","hostname","ipv4","ipv6","uuid","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","validateGenerator","ucs2length","equal","checkCompiling","compIndex","endCompiling","patternCode","patterns","toQuotedString","defaultCode","refValCode","customRuleCode","vars","arr","statement","code","patternsHash","defaults","defaultsHash","customRules","compilation","localCompile","cv","sourceCode","source","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","processCode","Function","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","refId","replaceLocalRef","removeLocalRef","inline","regexStr","valueStr","rule","parentSchema","it","deps","definition","dependencies","every","macro","traverse","resolveSchema","parse","refPath","_getFullPath","getFullPath","keys","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","baseIds","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","normalize","TRAILING_SLASH_HASH","ruleModules","ALL","all","types","group","map","implKeywords","k","implements","$comment","concat","custom","obj","pos","checkDataType","dataType","strictNumbers","negate","EQUAL","AND","OK","NOT","o","to","checkDataTypes","dataTypes","t","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","escapeQuotes","varOccurences","varReplace","expr","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","joinPaths","getPath","prop","path","escapeJsonPointer","getData","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","a","b","KEYWORDS","keywordsJsonPointers","JSON","stringify","anyOf","definitions","simpleTypes","statements","not","required","items","modifying","async","const","$keyword","$ruleType","$schemaValue","out","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","createErrors","messages","verbose","__err","compositeRule","unicode","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","$valid","$errs","$noEmptySchema","$wasComposite","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","arr2","i2","l2","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","allOf","contains","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","$additionalItems","additionalItems","$currErrSchemaPath","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","arr4","i4","l4","$invalidName","$refCode","$refVal","$message","missingRefs","__callValidate","$propertySch","$loopRequired","$itemType","$typeIsArray","$method","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","definitionSchema","_addRule","ruleGroup","rg","throwError","_validateKeyword","bind","fn","thisArg","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isFunction","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","l","getOwnPropertyNames","findKey","_key","_global","globalThis","g","isContextDefined","context","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","callbacks","cb","postMessage","asap","queueMicrotask","process","nextTick","utils$1","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","isView","isStream","pipe","merge","caseless","assignValue","targetKey","extend","trim","stripBOM","content","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","position","lastIndex","toArray","forEachEntry","next","done","pair","matchAll","regExp","exec","hasOwnProp","freezeMethods","enumerable","writable","set","toObjectSet","arrayOrString","define","toCamelCase","m","p1","p2","toUpperCase","toFiniteNumber","defaultValue","isFinite","global","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","AxiosError","captureStackTrace","toJSON","description","fileName","lineNumber","columnNumber","prototype$1","from","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","toFormData","formData","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","Buffer","some","isFlatArray","el","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","params","_pairs","encode","buildURL","_encode","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","freeze","__proto__","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalized","w","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","progressEventReducer","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","speedometer","lastArgs","threshold","invoke","args","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","protocol","host","port","cookies","write","domain","secure","toGMTString","read","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","xsrfValue","xhrAdapter","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","err","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","composeSignals$1","signals","controller","AbortController","streamChunk","chunk","chunkSize","byteLength","end","readStream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","_","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","validator","version","formatMessage","opt","desc","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","CancelToken$1","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","axios","createInstance","defaultConfig","instance","Cancel","promises","spread","isAxiosError","payload","formToJSON","getAdapter","utils","s"],"sourceRoot":""}