{"version":3,"file":"static/js/674.4940ee7f.js","mappings":"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","sources":["../node_modules/aws-rum-web/dist/es/dispatch/utils.js","../node_modules/aws-rum-web/dist/es/dispatch/StsClient.js","../node_modules/aws-rum-web/dist/es/utils/constants.js","../node_modules/aws-rum-web/dist/es/dispatch/CognitoIdentityClient.js","../node_modules/aws-rum-web/dist/es/dispatch/Authentication.js","../node_modules/aws-rum-web/dist/es/dispatch/BasicAuthentication.js","../node_modules/aws-rum-web/dist/es/dispatch/EnhancedAuthentication.js","../node_modules/aws-rum-web/dist/es/plugins/utils/constant.js","../node_modules/aws-rum-web/dist/es/plugins/InternalPlugin.js","../node_modules/aws-rum-web/dist/es/plugins/PluginManager.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/DomEventPlugin.js","../node_modules/aws-rum-web/dist/es/plugins/utils/js-error-utils.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/JsErrorPlugin.js","../node_modules/aws-rum-web/dist/es/utils/cookies-utils.js","../node_modules/aws-rum-web/node_modules/uuid/dist/esm-browser/native.js","../node_modules/aws-rum-web/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/aws-rum-web/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/aws-rum-web/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/aws-rum-web/dist/es/sessions/SessionManager.js","../node_modules/aws-rum-web/dist/es/plugins/MonkeyPatched.js","../node_modules/aws-rum-web/dist/es/sessions/VirtualPageLoadTimer.js","../node_modules/aws-rum-web/dist/es/sessions/PageManager.js","../node_modules/aws-rum-web/dist/es/event-bus/EventBus.js","../node_modules/aws-rum-web/dist/es/plugins/utils/http-utils.js","../node_modules/aws-rum-web/dist/es/event-cache/EventCache.js","../node_modules/aws-rum-web/dist/es/dispatch/DataPlaneClient.js","../node_modules/aws-rum-web/dist/es/dispatch/BeaconHttpHandler.js","../node_modules/aws-rum-web/dist/es/dispatch/request-timeout.js","../node_modules/aws-rum-web/dist/es/dispatch/FetchHttpHandler.js","../node_modules/aws-rum-web/dist/es/utils/random.js","../node_modules/aws-rum-web/dist/es/dispatch/RetryHttpHandler.js","../node_modules/aws-rum-web/dist/es/dispatch/Dispatch.js","../node_modules/aws-rum-web/dist/es/utils/common-utils.js","../node_modules/aws-rum-web/dist/es/plugins/utils/performance-utils.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/NavigationPlugin.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/ResourcePlugin.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/WebVitalsPlugin.js","../node_modules/aws-rum-web/dist/es/errors/XhrError.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/XhrPlugin.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/FetchPlugin.js","../node_modules/aws-rum-web/dist/es/plugins/event-plugins/PageViewPlugin.js","../node_modules/aws-rum-web/dist/es/orchestration/Orchestration.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/sha256-js/build/constants.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/sha256-js/build/index.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/util/build/convertToBuffer.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/util/build/index.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/util/build/isEmptyData.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/util/build/numToUint8.js","../node_modules/aws-rum-web/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","../node_modules/aws-amplify/dist/esm/initSingleton.mjs"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nexport var responseToJson = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, response.body.getReader().read()];\n case 1:\n value = (_a.sent()).value;\n return [2 /*return*/, JSON.parse(String.fromCharCode.apply(null, value))];\n }\n });\n}); };\nexport var responseToString = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, response.body.getReader().read()];\n case 1:\n value = (_a.sent()).value;\n return [2 /*return*/, String.fromCharCode.apply(null, value)];\n }\n });\n}); };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { HttpRequest } from '@aws-sdk/protocol-http';\nimport { responseToString } from './utils';\nvar METHOD = 'POST';\nvar CONTENT_TYPE = 'application/x-www-form-urlencoded';\nvar PROTOCOL = 'https:';\nvar ACTION = 'AssumeRoleWithWebIdentity';\nvar VERSION = '2011-06-15';\nvar StsClient = /** @class */ (function () {\n function StsClient(config) {\n var _this = this;\n this.assumeRoleWithWebIdentity = function (request) { return __awaiter(_this, void 0, void 0, function () {\n var requestObject, encodedBody, STSRequest, response, xmlResponse, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n requestObject = __assign(__assign({}, request), { Action: ACTION, Version: VERSION });\n encodedBody = new URLSearchParams(Object.entries(requestObject)).toString();\n STSRequest = new HttpRequest({\n method: METHOD,\n headers: {\n 'content-type': CONTENT_TYPE,\n host: this.hostname\n },\n protocol: PROTOCOL,\n hostname: this.hostname,\n body: encodedBody\n });\n return [4 /*yield*/, this.fetchRequestHandler.handle(STSRequest)];\n case 1:\n response = (_a.sent()).response;\n return [4 /*yield*/, responseToString(response)];\n case 2:\n xmlResponse = _a.sent();\n return [2 /*return*/, {\n accessKeyId: xmlResponse\n .split('')[1]\n .split('')[0],\n secretAccessKey: xmlResponse\n .split('')[1]\n .split('')[0],\n sessionToken: xmlResponse\n .split('')[1]\n .split('')[0],\n expiration: new Date(xmlResponse\n .split('')[1]\n .split('')[0])\n }];\n case 3:\n e_1 = _a.sent();\n throw new Error(\"CWR: Failed to retrieve credentials from STS: \".concat(e_1));\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.hostname = \"sts.\".concat(config.region, \".amazonaws.com\");\n this.fetchRequestHandler = config.fetchRequestHandler;\n }\n return StsClient;\n}());\nexport { StsClient };\n","export var CRED_KEY = 'cwr_c';\nexport var IDENTITY_KEY = 'cwr_i';\nexport var SESSION_COOKIE_NAME = 'cwr_s';\nexport var USER_COOKIE_NAME = 'cwr_u';\nexport var CRED_RENEW_MS = 30000;\nexport var INSTALL_SCRIPT = 'arw-script';\nexport var INSTALL_MODULE = 'arw-module';\nexport var DEFAULT_PAGE_ATTRIBUTES = ['pageId', 'pageTags'];\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable no-underscore-dangle */\nimport { HttpRequest } from '@aws-sdk/protocol-http';\nimport { responseToJson } from './utils';\nimport { IDENTITY_KEY } from '../utils/constants';\nvar METHOD = 'POST';\nvar CONTENT_TYPE = 'application/x-amz-json-1.1';\nvar PROTOCOL = 'https:';\n// Targets\nvar GET_ID_TARGET = 'AWSCognitoIdentityService.GetId';\nvar GET_TOKEN_TARGET = 'AWSCognitoIdentityService.GetOpenIdToken';\nvar GET_CREDENTIALS_TARGET = 'AWSCognitoIdentityService.GetCredentialsForIdentity';\nvar CognitoIdentityClient = /** @class */ (function () {\n function CognitoIdentityClient(config) {\n var _this = this;\n var _a;\n this.getId = function (request) { return __awaiter(_this, void 0, void 0, function () {\n var getIdResponse, requestPayload, idRequest, getIdResponse_1, _a, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n getIdResponse = null;\n try {\n getIdResponse = JSON.parse(localStorage.getItem(this.identityStorageKey));\n }\n catch (e) {\n // Ignore -- we will get a new identity Id from Cognito\n }\n if (getIdResponse && getIdResponse.IdentityId) {\n return [2 /*return*/, Promise.resolve(getIdResponse)];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n requestPayload = JSON.stringify(request);\n idRequest = this.getHttpRequest(GET_ID_TARGET, requestPayload);\n _a = responseToJson;\n return [4 /*yield*/, this.fetchRequestHandler.handle(idRequest)];\n case 2: return [4 /*yield*/, _a.apply(void 0, [(_b.sent()).response])];\n case 3:\n getIdResponse_1 = (_b.sent());\n try {\n localStorage.setItem(this.identityStorageKey, JSON.stringify({ IdentityId: getIdResponse_1.IdentityId }));\n }\n catch (e) {\n // Ignore\n }\n return [2 /*return*/, getIdResponse_1];\n case 4:\n e_1 = _b.sent();\n throw new Error(\"CWR: Failed to retrieve Cognito identity: \".concat(e_1));\n case 5: return [2 /*return*/];\n }\n });\n }); };\n this.getOpenIdToken = function (request) { return __awaiter(_this, void 0, void 0, function () {\n var requestPayload, tokenRequest, response, _a, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 3, , 4]);\n requestPayload = JSON.stringify(request);\n tokenRequest = this.getHttpRequest(GET_TOKEN_TARGET, requestPayload);\n return [4 /*yield*/, this.fetchRequestHandler.handle(tokenRequest)];\n case 1:\n response = (_b.sent()).response;\n _a = this.validateOpenIdTokenResponse;\n return [4 /*yield*/, responseToJson(response)];\n case 2: return [2 /*return*/, _a.apply(this, [_b.sent()])];\n case 3:\n e_2 = _b.sent();\n localStorage.removeItem(this.identityStorageKey);\n throw new Error(\"CWR: Failed to retrieve Cognito OpenId token: \".concat(e_2));\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.getCredentialsForIdentity = function (identityId) { return __awaiter(_this, void 0, void 0, function () {\n var requestPayload, credentialRequest, response, _a, AccessKeyId, Expiration, SecretKey, SessionToken, _b, e_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 3, , 4]);\n requestPayload = JSON.stringify({ IdentityId: identityId });\n credentialRequest = this.getHttpRequest(GET_CREDENTIALS_TARGET, requestPayload);\n return [4 /*yield*/, this.fetchRequestHandler.handle(credentialRequest)];\n case 1:\n response = (_c.sent()).response;\n _b = this.validateCredenentialsResponse;\n return [4 /*yield*/, responseToJson(response)];\n case 2:\n _a = _b.apply(this, [_c.sent()]), AccessKeyId = _a.AccessKeyId, Expiration = _a.Expiration, SecretKey = _a.SecretKey, SessionToken = _a.SessionToken;\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: new Date(Expiration * 1000)\n }];\n case 3:\n e_3 = _c.sent();\n localStorage.removeItem(this.identityStorageKey);\n throw new Error(\"CWR: Failed to retrieve credentials for Cognito identity: \".concat(e_3));\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.validateOpenIdTokenResponse = function (r) {\n if ('IdentityId' in r && 'Token' in r) {\n return r;\n }\n else if (r && '__type' in r && 'message' in r) {\n // The request may have failed because of ValidationException or\n // ResourceNotFoundException, which means the identity Id is bad. In\n // any case, we invalidate the identity Id so the entire process can\n // be re-tried.\n throw new Error(\"\".concat(r.__type, \": \").concat(r.message));\n }\n else {\n // We don't recognize ths response format.\n throw new Error('Unknown OpenIdToken response');\n }\n };\n this.validateCredenentialsResponse = function (r) {\n if ('IdentityId' in r && 'Credentials' in r) {\n return r.Credentials;\n }\n else if (r && '__type' in r && 'message' in r) {\n // The request may have failed because of ValidationException or\n // ResourceNotFoundException, which means the identity Id is bad. In\n // any case, we invalidate the identity Id so the entire process can\n // be re-tried.\n throw new Error(\"\".concat(r.__type, \": \").concat(r.message));\n }\n else {\n // We don't recognize ths response format.\n throw new Error('Unknown Credentials response');\n }\n };\n this.getHttpRequest = function (target, payload) {\n return new HttpRequest({\n method: METHOD,\n headers: {\n 'content-type': CONTENT_TYPE,\n 'x-amz-target': target\n },\n protocol: PROTOCOL,\n hostname: _this.hostname,\n body: payload\n });\n };\n this.hostname = \"cognito-identity.\".concat(config.region, \".amazonaws.com\");\n this.fetchRequestHandler = config.fetchRequestHandler;\n this.identityStorageKey = ((_a = config.clientConfig) === null || _a === void 0 ? void 0 : _a.cookieAttributes.unique)\n ? \"\".concat(IDENTITY_KEY, \"_\").concat(config.applicationId)\n : IDENTITY_KEY;\n }\n return CognitoIdentityClient;\n}());\nexport { CognitoIdentityClient };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { CognitoIdentityClient } from './CognitoIdentityClient';\nimport { FetchHttpHandler } from '@aws-sdk/fetch-http-handler';\nimport { CRED_KEY, CRED_RENEW_MS } from '../utils/constants';\nvar Authentication = /** @class */ (function () {\n function Authentication(config, applicationId) {\n var _this = this;\n /**\n * A credential provider which provides AWS credentials for an anonymous\n * (guest) user. These credentials are retrieved from the first successful\n * provider in a chain.\n *\n * Credentials are stored in and retrieved from localStorage. This prevents the client from having to\n * re-authenticate every time the client loads, which (1) improves the performance of the RUM web client and (2)\n * reduces the load on AWS services Cognito and STS.\n *\n * While storing credentials in localStorage puts the credential at greater risk of being leaked through an\n * XSS attack, there is no impact if the credentials were to be leaked. This is because (1) the identity pool ID\n * and role ARN are public and (2) the credentials are for an anonymous (guest) user.\n *\n * Regarding (1), the identity pool ID and role ARN are, by necessity, public. These identifiers are shipped with\n * each application as part of Cognito's Basic (Classic) authentication flow. The identity pool ID and role ARN\n * are not secret.\n *\n * Regarding (2), the authentication chain implemented in this file only supports anonymous (guest)\n * authentication. When the Cognito authentication flow is executed, {@code AnonymousCognitoCredentialsProvider}\n * does not communicate with a login provider such as Amazon, Facebook or Google. Instead, it relies on (a) the\n * identity pool supporting unauthenticated identities and (b) the IAM role policy enabling login through the\n * identity pool. If the identity pool does not support unauthenticated identities, this authentication chain\n * will not succeed.\n *\n * Taken together, (1) and (2) mean that if these temporary credentials were to be leaked, the leaked credentials\n * would not allow a bad actor to gain access to anything which they did not already have public access to.\n *\n * Implements AwsCredentialIdentityProvider = Provider\n */\n this.ChainAnonymousCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.AnonymousCredentialsProvider()\n .catch(this.AnonymousStorageCredentialsProvider)\n .catch(this.AnonymousCognitoCredentialsProvider)];\n });\n }); };\n /**\n * Provides credentials for an anonymous (guest) user. These credentials are read from a member variable.\n *\n * Implements AwsCredentialIdentityProvider = Provider\n */\n this.AnonymousCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (_this.renewCredentials()) {\n // The credentials have expired.\n return reject();\n }\n resolve(_this.credentials);\n })];\n });\n }); };\n /**\n * Provides credentials for an anonymous (guest) user. These credentials are read from localStorage.\n *\n * Implements AwsCredentialIdentityProvider = Provider\n */\n this.AnonymousStorageCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var credentials;\n try {\n credentials = JSON.parse(localStorage.getItem(_this.credentialStorageKey));\n }\n catch (e) {\n // Error retrieving, decoding or parsing the cred string -- abort\n return reject();\n }\n // The expiration property of Credentials has a date type. Because the date was serialized as a string,\n // we need to convert it back into a date, otherwise the AWS SDK signing middleware\n // (@aws-sdk/middleware-signing) will throw an exception and no credentials will be returned.\n _this.credentials = __assign(__assign({}, credentials), { expiration: new Date(credentials.expiration) });\n if (_this.renewCredentials()) {\n // The credentials have expired.\n return reject();\n }\n resolve(_this.credentials);\n })];\n });\n }); };\n var region = config.identityPoolId.split(':')[0];\n this.config = config;\n this.cognitoIdentityClient = new CognitoIdentityClient({\n fetchRequestHandler: new FetchHttpHandler(),\n region: region,\n clientConfig: config,\n applicationId: applicationId\n });\n this.credentialStorageKey = this.config.cookieAttributes.unique\n ? \"\".concat(CRED_KEY, \"_\").concat(applicationId)\n : CRED_KEY;\n }\n /**\n * Returns {@code true} when the credentials need to be renewed.\n */\n Authentication.prototype.renewCredentials = function () {\n if (!this.credentials || !this.credentials.expiration) {\n return true;\n }\n var renewalTime = new Date(this.credentials.expiration.getTime() - CRED_RENEW_MS);\n return new Date() > renewalTime;\n };\n return Authentication;\n}());\nexport { Authentication };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { FetchHttpHandler } from '@aws-sdk/fetch-http-handler';\nimport { StsClient } from './StsClient';\nimport { Authentication } from './Authentication';\nvar BasicAuthentication = /** @class */ (function (_super) {\n __extends(BasicAuthentication, _super);\n function BasicAuthentication(config, applicationId) {\n var _this = _super.call(this, config, applicationId) || this;\n /**\n * Provides credentials for an anonymous (guest) user. These credentials are retrieved from Cognito's basic\n * (classic) authflow.\n *\n * See https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html\n *\n * Implements AwsCredentialIdentityProvider = Provider\n */\n _this.AnonymousCognitoCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var retries, getIdResponse, getOpenIdTokenResponse, credentials, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n retries = 1;\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 8];\n _a.label = 2;\n case 2:\n _a.trys.push([2, 6, , 7]);\n return [4 /*yield*/, this.cognitoIdentityClient.getId({\n IdentityPoolId: this.config.identityPoolId\n })];\n case 3:\n getIdResponse = _a.sent();\n return [4 /*yield*/, this.cognitoIdentityClient.getOpenIdToken(getIdResponse)];\n case 4:\n getOpenIdTokenResponse = _a.sent();\n return [4 /*yield*/, this.stsClient.assumeRoleWithWebIdentity({\n RoleArn: this.config.guestRoleArn,\n RoleSessionName: 'cwr',\n WebIdentityToken: getOpenIdTokenResponse.Token\n })];\n case 5:\n credentials = _a.sent();\n this.credentials = credentials;\n try {\n localStorage.setItem(this.credentialStorageKey, JSON.stringify(credentials));\n }\n catch (e) {\n // Ignore\n }\n return [2 /*return*/, credentials];\n case 6:\n e_1 = _a.sent();\n if (retries) {\n retries--;\n }\n else {\n throw e_1;\n }\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 1];\n case 8: return [2 /*return*/];\n }\n });\n }); };\n var region = config.identityPoolId.split(':')[0];\n _this.stsClient = new StsClient({\n fetchRequestHandler: new FetchHttpHandler(),\n region: region\n });\n return _this;\n }\n return BasicAuthentication;\n}(Authentication));\nexport { BasicAuthentication };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Authentication } from './Authentication';\nvar EnhancedAuthentication = /** @class */ (function (_super) {\n __extends(EnhancedAuthentication, _super);\n function EnhancedAuthentication(config, applicationId) {\n var _this = _super.call(this, config, applicationId) || this;\n /**\n * Provides credentials for an anonymous (guest) user. These credentials are retrieved from Cognito's enhanced\n * authflow.\n *\n * See https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html\n *\n * Implements AwsCredentialIdentityProvider = Provider\n */\n _this.AnonymousCognitoCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var retries, getIdResponse, credentials, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n retries = 1;\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 7];\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 6]);\n return [4 /*yield*/, this.cognitoIdentityClient.getId({\n IdentityPoolId: this.config.identityPoolId\n })];\n case 3:\n getIdResponse = _a.sent();\n return [4 /*yield*/, this.cognitoIdentityClient.getCredentialsForIdentity(getIdResponse.IdentityId)];\n case 4:\n credentials = _a.sent();\n this.credentials = credentials;\n try {\n localStorage.setItem(this.credentialStorageKey, JSON.stringify(credentials));\n }\n catch (e) {\n // Ignore\n }\n return [2 /*return*/, credentials];\n case 5:\n e_1 = _a.sent();\n if (retries) {\n retries--;\n }\n else {\n throw e_1;\n }\n return [3 /*break*/, 6];\n case 6: return [3 /*break*/, 1];\n case 7: return [2 /*return*/];\n }\n });\n }); };\n return _this;\n }\n return EnhancedAuthentication;\n}(Authentication));\nexport { EnhancedAuthentication };\n","export var UNKNOWN = 'unknown';\nexport var RUM_AMZ_PREFIX = 'com.amazon.rum';\nexport var RUM_AWS_PREFIX = 'com.amazonaws.rum';\n// Http request event schemas\nexport var HTTP_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".http_event\");\nexport var XRAY_TRACE_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".xray_trace_event\");\n// Web vitals event schemas\nexport var LCP_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".largest_contentful_paint_event\");\nexport var FID_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".first_input_delay_event\");\nexport var CLS_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".cumulative_layout_shift_event\");\n// Page load event schemas\nexport var PERFORMANCE_NAVIGATION_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".performance_navigation_event\");\nexport var PERFORMANCE_RESOURCE_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".performance_resource_event\");\n// DOM event schemas\nexport var DOM_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".dom_event\");\n// JS error event schemas\nexport var JS_ERROR_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".js_error_event\");\n// Page view event\nexport var PAGE_VIEW_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".page_view_event\");\n// Session start event\nexport var SESSION_START_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".session_start_event\");\n// Time to interactive event\nexport var TIME_TO_INTERACTIVE_EVENT_TYPE = \"\".concat(RUM_AMZ_PREFIX, \".time_to_interactive_event\");\n","import { RUM_AWS_PREFIX } from './utils/constant';\nvar InternalPlugin = /** @class */ (function () {\n function InternalPlugin(name) {\n this.enabled = true;\n this.pluginId = InternalPlugin.generatePluginId(name);\n }\n InternalPlugin.generatePluginId = function (name) {\n return \"\".concat(InternalPlugin.idPrefix, \".\").concat(name);\n };\n InternalPlugin.prototype.load = function (context) {\n var _a;\n this.context = context;\n (_a = this.onload) === null || _a === void 0 ? void 0 : _a.call(this);\n };\n InternalPlugin.prototype.getPluginId = function () {\n return this.pluginId;\n };\n InternalPlugin.idPrefix = RUM_AWS_PREFIX;\n return InternalPlugin;\n}());\nexport { InternalPlugin };\n","import { InternalPlugin } from './InternalPlugin';\n/**\n * The plugin manager maintains a list of plugins\n * and notifies plugins of configuration or lifecycle changes.\n */\nvar PluginManager = /** @class */ (function () {\n function PluginManager(context) {\n this.context = context;\n this.plugins = new Map();\n }\n /**\n * Add an event plugin to PluginManager and initialize the plugin.\n *\n * @param plugin The plugin which adheres to the RUM web client's plugin interface.\n */\n PluginManager.prototype.addPlugin = function (plugin) {\n var pluginId = plugin.getPluginId();\n if (this.hasPlugin(pluginId)) {\n throw new Error(\"Plugin \\\"\".concat(pluginId, \"\\\" already defined in the PluginManager\"));\n }\n this.plugins.set(pluginId, plugin);\n // initialize plugin\n plugin.load(this.context);\n };\n /**\n * Update an event plugin\n *\n * @param pluginId\n * @param updateWith The config to update the plugin with.\n */\n PluginManager.prototype.updatePlugin = function (pluginId, updateWith) {\n var _a;\n var plugin = this.getPlugin(pluginId);\n (_a = plugin === null || plugin === void 0 ? void 0 : plugin.update) === null || _a === void 0 ? void 0 : _a.call(plugin, updateWith);\n };\n /**\n * Enable all event plugins.\n */\n PluginManager.prototype.enable = function () {\n this.plugins.forEach(function (p) { return p.enable(); });\n };\n /**\n * Disable all event plugins.\n */\n PluginManager.prototype.disable = function () {\n this.plugins.forEach(function (p) { return p.disable(); });\n };\n /**\n * Return if a plugin exists.\n *\n * @param pluginId a unique identifier for the plugin\n */\n PluginManager.prototype.hasPlugin = function (pluginId) {\n return Boolean(this.getPlugin(pluginId));\n };\n /**\n * Manually record data using a plugin.\n *\n * @param pluginId The unique identifier for the plugin being configured.\n * @param data The data to be recorded by the plugin.\n */\n PluginManager.prototype.record = function (pluginId, data) {\n var plugin = this.getPlugin(pluginId);\n if ((plugin === null || plugin === void 0 ? void 0 : plugin.record) instanceof Function) {\n plugin.record(data);\n }\n else {\n throw new Error('AWS RUM Client record: Invalid plugin ID');\n }\n };\n PluginManager.prototype.getPlugin = function (id) {\n var _a;\n return ((_a = this.plugins.get(id)) !== null && _a !== void 0 ? _a : this.plugins.get(InternalPlugin.generatePluginId(id)));\n };\n return PluginManager;\n}());\nexport { PluginManager };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { InternalPlugin } from '../InternalPlugin';\nimport { DOM_EVENT_TYPE } from '../utils/constant';\nexport var DOM_EVENT_PLUGIN_ID = 'dom-event';\nvar defaultConfig = {\n interactionId: function () { return ''; },\n enableMutationObserver: false,\n events: []\n};\nvar DomEventPlugin = /** @class */ (function (_super) {\n __extends(DomEventPlugin, _super);\n function DomEventPlugin(config) {\n var _this = _super.call(this, DOM_EVENT_PLUGIN_ID) || this;\n _this.enabled = false;\n _this.eventListenerMap = new Map();\n _this.config = __assign(__assign({}, defaultConfig), config);\n return _this;\n }\n DomEventPlugin.getElementInfo = function (event) {\n var elementInfo = { name: 'UNKNOWN' };\n if (event.target instanceof Node) {\n elementInfo.name = event.target.nodeName;\n }\n if (event.target instanceof Element && event.target.id) {\n elementInfo.id = event.target.id;\n }\n return elementInfo;\n };\n DomEventPlugin.prototype.enable = function () {\n var _this = this;\n if (document.readyState !== 'complete') {\n window.addEventListener('load', function () { return _this.enable(); });\n return;\n }\n if (this.enabled) {\n return;\n }\n this.addListeners();\n if (this.config.enableMutationObserver) {\n this.observeDOMMutation();\n }\n this.enabled = true;\n };\n DomEventPlugin.prototype.disable = function () {\n if (!this.enabled) {\n return;\n }\n this.removeListeners();\n if (this.observer) {\n this.observer.disconnect();\n }\n this.enabled = false;\n };\n DomEventPlugin.prototype.update = function (events) {\n var _this = this;\n events.forEach(function (domEvent) {\n _this.addEventHandler(domEvent);\n _this.config.events.push(domEvent);\n });\n };\n DomEventPlugin.prototype.onload = function () {\n this.enable();\n };\n DomEventPlugin.prototype.removeListeners = function () {\n var _this = this;\n this.config.events.forEach(function (domEvent) {\n return _this.removeEventHandler(domEvent);\n });\n };\n DomEventPlugin.prototype.addListeners = function () {\n var _this = this;\n this.config.events.forEach(function (domEvent) {\n return _this.addEventHandler(domEvent);\n });\n };\n DomEventPlugin.prototype.getEventListener = function (cssLocator) {\n var _this = this;\n return function (event) {\n var _a;\n var elementInfo = DomEventPlugin.getElementInfo(event);\n var interactionId = _this.config.interactionId(event);\n var eventData = __assign(__assign(__assign({ version: '1.1.0', event: event.type, element: elementInfo.name }, (elementInfo.id ? { elementId: elementInfo.id } : {})), (interactionId ? { interactionId: interactionId } : {})), (cssLocator ? { cssLocator: cssLocator } : {}));\n if ((_a = _this.context) === null || _a === void 0 ? void 0 : _a.record) {\n _this.context.record(DOM_EVENT_TYPE, eventData);\n }\n };\n };\n DomEventPlugin.prototype.addEventHandler = function (domEvent) {\n var eventType = domEvent.event;\n var eventListener = this.getEventListener(domEvent.cssLocator);\n var identifiedElementList = [];\n var elementEventListenerList = this.eventListenerMap.has(domEvent)\n ? this.eventListenerMap.get(domEvent)\n : [];\n // first add event listener to all elements identified by the CSS locator\n if (domEvent.cssLocator) {\n var cssLocatedElements = document.querySelectorAll(domEvent.cssLocator);\n cssLocatedElements.forEach(function (element) {\n identifiedElementList.push(element);\n });\n }\n else if (domEvent.elementId) {\n var identifiedElement = document.getElementById(domEvent.elementId);\n if (identifiedElement) {\n identifiedElementList.push(identifiedElement);\n }\n }\n else if (domEvent.element) {\n identifiedElementList.push(domEvent.element);\n }\n identifiedElementList.forEach(function (element) {\n element.addEventListener(eventType, eventListener);\n elementEventListenerList.push({ element: element, eventListener: eventListener });\n });\n this.eventListenerMap.set(domEvent, elementEventListenerList);\n };\n DomEventPlugin.prototype.removeEventHandler = function (domEvent) {\n var elementEventListenerList = this.eventListenerMap.get(domEvent);\n if (elementEventListenerList) {\n elementEventListenerList.forEach(function (elementEventListener) {\n var element = elementEventListener.element;\n var eventListener = elementEventListener.eventListener;\n element.removeEventListener(domEvent.event, eventListener);\n });\n this.eventListenerMap.delete(domEvent);\n }\n };\n DomEventPlugin.prototype.observeDOMMutation = function () {\n var _this = this;\n this.observer = new MutationObserver(function () {\n _this.removeListeners();\n _this.addListeners();\n });\n // we track only changes to nodes/DOM elements, not attributes or characterData\n this.observer.observe(document, { childList: true, subtree: true });\n };\n return DomEventPlugin;\n}(InternalPlugin));\nexport { DomEventPlugin };\n","var isObject = function (error) {\n var type = typeof error;\n return (type === 'object' || type === 'function') && !!error;\n};\nvar buildBaseJsErrorEvent = function (errorEvent) {\n var rumEvent = {\n version: '1.0.0',\n type: 'undefined',\n message: 'undefined'\n };\n if (errorEvent.type !== undefined) {\n rumEvent.type = errorEvent.type;\n }\n if (errorEvent.message !== undefined) {\n rumEvent.message = errorEvent.message;\n }\n if (errorEvent.filename !== undefined) {\n rumEvent.filename = errorEvent.filename;\n }\n if (errorEvent.lineno !== undefined) {\n rumEvent.lineno = errorEvent.lineno;\n }\n if (errorEvent.colno !== undefined) {\n rumEvent.colno = errorEvent.colno;\n }\n return rumEvent;\n};\nvar appendErrorPrimitiveDetails = function (rumEvent, error) {\n // Keep unhandledrejection as type as it will write to rumEvent.message\n if (rumEvent.type !== 'unhandledrejection') {\n rumEvent.type = error.toString();\n }\n rumEvent.message = error.toString();\n};\nvar appendErrorObjectDetails = function (rumEvent, error, stackTraceLength) {\n // error may extend Error here, but it is not guaranteed (i.e., it could\n // be any object)\n if (error.name) {\n rumEvent.type = error.name;\n }\n if (error.message) {\n rumEvent.message = error.message;\n }\n if (error.fileName) {\n rumEvent.filename = error.fileName;\n }\n if (error.lineNumber) {\n rumEvent.lineno = error.lineNumber;\n }\n if (error.columnNumber) {\n rumEvent.colno = error.columnNumber;\n }\n if (stackTraceLength && error.stack) {\n rumEvent.stack =\n error.stack.length > stackTraceLength\n ? error.stack.substring(0, stackTraceLength) + '...'\n : error.stack;\n }\n};\nexport var isErrorPrimitive = function (error) {\n return error !== Object(error) && error !== undefined && error !== null;\n};\nexport var errorEventToJsErrorEvent = function (errorEvent, stackTraceLength) {\n var rumEvent = buildBaseJsErrorEvent(errorEvent);\n var error = errorEvent.error;\n if (isObject(error)) {\n appendErrorObjectDetails(rumEvent, error, stackTraceLength);\n }\n else if (isErrorPrimitive(error)) {\n appendErrorPrimitiveDetails(rumEvent, error);\n }\n return rumEvent;\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { InternalPlugin } from '../InternalPlugin';\nimport { JS_ERROR_EVENT_TYPE } from '../utils/constant';\nimport { errorEventToJsErrorEvent } from '../utils/js-error-utils';\nexport var JS_ERROR_EVENT_PLUGIN_ID = 'js-error';\nvar defaultConfig = {\n stackTraceLength: 1000,\n ignore: function () { return false; }\n};\nvar JsErrorPlugin = /** @class */ (function (_super) {\n __extends(JsErrorPlugin, _super);\n function JsErrorPlugin(config) {\n var _this = _super.call(this, JS_ERROR_EVENT_PLUGIN_ID) || this;\n _this.eventHandler = function (errorEvent) {\n if (!_this.config.ignore(errorEvent)) {\n _this.recordJsErrorEvent(errorEvent);\n }\n };\n _this.promiseRejectEventHandler = function (event) {\n if (!_this.config.ignore(event)) {\n _this.recordJsErrorEvent({\n type: event.type,\n error: event.reason\n });\n }\n };\n _this.config = __assign(__assign({}, defaultConfig), config);\n return _this;\n }\n JsErrorPlugin.prototype.enable = function () {\n if (this.enabled) {\n return;\n }\n this.addEventHandler();\n this.enabled = true;\n };\n JsErrorPlugin.prototype.disable = function () {\n if (!this.enabled) {\n return;\n }\n this.removeEventHandler();\n this.enabled = false;\n };\n JsErrorPlugin.prototype.record = function (error) {\n if (error instanceof ErrorEvent) {\n this.recordJsErrorEvent(error);\n }\n else {\n this.recordJsErrorEvent({ type: 'error', error: error });\n }\n };\n JsErrorPlugin.prototype.onload = function () {\n this.addEventHandler();\n };\n JsErrorPlugin.prototype.recordJsErrorEvent = function (error) {\n var _a;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.record(JS_ERROR_EVENT_TYPE, errorEventToJsErrorEvent(error, this.config.stackTraceLength));\n };\n JsErrorPlugin.prototype.addEventHandler = function () {\n window.addEventListener('error', this.eventHandler);\n window.addEventListener('unhandledrejection', this.promiseRejectEventHandler);\n };\n JsErrorPlugin.prototype.removeEventHandler = function () {\n window.removeEventListener('error', this.eventHandler);\n window.removeEventListener('unhandledrejection', this.promiseRejectEventHandler);\n };\n return JsErrorPlugin;\n}(InternalPlugin));\nexport { JsErrorPlugin };\n","/**\n * Stores a cookie.\n *\n * @param name The cookie's name.\n * @param value The cookie's value.\n * @param attributes The domain where the cookie will be stored.\n * @param ttl Time to live -- expiry date is current date + ttl (do not use with {@code expires}).\n * @param expires The expiry date for the cookie (do not use with {@code ttl})\n */\nexport var storeCookie = function (name, value, attributes, ttl, expires) {\n var cookie = name + '=';\n cookie += value || '';\n if (expires !== undefined) {\n cookie += \"; Expires=\".concat(expires.toUTCString());\n }\n else if (ttl !== undefined) {\n cookie += \"; Expires=\".concat(getExpiryDate(ttl).toUTCString());\n }\n cookie += \"; Domain=\".concat(attributes.domain);\n cookie += \"; Path=\".concat(attributes.path);\n cookie += \"; SameSite=\".concat(attributes.sameSite);\n cookie += attributes.secure ? '; Secure' : '';\n document.cookie = cookie;\n};\n/**\n * Returns the current date + TTL\n *\n * @param ttl seconds to live\n */\nexport var getExpiryDate = function (ttl) {\n return new Date(new Date().getTime() + ttl * 1000);\n};\n/**\n * Removes a cookie by setting its expiry in the past.\n *\n * @param name The cookie's name.\n */\nexport var removeCookie = function (name, attributes) {\n var cookie = name + '=';\n cookie += \"; Expires=\".concat(new Date(0));\n cookie += \"; Domain=\".concat(attributes.domain);\n cookie += \"; Path=\".concat(attributes.path);\n cookie += \"; SameSite=\".concat(attributes.sameSite);\n cookie += attributes.secure ? 'Secure' : '';\n document.cookie = cookie;\n};\n/**\n * Get a cookie with a given name\n *\n * @param name The cookie's name.\n */\nexport var getCookie = function (name) {\n var cookies = document.cookie.split('; ');\n for (var _i = 0, cookies_1 = cookies; _i < cookies_1.length; _i++) {\n var cookie = cookies_1[_i];\n var split = cookie.split('=');\n if (split[0] === name) {\n return split[1];\n }\n }\n return '';\n};\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { storeCookie, getCookie } from '../utils/cookies-utils';\nimport { v4 } from 'uuid';\nimport { UAParser } from 'ua-parser-js';\nimport { SESSION_COOKIE_NAME, USER_COOKIE_NAME } from '../utils/constants';\nexport var NIL_UUID = '00000000-0000-0000-0000-000000000000';\nexport var UNKNOWN = 'unknown';\nexport var DESKTOP_DEVICE_TYPE = 'desktop';\nexport var WEB_PLATFORM_TYPE = 'web';\nexport var SESSION_START_EVENT_TYPE = 'com.amazon.rum.session_start_event';\nexport var RUM_SESSION_START = 'rum_session_start';\nexport var RUM_SESSION_EXPIRE = 'rum_session_expire';\n/**\n * The session handler handles user id and session id.\n *\n * A session is the {user id, session id} tuple which groups events that occur on a single browser over a continuous\n * period of time. A session begins when no session exists or the last session has expired. If user id does not exist,\n * session handler will assign a new one and store it in cookie. If session id does not exist or has expired, session\n * handler will assign a new one and store it in cookie. Session handler detects user interactions and updates session\n * id expiration time.\n */\nvar SessionManager = /** @class */ (function () {\n function SessionManager(appMonitorDetails, config, record, pageManager) {\n this.appMonitorDetails = appMonitorDetails;\n this.config = config;\n this.record = record;\n this.pageManager = pageManager;\n this.sessionCookieName = this.config.cookieAttributes.unique\n ? \"\".concat(SESSION_COOKIE_NAME, \"_\").concat(this.appMonitorDetails.id)\n : SESSION_COOKIE_NAME;\n // Initialize the session to the nil session\n this.session = {\n sessionId: NIL_UUID,\n record: this.sample(),\n eventCount: 0\n };\n // Initialize or restore the user\n this.initializeUser();\n // Collect the user agent and domain\n this.collectAttributes();\n // Set custom session attributes\n this.addSessionAttributes(this.config.sessionAttributes);\n // Attempt to restore the previous session\n this.getSessionFromCookie();\n }\n /**\n * Returns true if the session is sampled, false otherwise.\n */\n SessionManager.prototype.isSampled = function () {\n return this.session.record;\n };\n /**\n * Returns the session ID. If no session ID exists, one will be created.\n */\n SessionManager.prototype.getSession = function () {\n if (this.session.sessionId === NIL_UUID) {\n // The session does not exist. Create a new one.\n // If it is created before the page view is recorded, the session start event metadata will\n // not have page attributes as the page does not exist yet.\n this.createSession();\n }\n else if (this.session.sessionId !== NIL_UUID &&\n new Date() > this.sessionExpiry) {\n // The session has expired. Create a new one.\n this.createSession();\n }\n return this.session;\n };\n SessionManager.prototype.getAttributes = function () {\n return this.attributes;\n };\n /**\n * Adds custom session attributes to the session's attributes\n *\n * @param sessionAttributes object containing custom attribute data in the form of key, value pairs\n */\n SessionManager.prototype.addSessionAttributes = function (sessionAttributes) {\n this.attributes = __assign(__assign({}, this.attributes), sessionAttributes);\n };\n SessionManager.prototype.getUserId = function () {\n if (this.useCookies()) {\n return this.userId;\n }\n return NIL_UUID;\n };\n SessionManager.prototype.incrementSessionEventCount = function () {\n this.session.eventCount++;\n this.renewSession();\n };\n SessionManager.prototype.initializeUser = function () {\n var userId = '';\n this.userExpiry = new Date();\n this.userExpiry.setDate(this.userExpiry.getDate() + this.config.userIdRetentionDays);\n if (this.config.userIdRetentionDays <= 0) {\n // Use the 'nil' UUID when the user ID will not be retained\n this.userId = '00000000-0000-0000-0000-000000000000';\n }\n else if (this.useCookies()) {\n userId = this.getUserIdCookie();\n this.userId = userId ? userId : v4();\n this.createOrRenewUserCookie(userId, this.userExpiry);\n }\n else {\n this.userId = v4();\n }\n };\n SessionManager.prototype.createOrRenewSessionCookie = function (session, expires) {\n if (btoa) {\n storeCookie(this.sessionCookieName, btoa(JSON.stringify(session)), this.config.cookieAttributes, undefined, expires);\n }\n };\n SessionManager.prototype.createOrRenewUserCookie = function (userId, expires) {\n storeCookie(USER_COOKIE_NAME, userId, this.config.cookieAttributes, undefined, expires);\n };\n SessionManager.prototype.getUserIdCookie = function () {\n return getCookie(USER_COOKIE_NAME);\n };\n SessionManager.prototype.getSessionFromCookie = function () {\n if (this.useCookies()) {\n var cookie = getCookie(this.sessionCookieName);\n if (cookie && atob) {\n try {\n this.session = JSON.parse(atob(cookie));\n this.pageManager.resumeSession(this.session.page);\n }\n catch (e) {\n // Error decoding or parsing the cookie -- ignore\n }\n }\n }\n };\n SessionManager.prototype.storeSessionAsCookie = function () {\n if (this.useCookies() && this.config.userIdRetentionDays > 0) {\n this.createOrRenewUserCookie(this.userId, this.userExpiry);\n }\n if (this.useCookies()) {\n // Set the user cookie in case useCookies() has changed from false to true.\n this.createOrRenewSessionCookie(this.session, this.sessionExpiry);\n }\n };\n SessionManager.prototype.createSession = function () {\n // The semantics of the nil session (created during initialization) are that there is no session.\n // We ensure the nil session and new session created right after initialization have the same sampling decision.\n // Otherwise, we will always reevaluate the sample decision.\n this.session = {\n sessionId: v4(),\n record: this.session.sessionId === NIL_UUID\n ? this.session.record\n : this.sample(),\n eventCount: 0\n };\n this.session.page = this.pageManager.getPage();\n this.sessionExpiry = new Date(new Date().getTime() + this.config.sessionLengthSeconds * 1000);\n this.storeSessionAsCookie();\n this.record(this.session, SESSION_START_EVENT_TYPE, {\n version: '1.0.0'\n });\n };\n SessionManager.prototype.renewSession = function () {\n this.sessionExpiry = new Date(new Date().getTime() + this.config.sessionLengthSeconds * 1000);\n this.session.page = this.pageManager.getPage();\n this.storeSessionAsCookie();\n };\n SessionManager.prototype.collectAttributes = function () {\n var ua = new UAParser(navigator.userAgent).getResult();\n this.attributes = {\n browserLanguage: navigator.language,\n browserName: ua.browser.name ? ua.browser.name : UNKNOWN,\n browserVersion: ua.browser.version ? ua.browser.version : UNKNOWN,\n osName: ua.os.name ? ua.os.name : UNKNOWN,\n osVersion: ua.os.version ? ua.os.version : UNKNOWN,\n // Possible device types include {console, mobile, tablet, smarttv, wearable, embedded}. If the device\n // type is undefined, there was no information indicating the device is anything other than a desktop,\n // so we assume the device is a desktop.\n deviceType: ua.device.type ? ua.device.type : DESKTOP_DEVICE_TYPE,\n // This client is used exclusively in web applications.\n platformType: WEB_PLATFORM_TYPE,\n domain: window.location.hostname\n };\n };\n /**\n * Returns true when cookies should be used to store user ID and session ID.\n */\n SessionManager.prototype.useCookies = function () {\n return navigator.cookieEnabled && this.config.allowCookies;\n };\n /**\n * Returns {@code true} when the session has been selected to be recorded.\n */\n SessionManager.prototype.sample = function () {\n return Math.random() < this.config.sessionSampleRate;\n };\n return SessionManager;\n}());\nexport { SessionManager };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as shimmer from 'shimmer';\nimport { InternalPlugin } from './InternalPlugin';\nvar MonkeyPatched = /** @class */ (function (_super) {\n __extends(MonkeyPatched, _super);\n function MonkeyPatched() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enable = _this.patch.bind(_this, true);\n _this.disable = _this.patch.bind(_this, false);\n _this.enabled = false;\n return _this;\n }\n MonkeyPatched.prototype.patchAll = function () {\n var wrap = shimmer.wrap.bind(shimmer);\n for (var _i = 0, _a = this.patches; _i < _a.length; _i++) {\n var patch = _a[_i];\n wrap(patch.nodule, patch.name, patch.wrapper());\n }\n };\n MonkeyPatched.prototype.unpatchAll = function () {\n var unwrap = shimmer.unwrap.bind(shimmer);\n for (var _i = 0, _a = this.patches; _i < _a.length; _i++) {\n var patch = _a[_i];\n unwrap(patch.nodule, patch.name);\n }\n };\n MonkeyPatched.prototype.patch = function (shouldPatch) {\n if (shouldPatch === void 0) { shouldPatch = true; }\n if (this.enabled !== shouldPatch) {\n this.enabled = shouldPatch;\n if (shouldPatch) {\n this.patchAll();\n }\n else {\n this.unpatchAll();\n }\n }\n };\n return MonkeyPatched;\n}(InternalPlugin));\nexport { MonkeyPatched };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PERFORMANCE_NAVIGATION_EVENT_TYPE } from '../plugins/utils/constant';\nimport { MonkeyPatched } from '../plugins/MonkeyPatched';\n/**\n * Maintains the core logic for virtual page load timing functionality.\n * (1) Holds all virtual page load timing related resources\n * (2) Intercepts outgoing XMLHttpRequests and Fetch requests and listens for DOM changes\n * (3) Records virtual page load\n */\nvar VirtualPageLoadTimer = /** @class */ (function (_super) {\n __extends(VirtualPageLoadTimer, _super);\n function VirtualPageLoadTimer(pageManager, config, record) {\n var _this = _super.call(this, 'virtual-page-load-timer') || this;\n _this.sendWrapper = function () {\n var self = _this;\n return function (original) {\n return function () {\n self.recordXhr(this);\n this.addEventListener('loadend', self.endTracking);\n return original.apply(this, arguments);\n };\n };\n };\n /**\n * Removes the current event from either requestBuffer or ongoingRequests set.\n *\n * @param event\n */\n _this.endTracking = function (e) {\n var currTime = Date.now();\n var xhr = e.target;\n xhr.removeEventListener('loadend', _this.endTracking);\n _this.removeXhr(xhr, currTime);\n };\n _this.fetch = function (original, thisArg, argsArray) {\n return original\n .apply(thisArg, argsArray)\n .catch(function (error) {\n throw error;\n })\n .finally(_this.decrementFetchCounter);\n };\n /**\n * Increment the fetch counter in PageManager when fetch is beginning\n */\n _this.fetchWrapper = function () {\n var self = _this;\n return function (original) {\n return function (input, init) {\n self.fetchCounter += 1;\n return self.fetch(original, this, arguments);\n };\n };\n };\n _this.decrementFetchCounter = function () {\n if (!_this.isPageLoaded) {\n _this.latestEndTime = Date.now();\n }\n _this.fetchCounter -= 1;\n };\n /**\n * Checks whether the virtual page is still being loaded.\n * If completed:\n * (1) Clear the timers\n * (2) Record data using NavigationEvent\n * (3) Indicate current page has finished loading\n */\n _this.checkLoadStatus = function () {\n if (_this.ongoingRequests.size === 0 && _this.fetchCounter === 0) {\n clearInterval(_this.periodicCheckerId);\n clearTimeout(_this.timeoutCheckerId);\n _this.domMutationObserver.disconnect();\n _this.recordRouteChangeNavigationEvent(_this.pageManager.getPage());\n _this.periodicCheckerId = undefined;\n _this.timeoutCheckerId = undefined;\n _this.isPageLoaded = true;\n }\n };\n /** Clears timers and disconnects observer to stop page timing. */\n _this.declareTimeout = function () {\n clearInterval(_this.periodicCheckerId);\n _this.periodicCheckerId = undefined;\n _this.timeoutCheckerId = undefined;\n _this.domMutationObserver.disconnect();\n _this.isPageLoaded = true;\n };\n _this.resetInterval = function () {\n _this.latestEndTime = Date.now();\n clearInterval(_this.periodicCheckerId);\n _this.periodicCheckerId = setInterval(_this.checkLoadStatus, _this.config.routeChangeComplete);\n };\n _this.moveItemsFromBuffer = function (item) {\n _this.ongoingRequests.add(item);\n };\n _this.updateLatestInteractionTime = function (e) {\n _this.latestInteractionTime = Date.now();\n };\n _this.periodicCheckerId = undefined;\n _this.timeoutCheckerId = undefined;\n _this.domMutationObserver = new MutationObserver(_this.resetInterval);\n _this.ongoingRequests = new Set();\n _this.requestBuffer = new Set();\n _this.fetchCounter = 0;\n _this.isPageLoaded = true;\n _this.latestEndTime = 0;\n _this.latestInteractionTime = 0;\n _this.config = config;\n _this.pageManager = pageManager;\n _this.record = record;\n _this.enable();\n // Start tracking the timestamps\n document.addEventListener('mousedown', _this.updateLatestInteractionTime);\n document.addEventListener('keydown', _this.updateLatestInteractionTime);\n return _this;\n }\n Object.defineProperty(VirtualPageLoadTimer.prototype, \"patches\", {\n get: function () {\n return [\n {\n nodule: XMLHttpRequest.prototype,\n name: 'send',\n wrapper: this.sendWrapper\n },\n {\n nodule: window,\n name: 'fetch',\n wrapper: this.fetchWrapper\n }\n ];\n },\n enumerable: false,\n configurable: true\n });\n /** Initializes timing related resources for current page. */\n VirtualPageLoadTimer.prototype.startTiming = function () {\n this.latestEndTime = Date.now();\n // Clean up existing timer objects and mutationObserver\n if (this.periodicCheckerId) {\n clearInterval(this.periodicCheckerId);\n }\n if (this.timeoutCheckerId) {\n clearTimeout(this.timeoutCheckerId);\n }\n this.domMutationObserver.disconnect();\n // Initialize timer objects and start observing\n this.periodicCheckerId = setInterval(this.checkLoadStatus, this.config.routeChangeComplete);\n this.timeoutCheckerId = setTimeout(this.declareTimeout, this.config.routeChangeTimeout);\n // observing the add/delete of nodes\n this.domMutationObserver.observe(document, {\n subtree: true,\n childList: true,\n attributes: false,\n characterData: false\n });\n // Indicate page has not loaded, and carry over buffered requests.\n this.isPageLoaded = false;\n this.requestBuffer.forEach(this.moveItemsFromBuffer);\n this.requestBuffer.clear();\n };\n VirtualPageLoadTimer.prototype.recordXhr = function (item) {\n var page = this.pageManager.getPage();\n if (page && this.isPageLoaded === false) {\n this.ongoingRequests.add(item);\n }\n else {\n this.requestBuffer.add(item);\n }\n };\n VirtualPageLoadTimer.prototype.removeXhr = function (item, currTime) {\n var page = this.pageManager.getPage();\n if (page && this.ongoingRequests.has(item)) {\n this.ongoingRequests.delete(item);\n this.latestEndTime = currTime;\n }\n else if (this.requestBuffer.has(item)) {\n this.requestBuffer.delete(item);\n }\n };\n VirtualPageLoadTimer.prototype.recordRouteChangeNavigationEvent = function (page) {\n var virtualPageNavigationEvent = {\n version: '1.0.0',\n initiatorType: 'route_change',\n navigationType: 'navigate',\n startTime: page.start,\n duration: this.latestEndTime - page.start\n };\n if (this.record) {\n this.record(PERFORMANCE_NAVIGATION_EVENT_TYPE, virtualPageNavigationEvent);\n }\n };\n return VirtualPageLoadTimer;\n}(MonkeyPatched));\nexport { VirtualPageLoadTimer };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { VirtualPageLoadTimer } from '../sessions/VirtualPageLoadTimer';\nimport { PAGE_VIEW_EVENT_TYPE } from '../plugins/utils/constant';\n/**\n * The page manager keeps the state of the current page and interaction level.\n *\n * A page is a unique view (user interface) of the application. For 'multi page' applications (i.e., 'classic' web\n * applications that have multiple html files), the page changes when the user navigates to a new web page. For\n * 'single page' applications (i.e., 'ajax' web applications that have a single html file), the page changes when (1)\n * the popstate event emitted, or (2) the application indicates a new page has loaded using the RUM agent API.\n *\n * The interaction level is the order of a page in the sequence of pages sorted by the time they were viewed.\n */\nvar PageManager = /** @class */ (function () {\n function PageManager(config, record) {\n this.TIMEOUT = 1000;\n this.config = config;\n this.record = record;\n this.page = undefined;\n this.resumed = false;\n this.recordInteraction = false;\n this.virtualPageLoadTimer = new VirtualPageLoadTimer(this, config, record);\n }\n PageManager.prototype.getPage = function () {\n return this.page;\n };\n PageManager.prototype.getAttributes = function () {\n return this.attributes;\n };\n PageManager.prototype.resumeSession = function (page) {\n this.recordInteraction = true;\n if (page) {\n this.page = page;\n this.resumed = true;\n }\n };\n PageManager.prototype.recordPageView = function (payload) {\n var pageId;\n if (typeof payload === 'string') {\n pageId = payload;\n }\n else {\n pageId = payload.pageId;\n }\n if (this.useCookies()) {\n this.recordInteraction = true;\n }\n if (!this.page) {\n this.createLandingPage(pageId);\n }\n else if (this.page.pageId !== pageId) {\n this.createNextPage(this.page, pageId);\n }\n else if (this.resumed) {\n // Update attributes state in PageManager for event metadata\n this.collectAttributes(this.page, typeof payload === 'object' ? payload : undefined);\n return;\n }\n else {\n // The view has not changed.\n return;\n }\n // this.page is guaranteed to have been initialized\n // Attributes will be added to all events as meta data\n this.collectAttributes(this.page, typeof payload === 'object' ? payload : undefined);\n // The SessionManager will update its cookie with the new page\n this.recordPageViewEvent(this.page);\n };\n PageManager.prototype.createNextPage = function (currentPage, pageId) {\n var startTime = Date.now();\n var interactionTime = this.virtualPageLoadTimer.latestInteractionTime;\n // The latest interaction time (latest) is not guaranteed to be the\n // interaction that triggered the route change (actual). There are two\n // cases to consider:\n //\n // 1. Latest is older than actual. This can happen if the user navigates\n // with the browser back/forward button, or if the interaction is not a\n // click/keyup event.\n //\n // 2. Latest is newer than actual. This can happen if the user clicks or\n // types in the time between actual and when recordPageView is called.\n //\n // We believe that case (1) has a high risk of skewing route change\n // timing metrics because (a) browser navigation is common and (b) there\n // is no limit on when the latest interaction may have occurred. To\n // help mitigate this, if the route change is already longer than 1000ms,\n // then we do not bother timing the route change.\n //\n // We do not believe that case (2) has a high risk of skewing route\n // change timing, and therefore ignore case (2).\n if (!this.resumed && startTime - interactionTime <= this.TIMEOUT) {\n startTime = interactionTime;\n this.virtualPageLoadTimer.startTiming();\n }\n this.timeOnParentPage = startTime - currentPage.start;\n this.resumed = false;\n this.page = {\n pageId: pageId,\n parentPageId: currentPage.pageId,\n interaction: currentPage.interaction + 1,\n referrer: document.referrer,\n referrerDomain: this.getDomainFromReferrer(),\n start: startTime\n };\n };\n PageManager.prototype.createLandingPage = function (pageId) {\n this.page = {\n pageId: pageId,\n interaction: 0,\n referrer: document.referrer,\n referrerDomain: this.getDomainFromReferrer(),\n start: Date.now()\n };\n };\n PageManager.prototype.collectAttributes = function (page, customPageAttributes) {\n var _a;\n this.attributes = {\n title: ((_a = customPageAttributes === null || customPageAttributes === void 0 ? void 0 : customPageAttributes.pageAttributes) === null || _a === void 0 ? void 0 : _a.title)\n ? customPageAttributes.pageAttributes.title\n : document.title,\n pageId: page.pageId\n };\n if (this.recordInteraction) {\n this.attributes.interaction = page.interaction;\n if (page.parentPageId !== undefined) {\n this.attributes.parentPageId = page.parentPageId;\n }\n }\n if (customPageAttributes === null || customPageAttributes === void 0 ? void 0 : customPageAttributes.pageTags) {\n this.attributes['pageTags'] =\n customPageAttributes['pageTags'];\n }\n if (customPageAttributes === null || customPageAttributes === void 0 ? void 0 : customPageAttributes.pageAttributes) {\n this.attributes = __assign(__assign({}, customPageAttributes.pageAttributes), this.attributes);\n }\n };\n PageManager.prototype.createPageViewEvent = function (page) {\n var pageViewEvent = {\n version: '1.0.0',\n pageId: page.pageId\n };\n if (this.recordInteraction) {\n pageViewEvent.interaction = page.interaction;\n pageViewEvent.pageInteractionId =\n page.pageId + '-' + page.interaction;\n if (page.parentPageId !== undefined) {\n pageViewEvent.parentPageInteractionId =\n page.parentPageId + '-' + (page.interaction - 1);\n pageViewEvent.timeOnParentPage = this.timeOnParentPage;\n }\n pageViewEvent.referrer = document.referrer;\n pageViewEvent.referrerDomain = this.getDomainFromReferrer();\n }\n return pageViewEvent;\n };\n PageManager.prototype.recordPageViewEvent = function (page) {\n this.record(PAGE_VIEW_EVENT_TYPE, this.createPageViewEvent(page));\n };\n /**\n * Returns true when cookies should be used to store user ID and session ID.\n */\n PageManager.prototype.useCookies = function () {\n return navigator.cookieEnabled && this.config.allowCookies;\n };\n /*\n Parses the domain from the referrer, if it is available\n */\n PageManager.prototype.getDomainFromReferrer = function () {\n try {\n return new URL(document.referrer).hostname;\n }\n catch (e) {\n return document.referrer === 'localhost' ? document.referrer : '';\n }\n };\n return PageManager;\n}());\nexport { PageManager };\n","export var Topic;\n(function (Topic) {\n Topic[\"EVENT\"] = \"event\";\n})(Topic || (Topic = {}));\n/** A topic-based event bus to facilitate communication between plugins */\nvar EventBus = /** @class */ (function () {\n function EventBus() {\n // map\n this.subscribers = new Map();\n }\n EventBus.prototype.subscribe = function (topic, subscriber) {\n var _a;\n var list = (_a = this.subscribers.get(topic)) !== null && _a !== void 0 ? _a : [];\n if (!list.length) {\n this.subscribers.set(topic, list);\n }\n list.push(subscriber);\n };\n EventBus.prototype.unsubscribe = function (topic, subscriber) {\n var list = this.subscribers.get(topic);\n if (list) {\n for (var i = 0; i < list.length; i++) {\n if (list[i] === subscriber) {\n list.splice(i, 1);\n return true;\n }\n }\n }\n return false;\n };\n EventBus.prototype.dispatch = function (topic, message) {\n var list = this.subscribers.get(topic);\n if (list) {\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var subscriber = list_1[_i];\n subscriber(message);\n }\n }\n };\n return EventBus;\n}());\nexport default EventBus;\n","import { getRandomValues } from '../../utils/random';\n// All one-byte hex strings from 0x00 to 0xff.\nexport var byteToHex = [];\nfor (var i = 0; i < 256; i++) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\nexport var X_AMZN_TRACE_ID = 'X-Amzn-Trace-Id';\nexport var isTraceIdHeaderEnabled = function (url, addXrayTraceIdHeader) {\n if (Array.isArray(addXrayTraceIdHeader)) {\n return addXrayTraceIdHeader.some(function (matcher) { return matcher.test(url); });\n }\n return addXrayTraceIdHeader;\n};\nexport var defaultConfig = {\n logicalServiceName: 'rum.aws.amazon.com',\n urlsToInclude: [/.*/],\n urlsToExclude: [\n // Cognito endpoints https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html\n /cognito\\-identity\\.([^\\.]*\\.)?amazonaws\\.com/,\n // STS endpoints https://docs.aws.amazon.com/general/latest/gr/sts.html\n /sts\\.([^\\.]*\\.)?amazonaws\\.com/\n ],\n stackTraceLength: 200,\n recordAllRequests: false,\n addXRayTraceIdHeader: false\n};\nexport var is2xx = function (status) { return 200 <= status && status < 300; };\nexport var is4xx = function (status) {\n return Math.floor(status / 100) === 4;\n};\nexport var is5xx = function (status) {\n return Math.floor(status / 100) === 5;\n};\nexport var is429 = function (status) {\n return status === 429;\n};\nexport var isUrlAllowed = function (url, config) {\n var include = config.urlsToInclude.some(function (urlPattern) {\n return urlPattern.test(url);\n });\n var exclude = config.urlsToExclude.some(function (urlPattern) {\n return urlPattern.test(url);\n });\n return include && !exclude;\n};\n/**\n * Returns the current time, in floating point seconds in epoch time, accurate to milliseconds.\n */\nexport var epochTime = function () {\n return Date.now() / 1000;\n};\nexport var createXRayTraceEventHttp = function (input, init, traced) {\n var http = { request: {} };\n http.request.method = (init === null || init === void 0 ? void 0 : init.method) ? init.method : 'GET';\n http.request.traced = traced;\n http.request.url = resourceToUrlString(input);\n return http;\n};\nexport var createXRayTraceEvent = function (name, startTime, http) {\n var traceEvent = {\n version: '1.0.0',\n name: name,\n origin: 'AWS::RUM::AppMonitor',\n id: generateSegmentId(),\n start_time: startTime,\n trace_id: generateTraceId(),\n end_time: undefined,\n subsegments: [],\n in_progress: false\n };\n if (http) {\n traceEvent.http = http;\n }\n return traceEvent;\n};\nexport var createXRaySubsegment = function (name, startTime, http) {\n var subsegment = {\n id: generateSegmentId(),\n name: name,\n start_time: startTime,\n end_time: undefined,\n in_progress: false,\n namespace: name.endsWith('amazonaws.com') ? 'aws' : 'remote'\n };\n if (http) {\n subsegment.http = http;\n }\n return subsegment;\n};\nexport var requestInfoToHostname = function (request) {\n try {\n if (request.hostname) {\n return request.hostname;\n }\n else if (request.url) {\n return new URL(request.url).hostname;\n }\n else {\n return new URL(request.toString()).hostname;\n }\n }\n catch (e) {\n // The URL could not be parsed. This library's convention is to fail\n // silently to limit the risk of impacting the application being\n // monitored. We will use the hostname of the current page instead.\n return window.location.hostname;\n }\n};\nexport var addAmznTraceIdHeaderToInit = function (init, traceId, segmentId) {\n if (!init.headers) {\n init.headers = {};\n }\n init.headers[X_AMZN_TRACE_ID] = getAmznTraceIdHeaderValue(traceId, segmentId);\n};\nexport var addAmznTraceIdHeaderToHeaders = function (headers, traceId, segmentId) {\n headers.set(X_AMZN_TRACE_ID, getAmznTraceIdHeaderValue(traceId, segmentId));\n};\nexport var getAmznTraceIdHeaderValue = function (traceId, segmentId) {\n return 'Root=' + traceId + ';Parent=' + segmentId + ';Sampled=1';\n};\nexport var getTraceHeader = function (headers) {\n var _a;\n var traceHeader = {};\n if (headers) {\n var headerComponents = (_a = headers.get(X_AMZN_TRACE_ID)) === null || _a === void 0 ? void 0 : _a.split(';');\n if ((headerComponents === null || headerComponents === void 0 ? void 0 : headerComponents.length) === 3) {\n traceHeader.traceId = headerComponents[0].split('Root=')[1];\n traceHeader.segmentId = headerComponents[1].split('Parent=')[1];\n }\n }\n return traceHeader;\n};\n/**\n * Extracts an URL string from the fetch resource parameter.\n */\nexport var resourceToUrlString = function (resource) {\n return resource.url\n ? resource.url\n : resource.toString();\n};\n/**\n * Generate a globally unique trace ID.\n *\n * See https://docs.aws.amazon.com/xray/latest/devguide/xray-api-sendingdata.html\n *\n * @returns a trace id with the form '1-[unix epoch time in 8 hex digits]-[random in 24 hex digits]'\n */\nvar generateTraceId = function () {\n return \"1-\".concat(hexTime(), \"-\").concat(guid());\n};\n/**\n * Generate a segment ID that is unique within a trace.\n *\n * See https://docs.aws.amazon.com/xray/latest/devguide/xray-api-sendingdata.html\n *\n * @returns a segment id, which is 16 random hex digits\n */\nvar generateSegmentId = function () {\n var randomBytes = new Uint8Array(8);\n getRandomValues(randomBytes);\n return uint8ArrayToHexString(randomBytes);\n};\nvar hexTime = function () {\n return Math.floor(Date.now() / 1000).toString(16);\n};\nvar guid = function () {\n var randomBytes = new Uint8Array(12);\n getRandomValues(randomBytes);\n return uint8ArrayToHexString(randomBytes);\n};\nvar uint8ArrayToHexString = function (bytes) {\n var hexString = '';\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < bytes.length; i++) {\n hexString += byteToHex[bytes[i]];\n }\n return hexString;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { SessionManager } from '../sessions/SessionManager';\nimport { v4 } from 'uuid';\nimport { PageManager } from '../sessions/PageManager';\nimport EventBus, { Topic } from '../event-bus/EventBus';\nvar webClientVersion = '1.19.0';\n/**\n * A cache which stores events generated by telemetry plugins.\n *\n * The event cache stores meta data and events until they are dispatched to the\n * data plane. The event cache removes the oldest event once the cache is full\n * and a new event is added.\n */\nvar EventCache = /** @class */ (function () {\n /**\n * @param applicationDetails Application identity and version.\n * @param batchLimit The maximum number of events that will be returned in a batch.\n * @param eventCacheSize The maximum number of events the cache can contain before dropping events.\n * @param sessionManager The sessionManager returns user id, session id and handles session timeout.\n * @param pageManager The pageManager returns page id.\n */\n function EventCache(applicationDetails, config, eventBus) {\n if (eventBus === void 0) { eventBus = new EventBus(); }\n var _this = this;\n this.eventBus = eventBus;\n this.events = [];\n /**\n * Update the current page interaction for the session.\n */\n this.recordPageView = function (payload) {\n if (_this.isCurrentUrlAllowed()) {\n _this.pageManager.recordPageView(payload);\n }\n };\n /**\n * Add an event to the cache and reset the session timer.\n *\n * If the session is being recorded, the event will be recorded.\n * If the session is not being recorded, the event will not be recorded.\n *\n * @param type The event schema.\n */\n this.recordEvent = function (type, eventData) {\n if (!_this.enabled) {\n return;\n }\n if (_this.isCurrentUrlAllowed()) {\n var session = _this.sessionManager.getSession();\n _this.sessionManager.incrementSessionEventCount();\n if (_this.canRecord(session)) {\n _this.addRecordToCache(type, eventData);\n }\n }\n };\n /**\n * Returns the current session (1) if a session exists and (2) if the\n * current URL is allowed. Returns undefined otherwise.\n */\n this.getSession = function () {\n if (_this.isCurrentUrlAllowed()) {\n return _this.sessionManager.getSession();\n }\n return undefined;\n };\n /**\n * Add a session start event to the cache.\n */\n this.recordSessionInitEvent = function (session, type, eventData) {\n if (!_this.enabled) {\n return;\n }\n _this.sessionManager.incrementSessionEventCount();\n if (_this.canRecord(session)) {\n _this.addRecordToCache(type, eventData);\n }\n };\n this.canRecord = function (session) {\n return (session.record &&\n (session.eventCount <= _this.config.sessionEventLimit ||\n _this.config.sessionEventLimit <= 0));\n };\n /**\n * Add an event to the cache.\n *\n * @param type The event schema.\n */\n this.addRecordToCache = function (type, eventData) {\n if (!_this.enabled) {\n return;\n }\n if (_this.events.length === _this.config.eventCacheSize) {\n // Drop newest event and keep the older ones\n // 1. Older events tend to be more relevant, such as session start\n // or performance entries that are attributed to web vitals\n // 2. Dropping an old event requires linear time\n return;\n }\n // The data plane service model (i.e., LogEvents) does not adhere to the\n // RUM agent data model, where sessions and pages are first class\n // objects with their own attribute sets. Instead, we store session\n // attributes and page attributes together as 'meta data'.\n var metaData = __assign(__assign(__assign({}, _this.sessionManager.getAttributes()), _this.pageManager.getAttributes()), { version: '1.0.0', 'aws:client': _this.installationMethod, 'aws:clientVersion': webClientVersion });\n var partialEvent = {\n id: v4(),\n timestamp: new Date(),\n type: type\n };\n _this.eventBus.dispatch(Topic.EVENT, __assign(__assign({}, partialEvent), { details: eventData, metadata: metaData }));\n _this.events.push(__assign(__assign({}, partialEvent), { details: JSON.stringify(eventData), metadata: JSON.stringify(metaData) }));\n };\n this.appMonitorDetails = applicationDetails;\n this.config = config;\n this.enabled = true;\n this.pageManager = new PageManager(config, this.recordEvent);\n this.sessionManager = new SessionManager(applicationDetails, config, this.recordSessionInitEvent, this.pageManager);\n this.installationMethod = config.client;\n }\n /**\n * The event cache will record new events or new meta data.\n */\n EventCache.prototype.enable = function () {\n this.enabled = true;\n };\n /**\n * The event cache will not record new events or new meta data. Events and\n * meta data which are already in the cache will still be accessible.\n */\n EventCache.prototype.disable = function () {\n this.enabled = false;\n };\n /**\n * Returns true if the session is sampled, false otherwise.\n */\n EventCache.prototype.isSessionSampled = function () {\n return this.sessionManager.isSampled();\n };\n /**\n * Returns true if there are one or more events in the cache.\n */\n EventCache.prototype.hasEvents = function () {\n return this.events.length !== 0;\n };\n /**\n * Removes and returns the next batch of events.\n */\n EventCache.prototype.getEventBatch = function () {\n var rumEvents = [];\n if (this.events.length === 0) {\n return rumEvents;\n }\n if (this.events.length <= this.config.batchLimit) {\n // Return all events.\n rumEvents = this.events;\n this.events = [];\n }\n else {\n // Dispatch the front of the array and retain the back of the array.\n rumEvents = this.events.splice(0, this.config.batchLimit);\n }\n return rumEvents;\n };\n /**\n * Returns an object containing the AppMonitor ID and application version.\n */\n EventCache.prototype.getAppMonitorDetails = function () {\n return this.appMonitorDetails;\n };\n /**\n * Returns an object containing the session ID and user ID.\n */\n EventCache.prototype.getUserDetails = function () {\n return {\n userId: this.sessionManager.getUserId(),\n sessionId: this.sessionManager.getSession().sessionId\n };\n };\n /**\n * Set custom session attributes to add them to all event metadata.\n *\n * @param payload object containing custom attribute data in the form of key, value pairs\n */\n EventCache.prototype.addSessionAttributes = function (sessionAttributes) {\n this.sessionManager.addSessionAttributes(sessionAttributes);\n };\n /**\n * Returns {@code true} if the current url matches one of the allowedPages\n * and does not match any of the deniedPages; returns {@code false}\n * otherwise.\n */\n EventCache.prototype.isCurrentUrlAllowed = function () {\n var location = document.location.toString();\n var exclude = this.config.pagesToExclude.some(function (re) {\n return re.test(location);\n });\n var include = this.config.pagesToInclude.some(function (re) {\n return re.test(location);\n });\n return include && !exclude;\n };\n return EventCache;\n}());\nexport { EventCache };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { toHex } from '@aws-sdk/util-hex-encoding';\nimport { SignatureV4 } from '@aws-sdk/signature-v4';\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { HttpRequest } from '@aws-sdk/protocol-http';\nvar SERVICE = 'rum';\nvar METHOD = 'POST';\nvar CONTENT_TYPE_JSON = 'application/json';\nvar CONTENT_TYPE_TEXT = 'text/plain;charset=UTF-8';\nvar REQUEST_PRESIGN_ARGS = { expiresIn: 60 };\nvar DataPlaneClient = /** @class */ (function () {\n function DataPlaneClient(config) {\n var _this = this;\n this.sendFetch = function (putRumEventsRequest) { return __awaiter(_this, void 0, void 0, function () {\n var options, request, httpResponse;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getHttpRequestOptions(putRumEventsRequest, CONTENT_TYPE_JSON)];\n case 1:\n options = _a.sent();\n request = new HttpRequest(options);\n if (!this.awsSigV4) return [3 /*break*/, 3];\n return [4 /*yield*/, this.awsSigV4.sign(request)];\n case 2:\n request = (_a.sent());\n _a.label = 3;\n case 3:\n httpResponse = this.config.fetchRequestHandler.handle(request);\n return [2 /*return*/, httpResponse];\n }\n });\n }); };\n this.sendBeacon = function (putRumEventsRequest) { return __awaiter(_this, void 0, void 0, function () {\n var options, request, httpResponse;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getHttpRequestOptions(putRumEventsRequest, CONTENT_TYPE_TEXT)];\n case 1:\n options = _a.sent();\n request = new HttpRequest(options);\n if (!this.awsSigV4) return [3 /*break*/, 3];\n return [4 /*yield*/, this.awsSigV4.presign(request, REQUEST_PRESIGN_ARGS)];\n case 2:\n request = (_a.sent());\n _a.label = 3;\n case 3:\n httpResponse = this.config.beaconRequestHandler.handle(request);\n return [2 /*return*/, httpResponse];\n }\n });\n }); };\n this.getHttpRequestOptions = function (putRumEventsRequest, contentType) { return __awaiter(_this, void 0, void 0, function () {\n var serializedRequest, path, options, _a, _b, _c;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n serializedRequest = JSON.stringify(serializeRequest(putRumEventsRequest));\n path = this.config.endpoint.pathname.replace(/\\/$/, '');\n options = {\n method: METHOD,\n protocol: this.config.endpoint.protocol,\n headers: {\n 'content-type': contentType,\n host: this.config.endpoint.host\n },\n hostname: this.config.endpoint.hostname,\n path: \"\".concat(path, \"/appmonitors/\").concat(putRumEventsRequest.AppMonitorDetails.id),\n body: serializedRequest\n };\n if (!this.awsSigV4) return [3 /*break*/, 2];\n _a = [__assign({}, options)];\n _d = {};\n _b = [__assign({}, options.headers)];\n _e = {};\n _c = 'X-Amz-Content-Sha256';\n return [4 /*yield*/, hashAndEncode(serializedRequest)];\n case 1: return [2 /*return*/, __assign.apply(void 0, _a.concat([(_d.headers = __assign.apply(void 0, _b.concat([(_e[_c] = _f.sent(), _e)])), _d)]))];\n case 2: return [2 /*return*/, options];\n }\n });\n }); };\n this.config = config;\n if (config.credentials) {\n this.awsSigV4 = new SignatureV4({\n applyChecksum: true,\n credentials: config.credentials,\n region: config.region,\n service: SERVICE,\n uriEscapePath: true,\n sha256: Sha256\n });\n }\n }\n return DataPlaneClient;\n}());\nexport { DataPlaneClient };\nvar serializeRequest = function (request) {\n // If we were using the AWS SDK client here then the serialization would be handled for us through a generated\n // serialization/deserialization library. However, since much of the generated code is unnecessary, we do the\n // serialization ourselves with this function.\n var serializedRumEvents = [];\n request.RumEvents.forEach(function (e) {\n return serializedRumEvents.push(serializeEvent(e));\n });\n var serializedRequest = {\n BatchId: request.BatchId,\n AppMonitorDetails: request.AppMonitorDetails,\n UserDetails: request.UserDetails,\n RumEvents: serializedRumEvents\n };\n return serializedRequest;\n};\nvar serializeEvent = function (event) {\n return {\n id: event.id,\n // Dates must be converted to timestamps before serialization.\n timestamp: Math.round(event.timestamp.getTime() / 1000),\n type: event.type,\n metadata: event.metadata,\n details: event.details\n };\n};\nvar hashAndEncode = function (payload) { return __awaiter(void 0, void 0, void 0, function () {\n var sha256, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n sha256 = new Sha256();\n sha256.update(payload);\n _a = toHex;\n return [4 /*yield*/, sha256.digest()];\n case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()]).toLowerCase()];\n }\n });\n}); };\n","import { HttpResponse } from '@aws-sdk/protocol-http';\nimport { buildQueryString } from '@aws-sdk/querystring-builder';\nvar BeaconHttpHandler = /** @class */ (function () {\n function BeaconHttpHandler() {\n }\n BeaconHttpHandler.prototype.handle = function (request) {\n var queued = this.sendBeacon(request);\n return new Promise(function (resolve, reject) {\n if (queued) {\n resolve({\n response: new HttpResponse({ statusCode: 200 })\n });\n }\n else {\n reject();\n }\n });\n };\n BeaconHttpHandler.prototype.sendBeacon = function (signedRequest) {\n var path = signedRequest.path;\n if (signedRequest.query) {\n var queryString = buildQueryString(signedRequest.query);\n if (queryString) {\n path += \"?\".concat(queryString);\n }\n }\n var port = signedRequest.port;\n var url = \"\".concat(signedRequest.protocol, \"//\").concat(signedRequest.hostname).concat(port ? \":\".concat(port) : '').concat(path);\n return navigator.sendBeacon(url, signedRequest.body);\n };\n return BeaconHttpHandler;\n}());\nexport { BeaconHttpHandler };\n","export var requestTimeout = function (timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \".concat(timeoutInMs, \" ms\"));\n timeoutError.name = 'TimeoutError';\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n};\n","import { HttpResponse } from '@aws-sdk/protocol-http';\nimport { buildQueryString } from '@aws-sdk/querystring-builder';\nimport { requestTimeout } from './request-timeout';\nvar FetchHttpHandler = /** @class */ (function () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a, fetchFunction = _b.fetchFunction, requestTimeout = _b.requestTimeout;\n this.requestTimeout = requestTimeout;\n this.fetchFunction = fetchFunction;\n }\n FetchHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n var requestTimeoutInMs = this.requestTimeout;\n // if the request was already aborted, prevent doing extra work\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error('Request aborted');\n abortError.name = 'AbortError';\n return Promise.reject(abortError);\n }\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\".concat(queryString);\n }\n }\n var port = request.port, method = request.method;\n var url = \"\".concat(request.protocol, \"//\").concat(request.hostname).concat(port ? \":\".concat(port) : '').concat(path);\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n var body = method === 'GET' || method === 'HEAD' ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method\n };\n // some browsers support abort signal\n if (typeof AbortController !== 'undefined') {\n requestOptions.signal = abortSignal;\n }\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [\n this.fetchFunction.apply(window, [fetchRequest]).then(function (response) {\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n for (var _i = 0, _a = fetchHeaders.entries(); _i < _a.length; _i++) {\n var pair = _a[_i];\n transformedHeaders[pair[0]] = pair[1];\n }\n var hasReadableStream = response.body !== undefined;\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body\n })\n }); });\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body\n })\n };\n }),\n requestTimeout(requestTimeoutInMs)\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error('Request aborted');\n abortError.name = 'AbortError';\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n","export var getRandomValues = function (holder) {\n if (crypto) {\n return crypto.getRandomValues(holder);\n }\n else if (msCrypto) {\n return msCrypto.getRandomValues(holder);\n }\n else {\n throw new Error('No crypto library found.');\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { is2xx, is429, is5xx } from '../plugins/utils/http-utils';\n/**\n * An HttpHandler which wraps other HttpHandlers to retry requests.\n *\n * Requests will be retried if (1) there is an error (e.g., with the network or\n * credentials) and the promise rejects, or (2) the response status is not 2xx.\n */\nvar RetryHttpHandler = /** @class */ (function () {\n function RetryHttpHandler(handler, retries, backoff) {\n if (backoff === void 0) { backoff = function (n) { return 2000 * Math.pow(2, n - 1); }; }\n this.handler = handler;\n this.retries = retries;\n this.backoff = backoff;\n }\n RetryHttpHandler.prototype.handle = function (request) {\n return __awaiter(this, void 0, void 0, function () {\n var retriesLeft, response, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n retriesLeft = this.retries;\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 7];\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 6]);\n return [4 /*yield*/, this.handler.handle(request)];\n case 3:\n response = _a.sent();\n if (is2xx(response.response.statusCode)) {\n return [2 /*return*/, response];\n }\n throw response.response.statusCode;\n case 4:\n e_1 = _a.sent();\n if (typeof e_1 === 'number' && !is429(e_1) && !is5xx(e_1)) {\n // Fail immediately on client errors because they will never succeed.\n // Only retry when request is throttled (429) or received server error (5xx).\n throw new Error(\"\".concat(e_1));\n }\n if (retriesLeft <= 0) {\n throw e_1;\n }\n retriesLeft--;\n return [4 /*yield*/, this.sleep(this.backoff(this.retries - retriesLeft))];\n case 5:\n _a.sent();\n return [3 /*break*/, 6];\n case 6: return [3 /*break*/, 1];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n RetryHttpHandler.prototype.sleep = function (milliseconds) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n return setTimeout(resolve, milliseconds);\n })];\n });\n });\n };\n return RetryHttpHandler;\n}());\nexport { RetryHttpHandler };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { DataPlaneClient } from './DataPlaneClient';\nimport { BeaconHttpHandler } from './BeaconHttpHandler';\nimport { FetchHttpHandler } from './FetchHttpHandler';\nimport { v4 } from 'uuid';\nimport { RetryHttpHandler } from './RetryHttpHandler';\nvar NO_CRED_MSG = 'CWR: Cannot dispatch; no AWS credentials.';\nvar Dispatch = /** @class */ (function () {\n function Dispatch(region, endpoint, eventCache, config) {\n var _this = this;\n this.disableCodes = ['403', '404'];\n /**\n * Send meta data and events to the AWS RUM data plane service via fetch.\n */\n this.dispatchFetch = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.doRequest()) {\n return [2 /*return*/, this.rum\n .sendFetch(this.createRequest())\n .catch(this.handleReject)];\n }\n return [2 /*return*/];\n });\n }); };\n /**\n * Send meta data and events to the AWS RUM data plane service via beacon.\n */\n this.dispatchBeacon = function () { return __awaiter(_this, void 0, void 0, function () {\n var request_1;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.doRequest()) {\n request_1 = this.createRequest();\n return [2 /*return*/, this.rum\n .sendBeacon(request_1)\n .catch(function () { return _this.rum.sendFetch(request_1); })];\n }\n return [2 /*return*/];\n });\n }); };\n /**\n * Send meta data and events to the AWS RUM data plane service via fetch.\n *\n * Returns undefined on failure.\n */\n this.dispatchFetchFailSilent = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return [2 /*return*/, this.dispatchFetch().catch(function () { })];\n });\n }); };\n /**\n * Send meta data and events to the AWS RUM data plane service via beacon.\n *\n * Returns undefined on failure.\n */\n this.dispatchBeaconFailSilent = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return [2 /*return*/, this.dispatchBeacon().catch(function () { })];\n });\n }); };\n this.handleReject = function (e) {\n if (e instanceof Error && _this.disableCodes.includes(e.message)) {\n // RUM disables only when dispatch fails and we are certain\n // that subsequent attempts will not succeed, such as when\n // credentials are invalid or the app monitor does not exist.\n _this.disable();\n }\n throw e;\n };\n /**\n * The default method for creating data plane service clients.\n *\n * @param endpoint Service endpoint.\n * @param region Service region.\n * @param credentials AWS credentials.\n */\n this.defaultClientBuilder = function (endpoint, region, credentials) {\n return new DataPlaneClient({\n fetchRequestHandler: new RetryHttpHandler(new FetchHttpHandler({\n fetchFunction: _this.config.fetchFunction\n }), _this.config.retries),\n beaconRequestHandler: new BeaconHttpHandler(),\n endpoint: endpoint,\n region: region,\n credentials: credentials\n });\n };\n this.region = region;\n this.endpoint = endpoint;\n this.eventCache = eventCache;\n this.enabled = true;\n this.buildClient = config.clientBuilder || this.defaultClientBuilder;\n this.config = config;\n this.startDispatchTimer();\n if (config.signing) {\n this.rum = {\n sendFetch: function () {\n return Promise.reject(new Error(NO_CRED_MSG));\n },\n sendBeacon: function () {\n return Promise.reject(new Error(NO_CRED_MSG));\n }\n };\n }\n else {\n this.rum = this.buildClient(this.endpoint, this.region, undefined);\n }\n }\n /**\n * Dispatch will send requests to data plane.\n */\n Dispatch.prototype.enable = function () {\n this.enabled = true;\n this.startDispatchTimer();\n };\n /**\n * Dispatch will not send requests to data plane.\n */\n Dispatch.prototype.disable = function () {\n this.stopDispatchTimer();\n this.enabled = false;\n };\n /**\n * Set the authentication token that will be used to authenticate with the\n * data plane service (AWS auth).\n *\n * @param credentials A set of AWS credentials from the application's authflow.\n */\n Dispatch.prototype.setAwsCredentials = function (credentialProvider) {\n this.rum = this.buildClient(this.endpoint, this.region, credentialProvider);\n if (typeof credentialProvider === 'function') {\n // In case a beacon in the first dispatch, we must pre-fetch credentials into a cookie so there is no delay\n // to fetch credentials while the page is closing.\n credentialProvider();\n }\n };\n /**\n * Automatically dispatch cached events.\n */\n Dispatch.prototype.startDispatchTimer = function () {\n document.addEventListener('visibilitychange', \n // The page is moving to the hidden state, which means it may be\n // unloaded. The sendBeacon API would typically be used in this\n // case. However, ad-blockers prevent sendBeacon from functioning.\n // We therefore have two bad options:\n //\n // (1) Use sendBeacon. Data will be lost when ad blockers are\n // used and the page loses visibility\n // (2) Use fetch. Data will be lost when the page is unloaded\n // before fetch completes\n //\n // A third option is to send both, however this would increase\n // bandwitch and require deduping server side.\n this.config.useBeacon\n ? this.dispatchBeaconFailSilent\n : this.dispatchFetchFailSilent);\n // Using 'pagehide' is redundant most of the time (visibilitychange is\n // always fired before pagehide) but older browsers may support\n // 'pagehide' but not 'visibilitychange'.\n document.addEventListener('pagehide', this.config.useBeacon\n ? this.dispatchBeaconFailSilent\n : this.dispatchFetchFailSilent);\n if (this.config.dispatchInterval <= 0 || this.dispatchTimerId) {\n return;\n }\n this.dispatchTimerId = window.setInterval(this.dispatchFetchFailSilent, this.config.dispatchInterval);\n };\n /**\n * Stop automatically dispatching cached events.\n */\n Dispatch.prototype.stopDispatchTimer = function () {\n document.removeEventListener('visibilitychange', this.config.useBeacon\n ? this.dispatchBeaconFailSilent\n : this.dispatchFetchFailSilent);\n document.removeEventListener('pagehide', this.config.useBeacon\n ? this.dispatchBeaconFailSilent\n : this.dispatchFetchFailSilent);\n if (this.dispatchTimerId) {\n window.clearInterval(this.dispatchTimerId);\n this.dispatchTimerId = undefined;\n }\n };\n Dispatch.prototype.doRequest = function () {\n return this.enabled && this.eventCache.hasEvents();\n };\n Dispatch.prototype.createRequest = function () {\n return {\n BatchId: v4(),\n AppMonitorDetails: this.eventCache.getAppMonitorDetails(),\n UserDetails: this.eventCache.getUserDetails(),\n RumEvents: this.eventCache.getEventBatch()\n };\n };\n return Dispatch;\n}());\nexport { Dispatch };\n","export var ResourceType;\n(function (ResourceType) {\n ResourceType[\"OTHER\"] = \"other\";\n ResourceType[\"STYLESHEET\"] = \"stylesheet\";\n ResourceType[\"DOCUMENT\"] = \"document\";\n ResourceType[\"SCRIPT\"] = \"script\";\n ResourceType[\"IMAGE\"] = \"image\";\n ResourceType[\"FONT\"] = \"font\";\n})(ResourceType || (ResourceType = {}));\n/**\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/initiatorType\n */\nexport var InitiatorType;\n(function (InitiatorType) {\n /**\n * IMAGES\n * PerformanceResourceTiming with initiatorType=Input must be an image\n * Per MDN docs: \"if the request was initiated by an element of type image.\"\"\n */\n InitiatorType[\"IMG\"] = \"img\";\n InitiatorType[\"IMAGE\"] = \"image\";\n InitiatorType[\"INPUT\"] = \"input\";\n /**\n * DOCUMENTS\n */\n InitiatorType[\"IFRAME\"] = \"iframe\";\n InitiatorType[\"FRAME\"] = \"frame\";\n /**\n * SCRIPTS\n */\n InitiatorType[\"SCRIPT\"] = \"script\";\n /**\n * STYLESHEETS\n */\n InitiatorType[\"CSS\"] = \"css\";\n})(InitiatorType || (InitiatorType = {}));\n/**\n * Creates key to link a RumEvent to the PerformanceEntry that it is sourced from\n * e.g. performanceKey(ResourceEvent) === performanceKey(PerformanceResourceTiming).\n * There is some worry of collision when startTime or duration are zero, such as when\n * resources are cached. But timestamps have not been observed to be zero in these cases.\n */\nexport var performanceKey = function (details) {\n return [details.startTime, details.duration].join('#');\n};\nvar extensions = [\n {\n name: ResourceType.STYLESHEET,\n list: ['css', 'less']\n },\n {\n name: ResourceType.DOCUMENT,\n list: ['htm', 'html', 'ts', 'doc', 'docx', 'pdf', 'xls', 'xlsx']\n },\n {\n name: ResourceType.SCRIPT,\n list: ['js']\n },\n {\n name: ResourceType.IMAGE,\n list: [\n 'ai',\n 'bmp',\n 'gif',\n 'ico',\n 'jpeg',\n 'jpg',\n 'png',\n 'ps',\n 'psd',\n 'svg',\n 'tif',\n 'tiff'\n ]\n },\n {\n name: ResourceType.FONT,\n list: ['fnt', 'fon', 'otf', 'ttf', 'woff']\n }\n];\nexport var shuffle = function (a) {\n for (var i = a.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var v = a[i];\n a[i] = a[j];\n a[j] = v;\n }\n};\nexport var getResourceFileType = function (url, initiatorType) {\n var ext = ResourceType.OTHER;\n if (url) {\n var filename = url.substring(url.lastIndexOf('/') + 1);\n var extension_1 = filename\n .substring(filename.lastIndexOf('.') + 1)\n .split(/[?#]/)[0];\n extensions.forEach(function (type) {\n if (type.list.indexOf(extension_1) > -1) {\n ext = type.name;\n }\n });\n }\n /**\n * Resource name sometimes does not have the correct file extension names due to redirects.\n * In these cases, they are mislablled as \"other\". In these cases, we can infer the correct\n * fileType from the initiator.\n */\n if (initiatorType && ext === ResourceType.OTHER) {\n switch (initiatorType) {\n case InitiatorType.IMAGE:\n case InitiatorType.IMG:\n case InitiatorType.INPUT:\n ext = ResourceType.IMAGE;\n break;\n case InitiatorType.IFRAME:\n case InitiatorType.FRAME:\n ext = ResourceType.DOCUMENT;\n break;\n case InitiatorType.SCRIPT:\n ext = ResourceType.SCRIPT;\n break;\n case InitiatorType.CSS:\n ext = ResourceType.STYLESHEET;\n break;\n }\n }\n return ext;\n};\n/* Helpers */\nexport var httpStatusText = {\n '0': 'Abort Request',\n '200': 'OK',\n '201': 'Created',\n '202': 'Accepted',\n '203': 'Non-Authoritative Information',\n '204': 'No Content',\n '205': 'Reset Content',\n '206': 'Partial Content',\n '300': 'Multiple Choices',\n '301': 'Moved Permanently',\n '302': 'Found',\n '303': 'See Other',\n '304': 'Not Modified',\n '305': 'Use Proxy',\n '306': 'Unused',\n '307': 'Temporary Redirect',\n '400': 'Bad Request',\n '401': 'Unauthorized',\n '402': 'Payment Required',\n '403': 'Forbidden',\n '404': 'Not Found',\n '405': 'Method Not Allowed',\n '406': 'Not Acceptable',\n '407': 'Proxy Authentication Required',\n '408': 'Request Timeout',\n '409': 'Conflict',\n '410': 'Gone',\n '411': 'Length Required',\n '412': 'Precondition Required',\n '413': 'Request Entry Too Large',\n '414': 'Request-URI Too Long',\n '415': 'Unsupported Media Type',\n '416': 'Requested Range Not Satisfiable',\n '417': 'Expectation Failed',\n '418': 'I\"m a teapot',\n '500': 'Internal Server Error',\n '501': 'Not Implemented',\n '502': 'Bad Gateway',\n '503': 'Service Unavailable',\n '504': 'Gateway Timeout',\n '505': 'HTTP Version Not Supported'\n};\n/** Checks at runtime if the web vitals package will record LCP\n * If PerformanceAPI ever changes this API, or if WebVitals package implements a polyfill,\n * then this needs to be updated\n *\n * Reference code from web vitals package:\n * https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/observe.ts#L46\n * Discussion for context:\n * https://github.com/aws-observability/aws-rum-web/pull/448#issuecomment-1734314463\n */\nexport var isLCPSupported = function () {\n return PerformanceObserver.supportedEntryTypes.includes('largest-contentful-paint');\n};\nexport var isFCPSupported = function () {\n return PerformanceObserver.supportedEntryTypes.includes('paint');\n};\nexport var isLongTaskSupported = function () {\n return PerformanceObserver.supportedEntryTypes.includes('longtask');\n};\n/** PutRumEvents regex pattern */\nvar putRumEventsPattern = /.*\\/application\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\/events/;\nexport var isPutRumEventsCall = function (url, endpointHost) {\n try {\n return (new URL(url).hostname === endpointHost &&\n putRumEventsPattern.test(url));\n }\n catch (_) {\n // Ignore invalid URLs\n return false;\n }\n};\n","import { ResourceType } from '../../utils/common-utils';\nexport var defaultIgnore = function (entry) {\n return entry.entryType === 'resource' &&\n (!/^https?:/.test(entry.name) ||\n /^(fetch|xmlhttprequest)$/.test(entry.initiatorType));\n};\nexport var defaultPerformancePluginConfig = {\n eventLimit: 10,\n ignore: defaultIgnore,\n recordAllTypes: [\n ResourceType.DOCUMENT,\n ResourceType.SCRIPT,\n ResourceType.STYLESHEET,\n ResourceType.FONT\n ],\n sampleTypes: [ResourceType.IMAGE, ResourceType.OTHER]\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { InternalPlugin } from '../InternalPlugin';\nimport { PERFORMANCE_NAVIGATION_EVENT_TYPE } from '../utils/constant';\nimport { defaultPerformancePluginConfig } from '../utils/performance-utils';\nexport var NAVIGATION_EVENT_PLUGIN_ID = 'navigation';\nvar NAVIGATION = 'navigation';\nvar LOAD = 'load';\n/**\n * This plugin records performance timing events generated during every page load/re-load activity.\n * Paint, resource and performance event types make sense only if all or none are included.\n * For RUM, these event types are inter-dependent. So they are recorded under one plugin.\n */\nvar NavigationPlugin = /** @class */ (function (_super) {\n __extends(NavigationPlugin, _super);\n function NavigationPlugin(config) {\n var _this = _super.call(this, NAVIGATION_EVENT_PLUGIN_ID) || this;\n /**\n * Use Navigation timing Level 1 for all browsers by default -\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/timing\n *\n * If browser provides support, use Navigation Timing Level 2 specification -\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n *\n * Only the current document resource is included in the performance timeline;\n * there is only one PerformanceNavigationTiming object in the performance timeline.\n * https://www.w3.org/TR/navigation-timing-2/\n */\n _this.eventListener = function () {\n if (performance.getEntriesByType(NAVIGATION).length === 0) {\n _this.performanceNavigationEventHandlerTimingLevel1();\n }\n else {\n var navigationObserver = new PerformanceObserver(function (list) {\n list.getEntries()\n .filter(function (e) { return e.entryType === NAVIGATION; })\n .filter(function (e) { return !_this.config.ignore(e); })\n .forEach(function (event) {\n _this.performanceNavigationEventHandlerTimingLevel2(event);\n });\n });\n navigationObserver.observe({\n entryTypes: [NAVIGATION]\n });\n }\n };\n /**\n * W3C specification: https://www.w3.org/TR/navigation-timing/#sec-navigation-timing-interface\n */\n _this.performanceNavigationEventHandlerTimingLevel1 = function () {\n var recordNavigation = function () {\n var _a;\n var entryData = performance.timing;\n var origin = entryData.navigationStart;\n var eventDataNavigationTimingLevel1 = {\n version: '1.0.0',\n initiatorType: 'navigation',\n startTime: 0,\n unloadEventStart: entryData.unloadEventStart > 0\n ? entryData.unloadEventStart - origin\n : 0,\n promptForUnload: entryData.unloadEventEnd - entryData.unloadEventStart,\n redirectStart: entryData.redirectStart > 0\n ? entryData.redirectStart - origin\n : 0,\n redirectTime: entryData.redirectEnd - entryData.redirectStart,\n fetchStart: entryData.fetchStart > 0\n ? entryData.fetchStart - origin\n : 0,\n domainLookupStart: entryData.domainLookupStart > 0\n ? entryData.domainLookupStart - origin\n : 0,\n dns: entryData.domainLookupEnd - entryData.domainLookupStart,\n connectStart: entryData.connectStart > 0\n ? entryData.connectStart - origin\n : 0,\n connect: entryData.connectEnd - entryData.connectStart,\n secureConnectionStart: entryData.secureConnectionStart > 0\n ? entryData.secureConnectionStart - origin\n : 0,\n tlsTime: entryData.secureConnectionStart > 0\n ? entryData.connectEnd - entryData.secureConnectionStart\n : 0,\n requestStart: entryData.requestStart > 0\n ? entryData.requestStart - origin\n : 0,\n timeToFirstByte: entryData.responseStart - entryData.requestStart,\n responseStart: entryData.responseStart > 0\n ? entryData.responseStart - origin\n : 0,\n responseTime: entryData.responseStart > 0\n ? entryData.responseEnd - entryData.responseStart\n : 0,\n domInteractive: entryData.domInteractive > 0\n ? entryData.domInteractive - origin\n : 0,\n domContentLoadedEventStart: entryData.domContentLoadedEventStart > 0\n ? entryData.domContentLoadedEventStart - origin\n : 0,\n domContentLoaded: entryData.domContentLoadedEventEnd -\n entryData.domContentLoadedEventStart,\n domComplete: entryData.domComplete > 0\n ? entryData.domComplete - origin\n : 0,\n domProcessingTime: entryData.loadEventStart - entryData.responseEnd,\n loadEventStart: entryData.loadEventStart > 0\n ? entryData.loadEventStart - origin\n : 0,\n loadEventTime: entryData.loadEventEnd - entryData.loadEventStart,\n duration: entryData.loadEventEnd - entryData.navigationStart,\n navigationTimingLevel: 1\n };\n if ((_a = _this.context) === null || _a === void 0 ? void 0 : _a.record) {\n _this.context.record(PERFORMANCE_NAVIGATION_EVENT_TYPE, eventDataNavigationTimingLevel1);\n }\n };\n // Timeout is required for loadEventEnd to complete\n setTimeout(recordNavigation, 0);\n };\n /**\n * W3C specification: https://www.w3.org/TR/navigation-timing-2/#bib-navigation-timing\n */\n _this.performanceNavigationEventHandlerTimingLevel2 = function (entryData) {\n var _a;\n var eventDataNavigationTimingLevel2 = {\n version: '1.0.0',\n initiatorType: entryData.initiatorType,\n navigationType: entryData.type,\n startTime: entryData.startTime,\n unloadEventStart: entryData.unloadEventStart,\n promptForUnload: entryData.unloadEventEnd - entryData.unloadEventStart,\n redirectCount: entryData.redirectCount,\n redirectStart: entryData.redirectStart,\n redirectTime: entryData.redirectEnd - entryData.redirectStart,\n workerStart: entryData.workerStart,\n workerTime: entryData.workerStart > 0\n ? entryData.fetchStart - entryData.workerStart\n : 0,\n fetchStart: entryData.fetchStart,\n domainLookupStart: entryData.domainLookupStart,\n dns: entryData.domainLookupEnd - entryData.domainLookupStart,\n nextHopProtocol: entryData.nextHopProtocol,\n connectStart: entryData.connectStart,\n connect: entryData.connectEnd - entryData.connectStart,\n secureConnectionStart: entryData.secureConnectionStart,\n tlsTime: entryData.secureConnectionStart > 0\n ? entryData.connectEnd - entryData.secureConnectionStart\n : 0,\n requestStart: entryData.requestStart,\n timeToFirstByte: entryData.responseStart - entryData.requestStart,\n responseStart: entryData.responseStart,\n responseTime: entryData.responseStart > 0\n ? entryData.responseEnd - entryData.responseStart\n : 0,\n domInteractive: entryData.domInteractive,\n domContentLoadedEventStart: entryData.domContentLoadedEventStart,\n domContentLoaded: entryData.domContentLoadedEventEnd -\n entryData.domContentLoadedEventStart,\n domComplete: entryData.domComplete,\n domProcessingTime: entryData.loadEventStart - entryData.responseEnd,\n loadEventStart: entryData.loadEventStart,\n loadEventTime: entryData.loadEventEnd - entryData.loadEventStart,\n duration: entryData.duration,\n headerSize: entryData.transferSize > 0\n ? entryData.transferSize - entryData.encodedBodySize\n : 0,\n transferSize: entryData.transferSize,\n compressionRatio: entryData.encodedBodySize > 0\n ? entryData.decodedBodySize / entryData.encodedBodySize\n : 0,\n navigationTimingLevel: 2\n };\n if ((_a = _this.context) === null || _a === void 0 ? void 0 : _a.record) {\n _this.context.record(PERFORMANCE_NAVIGATION_EVENT_TYPE, eventDataNavigationTimingLevel2);\n }\n };\n _this.config = __assign(__assign({}, defaultPerformancePluginConfig), config);\n return _this;\n }\n NavigationPlugin.prototype.enable = function () {\n if (this.enabled) {\n return;\n }\n this.enabled = true;\n window.addEventListener(LOAD, this.eventListener);\n };\n NavigationPlugin.prototype.disable = function () {\n if (!this.enabled) {\n return;\n }\n this.enabled = false;\n if (this.eventListener) {\n window.removeEventListener(LOAD, this.eventListener);\n }\n };\n /**\n * Use the loadEventEnd field from window.performance to check if the website\n * has loaded already.\n *\n * @returns boolean\n */\n NavigationPlugin.prototype.hasTheWindowLoadEventFired = function () {\n if (window.performance &&\n window.performance.getEntriesByType(NAVIGATION).length) {\n var navData = window.performance.getEntriesByType(NAVIGATION)[0];\n return Boolean(navData.loadEventEnd);\n }\n return false;\n };\n /**\n * loadEventEnd is populated as 0 if the web page has not loaded completely, even though LOAD has been fired.\n * As a result, if loadEventEnd is populated, we can ignore eventListener and record the data directly.\n * On the other hand, if not, we have to use eventListener to initializes PerformanceObserver.\n * PerformanceObserver will act as a second check for the final load timings.\n */\n NavigationPlugin.prototype.onload = function () {\n var _this = this;\n if (this.enabled) {\n if (this.hasTheWindowLoadEventFired()) {\n window.performance\n .getEntriesByType(NAVIGATION)\n .filter(function (e) { return !_this.config.ignore(e); })\n .forEach(function (event) {\n return _this.performanceNavigationEventHandlerTimingLevel2(event);\n });\n }\n else {\n window.addEventListener(LOAD, this.eventListener);\n }\n }\n };\n return NavigationPlugin;\n}(InternalPlugin));\nexport { NavigationPlugin };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { InternalPlugin } from '../InternalPlugin';\nimport { getResourceFileType, isPutRumEventsCall, shuffle } from '../../utils/common-utils';\nimport { PERFORMANCE_RESOURCE_EVENT_TYPE } from '../utils/constant';\nimport { defaultPerformancePluginConfig } from '../utils/performance-utils';\nexport var RESOURCE_EVENT_PLUGIN_ID = 'resource';\nvar RESOURCE = 'resource';\n/**\n * This plugin records resource performance timing events generated during every page load/re-load.\n */\nvar ResourcePlugin = /** @class */ (function (_super) {\n __extends(ResourcePlugin, _super);\n function ResourcePlugin(config) {\n var _this = _super.call(this, RESOURCE_EVENT_PLUGIN_ID) || this;\n _this.performanceEntryHandler = function (list) {\n _this.recordPerformanceEntries(list.getEntries());\n };\n _this.recordPerformanceEntries = function (list) {\n var recordAll = [];\n var sample = [];\n list.filter(function (e) { return e.entryType === RESOURCE; })\n .filter(function (e) { return !_this.config.ignore(e); })\n .forEach(function (event) {\n var _a = event, name = _a.name, initiatorType = _a.initiatorType;\n var type = getResourceFileType(name, initiatorType);\n if (_this.config.recordAllTypes.includes(type)) {\n recordAll.push(event);\n }\n else if (_this.config.sampleTypes.includes(type)) {\n sample.push(event);\n }\n });\n // Record all events for resources in recordAllTypes\n recordAll.forEach(function (r) {\n return _this.recordResourceEvent(r);\n });\n // Record events from resources in sample until we hit the resource limit\n shuffle(sample);\n while (sample.length > 0 && _this.eventCount < _this.config.eventLimit) {\n _this.recordResourceEvent(sample.pop());\n _this.eventCount++;\n }\n };\n _this.recordResourceEvent = function (_a) {\n var _b;\n var name = _a.name, startTime = _a.startTime, initiatorType = _a.initiatorType, duration = _a.duration, transferSize = _a.transferSize;\n if (isPutRumEventsCall(name, _this.context.config.endpointUrl.hostname)) {\n // Ignore calls to PutRumEvents (i.e., the CloudWatch RUM data\n // plane), otherwise we end up in an infinite loop of recording\n // PutRumEvents.\n return;\n }\n if ((_b = _this.context) === null || _b === void 0 ? void 0 : _b.record) {\n var eventData = {\n version: '1.0.0',\n initiatorType: initiatorType,\n startTime: startTime,\n duration: duration,\n fileType: getResourceFileType(name, initiatorType),\n transferSize: transferSize\n };\n if (_this.context.config.recordResourceUrl) {\n eventData.targetUrl = name;\n }\n _this.context.record(PERFORMANCE_RESOURCE_EVENT_TYPE, eventData);\n }\n };\n _this.config = __assign(__assign({}, defaultPerformancePluginConfig), config);\n _this.eventCount = 0;\n _this.resourceObserver = new PerformanceObserver(_this.performanceEntryHandler);\n return _this;\n }\n ResourcePlugin.prototype.enable = function () {\n if (this.enabled) {\n return;\n }\n this.enabled = true;\n this.resourceObserver.observe({\n type: RESOURCE,\n buffered: true\n });\n };\n ResourcePlugin.prototype.disable = function () {\n if (!this.enabled) {\n return;\n }\n this.enabled = false;\n this.resourceObserver.disconnect();\n };\n ResourcePlugin.prototype.onload = function () {\n // We need to set `buffered: true`, so the observer also records past\n // resource entries. However, there is a limited buffer size, so we may\n // not be able to collect all resource entries.\n this.resourceObserver.observe({\n type: RESOURCE,\n buffered: true\n });\n };\n return ResourcePlugin;\n}(InternalPlugin));\nexport { ResourcePlugin };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { InternalPlugin } from '../InternalPlugin';\nimport { onCLS, onFID, onLCP } from 'web-vitals/attribution';\nimport { CLS_EVENT_TYPE, FID_EVENT_TYPE, LCP_EVENT_TYPE, PERFORMANCE_NAVIGATION_EVENT_TYPE, PERFORMANCE_RESOURCE_EVENT_TYPE } from '../utils/constant';\nimport { Topic } from '../../event-bus/EventBus';\nimport { ResourceType, performanceKey, isLCPSupported } from '../../utils/common-utils';\nexport var WEB_VITAL_EVENT_PLUGIN_ID = 'web-vitals';\nvar WebVitalsPlugin = /** @class */ (function (_super) {\n __extends(WebVitalsPlugin, _super);\n function WebVitalsPlugin() {\n var _this = _super.call(this, WEB_VITAL_EVENT_PLUGIN_ID) || this;\n _this.resourceEventIds = new Map();\n _this.cacheLCPCandidates = isLCPSupported();\n _this.handleEvent = function (event) {\n switch (event.type) {\n // lcp resource is either image or text\n case PERFORMANCE_RESOURCE_EVENT_TYPE:\n var details = event.details;\n if (_this.cacheLCPCandidates &&\n details.fileType === ResourceType.IMAGE) {\n _this.resourceEventIds.set(performanceKey(event.details), event.id);\n }\n break;\n case PERFORMANCE_NAVIGATION_EVENT_TYPE:\n _this.navigationEventId = event.id;\n break;\n }\n };\n return _this;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n WebVitalsPlugin.prototype.enable = function () { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n WebVitalsPlugin.prototype.disable = function () { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n WebVitalsPlugin.prototype.configure = function (config) { };\n WebVitalsPlugin.prototype.onload = function () {\n var _this = this;\n this.context.eventBus.subscribe(Topic.EVENT, this.handleEvent); // eslint-disable-line @typescript-eslint/unbound-method\n onLCP(function (metric) { return _this.handleLCP(metric); });\n onFID(function (metric) { return _this.handleFID(metric); });\n onCLS(function (metric) { return _this.handleCLS(metric); });\n };\n WebVitalsPlugin.prototype.handleLCP = function (metric) {\n var _a, _b;\n var a = metric.attribution;\n var attribution = {\n element: a.element,\n url: a.url,\n timeToFirstByte: a.timeToFirstByte,\n resourceLoadDelay: a.resourceLoadDelay,\n resourceLoadTime: a.resourceLoadTime,\n elementRenderDelay: a.elementRenderDelay\n };\n if (a.lcpResourceEntry) {\n var key = performanceKey(a.lcpResourceEntry);\n attribution.lcpResourceEntry = this.resourceEventIds.get(key);\n }\n if (this.navigationEventId) {\n attribution.navigationEntry = this.navigationEventId;\n }\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.record(LCP_EVENT_TYPE, {\n version: '1.0.0',\n value: metric.value,\n attribution: attribution\n });\n // teardown\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.eventBus.unsubscribe(Topic.EVENT, this.handleEvent); // eslint-disable-line\n this.resourceEventIds.clear();\n this.navigationEventId = undefined;\n };\n WebVitalsPlugin.prototype.handleCLS = function (metric) {\n var _a;\n var a = metric.attribution;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.record(CLS_EVENT_TYPE, {\n version: '1.0.0',\n value: metric.value,\n attribution: {\n largestShiftTarget: a.largestShiftTarget,\n largestShiftValue: a.largestShiftValue,\n largestShiftTime: a.largestShiftTime,\n loadState: a.loadState\n }\n });\n };\n WebVitalsPlugin.prototype.handleFID = function (metric) {\n var _a;\n var a = metric.attribution;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.record(FID_EVENT_TYPE, {\n version: '1.0.0',\n value: metric.value,\n attribution: {\n eventTarget: a.eventTarget,\n eventType: a.eventType,\n eventTime: a.eventTime,\n loadState: a.loadState\n }\n });\n };\n return WebVitalsPlugin;\n}(InternalPlugin));\nexport { WebVitalsPlugin };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar XhrError = /** @class */ (function (_super) {\n __extends(XhrError, _super);\n function XhrError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = 'XMLHttpRequest error';\n return _this;\n }\n return XhrError;\n}(Error));\nexport { XhrError };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { MonkeyPatched } from '../MonkeyPatched';\nimport { defaultConfig, epochTime, createXRayTraceEvent, getAmznTraceIdHeaderValue, X_AMZN_TRACE_ID, isUrlAllowed, createXRaySubsegment, requestInfoToHostname, is429, is4xx, is5xx, isTraceIdHeaderEnabled } from '../utils/http-utils';\nimport { XhrError } from '../../errors/XhrError';\nimport { HTTP_EVENT_TYPE, XRAY_TRACE_EVENT_TYPE } from '../utils/constant';\nimport { errorEventToJsErrorEvent } from '../utils/js-error-utils';\nexport var XHR_PLUGIN_ID = 'xhr';\n/**\n * A plugin which initiates and records AWS X-Ray traces for XML HTTP requests (XMLHttpRequest).\n *\n * The XMLHttpRequest API is monkey patched using shimmer so all calls to XMLHttpRequest are intercepted. Only calls\n * to URLs which are on the allowlist and are not on the denylist are traced and recorded.\n *\n * The XHR events we use (i.e., onload, onerror, onabort, ontimeout) are only\n * supported by newer browsers. If we want to support older browsers we will\n * need to detect older browsers and use the onreadystatechange event.\n *\n * For example, the following sequence events occur for each case:\n *\n * Case 1: Request succeeds events\n * -------------------------------\n * readystatechange (state = 1, status = 0)\n * loadstart\n * readystatechange (state = 2, status = 200)\n * readystatechange (state = 3, status = 200)\n * readystatechange (state = 4, status = 200)\n * load\n * loadend\n *\n * Case 2: Request fails because of invalid domain or CORS failure\n * -------------------------------\n * readystatechange (state = 1, status = 0)\n * loadstart\n * readystatechange (state = 4, status = 0)\n * error\n * loadend\n *\n * Case 3: Request fails because of timeout\n * -------------------------------\n * readystatechange (state = 1, status = 0)\n * loadstart\n * readystatechange (state = 4, status = 0)\n * timeout\n * loadend\n *\n * Case 4: Request is aborted\n * -------------------------------\n * readystatechange (state = 1, status = 0)\n * loadstart\n * readystatechange (state = 2, status = 200)\n * readystatechange (state = 3, status = 200)\n * readystatechange (state = 4, status = 0)\n * abort\n * loadend\n *\n * See\n * - https://xhr.spec.whatwg.org/#event-handlers.\n * - https://xhr.spec.whatwg.org/#events\n */\nvar XhrPlugin = /** @class */ (function (_super) {\n __extends(XhrPlugin, _super);\n function XhrPlugin(config) {\n var _this = _super.call(this, XHR_PLUGIN_ID) || this;\n _this.addXRayTraceIdHeader = function (url) {\n return isTraceIdHeaderEnabled(url, _this.config.addXRayTraceIdHeader);\n };\n _this.isTracingEnabled = function () {\n return _this.context.config.enableXRay;\n };\n _this.isSessionRecorded = function () {\n var _a;\n return ((_a = _this.context.getSession()) === null || _a === void 0 ? void 0 : _a.record) || false;\n };\n _this.handleXhrLoadEvent = function (e) {\n var xhr = e.target;\n var xhrDetails = _this.xhrMap.get(xhr);\n if (xhrDetails) {\n var endTime = epochTime();\n xhrDetails.trace.end_time = endTime;\n xhrDetails.trace.subsegments[0].end_time = endTime;\n xhrDetails.trace.subsegments[0].http.response = {\n status: xhr.status\n };\n if (is429(xhr.status)) {\n xhrDetails.trace.subsegments[0].throttle = true;\n xhrDetails.trace.throttle = true;\n }\n else if (is4xx(xhr.status)) {\n xhrDetails.trace.subsegments[0].error = true;\n xhrDetails.trace.error = true;\n }\n else if (is5xx(xhr.status)) {\n xhrDetails.trace.subsegments[0].fault = true;\n xhrDetails.trace.fault = true;\n }\n var clStr = xhr.getResponseHeader('Content-Length');\n var cl = clStr ? parseInt(clStr, 10) : NaN;\n if (!isNaN(cl)) {\n xhrDetails.trace.subsegments[0].http.response.content_length =\n cl;\n }\n _this.recordTraceEvent(xhrDetails.trace);\n _this.recordHttpEventWithResponse(xhrDetails, xhr);\n }\n };\n _this.handleXhrErrorEvent = function (e) {\n var xhr = e.target;\n var xhrDetails = _this.xhrMap.get(xhr);\n var errorName = 'XMLHttpRequest error';\n var errorMessage = xhr.statusText\n ? xhr.status.toString() + ': ' + xhr.statusText\n : xhr.status.toString();\n if (xhrDetails) {\n var endTime = epochTime();\n // Guidance from X-Ray documentation:\n // > Record errors in segments when your application returns an\n // > error to the user, and in subsegments when a downstream call\n // > returns an error.\n xhrDetails.trace.fault = true;\n xhrDetails.trace.end_time = endTime;\n xhrDetails.trace.subsegments[0].end_time = endTime;\n xhrDetails.trace.subsegments[0].fault = true;\n xhrDetails.trace.subsegments[0].cause = {\n exceptions: [\n {\n type: errorName,\n message: errorMessage\n }\n ]\n };\n _this.recordTraceEvent(xhrDetails.trace);\n _this.recordHttpEventWithError(xhrDetails, xhr, new XhrError(errorMessage));\n }\n };\n _this.handleXhrAbortEvent = function (e) {\n var xhr = e.target;\n var xhrDetails = _this.xhrMap.get(xhr);\n if (xhrDetails) {\n _this.handleXhrDetailsOnError(xhrDetails, xhr, 'XMLHttpRequest abort');\n }\n };\n _this.handleXhrTimeoutEvent = function (e) {\n var xhr = e.target;\n var xhrDetails = _this.xhrMap.get(xhr);\n var errorName = 'XMLHttpRequest timeout';\n _this.handleXhrDetailsOnError(xhrDetails, xhr, errorName);\n };\n _this.initializeTrace = function (xhrDetails) {\n var startTime = epochTime();\n xhrDetails.trace = createXRayTraceEvent(_this.config.logicalServiceName, startTime);\n xhrDetails.trace.subsegments.push(createXRaySubsegment(requestInfoToHostname(xhrDetails.url), startTime, {\n request: {\n method: xhrDetails.method,\n url: xhrDetails.url,\n traced: true\n }\n }));\n };\n _this.sendWrapper = function () {\n var self = _this;\n return function (original) {\n return function () {\n var xhrDetails = self.xhrMap.get(this);\n if (xhrDetails) {\n this.addEventListener('load', self.handleXhrLoadEvent);\n this.addEventListener('error', self.handleXhrErrorEvent);\n this.addEventListener('abort', self.handleXhrAbortEvent);\n this.addEventListener('timeout', self.handleXhrTimeoutEvent);\n self.initializeTrace(xhrDetails);\n if (!self.isSyntheticsUA &&\n self.isTracingEnabled() &&\n self.addXRayTraceIdHeader(xhrDetails.url) &&\n self.isSessionRecorded()) {\n this.setRequestHeader(X_AMZN_TRACE_ID, getAmznTraceIdHeaderValue(xhrDetails.trace.trace_id, xhrDetails.trace.subsegments[0].id));\n }\n }\n return original.apply(this, arguments);\n };\n };\n };\n _this.openWrapper = function () {\n var self = _this;\n return function (original) {\n return function (method, url, async) {\n if (isUrlAllowed(url, self.config)) {\n self.xhrMap.set(this, { url: url, method: method, async: async });\n }\n return original.apply(this, arguments);\n };\n };\n };\n _this.config = __assign(__assign({}, defaultConfig), config);\n _this.xhrMap = new Map();\n _this.isSyntheticsUA = navigator.userAgent.includes('CloudWatchSynthetics');\n return _this;\n }\n XhrPlugin.prototype.onload = function () {\n this.enable();\n };\n Object.defineProperty(XhrPlugin.prototype, \"patches\", {\n get: function () {\n return [\n {\n nodule: XMLHttpRequest.prototype,\n name: 'send',\n wrapper: this.sendWrapper\n },\n {\n nodule: XMLHttpRequest.prototype,\n name: 'open',\n wrapper: this.openWrapper\n }\n ];\n },\n enumerable: false,\n configurable: true\n });\n XhrPlugin.prototype.handleXhrDetailsOnError = function (xhrDetails, xhr, errorName) {\n if (xhrDetails) {\n var endTime = epochTime();\n xhrDetails.trace.end_time = endTime;\n xhrDetails.trace.subsegments[0].end_time = endTime;\n xhrDetails.trace.subsegments[0].error = true;\n xhrDetails.trace.subsegments[0].cause = {\n exceptions: [\n {\n type: errorName\n }\n ]\n };\n this.recordTraceEvent(xhrDetails.trace);\n this.recordHttpEventWithError(xhrDetails, xhr, errorName);\n }\n };\n XhrPlugin.prototype.statusOk = function (status) {\n return status >= 200 && status < 300;\n };\n XhrPlugin.prototype.recordHttpEventWithResponse = function (xhrDetails, xhr) {\n this.xhrMap.delete(xhr);\n var httpEvent = {\n version: '1.0.0',\n request: { method: xhrDetails.method, url: xhrDetails.url },\n response: { status: xhr.status, statusText: xhr.statusText }\n };\n if (this.isTracingEnabled()) {\n httpEvent.trace_id = xhrDetails.trace.trace_id;\n httpEvent.segment_id = xhrDetails.trace.subsegments[0].id;\n }\n if (this.config.recordAllRequests || !this.statusOk(xhr.status)) {\n this.context.record(HTTP_EVENT_TYPE, httpEvent);\n }\n };\n XhrPlugin.prototype.recordHttpEventWithError = function (xhrDetails, xhr, error) {\n this.xhrMap.delete(xhr);\n var httpEvent = {\n version: '1.0.0',\n request: { method: xhrDetails.method, url: xhrDetails.url },\n error: errorEventToJsErrorEvent({\n type: 'error',\n error: error\n }, this.config.stackTraceLength)\n };\n if (this.isTracingEnabled()) {\n httpEvent.trace_id = xhrDetails.trace.trace_id;\n httpEvent.segment_id = xhrDetails.trace.subsegments[0].id;\n }\n this.context.record(HTTP_EVENT_TYPE, httpEvent);\n };\n XhrPlugin.prototype.recordTraceEvent = function (trace) {\n if (!this.isSyntheticsUA &&\n this.isTracingEnabled() &&\n this.isSessionRecorded()) {\n this.context.record(XRAY_TRACE_EVENT_TYPE, trace);\n }\n };\n return XhrPlugin;\n}(MonkeyPatched));\nexport { XhrPlugin };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { MonkeyPatched } from '../MonkeyPatched';\nimport { defaultConfig, epochTime, createXRayTraceEvent, addAmznTraceIdHeaderToInit, createXRayTraceEventHttp, isUrlAllowed, createXRaySubsegment, requestInfoToHostname, addAmznTraceIdHeaderToHeaders, resourceToUrlString, is429, is4xx, is5xx, getTraceHeader, isTraceIdHeaderEnabled } from '../utils/http-utils';\nimport { HTTP_EVENT_TYPE, XRAY_TRACE_EVENT_TYPE } from '../utils/constant';\nimport { errorEventToJsErrorEvent, isErrorPrimitive } from '../utils/js-error-utils';\nexport var FETCH_PLUGIN_ID = 'fetch';\n/**\n * A plugin which initiates and records AWS X-Ray traces for fetch HTTP requests.\n *\n * The fetch API is monkey patched using shimmer so all calls to fetch are intercepted. Only calls to URLs which are\n * on the allowlist and are not on the denylist are traced and recorded.\n */\nvar FetchPlugin = /** @class */ (function (_super) {\n __extends(FetchPlugin, _super);\n function FetchPlugin(config) {\n var _this = _super.call(this, FETCH_PLUGIN_ID) || this;\n _this.isTracingEnabled = function () {\n return _this.context.config.enableXRay;\n };\n _this.isSessionRecorded = function () {\n var _a;\n return ((_a = _this.context.getSession()) === null || _a === void 0 ? void 0 : _a.record) || false;\n };\n _this.beginTrace = function (input, init, argsArray) {\n var startTime = epochTime();\n var http = createXRayTraceEventHttp(input, init, true);\n var xRayTraceEvent = createXRayTraceEvent(_this.config.logicalServiceName, startTime);\n var subsegment = createXRaySubsegment(requestInfoToHostname(input), startTime, http);\n xRayTraceEvent.subsegments.push(subsegment);\n if (_this.isTraceIdHeaderEnabled(input)) {\n _this.addXRayTraceIdHeader(input, init, argsArray, xRayTraceEvent);\n }\n return xRayTraceEvent;\n };\n _this.addXRayTraceIdHeader = function (input, init, argsArray, xRayTraceEvent) {\n if (input.headers) {\n return addAmznTraceIdHeaderToHeaders(input.headers, xRayTraceEvent.trace_id, xRayTraceEvent.subsegments[0].id);\n }\n if (!init) {\n init = {};\n [].push.call(argsArray, init);\n }\n addAmznTraceIdHeaderToInit(init, xRayTraceEvent.trace_id, xRayTraceEvent.subsegments[0].id);\n };\n _this.endTrace = function (xRayTraceEvent, response, error) {\n if (xRayTraceEvent) {\n var endTime = epochTime();\n xRayTraceEvent.subsegments[0].end_time = endTime;\n xRayTraceEvent.end_time = endTime;\n if (response) {\n xRayTraceEvent.subsegments[0].http.response = {\n status: response.status\n };\n if (is429(response.status)) {\n xRayTraceEvent.subsegments[0].throttle = true;\n xRayTraceEvent.throttle = true;\n }\n else if (is4xx(response.status)) {\n xRayTraceEvent.subsegments[0].error = true;\n xRayTraceEvent.error = true;\n }\n else if (is5xx(response.status)) {\n xRayTraceEvent.subsegments[0].fault = true;\n xRayTraceEvent.fault = true;\n }\n var clStr = response.headers.get('Content-Length');\n var cl = clStr ? parseInt(clStr, 10) : NaN;\n if (!isNaN(cl)) {\n xRayTraceEvent.subsegments[0].http.response.content_length =\n cl;\n }\n }\n if (error) {\n // Guidance from X-Ray documentation:\n // > Record errors in segments when your application returns an\n // > error to the user, and in subsegments when a downstream call\n // > returns an error.\n xRayTraceEvent.fault = true;\n xRayTraceEvent.subsegments[0].fault = true;\n if (error instanceof Object) {\n _this.appendErrorCauseFromObject(xRayTraceEvent.subsegments[0], error);\n }\n else if (isErrorPrimitive(error)) {\n _this.appendErrorCauseFromPrimitive(xRayTraceEvent.subsegments[0], error.toString());\n }\n }\n _this.context.record(XRAY_TRACE_EVENT_TYPE, xRayTraceEvent);\n }\n };\n _this.createHttpEvent = function (input, init) {\n var request = input;\n return {\n version: '1.0.0',\n request: {\n url: resourceToUrlString(input),\n method: (init === null || init === void 0 ? void 0 : init.method)\n ? init.method\n : request.method\n ? request.method\n : 'GET'\n }\n };\n };\n _this.recordHttpEventWithResponse = function (httpEvent, response) {\n if (_this.config.recordAllRequests || !response.ok) {\n httpEvent.response = {\n status: response.status,\n statusText: response.statusText\n };\n _this.context.record(HTTP_EVENT_TYPE, httpEvent);\n }\n };\n _this.recordHttpEventWithError = function (httpEvent, error) {\n httpEvent.error = errorEventToJsErrorEvent({\n type: 'error',\n error: error\n }, _this.config.stackTraceLength);\n _this.context.record(HTTP_EVENT_TYPE, httpEvent);\n };\n _this.fetch = function (original, thisArg, argsArray, input, init) {\n var httpEvent = _this.createHttpEvent(input, init);\n var trace;\n if (!isUrlAllowed(resourceToUrlString(input), _this.config)) {\n return original.apply(thisArg, argsArray);\n }\n var traceHeader = getTraceHeader(input.headers);\n if (traceHeader.traceId && traceHeader.segmentId) {\n httpEvent.trace_id = traceHeader.traceId;\n httpEvent.segment_id = traceHeader.segmentId;\n }\n else if (_this.isTracingEnabled() && _this.isSessionRecorded()) {\n trace = _this.beginTrace(input, init, argsArray);\n httpEvent.trace_id = trace.trace_id;\n httpEvent.segment_id = trace.subsegments[0].id;\n }\n return original\n .apply(thisArg, argsArray)\n .then(function (response) {\n _this.endTrace(trace, response, undefined);\n _this.recordHttpEventWithResponse(httpEvent, response);\n return response;\n })\n .catch(function (error) {\n _this.endTrace(trace, undefined, error);\n _this.recordHttpEventWithError(httpEvent, error);\n throw error;\n });\n };\n _this.fetchWrapper = function () {\n var self = _this;\n return function (original) {\n return function (input, init) {\n return self.fetch(original, this, arguments, input, init);\n };\n };\n };\n _this.config = __assign(__assign({}, defaultConfig), config);\n return _this;\n }\n Object.defineProperty(FetchPlugin.prototype, \"patches\", {\n get: function () {\n return [\n {\n nodule: window,\n name: 'fetch',\n wrapper: this.fetchWrapper\n }\n ];\n },\n enumerable: false,\n configurable: true\n });\n FetchPlugin.prototype.onload = function () {\n this.enable();\n };\n FetchPlugin.prototype.isTraceIdHeaderEnabled = function (input) {\n var url = resourceToUrlString(input);\n return isTraceIdHeaderEnabled(url, this.config.addXRayTraceIdHeader);\n };\n FetchPlugin.prototype.appendErrorCauseFromPrimitive = function (subsegment, error) {\n subsegment.cause = {\n exceptions: [\n {\n type: error\n }\n ]\n };\n };\n FetchPlugin.prototype.appendErrorCauseFromObject = function (subsegment, error) {\n subsegment.cause = {\n exceptions: [\n {\n type: error.name,\n message: error.message\n }\n ]\n };\n };\n return FetchPlugin;\n}(MonkeyPatched));\nexport { FetchPlugin };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PageIdFormatEnum } from '../../orchestration/Orchestration';\nimport { MonkeyPatched } from '../MonkeyPatched';\nexport var PAGE_EVENT_PLUGIN_ID = 'page-view';\n/**\n * A plugin which records page view transitions.\n *\n * When a session is initialized, the PageManager records the landing page. When\n * subsequent pages are viewed, this plugin updates the page.\n */\nvar PageViewPlugin = /** @class */ (function (_super) {\n __extends(PageViewPlugin, _super);\n function PageViewPlugin() {\n var _this = _super.call(this, PAGE_EVENT_PLUGIN_ID) || this;\n _this.pushState = function () {\n var self = _this;\n return function (original) {\n return function (data, title, url) {\n var retVal = original.apply(this, arguments);\n self.recordPageView();\n return retVal;\n };\n };\n };\n _this.replaceState = function () {\n var self = _this;\n return function (original) {\n return function (data, title, url) {\n var retVal = original.apply(this, arguments);\n self.recordPageView();\n return retVal;\n };\n };\n };\n _this.popstateListener = function (event) {\n _this.recordPageView();\n };\n _this.recordPageView = function () {\n _this.context.recordPageView(_this.createIdForCurrentPage());\n };\n _this.enable();\n return _this;\n }\n PageViewPlugin.prototype.onload = function () {\n this.addListener();\n this.recordPageView();\n };\n Object.defineProperty(PageViewPlugin.prototype, \"patches\", {\n get: function () {\n return [\n {\n nodule: History.prototype,\n name: 'pushState',\n wrapper: this.pushState\n },\n {\n nodule: History.prototype,\n name: 'replaceState',\n wrapper: this.replaceState\n }\n ];\n },\n enumerable: false,\n configurable: true\n });\n PageViewPlugin.prototype.addListener = function () {\n // popstate will fire under the following conditions:\n // (1) The history back, forward or go APIs are used\n // (2) The URI's fragment (hash) changes\n window.addEventListener('popstate', this.popstateListener);\n };\n PageViewPlugin.prototype.createIdForCurrentPage = function () {\n var path = window.location.pathname;\n var hash = window.location.hash;\n switch (this.context.config.pageIdFormat) {\n case PageIdFormatEnum.PathAndHash:\n if (path && hash) {\n return path + hash;\n }\n else if (path) {\n return path;\n }\n else if (hash) {\n return hash;\n }\n return '';\n case PageIdFormatEnum.Hash:\n return hash ? hash : '';\n case PageIdFormatEnum.Path:\n default:\n return path ? path : '';\n }\n };\n return PageViewPlugin;\n}(MonkeyPatched));\nexport { PageViewPlugin };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { BasicAuthentication } from '../dispatch/BasicAuthentication';\nimport { EnhancedAuthentication } from '../dispatch/EnhancedAuthentication';\nimport { PluginManager } from '../plugins/PluginManager';\nimport { DomEventPlugin, DOM_EVENT_PLUGIN_ID } from '../plugins/event-plugins/DomEventPlugin';\nimport { JsErrorPlugin, JS_ERROR_EVENT_PLUGIN_ID } from '../plugins/event-plugins/JsErrorPlugin';\nimport { EventCache } from '../event-cache/EventCache';\nimport { Dispatch } from '../dispatch/Dispatch';\nimport { NavigationPlugin } from '../plugins/event-plugins/NavigationPlugin';\nimport { ResourcePlugin } from '../plugins/event-plugins/ResourcePlugin';\nimport { WebVitalsPlugin } from '../plugins/event-plugins/WebVitalsPlugin';\nimport { XhrPlugin } from '../plugins/event-plugins/XhrPlugin';\nimport { FetchPlugin } from '../plugins/event-plugins/FetchPlugin';\nimport { PageViewPlugin } from '../plugins/event-plugins/PageViewPlugin';\nimport { INSTALL_MODULE } from '../utils/constants';\nimport EventBus from '../event-bus/EventBus';\nvar DEFAULT_REGION = 'us-west-2';\nvar DEFAULT_ENDPOINT = \"https://dataplane.rum.\".concat(DEFAULT_REGION, \".amazonaws.com\");\nexport var TelemetryEnum;\n(function (TelemetryEnum) {\n TelemetryEnum[\"Errors\"] = \"errors\";\n TelemetryEnum[\"Performance\"] = \"performance\";\n TelemetryEnum[\"Interaction\"] = \"interaction\";\n TelemetryEnum[\"Http\"] = \"http\";\n})(TelemetryEnum || (TelemetryEnum = {}));\nexport var PageIdFormatEnum;\n(function (PageIdFormatEnum) {\n PageIdFormatEnum[\"Path\"] = \"PATH\";\n PageIdFormatEnum[\"Hash\"] = \"HASH\";\n PageIdFormatEnum[\"PathAndHash\"] = \"PATH_AND_HASH\";\n})(PageIdFormatEnum || (PageIdFormatEnum = {}));\nexport var defaultCookieAttributes = function () {\n return {\n unique: false,\n domain: window.location.hostname,\n path: '/',\n sameSite: 'Strict',\n secure: true\n };\n};\nexport var defaultConfig = function (cookieAttributes) {\n return {\n allowCookies: false,\n batchLimit: 100,\n client: INSTALL_MODULE,\n cookieAttributes: cookieAttributes,\n disableAutoPageView: false,\n dispatchInterval: 5 * 1000,\n enableRumClient: true,\n enableXRay: false,\n endpoint: DEFAULT_ENDPOINT,\n endpointUrl: new URL(DEFAULT_ENDPOINT),\n eventCacheSize: 200,\n eventPluginsToLoad: [],\n pageIdFormat: PageIdFormatEnum.Path,\n pagesToExclude: [],\n pagesToInclude: [/.*/],\n signing: true,\n recordResourceUrl: true,\n retries: 2,\n routeChangeComplete: 100,\n routeChangeTimeout: 10000,\n sessionAttributes: {},\n sessionEventLimit: 200,\n sessionLengthSeconds: 60 * 30,\n sessionSampleRate: 1,\n telemetries: [],\n useBeacon: true,\n userIdRetentionDays: 30\n };\n};\n/**\n * An orchestrator which (1) initializes cwr components and (2) provides the API for the application to interact\n * with the RUM web client. Depending on how the RUM web client was loaded, this class may be called directly, or\n * indirectly through the CommandQueue:\n * - If the client was loaded by an HTML script tag, Orchestration is called indirectly through the CommandQueue.\n * - If the client was loaded as an NPM module, Orchestration is called directly by the application.\n */\nvar Orchestration = /** @class */ (function () {\n /**\n * Instantiate the CloudWatch RUM web client and begin monitoring the\n * application.\n *\n * This constructor may throw a TypeError if not correctly configured. In\n * production code, wrap calls to this constructor in a try/catch block so\n * that this does not impact the application.\n *\n * @param applicationId A globally unique identifier for the CloudWatch RUM\n * app monitor which monitors your application.\n * @param applicationVersion Your application's semantic version. If you do\n * not wish to use this field then add any placeholder, such as '0.0.0'.\n * @param region The AWS region of the app monitor. For example, 'us-east-1'\n * or 'eu-west-2'.\n * @param configCookieAttributes\n * @param partialConfig An application-specific configuration for the web\n * client.\n */\n function Orchestration(applicationId, applicationVersion, region, _a) {\n if (_a === void 0) { _a = {}; }\n var configCookieAttributes = _a.cookieAttributes, partialConfig = __rest(_a, [\"cookieAttributes\"]);\n this.eventBus = new EventBus();\n if (typeof region === 'undefined') {\n // Provide temporary backwards compatibility if the region was not provided by the loader. This will be\n // removed when internal users have migrated to the new signature.\n region = 'us-west-2';\n }\n var cookieAttributes = __assign(__assign({}, defaultCookieAttributes()), configCookieAttributes);\n this.config = __assign(__assign({ fetchFunction: fetch }, defaultConfig(cookieAttributes)), partialConfig);\n this.config.endpoint = this.getDataPlaneEndpoint(region, partialConfig);\n // If the URL is not formatted correctly, a TypeError will be thrown.\n // This breaks our convention to fail-safe here for the sake of\n // debugging. It is expected that the application has wrapped the call\n // to the constructor in a try/catch block, as is done in the example\n // code.\n this.config.endpointUrl = new URL(this.config.endpoint);\n this.eventCache = this.initEventCache(applicationId, applicationVersion);\n this.dispatchManager = this.initDispatch(region, applicationId);\n this.pluginManager = this.initPluginManager(applicationId, applicationVersion);\n if (this.config.enableRumClient) {\n this.enable();\n }\n else {\n this.disable();\n }\n }\n /**\n * Set the credential provider that will be used to authenticate with the\n * data plane service (AWS auth).\n *\n * @param credentials A provider of AWS credentials.\n */\n Orchestration.prototype.setAwsCredentials = function (credentials) {\n this.dispatchManager.setAwsCredentials(credentials);\n };\n /**\n * Set custom session attributes to add them to all event metadata.\n *\n * @param payload object containing custom attribute data in the form of key, value pairs\n */\n Orchestration.prototype.addSessionAttributes = function (sessionAttributes) {\n this.eventCache.addSessionAttributes(sessionAttributes);\n };\n /**\n * Add a telemetry plugin.\n *\n * @param plugin A plugin which adheres to the RUM web client's plugin interface.\n */\n Orchestration.prototype.addPlugin = function (plugin) {\n this.pluginManager.addPlugin(plugin);\n };\n /**\n * Force the client to immediately dispatch events to the collector.\n */\n Orchestration.prototype.dispatch = function () {\n this.dispatchManager.dispatchFetch();\n };\n /**\n * Force the client to immediately dispatch events to the collector using a beacon.\n */\n Orchestration.prototype.dispatchBeacon = function () {\n this.dispatchManager.dispatchBeacon();\n };\n /**\n * When enabled, the client records and dispatches events.\n */\n Orchestration.prototype.enable = function () {\n this.eventCache.enable();\n this.pluginManager.enable();\n this.dispatchManager.enable();\n };\n /**\n * When disabled, the client does not record or dispatch events.\n */\n Orchestration.prototype.disable = function () {\n this.dispatchManager.disable();\n this.pluginManager.disable();\n this.eventCache.disable();\n };\n /**\n * @param allow when {@code false}, the RUM web client will not store cookies or use localstorage.\n */\n Orchestration.prototype.allowCookies = function (allow) {\n this.config.allowCookies = allow;\n };\n /**\n * Update the current page the user is interacting with.\n *\n * @param payload Can be string or PageAttributes object\n * If string, payload is pageId (The unique ID for the page within the application).\n * If PageAttributes, payload contains pageId as well as page attributes to include in events with pageId\n */\n Orchestration.prototype.recordPageView = function (payload) {\n this.eventCache.recordPageView(payload);\n };\n /**\n * Record an error using the JS error plugin.\n *\n * @param error An ErrorEvent, Error or primitive.\n */\n Orchestration.prototype.recordError = function (error) {\n this.pluginManager.record(JS_ERROR_EVENT_PLUGIN_ID, error);\n };\n /**\n * Update DOM plugin to record the (additional) provided DOM events.\n *\n * @param events\n */\n Orchestration.prototype.registerDomEvents = function (events) {\n this.pluginManager.updatePlugin(DOM_EVENT_PLUGIN_ID, events);\n };\n /**\n * Records a custom event.\n *\n * @param type A unique name for the type of event being recorded.\n * @param eventData A JSON object containing the event's attributes.\n */\n Orchestration.prototype.recordEvent = function (eventType, eventData) {\n this.eventCache.recordEvent(eventType, eventData);\n };\n Orchestration.prototype.initEventCache = function (applicationId, applicationVersion) {\n return new EventCache({\n id: applicationId,\n version: applicationVersion\n }, this.config, this.eventBus);\n };\n Orchestration.prototype.initDispatch = function (region, applicationId) {\n var dispatch = new Dispatch(region, this.config.endpointUrl, this.eventCache, this.config);\n // Only retrieves and sets credentials if the session is sampled.\n // The nil session created during initialization will have the same sampling decision as\n // the new session created when the first event is recorded.\n if (!this.eventCache.isSessionSampled()) {\n return dispatch;\n }\n if (this.config.identityPoolId && this.config.guestRoleArn) {\n dispatch.setAwsCredentials(new BasicAuthentication(this.config, applicationId)\n .ChainAnonymousCredentialsProvider);\n }\n else if (this.config.identityPoolId) {\n dispatch.setAwsCredentials(new EnhancedAuthentication(this.config, applicationId)\n .ChainAnonymousCredentialsProvider);\n }\n return dispatch;\n };\n Orchestration.prototype.initPluginManager = function (applicationId, applicationVersion) {\n var BUILTIN_PLUGINS = this.constructBuiltinPlugins();\n var PLUGINS = __spreadArray(__spreadArray([], BUILTIN_PLUGINS, true), this.config.eventPluginsToLoad, true);\n var pluginContext = {\n applicationId: applicationId,\n applicationVersion: applicationVersion,\n config: this.config,\n record: this.eventCache.recordEvent,\n recordPageView: this.eventCache.recordPageView,\n getSession: this.eventCache.getSession,\n eventBus: this.eventBus\n };\n // Initialize PluginManager\n var pluginManager = new PluginManager(pluginContext);\n // Load page view plugin\n if (!this.config.disableAutoPageView) {\n pluginManager.addPlugin(new PageViewPlugin());\n }\n // Load plugins\n PLUGINS.forEach(function (p) {\n pluginManager.addPlugin(p);\n });\n return pluginManager;\n };\n Orchestration.prototype.constructBuiltinPlugins = function () {\n var plugins = [];\n var functor = this.telemetryFunctor();\n this.config.telemetries.forEach(function (type) {\n if (typeof type === 'string' && functor[type.toLowerCase()]) {\n plugins = __spreadArray(__spreadArray([], plugins, true), functor[type.toLowerCase()]({}), true);\n }\n else if (Array.isArray(type) &&\n functor[type[0].toLowerCase()]) {\n plugins = __spreadArray(__spreadArray([], plugins, true), functor[type[0].toLowerCase()](type[1]), true);\n }\n });\n return plugins;\n };\n Orchestration.prototype.getDataPlaneEndpoint = function (region, partialConfig) {\n return partialConfig.endpoint\n ? partialConfig.endpoint\n : DEFAULT_ENDPOINT.replace(DEFAULT_REGION, region);\n };\n /**\n * Returns a functor which maps data collection categories to\n * instantiated plugins.\n */\n Orchestration.prototype.telemetryFunctor = function () {\n var _a;\n return _a = {},\n _a[TelemetryEnum.Errors] = function (config) {\n return [new JsErrorPlugin(config)];\n },\n _a[TelemetryEnum.Performance] = function (config) {\n return [\n new NavigationPlugin(config),\n new ResourcePlugin(config),\n new WebVitalsPlugin()\n ];\n },\n _a[TelemetryEnum.Interaction] = function (config) {\n return [new DomEventPlugin(config)];\n },\n _a[TelemetryEnum.Http] = function (config) {\n return [new XhrPlugin(config), new FetchPlugin(config)];\n },\n _a;\n };\n return Orchestration;\n}());\nexport { Orchestration };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n","import { Amplify, CookieStorage, defaultStorage } from '@aws-amplify/core';\nimport { parseAmplifyConfig } from '@aws-amplify/core/internals/utils';\nimport { cognitoUserPoolsTokenProvider, cognitoCredentialsProvider } from '@aws-amplify/auth/cognito';\n\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst DefaultAmplify = {\n /**\n * Configures Amplify with the {@link resourceConfig} and {@link libraryOptions}.\n *\n * @param resourceConfig The {@link ResourcesConfig} object that is typically imported from the\n * `amplifyconfiguration.json` file. It can also be an object literal created inline when calling `Amplify.configure`.\n * @param libraryOptions The {@link LibraryOptions} additional options for the library.\n *\n * @example\n * import config from './amplifyconfiguration.json';\n *\n * Amplify.configure(config);\n */\n configure(resourceConfig, libraryOptions) {\n const resolvedResourceConfig = parseAmplifyConfig(resourceConfig);\n // If no Auth config is provided, no special handling will be required, configure as is.\n // Otherwise, we can assume an Auth config is provided from here on.\n if (!resolvedResourceConfig.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If Auth options are provided, always just configure as is.\n // Otherwise, we can assume no Auth libraryOptions were provided from here on.\n if (libraryOptions?.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If no Auth libraryOptions were previously configured, then always add default providers.\n if (!Amplify.libraryOptions.Auth) {\n cognitoUserPoolsTokenProvider.setAuthConfig(resolvedResourceConfig.Auth);\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions?.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n Amplify.configure(resolvedResourceConfig, {\n ...libraryOptions,\n Auth: {\n tokenProvider: cognitoUserPoolsTokenProvider,\n credentialsProvider: cognitoCredentialsProvider,\n },\n });\n return;\n }\n // At this point, Auth libraryOptions would have been previously configured and no overriding\n // Auth options were given, so we should preserve the currently configured Auth libraryOptions.\n if (libraryOptions) {\n // If ssr is provided through libraryOptions, we should respect the intentional reconfiguration.\n if (libraryOptions.ssr !== undefined) {\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n }\n Amplify.configure(resolvedResourceConfig, {\n Auth: Amplify.libraryOptions.Auth,\n ...libraryOptions,\n });\n return;\n }\n // Finally, if there were no libraryOptions given at all, we should simply not touch the currently\n // configured libraryOptions.\n Amplify.configure(resolvedResourceConfig);\n },\n /**\n * Returns the {@link ResourcesConfig} object passed in as the `resourceConfig` parameter when calling\n * `Amplify.configure`.\n *\n * @returns An {@link ResourcesConfig} object.\n */\n getConfig() {\n return Amplify.getConfig();\n },\n};\n\nexport { DefaultAmplify };\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","__generator","body","_","f","y","g","verb","n","v","op","responseToJson","response","_a","responseToString","__assign","t","s","i","p","METHOD","CONTENT_TYPE","PROTOCOL","ACTION","VERSION","StsClient","config","_this","request","requestObject","encodedBody","STSRequest","xmlResponse","e_1","CRED_KEY","IDENTITY_KEY","SESSION_COOKIE_NAME","USER_COOKIE_NAME","CRED_RENEW_MS","INSTALL_SCRIPT","INSTALL_MODULE","DEFAULT_PAGE_ATTRIBUTES","GET_ID_TARGET","GET_TOKEN_TARGET","GET_CREDENTIALS_TARGET","CognitoIdentityClient","getIdResponse","requestPayload","idRequest","getIdResponse_1","_b","tokenRequest","e_2","identityId","credentialRequest","AccessKeyId","Expiration","SecretKey","SessionToken","e_3","_c","r","target","payload","Authentication","applicationId","credentials","region","renewalTime","__extends","extendStatics","d","b","__","BasicAuthentication","_super","retries","getOpenIdTokenResponse","EnhancedAuthentication","UNKNOWN","RUM_AMZ_PREFIX","RUM_AWS_PREFIX","HTTP_EVENT_TYPE","XRAY_TRACE_EVENT_TYPE","LCP_EVENT_TYPE","FID_EVENT_TYPE","CLS_EVENT_TYPE","PERFORMANCE_NAVIGATION_EVENT_TYPE","PERFORMANCE_RESOURCE_EVENT_TYPE","DOM_EVENT_TYPE","JS_ERROR_EVENT_TYPE","PAGE_VIEW_EVENT_TYPE","SESSION_START_EVENT_TYPE","TIME_TO_INTERACTIVE_EVENT_TYPE","InternalPlugin","name","context","PluginManager","plugin","pluginId","updateWith","data","id","DOM_EVENT_PLUGIN_ID","defaultConfig","DomEventPlugin","event","elementInfo","events","domEvent","cssLocator","interactionId","eventData","eventType","eventListener","identifiedElementList","elementEventListenerList","cssLocatedElements","element","identifiedElement","elementEventListener","isObject","error","type","buildBaseJsErrorEvent","errorEvent","rumEvent","appendErrorPrimitiveDetails","appendErrorObjectDetails","stackTraceLength","isErrorPrimitive","errorEventToJsErrorEvent","JS_ERROR_EVENT_PLUGIN_ID","JsErrorPlugin","storeCookie","attributes","ttl","expires","cookie","getExpiryDate","removeCookie","getCookie","cookies","_i","cookies_1","split","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","arr","offset","stringify","uuid","v4","options","buf","rnds","NIL_UUID","DESKTOP_DEVICE_TYPE","WEB_PLATFORM_TYPE","RUM_SESSION_START","RUM_SESSION_EXPIRE","SessionManager","appMonitorDetails","record","pageManager","sessionAttributes","userId","session","ua","MonkeyPatched","wrap","shimmer","patch","unwrap","shouldPatch","VirtualPageLoadTimer","self","original","currTime","xhr","argsArray","input","init","item","page","virtualPageNavigationEvent","PageManager","pageId","currentPage","startTime","interactionTime","customPageAttributes","pageViewEvent","Topic","EventBus","topic","subscriber","list","message","list_1","webClientVersion","EventCache","applicationDetails","eventBus","metaData","partialEvent","rumEvents","location","exclude","re","include","SERVICE","CONTENT_TYPE_JSON","CONTENT_TYPE_TEXT","REQUEST_PRESIGN_ARGS","DataPlaneClient","putRumEventsRequest","httpResponse","contentType","serializedRequest","path","_d","_e","_f","serializeRequest","hashAndEncode","serializedRumEvents","serializeEvent","sha256","BeaconHttpHandler","queued","signedRequest","queryString","port","url","requestTimeout","timeoutInMs","timeoutError","FetchHttpHandler","fetchFunction","abortSignal","requestTimeoutInMs","abortError","method","requestOptions","fetchRequest","raceOfPromises","fetchHeaders","transformedHeaders","pair","hasReadableStream","holder","X_AMZN_TRACE_ID","isTraceIdHeaderEnabled","addXrayTraceIdHeader","matcher","is2xx","status","is4xx","is5xx","is429","isUrlAllowed","urlPattern","epochTime","createXRayTraceEventHttp","traced","http","resourceToUrlString","createXRayTraceEvent","traceEvent","generateSegmentId","generateTraceId","createXRaySubsegment","subsegment","requestInfoToHostname","addAmznTraceIdHeaderToInit","traceId","segmentId","getAmznTraceIdHeaderValue","addAmznTraceIdHeaderToHeaders","headers","getTraceHeader","traceHeader","headerComponents","resource","hexTime","guid","randomBytes","uint8ArrayToHexString","bytes","hexString","RetryHttpHandler","handler","backoff","retriesLeft","milliseconds","NO_CRED_MSG","Dispatch","endpoint","eventCache","request_1","credentialProvider","ResourceType","InitiatorType","performanceKey","details","extensions","shuffle","a","j","getResourceFileType","initiatorType","ext","filename","extension_1","httpStatusText","isLCPSupported","isFCPSupported","isLongTaskSupported","putRumEventsPattern","isPutRumEventsCall","endpointHost","defaultIgnore","entry","defaultPerformancePluginConfig","NAVIGATION_EVENT_PLUGIN_ID","NAVIGATION","LOAD","NavigationPlugin","navigationObserver","recordNavigation","entryData","origin","eventDataNavigationTimingLevel1","eventDataNavigationTimingLevel2","navData","RESOURCE_EVENT_PLUGIN_ID","RESOURCE","ResourcePlugin","recordAll","sample","duration","transferSize","WEB_VITAL_EVENT_PLUGIN_ID","WebVitalsPlugin","metric","attribution","key","XhrError","XHR_PLUGIN_ID","XhrPlugin","xhrDetails","endTime","clStr","cl","errorName","errorMessage","async","httpEvent","trace","FETCH_PLUGIN_ID","FetchPlugin","xRayTraceEvent","PAGE_EVENT_PLUGIN_ID","PageViewPlugin","title","retVal","hash","PageIdFormatEnum","__rest","__spreadArray","to","from","pack","l","ar","DEFAULT_REGION","DEFAULT_ENDPOINT","TelemetryEnum","defaultCookieAttributes","cookieAttributes","Orchestration","applicationVersion","configCookieAttributes","partialConfig","allow","dispatch","BUILTIN_PLUGINS","PLUGINS","pluginContext","pluginManager","plugins","functor","exports","constants_1","RawSha256","position","byteLength","bitsHashed","bufferView","undecoratedLength","out","buffer","state","state0","state1","state2","state3","state4","state5","state6","state7","u","t1_1","t2_1","t1","t2","tslib_1","RawSha256_1","util_1","Sha256","secret","inner","bufferFromSecret","outer","toHash","bufferHash","util_utf8_browser_1","fromUtf8","convertToBuffer","convertToBuffer_1","isEmptyData_1","numToUint8_1","uint32ArrayFrom_1","isEmptyData","numToUint8","num","uint32ArrayFrom","a_lookUpTable","return_array","a_index","DefaultAmplify","resourceConfig","libraryOptions","resolvedResourceConfig"],"sourceRoot":""}