{"version":3,"sources":["webpack:///D:/a/1/s/frontend/node_modules/crypto-js/core.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/Client.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack:///D:/a/1/s/frontend/node_modules/crypto-js/lib-typedarrays.js","webpack:///D:/a/1/s/frontend/node_modules/crypto-js/sha256.js","webpack:///D:/a/1/s/frontend/node_modules/crypto-js/hmac-sha256.js","webpack:///D:/a/1/s/frontend/node_modules/unfetch/dist/unfetch.module.js","webpack:///D:/a/1/s/frontend/node_modules/crypto-js/hmac.js","webpack:///D:/a/1/s/frontend/node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack:///D:/a/1/s/frontend/node_modules/crypto-js/enc-base64.js","webpack:///D:/a/1/s/frontend/node_modules/isomorphic-unfetch/browser.js","webpack:///D:/a/1/s/frontend/node_modules/js-cookie/src/js.cookie.js"],"names":["global","CryptoJS","module","exports","Math","undefined","crypto","window","self","globalThis","msCrypto","__webpack_require__","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","Error","create","Object","F","obj","subtype","prototype","C","C_lib","lib","Base","extend","overrides","this","mixIn","hasOwnProperty","init","$super","apply","arguments","instance","properties","propertyName","toString","clone","WordArray","words","sigBytes","length","encoder","Hex","stringify","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","i","thatByte","j","ceil","call","slice","random","nBytes","push","C_enc","enc","hexChars","bite","join","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","String","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","min","offset","_doProcessBlock","splice","C_algo","Hasher","cfg","_doReset","update","messageUpdate","finalize","hash","_doFinalize","_createHelper","hasher","message","_createHmacHelper","key","HMAC","algo","AuthenticationDetails","_ref","ValidationData","Username","Password","AuthParameters","ClientMetadata","validationData","authParameters","clientMetadata","username","password","_proto","getUsername","getPassword","getValidationData","getAuthParameters","getClientMetadata","dbits","WordArray_WordArray","hexStringify","BigInteger","BigInteger_BigInteger","a","b","fromString","nbi","inBrowser","navigator","appName","am","x","w","c","n","xl","xh","l","h","m","v","floor","DB","DM","DV","FV","pow","F1","F2","rr","vv","BI_RM","BI_RC","Array","int2char","charAt","intAt","s","nbv","r","fromInt","nbits","t","Montgomery","mp","invDigit","mpl","mph","um","mt2","buffer","from","convert","abs","dlShiftTo","divRemTo","compareTo","ZERO","subTo","revert","copyTo","reduce","u0","drShiftTo","mulTo","y","multiplyTo","sqrTo","squareTo","k","mi","sh","lShiftTo","bs","cbs","bm","ds","rShiftTo","q","pm","pt","ts","ms","nsh","ys","y0","yt","d1","d2","ONE","qd","addTo","negate","d","km","p","bitLength","mod","equals","add","subtract","multiply","divide","modPow","callback","z","g","k1","g2","is1","r2","result","HEX_MSB_REGEX","initN","AuthenticationHelper_AuthenticationHelper","AuthenticationHelper","PoolName","N","hexHash","padHex","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","poolName","getSmallAValue","_this","largeAValue","calculateA","hexRandom","generateRandomString","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","_this2","combinedString","hashedString","verifierDevicesNotPadded","_this3","A","calculateU","B","UHexHash","buf","str","core_default","hashHex","sha256_default","computehkdf","ikm","salt","infoBitsWordArray","ikmWordArray","saltWordArray","prk","hmac_sha256_default","hmac","getPasswordAuthenticationKey","serverBValue","_this4","UValue","usernamePassword","usernamePasswordHash","xValue","calculateS","sValue","hkdf","_this5","gModPowXN","err2","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","isNegative","test","invertedNibbles","split","map","invertedNibble","toUpperCase","startsWith","substring","CognitoJwtToken_CognitoJwtToken","CognitoJwtToken","token","jwtToken","payload","decodePayload","getJwtToken","getExpiration","exp","getIssuedAt","iat","JSON","_setPrototypeOf","o","setPrototypeOf","bind","__proto__","CognitoAccessToken","_CognitoJwtToken","subClass","superClass","_temp","AccessToken","constructor","CognitoIdToken_setPrototypeOf","CognitoIdToken","IdToken","CognitoRefreshToken","RefreshToken","getToken","CognitoUserSession","ClockDrift","idToken","refreshToken","accessToken","clockDrift","calculateClockDrift","getIdToken","getRefreshToken","getAccessToken","getClockDrift","Date","isValid","adjusted","monthNames","weekNames","DateHelper","getNowString","now","weekDay","getUTCDay","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","getUTCFullYear","CognitoUserAttribute","Name","Value","getValue","setValue","value","getName","setName","name","toJSON","dataMemory","MemoryStorage","setItem","getItem","removeItem","clear","StorageHelper","storageWindow","localStorage","exception","getStorage","userAgent","CognitoUser_CognitoUser","CognitoUser","Pool","pool","Session","client","signInUserSession","authenticationFlowType","storage","Storage","keyPrefix","getClientId","userDataKey","setSignInUserSession","clearCachedUserData","cacheTokens","getSignInUserSession","getAuthenticationFlowType","setAuthenticationFlowType","initiateAuth","authDetails","USERNAME","clientMetaData","keys","jsonReq","AuthFlow","ClientId","getUserContextData","UserContextData","request","onFailure","challengeName","ChallengeName","challengeParameters","ChallengeParameters","customChallenge","getCognitoUserSession","AuthenticationResult","onSuccess","authenticateUser","authenticateUserPlainUsernamePassword","authenticateUserDefaultAuth","authenticationHelper","getUserPoolName","dateHelper","deviceKey","DEVICE_KEY","errOnAValue","aValue","SRP_A","CHALLENGE_NAME","USER_ID_FOR_SRP","SRP_B","SALT","getCachedDeviceKeyAndPassword","errOnHkdf","dateNow","SECRET_BLOCK","signatureString","enc_base64_default","challengeResponses","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","jsonReqResp","ChallengeResponses","respondToAuthChallenge","challenge","challengeCallback","errChallenge","dataChallenge","code","toLowerCase","indexOf","clearCachedDeviceKeyAndPassword","errAuthenticate","dataAuthenticate","authenticateUserInternal","PASSWORD","authResult","mfaRequired","selectMFAType","mfaSetup","totpRequired","userAttributes","rawRequiredAttributes","requiredAttributes","userAttributesPrefix","newPasswordRequired","getDeviceResponse","newDeviceMetadata","NewDeviceMetadata","DeviceGroupKey","DeviceKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","DeviceSecretVerifierConfig","DeviceName","errConfirm","dataConfirm","cacheDeviceKeyAndPassword","UserConfirmationNecessary","completeNewPasswordChallenge","newPassword","requiredAttributeData","finalUserAttributes","forEach","NEW_PASSWORD","_this6","errAValue","errHkdf","confirmRegistration","confirmationCode","forceAliasCreation","ConfirmationCode","ForceAliasCreation","sendCustomChallengeAnswer","answerChallenge","_this7","ANSWER","sendMFACode","mfaType","_this8","SMS_MFA_CODE","mfaTypeSelection","SOFTWARE_TOKEN_MFA_CODE","changePassword","oldUserPassword","newUserPassword","PreviousPassword","ProposedPassword","enableMFA","mfaOptions","DeliveryMedium","AttributeName","MFAOptions","setUserMfaPreference","smsMfaSettings","softwareTokenMfaSettings","SMSMfaSettings","SoftwareTokenMfaSettings","disableMFA","deleteUser","_this9","clearCachedUser","updateAttributes","attributes","_this10","UserAttributes","getUserData","bypassCache","getUserAttributes","userData","attributeList","attribute","userAttribute","getMFAOptions","createGetUserRequest","promisifyRequest","refreshSessionIfPossible","options","_this11","Promise","resolve","refresh","refreshSession","params","_this12","getUserDataFromCache","isFetchUserDataAndTokenRequired","fetchUserData","then","_ref$bypassCache","_this13","cacheUserData","deleteAttributes","_this14","UserAttributeNames","resendConfirmationCode","getSession","idTokenKey","accessTokenKey","refreshTokenKey","clockDriftKey","cachedSession","_this15","wrappedCallback","wrapRefreshSessionCallback","REFRESH_TOKEN","lastUserKey","deviceKeyKey","authenticationResult","clearCachedTokens","randomPasswordKey","deviceGroupKeyKey","forgotPassword","inputVerificationCode","confirmPassword","getAttributeVerificationCode","attributeName","verifyAttribute","Code","getDevice","forgetSpecificDevice","forgetDevice","_this16","setDeviceStatusRemembered","DeviceRememberedStatus","setDeviceStatusNotRemembered","listDevices","limit","paginationToken","requestParams","Limit","PaginationToken","globalSignOut","_this17","signOut","revokeTokenCallback","_this18","error","_session","revokeTokens","cleanClientData","isSessionRevocable","revokeToken","origin_jti","_ref2","requestWithRetry","Token","sendMFASelectionAnswer","_this19","associateSoftwareToken","_this20","associateSecretCode","SecretCode","verifySoftwareToken","totpCode","friendlyDeviceName","_this21","UserCode","FriendlyDeviceName","errRespond","dataRespond","Platform","BASE_USER_AGENT","product","isReactNative","UserAgent","appendToCognitoUserAgent","content","includes","es_UserAgent","Client_inheritsLoose","Client_setPrototypeOf","_wrapNativeSuper","Class","_cache","Map","fn","Function","TypeError","has","get","set","Wrapper","_construct","_getPrototypeOf","enumerable","writable","configurable","Parent","args","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","getPrototypeOf","CognitoError","_Error","statusCode","Client_Client","Client","region","endpoint","fetchOptions","credentials","operation","reject","functionToRetry","maxDelayMs","MAX_DELAY_MS","retry","delayFn","attempt","logger","debug","isNonRetryableError","retryIn","res","setTimeout","delay","jitteredBackoff","jitteredExponentialRetry","rej","response","headers","Content-Type","X-Amz-Target","X-Amz-User-Agent","Cache-Control","assign","method","mode","body","fetch","resp","json","ok","__type","pop","Message","status","ex","USER_POOL_ID_MAX_LENGTH","CognitoUserPool_CognitoUserPool","CognitoUserPool","UserPoolId","AdvancedSecurityDataCollectionFlag","userPoolId","clientId","advancedSecurityDataCollectionFlag","getUserPoolId","signUp","cognitoUser","returnData","user","userConfirmed","UserConfirmed","userSub","UserSub","codeDeliveryDetails","CodeDeliveryDetails","getCurrentUser","lastAuthUser","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","EncodedData","CookieStorage_CookieStorage","CookieStorage","domain","path","expires","secure","sameSite","js_cookie","cookies","numKeys","index","ArrayBuffer","superInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","byteOffset","byteLength","typedArrayByteLength","H","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","W","SHA256","_hash","M","f","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","t1","nBitsTotal","nBitsLeft","HmacSHA256","__webpack_exports__","XMLHttpRequest","u","statusText","url","responseURL","text","responseText","blob","Blob","entries","open","onload","getAllResponseHeaders","replace","onerror","withCredentials","setRequestHeader","send","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","Base64","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","bitsCombined","parseLoop","default","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","OldCookies","Cookies","api","noConflict","decode","converter","document","defaults","toUTCString","write","stringifiedAttributes","cookie","jar","parts","read","getJSON","remove","withConverter"],"mappings":"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","file":"vendors~page-6~page-7~widget-14~widget-15~widget-16~widget-21~widget-5.b9f88d4cffa17521b332.js","sourcesContent":[";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar AuthenticationDetails = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationDetails object\n * @param {object=} data Creation options.\n * @param {string} data.Username User being authenticated.\n * @param {string} data.Password Plain-text password to authenticate with.\n * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n */\n function AuthenticationDetails(data) {\n var _ref = data || {},\n ValidationData = _ref.ValidationData,\n Username = _ref.Username,\n Password = _ref.Password,\n AuthParameters = _ref.AuthParameters,\n ClientMetadata = _ref.ClientMetadata;\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n var _proto = AuthenticationDetails.prototype;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */;\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */;\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */;\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */;\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n return AuthenticationDetails;\n}();\nexport { AuthenticationDetails as default };","import cryptoSecureRandomInt from './cryptoSecureRandomInt';\n\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n var _proto = WordArray.prototype;\n _proto.random = function random(nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n };\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n return WordArray;\n}();\nexport { WordArray as default };","// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n\nexport default BigInteger;\n\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\n// Digit conversions\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n var i = s.length,\n mi = false,\n sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB) sh -= this.DB;\n }\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return '-' + this.negate().toString(b);\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n var km = (1 << k) - 1,\n d,\n m = false,\n r = '',\n i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0) return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0) return this.s < 0 ? -r : r;\n while (--i >= 0) if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i) r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB),\n c = this.s << bs & this.DM,\n i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(),\n ts = this.s,\n ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt,\n d2 = (1 << this.F1) / yt,\n e = 1 << this.F2;\n var i = r.t,\n j = i - ys,\n t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys) y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n return r;\n}\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0;\n var x = this[0];\n if ((x & 1) == 0) return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(),\n k,\n r = nbv(1),\n z = new Montgomery(m);\n if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6;\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1,\n w,\n is1 = true,\n r2 = nbi(),\n t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) z.sqrTo(r, r2);else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport SHA256 from 'crypto-js/sha256';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport WordArray from './utils/WordArray';\n\n/**\n * Returns a Buffer with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Buffer} fixed-length sequence of random bytes\n */\n\nfunction randomBytes(nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n}\nimport BigInteger from './BigInteger';\n\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nvar HEX_MSB_REGEX = /^[89a-f]/i;\nvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nvar AuthenticationHelper = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n function AuthenticationHelper(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(\"\" + this.padHex(this.N) + this.padHex(this.g)), 16);\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(function () {});\n this.infoBits = Buffer.from('Caldera Derived Key', 'utf8');\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n var _proto = AuthenticationHelper.prototype;\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */;\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, function (err, largeAValue) {\n if (err) {\n callback(err, null);\n }\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */;\n _proto.generateRandomSmallA = function generateRandomSmallA() {\n // This will be interpreted as a postive 128-bit integer\n var hexRandom = randomBytes(128).toString('hex');\n var randomBigInt = new BigInteger(hexRandom, 16);\n\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n\n return randomBigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */;\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */;\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */;\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */;\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\n }\n\n /**\n * Generate salts and compute verifier.\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n * @param {nodeCallback} callback Called with (err, null)\n * @returns {void}\n */;\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n this.randomPassword = this.generateRandomString();\n var combinedString = \"\" + deviceGroupKey + username + \":\" + this.randomPassword;\n var hashedString = this.hash(combinedString);\n var hexRandom = randomBytes(16).toString('hex');\n\n // The random hex will be unambiguously represented as a postive integer\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n this.g.modPow(new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n if (err) {\n callback(err, null);\n }\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\n }\n\n /**\n * Calculate the client's public value A = g^a%N\n * with the generated random number a\n * @param {BigInteger} a Randomly generated small A.\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */;\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\n if (A.mod(_this3.N).equals(BigInteger.ZERO)) {\n callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n }\n callback(null, A);\n });\n }\n\n /**\n * Calculate the client's value U which is the hash of A and B\n * @param {BigInteger} A Large A value.\n * @param {BigInteger} B Server B value.\n * @returns {BigInteger} Computed U value.\n * @private\n */;\n _proto.calculateU = function calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n var finalU = new BigInteger(this.UHexHash, 16);\n return finalU;\n }\n\n /**\n * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hash = function hash(buf) {\n var str = buf instanceof Buffer ? CryptoJS.lib.WordArray.create(buf) : buf;\n var hashHex = SHA256(str).toString();\n return new Array(64 - hashHex.length).join('0') + hashHex;\n }\n\n /**\n * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\n }\n\n /**\n * Standard hkdf algorithm\n * @param {Buffer} ikm Input key material.\n * @param {Buffer} salt Salt value.\n * @returns {Buffer} Strong key material.\n * @private\n */;\n _proto.computehkdf = function computehkdf(ikm, salt) {\n var infoBitsWordArray = CryptoJS.lib.WordArray.create(Buffer.concat([this.infoBits, Buffer.from(String.fromCharCode(1), 'utf8')]));\n var ikmWordArray = ikm instanceof Buffer ? CryptoJS.lib.WordArray.create(ikm) : ikm;\n var saltWordArray = salt instanceof Buffer ? CryptoJS.lib.WordArray.create(salt) : salt;\n var prk = HmacSHA256(ikmWordArray, saltWordArray);\n var hmac = HmacSHA256(infoBitsWordArray, prk);\n return Buffer.from(hmac.toString(), 'hex').slice(0, 16);\n }\n\n /**\n * Calculates the final hkdf based on computed S value, and computed U value and the key\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {BigInteger} serverBValue Server B value.\n * @param {BigInteger} salt Generated salt.\n * @param {nodeCallback} callback Called with (err, hkdfValue)\n * @returns {void}\n */;\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n var usernamePassword = \"\" + this.poolName + username + \":\" + password;\n var usernamePasswordHash = this.hash(usernamePassword);\n var xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, function (err, sValue) {\n if (err) {\n callback(err, null);\n }\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n callback(null, hkdf);\n });\n }\n\n /**\n * Calculates the S value used in getPasswordAuthenticationKey\n * @param {BigInteger} xValue Salted password hash value.\n * @param {BigInteger} serverBValue Server B value.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\n var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n if (err2) {\n callback(err2, null);\n }\n callback(null, result.mod(_this5.N));\n });\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */;\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {BigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */;\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n\n /* Get a hex string for abs(bigInt) */\n var hexStr = bigInt.abs().toString(16);\n\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n var invertedNibbles = hexStr.split('').map(function (x) {\n var invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n }).join('');\n\n /* After flipping the bits, add one to get the 2's complement representation */\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n \t\tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n \t\tThis only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n };\n return AuthenticationHelper;\n}();\nexport { AuthenticationHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\n\n/** @class */\nvar CognitoJwtToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n function CognitoJwtToken(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoJwtToken.prototype;\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */;\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */;\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */;\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n return CognitoJwtToken;\n}();\nexport { CognitoJwtToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoAccessToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n return CognitoAccessToken;\n}(CognitoJwtToken);\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoIdToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n return CognitoIdToken;\n}(CognitoJwtToken);\nexport { CognitoIdToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoRefreshToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n function CognitoRefreshToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n RefreshToken = _ref.RefreshToken;\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoRefreshToken.prototype;\n _proto.getToken = function getToken() {\n return this.token;\n };\n return CognitoRefreshToken;\n}();\nexport { CognitoRefreshToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserSession = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserSession object\n * @param {CognitoIdToken} IdToken The session's Id token.\n * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n * @param {CognitoAccessToken} AccessToken The session's access token.\n * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n */\n function CognitoUserSession(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken,\n RefreshToken = _ref.RefreshToken,\n AccessToken = _ref.AccessToken,\n ClockDrift = _ref.ClockDrift;\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n var _proto = CognitoUserSession.prototype;\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */;\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */;\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */;\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */;\n _proto.calculateClockDrift = function calculateClockDrift() {\n var now = Math.floor(new Date() / 1000);\n var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n return now - iat;\n }\n\n /**\n * Checks to see if the session is still valid based on session expiry information found\n * in tokens and the current time (adjusted with clock drift)\n * @returns {boolean} if the session is still valid\n */;\n _proto.isValid = function isValid() {\n var now = Math.floor(new Date() / 1000);\n var adjusted = now - this.clockDrift;\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n };\n return CognitoUserSession;\n}();\nexport { CognitoUserSession as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n var _proto = DateHelper.prototype;\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n _proto.getNowString = function getNowString() {\n var now = new Date();\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n var year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n return DateHelper;\n}();\nexport { DateHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserAttribute = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserAttribute object\n * @param {string=} Name The record's name\n * @param {string=} Value The record's value\n */\n function CognitoUserAttribute(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n Name = _ref.Name,\n Value = _ref.Value;\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n var _proto = CognitoUserAttribute.prototype;\n _proto.getValue = function getValue() {\n return this.Value;\n }\n\n /**\n * Sets the record's value.\n * @param {string} value The new value.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */;\n _proto.getName = function getName() {\n return this.Name;\n }\n\n /**\n * Sets the record's name\n * @param {string} name The new name.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */;\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */;\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n return CognitoUserAttribute;\n}();\nexport { CognitoUserAttribute as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar dataMemory = {};\n\n/** @class */\nexport var MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {}\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n MemoryStorage.getItem = function getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {boolean} return true\n */;\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */;\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}();\n\n/** @class */\nvar StorageHelper = /*#__PURE__*/function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.cognito.test-ls', 1);\n this.storageWindow.removeItem('aws.cognito.test-ls');\n } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n var _proto = StorageHelper.prototype;\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n return StorageHelper;\n}();\nexport { StorageHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport TypedArrays from 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport Base64 from 'crypto-js/enc-base64';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\nvar isBrowser = typeof navigator !== 'undefined';\nvar userAgent = isBrowser ? navigator.userAgent : 'nodejs';\n\n/** @class */\nvar CognitoUser = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n function CognitoUser(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and Pool information are required.');\n }\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n this.client = data.Pool.client;\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n this.storage = data.Storage || new StorageHelper().getStorage();\n this.keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n this.userDataKey = this.keyPrefix + \".\" + this.username + \".userData\";\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n var _proto = CognitoUser.prototype;\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */;\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */;\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */;\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n var authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n _this.cacheTokens();\n return callback.onSuccess(_this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user.\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUser = function authenticateUser(authDetails, callback) {\n if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') {\n return this.authenticateUserPlainUsernamePassword(authDetails, callback);\n } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') {\n return this.authenticateUserDefaultAuth(authDetails, callback);\n }\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * It calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: _this2.authenticationFlowType,\n ClientId: _this2.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n _this2.username = challengeParameters.USER_ID_FOR_SRP;\n _this2.userDataKey = _this2.keyPrefix + \".\" + _this2.username + \".userData\";\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n _this2.getCachedDeviceKeyAndPassword();\n authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this2.pool.getUserPoolName(), 'utf8'), Buffer.from(_this2.username, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this2.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\n var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n _this2.deviceKey = null;\n _this2.randomPassword = null;\n _this2.deviceGroupKey = null;\n _this2.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n };\n var jsonReqResp = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: _this2.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {AuthenticationDetails} authDetails Contains the authentication data.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n }\n // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */;\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n var userAttributes = null;\n var rawRequiredAttributes = null;\n var requiredAttributes = [];\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n _this4.randomPassword = authenticationHelper.getRandomPassword();\n _this4.client.request('ConfirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this4.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this4.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n var jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n * @private\n */;\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n var authenticationHelper = new AuthenticationHelper(this.deviceGroupKey);\n var dateHelper = new DateHelper();\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n var jsonReq = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: authParameters,\n ClientMetadata: clientMetadata,\n Session: _this6.Session\n };\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n var serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n var salt = new BigInteger(challengeParameters.SALT, 16);\n authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this6.deviceGroupKey, 'utf8'), Buffer.from(_this6.deviceKey, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this6.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = _this6.deviceKey;\n var jsonReqResp = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session\n };\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this6.cacheTokens();\n return callback.onSuccess(_this6.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challenge answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n return undefined;\n }\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this8.cacheTokens();\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolName());\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n _this8.randomPassword = authenticationHelper.getRandomPassword();\n _this8.client.request('ConfirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this8.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this8.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('ChangePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.enableMFA = function enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n var mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number'\n };\n mfaOptions.push(mfaEnabled);\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @param {IMfaSettings} smsMfaSettings the sms mfa settings\n * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('SetUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.disableMFA = function disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete itself\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n _this9.clearCachedUser();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('UpdateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getUserAttributes = function getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n var attributeList = [];\n for (var i = 0; i < userData.UserAttributes.length; i++) {\n var attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n return callback(null, attributeList);\n });\n return undefined;\n }\n\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getMFAOptions = function getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n if (options === void 0) {\n options = {};\n }\n // best effort, if not possible\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\n }\n });\n }\n\n /**\n * @typedef {Object} GetUserDataOptions\n * @property {boolean} bypassCache - force getting data from Cognito service\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used by an authenticated users to get the userData\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetUserDataOptions} params\n * @returns {void}\n */;\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n var userData = this.getUserDataFromCache();\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n if (this.isFetchUserDataAndTokenRequired(params)) {\n this.fetchUserData().then(function (data) {\n return _this12.refreshSessionIfPossible(params).then(function () {\n return data;\n });\n }).then(function (data) {\n return callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n try {\n callback(null, JSON.parse(userData));\n return;\n } catch (err) {\n this.clearCachedUserData();\n callback(err, null);\n return;\n }\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) {\n var _ref = params || {},\n _ref$bypassCache = _ref.bypassCache,\n bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache;\n return bypassCache;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n return data;\n });\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n this.client.request('ResendConfirmationCode', jsonReq, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * @typedef {Object} GetSessionOptions\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetSessionOptions} options\n * @returns {void}\n */;\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var idTokenKey = keyPrefix + \".idToken\";\n var accessTokenKey = keyPrefix + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".clockDrift\";\n if (this.storage.getItem(idTokenKey)) {\n var idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey)\n });\n var accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey)\n });\n var refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey)\n });\n var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift\n };\n var cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n this.refreshSession(refreshToken, callback, options.clientMetadata);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n return undefined;\n }\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n var wrappedCallback = this.pool.wrapRefreshSessionCallback ? this.pool.wrapRefreshSessionCallback(callback) : callback;\n var authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n var deviceKeyKey = keyPrefix + \".\" + this.username + \".deviceKey\";\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n return wrappedCallback(err, null);\n }\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n _this15.cacheTokens();\n return wrappedCallback(null, _this15.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */;\n _proto.cacheTokens = function cacheTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, \"\" + this.signInUserSession.getClockDrift());\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is to cache user data\n */;\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n\n /**\n * This is to remove cached user data\n */;\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n };\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */;\n _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */;\n _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */;\n _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */;\n _proto.clearCachedTokens = function clearCachedTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n this.storage.removeItem(clockDriftKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */;\n _proto.getCognitoUserSession = function getCognitoUserSession(authResult) {\n var idToken = new CognitoIdToken(authResult);\n var accessToken = new CognitoAccessToken(authResult);\n var refreshToken = new CognitoRefreshToken(authResult);\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken\n };\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.forgotPassword = function forgotPassword(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('VerifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */;\n _proto.getDevice = function getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('ForgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: function onSuccess(result) {\n _this16.deviceKey = null;\n _this16.deviceGroupKey = null;\n _this16.randomPassword = null;\n _this16.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n }\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string | null} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */;\n _proto.listDevices = function listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GlobalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n _this17.clearCachedUser();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */;\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this;\n // If tokens won't be revoked, we just clean the client data.\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n revokeTokenCallback(err);\n });\n });\n };\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n var tokensToBeRevoked = [];\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n return revokeTokenCallback(_error);\n }\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n revokeTokenCallback();\n };\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload2 = token.decodePayload(),\n origin_jti = _token$decodePayload2.origin_jti;\n return !!origin_jti;\n } catch (err) {\n // Nothing to do, token doesnt have origin_jti claim\n }\n }\n return false;\n };\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\n _proto.revokeToken = function revokeToken(_ref2) {\n var token = _ref2.token,\n callback = _ref2.callback;\n this.client.requestWithRetry('RevokeToken', {\n Token: token,\n ClientId: this.pool.getClientId()\n }, function (err) {\n if (err) {\n return callback(err);\n }\n callback();\n });\n }\n\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this19.Session = data.Session;\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n return undefined;\n });\n }\n\n /**\n * This returns the user context data for advanced security feature.\n * @returns {string} the user context data from CognitoUserPool\n */;\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('AssociateSoftwareToken', {\n Session: this.Session\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this20.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.request('AssociateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('VerifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this21.Session = data.Session;\n var challengeResponses = {};\n challengeResponses.USERNAME = _this21.username;\n var jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ClientId: _this21.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: _this21.Session\n };\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n _this21.cacheTokens();\n return callback.onSuccess(_this21.signInUserSession);\n });\n return undefined;\n });\n } else {\n this.client.request('VerifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n }\n };\n return CognitoUser;\n}();\nexport { CognitoUser as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n\n/**\n * @deprecated use named import\n */\nexport default Platform;","import { getUserAgent } from \"./Platform\";\n// constructor\nfunction UserAgent() {}\n// public\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n};\n\n// class for defining the amzn user-agent\nexport default UserAgent;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n function CognitoError(message, code, name, statusCode) {\n var _this;\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\nvar Client = /*#__PURE__*/function () {\n /**\n * Constructs a new AWS Cognito Identity Provider client object\n * @param {string} region AWS region\n * @param {string} endpoint endpoint\n * @param {object} fetchOptions options for fetch API (only credentials is supported)\n */\n function Client(region, endpoint, fetchOptions) {\n this.endpoint = endpoint || \"https://cognito-idp.\" + region + \".amazonaws.com/\";\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n this.fetchOptions = credentials ? {\n credentials: credentials\n } : {};\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @returns Promise\n */\n var _proto = Client.prototype;\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.request(operation, params, function (err, data) {\n if (err) {\n reject(new CognitoError(err.message, err.code, err.name, err.statusCode));\n } else {\n resolve(data);\n }\n });\n });\n };\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n var MAX_DELAY_IN_MILLIS = 5 * 1000;\n jitteredExponentialRetry(function (p) {\n return new Promise(function (res, rej) {\n _this3.request(operation, p, function (error, result) {\n if (error) {\n rej(error);\n } else {\n res(result);\n }\n });\n });\n }, [params], MAX_DELAY_IN_MILLIS).then(function (result) {\n return callback(null, result);\n })[\"catch\"](function (error) {\n return callback(error);\n });\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @param {function} callback Callback called when a response is returned\n * @returns {void}\n */;\n _proto.request = function request(operation, params, callback) {\n var headers = {\n 'Content-Type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': \"AWSCognitoIdentityProviderService.\" + operation,\n 'X-Amz-User-Agent': UserAgent.prototype.userAgent,\n 'Cache-Control': 'no-store'\n };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(params)\n });\n var response;\n var responseJsonData;\n fetch(this.endpoint, options).then(function (resp) {\n response = resp;\n return resp;\n }, function (err) {\n // If error happens here, the request failed\n // if it is TypeError throw network error\n if (err instanceof TypeError) {\n throw new Error('Network error');\n }\n throw err;\n }).then(function (resp) {\n return resp.json()[\"catch\"](function () {\n return {};\n });\n }).then(function (data) {\n // return parsed body stream\n if (response.ok) return callback(null, data);\n responseJsonData = data;\n\n // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n var code = (data.__type || data.code).split('#').pop();\n var error = new Error(data.message || data.Message || null);\n error.name = code;\n error.code = code;\n return callback(error);\n })[\"catch\"](function (err) {\n // first check if we have a service error\n if (response && response.headers && response.headers.get('x-amzn-errortype')) {\n try {\n var code = response.headers.get('x-amzn-errortype').split(':')[0];\n var error = new Error(response.status ? response.status.toString() : null);\n error.code = code;\n error.name = code;\n error.statusCode = response.status;\n return callback(error);\n } catch (ex) {\n return callback(err);\n }\n // otherwise check if error is Network error\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n return callback(err);\n });\n };\n return Client;\n}();\nexport { Client as default };\nvar logger = {\n debug: function debug() {\n // Intentionally blank. This package doesn't have logging\n }\n};\n\n/**\n * For now, all errors are retryable.\n */\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n function NonRetryableError(message) {\n var _this4;\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with args: \" + JSON.stringify(args));\n return functionToRetry.apply(void 0, args)[\"catch\"](function (err) {\n logger.debug(\"error on \" + functionToRetry.name, err);\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n if (retryIn !== false) {\n return new Promise(function (res) {\n return setTimeout(res, retryIn);\n }).then(function () {\n return retry(functionToRetry, args, delayFn, attempt + 1);\n });\n } else {\n throw err;\n }\n });\n}\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n\n/** @class */\nvar CognitoUserPool = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserPool object\n * @param {object} data Creation options.\n * @param {string} data.UserPoolId Cognito user pool id.\n * @param {string} data.ClientId User pool application client id.\n * @param {string} data.endpoint Optional custom service endpoint.\n * @param {object} data.fetchOptions Optional options for fetch API.\n * (only credentials option is supported)\n * @param {object} data.Storage Optional storage object.\n * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n * boolean flag indicating if the data collection is enabled\n * to support cognito advanced security features. By default, this\n * flag is set to true.\n */\n function CognitoUserPool(data, wrapRefreshSessionCallback) {\n var _ref = data || {},\n UserPoolId = _ref.UserPoolId,\n ClientId = _ref.ClientId,\n endpoint = _ref.endpoint,\n fetchOptions = _ref.fetchOptions,\n AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (UserPoolId.length > USER_POOL_ID_MAX_LENGTH || !/^[\\w-]+_[0-9a-zA-Z]+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n\n /**\n * @returns {string} the user pool id\n */\n var _proto = CognitoUserPool.prototype;\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the user pool name\n */;\n _proto.getUserPoolName = function getUserPoolName() {\n return this.getUserPoolId().split('_')[1];\n }\n\n /**\n * @returns {string} the client id\n */;\n _proto.getClientId = function getClientId() {\n return this.clientId;\n }\n\n /**\n * @typedef {object} SignUpResult\n * @property {CognitoUser} user New user.\n * @property {bool} userConfirmed If the user is already confirmed.\n */\n /**\n * method for signing up a user\n * @param {string} username User's username.\n * @param {string} password Plain-text initial password entered by user.\n * @param {(AttributeArg[])=} userAttributes New user attributes.\n * @param {(AttributeArg[])=} validationData Application metadata.\n * @param {(AttributeArg[])=} clientMetadata Client metadata.\n * @param {nodeCallback} callback Called on error or with the new user.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\n var cognitoUser = {\n Username: username,\n Pool: _this,\n Storage: _this.storage\n };\n var returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n codeDeliveryDetails: data.CodeDeliveryDetails\n };\n return callback(null, returnData);\n });\n }\n\n /**\n * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */;\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n return null;\n }\n\n /**\n * This method returns the encoded data string used for cognito advanced security feature.\n * This would be generated only when developer has included the JS used for collecting the\n * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n * features\n * @param {string} username the username for the context data\n * @returns {string} the user context data\n **/;\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n return {};\n };\n return CognitoUserPool;\n}();\nexport { CognitoUserPool as default };","import * as Cookies from 'js-cookie';\n\n/** @class */\nvar CookieStorage = /*#__PURE__*/function () {\n /**\n * Constructs a new CookieStorage object\n * @param {object} data Creation options.\n * @param {string} data.domain Cookies domain (mandatory).\n * @param {string} data.path Cookies path (default: '/')\n * @param {integer} data.expires Cookie expiration (in days, default: 365)\n * @param {boolean} data.secure Cookie secure flag (default: true)\n * @param {string} data.sameSite Cookie request behaviour (default: null)\n */\n function CookieStorage(data) {\n if (data.domain) {\n this.domain = data.domain;\n } else {\n throw new Error('The domain of cookieStorage can not be undefined.');\n }\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!['strict', 'lax', 'none'].includes(data.sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\n }\n }\n\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n var _proto = CookieStorage.prototype;\n _proto.setItem = function setItem(key, value) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n Cookies.set(key, value, options);\n return Cookies.get(key);\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n _proto.getItem = function getItem(key) {\n return Cookies.get(key);\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */;\n _proto.removeItem = function removeItem(key) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n return Cookies.remove(key, options);\n }\n\n /**\n * This is used to clear the storage of optional\n * items that were previously set\n * @returns {} an empty object\n */;\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n return {};\n };\n return CookieStorage;\n}();\nexport { CookieStorage as default };",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));","var crypto;\n\n// Native crypto from window (Browser)\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n}\n\n// Native (experimental IE 11) crypto from window (Browser)\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n}\n\n// Native crypto from global (NodeJS)\nif (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n}\n\n// Native crypto import via require (NodeJS)\nif (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n}\n\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport default function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n throw new Error('Native crypto module could not be used to get secure random number.');\n}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n"],"sourceRoot":""}