{"version":3,"sources":["../node_modules/react/index.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/prop-types/index.js","../node_modules/react-router-dom/esm/react-router-dom.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/tslib/tslib.es6.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-loader-spinner/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@firebase/util/dist/index.cjs.js","../node_modules/@firebase/app/dist/index.cjs.js","../node_modules/@firebase/component/dist/index.cjs.js","../node_modules/react-azure-adb2c/lib/react-azure-adb2c.js","../node_modules/react-player/lib/utils.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/Utils.js","../node_modules/react-player/lib/singlePlayer.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-dom/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/esm/react-router.js","../node_modules/react-device-detect/main.js","../node_modules/idb/build/idb.js","../node_modules/invariant/browser.js","../node_modules/@firebase/logger/dist/index.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/Authority.js","../node_modules/react-player/lib/props.js","../node_modules/@firebase/installations/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/installations/dist/index.esm.js","../node_modules/firebase/dist/index.cjs.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/Constants.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/Logger.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/ErrorMessage.js","../node_modules/react-player/lib/players/YouTube.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/players/SoundCloud.js","../node_modules/react-player/lib/players/Vimeo.js","../node_modules/react-player/lib/players/DailyMotion.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/object-assign/index.js","../node_modules/react-is/index.js","../node_modules/process/browser.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/RequestInfo.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/User.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AadAuthority.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/XHRClient.js","../node_modules/react-player/lib/players/Facebook.js","../node_modules/react-player/lib/players/Streamable.js","../node_modules/react-player/lib/players/Wistia.js","../node_modules/react-player/lib/players/Twitch.js","../node_modules/react-player/lib/players/Mixcloud.js","../node_modules/react-player/lib/players/FilePlayer.js","../node_modules/dom-helpers/util/inDOM.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/gud/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/classnames/index.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-addons-css-transition-group/index.js","../node_modules/jwt-decode/lib/index.js","../node_modules/msal/lib-es6/utils/Constants.js","../node_modules/msal/lib-es6/utils/CryptoUtils.js","../node_modules/msal/lib-es6/error/AuthError.js","../node_modules/msal/lib-es6/authority/Authority.js","../node_modules/msal/lib-es6/utils/StringUtils.js","../node_modules/msal/lib-es6/error/ClientAuthError.js","../node_modules/msal/lib-es6/error/ClientConfigurationError.js","../node_modules/msal/lib-es6/ScopeSet.js","../node_modules/msal/lib-es6/utils/UrlUtils.js","../node_modules/msal/lib-es6/cache/AccessTokenKey.js","../node_modules/msal/lib-es6/cache/AccessTokenValue.js","../node_modules/msal/lib-es6/ServerRequestParameters.js","../node_modules/msal/lib-es6/ClientInfo.js","../node_modules/msal/lib-es6/utils/TokenUtils.js","../node_modules/msal/lib-es6/IdToken.js","../node_modules/msal/lib-es6/cache/AccessTokenCacheItem.js","../node_modules/msal/lib-es6/cache/AuthCache.js","../node_modules/msal/lib-es6/cache/BrowserStorage.js","../node_modules/msal/lib-es6/Account.js","../node_modules/msal/lib-es6/utils/WindowUtils.js","../node_modules/msal/lib-es6/utils/TimeUtils.js","../node_modules/msal/lib-es6/utils/RequestUtils.js","../node_modules/msal/lib-es6/utils/ResponseUtils.js","../node_modules/msal/lib-es6/XHRClient.js","../node_modules/msal/lib-es6/Logger.js","../node_modules/msal/lib-es6/authority/AadAuthority.js","../node_modules/msal/lib-es6/authority/B2cAuthority.js","../node_modules/msal/lib-es6/authority/AuthorityFactory.js","../node_modules/msal/lib-es6/Configuration.js","../node_modules/msal/lib-es6/error/ServerError.js","../node_modules/msal/lib-es6/error/InteractionRequiredAuthError.js","../node_modules/msal/lib-es6/AuthResponse.js","../node_modules/msal/lib-es6/telemetry/TelemetryConstants.js","../node_modules/msal/lib-es6/telemetry/TelemetryUtils.js","../node_modules/msal/lib-es6/telemetry/DefaultEvent.js","../node_modules/msal/lib-es6/telemetry/TelemetryEvent.js","../node_modules/msal/lib-es6/telemetry/TelemetryManager.js","../node_modules/msal/lib-es6/UserAgentApplication.js","../node_modules/msal/lib-es6/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@firebase/app/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/util/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/component/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/auth/dist/auth.js","../node_modules/@firebase/database/dist/index.cjs.js","../node_modules/@firebase/database/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/firestore/dist/index.cjs.js","../node_modules/@firebase/firestore/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/webchannel-wrapper/dist/index.esm.js","../node_modules/@firebase/functions/dist/index.cjs.js","../node_modules/@firebase/functions/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/performance/dist/index.cjs.js","../node_modules/@firebase/performance/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/remote-config/dist/index.cjs.js","../node_modules/@firebase/remote-config/node_modules/tslib/tslib.es6.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/index.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/UserAgentApplication.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AccessTokenKey.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AccessTokenValue.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AuthenticationRequestParameters.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/ClientInfo.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/IdToken.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/Storage.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AccessTokenCacheItem.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/AuthorityFactory.js","../node_modules/react-azure-adb2c/node_modules/msal/lib-commonjs/B2cAuthority.js","../node_modules/react-loader-spinner/dist/index.js","../node_modules/react-loader-spinner/dist/loader/index.js","../node_modules/react-loader-spinner/dist/loader/Circles.js","../node_modules/react-loader-spinner/dist/loader/Watch.js","../node_modules/react-loader-spinner/dist/loader/Audio.js","../node_modules/react-loader-spinner/dist/loader/BallTriangle.js","../node_modules/react-loader-spinner/dist/loader/Bars.js","../node_modules/react-loader-spinner/dist/loader/CradleLoader.js","../node_modules/react-loader-spinner/dist/loader/Grid.js","../node_modules/react-loader-spinner/dist/loader/Hearts.js","../node_modules/react-loader-spinner/dist/loader/MutatingDots.js","../node_modules/react-loader-spinner/dist/loader/Oval.js","../node_modules/react-loader-spinner/dist/loader/Plane.js","../node_modules/react-loader-spinner/dist/loader/Puff.js","../node_modules/react-loader-spinner/dist/loader/RevolvingDot.js","../node_modules/react-loader-spinner/dist/loader/Rings.js","../node_modules/react-loader-spinner/dist/loader/TailSpin.js","../node_modules/react-loader-spinner/dist/loader/ThreeDots.js","../node_modules/react-loader-spinner/dist/loader/Triangle.js","../node_modules/load-script/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/Preview.js","../node_modules/react-player/lib/preload.js","../node_modules/react-transition-group/CSSTransitionGroup.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/chain-function/index.js","../node_modules/warning/browser.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/CSSTransitionGroupChild.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/dom-helpers/util/requestAnimationFrame.js","../node_modules/dom-helpers/transition/properties.js","../node_modules/valid-url/index.js","../node_modules/webpack/buildin/module.js","../node_modules/jwt-decode/lib/base64_url_decode.js","../node_modules/jwt-decode/lib/atob.js","../node_modules/@firebase/messaging/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/messaging/dist/index.esm.js","../node_modules/@firebase/storage/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/storage/dist/index.esm.js","../node_modules/@firebase/analytics/node_modules/tslib/tslib.es6.js","../node_modules/@firebase/analytics/dist/index.esm.js","../node_modules/reactstrap/es/utils.js","../node_modules/reactstrap/es/Button.js"],"names":["module","exports","BrowserRouter","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","this","concat","history","props","prototype","render","createElement","children","Component","resolveToLocation","to","currentLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","_ref","forwardedRef","innerRef","navigate","_onClick","onClick","rest","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","_ref2","_ref2$component","component","replace","Consumer","context","location","href","createHref","push","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","classnames","filter","i","join","joinClassnames","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","err","undefined","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","enumerable","configurable","writable","Object","defineProperty","_createClass","protoProps","staticProps","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_typeof2","obj","Symbol","iterator","constructor","_typeof","_possibleConstructorReturn","assertThisInitialized","_setPrototypeOf","p","_inherits","subClass","superClass","create","_extendStatics","d","b","hasOwnProperty","__extends","__","_assign","assign","t","s","n","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","result","__generator","body","f","y","g","_","label","sent","trys","ops","verb","v","op","pop","__exportStar","m","__values","__read","ar","__spread","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","_assertThisInitialized","ReferenceError","warn","console","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectWithoutProperties","source","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_defineProperty","NEWTAB","MIDDLECLICK","_Component","OutboundLink","_getPrototypeOf2","_this$props","eventLabel","trackerNames","eventMeta","sameTarget","normalClick","trackLink","window","_this$props2","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","handleClick","rel","trim","string","isRequired","func","arrayOf","smallWords","redacted","format","titleCase","mightBeEmail","index","title","search","charAt","toLowerCase","substr","toUpperCase","gaAddress","options","debug","document","l","Date","getElementsByTagName","async","src","parentNode","insertBefore","log","gaCalls","calls","ga","resetCalls","_toConsumableArray","arr","isArray","arr2","_arrayWithoutHoles","iter","toString","from","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_window","_format","_gaCommand","command","name","slice","_initialize","gaTrackingID","useExistingGa","gaOptions","initialize","configsOrTrackingId","testMode","standardImplementation","loadGA","alwaysSendToDefaultTracker","config","trackingId","_len2","_key2","JSON","stringify","set","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","substring","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","action","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","_ref3","description","fatal","exDescription","exFatal","require","rawName","trackerName","requireString","execute","pluginName","payload","actionType","outboundLink","hitCallback","safetyCallbackCalled","setTimeout","clearTimeout","plugin","testModeAPI","origTrackLink","_extends","tslib","CONSTANTS","NODE_CLIENT","NODE_ADMIN","SDK_VERSION","assert","assertion","message","assertionError","Error","stringToByteArray","str","out","charCodeAt","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","HAS_NATIVE_SUPPORT","atob","encodeByteArray","input","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","btoa","decodeString","bytes","pos","c1","String","fromCharCode","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","byte4","ENCODED_VALS","ENCODED_VALS_WEBSAFE","base64Decode","deepExtend","getTime","prop","Deferred","promise","wrapCallback","callback","catch","getUA","navigator","isNode","global","process","ERROR_NAME","FirebaseError","_super","code","captureStackTrace","ErrorFactory","service","serviceName","errors","data","_i","customData","fullCode","template","replaceTemplate","fullMessage","_a","_b","PATTERN","jsonEval","parse","decode","token","header","claims","signature","parts","split","Sha1","chain_","buf_","W_","pad_","inbuf_","total_","blockSize","reset","compress_","buf","offset","W","update","lengthMinusBlock","inbuf","digest","totalBits","ObserverProxy","executor","onNoObservers","observers","unsubscribes","observerCount","task","finalized","forEachObserver","observer","close","complete","subscribe","nextOrObserver","methods","methods_1","method","implementsAnyMethods","noop","unsub","unsubscribeOne","bind","finalError","sendOne","errorPrefix","fnName","argumentNumber","optional","argName","DEFAULT_INTERVAL_MILLIS","DEFAULT_BACKOFF_FACTOR","MAX_VALUE_MILLIS","RANDOM_FACTOR","areCookiesEnabled","cookieEnabled","onError","base64Encode","utf8Bytes","calculateBackoffMillis","backoffCount","intervalMillis","backoffFactor","currBaseValue","Math","pow","randomWait","round","random","min","contains","createSubscribe","proxy","deepCopy","isAdmin","isBrowser","isBrowserExtension","runtime","chrome","browser","id","isElectron","isEmpty","isIE","ua","isIndexedDBAvailable","indexedDB","isMobileCordova","test","isNodeSdk","isReactNative","isSafari","userAgent","includes","isUWP","isValidFormat","isValidTimestamp","now","floor","validSince","validUntil","issuedAtTime","map","contextObj","res","querystring","querystringParams","params","_loop_1","arrayVal","encodeURIComponent","entries","querystringDecode","safeGet","stringLength","high","validateArgCount","minCount","maxCount","argCount","argError","validateCallback","validateContextObject","validateIndexedDBOpenable","preExist_1","DB_CHECK_NAME_1","request_1","open","onsuccess","deleteDatabase","onupgradeneeded","onerror","validateNamespace","namespace","_a$1","util","logger$1","ERRORS","ERROR_FACTORY","name$1","version","DEFAULT_ENTRY_NAME","PLATFORM_LOG_STRING","logger","Logger","FirebaseAppImpl","firebase_","e_1","isDeleted_","name_","automaticDataCollectionEnabled_","automaticDataCollectionEnabled","options_","container","ComponentContainer","_addComponent","INTERNAL","components","values","_c","component$1","e_1_1","return","get","checkDestroyed_","val","delete","removeApp","all","getProviders","provider","_getService","instanceIdentifier","getProvider","getImmediate","identifier","_removeServiceInstance","clearInstance","addComponent","_addOrOverwriteComponent","addOrOverwriteComponent","appName","version$1","firebase","createFirebaseNamespace","firebaseAppImpl","apps","Map","initializeApp","rawConfig","app","registerVersion","libraryKeyOrName","variant","library","libraryMismatch","versionMismatch","warning","registerComponent","setLogLevel","onLog","logCallback","setUserLogHandler","useAsService","componentName","has","type","serviceNamespace","appArg","serviceProps","serviceFxn","multipleInstances","createFirebaseNamespaceCore","__assign","extendNamespace","PlatformLoggerService","getPlatformInfoString","getComponent","isVersionServiceProvider","logString","sdkVersion","firebase$1","registerCoreComponents","instanceFactory","instantiationMode","setInstantiationMode","mode","setMultipleInstances","setServiceProps","Provider","instances","instancesDeferred","normalizedIdentifier","normalizeInstanceIdentifier","deferred","getOrInitializeService","setComponent","isComponentEager","_d","instanceDeferred","services","_delete","isComponentSet","normalizeIdentifierForFactory","providers","Msal","newObj","_interopRequireWildcard","_react","_react2","logLevel","piiLoggingEnabled","level","LogLevel","Warning","state","stopLoopingRedirect","launchApp","accessToken","scopes","authCallback","errorDesc","tokenType","acquireToken","successCallback","localMsalApp","msal","getUser","acquireTokenSilent","acquireTokenRedirect","loginRedirect","authentication","authority","tenant","signInPolicy","UserAgentApplication","applicationId","cacheLocation","postLogoutRedirectUri","redirectUri","run","isCallback","hash","parent","opener","required","WrappedComponent","renderLoading","_class","signedIn","_this2","setState","signOut","logout","getAccessToken","parseStartTime","url","parseTimeParam","MATCH_START_QUERY","parseEndTime","MATCH_END_QUERY","randomString","queryString","getSDK","sdkGlobal","sdkReady","isLoaded","fetchScript","_loadScript","requests","onLoaded","sdk","request","previousOnReady","getConfig","defaultProps","showWarning","_deepmerge","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_props","DEPRECATED_CONFIG_PROPS","omit","arrays","omitKeys","_i2","_keys","callPlayer","_this$player","player","displayName","isObject","isEqual","isValidElement","_i3","_Object$keys","isMediaStream","MediaStream","_interopRequireDefault","_slicedToArray","_arrayWithHoles","_arr","_n","_e","_s","_iterableToArrayLimit","_nonIterableRest","MATCH_START_STAMP","MATCH_NUMERIC","pattern","stamp","seconds","array","exec","_array2","count","period","parseInt","parseTimeString","isProduction","prefix","condition","_inheritsLoose","isAbsolute","spliceOne","list","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","valueOf","valueEqual","every","item","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","listener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","splice","canGo","Utils","compareObjects","u1","u2","userIdentifier","expiresIn","expires","extractIdToken","encodedIdToken","decodedToken","decodeJwt","base64IdToken","JWSPayload","base64Decoded","base64DecodeStringUrlSafe","base64EncodeStringUrlSafe","encode","decodeURIComponent","chr1","chr2","chr3","enc1","enc2","enc3","enc4","keyStr","utf8Encode","isNaN","utftext","codes","h1","h2","h3","h4","bits","decoded","jwtToken","matches","JWSSig","deserialize","query","pl","isIntersectingScopes","cachedScopes","convertToLowerCase","containsScope","scope","removeElement","decimalToHex","num","hex","getLibraryVersion","replaceFirstPath","tenantId","urlObject","GetUrlComponents","pathArray","PathSegments","Protocol","HostNameAndPort","createNewGuid","cryptoObj","crypto","getRandomValues","buffer","Uint8Array","guidHolder","guidResponse","regEx","RegExp","urlComponents","AbsolutePath","pathSegments","CanonicalizeUri","endsWith","suffix","activePlayer","_temp","SinglePlayer","_utils","getDuration","getCurrentTime","getSecondsLoaded","getInternalPlayer","fraction","seekTo","nextProps","_this$config$file","file","forceVideo","forceAudio","forceHLS","forceDASH","skipCanPlay","canPlay","width","height","Wrapper","wrapper","otherProps","SUPPORTED_PROPS","_Player","propTypes","cache","_getRequireWildcardCache","hasPropertyDescriptor","WeakMap","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","MAX_SIGNED_31_BIT_INT","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","handlers","on","handler","off","h","newValue","changedBits","createEventEmitter","_proto","getChildContext","componentWillReceiveProps","oldValue","x","childContextTypes","_Component2","getValue","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","contextTypes","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","Lifecycle","onMount","componentDidUpdate","prevProps","onUnmount","cacheLimit","cacheCount","generatePath","compile","compilePath","pretty","Redirect","computedMatch","_ref$push","cache$1","cacheLimit$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","sensitive","reduce","matched","_compilePath","cacheKey","end","pathCache","regexp","compilePath$1","memo","Route","context$1","base","createURL","staticHandler","methodName","withRouter","wrappedComponentRef","remainingProps","useContext","React","React__default","UA","getBrowser","device","getCPU","getDevice","engine","getEngine","os","getOS","setDefaults","getNavigatorInstance","isIOS13Check","nav","platform","maxTouchPoints","MSStream","DEVICE_TYPES","BROWSER_TYPES","OS_TYPES","initialData","isMobile","isTablet","isSmartTV","isConsole","isWearable","broPayload","browserMajorVersion","major","browserFullVersion","browserName","engineName","engineVersion","osName","osVersion","mobilePayload","_objectSpread2","vendor","model","stvPayload","consolePayload","wearPayload","checkType","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isOpera","fullBrowserVersion","browserVersion","mobileVendor","mobileModel","isEdge","isYandex","deviceType","isIOS13","getIOS13","isIPad13","isIPhone13","isIPod13","isElectronType","AndroidView","renderWithFragment","viewClassName","Fragment","BrowserView","ConsoleView","_ref10","CustomView","_ref12","IEView","IOSView","_ref4","MobileOnlyView","_ref8","MobileView","_ref5","SmartTVView","_ref9","TabletView","_ref6","WearableView","_ref11","WinPhoneView","_ref7","deviceDetect","withOrientationChange","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","innerWidth","innerHeight","toArray","promisifyRequest","promisifyRequestCall","promisifyCursorRequestCall","Cursor","proxyProperties","ProxyClass","targetProp","properties","proxyRequestMethods","proxyMethods","proxyCursorRequestMethods","Index","_index","cursor","_cursor","_request","ObjectStore","store","_store","Transaction","idbTransaction","_tx","oncomplete","onabort","UpgradeDB","db","oldVersion","transaction","_db","DB","IDBIndex","IDBCursor","createIndex","IDBObjectStore","objectStore","IDBTransaction","createObjectStore","IDBDatabase","funcName","nativeObject","getAll","items","iterateCursor","continue","openDb","upgradeCallback","deleteDb","factory","argIndex","framesToPop","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","toISOString","_logLevel","_logHandler","_userLogHandler","inst","customLogLevel","userLogHandler","ignored","instances_1","Function","Utils_1","ErrorMessage_1","XHRClient_1","AuthorityType","Authority","validateAuthority","IsValidationEnabled","CanonicalAuthority","validateAsUri","CanonicalAuthorityUrlComponents","validateResolved","tenantDiscoveryResponse","AuthorizationEndpoint","Tenant","EndSessionEndpoint","Issuer","canonicalAuthority","canonicalAuthorityUrlComponents","ErrorMessage","invalidAuthorityType","authorityUriInsecure","authorityUriInvalidPath","DiscoverEndpoints","openIdConfigurationEndpoint","XhrClient","sendRequestAsync","response","authorization_endpoint","end_session_endpoint","issuer","ResolveEndpointsAsync","GetOpenIdConfigurationEndpointAsync","openIdConfigurationEndpointResponse","_propTypes","bool","number","oneOfType","shape","node","playing","loop","controls","volume","muted","playbackRate","progressInterval","playsinline","pip","light","playIcon","soundcloud","preload","youtube","playerVars","embedOptions","facebook","appId","dailymotion","vimeo","playerOptions","attributes","tracks","hlsOptions","hlsVersion","dashVersion","wistia","mixcloud","twitch","onReady","onStart","onPlay","onPause","onBuffer","onBufferEnd","onEnded","onDuration","onSeek","onProgress","onEnablePIP","onDisablePIP","visual","buying","liking","download","sharing","show_comments","show_playcount","showinfo","iv_load_policy","modestbranding","api","autopause","byline","portrait","hide_cover","adopt","PENDING_TIMEOUT_MS","PACKAGE_VERSION","INTERNAL_AUTH_VERSION","INSTALLATIONS_API_URL","TOKEN_EXPIRATION_BUFFER","ERROR_DESCRIPTION_MAP","isServerError","getInstallationsEndpoint","projectId","extractAuthTokenInfoFromResponse","requestStatus","responseExpiresIn","Number","creationTime","getErrorFromResponse","requestName","responseJson","errorData","json","serverCode","serverMessage","serverStatus","status","getHeaders","apiKey","Headers","Accept","getHeadersWithAuth","appConfig","refreshToken","headers","append","getAuthorizationHeader","retryIfServerError","createInstallationRequest","fid","endpoint","responseValue","authVersion","fetch","registrationStatus","authToken","sleep","ms","bufferToBase64UrlSafe","VALID_FID_PATTERN","INVALID_FID","generateFid","fidByteArray","msCrypto","getKey","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","channel","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","callbacks","callbacks_1","callbacks_1_1","broadcastChannel","BroadcastChannel","onmessage","size","DATABASE_NAME","DATABASE_VERSION","OBJECT_STORE_NAME","dbPromise","getDbPromise","upgradeDB","tx","put","remove","updateFn","getInstallationEntry","registrationPromise","installationEntry","oldEntry","clearTimedOutRequest","updateOrCreateInstallationEntry","entryWithPromise","onLine","registrationPromiseWithError","inProgressEntry","registrationTime","registeredInstallationEntry","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","updateInstallationRequest","generateAuthTokenRequest","platformLoggerProvider","platformLogger","getGenerateAuthTokenEndpoint","installation","refreshAuthToken","dependencies","tokenPromise","isEntryRegistered","oldAuthToken","isAuthTokenExpired","isAuthTokenValid","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","completeInstallationRegistration","deleteInstallationRequest","getDeleteEndpoint","_onIdChange","callbackSet","Set","add","addCallback","removeCallback","getMissingValueError","valueName","registerInstallations","configKeys_1","configKeys_1_1","keyName","extractAppConfig","getId","_getId","getToken","_getToken","deleteInstallation","onIdChange","_interopDefaultLegacy","firebase__default","Manager","collection","refs","getIndex","active","find","sortableInfo","sort","sortByIndex","arrayMove","keysToOmit","acc","events","move","start","vendorPrefix","styles","getComputedStyle","documentElement","pre","OLink","setInlineStyles","setTranslate3d","translate","setTransitionDuration","duration","closest","el","limit","getPixelValue","stringValue","parseFloat","provideDisplayName","Component$$1","getScrollAdjustedBoundingClientRect","scrollDelta","boundingClientRect","getBoundingClientRect","top","left","getPosition","touches","pageX","pageY","changedTouches","getEdgeOffset","nodeOffset","offsetLeft","offsetTop","getLockPixelOffset","lockOffset","offsetX","offsetY","unit","isFinite","getScrollingParent","HTMLElement","computedStyle","overflowRegex","property","isScrollable","KEYCODE","NodeType","Anchor","Button","Canvas","Input","Option","Textarea","Select","isSortableHandle","sortableHandle","AutoScroller","onScrollCallback","interval","clearInterval","minTranslate","maxTranslate","direction","speed","acceleration","_this$container","scrollTop","scrollLeft","scrollHeight","scrollWidth","isTop","isBottom","clientHeight","isLeft","isRight","clientWidth","abs","clear","isAutoScrolling","setInterval","axis","oneOf","contentWindow","any","disableAutoscroll","distance","getContainer","getHelperDimensions","helperClass","helperContainer","instanceOf","hideSortableGhost","keyboardSortingTransitionDuration","lockAxis","lockToContainerEdges","onSortEnd","onSortMove","onSortOver","onSortStart","pressDelay","pressThreshold","keyCodes","lift","drop","cancel","down","shouldCancelStart","transitionDuration","updateBeforeSortStart","useDragHandle","useWindowAsScrollContainer","defaultKeyCodes","offsetHeight","offsetWidth","tagName","contentEditable","omittedProps","sortableContainer","withRef","WithSortableContainer","touched","position","nodeIsChild","sorting","_node$sortableInfo","disabled","manager","isTouchEvent","handlePress","pressTimer","_awaitingUpdateBeforeSortStart","combinedDelta","cancelTimer","getActive","_temp6","_temp7","_node","margin","element","bottom","marginBottom","marginLeft","right","marginRight","marginTop","getElementMargin","gridGap","display","gridColumnGap","gridRowGap","getContainerGridGap","containerBoundingRect","scrollContainer","dimensions","_getHelperDimensions","_collection","marginOffset","newIndex","_axis","offsetEdge","initialOffset","_isKeySorting","initialScroll","initialWindowScroll","pageXOffset","pageYOffset","helper","appendChild","selector","fields","querySelectorAll","clonedNode","cloneNode","field","getContext","drawImage","boxSizing","pointerEvents","focus","_hideSortableGhost","sortableGhost","opacity","visibility","_useWindowAsScrollContainer","containerTop","containerLeft","containerWidth","containerBottom","containerRight","_helperClass","classList","listenerNode","handleKeyEnd","handleKeyDown","eventName","handleSortMove","handleSortEnd","sortingIndex","_onSortStart","isKeySorting","nodes","getOrderedRefs","keyMove","_this$props3","_temp8","_temp9","finalizer","_finallyRethrows","_wasThrown","_result","updateHelperPosition","animateNodes","autoscroll","_this$props4","_this$manager","removeChild","len","_node2","edgeOffset","autoScroller","oldIndex","scrollX","scrollY","keyCode","_this$props5","_this$props5$keyCodes","isValidSortingTarget","stopPropagation","keyLift","keyDrop","_node$sortableInfo2","initialFocusedNode","lastIndex","targetIndex","getTargetIndex","targetNode","containerScrollDelta","targetBoundingClientRect","targetTranslate","targetPosition","shouldAdjustForSize","sizeAdjustment","ignoreTransition","validateProps","handleEnd","handleMove","handleStart","containerNode","ownerDocument","defaultView","scrollingElement","onAutoScroll","_this3","_this$props6","_this$props6$keyboard","_getLockPixelOffsets","offsets","_offsets","minLockOffset","maxLockOffset","getLockPixelOffsets","_getLockPixelOffsets2","minOffset","maxOffset","_this$props7","windowScrollDelta","sortingOffset","_node3","mustShiftBackward","mustShiftForward","nextNode","prevNode","wrappedInstance","getWrappedInstance","propTypes$1","omittedProps$1","sortableElement","WithSortableElement","register","unregister","Constants","_popUpWidth","_popUpHeight","ErrorCodes","ErrorDescription","localCallback","_level","Info","correlationId","_localCallback","_correlationId","_piiLoggingEnabled","logMessage","containsPii","timestamp","toUTCString","executeCallback","errorPii","warningPii","infoPii","verbose","Verbose","verbosePii","YouTube","_singlePlayer","SDK_GLOBAL","MATCH_URL","MATCH_PLAYLIST","parsePlaylist","listType","_window$SDK_GLOBAL$Pl","PlayerState","PLAYING","PAUSED","BUFFERING","ENDED","CUED","isPlaylist","play","isReady","_onError","_config$youtube","loadPlaylist","cueVideoById","videoId","startSeconds","endSeconds","YT","loaded","Player","autoplay","mute","origin","setLoop","onStateChange","amount","pause","rate","_default","_args","playedSeconds","loadedSeconds","progress","played","prevPlayed","prevLoaded","progressTimeout","progressFrequency","mounted","isLoading","setVolume","loadOnReady","load","handleDurationCheck","isPlaying","startOnPlay","setPlaybackRate","seekOnPlay","loopOnEnded","durationCheckTimeout","onDurationCalled","stop","disablePIP","forceLoad","enablePIP","unmute","handleReady","handlePlay","handlePause","handleEnded","handleLoaded","handleError","SoundCloud","iframe","SC","_SC$Widget$Events","Widget","Events","PLAY","PLAY_PROGRESS","PAUSE","FINISH","currentTime","currentPosition","fractionLoaded","loadedProgress","frameBorder","allow","Vimeo","MATCH_FILE_URL","ready","refreshDuration","secondsLoaded","overflow","DailyMotion","DM","video","apiready","seeked","video_end","durationchange","onDurationChange","waiting","bufferedTime","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","capture","group","modifier","asterisk","partial","repeat","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","opts","segment","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","marker","runClearTimeout","Item","nextTick","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","TokenResponse","valid","parameters","stateMatch","stateResponse","requestType","User","displayableId","identityProvider","idToken","createUser","clientInfo","uid","utid","preferredName","decodedIdToken","tslib_1","Authority_1","AadAuthority","AadInstanceDiscoveryEndpoint","Aad","resultPromise","DefaultOpenIdConfigurationEndpoint","host","IsInTrustedHostList","AadInstanceDiscoveryEndpointUrl","tenant_discovery_endpoint","TrustedHostList","enableCaching","xhr","XMLHttpRequest","onload","ev","responseText","jsonResponse","Facebook","SDK_URL","PLAYER_ID_PREFIX","FB","XFBML","init","xfbml","Event","msg","playerID","getElementById","Streamable","playerjs","percent","scrolling","allowFullScreen","Wistia","_onReady","_wq","getID","autoPlay","silentAutoPlay","controlsVisibleOnLoad","unbind","Twitch","MATCH_VIDEO_URL","MATCH_CHANNEL_URL","isChannel","setChannel","setVideo","_Twitch$Player","READY","ONLINE","OFFLINE","Mixcloud","PlayerWidget","ended","feed","FilePlayer","IOS","AUDIO_EXTENSIONS","VIDEO_EXTENSIONS","HLS_EXTENSIONS","DASH_EXTENSIONS","MATCH_DROPBOX_URL","supportsWebKitPresentationMode","webkitSupportsPresentationMode","webkitSetPresentationMode","_this$props8","_this$props9","webkitPresentationMode","track","prevPlayer","addListeners","shouldUseAudio","removeListeners","onPresentationModeChange","setAttribute","poster","_this$props$config$fi","shouldUseHLS","Hls","hls","loadSource","attachMedia","shouldUseDASH","dashjs","dash","MediaPlayer","getDebug","setLogToBrowserConsole","srcObject","URL","createObjectURL","removeAttribute","destroy","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","seekable","Infinity","buffered","useHLS","useDASH","_this$props10","Element","getSource","renderSourceElement","renderTrack","pictureInPictureEnabled","nameShape","transitionTimeout","transitionType","timeoutPropName","enabledPropName","_propTypes2","enter","leave","enterActive","leaveActive","appear","appearActive","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","hasOwn","classNames","classes","argType","inner","_FilePlayer","_YouTube","_SoundCloud","_Vimeo","_Facebook","_Streamable","_Wistia","_Twitch","_DailyMotion","_Mixcloud","_players","_Player4","_Preview","_preload","customPlayers","ReactPlayer","showPreview","activePlayerRef","getActivePlayer","renderedActivePlayer","renderActivePlayer","preloadPlayers","players","sortPlayers","preview","handleClickPreview","wrapperRef","_arr2","_arr3","_Player3","canEnablePIP","base64_url_decode","InvalidTokenError","ServerHashParamKeys","TemporaryCacheKeys","PersistentCacheKeys","ErrorCacheKeys","CryptoUtils","isGuid","guid","p1","encodedString","SSOTypes","AADTrustedHostList","BlacklistedEQParams","SID","LOGIN_HINT","PromptState","LOGIN","SELECT_ACCOUNT","CONSENT","NONE","AuthErrorMessage","AuthError","errorCode","errorMessage","createUnexpectedError","errDesc","createNoWindowObjectError","StringUtils","ClientAuthErrorMessage","ClientAuthError","createEndpointResolutionError","errDetail","createMultipleMatchingTokensInCacheError","createMultipleAuthoritiesInCacheError","createPopupWindowError","createTokenRenewalTimeoutError","urlNavigate","createInvalidIdTokenError","createInvalidStateError","invalidState","actualState","createNonceMismatchError","invalidNonce","actualNonce","createLoginInProgressError","createAcquireTokenInProgressError","createUserCancelledError","createErrorInCallbackFunction","createUserLoginRequiredError","createUserDoesNotExistError","createClientInfoDecodingError","caughtError","createClientInfoNotPopulatedError","createIdTokenNullOrEmptyError","invalidRawTokenString","createIdTokenParsingError","caughtParsingError","createTokenEncodingError","incorrectlyEncodedToken","createInvalidInteractionTypeError","createCacheParseError","createBlockTokenRequestsInHiddenIframeError","ClientConfigurationErrorMessage","configurationNotSet","storageNotSupported","noRedirectCallbacksSet","invalidCallbackObject","scopesRequired","emptyScopes","nonArrayScopes","clientScope","invalidPrompt","unsupportedAuthorityValidation","b2cAuthorityUriInvalidPath","claimsRequestParsingError","emptyRequestError","invalidCorrelationIdError","telemetryConfigError","ClientConfigurationError","createNoSetConfigurationError","createStorageNotSupportedError","givenCacheLocation","createRedirectCallbacksNotSetError","createInvalidCallbackObjectError","callbackObject","createEmptyScopesArrayError","scopesValue","createScopesNonArrayError","createClientIdSingleScopeError","createScopesRequiredError","createInvalidPromptError","promptValue","createClaimsRequestParsingError","claimsRequestParseError","createEmptyRequestError","createInvalidCorrelationIdError","createTelemetryConfigError","requiredKeys","applicationName","applicationVersion","telemetryEmitter","ScopeSet","parseScope","scopeList","validateInputScope","clientId","getScopeFromState","splitIndex","appendScopes","reqScopes","reqExtraScopesToConsent","UrlUtils","createNavigateUrl","serverRequestParams","createNavigationUrlString","authEndpoint","authorityInstance","responseType","translateclientIdUsedInScope","nonce","xClientSku","xClientVer","claimsValue","queryParameters","extraQueryParameters","clientIdIndex","getDefaultRedirectUri","replaceTenantPath","common","ORGANIZATIONS","constructAuthorityUriFromObject","urlRemoveQueryStringParameter","regex","getHashFromUrl","urlStringOrFragment","hashIndex1","hashIndex2","urlContainsHash","urlString","deserializeHash","ERROR_DESCRIPTION","ACCESS_TOKEN","ID_TOKEN","urlFragment","getHostFromUri","uri","extractedUri","homeAccountIdentifier","AccessTokenValue","ServerRequestParameters","populateQueryParams","account","adalIdTokenObject","claimsRequest","isSSOParam","constructUnifiedCacheQueryParameter","addHintParameters","eQParams","generateQueryParametersString","idTokenObject","ssoType","ssoData","serverReqParam","sid","userName","loginHint","upn","addSSOParameter","HOMEACCOUNT_ID","qParams","DOMAIN_REQ","LOGIN_REQ","ssoParam","DOMAIN_HINT","CONSUMERS","homeAccountId","consumersUtid","paramsString","ClientInfo","rawClientInfo","decodedClientInfo","_uid","_utid","TokenUtils","rawIdToken","objectId","subject","expiration","homeObjectId","cloudInstance","AccessTokenCacheItem","AuthCache","storeAuthStateInCookie","rollbackEnabled","migrateCacheEntries","idTokenKey","cachePrefix","IDTOKEN","clientInfoKey","CLIENT_INFO","errorKey","errorDescKey","ERROR_DESC","getItem","duplicateCacheEntry","newKey","setItem","generateCacheKey","addInstanceId","adalIdToken","enableCookieStorage","removeItem","resetCacheItems","storage","resetTempCacheItems","splitKey","resourceDelimiter","keyState","tokenRenewalInProgress","setItemCookie","clearMsalCookie","INTERACTION_STATUS","REDIRECT_REQUEST","cName","cValue","getItemCookie","getAllAccessTokens","parseAtKey","newAccessTokenCacheItem","stateValue","renewStatus","RENEW_STATUS","inProgress","clearItemCookie","NONCE_IDTOKEN","STATE_LOGIN","LOGIN_REQUEST","STATE_ACQ_TOKEN","generateAcquireTokenAccountKey","accountId","ACQUIRE_TOKEN_ACCOUNT","generateAuthorityKey","AUTHORITY","BrowserStorage","cookieStr","getCookieExpirationTime","cookie","ca","cookieLifeDays","today","Account","accountIdentifier","idTokenClaims","environment","createAccount","compareAccounts","a1","a2","WindowUtils","isInIframe","isInPopup","monitorWindowForHash","maxTicks","POLLING_INTERVAL_MS","ticks","intervalId","closed","loadFrame","frameName","timeoutMs","frameHandle","addHiddenIFrame","iframeId","adalFrame","ifr","border","insertAdjacentHTML","frames","removeHiddenIframe","getIframeWithHash","iframes","getPopups","openedWindows","getPopUpWithHash","popup","trackPopup","closePopups","blockReloadInHiddenIframes","checkIfBackButtonIsPressed","cacheStorage","redirectCache","splitCache","TimeUtils","parseExpiresIn","RequestUtils","validateRequest","isLoginCall","redirectCallbacksSet","interactionTypeRedirect","extraScopesToConsent","validatePromptParameter","validateEQParameters","validateClaimsRequest","validateAndGenerateState","validateAndGenerateCorrelationId","param","ResponseUtils","setResponseIdToken","originalResponse","idTokenObj","exp","expiresOn","uniqueId","resolveEndpointsAsync","B2cAuthority","B2C","B2C_PREFIX","AuthorityFactory","DetectAuthorityFromUrl","authorityUrl","CreateInstance","isPiiLoggingEnabled","DEFAULT_AUTH_OPTIONS","navigateToLoginRequestUrl","DEFAULT_CACHE_OPTIONS","DEFAULT_SYSTEM_OPTIONS","loadFrameTimeout","tokenRenewalOffsetSeconds","navigateFrameWait","DEFAULT_FRAMEWORK_OPTIONS","isAngular","unprotectedResources","protectedResourceMap","ServerErrorMessage","ServerError","createServerUnavailableError","createUnknownServerError","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthError","isInteractionRequiredError","errorString","interactionRequiredCodes","createLoginRequiredAuthError","createInteractionRequiredAuthError","createConsentRequiredAuthError","buildResponseStateOnly","accountState","fromCache","EVENT_NAME_KEY","START_TIME_KEY","ELAPSED_TIME_KEY","TELEMETRY_BLOB_EVENT_NAMES","MsalCorrelationIdConstStrKey","ApiTelemIdConstStrKey","ApiIdConstStrKey","BrokerAppConstStrKey","CacheEventCountConstStrKey","HttpEventCountTelemetryBatchKey","IdpConstStrKey","IsSilentTelemetryBatchKey","IsSuccessfulConstStrKey","ResponseTimeConstStrKey","TenantIdConstStrKey","UiEventCountTelemetryBatchKey","DefaultEvent","eventCount","getEventCount","TelemetryEvent","startTimestamp","eventId","setElapsedTime","time","createEventKey","telemetryCorrelationId","TelemetryManager","completedEvents","inProgressEvents","eventCountByCorrelationId","onlySendFailureTelemetry","telemetryPlatform","startEvent","eventKey","stopEvent","incrementEventCount","flush","orphanedEvents","getOrphanedEvents","eventsToFlush","eventCountsToFlush","defaultEvent","eventsWithDefaultEvent","event_1","DEFAULT_AUTHORITY","ResponseTypes","configuration","authResponseCallback","tokenReceivedCallback","errorReceivedCallback","auth","system","framework","buildConfiguration","inCookie","telemetryManager","getTelemetryManagerFromConfig","telemetry","activeRenewals","renewStates","callbackMappedToRenewStates","promiseMappedToRenewStates","urlHash","handleAuthenticationResponse","getAuthorityInstance","handleRedirectCallback","authOrTokenCallback","cachedHash","URL_HASH","processCallBack","authResponseHandler","interactionType","interactionTypePopup","authErrorHandler","authErr","userRequest","acquireTokenInteractive","loginPopup","acquireTokenPopup","interactionProgress","thrownError","stateOnlyResponse","getAccountState","getAccount","acquireTokenHelper","extractADALIdToken","tokenRequest","buildIDTokenRequest","silentLogin","serverAuthenticationRequest","popUpWindow","acquireTokenAuthority","openPopup","popUpWidth","popUpHeight","loginStartPage","error_1","getTokenType","ANGULAR_LOGIN_REQUEST","getRedirectUri","updateCacheEntries","response_mode_fragment","login","renewToken","registerCallback","navigateWindow","broadcast","cacheResultResponse","userContainedClaims","getCachedToken","renewIdToken","winLeft","screenLeft","screenX","winTop","screenTop","screenY","top_1","popupWindow","loadIframeTimeout","expectedState","error_2","clearCache","getPostLogoutRedirectUri","accessTokenItems","clearCacheForScope","stateInfo","parentCallback","getResponseState","saveTokenFromHash","locationHash","iframeWithHash","popUpWithHash","isPopupOrIframe","tokenResponseCallback","loginRequestUrl","unknown","silentAuthenticationState","statesInParentContext","accessTokenCacheItem","tokenCacheItems","filteredItems","cacheItem","authorityList","getUniqueAuthority","expired","aState","accessTokenCacheItems","prompt_none","saveAccessToken","accessTokenResponse","clientObj","SCOPE","consentedScopes","EXPIRES_IN","accessTokenKey","accessTokenValue","hashParams","authorityKey","acquireTokenAccountKey","LOGIN_ERROR","no_account","hashErr","hashErrDesc","SESSION_STATE","populateAuthority","accountKey","acquireTokenAccountKey_noaccount","cachedAccount","acquireTokenAccount","cachedAuthority","getAllAccounts","accounts","getUniqueAccounts","uniqueAccounts","evt","CustomEvent","detail","dispatchEvent","getCachedTokenInternal","accountObject","newAuthority","getScopesForEndpoint","getLoginInProgress","setInteractionInProgress","setloginInProgress","loginInProgress","getAcquireTokenInProgress","setAcquireTokenInProgress","acquireTokenInProgress","getLogger","reqRedirectUri","getCurrentConfiguration","silentCall","setAccountCache","getAccountId","setAuthorityCache","for","w","z","aa","A","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","updater","F","G","isReactComponent","forceUpdate","H","isPureReactComponent","I","current","J","K","L","__self","__source","M","$$typeof","_owner","N","O","Q","keyPrefix","R","U","S","T","escape","da","V","ba","X","Children","only","createRef","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","lazy","_ctor","_status","useCallback","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Profiler","StrictMode","Suspense","cloneElement","createFactory","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Y","Z","ea","extractEvents","eventTypes","fa","phasedRegistrationNames","ha","registrationName","ia","ja","ka","la","ma","na","oa","pa","qa","sa","va","wa","currentTarget","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","Xa","tag","_debugOwner","_debugSource","fileName","lineNumber","Ya","Za","$a","ab","bb","cb","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","sb","tb","ub","vb","qb","rb","pb","setAttributeNS","wb","nodeName","yb","_valueTracker","setValue","stopTracking","xb","zb","checked","Ab","defaultChecked","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Eb","Fb","Gb","activeElement","Ib","Hb","Jb","selected","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","textContent","xlinkHref","Ob","html","mathml","svg","Pb","Qb","Rb","Sb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","Tb","lastChild","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","animation","transition","Zb","$b","ac","bc","cc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","child","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","Ac","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","priority","hydrate","containerInfo","Gc","Hc","Ic","Jc","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","Interface","isDefaultPrevented","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","view","ad","relatedTarget","bd","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","dd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","ed","Alt","Control","Meta","Shift","gd","getModifierState","hd","locale","which","jd","kd","ld","md","nd","clientX","clientY","buttons","fromElement","toElement","movementX","movementY","od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","targetTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","wd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Id","Jd","Kd","targetInst","ancestors","Ld","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","xc","yc","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Ud","Vd","Wd","setProperty","Xd","menuitem","area","br","col","embed","hr","img","keygen","link","meta","wbr","Yd","Zd","is","$d","ae","be","ce","de","nextSibling","fe","HTMLIFrameElement","ge","he","ie","je","ke","le","me","ne","autoFocus","oe","__html","pe","qe","se","previousSibling","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","documentMode","Ie","Je","Ke","Le","beforeInput","compositionEnd","compositionStart","compositionUpdate","Me","Ne","Oe","Pe","Se","Qe","char","Re","Te","color","date","datetime","email","month","password","range","tel","text","week","Ue","Ve","change","We","Xe","Ye","Ze","$e","af","bf","cf","detachEvent","df","ef","attachEvent","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","parentWindow","of","pf","qf","rf","sf","select","tf","uf","vf","wf","xf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","yf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Sg","_reactInternalFiber","Pg","Qg","Rg","Tg","shouldComponentUpdate","Ug","Vg","UNSAFE_componentWillReceiveProps","Wg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Xg","Yg","_stringRef","Zg","$g","ah","bh","elementType","ch","implementation","dh","eh","ta","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","memoizedProps","revealOrder","rh","responder","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","dispatch","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","deps","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","hi","pendingProps","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","vi","wi","pendingContext","Hi","Ii","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tail","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","stack","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","Qi","Xi","Yi","Zi","$i","_reactRootContainer","aj","wasMultiple","multiple","bj","cj","dj","ej","fj","gj","hj","ij","componentDidCatch","jj","componentStack","gk","kj","ceil","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createElementNS","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","ee","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","Dh","dc","fd","hk","Eh","Fh","xk","Di","Ei","Fi","xd","Gi","kk","lk","mk","hidden","Va","nk","unstable_observedBits","pk","pendingChildren","qk","rk","sk","tk","uk","vk","wc","_internalRoot","wk","zk","hasAttribute","yk","Bk","Ak","unmount","form","ak","Ck","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Dk","Ek","_f","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","requestAnimationFrame","port2","port1","sortIndex","startTime","priorityLevel","delay","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","reverse","skipTempReset","prev","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","MODEL","NAME","TYPE","VENDOR","VERSION","MOBILE","TABLET","SMARTTV","regexes","extensions","mergedRegexes","str1","str2","lowerize","mapper","rgx","_str","maps","oldsafari","1.2","1.3","amazon","sprint","HTC","Sprint","windows","ME","2000","XP","Vista","7","8.1","10","RT","cpu","UAParser","uastring","getResult","rgxmap","architecture","setUA","BROWSER","MAJOR","CPU","ARCHITECTURE","DEVICE","CONSOLE","WEARABLE","EMBEDDED","ENGINE","OS","$","jQuery","Zepto","parser","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","symbol","objectOf","checkPropTypes","PropTypes","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Memo","Portal","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","__createBinding","k2","__classPrivateFieldGet","receiver","privateMap","__classPrivateFieldSet","globalThis","race","serverResponse","toJSON","firebaseEndpoint","secureTokenEndpoint","identityPlatformEndpoint","$goog_Thenable","some","Location","OffscreenCanvas","cssText","htmlFor","cellpadding","cellspacing","colspan","frameborder","maxlength","role","rowspan","usemap","valign","contentType","write","protocol","setImmediate","Window","reason","freeze","2","3","4","handleEvent","Boolean","screen","availHeight","availWidth","resizable","statusbar","toolbar","scrollbars","standalone","noreferrer","createEvent","initMouseEvent","noopener","readyState","WorkerGlobalScope","importScripts","localStorage","___jsl","CP","visibilityState","connection","abcd","nf","factorId","enrollmentTime","zf","phoneNumber","operation","continueUrl","languageCode","recoverEmail","resetPassword","revertSecondFactorAddition","signIn","verifyAndChangeEmail","verifyEmail","canHandleCodeInApp","androidPackageName","androidMinimumVersion","androidInstallApp","iOSBundleId","dynamicLinkDomain","sub","iss","aud","provider_id","sign_in_provider","is_anonymous","isNewUser","kind","rawUserInfo","providerId","profile","screenName","pendingToken","requestUri","signInMethod","oauthToken","oauthTokenSecret","id_token","access_token","oauth_token_secret","postBody","oauthIdToken","oauthAccessToken","isOAuthProvider","credential","EMAIL_LINK_SIGN_IN_METHOD","EMAIL_PASSWORD_SIGN_IN_METHOD","verificationId","verificationCode","temporaryProof","sessionInfo","rawNonce","urlResponse","sessionId","multiFactorSession","pendingCredential","oobCode","PROVIDER_ID","verify","session","phoneSessionInfo","phoneEnrollmentInfo","recaptchaToken","phoneResponseInfo","mfaPendingCredential","mfaEnrollmentId","multiFactorHint","multiFactorUid","phoneSignInInfo","PHONE_SIGN_IN_METHOD","getUid","ActiveXObject","XDomainRequest","onreadystatechange","statusText","onprogress","ontimeout","abort","setRequestHeader","getResponseHeader","getAllResponseHeaders","read","credentials","Request","arrayBuffer","ReadableStream","getReader","TextDecoder","stream","FormData","withCredentials","getResponse","mozResponseArrayBuffer","charset","secureTokenTimeout","secureTokenHeaders","firebaseTimeout","firebaseHeaders","gapi","client","setApiKey","setToken","authType","photoUrl","phoneVerificationInfo","needConfirmation","returnIdpCredential","autoCreate","deleteAttribute","newEmail","newPassword","deleteProvider","recaptchaSiteKey","USER_NOT_FOUND","returnSecureToken","keyInvalid","ipRefererBlocked","INVALID_CUSTOM_TOKEN","CREDENTIAL_MISMATCH","MISSING_CUSTOM_TOKEN","INVALID_IDENTIFIER","MISSING_CONTINUE_URI","INVALID_EMAIL","INVALID_PASSWORD","USER_DISABLED","MISSING_PASSWORD","EMAIL_EXISTS","PASSWORD_LOGIN_DISABLED","INVALID_IDP_RESPONSE","INVALID_PENDING_TOKEN","FEDERATED_USER_ID_ALREADY_LINKED","MISSING_OR_INVALID_NONCE","INVALID_MESSAGE_PAYLOAD","INVALID_RECIPIENT_EMAIL","INVALID_SENDER","EMAIL_NOT_FOUND","RESET_PASSWORD_EXCEED_LIMIT","EXPIRED_OOB_CODE","INVALID_OOB_CODE","MISSING_OOB_CODE","INVALID_PROVIDER_ID","CREDENTIAL_TOO_OLD_LOGIN_AGAIN","INVALID_ID_TOKEN","TOKEN_EXPIRED","CORS_UNSUPPORTED","DYNAMIC_LINK_NOT_ACTIVATED","INVALID_APP_ID","TOO_MANY_ATTEMPTS_TRY_LATER","WEAK_PASSWORD","OPERATION_NOT_ALLOWED","USER_CANCELLED","CAPTCHA_CHECK_FAILED","INVALID_APP_CREDENTIAL","INVALID_CODE","INVALID_PHONE_NUMBER","INVALID_SESSION_INFO","INVALID_TEMPORARY_PROOF","MISSING_APP_CREDENTIAL","MISSING_CODE","MISSING_PHONE_NUMBER","MISSING_SESSION_INFO","QUOTA_EXCEEDED","SESSION_EXPIRED","REJECTED_CREDENTIAL","INVALID_CONTINUE_URI","MISSING_ANDROID_PACKAGE_NAME","MISSING_IOS_BUNDLE_ID","UNAUTHORIZED_DOMAIN","INVALID_DYNAMIC_LINK_DOMAIN","INVALID_OAUTH_CLIENT_ID","INVALID_CERT_HASH","UNSUPPORTED_TENANT_OPERATION","INVALID_TENANT_ID","TENANT_ID_MISMATCH","ADMIN_ONLY_OPERATION","INVALID_MFA_PENDING_CREDENTIAL","MFA_ENROLLMENT_NOT_FOUND","MISSING_MFA_PENDING_CREDENTIAL","MISSING_MFA_ENROLLMENT_ID","EMAIL_CHANGE_NEEDS_VERIFICATION","SECOND_FACTOR_EXISTS","SECOND_FACTOR_LIMIT_EXCEEDED","UNSUPPORTED_FIRST_FACTOR","UNVERIFIED_EMAIL","where","messageHandlersFilter","dontclear","restyle","setHideOnLeave","ping","authorizedDomains","authEvent","reactNative","AsyncStorage","webStorageSupport","messageChannel","onMessage","eventType","keyProcessed","serviceWorker","keyPath","objectStoreNames","controller","openCursor","fbase_key","Fk","sessionStorage","Gk","Browser","Hk","Node","Ik","ReactNative","Jk","Worker","Kk","ports","Lk","Pk","Mk","Ok","Qk","Rk","Sk","Uk","Wk","Xk","Vk","dl","Yk","$k","bl","cl","Int32Array","fl","gl","hl","kl","ll","ml","nl","ol","ql","ul","rl","tl","handleOpenURL","vl","Zk","wl","ibi","apn","appDisplayName","sl","xl","zl","Bl","Cl","Dl","El","signInViaRedirect","linkViaRedirect","reauthViaRedirect","signInViaPopup","linkViaPopup","reauthViaPopup","Fl","Gl","Hl","Il","Jl","Kl","Al","Ll","Ml","Nl","Ol","Pl","yl","Ql","Rl","Sl","Tl","Vl","Xl","Wl","user","$l","am","bm","cm","auth_time","iat","authTime","signInProvider","signInSecondFactor","sign_in_second_factor","dm","em","fm","Ul","Yl","Zl","gm","hm","im","lm","mm","nm","om","multiFactor","enrolledFactors","pm","sm","vm","wm","xm","zm","grant_type","refresh_token","Am","lastSignInTime","Cm","photoURL","Dm","authDomain","emulatorConfig","Em","Fm","Gm","Hm","Im","Jm","Km","Lm","Mm","Nm","Pm","Qm","emailVerified","isAnonymous","createdAt","lastLoginAt","providerData","Rm","Sm","Tm","Um","Vm","Wm","Xm","Bm","ym","Ym","Zm","rm","bn","an","additionalUserInfo","operationType","cn","reload","dn","en","gn","hn","jn","kn","stsTokenManager","redirectEventId","nn","jm","km","mfaInfo","qm","tm","um","users","localId","providerUserInfo","rawId","$m","passwordHash","pn","rn","Tk","un","tn","qn","sn","wn","xn","yn","zn","An","On","Bn","Ln","Cn","Dn","logFramework","En","Fn","Gn","Hn","Jn","Nn","ln","Mn","Om","Kn","currentUser","Qn","_lat","Rn","Sn","Nk","languages","language","userLanguage","innerText","backgroundColor","textAlign","settings","vn","mn","addAuthTokenListener","Pn","removeAuthTokenListener","continueUri","signinMethods","Tn","Vn","Wn","Un","Xn","Yn","Zn","$n","ao","grecaptcha","bo","co","eo","fo","theme","ho","hasChildNodes","io","jo","ko","mo","no","oo","appVerificationDisabledForTesting","po","qo","lo","ro","so","xo","Ao","Bo","Do","Eo","Fo","Persistence","LOCAL","SESSION","appVerificationDisabled","ActionCodeInfo","Operation","EMAIL_SIGNIN","PASSWORD_RESET","RECOVER_EMAIL","REVERT_SECOND_FACTOR_ADDITION","VERIFY_AND_CHANGE_EMAIL","VERIFY_EMAIL","Auth","AuthCredential","App","DOMStorageWrapper","domStorage_","prefix_","prefixedName_","storedVal","MemoryStorage","cache_","isInMemoryStorage","createStoragefor","domStorageName","domStorage","PersistentStorage","SessionStorage","logClient","LUIDGenerator","sha1","sha1Bytes","buildLogMessage_","varArgs","firstLog_","enableLogging","logger_","persistent","logWrapper","isInvalidJSONNumber","POSITIVE_INFINITY","NEGATIVE_INFINITY","MIN_NAME","MAX_NAME","nameCompare","aAsInt","tryParseInt","bAsInt","stringCompare","requireKey","ObjectToUniqueKey","splitStringBySize","segsize","dataSegs","each","doubleToIEEE754String","LN2","hexByteString","hexByte","INTEGER_REGEXP_","intVal","exceptionGuard","beingCrawled","setTimeoutNonBlocking","Path","pathOrString","pieceNum","pieces_","copyTo","pieceNum_","getFront","getLength","popFront","getBack","pathString","toUrlEncodedString","begin","pieces","childPathObj","childPieces","relativePath","outerPath","innerPath","outer","comparePaths","leftKeys","rightKeys","cmp","equals","other","ValidationPath","errorPrefix_","parts_","byteLength_","checkValid_","MAX_PATH_LENGTH_BYTES","MAX_PATH_DEPTH","toErrorString","LONG_POLLING","RepoInfo","secure","webSocketOnly","nodeAdmin","persistenceKey","includeNamespaceInQueryParams","domain","internalHost","needsQueryParam","isCustomHost","isCacheableHost","isDemoHost","updateHost","newHost","connectionURL","connURL","pairs","toURLString","__EMPTY_NODE","MAX_NODE","parseRepoInfo","dataURL","parsedUrl","parseDatabaseURL","scheme","repoInfo","subdomain","port","colonInd","slashInd","questionMarkInd","pathStringDecoded","piece","queryParams","results","kv","decodeQuery","hostWithoutPort","dotInd","INVALID_KEY_REGEX_","INVALID_PATH_REGEX_","isValidKey","isValidPathString","isValidPriority","validateFirebaseDataArg","validateFirebaseData","path_","hasDotValue_1","hasActualChild_1","validateFirebaseMergeDataArg","mergePaths","curPath","prevPath","validateFirebaseMergePaths","validatePriority","validateEventType","validateKey","validatePathString","validateRootPathString","validateWritablePath","validateUrl","isValidRootPathString","validateBoolean","OnDisconnect","repo_","onComplete","onDisconnectCancel","onDisconnectSet","setWithPriority","onDisconnectSetWithPriority","objectToMerge","newObjectToMerge","onDisconnectUpdate","TransactionResult","committed","snapshot","nextPushId","PUSH_CHARS","lastPushTime","lastRandChars","duplicateTime","timeStampChars","NamedNode","Wrap","getCompare","indexedValueChanged","oldNode","newNode","oldWrapped","newWrapped","minPost","MIN","KeyIndex","isDefinedOn","maxPost","makePost","indexValue","KEY_INDEX","__childrenNodeConstructor","nodeFromJSON","MAX_NODE$1","priorityHashText","validatePriorityNode","priorityNode","isLeafNode","getPriority","LeafNode","value_","priorityNode_","EMPTY_NODE","lazyHash_","updatePriority","newPriorityNode","getImmediateChild","childName","getChild","hasChild","getPredecessorChildName","childNode","updateImmediateChild","newChildNode","updateChild","front","numChildren","forEachChild","exportFormat","toHash","compareTo","compareToLeafNode_","otherLeaf","otherLeafType","thisLeafType","otherIndex","VALUE_TYPE_ORDER","thisIndex","withIndex","isIndexed","_defaultIndexMap","PRIORITY_INDEX","PriorityIndex","aPriority","bPriority","indexCmp","SortedMapIterator","startKey","comparator","isReverse_","resultGenerator_","nodeStack_","getNext","hasNext","peek","LLRBNode","RED","SortedMap","copy","inorderTraversal","reverseTraversal","min_","minKey","maxKey","insert","fixUp_","removeMin_","isRed_","moveRedLeft_","smallest","rotateRight_","moveRedRight_","rotateLeft_","colorFlip_","nr","checkMaxDepth_","blackDepth","check_","BLACK","LLRBEmptyNode","comparator_","root_","getPredecessorKey","rightParent","getIterator","resultGenerator","getIteratorFrom","getReverseIteratorFrom","getReverseIterator","LOG_2","Base12Num","current_","mask","bits_","nextBitIsOne","buildChildSet","childList","keyFn","mapSortFn","root","base12","buildPennant","chunkSize","low","childTree","buildBalancedTree","namedNode","middle","attachPennant","pennant","isOne","buildFrom12Array","fallbackObject","IndexMap","indexes_","indexSet_","indexKey","sortedMap","hasIndex","indexDefinition","addIndex","existingChildren","sawIndexedValue","indexName","newIndexSet","newIndexes","addToIndexes","indexedChildren","existingSnap","newChildren","removeFromIndexes","NAME_ONLY_COMPARATOR","NAME_COMPARATOR","ChildrenNode","children_","indexMap_","Default","newIndexMap","newPriority","newImmediateChild","numKeys","allIntegerKeys","toHash_1","childHash","idx","resolveIndex_","predecessor","getFirstChildName","getFirstChild","getLastChildName","getLastChild","wrappedNode","startPost","endPost","MAX_NODE$2","otherChildrenNode","thisIter","otherIter","thisCurrent","otherCurrent","MaxNode","MAX","setMaxNode$1","USE_HINZE","nodeFromJSON$1","node_1","childData","children_1","childrenHavePriority_1","childSet","sortedChildSet","setNodeFromJSON","__referenceConstructor","VALUE_INDEX","ValueIndex","valueNode","PathIndex","indexPath_","extractChild","snap","aChild","bChild","DataSnapshot","node_","ref_","index_","exportVal","exists","childPathString","childPath","childRef","childrenNode","hasChildren","getRef","DataEvent","eventRegistration","prevName","getPath","getParent","getEventType","getEventRunner","CancelEvent","ValueEventRegistration","callback_","cancelCallback_","context_","respondsTo","getQueryParams","snapshotNode","eventData","ctx","cancelCB_1","cb_1","createCancelEvent","hasAnyCallback","ChildEventRegistration","callbacks_","eventToCheck","cancelCB_2","cb_2","otherKeys","thisKeys","otherCount","otherKey","thisKey","Query","repo","queryParams_","orderByCalled_","validateQueryEndpoints_","startNode","endNode","hasStart","getIndexStartValue","hasEnd","getIndexEndValue","tooManyArgsError","wrongArgTypeError","getIndexStartName","getIndexEndName","validateLimit_","hasLimit","hasAnchoredLimit","validateNoPreviousOrderByCall_","cancelCallbackOrContext","ret","getCancelAndContextArgs_","onValueEvent","onChildEvent","cancelCallback","addEventCallbackForQuery","valueCallback","removeEventCallbackForQuery","userCallback","failureCallbackOrContext","firstCall","onceCallback","limitToFirst","limitToLast","orderByChild","parsedPath","newParams","orderBy","orderByKey","orderByPriority","orderByValue","startAt","endAt","equalTo","queryObject","getQueryObject","queryIdentifier","sameRepo","samePath","sameQueryIdentifier","cancelOrContext","ExistingValueProvider","DeferredValueProvider","syncTree","syncTree_","calcCompleteEventCache","resolveDeferredLeafValue","existingVal","serverValues","resolveScalarDeferredValue","resolveComplexDeferredValue","existing","unused","existingNode","resolveDeferredValueTree","resolveDeferredValue","resolveDeferredValueSnapshot","rawPri","leafNode","OperationType","SparseSnapshotTree","childKey","remember","forget","self_1","tree","forEachTree","prefixPath","emptyChildrenSingleton","__referenceConstructor$1","OperationSource","fromUser","fromServer","queryId","tagged","Server","forServerTaggedQuery","AckUserWrite","affectedTree","revert","ACK_USER_WRITE","operationForChild","subtree","Empty","EmptyChildren","ImmutableTree","fromObject","childSnap","findRootMostMatchingPathAndValue","predicate","childExistingPathAndValue","findRootMostValueAndPath","toSet","newChild","setTree","newTree","fold","fold_","pathSoFar","accum","findOnPath","findOnPath_","pathToFollow","nextChild","foreachOnPath","foreachOnPath_","currentRelativePath","foreach","foreach_","foreachChild","ListenComplete","LISTEN_COMPLETE","Overwrite","OVERWRITE","Merge","MERGE","CacheNode","fullyInitialized_","filtered_","isFullyInitialized","isFiltered","isCompleteForPath","isCompleteForChild","getNode","ViewCache","eventCache_","serverCache_","updateEventSnap","eventSnap","filtered","updateServerSnap","serverSnap","getEventCache","getCompleteEventSnap","getServerCache","getCompleteServerSnap","Change","oldSnap","valueChange","VALUE","childAddedChange","CHILD_ADDED","childRemovedChange","CHILD_REMOVED","childChangedChange","newSnapshot","oldSnapshot","CHILD_CHANGED","childMovedChange","CHILD_MOVED","IndexedFilter","affectedPath","optChangeAccumulator","oldChild","trackChildChange","updateFullNode","newSnap","filtersNodes","getIndexedFilter","ChildChangeAccumulator","changeMap","oldChange","oldType","getChanges","NO_COMPLETE_CHILD_SOURCE","NoCompleteChildSource_","getCompleteChild","getChildAfterChild","WriteTreeCompleteChildSource","writes_","viewCache_","optCompleteServerCache_","serverNode","calcCompleteChild","completeServerData","calcIndexedSlice","ProcessorResult","viewCache","changes","ViewProcessor","filter_","assertIndexed","applyOperation","oldViewCache","writesCache","completeCache","newViewCache","filterServerNode","accumulator","overwrite","applyUserOverwrite_","applyServerOverwrite_","merge","applyUserMerge_","applyServerMerge_","ackUserWrite","revertUserWrite_","ackUserWrite_","listenComplete_","maybeAddValueEvent_","isLeafOrEmpty","oldCompleteSnap","generateEventCacheAfterServerEvent_","changePath","oldEventSnap","shadowingWrite","newEventCache","serverCache","completeChildren","completeEventChildren","calcCompleteEventChildren","completeNode","oldEventNode","updatedPriority","calcEventCacheAfterServerOverwrite","childChangePath","newEventChild","eventChildUpdate","changedSnap","newServerCache","oldServerSnap","serverFilter","newServerNode","newEventSnap","cacheHasChild_","changedChildren","curViewCache","writePath","applyMerge_","viewMergeTree","serverChild","childMergeTree","isUnknownDeepMerge","ackPath","changedChildren_1","changedChildren_2","mergePath","serverCachePath","oldServerNode","completeServerCache","oldEventCache","serverChildren","EventGenerator","query_","generateEventsForChanges","eventCache","eventRegistrations","moves","generateEventsForType_","registrations","filteredChanges","compareChanges_","materializedChange","materializeSingleChange_","registration","aWrapped","bWrapped","View","initialViewCache","eventRegistrations_","indexFilter","getNodeFilter","processor_","initialServerCache","initialEventCache","eventGenerator_","getQuery","getCompleteServerCache","loadsAllData","addEventRegistration","removeEventRegistration","cancelError","cancelEvents","path_1","maybeEvent","remaining","generateEventsForChanges_","getInitialEvents","initialChanges","SyncPoint","views","optCompleteServerCache","serverCacheComplete","eventCacheComplete","e_2","removed","hadCompleteView","hasCompleteView","viewQueryId","e_2_1","getQueryViews","e_3","e_3_1","e_4","e_4_1","viewForQuery","getCompleteView","viewExistsForQuery","e_5","e_5_1","CompoundWrite","writeTree_","addWrite","rootmost","rootMostPath","addWrites","updates","newWrite","removeWrite","hasCompleteWrite","getCompleteNode","getCompleteChildren","childCompoundWrite","shadowingNode","applySubtreeWrite","writeTree","priorityWrite_1","WriteTree","visibleWrites_","allWrites_","lastWriteId_","childWrites","WriteTreeRef","addOverwrite","writeId","visible","addMerge","getWrite","findIndex","writeToRemove","removedWriteWasVisible","removedWriteOverlapsWithOtherWrites","currentWrite","recordContainsPath_","resetTree_","getCompleteWriteData","treePath","writeIdsToExclude","includeHiddenWrites","mergeAtPath","layerTree_","layeredCache","subMerge","completeServerChildren","topLevelSet","merge_1","existingEventSnap","existingServerSnap","childMerge","toIterate","writeRecord","DefaultFilter_","writes","treeRoot","compoundWrite","deepNode","treePath_","existingServerCache","SyncTree","listenProvider_","syncPointTree_","pendingWriteTree_","tagToQueryMap","queryToTagMap","applyUserOverwrite","newData","applyOperationToSyncPoints_","applyUserMerge","changeTree","affectedTree_1","applyServerOverwrite","applyServerMerge","applyListenComplete","applyTaggedQueryOverwrite","queryKey","queryKeyForTag_","parseQueryKey_","queryPath","applyTaggedOperation_","applyTaggedQueryMerge","applyTaggedListenComplete","foundAncestorDefaultView","pathToSyncPoint","sp","syncPoint","childSyncPoint","viewAlreadyExists","makeQueryKey_","getNextQueryTag_","setupListener_","maybeSyncPoint","removedAndEvents","removingDefault","covered","parentSyncPoint","newViews","collectDistinctViewsForSubTree_","newQuery","createListenerForView_","startListening","queryForListening_","tagForQuery_","hashFn","stopListening","queryToRemove","tagToRemove","removeTags_","maybeChildSyncPoint","childMap","views_1","childViews","queries","removedQuery","removedQueryKey","removedQueryTag","isDefault","queriesToStop","queries_1","childQueries","queryToStop","errorForServerCode","nextQueryTag_","applyOperationHelper_","syncPointTree","applyOperationDescendantsHelper_","childOperation","childServerCache","childWritesCache","SnapshotHolder","rootNode_","updateSnapshot","newSnapshotNode","StatsCollection","counters_","incrementCounter","StatsManager","getCollection","hashString","collections_","getOrCreateReporter","creatorFunction","reporters_","StatsListener","collection_","last_","newStats","stat","FIRST_STATS_MIN_TIME","FIRST_STATS_MAX_TIME","StatsReporter","server_","statsToReport_","statsListener_","reportStats_","includeStat","stats","reportedStats","haveStatsToReport","reportStats","EventQueue","eventLists_","recursionDepth_","queueEvents","eventDataList","currList","eventPath","EventList","raiseEventsAtPath","raiseQueuedEventsMatchingPredicate_","raiseEventsForChangedPath","changedPath","sentAll","eventList","raise","events_","eventFn","EventEmitter","allowedEvents_","listeners_","trigger","validateEventType_","getInitialEvent","et","VisibilityMonitor","visibilityChange","visible_","getInstance","OnlineMonitor","online_","currentlyOnline","PacketReceiver","onMessage_","pendingResponses","currentResponseNum","closeAfterResponse","onClose","closeAfter","responseNum","handleResponse","requestNum","toProcess","this_1","_loop_2","FIREBASE_LONGPOLL_COMMAND_CB_NAME","FIREBASE_LONGPOLL_DATA_CB_NAME","BrowserPollConnection","connId","transportSessionId","lastSessionId","bytesSent","bytesReceived","everConnected_","log_","stats_","urlFn","onDisconnect","curSegmentNum","onDisconnect_","myPacketOrderer","isClosed_","connectTimeoutTimer_","onClosed_","called_1","wrappedFn_1","executeWhenDOMReady","scriptTagHolder","FirebaseIFrameScriptHolder","arg1","arg2","incrementIncomingBytes_","sendNewPolls","pN","urlParams","uniqueCallbackIdentifier","connectURL","addTag","startLongPoll","addDisconnectPingFrame","forceAllow","forceAllow_","forceDisallow","forceDisallow_","isAvailable","Windows","UI","markConnectionHealthy","shutdown_","myDisconnFrame","dataStr","base64data","MAX_URL_DATA_SIZE","enqueueSegment","pw","commandCB","onMessageCB","outstandingRequests","pendingSegs","currentSerial","myIFrame","createIFrame_","script","iframeContents","doc","contentDocument","alive","myID","myPW","newRequest_","theURL","curDataString","theSeg","seg","ts","addLongPollTag_","segnum","totalsegs","serial","doNewRequest","keepaliveTimeout","loadCB","doNodeLongPoll","newScript_1","rstate","WebSocketImpl","MozWebSocket","WebSocket","WebSocketConnection","keepaliveTimer","totalFrames","connectionURL_","mySock","onopen","onclose","handleIncomingFrame","isOldAndroid","oldAndroidMatch","previouslyFailed","appendFrame_","fullMess","jsonMess","handleNewFrameCount_","frameCount","extractFrameCount_","mess","resetKeepAlive","remainingData","sendString_","responsesRequiredToBeHealthy","healthyTimeout","TransportManager","initTransports_","isWebSocketsAvailable","isSkipPollConnection","transports_","transports","ALL_TRANSPORTS","initialTransport","upgradeTransport","Connection","repoInfo_","applicationId_","onReady_","onKill_","connectionCount","pendingDataMessages","state_","transportManager_","start_","conn","conn_","nextTransportId_","primaryResponsesRequired_","onMessageReceived","connReceiver_","onConnectionLost","disconnReceiver_","tx_","rx_","secondaryConn_","isHealthy_","healthyTimeoutMS","healthyTimeout_","everConnected","onConnectionLost_","onSecondaryConnectionLost_","onPrimaryMessageReceived_","onSecondaryMessageReceived_","sendRequest","dataMsg","sendData_","tryCleanupConnection","onSecondaryControl_","controlData","cmd","upgradeIfSecondaryHealthy_","secondaryResponsesRequired_","parsedData","layer","proceedWithUpgrade_","onControl_","onDataMessage_","onPrimaryResponse_","onHandshake_","onConnectionShutdown_","onReset_","sendPingOnPrimaryIfNecessary_","handshake","onConnectionEstablished_","tryStartUpgrade_","startUpgrade_","closeConnections_","ServerActions","onDisconnectPut","onDisconnectMerge","RECONNECT_MIN_DELAY","RECONNECT_MAX_DELAY_DEFAULT","PersistentConnection","onDataUpdate_","onConnectStatus_","onServerInfoUpdate_","authTokenProvider_","authOverride_","nextPersistentConnectionId_","interruptReasons_","listens","outstandingPuts_","outstandingPutCount_","onDisconnectRequestQueue_","connected_","reconnectDelay_","maxReconnectDelay_","securityDebugCallback_","establishConnectionTimer_","requestCBHash_","requestNumber_","realtime_","authToken_","forceTokenRefresh_","invalidAuthTokenCount_","firstConnection_","lastConnectionAttemptTime_","lastConnectionEstablishedTime_","scheduleConnect_","onVisible_","onOnline_","onResponse","curReqNum","currentHashFn","listenSpec","sendListen_","req","warnOnListenWarnings_","removeListen_","warnings","indexSpec","indexPath","tryAuth","reduceReconnectDelayIfAdminCredential_","token_1","authMethod","requestData","cred","onAuthRevoked_","sendUnlisten_","queryObj","sendOnDisconnect_","putInternal","sendPut_","queued","errorReason","reqNum","onDataPush_","onListenRevoked_","onSecurityDebugPacket_","handleTimestamp_","sendConnectStats_","restoreState_","establishConnection_","online","onRealtimeDisconnect_","cancelSentTransactions_","shouldReconnect_","timeSinceLastConnectAttempt","reconnectDelay","onDataMessage_1","onReady_1","onDisconnect_1","connId_1","nextConnectionId_","lastSessionId_1","canceled_1","connection_1","closeFn_1","interrupt","serverTimeOffset","normalizedPathString","statusCode","explanation","notifyForInvalidToken","clientName","ReadonlyRestClient","listens_","getListenId_","listenId","thisListen","queryStringParameters","toRestQueryStringParameters","restRequest_","authTokenData","Repo","forceRestClient","authTokenProvider","dataUpdateCount","eventQueue_","nextWriteId_","interceptServerDataCallback_","persistentConnection_","authOverride","addTokenChangeListener","statsReporter_","transactionsInit_","infoData_","infoSyncTree_","infoEvents","updateInfo_","serverSyncTree_","serverTime","generateServerValues","isMerge","taggedChildren","taggedSnap","rerunTransactions_","interceptServerData_","connectStatus","runOnDisconnectEvents_","getNextWriteId_","newVal","newNodeUnresolved","success","clearEvents","callOnCompleteCallback","abortTransactions_","childrenToMerge","empty","changedKey","changedValue","writeId_1","resolvedOnDisconnectTree","resolved","showDelta","longestName","previousValue","currentValue","paddedStat","statsIncrementCounter","metric","__database","Database","RangedFilter","indexedFilter_","startPost_","getStartPost_","endPost_","getEndPost_","getStartPost","getEndPost","startName","endName","LimitedFilter","rangedFilter_","limit_","getLimit","reverse_","isViewFromLeft","fullLimitUpdateChild_","indexCompare_1","foundStartPost","changeAccumulator","indexCmp_1","newChildNamedNode","windowBoundary","inRange","oldChildSnap","compareNext","QueryParams","limitSet_","startSet_","startNameSet_","endSet_","endNameSet_","viewFrom_","indexStartValue_","indexStartName_","indexEndValue_","indexEndName_","WIRE_PROTOCOL_CONSTANTS_","VIEW_FROM_LEFT","copy_","newLimit","VIEW_FROM_RIGHT","WIRE_PROTOCOL_CONSTANTS","INDEX_START_VALUE","INDEX_START_NAME","INDEX_END_VALUE","INDEX_END_NAME","LIMIT","viewFrom","VIEW_FROM","INDEX","REST_CONSTANTS","REST_QUERY_CONSTANTS_","qs","ORDER_BY","START_AT","END_AT","LIMIT_TO_FIRST","LIMIT_TO_LAST","DEFAULT","Reference","parentPath","getRoot","databaseProp","database","transactionUpdate","applyLocally","promiseComplete","startTransaction","setPriority","thennablePushRef","pushRef","TransactionStatus","TreeNode","childCount","Tree","parent_","subTree","pathObj","updateParents_","forEachDescendant","includeSelf","childrenFirst","forEachAncestor","forEachImmediateDescendantWithValue","updateChild_","childEmpty","childExists","MAX_TRANSACTION_RETRIES_","transactionQueueTree_","watchRef","retryCount","unwatcher","abortReason","currentWriteId","currentInputSnapshot","currentOutputSnapshotRaw","currentOutputSnapshotResolved","currentState","getLatestState_","RUN","queueNode","nodeQueue","priorityForNode","sendReadyTransactions_","excludeSets","pruneCompletedTransactionsBelowNode_","buildTransactionQueue_","sendTransactionQueue_","setsToIgnore","txn","latestState","snapToSend","latestHash","SENT","dataToSend","pathToSend","COMPLETED","SENT_NEEDS_ABORT","NEEDS_ABORT","rootMostTransactionNode","getAncestorTransactionNode_","rerunTransactionQueue_","abortTransaction","currentNode","newDataNode","oldWriteId","newNodeResolved","lastInput","transactionNode","transactionQueue","aggregateTransactionQueuesForNode_","abortTransactionsOnNode_","lastSent","_staticInstance","FirebaseAuthTokenProvider","app_","authProvider_","auth_","removeTokenChangeListener","EmulatorAdminTokenProvider","EMULATOR_AUTH_TOKEN","RepoManager","repos_","useRestClient_","dbUrl","databaseFromApp","authProvider","databaseURL","isEmulator","dbEmulatorHost","createRepo","deleteRepo","appRepos","DatabaseInternals","checkDeleted_","refFromURL","apiName","parsedURL","goOffline","goOnline","ServerValue","TIMESTAMP","increment","forceLongPolling","forceWebSockets","setSecurityDebugCallback","interceptServerData","DataConnection","simpleListen","echo","onEcho","RealTimeConnection","ConnectionTarget","TEST_ACCESS","hijackHash","newHash","oldPut","_forceRestClient","registerDatabase","setSDKVersion","OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","UNAVAILABLE","DATA_LOSS","segments","fromBase64String","fromUint8Array","toBase64","toUint8Array","tt","nt","ssl","rt","it","ot","nanoseconds","fromMillis","fromDate","toDate","toMillis","padStart","st","ut","at","ct","isInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","ht","collectionGroup","filters","ft","lt","pt","pr","Zt","dt","vt","yt","gt","targetId","sequenceNumber","lastLimboFreeSnapshotVersion","resumeToken","mt","wt","_t","bt","Et","EMPTY","It","Tt","At","Rt","Pt","Vt","St","Dt","Ct","Nt","first","Ft","xt","$t","kt","Mt","Lt","Ot","Ut","Bt","qt","docs","Qt","docChanges","Wt","jt","Kt","Gt","zt","Ht","Yt","Jt","Xt","removedTargetIds","targetIds","cause","removeTarget","mapValue","__type__","__local_write_time__","timestampValue","nanos","booleanValue","bytesValue","referenceValue","geoPointValue","latitude","longitude","integerValue","doubleValue","arrayValue","asc","in","proto","updateMask","In","transform","fieldTransforms","fieldPath","setToServerValue","appendMissingElements","elements","removeAllFromArray","currentDocument","updateTime","fieldPaths","documents","structuredQuery","collectionId","allDescendants","unaryFilter","fieldFilter","compositeFilter","fr","before","ur","NaN","nullValue","__previous_value__","serializer","transformResults","hasCommittedMutations","cr","lr","rr","ir","or","sr","tr","er","dr","vr","yr","gr","Er","onblocked","wr","createOrUpgrade","onversionchange","runTransaction","mr","_r","aborted","Nr","Ir","es","ns","ss","rs","primaryKey","openKeyCursor","Tr","Ar","Sr","Dr","cs","us","hs","ls","fs","ds","ws","xr","Ts","Es","Is","As","Rs","gs","Ps","ys","Vs","enqueue","bs","vs","Ss","Ds","Cs","Ns","Fs","xs","$s","ks","Ms","Os","Lr","kr","Ls","Rr","Bs","onlineState","Or","Us","Qs","Ws","Cr","Pr","js","Vr","Ur","Fr","Ks","Gs","zs","includeMetadataChanges","Hs","Ys","Js","Xs","hasPendingWrites","Mr","Zs","qr","jr","Gr","zr","Br","batchId","updateTimeMs","Wr","Kr","activeTargetIds","Qr","Hr","Yr","storageArea","$r","Xr","baseMutations","mutations","Jr","batch","Zr","readTime","getEntries","uo","_o","do","wo","To","Io","Ro","Po","yo","Vo","maxValue","vo","So","Co","noDocument","unknownDocument","localWriteTimeMs","lastListenSequenceNumber","userId","No","$o","IDBKeyRange","bound","userMutationsIndex","PLACEHOLDER","Mo","Oo","Lo","Uo","prefixForPath","Qo","Wo","Ko","Go","zo","prefixForUser","Ho","Yo","updateMetadata","getMetadata","byteSize","Jo","Xo","Zo","collectionReadTimeIndex","autoIncrement","userMutationsKeyPath","unique","deleteObjectStore","removeAcknowledgedMutations","addDocumentGlobal","ensureSequenceNumbers","createCollectionParentIndex","readTimeIndex","readTimeIndexPath","collectionReadTimeIndexPath","rewriteCanonicalIds","lastAcknowledgedBatchId","highestListenSequenceNumber","ownerId","allowTabSynchronization","leaseTimestampMs","lastStreamToken","canonicalId","queryTargetsIndexName","queryTargetsKeyPath","documentTargetsIndex","documentTargetsKeyPath","highestTargetId","lastRemoteSnapshotVersion","targetCount","networkEnabled","inForeground","newVersion","persistence","Authorization","tu","eu","nu","getAuthHeaderValueForFirstParty","su","iu","ru","ou","au","cu","uu","hu","lu","_u","fu","du","wu","mu","Tu","Eu","Iu","Au","Ru","gu","Pu","targetChange","targetChangeType","documentChange","documentDelete","documentRemove","yu","Vu","addTarget","labels","pu","bu","Su","streamToken","writeResults","commitTime","Du","Cu","Nu","Fu","xu","$u","ku","terminate","Mu","Ou","Lu","Bu","qu","Uu","Qu","Wu","ju","Ku","Gu","zu","Hu","Yu","Ju","Xu","Zu","ps","vu","as","_h","al","_l","BatchGetDocuments","Commit","RunQuery","XhrIo","listenOnce","EventType","COMPLETE","getLastErrorCode","ErrorCode","NO_ERROR","getResponseJson","TIMEOUT","HTTP_ERROR","getStatus","getResponseText","createWebChannelTransport","httpSessionIdParam","initMessageHeaders","messageUrlParams","sendRawJson","supportsCrossDomainXhr","internalChannelParams","forwardChannelRequestTimeoutMs","detectBufferingProxy","httpHeadersOverwriteParam","createWebChannel","WebChannel","OPEN","CLOSE","MESSAGE","persistenceSettings","clearPersistence","synchronizeTabs","cacheSizeBytes","t_","documentId","e_","n_","s_","i_","r_","o_","ignoreUndefinedProperties","a_","c_","u_","h_","l_","f_","d_","w_","m_","T_","E_","I_","A_","R_","g_","P_","mergeFields","y_","V_","p_","b_","v_","S_","found","missing","D_","C_","commit","updateFunction","N_","F_","x_","k_","M_","O_","L_","B_","enableNetwork","q_","U_","DOMException","disableNetwork","waitForPendingWrites","Q_","j_","K_","G_","timestampsInSnapshots","H_","Y_","J_","X_","Z_","if","experimentalForceLongPolling","experimentalAutoDetectLongPolling","sessionIndex","enablePersistence","experimentalTabSynchronization","experimentalForceOwningTab","z_","onSnapshotsInSync","firestore","onSnapshot","withConverter","fromFirestore","serverTimestamps","startAfter","endBefore","toFirestore","serverTimestamp","arrayUnion","arrayRemove","Firestore","GeoPoint","Timestamp","Blob","WriteBatch","DocumentReference","DocumentSnapshot","QueryDocumentSnapshot","QuerySnapshot","CollectionReference","FieldPath","FieldValue","CACHE_SIZE_UNLIMITED","__PRIVATE_registerFirestore","commonjsGlobal","goog","class_1","PerformanceNavigationTiming","getEntriesByType","nextHopProtocol","concurrentRequestLimit","fastHandshake","sendBeacon","Image","hostname","messageHeaders","clientProtocolHeaderRequired","messageContentType","__sm__","__data__","getLastError","esm","errorCodeMap","HttpsErrorImpl","details","messagingProvider","messaging","getAuthToken","getInstanceIdToken","Notification","permission","instanceIdToken","mapValues","Serializer","Service","regionOrCustomDomain_","fetchImpl","emulatorOrigin","deleteService","contextProvider","cancelAllRequests","customDomain","region","_url","useFunctionsEmulator","httpsCallable","postJSON","timer","failAfterPromise","responseData","millis","failAfter","clearTimeoutWrapper","bodyJSON","codeForHTTPStatus","errorJSON","status_1","_errorForResponse","FUNCTIONS_TYPE","namespaceExports","Functions","regionOrCustomDomain","registerFunctions","apiInstance","windowInstance","TRACE_START_MARK_PREFIX","TRACE_STOP_MARK_PREFIX","TRACE_MEASURE_PREFIX","OOB_TRACE_PAGE_LOAD_PREFIX","CONFIG_LOCAL_STORAGE_KEY","CONFIG_EXPIRY_LOCAL_STORAGE_KEY","consoleLogger","settingsServiceInstance","Api","PerformanceObserver","windowLocation","perfMetrics","onFirstInputDelay","getUrl","measure","measureName","mark1","mark2","getEntriesByName","getTimeOrigin","timeOrigin","navigationStart","requiredApisAvailable","setupObserver","entryType","observe","entryTypes","mergeStrings","part1","part2","sizeDiff","resultArray","iid","VisibilityState","SettingsService","instrumentationEnabled","dataCollectionEnabled","loggingEnabled","tracesSamplingRate","networkRequestsSamplingRate","logEndPointUrl","flTransportEndpointUrl","transportKey","logSource","logTraceAfterSampling","logNetworkAfterSampling","configTimeToLive","getAppId","firebaseAppInstance","getProjectId","getApiKey","getFlTransportFullUrl","getIid","RESERVED_ATTRIBUTE_PREFIXES","ATTRIBUTE_FORMAT_REGEX","MAX_ATTRIBUTE_NAME_LENGTH","MAX_ATTRIBUTE_VALUE_LENGTH","getServiceWorkerStatus","getVisibilityState","VISIBLE","HIDDEN","getEffectiveConnectionType","navigatorConnection","effectiveType","REMOTE_CONFIG_SDK_VERSION","DEFAULT_CONFIGS","FIS_AUTH_PREFIX","expiryString","expiry","configStringified","getStoredConfig","processConfig","authTokenPromise","installationsService","authTokenVal","getAuthTokenPromise","configEndPoint","app_instance_id","app_instance_id_token","app_id","app_version","sdk_version","COULD_NOT_GET_CONFIG_MSG","getRemoteConfig","storeConfig","fpr_enabled","fpr_log_source","fpr_log_endpoint_url","fpr_log_transport_key","fpr_vc_network_request_sampling_rate","fpr_vc_trace_sampling_rate","shouldLogAfterSampling","samplingRate","initializationPromise","initializationStatus","getInitializationPromise","handler_1","getDocumentReadyComplete","iidPromise","iidVal","getIidPromise","changeInitializationStatus","DEFAULT_SEND_INTERVAL_MS","INITIAL_SEND_TIME_DELAY_MS","DEFAULT_REMAINING_TRIES","remainingTries","isTransportSetup","processQueue","timeOffset","staged","log_event","source_extension_json_proto3","event_time_ms","eventTime","flTransportFullUrl","postToFlEndpoint","transportWait","nextRequestWaitMillis","requestOffset","logResponseDetails","responseAction","sendEventsToFl","request_time_ms","client_info","client_type","js_client_info","log_source","dispatchQueueEvents","addToQueue","sendLog","resource","resourceType","transportHandler","logTrace","trace","settingsService","isAuto","sendTraceLog","networkRequest","networkRequestMetric","http_method","httpMethod","http_response_code","response_payload_bytes","responsePayloadBytes","client_start_time_us","startTimeUs","time_to_response_initiated_us","timeToResponseInitiatedUs","time_to_response_completed_us","timeToResponseCompletedUs","perfMetric","application_info","getApplicationInfo","network_request_metric","serializeNetworkRequest","traceMetric","is_auto","duration_us","durationUs","counters","customAttributes","getAttributes","custom_attributes","trace_metric","serializeTrace","google_app_id","web_app_info","page_url","service_worker_status","visibility_state","effective_connection_type","application_process_state","MAX_METRIC_NAME_LENGTH","RESERVED_AUTO_PREFIX","oobMetrics","Trace","traceMeasureName","randomId","traceStartMark","traceStopMark","traceMeasure","calculateTraceMetrics","traceName","metrics","incrementMetric","counter","numAsInteger","putMetric","startsWith","isValidMetricName","customMetricName","providedValue","valueAsInteger","convertMetricValueToInteger","getMetric","putAttribute","attr","isValidName","isValidCustomAttributeName","isValidValue","isValidCustomAttributeValue","attributeValue","setStartTime","setDuration","perfMeasureEntries","perfMeasureEntry","createOobTrace","navigationTimings","paintTimings","firstInputDelay","timeOriginUs","domInteractive","domContentLoadedEventEnd","loadEventEnd","firstPaint","paintObject","firstContentfulPaint","createUserTimingTrace","createNetworkRequestEntry","performanceEntry","responseStart","responseEnd","networkRequestUrl","logEndpointUrl","flEndpointUrl","logNetworkRequest","transferSize","FID_WAIT_TIME_MS","setupOobResources","timeoutId_1","setupOobTraces","resources","resources_1","setupNetworkRequests","measures","measures_1","setupUserTimingTraces","PerformanceController","registerPerformance","factoryMethod","installations","setupApi","CachingClient","storageCache","isCachedDataFresh","cacheMaxAgeMillis","lastSuccessfulFetchTimestampMillis","cacheAgeMillis","lastSuccessfulFetchResponse","storageOperations","getLastSuccessfulFetchTimestampMillis","getLastSuccessfulFetchResponse","eTag","setLastSuccessfulFetchTimestampMillis","setLastSuccessfulFetchResponse","RestClient","firebaseInstallations","installationId","installationToken","urlBase","requestBody","fetchPromise","timeoutPromise","originalError_1","responseEtag","responseBody","originalError_2","FIREBASE_REMOTE_CONFIG_URL_BASE","language_code","navigatorLanguage","_resolve","signal","originalErrorMessage","httpStatus","RemoteConfigAbortSignal","DEFAULT_VALUE_FOR_STRING","BOOLEAN_TRUTHY_VALUES","Value","_source","_value","asString","asBoolean","asNumber","DEFAULT_FETCH_TIMEOUT_MILLIS","DEFAULT_CACHE_MAX_AGE_MILLIS","RemoteConfig","_client","_storageCache","_storage","_logger","_isInitializationComplete","fetchTimeoutMillis","minimumFetchIntervalMillis","defaultConfig","getLastFetchStatus","activate","activeConfigEtag","getActiveConfigEtag","setActiveConfig","setActiveConfigEtag","ensureInitialized","_initializePromise","loadFromStorage","abortSignal","lastFetchStatus","setLastFetchStatus","fetchAndActivate","obj1","obj2","getAllKeys","getActiveConfig","allConfigs","getBoolean","getNumber","getString","activeConfig","toFirebaseError","originalError","APP_NAMESPACE_STORE","DB_NAME","DB_VERSION","Storage","openDbPromise","etag","getThrottleMetadata","setThrottleMetadata","deleteThrottleMetadata","compositeKey","createCompositeKey","StorageCache","lastFetchStatusPromise","lastSuccessfulFetchTimestampMillisPromise","activeConfigPromise","timestampMillis","setAbortableTimeout","throttleEndTimeMillis","backoffMillis","RetryingClient","throttleMetadata","attemptFetch","isRetriableError","registerRemoteConfig","firebaseInstance","restClient","retryingClient","cachingClient","remoteConfigInstance","UserAgentApplication_1","Logger_1","Logger_2","User_1","Constants_1","RequestInfo_1","AccessTokenKey_1","AccessTokenValue_1","AuthenticationRequestParameters_1","ClientInfo_1","IdToken_1","Storage_1","AuthorityFactory_1","resolveTokenOnlyIfOutOfIframe","propertyKey","tokenAcquisitionMethod","_cacheLocations","_clockSkew","_tokenReceivedCallback","_isAngular","_g","_j","anonymousEndpoints","_k","endPoints","_redirectUri","_postLogoutredirectUri","_loginInProgress","_acquireTokenInProgress","_cacheLocation","_navigateToLoginRequestUrl","_anonymousEndpoints","_endpoints","_cacheStorage","callBackMappedToRenewStates","callBacksMappedToRenewStates","pendingCallback","requestInfo","getRequestInfo","errorDescription","loginProgressError","isValidScope","inputScopesError","filterScopes","authenticationRequest","AuthenticationRequestParameters","angularLoginRequest","loginRequest","loginError","stateLogin","nonceIdToken","msalError","msalErrorDescription","resourceDelimeter","promptUser","openWindow","endpointResolutionError","popUpWindowError","pollTimer","userCancelledError","popUpWindowLocation","_user","userObject","getAllUsers","IdToken","getUniqueUsers","uniqueUsers","urlContainsQueryStringParameter","acquireTokenUserKey","acquireTokenUser","stateAcquireToken","userLoginError","acquireTokenProgressError","authenticationRequest_1","scope_1","userObject_1","cacheResult","tokenRenewStatusInProgress","tokenRenewStatusCancelled","frameCheck","addAdalFrame","msalClientInfo","isPopup","isWindowOpenerMsal","tokenResponse","AccessTokenKey","userKey","sessionState","msalSessionState","tokenRenewStatusCompleted","removeAcquireTokenEntries","getHash","AccessTokenCacheItem_1","_instance","_localStorageSupported","_sessionStorageSupported","AadAuthority_1","B2cAuthority_1","Adfs","_loader","Loader","sliceIterator","componentNames","_useState","_useState2","setDisplay","Spinner","Audio","_Circles","_Watch","_Audio","_BallTriangle","_Bars","_CradleLoader","_Grid","_Hearts","_MutatingDots","_Oval","_Plane","_Puff","_RevolvingDot","_Rings","_TailSpin","_ThreeDots","_Triangle","Circles","BallTriangle","Bars","CradleLoader","Grid","Hearts","MutatingDots","Oval","Plane","Puff","RevolvingDot","Rings","TailSpin","ThreeDots","Triangle","Watch","viewBox","xmlns","fill","dur","repeatCount","enableBackground","xmlSpace","stroke","cx","cy","strokeLinecap","x1","y1","x2","y2","rx","calcMode","fillRule","stdDeviation","in2","operator","attributeType","keyTimes","keySplines","secondaryColor","strokeLinejoin","stopColor","points","stdOnEnd","ieOnEnd","head","attrs","setAttributes","isMergeableObject","isNonNullObject","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","Preview","image","fetchImage","thumbnail_url","flexCenter","alignItems","justifyContent","backgroundImage","backgroundSize","backgroundPosition","shadow","background","borderRadius","borderStyle","borderWidth","borderColor","defaultPlayIcon","PRELOAD_PLAYERS","configKey","_TransitionGroup2","_CSSTransitionGroupChild2","_PropTypes","CSSTransitionGroup","_wrapChild","transitionName","transitionAppear","transitionEnter","transitionLeave","appearTimeout","transitionAppearTimeout","enterTimeout","transitionEnterTimeout","leaveTimeout","transitionLeaveTimeout","childFactory","_chainFunction2","_ChildMapping","TransitionGroup","performAppear","currentlyTransitioningKeys","componentWillAppear","_handleDoneAppearing","componentDidAppear","currentChildMapping","getChildMapping","performLeave","performEnter","componentWillEnter","_handleDoneEntering","componentDidEnter","componentWillLeave","_handleDoneLeaving","componentDidLeave","keysToEnter","childRefs","keysToLeave","initialChildMapping","nextChildMapping","prevChildMapping","mergeChildMappings","hasPrev","childrenToRender","_loop","isCallbackRef","factoryChild","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","_addClass2","_removeClass2","_requestAnimationFrame2","_properties","_reactDom","transitionEnd","animationEnd","CSSTransitionGroupChild","classNameAndNodeQueue","transitionTimeouts","unmounted","animationType","finishCallback","queueClassAndNode","addEndListener","rafHandle","flushClassNameAndNodeQueue","_hasClass","baseVal","replaceClassName","origClass","classToRemove","compatRaf","_inDOM","raf","curr","rafKey","animationDelay","animationTiming","animationDuration","transitionDelay","transitionTiming","transitionProperty","_getTransitionPropert","vendorMap","Moz","Webkit","vendors","getTransitionProperties","is_uri","is_iri","is_http_uri","is_http_iri","is_https_uri","is_https_iri","is_web_uri","is_web_iri","isUri","isHttpUri","isHttpsUri","isWebUri","splitUri","splitted","fragment","allowHttps","webpackPolyfill","deprecate","paths","b64DecodeUnicode","chars","InvalidCharacterError","MessageType","ERROR_MAP","DEFAULT_VAPID_KEY","ENDPOINT","FCM_MSG","CONSOLE_CAMPAIGN_ID","arrayToBase64","uint8Array","base64ToArray","base64String","rawData","outputArray","OLD_DB_NAME","OLD_DB_VERSION","OLD_OBJECT_STORE_NAME","migrateOldDatabase","senderId","databases","tokenDetails","oldDetails","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","upgradeDb","dbGet","firebaseDependencies","oldTokenDetails","dbSet","dbRemove","requestGetToken","subscribeOptions","err_1","getBody","getEndpoint","errorInfo","requestUpdateToken","updateOptions","err_2","requestDeleteToken","unsubscribeOptions","err_3","web","applicationPubKey","TOKEN_EXPIRATION_MS","swRegistration","pushSubscription","getPushSubscription","getNewToken","dbOptions","currentOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updateToken","deleteToken","pushManager","getSubscription","unsubscribe","updatedToken","updatedTokenDetails","subscription","userVisibleOnly","applicationServerKey","isConsoleMessage","SwController","isOnBackgroundMessageUsed","bgMessageHandler","waitUntil","onPush","onSubChange","onNotificationClick","setBackgroundMessageHandler","onBackgroundMessage","requestPermission","usePublicVapidKey","useServiceWorker","onTokenRefresh","internalPayload","clientList","isNotificationShown","getMessagePayloadInternal","getClientList","TAG","hasVisibleClients","sendMessagePayloadInternalToWindows","notification","showNotification","wrapInternalPayload","collapseKey","collapse_key","messagePayloadInternal","propagateNotificationPayload","propagateDataPayload","fcmOptions","analyticsLabel","analytics_label","propagateFcmOptions","externalizePayload","newSubscription","originUrl","stopImmediatePropagation","click_action","getLink","getWindowClient","clients","messageType","NOTIFICATION_CLICKED","isFirebaseMessaging","wrappedInternalPayload","clientList_1","clientList_1_1","clientUrl","PUSH_RECEIVED","clientList_2","clientList_2_1","matchAll","includeUncontrolled","notificationPayloadInternal","actions","maxActions","WindowController","onMessageCallback","messageEventListener","dataPayload","stripInternalFields","logEvent","getVapidKey","getSwReg","updateVapidKey","updateSwReg","serviceWorkerRegistration","registerDefaultSw","ServiceWorkerRegistration","browserErrorMessage","permissionResult","analyticsProvider","message_id","message_name","message_time","message_device_time","NAMESPACE_EXPORTS","isSupported","PushSubscription","messagingSenderId","DEFAULT_HOST","DEFAULT_MAX_OPERATION_RETRY_TIME","DEFAULT_MAX_UPLOAD_RETRY_TIME","FirebaseStorageError","code_","prependCode","message_","serverResponse_","codeProp","codeEquals","serverResponseProp","setServerResponseProp","Code","OBJECT_NOT_FOUND","BUCKET_NOT_FOUND","PROJECT_NOT_FOUND","UNAUTHORIZED","RETRY_LIMIT_EXCEEDED","INVALID_CHECKSUM","CANCELED","INVALID_EVENT_NAME","INVALID_URL","INVALID_DEFAULT_BUCKET","NO_DEFAULT_BUCKET","CANNOT_SLICE_BLOB","SERVER_FILE_WRONG_SIZE","NO_DOWNLOAD_URL","INVALID_ARGUMENT_COUNT","APP_DELETED","INVALID_ROOT_OPERATION","INVALID_FORMAT","INTERNAL_ERROR","cannotSliceBlob","noDownloadURL","invalidArgument","appDeleted","invalidFormat","internalError","StringFormat","RAW","BASE64","BASE64URL","DATA_URL","formatValidator","stringFormat","StringData","dataFromString","stringData","utf8Bytes_","base64Bytes_","dataUrl","DataURLParts","percentEncodedBytes_","dataURLBytes_","hasMinus","hasUnder","hasPlus","hasSlash","TaskEvent","STATE_CHANGED","InternalTaskState","RUNNING","PAUSING","SUCCESS","CANCELING","TaskState","taskStateFromInternalTaskState","isDef","isJustDef","isFunction","isString","isNumber","isNativeBlob","isNativeBlobDefined","NetworkXhrIo","sent_","xhr_","errorCode_","sendPromise_","ABORT","NETWORK_ERROR","getErrorCode","addUploadProgressListener","upload","removeUploadProgressListener","XhrIoPool","createXhrIo","getBlobBuilder","BlobBuilder","WebKitBlobBuilder","getBlob","FbsBlob","elideCopy","blobType","data_","ArrayBuffer","byteLength","size_","type_","startByte","endByte","sliced","blob","webkitSlice","mozSlice","sliceBlob","blobby","uint8Arrays","finalLength_1","merged_1","index_1","uploadData","bucket","fullServerUrl","bucketOnlyServerUrl","makeFromBucketSpec","bucketString","bucketLocation","makeFromUrl","gsRegex","httpModify","firebaseStorageHost","indices","postModify","captures","bucketValue","pathValue","invalidUrl","jsonObjectOrNull","canonicalChildPath","lastComponent","makeUrl","urlPart","makeQueryString","queryPart","noXform_","Mapping","server","local","xform","mappings_","getMappings","mappings","nameMapping","_metadata","fullPath","xformPath","sizeMapping","fromResource","mapping","makeStorageReference","addRef","fromResourceString","resourceString","toResourceString","metadataValidator","MAX_RESULTS_KEY","MAX_MAX_RESULTS","PAGE_TOKEN_KEY","PREFIXES_KEY","ITEMS_KEY","fromResponseString","listResult","prefixes","nextPageToken","pathWithoutTrailingSlash","reference","fromBackendResponse","listOptionsValidator","RequestInfo","errorHandler","progressCallback","successCodes","additionalRetryCodes","handlerCheck","cndn","metadataHandler","downloadUrlHandler","alt","downloadUrlFromResourceString","sharedErrorHandler","newErr","objectErrorHandler","shared","maxOperationRetryTime","pageToken","maxResults","isRoot","listHandler","getDownloadUrl","deleteObject","_xhr","_text","metadataForUpload_","metadataClone","determineContentType_","ResumableUploadStatus","total","checkResumeHeader_","allowed","continueResumableUpload","status_","bytesLeft","bytesToUpload","maxUploadRetryTime","uploadStatus","newCurrent","Observer","UploadTaskSnapshot","bytesTransferred","totalBytes","validate","specs","passed","minArgs","maxArgs","argMin","argMax","real","countPart","plural","invalidArgumentCount","validator","ArgSpec","stringSpec","stringValidator","chainedValidator","v1","v2","uploadDataSpec","metadataSpec","listOptionSpec","nonNegativeNumberSpec","looseObjectSpec","nullFunctionSpec","argsToForward","UploadTask","transferred_","needToFetchStatus_","needToFetchMetadata_","observers_","error_","uploadUrl_","request_","chunkMultiplier_","resolve_","reject_","service_","location_","blob_","metadata_","resumable_","shouldDoResumable_","errorHandler_","completeTransitions_","transition_","metadataErrorHandler_","promise_","makeProgressCallback_","sizeBefore","updateProgress_","createResumable_","fetchStatus_","fetchMetadata_","continueUpload_","oneShotUpload_","resolveToken_","metadataForUpload","createResumableUpload","createRequest","makeRequest","getPromise","sizeString","getResumableUploadStatus","statusRequest","uploadRequest","newStatus","increaseMultiplier_","metadataRequest","boundary","genBoundary","preBlobPart","postBlobPart","multipartUpload","multipartRequest","transferred","old","notifyObservers_","wasPaused","externalState","completed","typeValidator","nextOrObserverMessage","nextValidator","observerValidator","nextOrObserverValidator","makeBinder","addObserver_","removeObserver_","binderNextOrObserverValidator","binderSpecs","typeOnly","onFulfilled","onRejected","notifyObserver_","finishPromise_","triggered","newRef","newPath","throwIfRoot_","putString","listAll","listAllHelper","opt","nextPage","getDownloadURL","invalidRootOperation","FailRequest","_appDelete","NetworkRequest","errorCallback","pool","pendingXhr_","backoffId_","canceled_","appDelete_","url_","method_","headers_","body_","successCodes_","additionalRetryCodes_","errorCallback_","progressCallback_","timeout_","pool_","backoffDone","requestWentThrough","wasSuccessCode","canceled","RequestEndStatus","waitSeconds","timeoutId","hitTimeout","cancelState","triggeredCallback","triggerCallback","callWithDelay","waitMillis","stopped","wasTimeout","backoffCallback","progressListener","hitServer","isRetryStatusCode_","successCode","wasCanceled","progressEvent","lengthComputable","appDelete","isFiveHundredCode","isExtraRetryCode","isRequestSpecificRetryCode","addGmpidHeader_","addAuthHeader_","addVersionHeader_","StorageService","bucket_","appId_","deleted_","maxOperationRetryTime_","maxUploadRetryTime_","requests_","extractBucket_","internals_","ServiceInternals","tokenData","deleteApp","setMaxUploadRetryTime","setMaxOperationRetryTime","STORAGE_TYPE","registerStorage","GtagCommand","EventName","GA_FID_KEY","ORIGIN_KEY","FETCH_TIMEOUT_MILLIS","DYNAMIC_CONFIG_URL","GTAG_URL","gtagOnConfig","gtagCore","initializationPromisesMap","dynamicConfigPromisesList","measurementIdToAppId","measurementId","gtagParams","correspondingAppId","dynamicConfigResults","foundConfig","CONFIG","gtagOnEvent","initializationPromisesToWaitFor","gaSendToList","gaSendToList_1","sendToId","EVENT","wrapOrCreateGtag","dataLayerName","gtagFunctionName","idOrNameOrParams","SET","wrapGtag","wrappedGtag","LONG_RETRY_FACTOR","BASE_INTERVAL_MILLIS","defaultRetryData","RetryData","fetchDynamicConfig","appFields","appUrl","responseMessage","attemptFetchDynamicConfigWithRetry","retryData","AnalyticsAbortSignal","initializeIds","dynamicConfigPromise","fidPromise","dynamicConfig","configProperties","timeoutMillis","fetchDynamicConfigWithRetry","validateIndexedDB","envIsValid","gtagCoreFunction","wrappedGtagFunction","gtagName","globalInitDone","resetGlobalVars","newGlobalInitDone","newInitializationPromisesMap","newDynamicPromises","getGlobalVars","mismatchedEnvMessages","warnOnBrowserContextMismatch","scriptTags","findGtagScriptOnPage","insertScriptTag","dataLayer","getOrCreateDataLayer","eventParams","gtagFunction","_logEvent","setCurrentScreen","_setCurrentScreen","setUserId","_setUserId","setUserProperties","flatProperties","_setUserProperties","setAnalyticsCollectionEnabled","enabled","_setAnalyticsCollectionEnabled","ANALYTICS_TYPE","registerAnalytics","globalCssModule","tagPropType","outline","cssModule","ariaLabel","Tag","btnOutlineColor","mapToCssModules","defaultAriaLabel"],"mappings":"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","file":"static/js/2.6b97f1f3.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","import { Router, __RouterContext, matchPath } from 'react-router';\nexport * from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n/**\n * The public API for a that uses window.location.hash.\n */\n\n\nvar HashRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\n\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var method = replace ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp;\n var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp;\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(OutboundLink, _Component);\n\n function OutboundLink() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\"]);\n\n var props = _objectSpread({}, oldProps, {\n href: href,\n onClick: this.handleClick\n });\n\n if (this.props.target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\n_defineProperty(OutboundLink, \"propTypes\", {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n});\n\n_defineProperty(OutboundLink, \"defaultProps\", {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n});\n\nexport { OutboundLink as default };","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import mightBeEmail from './mightBeEmail';\nimport toTitleCase from './toTitleCase';\nimport warn from './console/warn';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function format(s, titleCase) {\n if (mightBeEmail(s)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n if (titleCase) {\n return toTitleCase(s);\n }\n\n return s;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\n\n\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return false;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log('called ga(\\'arguments\\');');\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log('called ga(\\'set\\', fieldsObject);');\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log('called ga(\\'send\\', fieldObject);');\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n if ((arguments.length <= 2 ? 0 : arguments.length - 2) === 1) {\n payload = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n actionType = arguments.length <= 2 ? undefined : arguments[2];\n payload = arguments.length <= 3 ? undefined : arguments[3];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nexport var initialize = Defaults.initialize;\nexport var ga = Defaults.ga;\nexport var set = Defaults.set;\nexport var send = Defaults.send;\nexport var pageview = Defaults.pageview;\nexport var modalview = Defaults.modalview;\nexport var timing = Defaults.timing;\nexport var event = Defaults.event;\nexport var exception = Defaults.exception;\nexport var plugin = Defaults.plugin;\nexport var outboundLink = Defaults.outboundLink;\nexport var testModeAPI = Defaults.testModeAPI;\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread({}, Defaults, {\n OutboundLink: OutboundLink\n});","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","module.exports = require('./dist/index');","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar tslib = require('tslib');\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\n\n\nvar CONSTANTS = {\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\n NODE_CLIENT: false,\n\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\n NODE_ADMIN: false,\n\n /**\r\n * Firebase SDK Version\r\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\n\nvar assert = function assert(assertion, message) {\n if (!assertion) {\n throw assertionError(message);\n }\n};\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\n\n\nvar assertionError = function assertionError(message) {\n return new Error('Firebase Database (' + CONSTANTS.SDK_VERSION + ') INTERNAL ASSERT FAILED: ' + message);\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar stringToByteArray = function stringToByteArray(str) {\n // TODO(user): Use native implementations if/when available\n var out = [];\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = c >> 6 | 192;\n out[p++] = c & 63 | 128;\n } else if ((c & 0xfc00) === 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = c >> 18 | 240;\n out[p++] = c >> 12 & 63 | 128;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n } else {\n out[p++] = c >> 12 | 224;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n }\n }\n\n return out;\n};\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\n\n\nvar byteArrayToString = function byteArrayToString(bytes) {\n // TODO(user): Use native implementations if/when available\n var out = [];\n var pos = 0,\n c = 0;\n\n while (pos < bytes.length) {\n var c1 = bytes[pos++];\n\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n var c2 = bytes[pos++];\n out[c++] = String.fromCharCode((c1 & 31) << 6 | c2 & 63);\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n var c4 = bytes[pos++];\n var u = ((c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63) - 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n out[c++] = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n }\n }\n\n return out.join('');\n}; // We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\n\n\nvar base64 = {\n /**\r\n * Maps bytes to characters.\r\n */\n byteToCharMap_: null,\n\n /**\r\n * Maps characters to bytes.\r\n */\n charToByteMap_: null,\n\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\n byteToCharMapWebSafe_: null,\n\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\n charToByteMapWebSafe_: null,\n\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\r\n * Our websafe alphabet.\r\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\n encodeByteArray: function encodeByteArray(input, webSafe) {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n var byteToCharMap = webSafe ? this.byteToCharMapWebSafe_ : this.byteToCharMap_;\n var output = [];\n\n for (var i = 0; i < input.length; i += 3) {\n var byte1 = input[i];\n var haveByte2 = i + 1 < input.length;\n var byte2 = haveByte2 ? input[i + 1] : 0;\n var haveByte3 = i + 2 < input.length;\n var byte3 = haveByte3 ? input[i + 2] : 0;\n var outByte1 = byte1 >> 2;\n var outByte2 = (byte1 & 0x03) << 4 | byte2 >> 4;\n var outByte3 = (byte2 & 0x0f) << 2 | byte3 >> 6;\n var outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n }\n\n return output.join('');\n },\n\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\n encodeString: function encodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\n decodeString: function decodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\n decodeStringToByteArray: function decodeStringToByteArray(input, webSafe) {\n this.init_();\n var charToByteMap = webSafe ? this.charToByteMapWebSafe_ : this.charToByteMap_;\n var output = [];\n\n for (var i = 0; i < input.length;) {\n var byte1 = charToByteMap[input.charAt(i++)];\n var haveByte2 = i < input.length;\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n var haveByte3 = i < input.length;\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n var haveByte4 = i < input.length;\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n var outByte1 = byte1 << 2 | byte2 >> 4;\n output.push(outByte1);\n\n if (byte3 !== 64) {\n var outByte2 = byte2 << 4 & 0xf0 | byte3 >> 2;\n output.push(outByte2);\n\n if (byte4 !== 64) {\n var outByte3 = byte3 << 6 & 0xc0 | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\n init_: function init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {}; // We want quick mappings back and forth, so we precompute two maps.\n\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i; // Be forgiving when decoding and correctly decode both encodings.\n\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n/**\r\n * URL-safe base64 encoding\r\n */\n\nvar base64Encode = function base64Encode(str) {\n var utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\n\n\nvar base64Decode = function base64Decode(str) {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n\n return null;\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\n\n\nfunction deepCopy(value) {\n return deepExtend(undefined, value);\n}\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\n\n\nfunction deepExtend(target, source) {\n if (!(source instanceof Object)) {\n return source;\n }\n\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n var dateValue = source;\n return new Date(dateValue.getTime());\n\n case Object:\n if (target === undefined) {\n target = {};\n }\n\n break;\n\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n\n for (var prop in source) {\n if (!source.hasOwnProperty(prop)) {\n continue;\n }\n\n target[prop] = deepExtend(target[prop], source[prop]);\n }\n\n return target;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar Deferred =\n/** @class */\nfunction () {\n function Deferred() {\n var _this = this;\n\n this.reject = function () {};\n\n this.resolve = function () {};\n\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n }\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\n\n\n Deferred.prototype.wrapCallback = function (callback) {\n var _this = this;\n\n return function (error, value) {\n if (error) {\n _this.reject(error);\n } else {\n _this.resolve(value);\n }\n\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n _this.promise.catch(function () {}); // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n\n\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n };\n\n return Deferred;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\n\n\nfunction getUA() {\n if (typeof navigator !== 'undefined' && typeof navigator['userAgent'] === 'string') {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\n\n\nfunction isMobileCordova() {\n return typeof window !== 'undefined' && // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA());\n}\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\n\n\nfunction isNode() {\n try {\n return Object.prototype.toString.call(global.process) === '[object process]';\n } catch (e) {\n return false;\n }\n}\n/**\r\n * Detect Browser Environment\r\n */\n\n\nfunction isBrowser() {\n return typeof self === 'object' && self.self === self;\n}\n\nfunction isBrowserExtension() {\n var runtime = typeof chrome === 'object' ? chrome.runtime : typeof browser === 'object' ? browser.runtime : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\n\n\nfunction isReactNative() {\n return typeof navigator === 'object' && navigator['product'] === 'ReactNative';\n}\n/** Detects Electron apps. */\n\n\nfunction isElectron() {\n return getUA().indexOf('Electron/') >= 0;\n}\n/** Detects Internet Explorer. */\n\n\nfunction isIE() {\n var ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n/** Detects Universal Windows Platform apps. */\n\n\nfunction isUWP() {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\n\n\nfunction isNodeSdk() {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n/** Returns true if we are running in Safari. */\n\n\nfunction isSafari() {\n return !isNode() && navigator.userAgent.includes('Safari') && !navigator.userAgent.includes('Chrome');\n}\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\n\n\nfunction isIndexedDBAvailable() {\n return 'indexedDB' in self && indexedDB != null;\n}\n/**\r\n * This method validates browser context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n */\n\n\nfunction validateIndexedDBOpenable() {\n return new Promise(function (resolve, reject) {\n try {\n var preExist_1 = true;\n var DB_CHECK_NAME_1 = 'validate-browser-context-for-indexeddb-analytics-module';\n var request_1 = window.indexedDB.open(DB_CHECK_NAME_1);\n\n request_1.onsuccess = function () {\n request_1.result.close(); // delete database only when it doesn't pre-exist\n\n if (!preExist_1) {\n window.indexedDB.deleteDatabase(DB_CHECK_NAME_1);\n }\n\n resolve(true);\n };\n\n request_1.onupgradeneeded = function () {\n preExist_1 = false;\n };\n\n request_1.onerror = function () {\n var _a;\n\n reject(((_a = request_1.error) === null || _a === void 0 ? void 0 : _a.message) || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\n\n\nfunction areCookiesEnabled() {\n if (!navigator || !navigator.cookieEnabled) {\n return false;\n }\n\n return true;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar ERROR_NAME = 'FirebaseError'; // Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\n\nvar FirebaseError =\n/** @class */\nfunction (_super) {\n tslib.__extends(FirebaseError, _super);\n\n function FirebaseError(code, message) {\n var _this = _super.call(this, message) || this;\n\n _this.code = code;\n _this.name = ERROR_NAME; // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n\n Object.setPrototypeOf(_this, FirebaseError.prototype); // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\n }\n\n return _this;\n }\n\n return FirebaseError;\n}(Error);\n\nvar ErrorFactory =\n/** @class */\nfunction () {\n function ErrorFactory(service, serviceName, errors) {\n this.service = service;\n this.serviceName = serviceName;\n this.errors = errors;\n }\n\n ErrorFactory.prototype.create = function (code) {\n var data = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n\n var customData = data[0] || {};\n var fullCode = this.service + \"/\" + code;\n var template = this.errors[code];\n var message = template ? replaceTemplate(template, customData) : 'Error'; // Service Name: Error message (service/code).\n\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\n var error = new FirebaseError(fullCode, fullMessage); // Keys with an underscore at the end of their name are not included in\n // error.data for some reason.\n // TODO: Replace with Object.entries when lib is updated to es2017.\n\n for (var _a = 0, _b = Object.keys(customData); _a < _b.length; _a++) {\n var key = _b[_a];\n\n if (key.slice(-1) !== '_') {\n if (key in error) {\n console.warn(\"Overwriting FirebaseError base field \\\"\" + key + \"\\\" can cause unexpected behavior.\");\n }\n\n error[key] = customData[key];\n }\n }\n\n return error;\n };\n\n return ErrorFactory;\n}();\n\nfunction replaceTemplate(template, data) {\n return template.replace(PATTERN, function (_, key) {\n var value = data[key];\n return value != null ? String(value) : \"<\" + key + \"?>\";\n });\n}\n\nvar PATTERN = /\\{\\$([^}]+)}/g;\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\n\nfunction jsonEval(str) {\n return JSON.parse(str);\n}\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\n\n\nfunction stringify(data) {\n return JSON.stringify(data);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar decode = function decode(token) {\n var header = {},\n claims = {},\n data = {},\n signature = '';\n\n try {\n var parts = token.split('.');\n header = jsonEval(base64Decode(parts[0]) || '');\n claims = jsonEval(base64Decode(parts[1]) || '');\n signature = parts[2];\n data = claims['d'] || {};\n delete claims['d'];\n } catch (e) {}\n\n return {\n header: header,\n claims: claims,\n data: data,\n signature: signature\n };\n};\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isValidTimestamp = function isValidTimestamp(token) {\n var claims = decode(token).claims;\n var now = Math.floor(new Date().getTime() / 1000);\n var validSince = 0,\n validUntil = 0;\n\n if (typeof claims === 'object') {\n if (claims.hasOwnProperty('nbf')) {\n validSince = claims['nbf'];\n } else if (claims.hasOwnProperty('iat')) {\n validSince = claims['iat'];\n }\n\n if (claims.hasOwnProperty('exp')) {\n validUntil = claims['exp'];\n } else {\n // token will expire after 24h by default\n validUntil = validSince + 86400;\n }\n }\n\n return !!now && !!validSince && !!validUntil && now >= validSince && now <= validUntil;\n};\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar issuedAtTime = function issuedAtTime(token) {\n var claims = decode(token).claims;\n\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\n return claims['iat'];\n }\n\n return null;\n};\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isValidFormat = function isValidFormat(token) {\n var decoded = decode(token),\n claims = decoded.claims;\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\n};\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isAdmin = function isAdmin(token) {\n var claims = decode(token).claims;\n return typeof claims === 'object' && claims['admin'] === true;\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction contains(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction safeGet(obj, key) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nfunction isEmpty(obj) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction map(obj, fn, contextObj) {\n var res = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n\n return res;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\n\n\nfunction querystring(querystringParams) {\n var params = [];\n\n var _loop_1 = function _loop_1(key, value) {\n if (Array.isArray(value)) {\n value.forEach(function (arrayVal) {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n };\n\n for (var _i = 0, _a = Object.entries(querystringParams); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n\n _loop_1(key, value);\n }\n\n return params.length ? '&' + params.join('&') : '';\n}\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\n\n\nfunction querystringDecode(querystring) {\n var obj = {};\n var tokens = querystring.replace(/^\\?/, '').split('&');\n tokens.forEach(function (token) {\n if (token) {\n var key = token.split('=');\n obj[key[0]] = key[1];\n }\n });\n return obj;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\n\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\n\n\nvar Sha1 =\n/** @class */\nfunction () {\n function Sha1() {\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\n this.chain_ = [];\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\n\n this.buf_ = [];\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\n\n this.W_ = [];\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\n\n this.pad_ = [];\n /**\r\n * @private {number}\r\n */\n\n this.inbuf_ = 0;\n /**\r\n * @private {number}\r\n */\n\n this.total_ = 0;\n this.blockSize = 512 / 8;\n this.pad_[0] = 128;\n\n for (var i = 1; i < this.blockSize; ++i) {\n this.pad_[i] = 0;\n }\n\n this.reset();\n }\n\n Sha1.prototype.reset = function () {\n this.chain_[0] = 0x67452301;\n this.chain_[1] = 0xefcdab89;\n this.chain_[2] = 0x98badcfe;\n this.chain_[3] = 0x10325476;\n this.chain_[4] = 0xc3d2e1f0;\n this.inbuf_ = 0;\n this.total_ = 0;\n };\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\n\n\n Sha1.prototype.compress_ = function (buf, offset) {\n if (!offset) {\n offset = 0;\n }\n\n var W = this.W_; // get 16 big endian words\n\n if (typeof buf === 'string') {\n for (var i = 0; i < 16; i++) {\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\n // have a bug that turns the post-increment ++ operator into pre-increment\n // during JIT compilation. We have code that depends heavily on SHA-1 for\n // correctness and which is affected by this bug, so I've removed all uses\n // of post-increment ++ in which the result value is used. We can revert\n // this change once the Safari bug\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\n // most clients have been updated.\n W[i] = buf.charCodeAt(offset) << 24 | buf.charCodeAt(offset + 1) << 16 | buf.charCodeAt(offset + 2) << 8 | buf.charCodeAt(offset + 3);\n offset += 4;\n }\n } else {\n for (var i = 0; i < 16; i++) {\n W[i] = buf[offset] << 24 | buf[offset + 1] << 16 | buf[offset + 2] << 8 | buf[offset + 3];\n offset += 4;\n }\n } // expand to 80 words\n\n\n for (var i = 16; i < 80; i++) {\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = (t << 1 | t >>> 31) & 0xffffffff;\n }\n\n var a = this.chain_[0];\n var b = this.chain_[1];\n var c = this.chain_[2];\n var d = this.chain_[3];\n var e = this.chain_[4];\n var f, k; // TODO(user): Try to unroll this loop to speed up the computation.\n\n for (var i = 0; i < 80; i++) {\n if (i < 40) {\n if (i < 20) {\n f = d ^ b & (c ^ d);\n k = 0x5a827999;\n } else {\n f = b ^ c ^ d;\n k = 0x6ed9eba1;\n }\n } else {\n if (i < 60) {\n f = b & c | d & (b | c);\n k = 0x8f1bbcdc;\n } else {\n f = b ^ c ^ d;\n k = 0xca62c1d6;\n }\n }\n\n var t = (a << 5 | a >>> 27) + f + e + k + W[i] & 0xffffffff;\n e = d;\n d = c;\n c = (b << 30 | b >>> 2) & 0xffffffff;\n b = a;\n a = t;\n }\n\n this.chain_[0] = this.chain_[0] + a & 0xffffffff;\n this.chain_[1] = this.chain_[1] + b & 0xffffffff;\n this.chain_[2] = this.chain_[2] + c & 0xffffffff;\n this.chain_[3] = this.chain_[3] + d & 0xffffffff;\n this.chain_[4] = this.chain_[4] + e & 0xffffffff;\n };\n\n Sha1.prototype.update = function (bytes, length) {\n // TODO(johnlenz): tighten the function signature and remove this check\n if (bytes == null) {\n return;\n }\n\n if (length === undefined) {\n length = bytes.length;\n }\n\n var lengthMinusBlock = length - this.blockSize;\n var n = 0; // Using local instead of member variables gives ~5% speedup on Firefox 16.\n\n var buf = this.buf_;\n var inbuf = this.inbuf_; // The outer while loop should execute at most twice.\n\n while (n < length) {\n // When we have no data in the block to top up, we can directly process the\n // input buffer (assuming it contains sufficient data). This gives ~25%\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\n // the data is provided in large chunks (or in multiples of 64 bytes).\n if (inbuf === 0) {\n while (n <= lengthMinusBlock) {\n this.compress_(bytes, n);\n n += this.blockSize;\n }\n }\n\n if (typeof bytes === 'string') {\n while (n < length) {\n buf[inbuf] = bytes.charCodeAt(n);\n ++inbuf;\n ++n;\n\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0; // Jump to the outer loop so we use the full-block optimization.\n\n break;\n }\n }\n } else {\n while (n < length) {\n buf[inbuf] = bytes[n];\n ++inbuf;\n ++n;\n\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0; // Jump to the outer loop so we use the full-block optimization.\n\n break;\n }\n }\n }\n }\n\n this.inbuf_ = inbuf;\n this.total_ += length;\n };\n /** @override */\n\n\n Sha1.prototype.digest = function () {\n var digest = [];\n var totalBits = this.total_ * 8; // Add pad 0x80 0x00*.\n\n if (this.inbuf_ < 56) {\n this.update(this.pad_, 56 - this.inbuf_);\n } else {\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\n } // Add # bits.\n\n\n for (var i = this.blockSize - 1; i >= 56; i--) {\n this.buf_[i] = totalBits & 255;\n totalBits /= 256; // Don't use bit-shifting here!\n }\n\n this.compress_(this.buf_);\n var n = 0;\n\n for (var i = 0; i < 5; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n digest[n] = this.chain_[i] >> j & 255;\n ++n;\n }\n }\n\n return digest;\n };\n\n return Sha1;\n}();\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\n\n\nfunction createSubscribe(executor, onNoObservers) {\n var proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\n\n\nvar ObserverProxy =\n/** @class */\nfunction () {\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\n function ObserverProxy(executor, onNoObservers) {\n var _this = this;\n\n this.observers = [];\n this.unsubscribes = [];\n this.observerCount = 0; // Micro-task scheduling by calling task.then().\n\n this.task = Promise.resolve();\n this.finalized = false;\n this.onNoObservers = onNoObservers; // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n\n this.task.then(function () {\n executor(_this);\n }).catch(function (e) {\n _this.error(e);\n });\n }\n\n ObserverProxy.prototype.next = function (value) {\n this.forEachObserver(function (observer) {\n observer.next(value);\n });\n };\n\n ObserverProxy.prototype.error = function (error) {\n this.forEachObserver(function (observer) {\n observer.error(error);\n });\n this.close(error);\n };\n\n ObserverProxy.prototype.complete = function () {\n this.forEachObserver(function (observer) {\n observer.complete();\n });\n this.close();\n };\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\n\n\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\n var _this = this;\n\n var observer;\n\n if (nextOrObserver === undefined && error === undefined && complete === undefined) {\n throw new Error('Missing Observer.');\n } // Assemble an Observer object when passed as callback functions.\n\n\n if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\n observer = nextOrObserver;\n } else {\n observer = {\n next: nextOrObserver,\n error: error,\n complete: complete\n };\n }\n\n if (observer.next === undefined) {\n observer.next = noop;\n }\n\n if (observer.error === undefined) {\n observer.error = noop;\n }\n\n if (observer.complete === undefined) {\n observer.complete = noop;\n }\n\n var unsub = this.unsubscribeOne.bind(this, this.observers.length); // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(function () {\n try {\n if (_this.finalError) {\n observer.error(_this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {// nothing\n }\n\n return;\n });\n }\n\n this.observers.push(observer);\n return unsub;\n }; // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n\n\n ObserverProxy.prototype.unsubscribeOne = function (i) {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n this.observerCount -= 1;\n\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n };\n\n ObserverProxy.prototype.forEachObserver = function (fn) {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n } // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n\n\n for (var i = 0; i < this.observers.length; i++) {\n this.sendOne(i, fn);\n }\n }; // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n\n\n ObserverProxy.prototype.sendOne = function (i, fn) {\n var _this = this; // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n this.task.then(function () {\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\n try {\n fn(_this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n };\n\n ObserverProxy.prototype.close = function (err) {\n var _this = this;\n\n if (this.finalized) {\n return;\n }\n\n this.finalized = true;\n\n if (err !== undefined) {\n this.finalError = err;\n } // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n this.task.then(function () {\n _this.observers = undefined;\n _this.onNoObservers = undefined;\n });\n };\n\n return ObserverProxy;\n}();\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction async(fn, onError) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n Promise.resolve(true).then(function () {\n fn.apply(void 0, args);\n }).catch(function (error) {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\n\n\nfunction implementsAnyMethods(obj, methods) {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\n var method = methods_1[_i];\n\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop() {} // do nothing\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\n\n\nvar validateArgCount = function validateArgCount(fnName, minCount, maxCount, argCount) {\n var argError;\n\n if (argCount < minCount) {\n argError = 'at least ' + minCount;\n } else if (argCount > maxCount) {\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\n }\n\n if (argError) {\n var error = fnName + ' failed: Was called with ' + argCount + (argCount === 1 ? ' argument.' : ' arguments.') + ' Expects ' + argError + '.';\n throw new Error(error);\n }\n};\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argumentNumber The index of the argument\r\n * @param optional Whether or not the argument is optional\r\n * @return The prefix to add to the error thrown for validation.\r\n */\n\n\nfunction errorPrefix(fnName, argumentNumber, optional) {\n var argName = '';\n\n switch (argumentNumber) {\n case 1:\n argName = optional ? 'first' : 'First';\n break;\n\n case 2:\n argName = optional ? 'second' : 'Second';\n break;\n\n case 3:\n argName = optional ? 'third' : 'Third';\n break;\n\n case 4:\n argName = optional ? 'fourth' : 'Fourth';\n break;\n\n default:\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\n }\n\n var error = fnName + ' failed: ';\n error += argName + ' argument ';\n return error;\n}\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\n\n\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\n if (optional && !namespace) {\n return;\n }\n\n if (typeof namespace !== 'string') {\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\n throw new Error(errorPrefix(fnName, argumentNumber, optional) + 'must be a valid firebase namespace.');\n }\n}\n\nfunction validateCallback(fnName, argumentNumber, // eslint-disable-next-line @typescript-eslint/ban-types\ncallback, optional) {\n if (optional && !callback) {\n return;\n }\n\n if (typeof callback !== 'function') {\n throw new Error(errorPrefix(fnName, argumentNumber, optional) + 'must be a valid function.');\n }\n}\n\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\n if (optional && !context) {\n return;\n }\n\n if (typeof context !== 'object' || context === null) {\n throw new Error(errorPrefix(fnName, argumentNumber, optional) + 'must be a valid context object.');\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\n// so it's been modified.\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\n// pair).\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\n\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\n\n\nvar stringToByteArray$1 = function stringToByteArray$1(str) {\n var out = [];\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i); // Is this the lead surrogate in a surrogate pair?\n\n if (c >= 0xd800 && c <= 0xdbff) {\n var high = c - 0xd800; // the high 10 bits.\n\n i++;\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\n\n c = 0x10000 + (high << 10) + low;\n }\n\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = c >> 6 | 192;\n out[p++] = c & 63 | 128;\n } else if (c < 65536) {\n out[p++] = c >> 12 | 224;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n } else {\n out[p++] = c >> 18 | 240;\n out[p++] = c >> 12 & 63 | 128;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n }\n }\n\n return out;\n};\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\n\n\nvar stringLength = function stringLength(str) {\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n if (c < 128) {\n p++;\n } else if (c < 2048) {\n p += 2;\n } else if (c >= 0xd800 && c <= 0xdbff) {\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\n p += 4;\n i++; // skip trail surrogate.\n } else {\n p += 3;\n }\n }\n\n return p;\n};\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\n\n\nvar DEFAULT_INTERVAL_MILLIS = 1000;\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\n\nvar DEFAULT_BACKOFF_FACTOR = 2;\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\n\nvar MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\n\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\n\nvar RANDOM_FACTOR = 0.5;\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\n\nfunction calculateBackoffMillis(backoffCount, intervalMillis, backoffFactor) {\n if (intervalMillis === void 0) {\n intervalMillis = DEFAULT_INTERVAL_MILLIS;\n }\n\n if (backoffFactor === void 0) {\n backoffFactor = DEFAULT_BACKOFF_FACTOR;\n } // Calculates an exponentially increasing value.\n // Deviation: calculates value from count and a constant interval, so we only need to save value\n // and count to restore state.\n\n\n var currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount); // A random \"fuzz\" to avoid waves of retries.\n // Deviation: randomFactor is required.\n\n var randomWait = Math.round( // A fraction of the backoff value to add/subtract.\n // Deviation: changes multiplication order to improve readability.\n RANDOM_FACTOR * currBaseValue * ( // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\n // if we add or subtract.\n Math.random() - 0.5) * 2); // Limits backoff to max to avoid effectively permanent backoff.\n\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\n}\n\nexports.CONSTANTS = CONSTANTS;\nexports.Deferred = Deferred;\nexports.ErrorFactory = ErrorFactory;\nexports.FirebaseError = FirebaseError;\nexports.MAX_VALUE_MILLIS = MAX_VALUE_MILLIS;\nexports.RANDOM_FACTOR = RANDOM_FACTOR;\nexports.Sha1 = Sha1;\nexports.areCookiesEnabled = areCookiesEnabled;\nexports.assert = assert;\nexports.assertionError = assertionError;\nexports.async = async;\nexports.base64 = base64;\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\nexports.calculateBackoffMillis = calculateBackoffMillis;\nexports.contains = contains;\nexports.createSubscribe = createSubscribe;\nexports.decode = decode;\nexports.deepCopy = deepCopy;\nexports.deepExtend = deepExtend;\nexports.errorPrefix = errorPrefix;\nexports.getUA = getUA;\nexports.isAdmin = isAdmin;\nexports.isBrowser = isBrowser;\nexports.isBrowserExtension = isBrowserExtension;\nexports.isElectron = isElectron;\nexports.isEmpty = isEmpty;\nexports.isIE = isIE;\nexports.isIndexedDBAvailable = isIndexedDBAvailable;\nexports.isMobileCordova = isMobileCordova;\nexports.isNode = isNode;\nexports.isNodeSdk = isNodeSdk;\nexports.isReactNative = isReactNative;\nexports.isSafari = isSafari;\nexports.isUWP = isUWP;\nexports.isValidFormat = isValidFormat;\nexports.isValidTimestamp = isValidTimestamp;\nexports.issuedAtTime = issuedAtTime;\nexports.jsonEval = jsonEval;\nexports.map = map;\nexports.querystring = querystring;\nexports.querystringDecode = querystringDecode;\nexports.safeGet = safeGet;\nexports.stringLength = stringLength;\nexports.stringToByteArray = stringToByteArray$1;\nexports.stringify = stringify;\nexports.validateArgCount = validateArgCount;\nexports.validateCallback = validateCallback;\nexports.validateContextObject = validateContextObject;\nexports.validateIndexedDBOpenable = validateIndexedDBOpenable;\nexports.validateNamespace = validateNamespace;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar tslib = require('tslib');\n\nvar util = require('@firebase/util');\n\nvar component = require('@firebase/component');\n\nvar logger$1 = require('@firebase/logger');\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar _a;\n\nvar ERRORS = (_a = {}, _a[\"no-app\"\n/* NO_APP */\n] = \"No Firebase App '{$appName}' has been created - \" + 'call Firebase App.initializeApp()', _a[\"bad-app-name\"\n/* BAD_APP_NAME */\n] = \"Illegal App name: '{$appName}\", _a[\"duplicate-app\"\n/* DUPLICATE_APP */\n] = \"Firebase App named '{$appName}' already exists\", _a[\"app-deleted\"\n/* APP_DELETED */\n] = \"Firebase App named '{$appName}' already deleted\", _a[\"invalid-app-argument\"\n/* INVALID_APP_ARGUMENT */\n] = 'firebase.{$appName}() takes either no argument or a ' + 'Firebase App instance.', _a[\"invalid-log-argument\"\n/* INVALID_LOG_ARGUMENT */\n] = 'First argument to `onLog` must be null or a function.', _a);\nvar ERROR_FACTORY = new util.ErrorFactory('app', 'Firebase', ERRORS);\nvar name$1 = \"@firebase/app\";\nvar version = \"0.6.11\";\nvar name$2 = \"@firebase/analytics\";\nvar name$3 = \"@firebase/auth\";\nvar name$4 = \"@firebase/database\";\nvar name$5 = \"@firebase/functions\";\nvar name$6 = \"@firebase/installations\";\nvar name$7 = \"@firebase/messaging\";\nvar name$8 = \"@firebase/performance\";\nvar name$9 = \"@firebase/remote-config\";\nvar name$a = \"@firebase/storage\";\nvar name$b = \"@firebase/firestore\";\nvar name$c = \"firebase-wrapper\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a$1;\n\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\nvar PLATFORM_LOG_STRING = (_a$1 = {}, _a$1[name$1] = 'fire-core', _a$1[name$2] = 'fire-analytics', _a$1[name$3] = 'fire-auth', _a$1[name$4] = 'fire-rtdb', _a$1[name$5] = 'fire-fn', _a$1[name$6] = 'fire-iid', _a$1[name$7] = 'fire-fcm', _a$1[name$8] = 'fire-perf', _a$1[name$9] = 'fire-rc', _a$1[name$a] = 'fire-gcs', _a$1[name$b] = 'fire-fst', _a$1['fire-js'] = 'fire-js', _a$1[name$c] = 'fire-js-all', _a$1);\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar logger = new logger$1.Logger('@firebase/app');\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\n\nvar FirebaseAppImpl =\n/** @class */\nfunction () {\n function FirebaseAppImpl(options, config, firebase_) {\n var e_1, _a;\n\n var _this = this;\n\n this.firebase_ = firebase_;\n this.isDeleted_ = false;\n this.name_ = config.name;\n this.automaticDataCollectionEnabled_ = config.automaticDataCollectionEnabled || false;\n this.options_ = util.deepCopy(options);\n this.container = new component.ComponentContainer(config.name); // add itself to container\n\n this._addComponent(new component.Component('app', function () {\n return _this;\n }, \"PUBLIC\"\n /* PUBLIC */\n ));\n\n try {\n // populate ComponentContainer with existing components\n for (var _b = tslib.__values(this.firebase_.INTERNAL.components.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var component$1 = _c.value;\n\n this._addComponent(component$1);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\n get: function get() {\n this.checkDestroyed_();\n return this.automaticDataCollectionEnabled_;\n },\n set: function set(val) {\n this.checkDestroyed_();\n this.automaticDataCollectionEnabled_ = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\n get: function get() {\n this.checkDestroyed_();\n return this.name_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\n get: function get() {\n this.checkDestroyed_();\n return this.options_;\n },\n enumerable: false,\n configurable: true\n });\n\n FirebaseAppImpl.prototype.delete = function () {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.checkDestroyed_();\n\n resolve();\n }).then(function () {\n _this.firebase_.INTERNAL.removeApp(_this.name_);\n\n return Promise.all(_this.container.getProviders().map(function (provider) {\n return provider.delete();\n }));\n }).then(function () {\n _this.isDeleted_ = true;\n });\n };\n /**\r\n * Return a service instance associated with this app (creating it\r\n * on demand), identified by the passed instanceIdentifier.\r\n *\r\n * NOTE: Currently storage and functions are the only ones that are leveraging this\r\n * functionality. They invoke it by calling:\r\n *\r\n * ```javascript\r\n * firebase.app().storage('STORAGE BUCKET ID')\r\n * ```\r\n *\r\n * The service name is passed to this already\r\n * @internal\r\n */\n\n\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\n if (instanceIdentifier === void 0) {\n instanceIdentifier = DEFAULT_ENTRY_NAME;\n }\n\n this.checkDestroyed_(); // getImmediate will always succeed because _getService is only called for registered components.\n\n return this.container.getProvider(name).getImmediate({\n identifier: instanceIdentifier\n });\n };\n /**\r\n * Remove a service instance from the cache, so we will create a new instance for this service\r\n * when people try to get this service again.\r\n *\r\n * NOTE: currently only firestore is using this functionality to support firestore shutdown.\r\n *\r\n * @param name The service name\r\n * @param instanceIdentifier instance identifier in case multiple instances are allowed\r\n * @internal\r\n */\n\n\n FirebaseAppImpl.prototype._removeServiceInstance = function (name, instanceIdentifier) {\n if (instanceIdentifier === void 0) {\n instanceIdentifier = DEFAULT_ENTRY_NAME;\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n this.container.getProvider(name).clearInstance(instanceIdentifier);\n };\n /**\r\n * @param component the component being added to this app's container\r\n */\n\n\n FirebaseAppImpl.prototype._addComponent = function (component) {\n try {\n this.container.addComponent(component);\n } catch (e) {\n logger.debug(\"Component \" + component.name + \" failed to register with FirebaseApp \" + this.name, e);\n }\n };\n\n FirebaseAppImpl.prototype._addOrOverwriteComponent = function (component) {\n this.container.addOrOverwriteComponent(component);\n };\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\n\n\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\n if (this.isDeleted_) {\n throw ERROR_FACTORY.create(\"app-deleted\"\n /* APP_DELETED */\n , {\n appName: this.name_\n });\n }\n };\n\n return FirebaseAppImpl;\n}(); // Prevent dead-code elimination of these methods w/o invalid property\n// copying.\n\n\nFirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options || FirebaseAppImpl.prototype.delete || console.log('dc');\nvar version$1 = \"7.20.0\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Because auth can't share code with other components, we attach the utility functions\r\n * in an internal namespace to share code.\r\n * This function return a firebase namespace object without\r\n * any utility functions, so it can be shared between the regular firebaseNamespace and\r\n * the lite version.\r\n */\n\nfunction createFirebaseNamespaceCore(firebaseAppImpl) {\n var apps = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var components = new Map(); // A namespace is a plain JavaScript Object.\n\n var namespace = {\n // Hack to prevent Babel from modifying the object returned\n // as the firebase namespace.\n // @ts-ignore\n __esModule: true,\n initializeApp: initializeApp,\n // @ts-ignore\n app: app,\n registerVersion: registerVersion,\n setLogLevel: logger$1.setLogLevel,\n onLog: onLog,\n // @ts-ignore\n apps: null,\n SDK_VERSION: version$1,\n INTERNAL: {\n registerComponent: registerComponent,\n removeApp: removeApp,\n components: components,\n useAsService: useAsService\n }\n }; // Inject a circular default export to allow Babel users who were previously\n // using:\n //\n // import firebase from 'firebase';\n // which becomes: var firebase = require('firebase').default;\n //\n // instead of\n //\n // import * as firebase from 'firebase';\n // which becomes: var firebase = require('firebase');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n namespace['default'] = namespace; // firebase.apps is a read-only getter.\n\n Object.defineProperty(namespace, 'apps', {\n get: getApps\n });\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\n\n function removeApp(name) {\n delete apps[name];\n }\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\n\n\n function app(name) {\n name = name || DEFAULT_ENTRY_NAME;\n\n if (!util.contains(apps, name)) {\n throw ERROR_FACTORY.create(\"no-app\"\n /* NO_APP */\n , {\n appName: name\n });\n }\n\n return apps[name];\n } // @ts-ignore\n\n\n app['App'] = firebaseAppImpl;\n\n function initializeApp(options, rawConfig) {\n if (rawConfig === void 0) {\n rawConfig = {};\n }\n\n if (typeof rawConfig !== 'object' || rawConfig === null) {\n var name_1 = rawConfig;\n rawConfig = {\n name: name_1\n };\n }\n\n var config = rawConfig;\n\n if (config.name === undefined) {\n config.name = DEFAULT_ENTRY_NAME;\n }\n\n var name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(\"bad-app-name\"\n /* BAD_APP_NAME */\n , {\n appName: String(name)\n });\n }\n\n if (util.contains(apps, name)) {\n throw ERROR_FACTORY.create(\"duplicate-app\"\n /* DUPLICATE_APP */\n , {\n appName: name\n });\n }\n\n var app = new firebaseAppImpl(options, config, namespace);\n apps[name] = app;\n return app;\n }\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\n\n\n function getApps() {\n // Make a copy so caller cannot mutate the apps list.\n return Object.keys(apps).map(function (name) {\n return apps[name];\n });\n }\n\n function registerComponent(component) {\n var e_1, _a;\n\n var componentName = component.name;\n\n if (components.has(componentName)) {\n logger.debug(\"There were multiple attempts to register component \" + componentName + \".\");\n return component.type === \"PUBLIC\"\n /* PUBLIC */\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namespace[componentName] : null;\n }\n\n components.set(componentName, component); // create service namespace for public components\n\n if (component.type === \"PUBLIC\"\n /* PUBLIC */\n ) {\n // The Service namespace is an accessor function ...\n var serviceNamespace = function serviceNamespace(appArg) {\n if (appArg === void 0) {\n appArg = app();\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n if (typeof appArg[componentName] !== 'function') {\n // Invalid argument.\n // This happens in the following case: firebase.storage('gs:/')\n throw ERROR_FACTORY.create(\"invalid-app-argument\"\n /* INVALID_APP_ARGUMENT */\n , {\n appName: componentName\n });\n } // Forward service instance lookup to the FirebaseApp.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n return appArg[componentName]();\n }; // ... and a container for service-level properties.\n\n\n if (component.serviceProps !== undefined) {\n util.deepExtend(serviceNamespace, component.serviceProps);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n namespace[componentName] = serviceNamespace; // Patch the FirebaseAppImpl prototype\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n firebaseAppImpl.prototype[componentName] = // TODO: The eslint disable can be removed and the 'ignoreRestArgs'\n // option added to the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var serviceFxn = this._getService.bind(this, componentName);\n\n return serviceFxn.apply(this, component.multipleInstances ? args : []);\n };\n }\n\n try {\n // add the component to existing app instances\n for (var _b = tslib.__values(Object.keys(apps)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var appName = _c.value;\n\n apps[appName]._addComponent(component);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return component.type === \"PUBLIC\"\n /* PUBLIC */\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namespace[componentName] : null;\n }\n\n function registerVersion(libraryKeyOrName, version, variant) {\n var _a; // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n\n\n var library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\n\n if (variant) {\n library += \"-\" + variant;\n }\n\n var libraryMismatch = library.match(/\\s|\\//);\n var versionMismatch = version.match(/\\s|\\//);\n\n if (libraryMismatch || versionMismatch) {\n var warning = [\"Unable to register library \\\"\" + library + \"\\\" with version \\\"\" + version + \"\\\":\"];\n\n if (libraryMismatch) {\n warning.push(\"library name \\\"\" + library + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\n }\n\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n\n if (versionMismatch) {\n warning.push(\"version name \\\"\" + version + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\n }\n\n logger.warn(warning.join(' '));\n return;\n }\n\n registerComponent(new component.Component(library + \"-version\", function () {\n return {\n library: library,\n version: version\n };\n }, \"VERSION\"\n /* VERSION */\n ));\n }\n\n function onLog(logCallback, options) {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(\"invalid-log-argument\"\n /* INVALID_LOG_ARGUMENT */\n , {\n appName: name\n });\n }\n\n logger$1.setUserLogHandler(logCallback, options);\n } // Map the requested service to a registered service name\n // (used to map auth to serverAuth service when needed).\n\n\n function useAsService(app, name) {\n if (name === 'serverAuth') {\n return null;\n }\n\n var useService = name;\n return useService;\n }\n\n return namespace;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global. It may be called multiple times\r\n * in unit tests.\r\n */\n\n\nfunction createFirebaseNamespace() {\n var namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\n namespace.INTERNAL = tslib.__assign(tslib.__assign({}, namespace.INTERNAL), {\n createFirebaseNamespace: createFirebaseNamespace,\n extendNamespace: extendNamespace,\n createSubscribe: util.createSubscribe,\n ErrorFactory: util.ErrorFactory,\n deepExtend: util.deepExtend\n });\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\n\n function extendNamespace(props) {\n util.deepExtend(namespace, props);\n }\n\n return namespace;\n}\n\nvar firebase = createFirebaseNamespace();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar PlatformLoggerService =\n/** @class */\nfunction () {\n function PlatformLoggerService(container) {\n this.container = container;\n } // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n\n\n PlatformLoggerService.prototype.getPlatformInfoString = function () {\n var providers = this.container.getProviders(); // Loop through providers and get library/version pairs from any that are\n // version components.\n\n return providers.map(function (provider) {\n if (isVersionServiceProvider(provider)) {\n var service = provider.getImmediate();\n return service.library + \"/\" + service.version;\n } else {\n return null;\n }\n }).filter(function (logString) {\n return logString;\n }).join(' ');\n };\n\n return PlatformLoggerService;\n}();\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\n\n\nfunction isVersionServiceProvider(provider) {\n var component = provider.getComponent();\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\"\n /* VERSION */\n ;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction registerCoreComponents(firebase, variant) {\n firebase.INTERNAL.registerComponent(new component.Component('platform-logger', function (container) {\n return new PlatformLoggerService(container);\n }, \"PRIVATE\"\n /* PRIVATE */\n )); // Register `app` package.\n\n firebase.registerVersion(name$1, version, variant); // Register platform SDK identifier (no version).\n\n firebase.registerVersion('fire-js', '');\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Firebase Lite detection test\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nif (util.isBrowser() && self.firebase !== undefined) {\n logger.warn(\"\\n Warning: Firebase is already defined in the global scope. Please make sure\\n Firebase library is only loaded once.\\n \"); // eslint-disable-next-line\n\n var sdkVersion = self.firebase.SDK_VERSION;\n\n if (sdkVersion && sdkVersion.indexOf('LITE') >= 0) {\n logger.warn(\"\\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\\n \");\n }\n}\n\nvar initializeApp = firebase.initializeApp; // TODO: This disable can be removed and the 'ignoreRestArgs' option added to\n// the no-explicit-any rule when ESlint releases it.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfirebase.initializeApp = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // Environment check before initializing app\n // Do the check in initializeApp, so people have a chance to disable it by setting logLevel\n // in @firebase/logger\n\n\n if (util.isNode()) {\n logger.warn(\"\\n Warning: This is a browser-targeted Firebase bundle but it appears it is being\\n run in a Node environment. If running in a Node environment, make sure you\\n are using the bundle specified by the \\\"main\\\" field in package.json.\\n \\n If you are using Webpack, you can specify \\\"main\\\" as the first item in\\n \\\"resolve.mainFields\\\":\\n https://webpack.js.org/configuration/resolve/#resolvemainfields\\n \\n If using Rollup, use the rollup-plugin-node-resolve plugin and specify \\\"main\\\"\\n as the first item in \\\"mainFields\\\", e.g. ['main', 'module'].\\n https://github.com/rollup/rollup-plugin-node-resolve\\n \");\n }\n\n return initializeApp.apply(undefined, args);\n};\n\nvar firebase$1 = firebase;\nregisterCoreComponents(firebase$1);\nexports.default = firebase$1;\nexports.firebase = firebase$1;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar tslib = require('tslib');\n\nvar util = require('@firebase/util');\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\n\n\nvar Component =\n/** @class */\nfunction () {\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\n function Component(name, instanceFactory, type) {\n this.name = name;\n this.instanceFactory = instanceFactory;\n this.type = type;\n this.multipleInstances = false;\n /**\r\n * Properties to be added to the service namespace\r\n */\n\n this.serviceProps = {};\n this.instantiationMode = \"LAZY\"\n /* LAZY */\n ;\n }\n\n Component.prototype.setInstantiationMode = function (mode) {\n this.instantiationMode = mode;\n return this;\n };\n\n Component.prototype.setMultipleInstances = function (multipleInstances) {\n this.multipleInstances = multipleInstances;\n return this;\n };\n\n Component.prototype.setServiceProps = function (props) {\n this.serviceProps = props;\n return this;\n };\n\n return Component;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\n\nvar Provider =\n/** @class */\nfunction () {\n function Provider(name, container) {\n this.name = name;\n this.container = container;\n this.component = null;\n this.instances = new Map();\n this.instancesDeferred = new Map();\n }\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\n\n\n Provider.prototype.get = function (identifier) {\n if (identifier === void 0) {\n identifier = DEFAULT_ENTRY_NAME;\n } // if multipleInstances is not supported, use the default name\n\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n var deferred = new util.Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred); // If the service instance is available, resolve the promise with it immediately\n\n try {\n var instance = this.getOrInitializeService(normalizedIdentifier);\n\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {// when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier).promise;\n };\n\n Provider.prototype.getImmediate = function (options) {\n var _a = tslib.__assign({\n identifier: DEFAULT_ENTRY_NAME,\n optional: false\n }, options),\n identifier = _a.identifier,\n optional = _a.optional; // if multipleInstances is not supported, use the default name\n\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n try {\n var instance = this.getOrInitializeService(normalizedIdentifier);\n\n if (!instance) {\n if (optional) {\n return null;\n }\n\n throw Error(\"Service \" + this.name + \" is not available\");\n }\n\n return instance;\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n };\n\n Provider.prototype.getComponent = function () {\n return this.component;\n };\n\n Provider.prototype.setComponent = function (component) {\n var e_1, _a;\n\n if (component.name !== this.name) {\n throw Error(\"Mismatching Component \" + component.name + \" for Provider \" + this.name + \".\");\n }\n\n if (this.component) {\n throw Error(\"Component for \" + this.name + \" has already been provided\");\n }\n\n this.component = component; // if the service is eager, initialize the default instance\n\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService(DEFAULT_ENTRY_NAME);\n } catch (e) {// when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n try {\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (var _b = tslib.__values(this.instancesDeferred.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = tslib.__read(_c.value, 2),\n instanceIdentifier = _d[0],\n instanceDeferred = _d[1];\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n var instance = this.getOrInitializeService(normalizedIdentifier);\n instanceDeferred.resolve(instance);\n } catch (e) {// when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Provider.prototype.clearInstance = function (identifier) {\n if (identifier === void 0) {\n identifier = DEFAULT_ENTRY_NAME;\n }\n\n this.instancesDeferred.delete(identifier);\n this.instances.delete(identifier);\n }; // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n\n\n Provider.prototype.delete = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var services;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n services = Array.from(this.instances.values());\n return [4\n /*yield*/\n , Promise.all(tslib.__spread(services.filter(function (service) {\n return 'INTERNAL' in service;\n }) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(function (service) {\n return service.INTERNAL.delete();\n }), services.filter(function (service) {\n return '_delete' in service;\n }) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(function (service) {\n return service._delete();\n })))];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Provider.prototype.isComponentSet = function () {\n return this.component != null;\n };\n\n Provider.prototype.getOrInitializeService = function (identifier) {\n var instance = this.instances.get(identifier);\n\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, normalizeIdentifierForFactory(identifier));\n this.instances.set(identifier, instance);\n }\n\n return instance || null;\n };\n\n Provider.prototype.normalizeInstanceIdentifier = function (identifier) {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n };\n\n return Provider;\n}(); // undefined should be passed to the service factory for the default instance\n\n\nfunction normalizeIdentifierForFactory(identifier) {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component) {\n return component.instantiationMode === \"EAGER\"\n /* EAGER */\n ;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\n\n\nvar ComponentContainer =\n/** @class */\nfunction () {\n function ComponentContainer(name) {\n this.name = name;\n this.providers = new Map();\n }\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\n\n\n ComponentContainer.prototype.addComponent = function (component) {\n var provider = this.getProvider(component.name);\n\n if (provider.isComponentSet()) {\n throw new Error(\"Component \" + component.name + \" has already been registered with \" + this.name);\n }\n\n provider.setComponent(component);\n };\n\n ComponentContainer.prototype.addOrOverwriteComponent = function (component) {\n var provider = this.getProvider(component.name);\n\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n };\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\n\n\n ComponentContainer.prototype.getProvider = function (name) {\n if (this.providers.has(name)) {\n return this.providers.get(name);\n } // create a Provider for a service that hasn't registered with Firebase\n\n\n var provider = new Provider(name, this);\n this.providers.set(name, provider);\n return provider;\n };\n\n ComponentContainer.prototype.getProviders = function () {\n return Array.from(this.providers.values());\n };\n\n return ComponentContainer;\n}();\n\nexports.Component = Component;\nexports.ComponentContainer = ComponentContainer;\nexports.Provider = Provider;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _msal = require('msal');\n\nvar Msal = _interopRequireWildcard(_msal);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // note on window.msal usage. There is little point holding the object constructed by new Msal.UserAgentApplication\n// as the constructor for this class will make callbacks to the acquireToken function and these occur before\n// any local assignment can take place. Not nice but its how it works.\n\n\nvar logger = new Msal.Logger(loggerCallback, {\n level: Msal.LogLevel.Warning\n});\nvar state = {\n stopLoopingRedirect: false,\n launchApp: null,\n accessToken: null,\n scopes: []\n};\n\nfunction loggerCallback(logLevel, message, piiLoggingEnabled) {\n console.log(message);\n}\n\nfunction authCallback(errorDesc, token, error, tokenType) {\n if (errorDesc) {\n console.log(error + ':' + errorDesc);\n state.stopLoopingRedirect = true;\n } else {\n acquireToken();\n }\n}\n\nfunction acquireToken(successCallback) {\n var localMsalApp = window.msal;\n var user = localMsalApp.getUser(state.scopes);\n\n if (!user) {\n localMsalApp.loginRedirect(state.scopes);\n } else {\n localMsalApp.acquireTokenSilent(state.scopes).then(function (accessToken) {\n state.accessToken = accessToken;\n\n if (state.launchApp) {\n state.launchApp();\n }\n\n if (successCallback) {\n successCallback();\n }\n }, function (error) {\n if (error) {\n localMsalApp.acquireTokenRedirect(state.scopes);\n }\n });\n }\n}\n\nvar authentication = {\n initialize: function initialize(config) {\n var instance = config.instance ? config.instance : 'https://login.microsoftonline.com/tfp/';\n var authority = '' + instance + config.tenant + '/' + config.signInPolicy;\n var scopes = config.scopes;\n\n if (!scopes || scopes.length === 0) {\n console.log('To obtain access tokens you must specify one or more scopes. See https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-access-tokens');\n state.stopLoopingRedirect = true;\n }\n\n state.scopes = scopes;\n new Msal.UserAgentApplication(config.applicationId, authority, authCallback, {\n logger: logger,\n cacheLocation: config.cacheLocation,\n postLogoutRedirectUri: config.postLogoutRedirectUri,\n redirectUri: config.redirectUri\n });\n },\n run: function run(launchApp) {\n state.launchApp = launchApp;\n\n if (!window.msal.isCallback(window.location.hash) && window.parent === window && !window.opener) {\n if (!state.stopLoopingRedirect) {\n acquireToken();\n }\n }\n },\n required: function required(WrappedComponent, renderLoading) {\n return function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, props));\n\n _this.state = {\n signedIn: false,\n error: null\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n acquireToken(function () {\n _this2.setState({\n signedIn: true\n });\n });\n }\n }, {\n key: 'render',\n value: function render() {\n if (this.state.signedIn) {\n return _react2.default.createElement(WrappedComponent, this.props);\n }\n\n return typeof renderLoading === 'function' ? renderLoading() : null;\n }\n }]);\n\n return _class;\n }(_react2.default.Component);\n },\n signOut: function signOut() {\n return window.msal.logout();\n },\n getAccessToken: function getAccessToken() {\n return state.accessToken;\n }\n};\nexports.default = authentication;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isObject = isObject;\nexports.isEqual = isEqual;\nexports.isMediaStream = isMediaStream;\n\nvar _react = require(\"react\");\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _props = require(\"./props\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n var match = url.match(pattern);\n\n if (match) {\n var stamp = match[1];\n\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n\n return undefined;\n}\n\nfunction parseTimeString(stamp) {\n var seconds = 0;\n var array = MATCH_START_STAMP.exec(stamp);\n\n while (array !== null) {\n var _array = array,\n _array2 = _slicedToArray(_array, 3),\n count = _array2[1],\n period = _array2[2];\n\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n if (period === 'm') seconds += parseInt(count, 10) * 60;\n if (period === 's') seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n\n return seconds;\n}\n\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(key, \"=\").concat(object[key]);\n }).join('&');\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n return true;\n };\n var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n\n if (window[sdkGlobal] && isLoaded(window[sdkGlobal])) {\n return Promise.resolve(window[sdkGlobal]);\n }\n\n return new Promise(function (resolve, reject) {\n // If we are already loading the SDK, add the resolve and reject\n // functions to the existing array of requests\n if (requests[url]) {\n requests[url].push({\n resolve: resolve,\n reject: reject\n });\n return;\n }\n\n requests[url] = [{\n resolve: resolve,\n reject: reject\n }];\n\n var onLoaded = function onLoaded(sdk) {\n // When loaded, resolve all pending request promises\n requests[url].forEach(function (request) {\n return request.resolve(sdk);\n });\n };\n\n if (sdkReady) {\n var previousOnReady = window[sdkReady];\n\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady();\n onLoaded(window[sdkGlobal]);\n };\n }\n\n fetchScript(url, function (err) {\n if (err) {\n // Loading the SDK failed – reject all requests and\n // reset the array of requests for this SDK\n requests[url].forEach(function (request) {\n return request.reject(err);\n });\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(window[sdkGlobal]);\n }\n });\n });\n}\n\nfunction getConfig(props, defaultProps, showWarning) {\n var config = (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = _props.DEPRECATED_CONFIG_PROPS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n\n if (props[p]) {\n var key = p.replace(/Config$/, '');\n config = (0, _deepmerge[\"default\"])(config, _defineProperty({}, key, props[p]));\n\n if (showWarning) {\n var link = 'https://github.com/CookPete/react-player#config-prop';\n var message = \"ReactPlayer: %c\".concat(p, \" %cis deprecated, please use the config prop instead \\u2013 \").concat(link);\n console.warn(message, 'font-weight: bold', '');\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return config;\n}\n\nfunction omit(object) {\n var _ref;\n\n for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n var output = {};\n var keys = Object.keys(object);\n\n for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n var key = _keys[_i2];\n\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n\n return output;\n}\n\nfunction callPlayer(method) {\n var _this$player; // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n\n\n if (!this.player || !this.player[method]) {\n var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n if (!this.player) {\n message += 'The player was not available';\n } else if (!this.player[method]) {\n message += 'The method was not available';\n }\n\n console.warn(message, 'font-weight: bold', '');\n return null;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isObject(val) {\n return val !== null && _typeof(val) === 'object';\n} // Deep comparison of two objects, but ignoring functions\n// and React elements, for use in shouldComponentUpdate\n\n\nfunction isEqual(a, b) {\n if (typeof a === 'function' && typeof b === 'function') {\n return true;\n }\n\n if ((0, _react.isValidElement)(a) && (0, _react.isValidElement)(b)) {\n return true;\n }\n\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i !== a.length; i++) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n\n for (var _i3 = 0, _Object$keys = Object.keys(a); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return a === b;\n}\n\nfunction isMediaStream(url) {\n return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n} // About 1.5x faster than the two-arg version of Array#splice()\n\n\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n} // This implementation is based heavily on node's url.parse\n\n\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n var hasTrailingSlash;\n\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }\n if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n var result = fromParts.join('/');\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n return result;\n}\n\nexport default resolvePathname;","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true; // Otherwise, if either of them == null they are not equal.\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n return Object.keys(Object.assign({}, a, b)).every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\n\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\n\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\n\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\n\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\n\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\n\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\n\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar Utils =\n/** @class */\nfunction () {\n function Utils() {}\n\n Utils.compareObjects = function (u1, u2) {\n if (!u1 || !u2) {\n return false;\n }\n\n if (u1.userIdentifier && u2.userIdentifier) {\n if (u1.userIdentifier === u2.userIdentifier) {\n return true;\n }\n }\n\n return false;\n };\n\n Utils.expiresIn = function (expires) {\n // if AAD did not send \"expires_in\" property, use default expiration of 3599 seconds, for some reason AAD sends 3599 as \"expires_in\" value instead of 3600\n if (!expires) {\n expires = \"3599\";\n }\n\n return this.now() + parseInt(expires, 10);\n };\n\n Utils.now = function () {\n return Math.round(new Date().getTime() / 1000.0);\n };\n\n Utils.isEmpty = function (str) {\n return typeof str === \"undefined\" || !str || 0 === str.length;\n };\n\n Utils.extractIdToken = function (encodedIdToken) {\n // id token will be decoded to get the username\n var decodedToken = this.decodeJwt(encodedIdToken);\n\n if (!decodedToken) {\n return null;\n }\n\n try {\n var base64IdToken = decodedToken.JWSPayload;\n var base64Decoded = this.base64DecodeStringUrlSafe(base64IdToken);\n\n if (!base64Decoded) {\n //this._requestContext.logger.info(\"The returned id_token could not be base64 url safe decoded.\");\n return null;\n } // ECMA script has JSON built-in support\n\n\n return JSON.parse(base64Decoded);\n } catch (err) {//this._requestContext.logger.error(\"The returned id_token could not be decoded\" + err);\n }\n\n return null;\n };\n\n Utils.base64EncodeStringUrlSafe = function (input) {\n // html5 should support atob function for decoding\n if (window.btoa) {\n return window.btoa(input);\n } else {\n return this.encode(input);\n }\n };\n\n Utils.base64DecodeStringUrlSafe = function (base64IdToken) {\n // html5 should support atob function for decoding\n base64IdToken = base64IdToken.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n if (window.atob) {\n return decodeURIComponent(encodeURIComponent(window.atob(base64IdToken))); // jshint ignore:line\n } else {\n return decodeURIComponent(encodeURIComponent(this.decode(base64IdToken)));\n }\n };\n\n Utils.encode = function (input) {\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var output = \"\";\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n input = this.utf8Encode(input);\n\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);\n }\n\n return output.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n };\n\n Utils.utf8Encode = function (input) {\n input = input.replace(/\\r\\n/g, \"\\n\");\n var utftext = \"\";\n\n for (var n = 0; n < input.length; n++) {\n var c = input.charCodeAt(n);\n\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if (c > 127 && c < 2048) {\n utftext += String.fromCharCode(c >> 6 | 192);\n utftext += String.fromCharCode(c & 63 | 128);\n } else {\n utftext += String.fromCharCode(c >> 12 | 224);\n utftext += String.fromCharCode(c >> 6 & 63 | 128);\n utftext += String.fromCharCode(c & 63 | 128);\n }\n }\n\n return utftext;\n };\n\n Utils.decode = function (base64IdToken) {\n var codes = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n base64IdToken = String(base64IdToken).replace(/=+$/, \"\");\n var length = base64IdToken.length;\n\n if (length % 4 === 1) {\n throw new Error(\"The token to be decoded is not correctly encoded.\");\n }\n\n var h1,\n h2,\n h3,\n h4,\n bits,\n c1,\n c2,\n c3,\n decoded = \"\";\n\n for (var i = 0; i < length; i += 4) {\n //Every 4 base64 encoded character will be converted to 3 byte string, which is 24 bits\n // then 6 bits per base64 encoded character\n h1 = codes.indexOf(base64IdToken.charAt(i));\n h2 = codes.indexOf(base64IdToken.charAt(i + 1));\n h3 = codes.indexOf(base64IdToken.charAt(i + 2));\n h4 = codes.indexOf(base64IdToken.charAt(i + 3)); // For padding, if last two are \"=\"\n\n if (i + 2 === length - 1) {\n bits = h1 << 18 | h2 << 12 | h3 << 6;\n c1 = bits >> 16 & 255;\n c2 = bits >> 8 & 255;\n decoded += String.fromCharCode(c1, c2);\n break;\n } // if last one is \"=\"\n else if (i + 1 === length - 1) {\n bits = h1 << 18 | h2 << 12;\n c1 = bits >> 16 & 255;\n decoded += String.fromCharCode(c1);\n break;\n }\n\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; // then convert to 3 byte chars\n\n c1 = bits >> 16 & 255;\n c2 = bits >> 8 & 255;\n c3 = bits & 255;\n decoded += String.fromCharCode(c1, c2, c3);\n }\n\n return decoded;\n };\n\n Utils.decodeJwt = function (jwtToken) {\n if (this.isEmpty(jwtToken)) {\n return null;\n }\n\n var idTokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\n var matches = idTokenPartsRegex.exec(jwtToken);\n\n if (!matches || matches.length < 4) {\n //this._requestContext.logger.warn(\"The returned id_token is not parseable.\");\n return null;\n }\n\n var crackedToken = {\n header: matches[1],\n JWSPayload: matches[2],\n JWSSig: matches[3]\n };\n return crackedToken;\n };\n\n Utils.deserialize = function (query) {\n var match; // Regex for replacing addition symbol with a space\n\n var pl = /\\+/g;\n var search = /([^&=]+)=([^&]*)/g;\n\n var decode = function decode(s) {\n return decodeURIComponent(s.replace(pl, \" \"));\n };\n\n var obj = {};\n match = search.exec(query);\n\n while (match) {\n obj[decode(match[1])] = decode(match[2]);\n match = search.exec(query);\n }\n\n return obj;\n };\n\n Utils.isIntersectingScopes = function (cachedScopes, scopes) {\n cachedScopes = this.convertToLowerCase(cachedScopes);\n\n for (var i = 0; i < scopes.length; i++) {\n if (cachedScopes.indexOf(scopes[i].toLowerCase()) > -1) {\n return true;\n }\n }\n\n return false;\n };\n\n Utils.containsScope = function (cachedScopes, scopes) {\n cachedScopes = this.convertToLowerCase(cachedScopes);\n return scopes.every(function (value) {\n return cachedScopes.indexOf(value.toString().toLowerCase()) >= 0;\n });\n };\n\n Utils.convertToLowerCase = function (scopes) {\n return scopes.map(function (scope) {\n return scope.toLowerCase();\n });\n };\n\n Utils.removeElement = function (scopes, scope) {\n return scopes.filter(function (value) {\n return value !== scope;\n });\n };\n\n Utils.decimalToHex = function (num) {\n var hex = num.toString(16);\n\n while (hex.length < 2) {\n hex = \"0\" + hex;\n }\n\n return hex;\n };\n\n Utils.getLibraryVersion = function () {\n return \"0.1.9\";\n };\n /*\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\n\n\n Utils.replaceFirstPath = function (href, tenantId) {\n var match = href.match(/^(https?\\:)\\/\\/(([^:\\/?#] *)(?:\\:([0-9]+))?)([\\/]{0,1}[^?#] *)(\\?[^#] *|)(#. *|)$/);\n\n if (match) {\n var urlObject = Utils.GetUrlComponents(href);\n var pathArray = urlObject.PathSegments;\n pathArray.shift();\n\n if (pathArray[0] && pathArray[0] === \"common\" || pathArray[0] === \"organizations\") {\n pathArray[0] = tenantId;\n href = urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + pathArray.join(\"/\");\n }\n }\n\n return href;\n };\n\n Utils.createNewGuid = function () {\n // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\n // pseudo-random numbers.\n // The algorithm is as follows:\n // Set the two most significant bits (bits 6 and 7) of the\n // clock_seq_hi_and_reserved to zero and one, respectively.\n // Set the four most significant bits (bits 12 through 15) of the\n // time_hi_and_version field to the 4-bit version number from\n // Section 4.1.3. Version4\n // Set all the other bits to randomly (or pseudo-randomly) chosen\n // values.\n // UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\n // time-low = 4hexOctet\n // time-mid = 2hexOctet\n // time-high-and-version = 2hexOctet\n // clock-seq-and-reserved = hexOctet:\n // clock-seq-low = hexOctet\n // node = 6hexOctet\n // Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n // y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\n // y values are 8, 9, A, B\n var cryptoObj = window.crypto; // for IE 11\n\n if (cryptoObj && cryptoObj.getRandomValues) {\n var buffer = new Uint8Array(16);\n cryptoObj.getRandomValues(buffer); //buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\n\n buffer[6] |= 0x40; //buffer[6] | 01000000 will set the 6 bit to 1.\n\n buffer[6] &= 0x4f; //buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\n //buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\n\n buffer[8] |= 0x80; //buffer[8] | 10000000 will set the 7 bit to 1.\n\n buffer[8] &= 0xbf; //buffer[8] & 10111111 will set the 6 bit to 0.\n\n return Utils.decimalToHex(buffer[0]) + Utils.decimalToHex(buffer[1]) + Utils.decimalToHex(buffer[2]) + Utils.decimalToHex(buffer[3]) + \"-\" + Utils.decimalToHex(buffer[4]) + Utils.decimalToHex(buffer[5]) + \"-\" + Utils.decimalToHex(buffer[6]) + Utils.decimalToHex(buffer[7]) + \"-\" + Utils.decimalToHex(buffer[8]) + Utils.decimalToHex(buffer[9]) + \"-\" + Utils.decimalToHex(buffer[10]) + Utils.decimalToHex(buffer[11]) + Utils.decimalToHex(buffer[12]) + Utils.decimalToHex(buffer[13]) + Utils.decimalToHex(buffer[14]) + Utils.decimalToHex(buffer[15]);\n } else {\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\n var hex = \"0123456789abcdef\";\n var r = 0;\n var guidResponse = \"\";\n\n for (var i = 0; i < 36; i++) {\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\n // each x and y needs to be random\n r = Math.random() * 16 | 0;\n }\n\n if (guidHolder[i] === \"x\") {\n guidResponse += hex[r];\n } else if (guidHolder[i] === \"y\") {\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\n\n r |= 0x8; // set pos 3 to 1 as 1???\n\n guidResponse += hex[r];\n } else {\n guidResponse += guidHolder[i];\n }\n }\n\n return guidResponse;\n }\n };\n /*\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\n\n\n Utils.GetUrlComponents = function (url) {\n if (!url) {\n throw \"Url required\";\n } // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\n\n\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\n var match = url.match(regEx);\n\n if (!match || match.length < 6) {\n throw \"Valid url required\";\n }\n\n var urlComponents = {\n Protocol: match[1],\n HostNameAndPort: match[4],\n AbsolutePath: match[5]\n };\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\n pathSegments = pathSegments.filter(function (val) {\n return val && val.length > 0;\n }); // remove empty elements\n\n urlComponents.PathSegments = pathSegments;\n return urlComponents;\n };\n /*\r\n * Given a url or path, append a trailing slash if one doesnt exist\r\n */\n\n\n Utils.CanonicalizeUri = function (url) {\n if (url) {\n url = url.toLowerCase();\n }\n\n if (url && !Utils.endsWith(url, \"/\")) {\n url += \"/\";\n }\n\n return url;\n };\n /*\r\n * Checks to see if the url ends with the suffix\r\n * Required because we are compiling for es5 instead of es6\r\n * @param url\r\n * @param str\r\n */\n\n\n Utils.endsWith = function (url, suffix) {\n if (!url || !suffix) {\n return false;\n }\n\n return url.indexOf(suffix, url.length - suffix.length) !== -1;\n };\n\n return Utils;\n}();\n\nexports.Utils = Utils;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createSinglePlayer;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SUPPORTED_PROPS = Object.keys(_props.propTypes);\n\nfunction createSinglePlayer(activePlayer) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inherits(SinglePlayer, _Component);\n\n function SinglePlayer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, SinglePlayer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SinglePlayer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"config\", (0, _utils.getConfig)(_this.props, _props.defaultProps, true));\n\n _defineProperty(_assertThisInitialized(_this), \"getDuration\", function () {\n if (!_this.player) return null;\n return _this.player.getDuration();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentTime\", function () {\n if (!_this.player) return null;\n return _this.player.getCurrentTime();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getSecondsLoaded\", function () {\n if (!_this.player) return null;\n return _this.player.getSecondsLoaded();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'player';\n if (!_this.player) return null;\n return _this.player.getInternalPlayer(key);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"seekTo\", function (fraction, type) {\n if (!_this.player) return null;\n\n _this.player.seekTo(fraction, type);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(SinglePlayer, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(0, _utils.isEqual)(this.props, nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.config = (0, _utils.getConfig)(this.props, _props.defaultProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$config$file = this.config.file,\n forceVideo = _this$config$file.forceVideo,\n forceAudio = _this$config$file.forceAudio,\n forceHLS = _this$config$file.forceHLS,\n forceDASH = _this$config$file.forceDASH;\n var skipCanPlay = forceVideo || forceAudio || forceHLS || forceDASH;\n\n if (!activePlayer.canPlay(this.props.url) && !skipCanPlay) {\n return null;\n }\n\n var _this$props = this.props,\n style = _this$props.style,\n width = _this$props.width,\n height = _this$props.height,\n Wrapper = _this$props.wrapper;\n var otherProps = (0, _utils.omit)(this.props, SUPPORTED_PROPS, _props.DEPRECATED_CONFIG_PROPS);\n return _react[\"default\"].createElement(Wrapper, _extends({\n style: _objectSpread({}, style, {\n width: width,\n height: height\n })\n }, otherProps), _react[\"default\"].createElement(_Player[\"default\"], _extends({}, this.props, {\n ref: this.ref,\n activePlayer: activePlayer,\n config: this.config\n })));\n }\n }]);\n\n return SinglePlayer;\n }(_react.Component), _defineProperty(_class, \"displayName\", \"\".concat(activePlayer.displayName, \"Player\")), _defineProperty(_class, \"propTypes\", _props.propTypes), _defineProperty(_class, \"defaultProps\", _props.defaultProps), _defineProperty(_class, \"canPlay\", activePlayer.canPlay), _temp;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\nexport default index;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics'; // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext(\"Router\");\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n children: this.props.children || null,\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n });\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n/**\n * The public API for a that stores location in memory.\n */\n\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n/**\n * The public API for navigating programmatically with a component.\n */\n\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false);\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n/**\n * The public API for rendering the first that matches.\n */\n\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n/**\n * A public higher-order component to access the imperative API\n */\n\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\n\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(context).history;\n}\n\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\n\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\n\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n return path ? matchPath(useLocation().pathname, path) : useContext(context).match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\n\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\n\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && (nav.platform.includes(type) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DEVICE_TYPES = {\n MOBILE: 'mobile',\n TABLET: 'tablet',\n SMART_TV: 'smarttv',\n CONSOLE: 'console',\n WEARABLE: 'wearable',\n BROWSER: undefined\n};\nvar BROWSER_TYPES = {\n CHROME: 'Chrome',\n FIREFOX: \"Firefox\",\n OPERA: \"Opera\",\n YANDEX: \"Yandex\",\n SAFARI: \"Safari\",\n INTERNET_EXPLORER: \"Internet Explorer\",\n EDGE: \"Edge\",\n CHROMIUM: \"Chromium\",\n IE: 'IE',\n MOBILE_SAFARI: \"Mobile Safari\"\n};\nvar OS_TYPES = {\n IOS: 'iOS',\n ANDROID: \"Android\",\n WINDOWS_PHONE: \"Windows Phone\"\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkType = function checkType(type) {\n switch (type) {\n case DEVICE_TYPES.MOBILE:\n return {\n isMobile: true\n };\n\n case DEVICE_TYPES.TABLET:\n return {\n isTablet: true\n };\n\n case DEVICE_TYPES.SMART_TV:\n return {\n isSmartTV: true\n };\n\n case DEVICE_TYPES.CONSOLE:\n return {\n isConsole: true\n };\n\n case DEVICE_TYPES.WEARABLE:\n return {\n isWearable: true\n };\n\n case DEVICE_TYPES.BROWSER:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\n\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\n\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DEVICE_TYPES.MOBILE;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DEVICE_TYPES.TABLET;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DEVICE_TYPES.MOBILE:\n case DEVICE_TYPES.TABLET:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DEVICE_TYPES.SMART_TV;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DEVICE_TYPES.BROWSER;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DEVICE_TYPES.WEARABLE;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DEVICE_TYPES.CONSOLE;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OS_TYPES.ANDROID;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OS_TYPES.WINDOWS_PHONE;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OS_TYPES.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BROWSER_TYPES.CHROME;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BROWSER_TYPES.FIREFOX;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BROWSER_TYPES.CHROMIUM;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BROWSER_TYPES.EDGE;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BROWSER_TYPES.YANDEX;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BROWSER_TYPES.SAFARI || browser.name === BROWSER_TYPES.MOBILE_SAFARI;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BROWSER_TYPES.MOBILE_SAFARI;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BROWSER_TYPES.OPERA;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BROWSER_TYPES.INTERNET_EXPLORER || browser.name === BROWSER_TYPES.IE;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? ua.includes('electron') : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType();\nvar isBrowser = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style;\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style;\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style;\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style;\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style;\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style;\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style;\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style;\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style;\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style;\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style;\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition;\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", {\n className: viewClassName,\n style: style\n }, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isEdge = isEdge;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.idb = {}));\n})(this, function (exports) {\n 'use strict';\n\n function toArray(arr) {\n return Array.prototype.slice.call(arr);\n }\n\n function promisifyRequest(request) {\n return new Promise(function (resolve, reject) {\n request.onsuccess = function () {\n resolve(request.result);\n };\n\n request.onerror = function () {\n reject(request.error);\n };\n });\n }\n\n function promisifyRequestCall(obj, method, args) {\n var request;\n var p = new Promise(function (resolve, reject) {\n request = obj[method].apply(obj, args);\n promisifyRequest(request).then(resolve, reject);\n });\n p.request = request;\n return p;\n }\n\n function promisifyCursorRequestCall(obj, method, args) {\n var p = promisifyRequestCall(obj, method, args);\n return p.then(function (value) {\n if (!value) return;\n return new Cursor(value, p.request);\n });\n }\n\n function proxyProperties(ProxyClass, targetProp, properties) {\n properties.forEach(function (prop) {\n Object.defineProperty(ProxyClass.prototype, prop, {\n get: function get() {\n return this[targetProp][prop];\n },\n set: function set(val) {\n this[targetProp][prop] = val;\n }\n });\n });\n }\n\n function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function (prop) {\n if (!(prop in Constructor.prototype)) return;\n\n ProxyClass.prototype[prop] = function () {\n return promisifyRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function proxyMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function (prop) {\n if (!(prop in Constructor.prototype)) return;\n\n ProxyClass.prototype[prop] = function () {\n return this[targetProp][prop].apply(this[targetProp], arguments);\n };\n });\n }\n\n function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function (prop) {\n if (!(prop in Constructor.prototype)) return;\n\n ProxyClass.prototype[prop] = function () {\n return promisifyCursorRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function Index(index) {\n this._index = index;\n }\n\n proxyProperties(Index, '_index', ['name', 'keyPath', 'multiEntry', 'unique']);\n proxyRequestMethods(Index, '_index', IDBIndex, ['get', 'getKey', 'getAll', 'getAllKeys', 'count']);\n proxyCursorRequestMethods(Index, '_index', IDBIndex, ['openCursor', 'openKeyCursor']);\n\n function Cursor(cursor, request) {\n this._cursor = cursor;\n this._request = request;\n }\n\n proxyProperties(Cursor, '_cursor', ['direction', 'key', 'primaryKey', 'value']);\n proxyRequestMethods(Cursor, '_cursor', IDBCursor, ['update', 'delete']); // proxy 'next' methods\n\n ['advance', 'continue', 'continuePrimaryKey'].forEach(function (methodName) {\n if (!(methodName in IDBCursor.prototype)) return;\n\n Cursor.prototype[methodName] = function () {\n var cursor = this;\n var args = arguments;\n return Promise.resolve().then(function () {\n cursor._cursor[methodName].apply(cursor._cursor, args);\n\n return promisifyRequest(cursor._request).then(function (value) {\n if (!value) return;\n return new Cursor(value, cursor._request);\n });\n });\n };\n });\n\n function ObjectStore(store) {\n this._store = store;\n }\n\n ObjectStore.prototype.createIndex = function () {\n return new Index(this._store.createIndex.apply(this._store, arguments));\n };\n\n ObjectStore.prototype.index = function () {\n return new Index(this._store.index.apply(this._store, arguments));\n };\n\n proxyProperties(ObjectStore, '_store', ['name', 'keyPath', 'indexNames', 'autoIncrement']);\n proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, ['put', 'add', 'delete', 'clear', 'get', 'getAll', 'getKey', 'getAllKeys', 'count']);\n proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, ['openCursor', 'openKeyCursor']);\n proxyMethods(ObjectStore, '_store', IDBObjectStore, ['deleteIndex']);\n\n function Transaction(idbTransaction) {\n this._tx = idbTransaction;\n this.complete = new Promise(function (resolve, reject) {\n idbTransaction.oncomplete = function () {\n resolve();\n };\n\n idbTransaction.onerror = function () {\n reject(idbTransaction.error);\n };\n\n idbTransaction.onabort = function () {\n reject(idbTransaction.error);\n };\n });\n }\n\n Transaction.prototype.objectStore = function () {\n return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));\n };\n\n proxyProperties(Transaction, '_tx', ['objectStoreNames', 'mode']);\n proxyMethods(Transaction, '_tx', IDBTransaction, ['abort']);\n\n function UpgradeDB(db, oldVersion, transaction) {\n this._db = db;\n this.oldVersion = oldVersion;\n this.transaction = new Transaction(transaction);\n }\n\n UpgradeDB.prototype.createObjectStore = function () {\n return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));\n };\n\n proxyProperties(UpgradeDB, '_db', ['name', 'version', 'objectStoreNames']);\n proxyMethods(UpgradeDB, '_db', IDBDatabase, ['deleteObjectStore', 'close']);\n\n function DB(db) {\n this._db = db;\n }\n\n DB.prototype.transaction = function () {\n return new Transaction(this._db.transaction.apply(this._db, arguments));\n };\n\n proxyProperties(DB, '_db', ['name', 'version', 'objectStoreNames']);\n proxyMethods(DB, '_db', IDBDatabase, ['close']); // Add cursor iterators\n // TODO: remove this once browsers do the right thing with promises\n\n ['openCursor', 'openKeyCursor'].forEach(function (funcName) {\n [ObjectStore, Index].forEach(function (Constructor) {\n // Don't create iterateKeyCursor if openKeyCursor doesn't exist.\n if (!(funcName in Constructor.prototype)) return;\n\n Constructor.prototype[funcName.replace('open', 'iterate')] = function () {\n var args = toArray(arguments);\n var callback = args[args.length - 1];\n var nativeObject = this._store || this._index;\n var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));\n\n request.onsuccess = function () {\n callback(request.result);\n };\n };\n });\n }); // polyfill getAll\n\n [Index, ObjectStore].forEach(function (Constructor) {\n if (Constructor.prototype.getAll) return;\n\n Constructor.prototype.getAll = function (query, count) {\n var instance = this;\n var items = [];\n return new Promise(function (resolve) {\n instance.iterateCursor(query, function (cursor) {\n if (!cursor) {\n resolve(items);\n return;\n }\n\n items.push(cursor.value);\n\n if (count !== undefined && items.length == count) {\n resolve(items);\n return;\n }\n\n cursor.continue();\n });\n });\n };\n });\n\n function openDb(name, version, upgradeCallback) {\n var p = promisifyRequestCall(indexedDB, 'open', [name, version]);\n var request = p.request;\n\n if (request) {\n request.onupgradeneeded = function (event) {\n if (upgradeCallback) {\n upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));\n }\n };\n }\n\n return p.then(function (db) {\n return new DB(db);\n });\n }\n\n function deleteDb(name) {\n return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);\n }\n\n exports.openDb = openDb;\n exports.deleteDb = deleteDb;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n};\n\nmodule.exports = invariant;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar _a;\n/**\r\n * A container for all of the Logger instances\r\n */\n\n\nvar instances = [];\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\n\nvar LogLevel;\n\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\n})(LogLevel || (LogLevel = {}));\n\nvar levelStringToEnum = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n/**\r\n * The default log level\r\n */\n\nvar defaultLogLevel = LogLevel.INFO;\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\n\nvar ConsoleMethod = (_a = {}, _a[LogLevel.DEBUG] = 'log', _a[LogLevel.VERBOSE] = 'log', _a[LogLevel.INFO] = 'info', _a[LogLevel.WARN] = 'warn', _a[LogLevel.ERROR] = 'error', _a);\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\n\nvar defaultLogHandler = function defaultLogHandler(instance, logType) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n if (logType < instance.logLevel) {\n return;\n }\n\n var now = new Date().toISOString();\n var method = ConsoleMethod[logType];\n\n if (method) {\n console[method].apply(console, __spreadArrays([\"[\" + now + \"] \" + instance.name + \":\"], args));\n } else {\n throw new Error(\"Attempted to log a message with an invalid logType (value: \" + logType + \")\");\n }\n};\n\nvar Logger =\n/** @class */\nfunction () {\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\n function Logger(name) {\n this.name = name;\n /**\r\n * The log level of the given Logger instance.\r\n */\n\n this._logLevel = defaultLogLevel;\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\n\n this._logHandler = defaultLogHandler;\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\n\n this._userLogHandler = null;\n /**\r\n * Capture the current instance for later use\r\n */\n\n instances.push(this);\n }\n\n Object.defineProperty(Logger.prototype, \"logLevel\", {\n get: function get() {\n return this._logLevel;\n },\n set: function set(val) {\n if (!(val in LogLevel)) {\n throw new TypeError(\"Invalid value \\\"\" + val + \"\\\" assigned to `logLevel`\");\n }\n\n this._logLevel = val;\n },\n enumerable: false,\n configurable: true\n }); // Workaround for setter/getter having to be the same type.\n\n Logger.prototype.setLogLevel = function (val) {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n };\n\n Object.defineProperty(Logger.prototype, \"logHandler\", {\n get: function get() {\n return this._logHandler;\n },\n set: function set(val) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n\n this._logHandler = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Logger.prototype, \"userLogHandler\", {\n get: function get() {\n return this._userLogHandler;\n },\n set: function set(val) {\n this._userLogHandler = val;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * The functions below are all based on the `console` interface\r\n */\n\n Logger.prototype.debug = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\n };\n\n Logger.prototype.log = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\n };\n\n Logger.prototype.info = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\n };\n\n Logger.prototype.warn = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\n };\n\n Logger.prototype.error = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\n };\n\n return Logger;\n}();\n\nfunction setLogLevel(level) {\n instances.forEach(function (inst) {\n inst.setLogLevel(level);\n });\n}\n\nfunction setUserLogHandler(logCallback, options) {\n var _loop_1 = function _loop_1(instance) {\n var customLogLevel = null;\n\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = function (instance, level) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n var message = args.map(function (arg) {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n }).filter(function (arg) {\n return arg;\n }).join(' ');\n\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase(),\n message: message,\n args: args,\n type: instance.name\n });\n }\n };\n }\n };\n\n for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) {\n var instance = instances_1[_i];\n\n _loop_1(instance);\n }\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n\nvar ErrorMessage_1 = require(\"./ErrorMessage\");\n\nvar XHRClient_1 = require(\"./XHRClient\");\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\n/*\r\n * @hidden\r\n */\n\n\nvar AuthorityType;\n\n(function (AuthorityType) {\n AuthorityType[AuthorityType[\"Aad\"] = 0] = \"Aad\";\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\n AuthorityType[AuthorityType[\"B2C\"] = 2] = \"B2C\";\n})(AuthorityType = exports.AuthorityType || (exports.AuthorityType = {}));\n/*\r\n * @hidden\r\n */\n\n\nvar Authority =\n/** @class */\nfunction () {\n function Authority(authority, validateAuthority) {\n this.IsValidationEnabled = validateAuthority;\n this.CanonicalAuthority = authority;\n this.validateAsUri();\n }\n\n Object.defineProperty(Authority.prototype, \"Tenant\", {\n get: function get() {\n return this.CanonicalAuthorityUrlComponents.PathSegments[0];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Authority.prototype, \"AuthorizationEndpoint\", {\n get: function get() {\n this.validateResolved();\n return this.tenantDiscoveryResponse.AuthorizationEndpoint.replace(\"{tenant}\", this.Tenant);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Authority.prototype, \"EndSessionEndpoint\", {\n get: function get() {\n this.validateResolved();\n return this.tenantDiscoveryResponse.EndSessionEndpoint.replace(\"{tenant}\", this.Tenant);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Authority.prototype, \"SelfSignedJwtAudience\", {\n get: function get() {\n this.validateResolved();\n return this.tenantDiscoveryResponse.Issuer.replace(\"{tenant}\", this.Tenant);\n },\n enumerable: true,\n configurable: true\n });\n\n Authority.prototype.validateResolved = function () {\n if (!this.tenantDiscoveryResponse) {\n throw \"Please call ResolveEndpointsAsync first\";\n }\n };\n\n Object.defineProperty(Authority.prototype, \"CanonicalAuthority\", {\n /*\r\n * A URL that is the authority set by the developer\r\n */\n get: function get() {\n return this.canonicalAuthority;\n },\n set: function set(url) {\n this.canonicalAuthority = Utils_1.Utils.CanonicalizeUri(url);\n this.canonicalAuthorityUrlComponents = null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Authority.prototype, \"CanonicalAuthorityUrlComponents\", {\n get: function get() {\n if (!this.canonicalAuthorityUrlComponents) {\n this.canonicalAuthorityUrlComponents = Utils_1.Utils.GetUrlComponents(this.CanonicalAuthority);\n }\n\n return this.canonicalAuthorityUrlComponents;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Authority.prototype, \"DefaultOpenIdConfigurationEndpoint\", {\n /*\r\n * // http://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\r\n */\n get: function get() {\n return this.CanonicalAuthority + \"v2.0/.well-known/openid-configuration\";\n },\n enumerable: true,\n configurable: true\n });\n /*\r\n * Given a string, validate that it is of the form https://domain/path\r\n */\n\n Authority.prototype.validateAsUri = function () {\n var components;\n\n try {\n components = this.CanonicalAuthorityUrlComponents;\n } catch (e) {\n throw ErrorMessage_1.ErrorMessage.invalidAuthorityType;\n }\n\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\n throw ErrorMessage_1.ErrorMessage.authorityUriInsecure;\n }\n\n if (!components.PathSegments || components.PathSegments.length < 1) {\n throw ErrorMessage_1.ErrorMessage.authorityUriInvalidPath;\n }\n };\n /*\r\n * Calls the OIDC endpoint and returns the response\r\n */\n\n\n Authority.prototype.DiscoverEndpoints = function (openIdConfigurationEndpoint) {\n var client = new XHRClient_1.XhrClient();\n return client.sendRequestAsync(openIdConfigurationEndpoint, \"GET\",\n /*enableCaching: */\n true).then(function (response) {\n return {\n AuthorizationEndpoint: response.authorization_endpoint,\n EndSessionEndpoint: response.end_session_endpoint,\n Issuer: response.issuer\n };\n });\n };\n /*\r\n * Returns a promise.\r\n * Checks to see if the authority is in the cache\r\n * Discover endpoints via openid-configuration\r\n * If successful, caches the endpoint for later use in OIDC\r\n */\n\n\n Authority.prototype.ResolveEndpointsAsync = function () {\n var _this = this;\n\n var openIdConfigurationEndpoint = \"\";\n return this.GetOpenIdConfigurationEndpointAsync().then(function (openIdConfigurationEndpointResponse) {\n openIdConfigurationEndpoint = openIdConfigurationEndpointResponse;\n return _this.DiscoverEndpoints(openIdConfigurationEndpoint);\n }).then(function (tenantDiscoveryResponse) {\n _this.tenantDiscoveryResponse = tenantDiscoveryResponse;\n return _this;\n });\n };\n\n return Authority;\n}();\n\nexports.Authority = Authority;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEPRECATED_CONFIG_PROPS = exports.defaultProps = exports.propTypes = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar string = _propTypes[\"default\"].string,\n bool = _propTypes[\"default\"].bool,\n number = _propTypes[\"default\"].number,\n array = _propTypes[\"default\"].array,\n oneOfType = _propTypes[\"default\"].oneOfType,\n shape = _propTypes[\"default\"].shape,\n object = _propTypes[\"default\"].object,\n func = _propTypes[\"default\"].func,\n node = _propTypes[\"default\"].node;\nvar propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n light: oneOfType([bool, string]),\n playIcon: node,\n wrapper: oneOfType([string, func, shape({\n render: func.isRequired\n })]),\n config: shape({\n soundcloud: shape({\n options: object,\n preload: bool\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n preload: bool\n }),\n facebook: shape({\n appId: string,\n version: string\n }),\n dailymotion: shape({\n params: object,\n preload: bool\n }),\n vimeo: shape({\n playerOptions: object,\n preload: bool\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceDASH: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string\n }),\n wistia: shape({\n options: object\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onProgress: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nexports.propTypes = propTypes;\nvar defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: '640px',\n height: '360px',\n style: {},\n progressInterval: 1000,\n playsinline: false,\n pip: false,\n light: false,\n wrapper: 'div',\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n preload: false\n },\n facebook: {\n appId: '1309697205772819',\n version: 'v3.3'\n },\n dailymotion: {\n params: {\n api: 1,\n 'endscreen-enable': false\n },\n preload: false\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n preload: false\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n hlsOptions: {},\n hlsVersion: '0.10.1',\n dashVersion: '2.9.2'\n },\n wistia: {\n options: {}\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {}\n }\n },\n onReady: function onReady() {},\n onStart: function onStart() {},\n onPlay: function onPlay() {},\n onPause: function onPause() {},\n onBuffer: function onBuffer() {},\n onBufferEnd: function onBufferEnd() {},\n onEnded: function onEnded() {},\n onError: function onError() {},\n onDuration: function onDuration() {},\n onSeek: function onSeek() {},\n onProgress: function onProgress() {},\n onEnablePIP: function onEnablePIP() {},\n onDisablePIP: function onDisablePIP() {}\n};\nexports.defaultProps = defaultProps;\nvar DEPRECATED_CONFIG_PROPS = ['soundcloudConfig', 'youtubeConfig', 'facebookConfig', 'dailymotionConfig', 'vimeoConfig', 'fileConfig', 'wistiaConfig'];\nexports.DEPRECATED_CONFIG_PROPS = DEPRECATED_CONFIG_PROPS;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import firebase from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { __awaiter, __generator, __spread, __values, __assign } from 'tslib';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDb } from 'idb';\nvar name = \"@firebase/installations\";\nvar version = \"0.4.17\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar PENDING_TIMEOUT_MS = 10000;\nvar PACKAGE_VERSION = \"w:\" + version;\nvar INTERNAL_AUTH_VERSION = 'FIS_v2';\nvar INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\nvar TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\n\nvar SERVICE = 'installations';\nvar SERVICE_NAME = 'Installations';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a;\n\nvar ERROR_DESCRIPTION_MAP = (_a = {}, _a[\"missing-app-config-values\"\n/* MISSING_APP_CONFIG_VALUES */\n] = 'Missing App configuration value: \"{$valueName}\"', _a[\"not-registered\"\n/* NOT_REGISTERED */\n] = 'Firebase Installation is not registered.', _a[\"installation-not-found\"\n/* INSTALLATION_NOT_FOUND */\n] = 'Firebase Installation not found.', _a[\"request-failed\"\n/* REQUEST_FAILED */\n] = '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"', _a[\"app-offline\"\n/* APP_OFFLINE */\n] = 'Could not process request. Application offline.', _a[\"delete-pending-registration\"\n/* DELETE_PENDING_REGISTRATION */\n] = \"Can't delete installation while there is a pending registration request.\", _a);\nvar ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\n\nfunction isServerError(error) {\n return error instanceof FirebaseError && error.code.includes(\"request-failed\"\n /* REQUEST_FAILED */\n );\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction getInstallationsEndpoint(_a) {\n var projectId = _a.projectId;\n return INSTALLATIONS_API_URL + \"/projects/\" + projectId + \"/installations\";\n}\n\nfunction extractAuthTokenInfoFromResponse(response) {\n return {\n token: response.token,\n requestStatus: 2\n /* COMPLETED */\n ,\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\n creationTime: Date.now()\n };\n}\n\nfunction getErrorFromResponse(requestName, response) {\n return __awaiter(this, void 0, void 0, function () {\n var responseJson, errorData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , response.json()];\n\n case 1:\n responseJson = _a.sent();\n errorData = responseJson.error;\n return [2\n /*return*/\n , ERROR_FACTORY.create(\"request-failed\"\n /* REQUEST_FAILED */\n , {\n requestName: requestName,\n serverCode: errorData.code,\n serverMessage: errorData.message,\n serverStatus: errorData.status\n })];\n }\n });\n });\n}\n\nfunction getHeaders(_a) {\n var apiKey = _a.apiKey;\n return new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'x-goog-api-key': apiKey\n });\n}\n\nfunction getHeadersWithAuth(appConfig, _a) {\n var refreshToken = _a.refreshToken;\n var headers = getHeaders(appConfig);\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\n return headers;\n}\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\n\n\nfunction retryIfServerError(fn) {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , fn()];\n\n case 1:\n result = _a.sent();\n\n if (result.status >= 500 && result.status < 600) {\n // Internal Server Error. Retry request.\n return [2\n /*return*/\n , fn()];\n }\n\n return [2\n /*return*/\n , result];\n }\n });\n });\n}\n\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\n // This works because the server will never respond with fractions of a second.\n return Number(responseExpiresIn.replace('s', '000'));\n}\n\nfunction getAuthorizationHeader(refreshToken) {\n return INTERNAL_AUTH_VERSION + \" \" + refreshToken;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction createInstallationRequest(appConfig, _a) {\n var fid = _a.fid;\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, headers, body, request, response, responseValue, registeredInstallationEntry;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpoint = getInstallationsEndpoint(appConfig);\n headers = getHeaders(appConfig);\n body = {\n fid: fid,\n authVersion: INTERNAL_AUTH_VERSION,\n appId: appConfig.appId,\n sdkVersion: PACKAGE_VERSION\n };\n request = {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(body)\n };\n return [4\n /*yield*/\n , retryIfServerError(function () {\n return fetch(endpoint, request);\n })];\n\n case 1:\n response = _b.sent();\n if (!response.ok) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , response.json()];\n\n case 2:\n responseValue = _b.sent();\n registeredInstallationEntry = {\n fid: responseValue.fid || fid,\n registrationStatus: 2\n /* COMPLETED */\n ,\n refreshToken: responseValue.refreshToken,\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\n };\n return [2\n /*return*/\n , registeredInstallationEntry];\n\n case 3:\n return [4\n /*yield*/\n , getErrorFromResponse('Create Installation', response)];\n\n case 4:\n throw _b.sent();\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/** Returns a promise that resolves after given time passes. */\n\n\nfunction sleep(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction bufferToBase64UrlSafe(array) {\n var b64 = btoa(String.fromCharCode.apply(String, __spread(array)));\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\nvar INVALID_FID = '';\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\n\nfunction generateFid() {\n try {\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\n // bytes. our implementation generates a 17 byte array instead.\n var fidByteArray = new Uint8Array(17);\n var crypto_1 = self.crypto || self.msCrypto;\n crypto_1.getRandomValues(fidByteArray); // Replace the first 4 random bits with the constant FID header of 0b0111.\n\n fidByteArray[0] = 112 + fidByteArray[0] % 16;\n var fid = encode(fidByteArray);\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\n } catch (_a) {\n // FID generation errored\n return INVALID_FID;\n }\n}\n/** Converts a FID Uint8Array to a base64 string representation. */\n\n\nfunction encode(fidByteArray) {\n var b64String = bufferToBase64UrlSafe(fidByteArray); // Remove the 23rd character that was added because of the extra 4 bits at the\n // end of our 17 byte array, and the '=' padding.\n\n return b64String.substr(0, 22);\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/** Returns a string key that can be used to identify the app. */\n\n\nfunction getKey(appConfig) {\n return appConfig.appName + \"!\" + appConfig.appId;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar fidChangeCallbacks = new Map();\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\n\nfunction fidChanged(appConfig, fid) {\n var key = getKey(appConfig);\n callFidChangeCallbacks(key, fid);\n broadcastFidChange(key, fid);\n}\n\nfunction addCallback(appConfig, callback) {\n // Open the broadcast channel if it's not already open,\n // to be able to listen to change events from other tabs.\n getBroadcastChannel();\n var key = getKey(appConfig);\n var callbackSet = fidChangeCallbacks.get(key);\n\n if (!callbackSet) {\n callbackSet = new Set();\n fidChangeCallbacks.set(key, callbackSet);\n }\n\n callbackSet.add(callback);\n}\n\nfunction removeCallback(appConfig, callback) {\n var key = getKey(appConfig);\n var callbackSet = fidChangeCallbacks.get(key);\n\n if (!callbackSet) {\n return;\n }\n\n callbackSet.delete(callback);\n\n if (callbackSet.size === 0) {\n fidChangeCallbacks.delete(key);\n } // Close broadcast channel if there are no more callbacks.\n\n\n closeBroadcastChannel();\n}\n\nfunction callFidChangeCallbacks(key, fid) {\n var e_1, _a;\n\n var callbacks = fidChangeCallbacks.get(key);\n\n if (!callbacks) {\n return;\n }\n\n try {\n for (var callbacks_1 = __values(callbacks), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) {\n var callback = callbacks_1_1.value;\n callback(fid);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (callbacks_1_1 && !callbacks_1_1.done && (_a = callbacks_1.return)) _a.call(callbacks_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n}\n\nfunction broadcastFidChange(key, fid) {\n var channel = getBroadcastChannel();\n\n if (channel) {\n channel.postMessage({\n key: key,\n fid: fid\n });\n }\n\n closeBroadcastChannel();\n}\n\nvar broadcastChannel = null;\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\n\nfunction getBroadcastChannel() {\n if (!broadcastChannel && 'BroadcastChannel' in self) {\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\n\n broadcastChannel.onmessage = function (e) {\n callFidChangeCallbacks(e.data.key, e.data.fid);\n };\n }\n\n return broadcastChannel;\n}\n\nfunction closeBroadcastChannel() {\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\n broadcastChannel.close();\n broadcastChannel = null;\n }\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DATABASE_NAME = 'firebase-installations-database';\nvar DATABASE_VERSION = 1;\nvar OBJECT_STORE_NAME = 'firebase-installations-store';\nvar dbPromise = null;\n\nfunction getDbPromise() {\n if (!dbPromise) {\n dbPromise = openDb(DATABASE_NAME, DATABASE_VERSION, function (upgradeDB) {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (upgradeDB.oldVersion) {\n case 0:\n upgradeDB.createObjectStore(OBJECT_STORE_NAME);\n }\n });\n }\n\n return dbPromise;\n}\n/** Assigns or overwrites the record for the given key with the given value. */\n\n\nfunction set(appConfig, value) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tx, objectStore, oldValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(appConfig);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n objectStore = tx.objectStore(OBJECT_STORE_NAME);\n return [4\n /*yield*/\n , objectStore.get(key)];\n\n case 2:\n oldValue = _a.sent();\n return [4\n /*yield*/\n , objectStore.put(value, key)];\n\n case 3:\n _a.sent();\n\n return [4\n /*yield*/\n , tx.complete];\n\n case 4:\n _a.sent();\n\n if (!oldValue || oldValue.fid !== value.fid) {\n fidChanged(appConfig, value.fid);\n }\n\n return [2\n /*return*/\n , value];\n }\n });\n });\n}\n/** Removes record(s) from the objectStore that match the given key. */\n\n\nfunction remove(appConfig) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(appConfig);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n return [4\n /*yield*/\n , tx.objectStore(OBJECT_STORE_NAME).delete(key)];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , tx.complete];\n\n case 3:\n _a.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\n\n\nfunction update(appConfig, updateFn) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tx, store, oldValue, newValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(appConfig);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n store = tx.objectStore(OBJECT_STORE_NAME);\n return [4\n /*yield*/\n , store.get(key)];\n\n case 2:\n oldValue = _a.sent();\n newValue = updateFn(oldValue);\n if (!(newValue === undefined)) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , store.delete(key)];\n\n case 3:\n _a.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 4:\n return [4\n /*yield*/\n , store.put(newValue, key)];\n\n case 5:\n _a.sent();\n\n _a.label = 6;\n\n case 6:\n return [4\n /*yield*/\n , tx.complete];\n\n case 7:\n _a.sent();\n\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\n fidChanged(appConfig, newValue.fid);\n }\n\n return [2\n /*return*/\n , newValue];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\n\n\nfunction getInstallationEntry(appConfig) {\n return __awaiter(this, void 0, void 0, function () {\n var registrationPromise, installationEntry;\n\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , update(appConfig, function (oldEntry) {\n var installationEntry = updateOrCreateInstallationEntry(oldEntry);\n var entryWithPromise = triggerRegistrationIfNecessary(appConfig, installationEntry);\n registrationPromise = entryWithPromise.registrationPromise;\n return entryWithPromise.installationEntry;\n })];\n\n case 1:\n installationEntry = _b.sent();\n if (!(installationEntry.fid === INVALID_FID)) return [3\n /*break*/\n , 3];\n _a = {};\n return [4\n /*yield*/\n , registrationPromise];\n\n case 2:\n // FID generation failed. Waiting for the FID from the server.\n return [2\n /*return*/\n , (_a.installationEntry = _b.sent(), _a)];\n\n case 3:\n return [2\n /*return*/\n , {\n installationEntry: installationEntry,\n registrationPromise: registrationPromise\n }];\n }\n });\n });\n}\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\n\n\nfunction updateOrCreateInstallationEntry(oldEntry) {\n var entry = oldEntry || {\n fid: generateFid(),\n registrationStatus: 0\n /* NOT_STARTED */\n\n };\n return clearTimedOutRequest(entry);\n}\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\n\n\nfunction triggerRegistrationIfNecessary(appConfig, installationEntry) {\n if (installationEntry.registrationStatus === 0\n /* NOT_STARTED */\n ) {\n if (!navigator.onLine) {\n // Registration required but app is offline.\n var registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\"\n /* APP_OFFLINE */\n ));\n return {\n installationEntry: installationEntry,\n registrationPromise: registrationPromiseWithError\n };\n } // Try registering. Change status to IN_PROGRESS.\n\n\n var inProgressEntry = {\n fid: installationEntry.fid,\n registrationStatus: 1\n /* IN_PROGRESS */\n ,\n registrationTime: Date.now()\n };\n var registrationPromise = registerInstallation(appConfig, inProgressEntry);\n return {\n installationEntry: inProgressEntry,\n registrationPromise: registrationPromise\n };\n } else if (installationEntry.registrationStatus === 1\n /* IN_PROGRESS */\n ) {\n return {\n installationEntry: installationEntry,\n registrationPromise: waitUntilFidRegistration(appConfig)\n };\n } else {\n return {\n installationEntry: installationEntry\n };\n }\n}\n/** This will be executed only once for each new Firebase Installation. */\n\n\nfunction registerInstallation(appConfig, installationEntry) {\n return __awaiter(this, void 0, void 0, function () {\n var registeredInstallationEntry, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 7]);\n\n return [4\n /*yield*/\n , createInstallationRequest(appConfig, installationEntry)];\n\n case 1:\n registeredInstallationEntry = _a.sent();\n return [2\n /*return*/\n , set(appConfig, registeredInstallationEntry)];\n\n case 2:\n e_1 = _a.sent();\n if (!(isServerError(e_1) && e_1.serverCode === 409)) return [3\n /*break*/\n , 4]; // Server returned a \"FID can not be used\" error.\n // Generate a new ID next time.\n\n return [4\n /*yield*/\n , remove(appConfig)];\n\n case 3:\n // Server returned a \"FID can not be used\" error.\n // Generate a new ID next time.\n _a.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 4:\n // Registration failed. Set FID as not registered.\n return [4\n /*yield*/\n , set(appConfig, {\n fid: installationEntry.fid,\n registrationStatus: 0\n /* NOT_STARTED */\n\n })];\n\n case 5:\n // Registration failed. Set FID as not registered.\n _a.sent();\n\n _a.label = 6;\n\n case 6:\n throw e_1;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/** Call if FID registration is pending in another request. */\n\n\nfunction waitUntilFidRegistration(appConfig) {\n return __awaiter(this, void 0, void 0, function () {\n var entry, _a, installationEntry, registrationPromise;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , updateInstallationRequest(appConfig)];\n\n case 1:\n entry = _b.sent();\n _b.label = 2;\n\n case 2:\n if (!(entry.registrationStatus === 1\n /* IN_PROGRESS */\n )) return [3\n /*break*/\n , 5]; // createInstallation request still in progress.\n\n return [4\n /*yield*/\n , sleep(100)];\n\n case 3:\n // createInstallation request still in progress.\n _b.sent();\n\n return [4\n /*yield*/\n , updateInstallationRequest(appConfig)];\n\n case 4:\n entry = _b.sent();\n return [3\n /*break*/\n , 2];\n\n case 5:\n if (!(entry.registrationStatus === 0\n /* NOT_STARTED */\n )) return [3\n /*break*/\n , 7];\n return [4\n /*yield*/\n , getInstallationEntry(appConfig)];\n\n case 6:\n _a = _b.sent(), installationEntry = _a.installationEntry, registrationPromise = _a.registrationPromise;\n\n if (registrationPromise) {\n return [2\n /*return*/\n , registrationPromise];\n } else {\n // if there is no registrationPromise, entry is registered.\n return [2\n /*return*/\n , installationEntry];\n }\n\n case 7:\n return [2\n /*return*/\n , entry];\n }\n });\n });\n}\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\n\n\nfunction updateInstallationRequest(appConfig) {\n return update(appConfig, function (oldEntry) {\n if (!oldEntry) {\n throw ERROR_FACTORY.create(\"installation-not-found\"\n /* INSTALLATION_NOT_FOUND */\n );\n }\n\n return clearTimedOutRequest(oldEntry);\n });\n}\n\nfunction clearTimedOutRequest(entry) {\n if (hasInstallationRequestTimedOut(entry)) {\n return {\n fid: entry.fid,\n registrationStatus: 0\n /* NOT_STARTED */\n\n };\n }\n\n return entry;\n}\n\nfunction hasInstallationRequestTimedOut(installationEntry) {\n return installationEntry.registrationStatus === 1\n /* IN_PROGRESS */\n && installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now();\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction generateAuthTokenRequest(_a, installationEntry) {\n var appConfig = _a.appConfig,\n platformLoggerProvider = _a.platformLoggerProvider;\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, headers, platformLogger, body, request, response, responseValue, completedAuthToken;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\n headers = getHeadersWithAuth(appConfig, installationEntry);\n platformLogger = platformLoggerProvider.getImmediate({\n optional: true\n });\n\n if (platformLogger) {\n headers.append('x-firebase-client', platformLogger.getPlatformInfoString());\n }\n\n body = {\n installation: {\n sdkVersion: PACKAGE_VERSION\n }\n };\n request = {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(body)\n };\n return [4\n /*yield*/\n , retryIfServerError(function () {\n return fetch(endpoint, request);\n })];\n\n case 1:\n response = _b.sent();\n if (!response.ok) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , response.json()];\n\n case 2:\n responseValue = _b.sent();\n completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\n return [2\n /*return*/\n , completedAuthToken];\n\n case 3:\n return [4\n /*yield*/\n , getErrorFromResponse('Generate Auth Token', response)];\n\n case 4:\n throw _b.sent();\n }\n });\n });\n}\n\nfunction getGenerateAuthTokenEndpoint(appConfig, _a) {\n var fid = _a.fid;\n return getInstallationsEndpoint(appConfig) + \"/\" + fid + \"/authTokens:generate\";\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\n\n\nfunction refreshAuthToken(dependencies, forceRefresh) {\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var tokenPromise, entry, authToken, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , update(dependencies.appConfig, function (oldEntry) {\n if (!isEntryRegistered(oldEntry)) {\n throw ERROR_FACTORY.create(\"not-registered\"\n /* NOT_REGISTERED */\n );\n }\n\n var oldAuthToken = oldEntry.authToken;\n\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\n // There is a valid token in the DB.\n return oldEntry;\n } else if (oldAuthToken.requestStatus === 1\n /* IN_PROGRESS */\n ) {\n // There already is a token request in progress.\n tokenPromise = waitUntilAuthTokenRequest(dependencies, forceRefresh);\n return oldEntry;\n } else {\n // No token or token expired.\n if (!navigator.onLine) {\n throw ERROR_FACTORY.create(\"app-offline\"\n /* APP_OFFLINE */\n );\n }\n\n var inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\n tokenPromise = fetchAuthTokenFromServer(dependencies, inProgressEntry);\n return inProgressEntry;\n }\n })];\n\n case 1:\n entry = _b.sent();\n if (!tokenPromise) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , tokenPromise];\n\n case 2:\n _a = _b.sent();\n return [3\n /*break*/\n , 4];\n\n case 3:\n _a = entry.authToken;\n _b.label = 4;\n\n case 4:\n authToken = _a;\n return [2\n /*return*/\n , authToken];\n }\n });\n });\n}\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\n\n\nfunction waitUntilAuthTokenRequest(dependencies, forceRefresh) {\n return __awaiter(this, void 0, void 0, function () {\n var entry, authToken;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , updateAuthTokenRequest(dependencies.appConfig)];\n\n case 1:\n entry = _a.sent();\n _a.label = 2;\n\n case 2:\n if (!(entry.authToken.requestStatus === 1\n /* IN_PROGRESS */\n )) return [3\n /*break*/\n , 5]; // generateAuthToken still in progress.\n\n return [4\n /*yield*/\n , sleep(100)];\n\n case 3:\n // generateAuthToken still in progress.\n _a.sent();\n\n return [4\n /*yield*/\n , updateAuthTokenRequest(dependencies.appConfig)];\n\n case 4:\n entry = _a.sent();\n return [3\n /*break*/\n , 2];\n\n case 5:\n authToken = entry.authToken;\n\n if (authToken.requestStatus === 0\n /* NOT_STARTED */\n ) {\n // The request timed out or failed in a different call. Try again.\n return [2\n /*return*/\n , refreshAuthToken(dependencies, forceRefresh)];\n } else {\n return [2\n /*return*/\n , authToken];\n }\n\n }\n });\n });\n}\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\n\n\nfunction updateAuthTokenRequest(appConfig) {\n return update(appConfig, function (oldEntry) {\n if (!isEntryRegistered(oldEntry)) {\n throw ERROR_FACTORY.create(\"not-registered\"\n /* NOT_REGISTERED */\n );\n }\n\n var oldAuthToken = oldEntry.authToken;\n\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\n return __assign(__assign({}, oldEntry), {\n authToken: {\n requestStatus: 0\n /* NOT_STARTED */\n\n }\n });\n }\n\n return oldEntry;\n });\n}\n\nfunction fetchAuthTokenFromServer(dependencies, installationEntry) {\n return __awaiter(this, void 0, void 0, function () {\n var authToken, updatedInstallationEntry, e_1, updatedInstallationEntry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3,, 8]);\n\n return [4\n /*yield*/\n , generateAuthTokenRequest(dependencies, installationEntry)];\n\n case 1:\n authToken = _a.sent();\n updatedInstallationEntry = __assign(__assign({}, installationEntry), {\n authToken: authToken\n });\n return [4\n /*yield*/\n , set(dependencies.appConfig, updatedInstallationEntry)];\n\n case 2:\n _a.sent();\n\n return [2\n /*return*/\n , authToken];\n\n case 3:\n e_1 = _a.sent();\n if (!(isServerError(e_1) && (e_1.serverCode === 401 || e_1.serverCode === 404))) return [3\n /*break*/\n , 5]; // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\n // Generate a new ID next time.\n\n return [4\n /*yield*/\n , remove(dependencies.appConfig)];\n\n case 4:\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\n // Generate a new ID next time.\n _a.sent();\n\n return [3\n /*break*/\n , 7];\n\n case 5:\n updatedInstallationEntry = __assign(__assign({}, installationEntry), {\n authToken: {\n requestStatus: 0\n /* NOT_STARTED */\n\n }\n });\n return [4\n /*yield*/\n , set(dependencies.appConfig, updatedInstallationEntry)];\n\n case 6:\n _a.sent();\n\n _a.label = 7;\n\n case 7:\n throw e_1;\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction isEntryRegistered(installationEntry) {\n return installationEntry !== undefined && installationEntry.registrationStatus === 2\n /* COMPLETED */\n ;\n}\n\nfunction isAuthTokenValid(authToken) {\n return authToken.requestStatus === 2\n /* COMPLETED */\n && !isAuthTokenExpired(authToken);\n}\n\nfunction isAuthTokenExpired(authToken) {\n var now = Date.now();\n return now < authToken.creationTime || authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER;\n}\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\n\n\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\n var inProgressAuthToken = {\n requestStatus: 1\n /* IN_PROGRESS */\n ,\n requestTime: Date.now()\n };\n return __assign(__assign({}, oldEntry), {\n authToken: inProgressAuthToken\n });\n}\n\nfunction hasAuthTokenRequestTimedOut(authToken) {\n return authToken.requestStatus === 1\n /* IN_PROGRESS */\n && authToken.requestTime + PENDING_TIMEOUT_MS < Date.now();\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction _getId(dependencies) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, installationEntry, registrationPromise;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , getInstallationEntry(dependencies.appConfig)];\n\n case 1:\n _a = _b.sent(), installationEntry = _a.installationEntry, registrationPromise = _a.registrationPromise;\n\n if (registrationPromise) {\n registrationPromise.catch(console.error);\n } else {\n // If the installation is already registered, update the authentication\n // token if needed.\n refreshAuthToken(dependencies).catch(console.error);\n }\n\n return [2\n /*return*/\n , installationEntry.fid];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction _getToken(dependencies, forceRefresh) {\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var authToken;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , completeInstallationRegistration(dependencies.appConfig)];\n\n case 1:\n _a.sent();\n\n return [4\n /*yield*/\n , refreshAuthToken(dependencies, forceRefresh)];\n\n case 2:\n authToken = _a.sent();\n return [2\n /*return*/\n , authToken.token];\n }\n });\n });\n}\n\nfunction completeInstallationRegistration(appConfig) {\n return __awaiter(this, void 0, void 0, function () {\n var registrationPromise;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , getInstallationEntry(appConfig)];\n\n case 1:\n registrationPromise = _a.sent().registrationPromise;\n if (!registrationPromise) return [3\n /*break*/\n , 3]; // A createInstallation request is in progress. Wait until it finishes.\n\n return [4\n /*yield*/\n , registrationPromise];\n\n case 2:\n // A createInstallation request is in progress. Wait until it finishes.\n _a.sent();\n\n _a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction deleteInstallationRequest(appConfig, installationEntry) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, headers, request, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n endpoint = getDeleteEndpoint(appConfig, installationEntry);\n headers = getHeadersWithAuth(appConfig, installationEntry);\n request = {\n method: 'DELETE',\n headers: headers\n };\n return [4\n /*yield*/\n , retryIfServerError(function () {\n return fetch(endpoint, request);\n })];\n\n case 1:\n response = _a.sent();\n if (!!response.ok) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , getErrorFromResponse('Delete Installation', response)];\n\n case 2:\n throw _a.sent();\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction getDeleteEndpoint(appConfig, _a) {\n var fid = _a.fid;\n return getInstallationsEndpoint(appConfig) + \"/\" + fid;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction deleteInstallation(dependencies) {\n return __awaiter(this, void 0, void 0, function () {\n var appConfig, entry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n appConfig = dependencies.appConfig;\n return [4\n /*yield*/\n , update(appConfig, function (oldEntry) {\n if (oldEntry && oldEntry.registrationStatus === 0\n /* NOT_STARTED */\n ) {\n // Delete the unregistered entry without sending a deleteInstallation request.\n return undefined;\n }\n\n return oldEntry;\n })];\n\n case 1:\n entry = _a.sent();\n if (!entry) return [3\n /*break*/\n , 6];\n if (!(entry.registrationStatus === 1\n /* IN_PROGRESS */\n )) return [3\n /*break*/\n , 2]; // Can't delete while trying to register.\n\n throw ERROR_FACTORY.create(\"delete-pending-registration\"\n /* DELETE_PENDING_REGISTRATION */\n );\n\n case 2:\n if (!(entry.registrationStatus === 2\n /* COMPLETED */\n )) return [3\n /*break*/\n , 6];\n if (!!navigator.onLine) return [3\n /*break*/\n , 3];\n throw ERROR_FACTORY.create(\"app-offline\"\n /* APP_OFFLINE */\n );\n\n case 3:\n return [4\n /*yield*/\n , deleteInstallationRequest(appConfig, entry)];\n\n case 4:\n _a.sent();\n\n return [4\n /*yield*/\n , remove(appConfig)];\n\n case 5:\n _a.sent();\n\n _a.label = 6;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n */\n\n\nfunction _onIdChange(_a, callback) {\n var appConfig = _a.appConfig;\n addCallback(appConfig, callback);\n return function () {\n removeCallback(appConfig, callback);\n };\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction extractAppConfig(app) {\n var e_1, _a;\n\n if (!app || !app.options) {\n throw getMissingValueError('App Configuration');\n }\n\n if (!app.name) {\n throw getMissingValueError('App Name');\n } // Required app config keys\n\n\n var configKeys = ['projectId', 'apiKey', 'appId'];\n\n try {\n for (var configKeys_1 = __values(configKeys), configKeys_1_1 = configKeys_1.next(); !configKeys_1_1.done; configKeys_1_1 = configKeys_1.next()) {\n var keyName = configKeys_1_1.value;\n\n if (!app.options[keyName]) {\n throw getMissingValueError(keyName);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configKeys_1_1 && !configKeys_1_1.done && (_a = configKeys_1.return)) _a.call(configKeys_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return {\n appName: app.name,\n projectId: app.options.projectId,\n apiKey: app.options.apiKey,\n appId: app.options.appId\n };\n}\n\nfunction getMissingValueError(valueName) {\n return ERROR_FACTORY.create(\"missing-app-config-values\"\n /* MISSING_APP_CONFIG_VALUES */\n , {\n valueName: valueName\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction registerInstallations(instance) {\n var installationsName = 'installations';\n instance.INTERNAL.registerComponent(new Component(installationsName, function (container) {\n var app = container.getProvider('app').getImmediate(); // Throws if app isn't configured properly.\n\n var appConfig = extractAppConfig(app);\n var platformLoggerProvider = container.getProvider('platform-logger');\n var dependencies = {\n appConfig: appConfig,\n platformLoggerProvider: platformLoggerProvider\n };\n var installations = {\n app: app,\n getId: function getId() {\n return _getId(dependencies);\n },\n getToken: function getToken(forceRefresh) {\n return _getToken(dependencies, forceRefresh);\n },\n delete: function _delete() {\n return deleteInstallation(dependencies);\n },\n onIdChange: function onIdChange(callback) {\n return _onIdChange(dependencies, callback);\n }\n };\n return installations;\n }, \"PUBLIC\"\n /* PUBLIC */\n ));\n instance.registerVersion(name, version);\n}\n\nregisterInstallations(firebase);\nexport { registerInstallations };","'use strict';\n\nvar firebase = require('@firebase/app');\n\nrequire('@firebase/auth');\n\nrequire('@firebase/database');\n\nrequire('@firebase/firestore');\n\nrequire('@firebase/functions');\n\nrequire('@firebase/messaging');\n\nrequire('@firebase/storage');\n\nrequire('@firebase/performance');\n\nrequire('@firebase/analytics');\n\nrequire('@firebase/remote-config');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar firebase__default =\n/*#__PURE__*/\n_interopDefaultLegacy(firebase);\n\nvar name = \"firebase\";\nvar version = \"7.24.0\";\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nfirebase__default['default'].registerVersion(name, version, 'app');\nvar name$1 = \"firebase\";\nvar version$1 = \"7.24.0\";\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nconsole.warn(\"\\nIt looks like you're using the development build of the Firebase JS SDK.\\nWhen deploying Firebase apps to production, it is advisable to only import\\nthe individual SDK components you intend to use.\\n\\nFor the module builds, these are available in the following manner\\n(replace with the name of a component - i.e. auth, database, etc):\\n\\nCommonJS Modules:\\nconst firebase = require('firebase/app');\\nrequire('firebase/');\\n\\nES Modules:\\nimport firebase from 'firebase/app';\\nimport 'firebase/';\\n\\nTypescript:\\nimport * as firebase from 'firebase/app';\\nimport 'firebase/';\\n\");\nfirebase__default['default'].registerVersion(name$1, version$1);\nmodule.exports = firebase__default['default'];","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\n\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\n\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\n\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\n\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\n\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\n\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\n\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\n\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\n\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\n\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\n\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\n\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\n\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\n\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\n\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\n\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\n\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\n\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n _classCallCheck(this, WithSortableHandle);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableHandle).apply(this, arguments));\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\n\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\n\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\n\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? _node : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n validateProps(props);\n _this.manager = new Manager();\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n manager: this.manager\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps)));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _defineProperty(_class, \"childContextTypes\", {\n manager: PropTypes.object.isRequired\n }), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\n\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n _classCallCheck(this, WithSortableElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableElement).apply(this, arguments));\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextTypes\", {\n manager: PropTypes.object.isRequired\n }), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };","\"use strict\";\n/*\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar Constants =\n/** @class */\nfunction () {\n function Constants() {}\n\n Object.defineProperty(Constants, \"errorDescription\", {\n get: function get() {\n return \"error_description\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"error\", {\n get: function get() {\n return \"error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"scope\", {\n get: function get() {\n return \"scope\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"acquireTokenUser\", {\n get: function get() {\n return \"msal.acquireTokenUser\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"clientInfo\", {\n get: function get() {\n return \"client_info\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"clientId\", {\n get: function get() {\n return \"clientId\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"authority\", {\n get: function get() {\n return \"msal.authority\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"idToken\", {\n get: function get() {\n return \"id_token\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"accessToken\", {\n get: function get() {\n return \"access_token\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"expiresIn\", {\n get: function get() {\n return \"expires_in\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"sessionState\", {\n get: function get() {\n return \"session_state\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"msalClientInfo\", {\n get: function get() {\n return \"msal.client.info\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"msalError\", {\n get: function get() {\n return \"msal.error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"msalErrorDescription\", {\n get: function get() {\n return \"msal.error.description\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"msalSessionState\", {\n get: function get() {\n return \"msal.session.state\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"tokenKeys\", {\n get: function get() {\n return \"msal.token.keys\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"accessTokenKey\", {\n get: function get() {\n return \"msal.access.token.key\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"expirationKey\", {\n get: function get() {\n return \"msal.expiration.key\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"stateLogin\", {\n get: function get() {\n return \"msal.state.login\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"stateAcquireToken\", {\n get: function get() {\n return \"msal.state.acquireToken\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"stateRenew\", {\n get: function get() {\n return \"msal.state.renew\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"nonceIdToken\", {\n get: function get() {\n return \"msal.nonce.idtoken\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"userName\", {\n get: function get() {\n return \"msal.username\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"idTokenKey\", {\n get: function get() {\n return \"msal.idtoken\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"loginRequest\", {\n get: function get() {\n return \"msal.login.request\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"loginError\", {\n get: function get() {\n return \"msal.login.error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"renewStatus\", {\n get: function get() {\n return \"msal.token.renew.status\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"msal\", {\n get: function get() {\n return \"msal\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"resourceDelimeter\", {\n get: function get() {\n return \"|\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"tokenRenewStatusCancelled\", {\n get: function get() {\n return \"Canceled\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"tokenRenewStatusCompleted\", {\n get: function get() {\n return \"Completed\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"tokenRenewStatusInProgress\", {\n get: function get() {\n return \"In Progress\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"popUpWidth\", {\n get: function get() {\n return this._popUpWidth;\n },\n set: function set(width) {\n this._popUpWidth = width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"popUpHeight\", {\n get: function get() {\n return this._popUpHeight;\n },\n set: function set(height) {\n this._popUpHeight = height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"login\", {\n get: function get() {\n return \"LOGIN\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"renewToken\", {\n get: function get() {\n return \"RENEW_TOKEN\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"unknown\", {\n get: function get() {\n return \"UNKNOWN\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"urlHash\", {\n get: function get() {\n return \"msal.urlHash\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"angularLoginRequest\", {\n get: function get() {\n return \"msal.angular.login.request\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Constants, \"userIdentifier\", {\n get: function get() {\n return \"userIdentifier\";\n },\n enumerable: true,\n configurable: true\n });\n Constants._popUpWidth = 483;\n Constants._popUpHeight = 600;\n return Constants;\n}();\n\nexports.Constants = Constants;\n/*\r\n * @hidden\r\n */\n\nvar ErrorCodes =\n/** @class */\nfunction () {\n function ErrorCodes() {}\n\n Object.defineProperty(ErrorCodes, \"loginProgressError\", {\n get: function get() {\n return \"login_progress_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"acquireTokenProgressError\", {\n get: function get() {\n return \"acquiretoken_progress_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"inputScopesError\", {\n get: function get() {\n return \"input_scopes_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"endpointResolutionError\", {\n get: function get() {\n return \"endpoints_resolution_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"popUpWindowError\", {\n get: function get() {\n return \"popup_window_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"userLoginError\", {\n get: function get() {\n return \"user_login_error\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorCodes, \"userCancelledError\", {\n get: function get() {\n return \"user_cancelled\";\n },\n enumerable: true,\n configurable: true\n });\n return ErrorCodes;\n}();\n\nexports.ErrorCodes = ErrorCodes;\n/*\r\n * @hidden\r\n */\n\nvar ErrorDescription =\n/** @class */\nfunction () {\n function ErrorDescription() {}\n\n Object.defineProperty(ErrorDescription, \"loginProgressError\", {\n get: function get() {\n return \"Login is in progress\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"acquireTokenProgressError\", {\n get: function get() {\n return \"Acquire token is in progress\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"inputScopesError\", {\n get: function get() {\n return \"Invalid value of input scopes provided\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"endpointResolutionError\", {\n get: function get() {\n return \"Endpoints cannot be resolved\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"popUpWindowError\", {\n get: function get() {\n return \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"userLoginError\", {\n get: function get() {\n return \"User login is required\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorDescription, \"userCancelledError\", {\n get: function get() {\n return \"User closed the popup window window and cancelled the flow\";\n },\n enumerable: true,\n configurable: true\n });\n return ErrorDescription;\n}();\n\nexports.ErrorDescription = ErrorDescription;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n\nvar LogLevel;\n\n(function (LogLevel) {\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\n\nvar Logger =\n/** @class */\nfunction () {\n function Logger(localCallback, options) {\n if (options === void 0) {\n options = {};\n }\n /*\r\n * @hidden\r\n */\n\n\n this._level = LogLevel.Info;\n var _a = options.correlationId,\n correlationId = _a === void 0 ? \"\" : _a,\n _b = options.level,\n level = _b === void 0 ? LogLevel.Info : _b,\n _c = options.piiLoggingEnabled,\n piiLoggingEnabled = _c === void 0 ? false : _c;\n this._localCallback = localCallback;\n this._correlationId = correlationId;\n this._level = level;\n this._piiLoggingEnabled = piiLoggingEnabled;\n }\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.logMessage = function (logLevel, logMessage, containsPii) {\n if (logLevel > this._level || !this._piiLoggingEnabled && containsPii) {\n return;\n }\n\n var timestamp = new Date().toUTCString();\n var log;\n\n if (!Utils_1.Utils.isEmpty(this._correlationId)) {\n log = timestamp + \":\" + this._correlationId + \"-\" + Utils_1.Utils.getLibraryVersion() + \"-\" + LogLevel[logLevel] + \" \" + logMessage;\n } else {\n log = timestamp + \":\" + Utils_1.Utils.getLibraryVersion() + \"-\" + LogLevel[logLevel] + \" \" + logMessage;\n }\n\n this.executeCallback(logLevel, log, containsPii);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.executeCallback = function (level, message, containsPii) {\n if (this._localCallback) {\n this._localCallback(level, message, containsPii);\n }\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.error = function (message) {\n this.logMessage(LogLevel.Error, message, false);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.errorPii = function (message) {\n this.logMessage(LogLevel.Error, message, true);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.warning = function (message) {\n this.logMessage(LogLevel.Warning, message, false);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.warningPii = function (message) {\n this.logMessage(LogLevel.Warning, message, true);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.info = function (message) {\n this.logMessage(LogLevel.Info, message, false);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.infoPii = function (message) {\n this.logMessage(LogLevel.Info, message, true);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.verbose = function (message) {\n this.logMessage(LogLevel.Verbose, message, false);\n };\n /*\r\n * @hidden\r\n */\n\n\n Logger.prototype.verbosePii = function (message) {\n this.logMessage(LogLevel.Verbose, message, true);\n };\n\n return Logger;\n}();\n\nexports.Logger = Logger;","\"use strict\";\n/*\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar ErrorMessage =\n/** @class */\nfunction () {\n function ErrorMessage() {}\n\n Object.defineProperty(ErrorMessage, \"authorityUriInvalidPath\", {\n get: function get() {\n return \"AuthorityUriInvalidPath\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorMessage, \"authorityUriInsecure\", {\n get: function get() {\n return \"AuthorityUriInsecure\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorMessage, \"invalidAuthorityType\", {\n get: function get() {\n return \"InvalidAuthorityType\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorMessage, \"unsupportedAuthorityValidation\", {\n get: function get() {\n return \"UnsupportedAuthorityValidation\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ErrorMessage, \"b2cAuthorityUriInvalidPath\", {\n get: function get() {\n return \"B2cAuthorityUriInvalidPath\";\n },\n enumerable: true,\n configurable: true\n });\n return ErrorMessage;\n}();\n\nexports.ErrorMessage = ErrorMessage;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.YouTube = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar SDK_URL = 'https://www.youtube.com/iframe_api';\nvar SDK_GLOBAL = 'YT';\nvar SDK_GLOBAL_READY = 'onYouTubeIframeAPIReady';\nvar MATCH_URL = /(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=/;\nvar MATCH_PLAYLIST = /list=([a-zA-Z0-9_-]+)/;\n\nfunction parsePlaylist(url) {\n if (MATCH_PLAYLIST.test(url)) {\n var _url$match = url.match(MATCH_PLAYLIST),\n _url$match2 = _slicedToArray(_url$match, 2),\n playlistId = _url$match2[1];\n\n return {\n listType: 'playlist',\n list: playlistId\n };\n }\n\n return {};\n}\n\nvar YouTube =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(YouTube, _Component);\n\n function YouTube() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, YouTube);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(YouTube)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onStateChange\", function (_ref) {\n var data = _ref.data;\n var _this$props = _this.props,\n onPlay = _this$props.onPlay,\n onPause = _this$props.onPause,\n onBuffer = _this$props.onBuffer,\n onBufferEnd = _this$props.onBufferEnd,\n onEnded = _this$props.onEnded,\n onReady = _this$props.onReady,\n loop = _this$props.loop;\n var _window$SDK_GLOBAL$Pl = window[SDK_GLOBAL].PlayerState,\n PLAYING = _window$SDK_GLOBAL$Pl.PLAYING,\n PAUSED = _window$SDK_GLOBAL$Pl.PAUSED,\n BUFFERING = _window$SDK_GLOBAL$Pl.BUFFERING,\n ENDED = _window$SDK_GLOBAL$Pl.ENDED,\n CUED = _window$SDK_GLOBAL$Pl.CUED;\n\n if (data === PLAYING) {\n onPlay();\n onBufferEnd();\n }\n\n if (data === PAUSED) onPause();\n if (data === BUFFERING) onBuffer();\n\n if (data === ENDED) {\n var isPlaylist = !!_this.callPlayer('getPlaylist');\n\n if (loop && !isPlaylist) {\n _this.play(); // Only loop manually if not playing a playlist\n\n }\n\n onEnded();\n }\n\n if (data === CUED) onReady();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unMute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(YouTube, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n playing = _this$props2.playing,\n muted = _this$props2.muted,\n playsinline = _this$props2.playsinline,\n controls = _this$props2.controls,\n loop = _this$props2.loop,\n config = _this$props2.config,\n _onError = _this$props2.onError;\n var _config$youtube = config.youtube,\n playerVars = _config$youtube.playerVars,\n embedOptions = _config$youtube.embedOptions;\n var id = url && url.match(MATCH_URL)[1];\n\n if (isReady) {\n if (MATCH_PLAYLIST.test(url)) {\n this.player.loadPlaylist(parsePlaylist(url));\n return;\n }\n\n this.player.cueVideoById({\n videoId: id,\n startSeconds: (0, _utils.parseStartTime)(url) || playerVars.start,\n endSeconds: (0, _utils.parseEndTime)(url) || playerVars.end\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (YT) {\n return YT.loaded;\n }).then(function (YT) {\n if (!_this2.container) return;\n _this2.player = new YT.Player(_this2.container, _objectSpread({\n width: '100%',\n height: '100%',\n videoId: id,\n playerVars: _objectSpread({\n autoplay: playing ? 1 : 0,\n mute: muted ? 1 : 0,\n controls: controls ? 1 : 0,\n start: (0, _utils.parseStartTime)(url),\n end: (0, _utils.parseEndTime)(url),\n origin: window.location.origin,\n playsinline: playsinline\n }, parsePlaylist(url), {}, playerVars),\n events: {\n onReady: function onReady() {\n if (loop) {\n _this2.player.setLoop(true); // Enable playlist looping\n\n }\n\n _this2.props.onReady();\n },\n onStateChange: _this2.onStateChange,\n onError: function onError(event) {\n return _onError(event.data);\n }\n }\n }, embedOptions));\n }, _onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('playVideo');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pauseVideo');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (!document.body.contains(this.callPlayer('getIframe'))) return;\n this.callPlayer('stopVideo');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(amount) {\n this.callPlayer('seekTo', amount);\n\n if (!this.props.playing) {\n this.pause();\n }\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.callPlayer('getVideoLoadedFraction') * this.getDuration();\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return _react[\"default\"].createElement(\"div\", {\n style: style\n }, _react[\"default\"].createElement(\"div\", {\n ref: this.ref\n }));\n }\n }]);\n\n return YouTube;\n}(_react.Component);\n\nexports.YouTube = YouTube;\n\n_defineProperty(YouTube, \"displayName\", 'YouTube');\n\n_defineProperty(YouTube, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(YouTube);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SEEK_ON_PLAY_EXPIRY = 5000;\n\nvar Player =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Player, _Component);\n\n function Player() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Player);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Player)).call.apply(_getPrototypeOf2, [this].concat(_args)));\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isReady\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isPlaying\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"isLoading\", true);\n\n _defineProperty(_assertThisInitialized(_this), \"loadOnReady\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"startOnPlay\", true);\n\n _defineProperty(_assertThisInitialized(_this), \"seekOnPlay\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"onDurationCalled\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function (key) {\n if (!_this.player) return null;\n return _this.player[key];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progress\", function () {\n if (_this.props.url && _this.player && _this.isReady) {\n var playedSeconds = _this.getCurrentTime() || 0;\n\n var loadedSeconds = _this.getSecondsLoaded();\n\n var duration = _this.getDuration();\n\n if (duration) {\n var progress = {\n playedSeconds: playedSeconds,\n played: playedSeconds / duration\n };\n\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n } // Only call onProgress if values have changed\n\n\n if (progress.playedSeconds !== _this.prevPlayed || progress.loadedSeconds !== _this.prevLoaded) {\n _this.props.onProgress(progress);\n }\n\n _this.prevPlayed = progress.playedSeconds;\n _this.prevLoaded = progress.loadedSeconds;\n }\n }\n\n _this.progressTimeout = setTimeout(_this.progress, _this.props.progressFrequency || _this.props.progressInterval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleReady\", function () {\n if (!_this.mounted) return;\n _this.isReady = true;\n _this.isLoading = false;\n var _this$props = _this.props,\n onReady = _this$props.onReady,\n playing = _this$props.playing,\n volume = _this$props.volume,\n muted = _this$props.muted;\n onReady();\n\n if (!muted && volume !== null) {\n _this.player.setVolume(volume);\n }\n\n if (_this.loadOnReady) {\n _this.player.load(_this.loadOnReady, true);\n\n _this.loadOnReady = null;\n } else if (playing) {\n _this.player.play();\n }\n\n _this.handleDurationCheck();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function () {\n _this.isPlaying = true;\n _this.isLoading = false;\n var _this$props2 = _this.props,\n onStart = _this$props2.onStart,\n onPlay = _this$props2.onPlay,\n playbackRate = _this$props2.playbackRate;\n\n if (_this.startOnPlay) {\n if (_this.player.setPlaybackRate && playbackRate !== 1) {\n _this.player.setPlaybackRate(playbackRate);\n }\n\n onStart();\n _this.startOnPlay = false;\n }\n\n onPlay();\n\n if (_this.seekOnPlay) {\n _this.seekTo(_this.seekOnPlay);\n\n _this.seekOnPlay = null;\n }\n\n _this.handleDurationCheck();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n _this.isPlaying = false;\n\n if (!_this.isLoading) {\n _this.props.onPause(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function () {\n var _this$props3 = _this.props,\n activePlayer = _this$props3.activePlayer,\n loop = _this$props3.loop,\n onEnded = _this$props3.onEnded;\n\n if (activePlayer.loopOnEnded && loop) {\n _this.seekTo(0);\n }\n\n if (!loop) {\n _this.isPlaying = false;\n onEnded();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleError\", function () {\n var _this$props4;\n\n _this.isLoading = false;\n\n (_this$props4 = _this.props).onError.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDurationCheck\", function () {\n clearTimeout(_this.durationCheckTimeout);\n\n var duration = _this.getDuration();\n\n if (duration) {\n if (!_this.onDurationCalled) {\n _this.props.onDuration(duration);\n\n _this.onDurationCalled = true;\n }\n } else {\n _this.durationCheckTimeout = setTimeout(_this.handleDurationCheck, 100);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleLoaded\", function () {\n // Sometimes we know loading has stopped but onReady/onPlay are never called\n // so this provides a way for players to avoid getting stuck\n _this.isLoading = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n if (player) {\n _this.player = player;\n }\n });\n\n return _this;\n }\n\n _createClass(Player, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n this.player.load(this.props.url);\n this.progress();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n\n if (this.isReady) {\n this.player.stop();\n }\n\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n\n this.mounted = false;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this; // Invoke player methods based on changed props\n\n\n var _this$props5 = this.props,\n url = _this$props5.url,\n playing = _this$props5.playing,\n volume = _this$props5.volume,\n muted = _this$props5.muted,\n playbackRate = _this$props5.playbackRate,\n pip = _this$props5.pip,\n loop = _this$props5.loop,\n activePlayer = _this$props5.activePlayer;\n\n if (!(0, _utils.isEqual)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad) {\n console.warn(\"ReactPlayer: the attempt to load \".concat(url, \" is being deferred until the player has loaded\"));\n this.loadOnReady = url;\n return;\n }\n\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n\n if (volume !== null) {\n // Set volume next tick to fix a bug with DailyMotion\n setTimeout(function () {\n return _this2.player.setVolume(volume);\n });\n }\n }\n }\n\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n if (!this.isReady) return null;\n return this.player.getDuration();\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n if (!this.isReady) return null;\n return this.player.getCurrentTime();\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n if (!this.isReady) return null;\n return this.player.getSecondsLoaded();\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(amount, type) {\n var _this3 = this; // When seeking before player is ready, store value and seek later\n\n\n if (!this.isReady && amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(function () {\n _this3.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n return;\n }\n\n var isFraction = !type ? amount > 0 && amount < 1 : type === 'fraction';\n\n if (isFraction) {\n // Convert fraction to seconds based on duration\n var duration = this.player.getDuration();\n\n if (!duration) {\n console.warn('ReactPlayer: could not seek using fraction – duration not yet available');\n return;\n }\n\n this.player.seekTo(duration * amount);\n return;\n }\n\n this.player.seekTo(amount);\n }\n }, {\n key: \"render\",\n value: function render() {\n var Player = this.props.activePlayer;\n\n if (!Player) {\n return null;\n }\n\n return _react[\"default\"].createElement(Player, _extends({}, this.props, {\n ref: this.ref,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }));\n }\n }]);\n\n return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\n\n_defineProperty(Player, \"displayName\", 'Player');\n\n_defineProperty(Player, \"propTypes\", _props.propTypes);\n\n_defineProperty(Player, \"defaultProps\", _props.defaultProps);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.SoundCloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://w.soundcloud.com/player/api.js';\nvar SDK_GLOBAL = 'SC';\nvar MATCH_URL = /(soundcloud\\.com|snd\\.sc)\\/.+$/;\n\nvar SoundCloud =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(SoundCloud, _Component);\n\n function SoundCloud() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, SoundCloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SoundCloud)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"fractionLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(SoundCloud, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (SC) {\n if (!_this2.iframe) return;\n var _SC$Widget$Events = SC.Widget.Events,\n PLAY = _SC$Widget$Events.PLAY,\n PLAY_PROGRESS = _SC$Widget$Events.PLAY_PROGRESS,\n PAUSE = _SC$Widget$Events.PAUSE,\n FINISH = _SC$Widget$Events.FINISH,\n ERROR = _SC$Widget$Events.ERROR;\n\n if (!isReady) {\n _this2.player = SC.Widget(_this2.iframe);\n\n _this2.player.bind(PLAY, _this2.props.onPlay);\n\n _this2.player.bind(PAUSE, _this2.props.onPause);\n\n _this2.player.bind(PLAY_PROGRESS, function (e) {\n _this2.currentTime = e.currentPosition / 1000;\n _this2.fractionLoaded = e.loadedProgress;\n });\n\n _this2.player.bind(FINISH, function () {\n return _this2.props.onEnded();\n });\n\n _this2.player.bind(ERROR, function (e) {\n return _this2.props.onError(e);\n });\n }\n\n _this2.player.load(url, _objectSpread({}, _this2.props.config.soundcloud.options, {\n callback: function callback() {\n _this2.player.getDuration(function (duration) {\n _this2.duration = duration / 1000;\n\n _this2.props.onReady();\n });\n }\n }));\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seekTo', seconds * 1000);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.fractionLoaded * this.duration;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return _react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://w.soundcloud.com/player/?url=\".concat(encodeURIComponent(this.props.url)),\n style: style,\n frameBorder: 0,\n allow: \"autoplay\"\n });\n }\n }]);\n\n return SoundCloud;\n}(_react.Component);\n\nexports.SoundCloud = SoundCloud;\n\n_defineProperty(SoundCloud, \"displayName\", 'SoundCloud');\n\n_defineProperty(SoundCloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(SoundCloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(SoundCloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Vimeo = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://player.vimeo.com/api/player.js';\nvar SDK_GLOBAL = 'Vimeo';\nvar MATCH_URL = /vimeo\\.com\\/.+/;\nvar MATCH_FILE_URL = /vimeo\\.com\\/external\\/[0-9]+\\..+/;\n\nvar Vimeo =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Vimeo, _Component);\n\n function Vimeo() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Vimeo);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Vimeo)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(Vimeo, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n this.duration = null;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) {\n if (!_this2.container) return;\n _this2.player = new Vimeo.Player(_this2.container, _objectSpread({\n url: url,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n loop: _this2.props.loop,\n playsinline: _this2.props.playsinline,\n controls: _this2.props.controls\n }, _this2.props.config.vimeo.playerOptions));\n\n _this2.player.ready().then(function () {\n var iframe = _this2.container.querySelector('iframe');\n\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n })[\"catch\"](_this2.props.onError);\n\n _this2.player.on('loaded', function () {\n _this2.props.onReady();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('play', function () {\n _this2.props.onPlay();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', function (e) {\n return _this2.props.onSeek(e.seconds);\n });\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var seconds = _ref.seconds;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('progress', function (_ref2) {\n var seconds = _ref2.seconds;\n _this2.secondsLoaded = seconds;\n });\n }, this.props.onError);\n }\n }, {\n key: \"refreshDuration\",\n value: function refreshDuration() {\n var _this3 = this;\n\n this.player.getDuration().then(function (duration) {\n _this3.duration = duration;\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.callPlayer('play');\n\n if (promise) {\n promise[\"catch\"](this.props.onError);\n }\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('unload');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n display: display\n };\n return _react[\"default\"].createElement(\"div\", {\n key: this.props.url,\n ref: this.ref,\n style: style\n });\n }\n }]);\n\n return Vimeo;\n}(_react.Component);\n\nexports.Vimeo = Vimeo;\n\n_defineProperty(Vimeo, \"displayName\", 'Vimeo');\n\n_defineProperty(Vimeo, \"forceLoad\", true);\n\n_defineProperty(Vimeo, \"canPlay\", function (url) {\n if (MATCH_FILE_URL.test(url)) {\n return false;\n }\n\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Vimeo);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.DailyMotion = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://api.dmcdn.net/all.js';\nvar SDK_GLOBAL = 'DM';\nvar SDK_GLOBAL_READY = 'dmAsyncInit';\nvar MATCH_URL = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/;\n\nvar DailyMotion =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DailyMotion, _Component);\n\n function DailyMotion() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, DailyMotion);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DailyMotion)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onDurationChange\", function () {\n var duration = _this.getDuration();\n\n _this.props.onDuration(duration);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('setMuted', true);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('setMuted', false);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(DailyMotion, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props = this.props,\n controls = _this$props.controls,\n config = _this$props.config,\n onError = _this$props.onError,\n playing = _this$props.playing;\n\n var _url$match = url.match(MATCH_URL),\n _url$match2 = _slicedToArray(_url$match, 2),\n id = _url$match2[1];\n\n if (this.player) {\n this.player.load(id, {\n start: (0, _utils.parseStartTime)(url),\n autoplay: playing\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (DM) {\n return DM.player;\n }).then(function (DM) {\n if (!_this2.container) return;\n var Player = DM.player;\n _this2.player = new Player(_this2.container, {\n width: '100%',\n height: '100%',\n video: id,\n params: _objectSpread({\n controls: controls,\n autoplay: _this2.props.playing,\n mute: _this2.props.muted,\n start: (0, _utils.parseStartTime)(url),\n origin: window.location.origin\n }, config.dailymotion.params),\n events: {\n apiready: _this2.props.onReady,\n seeked: function seeked() {\n return _this2.props.onSeek(_this2.player.currentTime);\n },\n video_end: _this2.props.onEnded,\n durationchange: _this2.onDurationChange,\n pause: _this2.props.onPause,\n playing: _this2.props.onPlay,\n waiting: _this2.props.onBuffer,\n error: function error(event) {\n return onError(event);\n }\n }\n });\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.player.duration || null;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.player.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.player.bufferedTime;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return _react[\"default\"].createElement(\"div\", {\n style: style\n }, _react[\"default\"].createElement(\"div\", {\n ref: this.ref\n }));\n }\n }]);\n\n return DailyMotion;\n}(_react.Component);\n\nexports.DailyMotion = DailyMotion;\n\n_defineProperty(DailyMotion, \"displayName\", 'DailyMotion');\n\n_defineProperty(DailyMotion, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(DailyMotion, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(DailyMotion);\n\nexports[\"default\"] = _default;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","var isarray = require('isarray');\n/**\n * Expose `pathToRegexp`.\n */\n\n\nmodule.exports = pathToRegexp;\nmodule.exports.parse = parse;\nmodule.exports.compile = compile;\nmodule.exports.tokensToFunction = tokensToFunction;\nmodule.exports.tokensToRegExp = tokensToRegExp;\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\n\nvar PATH_REGEXP = new RegExp([// Match escaped characters that would otherwise appear in future matches.\n// This allows the user to escape special characters that won't transform.\n'(\\\\\\\\.)', // Match Express-style parameters and un-named parameters with a prefix\n// and optional suffixes. Matches appear as:\n//\n// \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n// \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n// \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n'([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'].join('|'), 'g');\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\n\nfunction parse(str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length; // Ignore already escaped sequences.\n\n if (escaped) {\n path += escaped[1];\n continue;\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7]; // Push the current path onto the tokens.\n\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'\n });\n } // Match any characters still remaining.\n\n\n if (index < str.length) {\n path += str.substr(index);\n } // If the path exists, push it onto the end.\n\n\n if (path) {\n tokens.push(path);\n }\n\n return tokens;\n}\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\n\n\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeURIComponentPretty(str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeAsterisk(str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\n\n\nfunction tokensToFunction(tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length); // Compile all the patterns before compilation.\n\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue;\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined');\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`');\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`');\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue;\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"');\n }\n\n path += token.prefix + segment;\n }\n\n return path;\n };\n}\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\n\n\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1');\n}\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\n\n\nfunction escapeGroup(group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1');\n}\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\n\n\nfunction attachKeys(re, keys) {\n re.keys = keys;\n return re;\n}\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\n\n\nfunction flags(options) {\n return options && options.sensitive ? '' : 'i';\n}\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\n\n\nfunction regexpToRegexp(path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys);\n}\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction arrayToRegexp(path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n return attachKeys(regexp, keys);\n}\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction tokensToRegExp(tokens, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n var strict = options.strict;\n var end = options.end !== false;\n var route = ''; // Iterate over the tokens and create our regexp string.\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys);\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction pathToRegexp(path, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path,\n /** @type {!Array} */\n keys);\n }\n\n if (isarray(path)) {\n return arrayToRegexp(\n /** @type {!Array} */\n path,\n /** @type {!Array} */\n keys, options);\n }\n\n return stringToRegexp(\n /** @type {string} */\n path,\n /** @type {!Array} */\n keys, options);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar TokenResponse =\n/** @class */\nfunction () {\n function TokenResponse() {\n this.valid = false;\n this.parameters = {};\n this.stateMatch = false;\n this.stateResponse = \"\";\n this.requestType = \"unknown\";\n }\n\n return TokenResponse;\n}();\n\nexports.TokenResponse = TokenResponse;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n\nvar User =\n/** @class */\nfunction () {\n /*\r\n * @hidden\r\n */\n function User(displayableId, name, identityProvider, userIdentifier, idToken) {\n this.displayableId = displayableId;\n this.name = name;\n this.identityProvider = identityProvider;\n this.userIdentifier = userIdentifier;\n this.idToken = idToken;\n }\n /*\r\n * @hidden\r\n */\n\n\n User.createUser = function (idToken, clientInfo, authority) {\n var uid;\n var utid;\n\n if (!clientInfo) {\n uid = \"\";\n utid = \"\";\n } else {\n uid = clientInfo.uid;\n utid = clientInfo.utid;\n }\n\n var userIdentifier = Utils_1.Utils.base64EncodeStringUrlSafe(uid) + \".\" + Utils_1.Utils.base64EncodeStringUrlSafe(utid);\n return new User(idToken.preferredName, idToken.name, idToken.issuer, userIdentifier, idToken.decodedIdToken);\n };\n\n return User;\n}();\n\nexports.User = User;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar Authority_1 = require(\"./Authority\");\n\nvar XHRClient_1 = require(\"./XHRClient\");\n/**\r\n * @hidden\r\n */\n\n\nvar AadAuthority =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(AadAuthority, _super);\n\n function AadAuthority(authority, validateAuthority) {\n return _super.call(this, authority, validateAuthority) || this;\n }\n\n Object.defineProperty(AadAuthority.prototype, \"AadInstanceDiscoveryEndpointUrl\", {\n get: function get() {\n return AadAuthority.AadInstanceDiscoveryEndpoint + \"?api-version=1.0&authorization_endpoint=\" + this.CanonicalAuthority + \"oauth2/v2.0/authorize\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AadAuthority.prototype, \"AuthorityType\", {\n get: function get() {\n return Authority_1.AuthorityType.Aad;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Returns a promise which resolves to the OIDC endpoint\r\n * Only responds with the endpoint\r\n */\n\n AadAuthority.prototype.GetOpenIdConfigurationEndpointAsync = function () {\n var _this = this;\n\n var resultPromise = new Promise(function (resolve, reject) {\n return resolve(_this.DefaultOpenIdConfigurationEndpoint);\n });\n\n if (!this.IsValidationEnabled) {\n return resultPromise;\n }\n\n var host = this.CanonicalAuthorityUrlComponents.HostNameAndPort;\n\n if (this.IsInTrustedHostList(host)) {\n return resultPromise;\n }\n\n var client = new XHRClient_1.XhrClient();\n return client.sendRequestAsync(this.AadInstanceDiscoveryEndpointUrl, \"GET\", true).then(function (response) {\n return response.tenant_discovery_endpoint;\n });\n };\n /**\r\n * Checks to see if the host is in a list of trusted hosts\r\n * @param {string} The host to look up\r\n */\n\n\n AadAuthority.prototype.IsInTrustedHostList = function (host) {\n return AadAuthority.TrustedHostList[host.toLowerCase()];\n };\n\n AadAuthority.AadInstanceDiscoveryEndpoint = \"https://login.microsoftonline.com/common/discovery/instance\";\n AadAuthority.TrustedHostList = {\n \"login.windows.net\": \"login.windows.net\",\n \"login.chinacloudapi.cn\": \"login.chinacloudapi.cn\",\n \"login.cloudgovapi.us\": \"login.cloudgovapi.us\",\n \"login.microsoftonline.com\": \"login.microsoftonline.com\",\n \"login.microsoftonline.de\": \"login.microsoftonline.de\",\n \"login.microsoftonline.us\": \"login.microsoftonline.us\"\n };\n return AadAuthority;\n}(Authority_1.Authority);\n\nexports.AadAuthority = AadAuthority;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * XHR client for JSON endpoints\r\n * https://www.npmjs.com/package/async-promise\r\n * @hidden\r\n */\n\nvar XhrClient =\n/** @class */\nfunction () {\n function XhrClient() {}\n\n XhrClient.prototype.sendRequestAsync = function (url, method, enableCaching) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.open(method, url,\n /*async: */\n true);\n\n if (enableCaching) {// TODO: (shivb) ensure that this can be cached\n // xhr.setRequestHeader(\"Cache-Control\", \"Public\");\n }\n\n xhr.onload = function (ev) {\n if (xhr.status < 200 || xhr.status >= 300) {\n reject(_this.handleError(xhr.responseText));\n }\n\n try {\n var jsonResponse = JSON.parse(xhr.responseText);\n } catch (e) {\n reject(_this.handleError(xhr.responseText));\n }\n\n resolve(jsonResponse);\n };\n\n xhr.onerror = function (ev) {\n reject(xhr.status);\n };\n\n if (method === \"GET\") {\n xhr.send();\n } else {\n throw \"not implemented\";\n }\n });\n };\n\n XhrClient.prototype.handleError = function (responseText) {\n var jsonResponse;\n\n try {\n jsonResponse = JSON.parse(responseText);\n\n if (jsonResponse.error) {\n return jsonResponse.error;\n } else {\n throw responseText;\n }\n } catch (e) {\n return responseText;\n }\n };\n\n return XhrClient;\n}();\n\nexports.XhrClient = XhrClient;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Facebook = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://connect.facebook.net/en_US/sdk.js';\nvar SDK_GLOBAL = 'FB';\nvar SDK_GLOBAL_READY = 'fbAsyncInit';\nvar MATCH_URL = /facebook\\.com\\/([^/?].+\\/)?video(s|\\.php)[/?].*$/;\nvar PLAYER_ID_PREFIX = 'facebook-player-';\n\nvar Facebook =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Facebook, _Component);\n\n function Facebook() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Facebook);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Facebook)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"playerID\", PLAYER_ID_PREFIX + (0, _utils.randomString)());\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n return _this;\n }\n\n _createClass(Facebook, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n if (isReady) {\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n return FB.XFBML.parse();\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n FB.init({\n appId: _this2.props.config.facebook.appId,\n xfbml: true,\n version: _this2.props.config.facebook.version\n });\n FB.Event.subscribe('xfbml.render', function (msg) {\n // Here we know the SDK has loaded, even if onReady/onPlay\n // is not called due to a video that cannot be embedded\n _this2.props.onLoaded();\n });\n FB.Event.subscribe('xfbml.ready', function (msg) {\n if (msg.type === 'video' && msg.id === _this2.playerID) {\n _this2.player = msg.instance;\n\n _this2.player.subscribe('startedPlaying', _this2.props.onPlay);\n\n _this2.player.subscribe('paused', _this2.props.onPause);\n\n _this2.player.subscribe('finishedPlaying', _this2.props.onEnded);\n\n _this2.player.subscribe('startedBuffering', _this2.props.onBuffer);\n\n _this2.player.subscribe('finishedBuffering', _this2.props.onBufferEnd);\n\n _this2.player.subscribe('error', _this2.props.onError);\n\n if (!_this2.props.muted) {\n // Player is muted by default\n _this2.callPlayer('unmute');\n }\n\n _this2.props.onReady(); // For some reason Facebook have added `visibility: hidden`\n // to the iframe when autoplay fails, so here we set it back\n\n\n document.getElementById(_this2.playerID).querySelector('iframe').style.visibility = 'visible';\n }\n });\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentPosition');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = {\n width: '100%',\n height: '100%'\n };\n return _react[\"default\"].createElement(\"div\", {\n style: style,\n id: this.playerID,\n className: \"fb-video\",\n \"data-href\": this.props.url,\n \"data-autoplay\": this.props.playing ? 'true' : 'false',\n \"data-allowfullscreen\": \"true\",\n \"data-controls\": this.props.controls ? 'true' : 'false'\n });\n }\n }]);\n\n return Facebook;\n}(_react.Component);\n\nexports.Facebook = Facebook;\n\n_defineProperty(Facebook, \"displayName\", 'Facebook');\n\n_defineProperty(Facebook, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Facebook, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Facebook);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Streamable = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://cdn.embed.ly/player-0.1.0.min.js';\nvar SDK_GLOBAL = 'playerjs';\nvar MATCH_URL = /streamable\\.com\\/([a-z0-9]+)$/;\n\nvar Streamable =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Streamable, _Component);\n\n function Streamable() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Streamable);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Streamable)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Streamable, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) {\n if (!_this2.iframe) return;\n _this2.player = new playerjs.Player(_this2.iframe);\n\n _this2.player.setLoop(_this2.props.loop);\n\n _this2.player.on('ready', _this2.props.onReady);\n\n _this2.player.on('play', _this2.props.onPlay);\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', _this2.props.onSeek);\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var duration = _ref.duration,\n seconds = _ref.seconds;\n _this2.duration = duration;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('buffered', function (_ref2) {\n var percent = _ref2.percent;\n\n if (_this2.duration) {\n _this2.secondsLoaded = _this2.duration * percent;\n }\n });\n\n if (_this2.props.muted) {\n _this2.player.mute();\n }\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.props.url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n return _react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://streamable.com/o/\".concat(id),\n frameBorder: \"0\",\n scrolling: \"no\",\n style: style,\n allowFullScreen: true\n });\n }\n }]);\n\n return Streamable;\n}(_react.Component);\n\nexports.Streamable = Streamable;\n\n_defineProperty(Streamable, \"displayName\", 'Streamable');\n\n_defineProperty(Streamable, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Streamable);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Wistia = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://fast.wistia.com/assets/external/E-v1.js';\nvar SDK_GLOBAL = 'Wistia';\nvar MATCH_URL = /(?:wistia\\.com|wi\\.st)\\/(?:medias|embed)\\/(.*)$/;\n\nvar Wistia =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Wistia, _Component);\n\n function Wistia() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Wistia);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Wistia)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n return _this;\n }\n\n _createClass(Wistia, [{\n key: \"getID\",\n value: function getID(url) {\n return url && url.match(MATCH_URL)[1];\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props = this.props,\n playing = _this$props.playing,\n muted = _this$props.muted,\n controls = _this$props.controls,\n _onReady = _this$props.onReady,\n onPlay = _this$props.onPlay,\n onPause = _this$props.onPause,\n onSeek = _this$props.onSeek,\n onEnded = _this$props.onEnded,\n config = _this$props.config,\n onError = _this$props.onError;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function () {\n window._wq = window._wq || [];\n\n window._wq.push({\n id: _this2.getID(url),\n options: _objectSpread({\n autoPlay: playing,\n silentAutoPlay: 'allow',\n muted: muted,\n controlsVisibleOnLoad: controls\n }, config.wistia.options),\n onReady: function onReady(player) {\n _this2.player = player;\n\n _this2.unbind();\n\n _this2.player.bind('play', onPlay);\n\n _this2.player.bind('pause', onPause);\n\n _this2.player.bind('seek', onSeek);\n\n _this2.player.bind('end', onEnded);\n\n _onReady();\n }\n });\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n var _this$props2 = this.props,\n onPlay = _this$props2.onPlay,\n onPause = _this$props2.onPause,\n onSeek = _this$props2.onSeek,\n onEnded = _this$props2.onEnded;\n this.player.unbind('play', onPlay);\n this.player.unbind('pause', onPause);\n this.player.unbind('seek', onSeek);\n this.player.unbind('end', onEnded);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.unbind();\n this.callPlayer('remove');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('time', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('volume', fraction);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('playbackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('duration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('time');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.getID(this.props.url);\n var className = \"wistia_embed wistia_async_\".concat(id);\n var style = {\n width: '100%',\n height: '100%'\n };\n return _react[\"default\"].createElement(\"div\", {\n key: id,\n className: className,\n style: style\n });\n }\n }]);\n\n return Wistia;\n}(_react.Component);\n\nexports.Wistia = Wistia;\n\n_defineProperty(Wistia, \"displayName\", 'Wistia');\n\n_defineProperty(Wistia, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Wistia, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Wistia);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Twitch = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://player.twitch.tv/js/embed/v1.js';\nvar SDK_GLOBAL = 'Twitch';\nvar MATCH_VIDEO_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nvar MATCH_CHANNEL_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-z0-9_]+)($|\\?)/;\nvar PLAYER_ID_PREFIX = 'twitch-player-';\n\nvar Twitch =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Twitch, _Component);\n\n function Twitch() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Twitch);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Twitch)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"playerID\", PLAYER_ID_PREFIX + (0, _utils.randomString)());\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('setMuted', true);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('setMuted', false);\n });\n\n return _this;\n }\n\n _createClass(Twitch, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props = this.props,\n playsinline = _this$props.playsinline,\n onError = _this$props.onError,\n config = _this$props.config,\n controls = _this$props.controls;\n var isChannel = MATCH_CHANNEL_URL.test(url);\n var id = isChannel ? url.match(MATCH_CHANNEL_URL)[1] : url.match(MATCH_VIDEO_URL)[1];\n\n if (isReady) {\n if (isChannel) {\n this.player.setChannel(id);\n } else {\n this.player.setVideo('v' + id);\n }\n\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Twitch) {\n _this2.player = new Twitch.Player(_this2.playerID, _objectSpread({\n video: isChannel ? '' : id,\n channel: isChannel ? id : '',\n height: '100%',\n width: '100%',\n playsinline: playsinline,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n // https://github.com/CookPete/react-player/issues/733#issuecomment-549085859\n controls: isChannel ? true : controls\n }, config.twitch.options));\n var _Twitch$Player = Twitch.Player,\n READY = _Twitch$Player.READY,\n PLAYING = _Twitch$Player.PLAYING,\n PAUSE = _Twitch$Player.PAUSE,\n ENDED = _Twitch$Player.ENDED,\n ONLINE = _Twitch$Player.ONLINE,\n OFFLINE = _Twitch$Player.OFFLINE;\n\n _this2.player.addEventListener(READY, _this2.props.onReady);\n\n _this2.player.addEventListener(PLAYING, _this2.props.onPlay);\n\n _this2.player.addEventListener(PAUSE, _this2.props.onPause);\n\n _this2.player.addEventListener(ENDED, _this2.props.onEnded); // Prevent weird isLoading behaviour when streams are offline\n\n\n _this2.player.addEventListener(ONLINE, _this2.props.onLoaded);\n\n _this2.player.addEventListener(OFFLINE, _this2.props.onLoaded);\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('pause');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = {\n width: '100%',\n height: '100%'\n };\n return _react[\"default\"].createElement(\"div\", {\n style: style,\n id: this.playerID\n });\n }\n }]);\n\n return Twitch;\n}(_react.Component);\n\nexports.Twitch = Twitch;\n\n_defineProperty(Twitch, \"displayName\", 'Twitch');\n\n_defineProperty(Twitch, \"canPlay\", function (url) {\n return MATCH_VIDEO_URL.test(url) || MATCH_CHANNEL_URL.test(url);\n});\n\n_defineProperty(Twitch, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Twitch);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Mixcloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://widget.mixcloud.com/media/js/widgetApi.js';\nvar SDK_GLOBAL = 'Mixcloud';\nvar MATCH_URL = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\n\nvar Mixcloud =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Mixcloud, _Component);\n\n function Mixcloud() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Mixcloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Mixcloud)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Mixcloud, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Mixcloud) {\n _this2.player = Mixcloud.PlayerWidget(_this2.iframe);\n\n _this2.player.ready.then(function () {\n _this2.player.events.play.on(_this2.props.onPlay);\n\n _this2.player.events.pause.on(_this2.props.onPause);\n\n _this2.player.events.ended.on(_this2.props.onEnded);\n\n _this2.player.events.error.on(_this2.props.error);\n\n _this2.player.events.progress.on(function (seconds, duration) {\n _this2.currentTime = seconds;\n _this2.duration = duration;\n });\n\n _this2.props.onReady();\n });\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {// No volume support\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n url = _this$props.url,\n config = _this$props.config;\n var id = url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n var query = (0, _utils.queryString)(_objectSpread({}, config.mixcloud.options, {\n feed: \"/\".concat(id, \"/\")\n })); // We have to give the iframe a key here to prevent a\n // weird dialog appearing when loading a new track\n\n return _react[\"default\"].createElement(\"iframe\", {\n key: id,\n ref: this.ref,\n style: style,\n src: \"https://www.mixcloud.com/widget/iframe/?\".concat(query),\n frameBorder: \"0\"\n });\n }\n }]);\n\n return Mixcloud;\n}(_react.Component);\n\nexports.Mixcloud = Mixcloud;\n\n_defineProperty(Mixcloud, \"displayName\", 'Mixcloud');\n\n_defineProperty(Mixcloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Mixcloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Mixcloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.FilePlayer = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar IOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)($|\\?)/i;\nvar HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nvar HLS_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/VERSION/hls.min.js';\nvar HLS_GLOBAL = 'Hls';\nvar DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nvar DASH_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js';\nvar DASH_GLOBAL = 'dashjs';\nvar MATCH_DROPBOX_URL = /www\\.dropbox\\.com\\/.+/;\n\nfunction canPlay(url) {\n if (url instanceof Array) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = url[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n\n if (typeof item === 'string' && canPlay(item)) {\n return true;\n }\n\n if (canPlay(item.src)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n if ((0, _utils.isMediaStream)(url)) {\n return true;\n }\n\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url);\n}\n\nfunction supportsWebKitPresentationMode(video) {\n if (!video) video = document.createElement('video'); // Check if Safari supports PiP, and is not on mobile (other than iPad)\n // iPhone safari appears to \"support\" PiP through the check, however PiP does not function\n\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === 'function' && !/iPhone|iPod/.test(navigator.userAgent);\n}\n\nfunction canEnablePIP(url) {\n return canPlay(url) && (!!document.pictureInPictureEnabled || supportsWebKitPresentationMode()) && !AUDIO_EXTENSIONS.test(url);\n}\n\nvar FilePlayer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(FilePlayer, _Component);\n\n function FilePlayer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FilePlayer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FilePlayer)).call.apply(_getPrototypeOf2, [this].concat(_args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onReady\", function () {\n var _this$props;\n\n return (_this$props = _this.props).onReady.apply(_this$props, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n var _this$props2;\n\n return (_this$props2 = _this.props).onPlay.apply(_this$props2, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBuffer\", function () {\n var _this$props3;\n\n return (_this$props3 = _this.props).onBuffer.apply(_this$props3, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBufferEnd\", function () {\n var _this$props4;\n\n return (_this$props4 = _this.props).onBufferEnd.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n var _this$props5;\n\n return (_this$props5 = _this.props).onPause.apply(_this$props5, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n var _this$props6;\n\n return (_this$props6 = _this.props).onEnded.apply(_this$props6, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onError\", function () {\n var _this$props7;\n\n return (_this$props7 = _this.props).onError.apply(_this$props7, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnablePIP\", function () {\n var _this$props8;\n\n return (_this$props8 = _this.props).onEnablePIP.apply(_this$props8, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDisablePIP\", function (e) {\n var _this$props9 = _this.props,\n onDisablePIP = _this$props9.onDisablePIP,\n playing = _this$props9.playing;\n onDisablePIP(e);\n\n if (playing) {\n _this.play();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPresentationModeChange\", function (e) {\n if (_this.player && supportsWebKitPresentationMode(_this.player)) {\n var webkitPresentationMode = _this.player.webkitPresentationMode;\n\n if (webkitPresentationMode === 'picture-in-picture') {\n _this.onEnablePIP(e);\n } else if (webkitPresentationMode === 'inline') {\n _this.onDisablePIP(e);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSeek\", function (e) {\n _this.props.onSeek(e.target.currentTime);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.player.muted = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.player.muted = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSourceElement\", function (source, index) {\n if (typeof source === 'string') {\n return _react[\"default\"].createElement(\"source\", {\n key: index,\n src: source\n });\n }\n\n return _react[\"default\"].createElement(\"source\", _extends({\n key: index\n }, source));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderTrack\", function (track, index) {\n return _react[\"default\"].createElement(\"track\", _extends({\n key: index\n }, track));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n if (_this.player) {\n // Store previous player to be used by removeListeners()\n _this.prevPlayer = _this.player;\n }\n\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(FilePlayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addListeners(this.player);\n\n if (IOS) {\n this.player.load();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(prevProps)) {\n this.removeListeners(this.prevPlayer);\n this.addListeners(this.player);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListeners(this.player);\n }\n }, {\n key: \"addListeners\",\n value: function addListeners(player) {\n var playsinline = this.props.playsinline;\n player.addEventListener('canplay', this.onReady);\n player.addEventListener('play', this.onPlay);\n player.addEventListener('waiting', this.onBuffer);\n player.addEventListener('playing', this.onBufferEnd);\n player.addEventListener('pause', this.onPause);\n player.addEventListener('seeked', this.onSeek);\n player.addEventListener('ended', this.onEnded);\n player.addEventListener('error', this.onError);\n player.addEventListener('enterpictureinpicture', this.onEnablePIP);\n player.addEventListener('leavepictureinpicture', this.onDisablePIP);\n player.addEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n\n if (playsinline) {\n player.setAttribute('playsinline', '');\n player.setAttribute('webkit-playsinline', '');\n player.setAttribute('x5-playsinline', '');\n }\n }\n }, {\n key: \"removeListeners\",\n value: function removeListeners(player) {\n player.removeEventListener('canplay', this.onReady);\n player.removeEventListener('play', this.onPlay);\n player.removeEventListener('waiting', this.onBuffer);\n player.removeEventListener('playing', this.onBufferEnd);\n player.removeEventListener('pause', this.onPause);\n player.removeEventListener('seeked', this.onSeek);\n player.removeEventListener('ended', this.onEnded);\n player.removeEventListener('error', this.onError);\n player.removeEventListener('enterpictureinpicture', this.onEnablePIP);\n player.removeEventListener('leavepictureinpicture', this.onDisablePIP);\n player.removeEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n } // Proxy methods to prevent listener leaks\n\n }, {\n key: \"shouldUseAudio\",\n value: function shouldUseAudio(props) {\n if (props.config.file.forceVideo) {\n return false;\n }\n\n if (props.config.file.attributes.poster) {\n return false; // Use

    \n *
  • `debug` for the most verbose logging level, primarily for\n * debugging.
  • \n *
  • `error` to log errors only.
  • \n *
  • `silent` to turn off logging.
  • \n *
\n */\n\n\nfunction l(e) {\n for (var r = [], i = 1; i < arguments.length; i++) {\n r[i - 1] = arguments[i];\n }\n\n if (h.logLevel <= n.LogLevel.DEBUG) {\n var o = r.map(v);\n h.debug.apply(h, t.__spreadArrays([\"Firestore (7.24.0): \" + e], o));\n }\n}\n\nfunction p(e) {\n for (var r = [], i = 1; i < arguments.length; i++) {\n r[i - 1] = arguments[i];\n }\n\n if (h.logLevel <= n.LogLevel.ERROR) {\n var o = r.map(v);\n h.error.apply(h, t.__spreadArrays([\"Firestore (7.24.0): \" + e], o));\n }\n}\n\nfunction d(e) {\n for (var r = [], i = 1; i < arguments.length; i++) {\n r[i - 1] = arguments[i];\n }\n\n if (h.logLevel <= n.LogLevel.WARN) {\n var o = r.map(v);\n h.warn.apply(h, t.__spreadArrays([\"Firestore (7.24.0): \" + e], o));\n }\n}\n/**\n * Converts an additional log parameter to a string representation.\n */\n\n\nfunction v(t) {\n if (\"string\" == typeof t) return t;\n\n try {\n return e = t, JSON.stringify(e);\n } catch (e) {\n // Converting to JSON failed, just log the object directly\n return t;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /** Formats an object as a JSON string, suitable for logging. */\n\n\n var e;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Unconditionally fails, throwing an Error with the given message.\n * Messages are stripped in production builds.\n *\n * Returns `never` and can be used in expressions:\n * @example\n * let futureVar = fail('not implemented yet');\n */\n\n\nfunction y(t) {\n void 0 === t && (t = \"Unexpected state\"); // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n\n var e = \"FIRESTORE (7.24.0) INTERNAL ASSERTION FAILED: \" + t; // NOTE: We don't use FirestoreError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n\n throw p(e), new Error(e)\n /**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * Messages are stripped in production builds.\n */\n ;\n}\n\nfunction g(t, e) {\n t || y();\n}\n/**\n * Casts `obj` to `T`. In non-production builds, verifies that `obj` is an\n * instance of `T` before casting.\n */\n\n\nfunction m(t, // eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n return t;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nfunction w(t) {\n var e = 0;\n\n for (var n in t) {\n Object.prototype.hasOwnProperty.call(t, n) && e++;\n }\n\n return e;\n}\n\nfunction _(t, e) {\n for (var n in t) {\n Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]);\n }\n}\n\nfunction b(t) {\n for (var e in t) {\n if (Object.prototype.hasOwnProperty.call(t, e)) return !1;\n }\n\n return !0;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Path represents an ordered sequence of string segments.\n */\n\n\nvar I =\n/** @class */\nfunction () {\n function t(t, e, n) {\n void 0 === e ? e = 0 : e > t.length && y(), void 0 === n ? n = t.length - e : n > t.length - e && y(), this.segments = t, this.offset = e, this.t = n;\n }\n\n return Object.defineProperty(t.prototype, \"length\", {\n get: function get() {\n return this.t;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function (e) {\n return 0 === t.i(this, e);\n }, t.prototype.child = function (e) {\n var n = this.segments.slice(this.offset, this.limit());\n return e instanceof t ? e.forEach(function (t) {\n n.push(t);\n }) : n.push(e), this.o(n);\n },\n /** The index of one past the last segment of the path. */\n t.prototype.limit = function () {\n return this.offset + this.length;\n }, t.prototype.u = function (t) {\n return t = void 0 === t ? 1 : t, this.o(this.segments, this.offset + t, this.length - t);\n }, t.prototype.h = function () {\n return this.o(this.segments, this.offset, this.length - 1);\n }, t.prototype.l = function () {\n return this.segments[this.offset];\n }, t.prototype._ = function () {\n return this.get(this.length - 1);\n }, t.prototype.get = function (t) {\n return this.segments[this.offset + t];\n }, t.prototype.m = function () {\n return 0 === this.length;\n }, t.prototype.T = function (t) {\n if (t.length < this.length) return !1;\n\n for (var e = 0; e < this.length; e++) {\n if (this.get(e) !== t.get(e)) return !1;\n }\n\n return !0;\n }, t.prototype.I = function (t) {\n if (this.length + 1 !== t.length) return !1;\n\n for (var e = 0; e < this.length; e++) {\n if (this.get(e) !== t.get(e)) return !1;\n }\n\n return !0;\n }, t.prototype.forEach = function (t) {\n for (var e = this.offset, n = this.limit(); e < n; e++) {\n t(this.segments[e]);\n }\n }, t.prototype.A = function () {\n return this.segments.slice(this.offset, this.limit());\n }, t.i = function (t, e) {\n for (var n = Math.min(t.length, e.length), r = 0; r < n; r++) {\n var i = t.get(r),\n o = e.get(r);\n if (i < o) return -1;\n if (i > o) return 1;\n }\n\n return t.length < e.length ? -1 : t.length > e.length ? 1 : 0;\n }, t;\n}(),\n E =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.o = function (t, e, r) {\n return new n(t, e, r);\n }, n.prototype.R = function () {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n return this.A().join(\"/\");\n }, n.prototype.toString = function () {\n return this.R();\n },\n /**\n * Creates a resource path from the given slash-delimited string. If multiple\n * arguments are provided, all components are combined. Leading and trailing\n * slashes from all components are ignored.\n */\n n.g = function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n } // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n\n\n for (var r = [], i = 0, o = t; i < o.length; i++) {\n var s = o[i];\n if (s.indexOf(\"//\") >= 0) throw new c(a.INVALID_ARGUMENT, \"Invalid segment (\" + s + \"). Paths must not contain // in them.\"); // Strip leading and traling slashed.\n\n r.push.apply(r, s.split(\"/\").filter(function (t) {\n return t.length > 0;\n }));\n }\n\n return new n(r);\n }, n.P = function () {\n return new n([]);\n }, n;\n}(I),\n T = /^[_a-zA-Z][_a-zA-Z0-9]*$/,\n N =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.o = function (t, e, r) {\n return new n(t, e, r);\n },\n /**\n * Returns true if the string could be used as a segment in a field path\n * without escaping.\n */\n n.V = function (t) {\n return T.test(t);\n }, n.prototype.R = function () {\n return this.A().map(function (t) {\n return t = t.replace(\"\\\\\", \"\\\\\\\\\").replace(\"`\", \"\\\\`\"), n.V(t) || (t = \"`\" + t + \"`\"), t;\n }).join(\".\");\n }, n.prototype.toString = function () {\n return this.R();\n },\n /**\n * Returns true if this field references the key of a document.\n */\n n.prototype.p = function () {\n return 1 === this.length && \"__name__\" === this.get(0);\n },\n /**\n * The field designating the key of a document.\n */\n n.v = function () {\n return new n([\"__name__\"]);\n },\n /**\n * Parses a field string from the given server-formatted string.\n *\n * - Splitting the empty string is not allowed (for now at least).\n * - Empty segments within the string (e.g. if there are two consecutive\n * separators) are not allowed.\n *\n * TODO(b/37244157): we should make this more strict. Right now, it allows\n * non-identifier path components, even if they aren't escaped.\n */\n n.S = function (t) {\n for (var e = [], r = \"\", i = 0, o = function o() {\n if (0 === r.length) throw new c(a.INVALID_ARGUMENT, \"Invalid field path (\" + t + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\");\n e.push(r), r = \"\";\n }, s = !1; i < t.length;) {\n var u = t[i];\n\n if (\"\\\\\" === u) {\n if (i + 1 === t.length) throw new c(a.INVALID_ARGUMENT, \"Path has trailing escape character: \" + t);\n var h = t[i + 1];\n if (\"\\\\\" !== h && \".\" !== h && \"`\" !== h) throw new c(a.INVALID_ARGUMENT, \"Path has invalid escape sequence: \" + t);\n r += h, i += 2;\n } else \"`\" === u ? (s = !s, i++) : \".\" !== u || s ? (r += u, i++) : (o(), i++);\n }\n\n if (o(), s) throw new c(a.INVALID_ARGUMENT, \"Unterminated ` in path: \" + t);\n return new n(e);\n }, n.P = function () {\n return new n([]);\n }, n;\n}(I),\n A =\n/** @class */\nfunction () {\n function t(t) {\n this.path = t;\n }\n\n return t.D = function (e) {\n return new t(E.g(e));\n }, t.C = function (e) {\n return new t(E.g(e).u(5));\n },\n /** Returns true if the document is in the specified collectionId. */\n t.prototype.N = function (t) {\n return this.path.length >= 2 && this.path.get(this.path.length - 2) === t;\n }, t.prototype.isEqual = function (t) {\n return null !== t && 0 === E.i(this.path, t.path);\n }, t.prototype.toString = function () {\n return this.path.toString();\n }, t.i = function (t, e) {\n return E.i(t.path, e.path);\n }, t.F = function (t) {\n return t.length % 2 == 0;\n },\n /**\n * Creates and returns a new document key with the given segments.\n *\n * @param segments The segments of the path to the document\n * @return A new instance of DocumentKey\n */\n t.$ = function (e) {\n return new t(new E(e.slice()));\n }, t;\n}();\n/**\n * A slash-separated path for navigating resources (documents and collections)\n * within Firestore.\n */\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Validates that no arguments were passed in the invocation of functionName.\n *\n * Forward the magic \"arguments\" variable as second parameter on which the\n * parameter validation is performed:\n * validateNoArgs('myFunction', arguments);\n */\n\n\nfunction S(t, e) {\n if (0 !== e.length) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() does not support arguments, but was called with \" + W(e.length, \"argument\") + \".\");\n}\n/**\n * Validates the invocation of functionName has the exact number of arguments.\n *\n * Forward the magic \"arguments\" variable as second parameter on which the\n * parameter validation is performed:\n * validateExactNumberOfArgs('myFunction', arguments, 2);\n */\n\n\nfunction D(t, e, n) {\n if (e.length !== n) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires \" + W(n, \"argument\") + \", but was called with \" + W(e.length, \"argument\") + \".\");\n}\n/**\n * Validates the invocation of functionName has at least the provided number of\n * arguments (but can have many more).\n *\n * Forward the magic \"arguments\" variable as second parameter on which the\n * parameter validation is performed:\n * validateAtLeastNumberOfArgs('myFunction', arguments, 2);\n */\n\n\nfunction x(t, e, n) {\n if (e.length < n) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires at least \" + W(n, \"argument\") + \", but was called with \" + W(e.length, \"argument\") + \".\");\n}\n/**\n * Validates the invocation of functionName has number of arguments between\n * the values provided.\n *\n * Forward the magic \"arguments\" variable as second parameter on which the\n * parameter validation is performed:\n * validateBetweenNumberOfArgs('myFunction', arguments, 2, 3);\n */\n\n\nfunction L(t, e, n, r) {\n if (e.length < n || e.length > r) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires between \" + n + \" and \" + r + \" arguments, but was called with \" + W(e.length, \"argument\") + \".\");\n}\n/**\n * Validates the provided argument is an array and has as least the expected\n * number of elements.\n */\n\n/**\n * Validates the provided positional argument has the native JavaScript type\n * using typeof checks.\n */\n\n\nfunction k(t, e, n, r) {\n C(t, e, B(n) + \" argument\", r);\n}\n/**\n * Validates the provided argument has the native JavaScript type using\n * typeof checks or is undefined.\n */\n\n\nfunction R(t, e, n, r) {\n void 0 !== r && k(t, e, n, r);\n}\n/**\n * Validates the provided named option has the native JavaScript type using\n * typeof checks.\n */\n\n\nfunction O(t, e, n, r) {\n C(t, e, n + \" option\", r);\n}\n/**\n * Validates the provided named option has the native JavaScript type using\n * typeof checks or is undefined.\n */\n\n\nfunction P(t, e, n, r) {\n void 0 !== r && O(t, e, n, r);\n}\n/**\n * Validates that two boolean options are not set at the same time.\n */\n\n/**\n * Validates that the provided named option equals one of the expected values.\n */\n\n/**\n * Validates that the provided named option equals one of the expected values or\n * is undefined.\n */\n\n\nfunction V(t, e, n, r, i) {\n void 0 !== r && function (t, e, n, r, i) {\n for (var o = [], s = 0, u = i; s < u.length; s++) {\n var h = u[s];\n if (h === r) return;\n o.push(M(h));\n }\n\n var f = M(r);\n throw new c(a.INVALID_ARGUMENT, \"Invalid value \" + f + \" provided to function \" + t + '() for option \"' + n + '\". Acceptable values: ' + o.join(\", \"));\n }(t, 0, n, r, i);\n}\n/**\n * Validates that the provided argument is a valid enum.\n *\n * @param functionName Function making the validation call.\n * @param enums Array containing all possible values for the enum.\n * @param position Position of the argument in `functionName`.\n * @param argument Argument to validate.\n * @return The value as T if the argument can be converted.\n */\n\n\nfunction U(t, e, n, r) {\n if (!e.some(function (t) {\n return t === r;\n })) throw new c(a.INVALID_ARGUMENT, \"Invalid value \" + M(r) + \" provided to function \" + t + \"() for its \" + B(n) + \" argument. Acceptable values: \" + e.join(\", \"));\n return r;\n}\n/** Helper to validate the type of a provided input. */\n\n\nfunction C(t, e, n, r) {\n if (!(\"object\" === e ? F(r) : \"non-empty string\" === e ? \"string\" == typeof r && \"\" !== r : typeof r === e)) {\n var i = M(r);\n throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires its \" + n + \" to be of type \" + e + \", but it was: \" + i);\n }\n}\n/**\n * Returns true if it's a non-null object without a custom prototype\n * (i.e. excludes Array, Date, etc.).\n */\n\n\nfunction F(t) {\n return \"object\" == typeof t && null !== t && (Object.getPrototypeOf(t) === Object.prototype || null === Object.getPrototypeOf(t));\n}\n/** Returns a string describing the type / value of the provided input. */\n\n\nfunction M(t) {\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"string\" == typeof t) return t.length > 20 && (t = t.substring(0, 20) + \"...\"), JSON.stringify(t);\n if (\"number\" == typeof t || \"boolean\" == typeof t) return \"\" + t;\n\n if (\"object\" == typeof t) {\n if (t instanceof Array) return \"an array\";\n\n var e =\n /** Hacky method to try to get the constructor name for an object. */\n function (t) {\n if (t.constructor) {\n var e = /function\\s+([^\\s(]+)\\s*\\(/.exec(t.constructor.toString());\n if (e && e.length > 1) return e[1];\n }\n\n return null;\n }(t);\n\n return e ? \"a custom \" + e + \" object\" : \"an object\";\n }\n\n return \"function\" == typeof t ? \"a function\" : y();\n}\n\nfunction q(t, e, n) {\n if (void 0 === n) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires a valid \" + B(e) + \" argument, but it was undefined.\");\n}\n/**\n * Validates the provided positional argument is an object, and its keys and\n * values match the expected keys and types provided in optionTypes.\n */\n\n\nfunction j(t, e, n) {\n _(e, function (e, r) {\n if (n.indexOf(e) < 0) throw new c(a.INVALID_ARGUMENT, \"Unknown option '\" + e + \"' passed to function \" + t + \"(). Available options: \" + n.join(\", \"));\n });\n}\n/**\n * Helper method to throw an error that the provided argument did not pass\n * an instanceof check.\n */\n\n\nfunction G(t, e, n, r) {\n var i = M(r);\n return new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires its \" + B(n) + \" argument to be a \" + e + \", but it was: \" + i);\n}\n\nfunction z(t, e, n) {\n if (n <= 0) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires its \" + B(e) + \" argument to be a positive number, but it was: \" + n + \".\");\n}\n/** Converts a number to its english word representation */\n\n\nfunction B(t) {\n switch (t) {\n case 1:\n return \"first\";\n\n case 2:\n return \"second\";\n\n case 3:\n return \"third\";\n\n default:\n return t + \"th\";\n }\n}\n/**\n * Formats the given word as plural conditionally given the preceding number.\n */\n\n\nfunction W(t, e) {\n return t + \" \" + e + (1 === t ? \"\" : \"s\");\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Generates `nBytes` of random bytes.\n *\n * If `nBytes < 0` , an error will be thrown.\n */\n\n\nfunction K(t) {\n // Polyfills for IE and WebWorker by using `self` and `msCrypto` when `crypto` is not available.\n var e = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n \"undefined\" != typeof self && (self.crypto || self.msCrypto),\n n = new Uint8Array(t);\n if (e && \"function\" == typeof e.getRandomValues) e.getRandomValues(n);else // Falls back to Math.random\n for (var r = 0; r < t; r++) {\n n[r] = Math.floor(256 * Math.random());\n }\n return n;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar Q =\n/** @class */\nfunction () {\n function t() {}\n\n return t.k = function () {\n for ( // Alphanumeric characters\n var t = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", e = Math.floor(256 / t.length) * t.length, n = \"\" // The largest byte value that is a multiple of `char.length`.\n ; n.length < 20;) {\n for (var r = K(40), i = 0; i < r.length; ++i) {\n // Only accept values that are [0, maxMultiple), this ensures they can\n // be evenly mapped to indices of `chars` via a modulo operation.\n n.length < 20 && r[i] < e && (n += t.charAt(r[i] % t.length));\n }\n }\n\n return n;\n }, t;\n}();\n\nfunction H(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n}\n/** Helper to compare arrays using isEqual(). */\n\n\nfunction Y(t, e, n) {\n return t.length === e.length && t.every(function (t, r) {\n return n(t, e[r]);\n });\n}\n/**\n * Returns the immediate lexicographically-following string. This is useful to\n * construct an inclusive range for indexeddb iterators.\n */\n\n\nfunction $(t) {\n // Return the input string, with an additional NUL byte appended.\n return t + \"\\0\";\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Immutable class that represents a \"proto\" byte string.\n *\n * Proto byte strings can either be Base64-encoded strings or Uint8Arrays when\n * sent on the wire. This class abstracts away this differentiation by holding\n * the proto byte string in a common class that must be converted into a string\n * before being sent as a proto.\n */\n\n\nvar X =\n/** @class */\nfunction () {\n function t(t) {\n this.M = t;\n }\n\n return t.fromBase64String = function (e) {\n return new t(atob(e));\n }, t.fromUint8Array = function (e) {\n return new t(\n /**\n * Helper function to convert an Uint8array to a binary string.\n */\n function (t) {\n for (var e = \"\", n = 0; n < t.length; ++n) {\n e += String.fromCharCode(t[n]);\n }\n\n return e;\n }(e));\n }, t.prototype.toBase64 = function () {\n return t = this.M, btoa(t);\n /** Converts a binary string to a Base64 encoded string. */\n\n var t;\n /** True if and only if the Base64 conversion functions are available. */\n }, t.prototype.toUint8Array = function () {\n return function (t) {\n for (var e = new Uint8Array(t.length), n = 0; n < t.length; n++) {\n e[n] = t.charCodeAt(n);\n }\n\n return e;\n }(this.M);\n }, t.prototype.O = function () {\n return 2 * this.M.length;\n }, t.prototype.L = function (t) {\n return H(this.M, t.M);\n }, t.prototype.isEqual = function (t) {\n return this.M === t.M;\n }, t;\n}();\n\nX.B = new X(\"\");\n\nvar J =\n/** @class */\nfunction () {\n function t(t) {\n this.q = t;\n }\n /**\n * Creates a new `Bytes` object from the given Base64 string, converting it to\n * bytes.\n *\n * @param base64 The Base64 string used to create the `Bytes` object.\n */\n\n\n return t.fromBase64String = function (e) {\n try {\n return new t(X.fromBase64String(e));\n } catch (e) {\n throw new c(a.INVALID_ARGUMENT, \"Failed to construct Bytes from Base64 string: \" + e);\n }\n },\n /**\n * Creates a new `Bytes` object from the given Uint8Array.\n *\n * @param array The Uint8Array used to create the `Bytes` object.\n */\n t.fromUint8Array = function (e) {\n return new t(X.fromUint8Array(e));\n },\n /**\n * Returns the underlying bytes as a Base64-encoded string.\n *\n * @return The Base64-encoded string created from the `Bytes` object.\n */\n t.prototype.toBase64 = function () {\n return this.q.toBase64();\n },\n /**\n * Returns the underlying bytes in a new `Uint8Array`.\n *\n * @return The Uint8Array created from the `Bytes` object.\n */\n t.prototype.toUint8Array = function () {\n return this.q.toUint8Array();\n },\n /**\n * Returns a string representation of the `Bytes` object.\n *\n * @return A string representation of the `Bytes` object.\n */\n t.prototype.toString = function () {\n return \"Bytes(base64: \" + this.toBase64() + \")\";\n },\n /**\n * Returns true if this `Bytes` object is equal to the provided one.\n *\n * @param other The `Bytes` object to compare against.\n * @return true if this `Bytes` object is equal to the provided one.\n */\n t.prototype.isEqual = function (t) {\n return this.q.isEqual(t.q);\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Helper function to assert Uint8Array is available at runtime. */\n\n\nfunction Z() {\n if (\"undefined\" == typeof Uint8Array) throw new c(a.UNIMPLEMENTED, \"Uint8Arrays are not available in this environment.\");\n}\n/** Helper function to assert Base64 functions are available at runtime. */\n\n\nfunction tt() {\n if (\"undefined\" == typeof atob) throw new c(a.UNIMPLEMENTED, \"Blobs are unavailable in Firestore in this environment.\");\n}\n/**\n * Immutable class holding a blob (binary data).\n *\n * This class is directly exposed in the public API. It extends the Bytes class\n * of the firestore-exp API to support `instanceof Bytes` checks during user\n * data conversion.\n *\n * Note that while you can't hide the constructor in JavaScript code, we are\n * using the hack above to make sure no-one outside this module can call it.\n */\n\n\nvar et =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.fromBase64String = function (t) {\n D(\"Blob.fromBase64String\", arguments, 1), k(\"Blob.fromBase64String\", \"string\", 1, t), tt();\n\n try {\n return new n(X.fromBase64String(t));\n } catch (t) {\n throw new c(a.INVALID_ARGUMENT, \"Failed to construct Blob from Base64 string: \" + t);\n }\n }, n.fromUint8Array = function (t) {\n if (D(\"Blob.fromUint8Array\", arguments, 1), Z(), !(t instanceof Uint8Array)) throw G(\"Blob.fromUint8Array\", \"Uint8Array\", 1, t);\n return new n(X.fromUint8Array(t));\n }, n.prototype.toBase64 = function () {\n return D(\"Blob.toBase64\", arguments, 0), tt(), e.prototype.toBase64.call(this);\n }, n.prototype.toUint8Array = function () {\n return D(\"Blob.toUint8Array\", arguments, 0), Z(), e.prototype.toUint8Array.call(this);\n }, n.prototype.toString = function () {\n return \"Blob(base64: \" + this.toBase64() + \")\";\n }, n;\n}(J),\n nt =\n/**\n * Constructs a DatabaseInfo using the provided host, databaseId and\n * persistenceKey.\n *\n * @param databaseId The database to use.\n * @param persistenceKey A unique identifier for this Firestore's local\n * storage (used in conjunction with the databaseId).\n * @param host The Firestore backend host to connect to.\n * @param ssl Whether to use SSL when connecting.\n * @param forceLongPolling Whether to use the forceLongPolling option\n * when using WebChannel as the network transport.\n * @param autoDetectLongPolling Whether to use the detectBufferingProxy\n * option when using WebChannel as the network transport.\n */\nfunction nt(t, e, n, r, i, o) {\n this.U = t, this.persistenceKey = e, this.host = n, this.ssl = r, this.forceLongPolling = i, this.W = o;\n},\n rt =\n/** @class */\nfunction () {\n function t(t, e) {\n this.projectId = t, this.database = e || \"(default)\";\n }\n\n return Object.defineProperty(t.prototype, \"j\", {\n get: function get() {\n return \"(default)\" === this.database;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function (e) {\n return e instanceof t && e.projectId === this.projectId && e.database === this.database;\n }, t.prototype.L = function (t) {\n return H(this.projectId, t.projectId) || H(this.database, t.database);\n }, t;\n}(),\n it =\n/** @class */\nfunction () {\n function t(t, e) {\n this.K = t, this.G = e,\n /**\n * The inner map for a key -> value pair. Due to the possibility of\n * collisions we keep a list of entries that we do a linear search through\n * to find an actual match. Note that collisions should be rare, so we still\n * expect near constant time lookups in practice.\n */\n this.H = {}\n /** Get a value for this key, or undefined if it does not exist. */\n ;\n }\n\n return t.prototype.get = function (t) {\n var e = this.K(t),\n n = this.H[e];\n if (void 0 !== n) for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r],\n s = o[0],\n u = o[1];\n if (this.G(s, t)) return u;\n }\n }, t.prototype.has = function (t) {\n return void 0 !== this.get(t);\n },\n /** Put this key and value in the map. */\n t.prototype.set = function (t, e) {\n var n = this.K(t),\n r = this.H[n];\n\n if (void 0 !== r) {\n for (var i = 0; i < r.length; i++) {\n if (this.G(r[i][0], t)) return void (r[i] = [t, e]);\n }\n\n r.push([t, e]);\n } else this.H[n] = [[t, e]];\n },\n /**\n * Remove this key from the map. Returns a boolean if anything was deleted.\n */\n t.prototype.delete = function (t) {\n var e = this.K(t),\n n = this.H[e];\n if (void 0 === n) return !1;\n\n for (var r = 0; r < n.length; r++) {\n if (this.G(n[r][0], t)) return 1 === n.length ? delete this.H[e] : n.splice(r, 1), !0;\n }\n\n return !1;\n }, t.prototype.forEach = function (t) {\n _(this.H, function (e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r],\n s = o[0],\n u = o[1];\n t(s, u);\n }\n });\n }, t.prototype.m = function () {\n return b(this.H);\n }, t;\n}(),\n ot =\n/** @class */\nfunction () {\n /**\n * Creates a new timestamp.\n *\n * @param seconds The number of seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n * @param nanoseconds The non-negative fractions of a second at nanosecond\n * resolution. Negative second values with fractions must still have\n * non-negative nanoseconds values that count forward in time. Must be\n * from 0 to 999,999,999 inclusive.\n */\n function t(t, e) {\n if (this.seconds = t, this.nanoseconds = e, e < 0) throw new c(a.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (e >= 1e9) throw new c(a.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (t < -62135596800) throw new c(a.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t); // This will break in the year 10,000.\n\n if (t >= 253402300800) throw new c(a.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n }\n /**\n * Creates a new timestamp with the current date, with millisecond precision.\n *\n * @return a new timestamp representing the current date.\n */\n\n\n return t.now = function () {\n return t.fromMillis(Date.now());\n },\n /**\n * Creates a new timestamp from the given date.\n *\n * @param date The date to initialize the `Timestamp` from.\n * @return A new `Timestamp` representing the same point in time as the given\n * date.\n */\n t.fromDate = function (e) {\n return t.fromMillis(e.getTime());\n },\n /**\n * Creates a new timestamp from the given number of milliseconds.\n *\n * @param milliseconds Number of milliseconds since Unix epoch\n * 1970-01-01T00:00:00Z.\n * @return A new `Timestamp` representing the same point in time as the given\n * number of milliseconds.\n */\n t.fromMillis = function (e) {\n var n = Math.floor(e / 1e3);\n return new t(n, 1e6 * (e - 1e3 * n));\n },\n /**\n * Converts a `Timestamp` to a JavaScript `Date` object. This conversion causes\n * a loss of precision since `Date` objects only support millisecond precision.\n *\n * @return JavaScript `Date` object representing the same point in time as\n * this `Timestamp`, with millisecond precision.\n */\n t.prototype.toDate = function () {\n return new Date(this.toMillis());\n },\n /**\n * Converts a `Timestamp` to a numeric timestamp (in milliseconds since\n * epoch). This operation causes a loss of precision.\n *\n * @return The point in time corresponding to this timestamp, represented as\n * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.\n */\n t.prototype.toMillis = function () {\n return 1e3 * this.seconds + this.nanoseconds / 1e6;\n }, t.prototype.Y = function (t) {\n return this.seconds === t.seconds ? H(this.nanoseconds, t.nanoseconds) : H(this.seconds, t.seconds);\n },\n /**\n * Returns true if this `Timestamp` is equal to the provided one.\n *\n * @param other The `Timestamp` to compare against.\n * @return true if this `Timestamp` is equal to the provided one.\n */\n t.prototype.isEqual = function (t) {\n return t.seconds === this.seconds && t.nanoseconds === this.nanoseconds;\n }, t.prototype.toString = function () {\n return \"Timestamp(seconds=\" + this.seconds + \", nanoseconds=\" + this.nanoseconds + \")\";\n }, t.prototype.toJSON = function () {\n return {\n seconds: this.seconds,\n nanoseconds: this.nanoseconds\n };\n },\n /**\n * Converts this object to a primitive string, which allows Timestamp objects to be compared\n * using the `>`, `<=`, `>=` and `>` operators.\n */\n t.prototype.valueOf = function () {\n // This method returns a string of the form . where is\n // translated to have a non-negative value and both and are left-padded\n // with zeroes to be a consistent length. Strings with this format then have a lexiographical\n // ordering that matches the expected ordering. The translation is done to avoid\n // having a leading negative sign (i.e. a leading '-' character) in its string representation,\n // which would affect its lexiographical ordering.\n var t = this.seconds - -62135596800; // Note: Up to 12 decimal digits are required to represent all valid 'seconds' values.\n\n return String(t).padStart(12, \"0\") + \".\" + String(this.nanoseconds).padStart(9, \"0\");\n }, t;\n}(),\n st =\n/** @class */\nfunction () {\n function t(t) {\n this.timestamp = t;\n }\n\n return t.J = function (e) {\n return new t(e);\n }, t.min = function () {\n return new t(new ot(0, 0));\n }, t.prototype.L = function (t) {\n return this.timestamp.Y(t.timestamp);\n }, t.prototype.isEqual = function (t) {\n return this.timestamp.isEqual(t.timestamp);\n },\n /** Returns a number representation of the version for use in spec tests. */\n t.prototype.X = function () {\n // Convert to microseconds.\n return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3;\n }, t.prototype.toString = function () {\n return \"SnapshotVersion(\" + this.timestamp.toString() + \")\";\n }, t.prototype.Z = function () {\n return this.timestamp;\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns whether a variable is either undefined or null.\n */\n\n\nfunction ut(t) {\n return null == t;\n}\n/** Returns whether the value represents -0. */\n\n\nfunction at(t) {\n // Detect if the value is -0.0. Based on polyfill from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n return 0 === t && 1 / t == -1 / 0;\n}\n/**\n * Returns whether a value is an integer and in the safe integer range\n * @param value The value to test for being an integer and in the safe range\n */\n\n\nfunction ct(t) {\n return \"number\" == typeof t && Number.isInteger(t) && !at(t) && t <= Number.MAX_SAFE_INTEGER && t >= Number.MIN_SAFE_INTEGER;\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Visible for testing\n\n\nvar ht = function ht(t, e, n, r, i, o, s) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), this.path = t, this.collectionGroup = e, this.orderBy = n, this.filters = r, this.limit = i, this.startAt = o, this.endAt = s, this.tt = null;\n};\n/**\n * Initializes a Target with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n *\n * NOTE: you should always construct `Target` from `Query.toTarget` instead of\n * using this factory method, because `Query` provides an implicit `orderBy`\n * property.\n */\n\n\nfunction ft(t, e, n, r, i, o, s) {\n return void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), new ht(t, e, n, r, i, o, s);\n}\n\nfunction lt(t) {\n var e = m(t);\n\n if (null === e.tt) {\n var n = e.path.R();\n null !== e.collectionGroup && (n += \"|cg:\" + e.collectionGroup), n += \"|f:\", n += e.filters.map(function (t) {\n return function (t) {\n // TODO(b/29183165): Technically, this won't be unique if two values have\n // the same description, such as the int 3 and the string \"3\". So we should\n // add the types in here somehow, too.\n return t.field.R() + t.op.toString() + re(t.value);\n }(t);\n }).join(\",\"), n += \"|ob:\", n += e.orderBy.map(function (t) {\n return (e = t).field.R() + e.dir;\n var e;\n }).join(\",\"), ut(e.limit) || (n += \"|l:\", n += e.limit), e.startAt && (n += \"|lb:\", n += ar(e.startAt)), e.endAt && (n += \"|ub:\", n += ar(e.endAt)), e.tt = n;\n }\n\n return e.tt;\n}\n\nfunction pt(t, e) {\n if (t.limit !== e.limit) return !1;\n if (t.orderBy.length !== e.orderBy.length) return !1;\n\n for (var n = 0; n < t.orderBy.length; n++) {\n if (!pr(t.orderBy[n], e.orderBy[n])) return !1;\n }\n\n if (t.filters.length !== e.filters.length) return !1;\n\n for (var r = 0; r < t.filters.length; r++) {\n if (i = t.filters[r], o = e.filters[r], i.op !== o.op || !i.field.isEqual(o.field) || !Zt(i.value, o.value)) return !1;\n }\n\n var i, o;\n return t.collectionGroup === e.collectionGroup && !!t.path.isEqual(e.path) && !!hr(t.startAt, e.startAt) && hr(t.endAt, e.endAt);\n}\n\nfunction dt(t) {\n return A.F(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An immutable set of metadata that the local store tracks for each target.\n */\n\n\nvar vt,\n yt,\n gt =\n/** @class */\nfunction () {\n function t(\n /** The target being listened to. */\n t,\n /**\n * The target ID to which the target corresponds; Assigned by the\n * LocalStore for user listens and by the SyncEngine for limbo watches.\n */\n e,\n /** The purpose of the target. */\n n,\n /**\n * The sequence number of the last transaction during which this target data\n * was modified.\n */\n r,\n /** The latest snapshot version seen for this target. */\n i\n /**\n * The maximum snapshot version at which the associated view\n * contained no limbo documents.\n */\n , o\n /**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */\n , s) {\n void 0 === i && (i = st.min()), void 0 === o && (o = st.min()), void 0 === s && (s = X.B), this.target = t, this.targetId = e, this.et = n, this.sequenceNumber = r, this.nt = i, this.lastLimboFreeSnapshotVersion = o, this.resumeToken = s;\n }\n /** Creates a new target data instance with an updated sequence number. */\n\n\n return t.prototype.st = function (e) {\n return new t(this.target, this.targetId, this.et, e, this.nt, this.lastLimboFreeSnapshotVersion, this.resumeToken);\n },\n /**\n * Creates a new target data instance with an updated resume token and\n * snapshot version.\n */\n t.prototype.it = function (e, n) {\n return new t(this.target, this.targetId, this.et, this.sequenceNumber, n, this.lastLimboFreeSnapshotVersion, e);\n },\n /**\n * Creates a new target data instance with an updated last limbo free\n * snapshot version number.\n */\n t.prototype.rt = function (e) {\n return new t(this.target, this.targetId, this.et, this.sequenceNumber, this.nt, e, this.resumeToken);\n }, t;\n}(),\n mt = // TODO(b/33078163): just use simplest form of existence filter for now\nfunction mt(t) {\n this.count = t;\n};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a non-write operation.\n *\n * See isPermanentWriteError for classifying write errors.\n */\n\n\nfunction wt(t) {\n switch (t) {\n case a.OK:\n return y();\n\n case a.CANCELLED:\n case a.UNKNOWN:\n case a.DEADLINE_EXCEEDED:\n case a.RESOURCE_EXHAUSTED:\n case a.INTERNAL:\n case a.UNAVAILABLE: // Unauthenticated means something went wrong with our token and we need\n // to retry with new credentials which will happen automatically.\n\n case a.UNAUTHENTICATED:\n return !1;\n\n case a.INVALID_ARGUMENT:\n case a.NOT_FOUND:\n case a.ALREADY_EXISTS:\n case a.PERMISSION_DENIED:\n case a.FAILED_PRECONDITION: // Aborted might be retried in some scenarios, but that is dependant on\n // the context and should handled individually by the calling code.\n // See https://cloud.google.com/apis/design/errors.\n\n case a.ABORTED:\n case a.OUT_OF_RANGE:\n case a.UNIMPLEMENTED:\n case a.DATA_LOSS:\n return !0;\n\n default:\n return y();\n }\n}\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a write operation.\n *\n * Write operations must be handled specially because as of b/119437764, ABORTED\n * errors on the write stream should be retried too (even though ABORTED errors\n * are not generally retryable).\n *\n * Note that during the initial handshake on the write stream an ABORTED error\n * signals that we should discard our stream token (i.e. it is permanent). This\n * means a handshake error should be classified with isPermanentError, above.\n */\n\n/**\n * Maps an error Code from GRPC status code number, like 0, 1, or 14. These\n * are not the same as HTTP status codes.\n *\n * @returns The Code equivalent to the given GRPC status code. Fails if there\n * is no match.\n */\n\n\nfunction _t(t) {\n if (void 0 === t) // This shouldn't normally happen, but in certain error cases (like trying\n // to send invalid proto messages) we may get an error with no GRPC code.\n return p(\"GRPC error has no .code\"), a.UNKNOWN;\n\n switch (t) {\n case vt.OK:\n return a.OK;\n\n case vt.CANCELLED:\n return a.CANCELLED;\n\n case vt.UNKNOWN:\n return a.UNKNOWN;\n\n case vt.DEADLINE_EXCEEDED:\n return a.DEADLINE_EXCEEDED;\n\n case vt.RESOURCE_EXHAUSTED:\n return a.RESOURCE_EXHAUSTED;\n\n case vt.INTERNAL:\n return a.INTERNAL;\n\n case vt.UNAVAILABLE:\n return a.UNAVAILABLE;\n\n case vt.UNAUTHENTICATED:\n return a.UNAUTHENTICATED;\n\n case vt.INVALID_ARGUMENT:\n return a.INVALID_ARGUMENT;\n\n case vt.NOT_FOUND:\n return a.NOT_FOUND;\n\n case vt.ALREADY_EXISTS:\n return a.ALREADY_EXISTS;\n\n case vt.PERMISSION_DENIED:\n return a.PERMISSION_DENIED;\n\n case vt.FAILED_PRECONDITION:\n return a.FAILED_PRECONDITION;\n\n case vt.ABORTED:\n return a.ABORTED;\n\n case vt.OUT_OF_RANGE:\n return a.OUT_OF_RANGE;\n\n case vt.UNIMPLEMENTED:\n return a.UNIMPLEMENTED;\n\n case vt.DATA_LOSS:\n return a.DATA_LOSS;\n\n default:\n return y();\n }\n}\n/**\n * Converts an HTTP response's error status to the equivalent error code.\n *\n * @param status An HTTP error response status (\"FAILED_PRECONDITION\",\n * \"UNKNOWN\", etc.)\n * @returns The equivalent Code. Non-matching responses are mapped to\n * Code.UNKNOWN.\n */\n\n\n(yt = vt || (vt = {}))[yt.OK = 0] = \"OK\", yt[yt.CANCELLED = 1] = \"CANCELLED\", yt[yt.UNKNOWN = 2] = \"UNKNOWN\", yt[yt.INVALID_ARGUMENT = 3] = \"INVALID_ARGUMENT\", yt[yt.DEADLINE_EXCEEDED = 4] = \"DEADLINE_EXCEEDED\", yt[yt.NOT_FOUND = 5] = \"NOT_FOUND\", yt[yt.ALREADY_EXISTS = 6] = \"ALREADY_EXISTS\", yt[yt.PERMISSION_DENIED = 7] = \"PERMISSION_DENIED\", yt[yt.UNAUTHENTICATED = 16] = \"UNAUTHENTICATED\", yt[yt.RESOURCE_EXHAUSTED = 8] = \"RESOURCE_EXHAUSTED\", yt[yt.FAILED_PRECONDITION = 9] = \"FAILED_PRECONDITION\", yt[yt.ABORTED = 10] = \"ABORTED\", yt[yt.OUT_OF_RANGE = 11] = \"OUT_OF_RANGE\", yt[yt.UNIMPLEMENTED = 12] = \"UNIMPLEMENTED\", yt[yt.INTERNAL = 13] = \"INTERNAL\", yt[yt.UNAVAILABLE = 14] = \"UNAVAILABLE\", yt[yt.DATA_LOSS = 15] = \"DATA_LOSS\";\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// An immutable sorted map implementation, based on a Left-leaning Red-Black\n// tree.\n\nvar bt =\n/** @class */\nfunction () {\n function t(t, e) {\n this.i = t, this.root = e || Et.EMPTY;\n } // Returns a copy of the map, with the specified key/value added or replaced.\n\n\n return t.prototype.ot = function (e, n) {\n return new t(this.i, this.root.ot(e, n, this.i).copy(null, null, Et.at, null, null));\n }, // Returns a copy of the map, with the specified key removed.\n t.prototype.remove = function (e) {\n return new t(this.i, this.root.remove(e, this.i).copy(null, null, Et.at, null, null));\n }, // Returns the value of the node with the given key, or null.\n t.prototype.get = function (t) {\n for (var e = this.root; !e.m();) {\n var n = this.i(t, e.key);\n if (0 === n) return e.value;\n n < 0 ? e = e.left : n > 0 && (e = e.right);\n }\n\n return null;\n }, // Returns the index of the element in this sorted map, or -1 if it doesn't\n // exist.\n t.prototype.indexOf = function (t) {\n for ( // Number of nodes that were pruned when descending right\n var e = 0, n = this.root; !n.m();) {\n var r = this.i(t, n.key);\n if (0 === r) return e + n.left.size;\n r < 0 ? n = n.left : ( // Count all nodes left of the node plus the node itself\n e += n.left.size + 1, n = n.right);\n } // Node not found\n\n\n return -1;\n }, t.prototype.m = function () {\n return this.root.m();\n }, Object.defineProperty(t.prototype, \"size\", {\n // Returns the total number of nodes in the map.\n get: function get() {\n return this.root.size;\n },\n enumerable: !1,\n configurable: !0\n }), // Returns the minimum key in the map.\n t.prototype.ct = function () {\n return this.root.ct();\n }, // Returns the maximum key in the map.\n t.prototype.ut = function () {\n return this.root.ut();\n }, // Traverses the map in key order and calls the specified action function\n // for each key/value pair. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.ht = function (t) {\n return this.root.ht(t);\n }, t.prototype.forEach = function (t) {\n this.ht(function (e, n) {\n return t(e, n), !1;\n });\n }, t.prototype.toString = function () {\n var t = [];\n return this.ht(function (e, n) {\n return t.push(e + \":\" + n), !1;\n }), \"{\" + t.join(\", \") + \"}\";\n }, // Traverses the map in reverse key order and calls the specified action\n // function for each key/value pair. If action returns true, traversal is\n // aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.lt = function (t) {\n return this.root.lt(t);\n }, // Returns an iterator over the SortedMap.\n t.prototype._t = function () {\n return new It(this.root, null, this.i, !1);\n }, t.prototype.ft = function (t) {\n return new It(this.root, t, this.i, !1);\n }, t.prototype.dt = function () {\n return new It(this.root, null, this.i, !0);\n }, t.prototype.wt = function (t) {\n return new It(this.root, t, this.i, !0);\n }, t;\n}(),\n It =\n/** @class */\nfunction () {\n function t(t, e, n, r) {\n this.Tt = r, this.Et = [];\n\n for (var i = 1; !t.m();) {\n if (i = e ? n(t.key, e) : 1, // flip the comparison if we're going in reverse\n r && (i *= -1), i < 0) // This node is less than our start key. ignore it\n t = this.Tt ? t.left : t.right;else {\n if (0 === i) {\n // This node is exactly equal to our start key. Push it on the stack,\n // but stop iterating;\n this.Et.push(t);\n break;\n } // This node is greater than our start key, add it to the stack and move\n // to the next one\n\n\n this.Et.push(t), t = this.Tt ? t.right : t.left;\n }\n }\n }\n\n return t.prototype.It = function () {\n var t = this.Et.pop(),\n e = {\n key: t.key,\n value: t.value\n };\n if (this.Tt) for (t = t.left; !t.m();) {\n this.Et.push(t), t = t.right;\n } else for (t = t.right; !t.m();) {\n this.Et.push(t), t = t.left;\n }\n return e;\n }, t.prototype.At = function () {\n return this.Et.length > 0;\n }, t.prototype.Rt = function () {\n if (0 === this.Et.length) return null;\n var t = this.Et[this.Et.length - 1];\n return {\n key: t.key,\n value: t.value\n };\n }, t;\n}(),\n Et =\n/** @class */\nfunction () {\n function t(e, n, r, i, o) {\n this.key = e, this.value = n, this.color = null != r ? r : t.RED, this.left = null != i ? i : t.EMPTY, this.right = null != o ? o : t.EMPTY, this.size = this.left.size + 1 + this.right.size;\n } // Returns a copy of the current node, optionally replacing pieces of it.\n\n\n return t.prototype.copy = function (e, n, r, i, o) {\n return new t(null != e ? e : this.key, null != n ? n : this.value, null != r ? r : this.color, null != i ? i : this.left, null != o ? o : this.right);\n }, t.prototype.m = function () {\n return !1;\n }, // Traverses the tree in key order and calls the specified action function\n // for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.ht = function (t) {\n return this.left.ht(t) || t(this.key, this.value) || this.right.ht(t);\n }, // Traverses the tree in reverse key order and calls the specified action\n // function for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.lt = function (t) {\n return this.right.lt(t) || t(this.key, this.value) || this.left.lt(t);\n }, // Returns the minimum node in the tree.\n t.prototype.min = function () {\n return this.left.m() ? this : this.left.min();\n }, // Returns the maximum key in the tree.\n t.prototype.ct = function () {\n return this.min().key;\n }, // Returns the maximum key in the tree.\n t.prototype.ut = function () {\n return this.right.m() ? this.key : this.right.ut();\n }, // Returns new tree, with the key/value added.\n t.prototype.ot = function (t, e, n) {\n var r = this,\n i = n(t, r.key);\n return (r = i < 0 ? r.copy(null, null, null, r.left.ot(t, e, n), null) : 0 === i ? r.copy(null, e, null, null, null) : r.copy(null, null, null, null, r.right.ot(t, e, n))).gt();\n }, t.prototype.Pt = function () {\n if (this.left.m()) return t.EMPTY;\n var e = this;\n return e.left.yt() || e.left.left.yt() || (e = e.Vt()), (e = e.copy(null, null, null, e.left.Pt(), null)).gt();\n }, // Returns new tree, with the specified item removed.\n t.prototype.remove = function (e, n) {\n var r,\n i = this;\n if (n(e, i.key) < 0) i.left.m() || i.left.yt() || i.left.left.yt() || (i = i.Vt()), i = i.copy(null, null, null, i.left.remove(e, n), null);else {\n if (i.left.yt() && (i = i.bt()), i.right.m() || i.right.yt() || i.right.left.yt() || (i = i.vt()), 0 === n(e, i.key)) {\n if (i.right.m()) return t.EMPTY;\n r = i.right.min(), i = i.copy(r.key, r.value, null, null, i.right.Pt());\n }\n\n i = i.copy(null, null, null, null, i.right.remove(e, n));\n }\n return i.gt();\n }, t.prototype.yt = function () {\n return this.color;\n }, // Returns new tree after performing any needed rotations.\n t.prototype.gt = function () {\n var t = this;\n return t.right.yt() && !t.left.yt() && (t = t.St()), t.left.yt() && t.left.left.yt() && (t = t.bt()), t.left.yt() && t.right.yt() && (t = t.Dt()), t;\n }, t.prototype.Vt = function () {\n var t = this.Dt();\n return t.right.left.yt() && (t = (t = (t = t.copy(null, null, null, null, t.right.bt())).St()).Dt()), t;\n }, t.prototype.vt = function () {\n var t = this.Dt();\n return t.left.left.yt() && (t = (t = t.bt()).Dt()), t;\n }, t.prototype.St = function () {\n var e = this.copy(null, null, t.RED, null, this.right.left);\n return this.right.copy(null, null, this.color, e, null);\n }, t.prototype.bt = function () {\n var e = this.copy(null, null, t.RED, this.left.right, null);\n return this.left.copy(null, null, this.color, null, e);\n }, t.prototype.Dt = function () {\n var t = this.left.copy(null, null, !this.left.color, null, null),\n e = this.right.copy(null, null, !this.right.color, null, null);\n return this.copy(null, null, !this.color, t, e);\n }, // For testing.\n t.prototype.Ct = function () {\n var t = this.Nt();\n return Math.pow(2, t) <= this.size + 1;\n }, // In a balanced RB tree, the black-depth (number of black nodes) from root to\n // leaves is equal on both sides. This function verifies that or asserts.\n t.prototype.Nt = function () {\n if (this.yt() && this.left.yt()) throw y();\n if (this.right.yt()) throw y();\n var t = this.left.Nt();\n if (t !== this.right.Nt()) throw y();\n return t + (this.yt() ? 0 : 1);\n }, t;\n}(); // end SortedMap\n// An iterator over an LLRBNode.\n// end LLRBNode\n// Empty node is shared between all LLRB trees.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nEt.EMPTY = null, Et.RED = !0, Et.at = !1, // end LLRBEmptyNode\nEt.EMPTY = new (\n/** @class */\nfunction () {\n function t() {\n this.size = 0;\n }\n\n return Object.defineProperty(t.prototype, \"key\", {\n get: function get() {\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"value\", {\n get: function get() {\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"color\", {\n get: function get() {\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"left\", {\n get: function get() {\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"right\", {\n get: function get() {\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), // Returns a copy of the current node.\n t.prototype.copy = function (t, e, n, r, i) {\n return this;\n }, // Returns a copy of the tree, with the specified key/value added.\n t.prototype.ot = function (t, e, n) {\n return new Et(t, e);\n }, // Returns a copy of the tree, with the specified key removed.\n t.prototype.remove = function (t, e) {\n return this;\n }, t.prototype.m = function () {\n return !0;\n }, t.prototype.ht = function (t) {\n return !1;\n }, t.prototype.lt = function (t) {\n return !1;\n }, t.prototype.ct = function () {\n return null;\n }, t.prototype.ut = function () {\n return null;\n }, t.prototype.yt = function () {\n return !1;\n }, // For testing.\n t.prototype.Ct = function () {\n return !0;\n }, t.prototype.Nt = function () {\n return 0;\n }, t;\n}())();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * SortedSet is an immutable (copy-on-write) collection that holds elements\n * in order specified by the provided comparator.\n *\n * NOTE: if provided comparator returns 0 for two elements, we consider them to\n * be equal!\n */\n\nvar Tt =\n/** @class */\nfunction () {\n function t(t) {\n this.i = t, this.data = new bt(this.i);\n }\n\n return t.prototype.has = function (t) {\n return null !== this.data.get(t);\n }, t.prototype.first = function () {\n return this.data.ct();\n }, t.prototype.last = function () {\n return this.data.ut();\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function get() {\n return this.data.size;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.indexOf = function (t) {\n return this.data.indexOf(t);\n },\n /** Iterates elements in order defined by \"comparator\" */\n t.prototype.forEach = function (t) {\n this.data.ht(function (e, n) {\n return t(e), !1;\n });\n },\n /** Iterates over `elem`s such that: range[0] <= elem < range[1]. */\n t.prototype.Ft = function (t, e) {\n for (var n = this.data.ft(t[0]); n.At();) {\n var r = n.It();\n if (this.i(r.key, t[1]) >= 0) return;\n e(r.key);\n }\n },\n /**\n * Iterates over `elem`s such that: start <= elem until false is returned.\n */\n t.prototype.xt = function (t, e) {\n var n;\n\n for (n = void 0 !== e ? this.data.ft(e) : this.data._t(); n.At();) {\n if (!t(n.It().key)) return;\n }\n },\n /** Finds the least element greater than or equal to `elem`. */\n t.prototype.$t = function (t) {\n var e = this.data.ft(t);\n return e.At() ? e.It().key : null;\n }, t.prototype._t = function () {\n return new Nt(this.data._t());\n }, t.prototype.ft = function (t) {\n return new Nt(this.data.ft(t));\n },\n /** Inserts or updates an element */\n t.prototype.add = function (t) {\n return this.copy(this.data.remove(t).ot(t, !0));\n },\n /** Deletes an element */\n t.prototype.delete = function (t) {\n return this.has(t) ? this.copy(this.data.remove(t)) : this;\n }, t.prototype.m = function () {\n return this.data.m();\n }, t.prototype.kt = function (t) {\n var e = this; // Make sure `result` always refers to the larger one of the two sets.\n\n return e.size < t.size && (e = t, t = this), t.forEach(function (t) {\n e = e.add(t);\n }), e;\n }, t.prototype.isEqual = function (e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n\n for (var n = this.data._t(), r = e.data._t(); n.At();) {\n var i = n.It().key,\n o = r.It().key;\n if (0 !== this.i(i, o)) return !1;\n }\n\n return !0;\n }, t.prototype.A = function () {\n var t = [];\n return this.forEach(function (e) {\n t.push(e);\n }), t;\n }, t.prototype.toString = function () {\n var t = [];\n return this.forEach(function (e) {\n return t.push(e);\n }), \"SortedSet(\" + t.toString() + \")\";\n }, t.prototype.copy = function (e) {\n var n = new t(this.i);\n return n.data = e, n;\n }, t;\n}(),\n Nt =\n/** @class */\nfunction () {\n function t(t) {\n this.Mt = t;\n }\n\n return t.prototype.It = function () {\n return this.Mt.It().key;\n }, t.prototype.At = function () {\n return this.Mt.At();\n }, t;\n}(),\n At = new bt(A.i);\n\nfunction St() {\n return At;\n}\n\nfunction Dt() {\n return St();\n}\n\nvar xt = new bt(A.i);\n\nfunction Lt() {\n return xt;\n}\n\nvar kt = new bt(A.i),\n Rt = new Tt(A.i);\n\nfunction Ot() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n for (var n = Rt, r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n n = n.add(o);\n }\n\n return n;\n}\n\nvar Pt = new Tt(H);\n\nfunction Vt() {\n return Pt;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * DocumentSet is an immutable (copy-on-write) collection that holds documents\n * in order specified by the provided comparator. We always add a document key\n * comparator on top of what is provided to guarantee document equality based on\n * the key.\n */\n\n\nvar Ut =\n/** @class */\nfunction () {\n /** The default ordering is by key if the comparator is omitted */\n function t(t) {\n // We are adding document key comparator to the end as it's the only\n // guaranteed unique property of a document.\n this.i = t ? function (e, n) {\n return t(e, n) || A.i(e.key, n.key);\n } : function (t, e) {\n return A.i(t.key, e.key);\n }, this.Ot = Lt(), this.Lt = new bt(this.i)\n /**\n * Returns an empty copy of the existing DocumentSet, using the same\n * comparator.\n */\n ;\n }\n\n return t.Bt = function (e) {\n return new t(e.i);\n }, t.prototype.has = function (t) {\n return null != this.Ot.get(t);\n }, t.prototype.get = function (t) {\n return this.Ot.get(t);\n }, t.prototype.first = function () {\n return this.Lt.ct();\n }, t.prototype.last = function () {\n return this.Lt.ut();\n }, t.prototype.m = function () {\n return this.Lt.m();\n },\n /**\n * Returns the index of the provided key in the document set, or -1 if the\n * document key is not present in the set;\n */\n t.prototype.indexOf = function (t) {\n var e = this.Ot.get(t);\n return e ? this.Lt.indexOf(e) : -1;\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function get() {\n return this.Lt.size;\n },\n enumerable: !1,\n configurable: !0\n }),\n /** Iterates documents in order defined by \"comparator\" */\n t.prototype.forEach = function (t) {\n this.Lt.ht(function (e, n) {\n return t(e), !1;\n });\n },\n /** Inserts or updates a document with the same key */\n t.prototype.add = function (t) {\n // First remove the element if we have it.\n var e = this.delete(t.key);\n return e.copy(e.Ot.ot(t.key, t), e.Lt.ot(t, null));\n },\n /** Deletes a document with a given key */\n t.prototype.delete = function (t) {\n var e = this.get(t);\n return e ? this.copy(this.Ot.remove(t), this.Lt.remove(e)) : this;\n }, t.prototype.isEqual = function (e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n\n for (var n = this.Lt._t(), r = e.Lt._t(); n.At();) {\n var i = n.It().key,\n o = r.It().key;\n if (!i.isEqual(o)) return !1;\n }\n\n return !0;\n }, t.prototype.toString = function () {\n var t = [];\n return this.forEach(function (e) {\n t.push(e.toString());\n }), 0 === t.length ? \"DocumentSet ()\" : \"DocumentSet (\\n \" + t.join(\" \\n\") + \"\\n)\";\n }, t.prototype.copy = function (e, n) {\n var r = new t();\n return r.i = this.i, r.Ot = e, r.Lt = n, r;\n }, t;\n}(),\n Ct =\n/** @class */\nfunction () {\n function t() {\n this.qt = new bt(A.i);\n }\n\n return t.prototype.track = function (t) {\n var e = t.doc.key,\n n = this.qt.get(e);\n n ? // Merge the new change with the existing change.\n 0\n /* Added */\n !== t.type && 3\n /* Metadata */\n === n.type ? this.qt = this.qt.ot(e, t) : 3\n /* Metadata */\n === t.type && 1\n /* Removed */\n !== n.type ? this.qt = this.qt.ot(e, {\n type: n.type,\n doc: t.doc\n }) : 2\n /* Modified */\n === t.type && 2\n /* Modified */\n === n.type ? this.qt = this.qt.ot(e, {\n type: 2\n /* Modified */\n ,\n doc: t.doc\n }) : 2\n /* Modified */\n === t.type && 0\n /* Added */\n === n.type ? this.qt = this.qt.ot(e, {\n type: 0\n /* Added */\n ,\n doc: t.doc\n }) : 1\n /* Removed */\n === t.type && 0\n /* Added */\n === n.type ? this.qt = this.qt.remove(e) : 1\n /* Removed */\n === t.type && 2\n /* Modified */\n === n.type ? this.qt = this.qt.ot(e, {\n type: 1\n /* Removed */\n ,\n doc: n.doc\n }) : 0\n /* Added */\n === t.type && 1\n /* Removed */\n === n.type ? this.qt = this.qt.ot(e, {\n type: 2\n /* Modified */\n ,\n doc: t.doc\n }) : // This includes these cases, which don't make sense:\n // Added->Added\n // Removed->Removed\n // Modified->Added\n // Removed->Modified\n // Metadata->Added\n // Removed->Metadata\n y() : this.qt = this.qt.ot(e, t);\n }, t.prototype.Ut = function () {\n var t = [];\n return this.qt.ht(function (e, n) {\n t.push(n);\n }), t;\n }, t;\n}(),\n Ft =\n/** @class */\nfunction () {\n function t(t, e, n, r, i, o, s, u) {\n this.query = t, this.docs = e, this.Qt = n, this.docChanges = r, this.Wt = i, this.fromCache = o, this.jt = s, this.Kt = u\n /** Returns a view snapshot as if all documents in the snapshot were added. */\n ;\n }\n\n return t.Gt = function (e, n, r, i) {\n var o = [];\n return n.forEach(function (t) {\n o.push({\n type: 0\n /* Added */\n ,\n doc: t\n });\n }), new t(e, n, Ut.Bt(n), o, r, i,\n /* syncStateChanged= */\n !0,\n /* excludesMetadataChanges= */\n !1);\n }, Object.defineProperty(t.prototype, \"hasPendingWrites\", {\n get: function get() {\n return !this.Wt.m();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function (t) {\n if (!(this.fromCache === t.fromCache && this.jt === t.jt && this.Wt.isEqual(t.Wt) && Qn(this.query, t.query) && this.docs.isEqual(t.docs) && this.Qt.isEqual(t.Qt))) return !1;\n var e = this.docChanges,\n n = t.docChanges;\n if (e.length !== n.length) return !1;\n\n for (var r = 0; r < e.length; r++) {\n if (e[r].type !== n[r].type || !e[r].doc.isEqual(n[r].doc)) return !1;\n }\n\n return !0;\n }, t;\n}(),\n Mt =\n/** @class */\nfunction () {\n function t(\n /**\n * The snapshot version this event brings us up to, or MIN if not set.\n */\n t,\n /**\n * A map from target to changes to the target. See TargetChange.\n */\n e,\n /**\n * A set of targets that is known to be inconsistent. Listens for these\n * targets should be re-established without resume tokens.\n */\n n,\n /**\n * A set of which documents have changed or been deleted, along with the\n * doc's new values (if not deleted).\n */\n r,\n /**\n * A set of which document updates are due only to limbo resolution targets.\n */\n i) {\n this.nt = t, this.zt = e, this.Ht = n, this.Yt = r, this.Jt = i;\n }\n /**\n * HACK: Views require RemoteEvents in order to determine whether the view is\n * CURRENT, but secondary tabs don't receive remote events. So this method is\n * used to create a synthesized RemoteEvent that can be used to apply a\n * CURRENT status change to a View, for queries executed in a different tab.\n */\n // PORTING NOTE: Multi-tab only\n\n\n return t.Xt = function (e, n) {\n var r = new Map();\n return r.set(e, qt.Zt(e, n)), new t(st.min(), r, Vt(), St(), Ot());\n }, t;\n}(),\n qt =\n/** @class */\nfunction () {\n function t(\n /**\n * An opaque, server-assigned token that allows watching a query to be resumed\n * after disconnecting without retransmitting all the data that matches the\n * query. The resume token essentially identifies a point in time from which\n * the server should resume sending results.\n */\n t,\n /**\n * The \"current\" (synced) status of this target. Note that \"current\"\n * has special meaning in the RPC protocol that implies that a target is\n * both up-to-date and consistent with the rest of the watch stream.\n */\n e,\n /**\n * The set of documents that were newly assigned to this target as part of\n * this remote event.\n */\n n,\n /**\n * The set of documents that were already assigned to this target but received\n * an update during this remote event.\n */\n r,\n /**\n * The set of documents that were removed from this target as part of this\n * remote event.\n */\n i) {\n this.resumeToken = t, this.te = e, this.ee = n, this.ne = r, this.se = i\n /**\n * This method is used to create a synthesized TargetChanges that can be used to\n * apply a CURRENT status change to a View (for queries executed in a different\n * tab) or for new queries (to raise snapshots with correct CURRENT status).\n */\n ;\n }\n\n return t.Zt = function (e, n) {\n return new t(X.B, n, Ot(), Ot(), Ot());\n }, t;\n}(),\n jt = function jt(\n/** The new document applies to all of these targets. */\nt,\n/** The new document is removed from all of these targets. */\ne,\n/** The key of the document for this change. */\nn,\n/**\n * The new document or NoDocument if it was deleted. Is null if the\n * document went out of view without the server sending a new document.\n */\nr) {\n this.ie = t, this.removedTargetIds = e, this.key = n, this.re = r;\n},\n Gt = function Gt(t, e) {\n this.targetId = t, this.oe = e;\n},\n zt = function zt(\n/** What kind of change occurred to the watch target. */\nt,\n/** The target IDs that were added/removed/set. */\ne,\n/**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */\nn\n/** An RPC error indicating why the watch failed. */\n, r) {\n void 0 === n && (n = X.B), void 0 === r && (r = null), this.state = t, this.targetIds = e, this.resumeToken = n, this.cause = r;\n},\n Bt =\n/** @class */\nfunction () {\n function t() {\n /**\n * The number of pending responses (adds or removes) that we are waiting on.\n * We only consider targets active that have no pending responses.\n */\n this.ae = 0,\n /**\n * Keeps track of the document changes since the last raised snapshot.\n *\n * These changes are continuously updated as we receive document updates and\n * always reflect the current set of changes against the last issued snapshot.\n */\n this.ce = Qt(),\n /** See public getters for explanations of these fields. */\n this.ue = X.B, this.he = !1,\n /**\n * Whether this target state should be included in the next snapshot. We\n * initialize to true so that newly-added targets are included in the next\n * RemoteEvent.\n */\n this.le = !0;\n }\n\n return Object.defineProperty(t.prototype, \"te\", {\n /**\n * Whether this target has been marked 'current'.\n *\n * 'Current' has special meaning in the RPC protocol: It implies that the\n * Watch backend has sent us all changes up to the point at which the target\n * was added and that the target is consistent with the rest of the watch\n * stream.\n */\n get: function get() {\n return this.he;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"resumeToken\", {\n /** The last resume token sent to us for this target. */\n get: function get() {\n return this.ue;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"_e\", {\n /** Whether this target has pending target adds or target removes. */\n get: function get() {\n return 0 !== this.ae;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"fe\", {\n /** Whether we have modified any state that should trigger a snapshot. */\n get: function get() {\n return this.le;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Applies the resume token to the TargetChange, but only when it has a new\n * value. Empty resumeTokens are discarded.\n */\n t.prototype.de = function (t) {\n t.O() > 0 && (this.le = !0, this.ue = t);\n },\n /**\n * Creates a target change from the current set of changes.\n *\n * To reset the document changes after raising this snapshot, call\n * `clearPendingChanges()`.\n */\n t.prototype.we = function () {\n var t = Ot(),\n e = Ot(),\n n = Ot();\n return this.ce.forEach(function (r, i) {\n switch (i) {\n case 0\n /* Added */\n :\n t = t.add(r);\n break;\n\n case 2\n /* Modified */\n :\n e = e.add(r);\n break;\n\n case 1\n /* Removed */\n :\n n = n.add(r);\n break;\n\n default:\n y();\n }\n }), new qt(this.ue, this.he, t, e, n);\n },\n /**\n * Resets the document changes and sets `hasPendingChanges` to false.\n */\n t.prototype.me = function () {\n this.le = !1, this.ce = Qt();\n }, t.prototype.Te = function (t, e) {\n this.le = !0, this.ce = this.ce.ot(t, e);\n }, t.prototype.Ee = function (t) {\n this.le = !0, this.ce = this.ce.remove(t);\n }, t.prototype.Ie = function () {\n this.ae += 1;\n }, t.prototype.Ae = function () {\n this.ae -= 1;\n }, t.prototype.Re = function () {\n this.le = !0, this.he = !0;\n }, t;\n}(),\n Wt =\n/** @class */\nfunction () {\n function t(t) {\n this.ge = t,\n /** The internal state of all tracked targets. */\n this.Pe = new Map(),\n /** Keeps track of the documents to update since the last raised snapshot. */\n this.ye = St(),\n /** A mapping of document keys to their set of target IDs. */\n this.Ve = Kt(),\n /**\n * A list of targets with existence filter mismatches. These targets are\n * known to be inconsistent and their listens needs to be re-established by\n * RemoteStore.\n */\n this.pe = new Tt(H)\n /**\n * Processes and adds the DocumentWatchChange to the current set of changes.\n */\n ;\n }\n\n return t.prototype.be = function (t) {\n for (var e = 0, n = t.ie; e < n.length; e++) {\n var r = n[e];\n t.re instanceof kn ? this.ve(r, t.re) : t.re instanceof Rn && this.Se(r, t.key, t.re);\n }\n\n for (var i = 0, o = t.removedTargetIds; i < o.length; i++) {\n var s = o[i];\n this.Se(s, t.key, t.re);\n }\n },\n /** Processes and adds the WatchTargetChange to the current set of changes. */\n t.prototype.De = function (t) {\n var e = this;\n this.Ce(t, function (n) {\n var r = e.Ne(n);\n\n switch (t.state) {\n case 0\n /* NoChange */\n :\n e.Fe(n) && r.de(t.resumeToken);\n break;\n\n case 1\n /* Added */\n :\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.Ae(), r._e || // We have a freshly added target, so we need to reset any state\n // that we had previously. This can happen e.g. when remove and add\n // back a target for existence filter mismatches.\n r.me(), r.de(t.resumeToken);\n break;\n\n case 2\n /* Removed */\n :\n // We need to keep track of removed targets to we can post-filter and\n // remove any target changes.\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.Ae(), r._e || e.removeTarget(n);\n break;\n\n case 3\n /* Current */\n :\n e.Fe(n) && (r.Re(), r.de(t.resumeToken));\n break;\n\n case 4\n /* Reset */\n :\n e.Fe(n) && ( // Reset the target and synthesizes removes for all existing\n // documents. The backend will re-add any documents that still\n // match the target before it sends the next global snapshot.\n e.xe(n), r.de(t.resumeToken));\n break;\n\n default:\n y();\n }\n });\n },\n /**\n * Iterates over all targetIds that the watch change applies to: either the\n * targetIds explicitly listed in the change or the targetIds of all currently\n * active targets.\n */\n t.prototype.Ce = function (t, e) {\n var n = this;\n t.targetIds.length > 0 ? t.targetIds.forEach(e) : this.Pe.forEach(function (t, r) {\n n.Fe(r) && e(r);\n });\n },\n /**\n * Handles existence filters and synthesizes deletes for filter mismatches.\n * Targets that are invalidated by filter mismatches are added to\n * `pendingTargetResets`.\n */\n t.prototype.$e = function (t) {\n var e = t.targetId,\n n = t.oe.count,\n r = this.ke(e);\n\n if (r) {\n var i = r.target;\n if (dt(i)) {\n if (0 === n) {\n // The existence filter told us the document does not exist. We deduce\n // that this document does not exist and apply a deleted document to\n // our updates. Without applying this deleted document there might be\n // another query that will raise this document as part of a snapshot\n // until it is resolved, essentially exposing inconsistency between\n // queries.\n var o = new A(i.path);\n this.Se(e, o, new Rn(o, st.min()));\n } else g(1 === n);\n } else this.Me(e) !== n && ( // Existence filter mismatch: We reset the mapping and raise a new\n // snapshot with `isFromCache:true`.\n this.xe(e), this.pe = this.pe.add(e));\n }\n },\n /**\n * Converts the currently accumulated state into a remote event at the\n * provided snapshot version. Resets the accumulated changes before returning.\n */\n t.prototype.Oe = function (t) {\n var e = this,\n n = new Map();\n this.Pe.forEach(function (r, i) {\n var o = e.ke(i);\n\n if (o) {\n if (r.te && dt(o.target)) {\n // Document queries for document that don't exist can produce an empty\n // result set. To update our local cache, we synthesize a document\n // delete if we have not previously received the document. This\n // resolves the limbo state of the document, removing it from\n // limboDocumentRefs.\n // TODO(dimond): Ideally we would have an explicit lookup target\n // instead resulting in an explicit delete message and we could\n // remove this special logic.\n var s = new A(o.target.path);\n null !== e.ye.get(s) || e.Le(i, s) || e.Se(i, s, new Rn(s, t));\n }\n\n r.fe && (n.set(i, r.we()), r.me());\n }\n });\n var r = Ot(); // We extract the set of limbo-only document updates as the GC logic\n // special-cases documents that do not appear in the target cache.\n // TODO(gsoltis): Expand on this comment once GC is available in the JS\n // client.\n\n this.Ve.forEach(function (t, n) {\n var i = !0;\n n.xt(function (t) {\n var n = e.ke(t);\n return !n || 2\n /* LimboResolution */\n === n.et || (i = !1, !1);\n }), i && (r = r.add(t));\n });\n var i = new Mt(t, n, this.pe, this.ye, r);\n return this.ye = St(), this.Ve = Kt(), this.pe = new Tt(H), i;\n },\n /**\n * Adds the provided document to the internal list of document updates and\n * its document key to the given target's mapping.\n */\n // Visible for testing.\n t.prototype.ve = function (t, e) {\n if (this.Fe(t)) {\n var n = this.Le(t, e.key) ? 2\n /* Modified */\n : 0\n /* Added */\n ;\n this.Ne(t).Te(e.key, n), this.ye = this.ye.ot(e.key, e), this.Ve = this.Ve.ot(e.key, this.Be(e.key).add(t));\n }\n },\n /**\n * Removes the provided document from the target mapping. If the\n * document no longer matches the target, but the document's state is still\n * known (e.g. we know that the document was deleted or we received the change\n * that caused the filter mismatch), the new document can be provided\n * to update the remote document cache.\n */\n // Visible for testing.\n t.prototype.Se = function (t, e, n) {\n if (this.Fe(t)) {\n var r = this.Ne(t);\n this.Le(t, e) ? r.Te(e, 1\n /* Removed */\n ) : // The document may have entered and left the target before we raised a\n // snapshot, so we can just ignore the change.\n r.Ee(e), this.Ve = this.Ve.ot(e, this.Be(e).delete(t)), n && (this.ye = this.ye.ot(e, n));\n }\n }, t.prototype.removeTarget = function (t) {\n this.Pe.delete(t);\n },\n /**\n * Returns the current count of documents in the target. This includes both\n * the number of documents that the LocalStore considers to be part of the\n * target as well as any accumulated changes.\n */\n t.prototype.Me = function (t) {\n var e = this.Ne(t).we();\n return this.ge.qe(t).size + e.ee.size - e.se.size;\n },\n /**\n * Increment the number of acks needed from watch before we can consider the\n * server to be 'in-sync' with the client's active targets.\n */\n t.prototype.Ie = function (t) {\n this.Ne(t).Ie();\n }, t.prototype.Ne = function (t) {\n var e = this.Pe.get(t);\n return e || (e = new Bt(), this.Pe.set(t, e)), e;\n }, t.prototype.Be = function (t) {\n var e = this.Ve.get(t);\n return e || (e = new Tt(H), this.Ve = this.Ve.ot(t, e)), e;\n },\n /**\n * Verifies that the user is still interested in this target (by calling\n * `getTargetDataForTarget()`) and that we are not waiting for pending ADDs\n * from watch.\n */\n t.prototype.Fe = function (t) {\n var e = null !== this.ke(t);\n return e || l(\"WatchChangeAggregator\", \"Detected inactive target\", t), e;\n },\n /**\n * Returns the TargetData for an active target (i.e. a target that the user\n * is still interested in that has no outstanding target change requests).\n */\n t.prototype.ke = function (t) {\n var e = this.Pe.get(t);\n return e && e._e ? null : this.ge.Ue(t);\n },\n /**\n * Resets the state of a Watch target to its initial state (e.g. sets\n * 'current' to false, clears the resume token and removes its target mapping\n * from all documents).\n */\n t.prototype.xe = function (t) {\n var e = this;\n this.Pe.set(t, new Bt()), this.ge.qe(t).forEach(function (n) {\n e.Se(t, n,\n /*updatedDocument=*/\n null);\n });\n },\n /**\n * Returns whether the LocalStore considers the document to be part of the\n * specified target.\n */\n t.prototype.Le = function (t, e) {\n return this.ge.qe(t).has(e);\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * DocumentChangeSet keeps track of a set of changes to docs in a query, merging\n * duplicate events for the same doc.\n */\n\n\nfunction Kt() {\n return new bt(A.i);\n}\n\nfunction Qt() {\n return new bt(A.i);\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents a locally-applied ServerTimestamp.\n *\n * Server Timestamps are backed by MapValues that contain an internal field\n * `__type__` with a value of `server_timestamp`. The previous value and local\n * write time are stored in its `__previous_value__` and `__local_write_time__`\n * fields respectively.\n *\n * Notes:\n * - ServerTimestampValue instances are created as the result of applying a\n * TransformMutation (see TransformMutation.applyTo()). They can only exist in\n * the local view of a document. Therefore they do not need to be parsed or\n * serialized.\n * - When evaluated locally (e.g. for snapshot.data()), they by default\n * evaluate to `null`. This behavior can be configured by passing custom\n * FieldValueOptions to value().\n * - With respect to other ServerTimestampValues, they sort by their\n * localWriteTime.\n */\n\n\nfunction Ht(t) {\n var e, n;\n return \"server_timestamp\" === (null === (n = ((null === (e = null == t ? void 0 : t.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue);\n}\n/**\n * Creates a new ServerTimestamp proto value (using the internal format).\n */\n\n/**\n * Returns the value of the field before this ServerTimestamp was set.\n *\n * Preserving the previous values allows the user to display the last resoled\n * value until the backend responds with the timestamp.\n */\n\n\nfunction Yt(t) {\n var e = t.mapValue.fields.__previous_value__;\n return Ht(e) ? Yt(e) : e;\n}\n/**\n * Returns the local time at which this timestamp was first set.\n */\n\n\nfunction $t(t) {\n var e = oe(t.mapValue.fields.__local_write_time__.timestampValue);\n return new ot(e.seconds, e.nanos);\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// A RegExp matching ISO 8601 UTC timestamps with optional fraction.\n\n\nvar Xt = new RegExp(/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:\\.(\\d+))?Z$/);\n/** Extracts the backend's type order for the provided value. */\n\nfunction Jt(t) {\n return \"nullValue\" in t ? 0\n /* NullValue */\n : \"booleanValue\" in t ? 1\n /* BooleanValue */\n : \"integerValue\" in t || \"doubleValue\" in t ? 2\n /* NumberValue */\n : \"timestampValue\" in t ? 3\n /* TimestampValue */\n : \"stringValue\" in t ? 5\n /* StringValue */\n : \"bytesValue\" in t ? 6\n /* BlobValue */\n : \"referenceValue\" in t ? 7\n /* RefValue */\n : \"geoPointValue\" in t ? 8\n /* GeoPointValue */\n : \"arrayValue\" in t ? 9\n /* ArrayValue */\n : \"mapValue\" in t ? Ht(t) ? 4\n /* ServerTimestampValue */\n : 10\n /* ObjectValue */\n : y();\n}\n/** Tests `left` and `right` for equality based on the backend semantics. */\n\n\nfunction Zt(t, e) {\n var n = Jt(t);\n if (n !== Jt(e)) return !1;\n\n switch (n) {\n case 0\n /* NullValue */\n :\n return !0;\n\n case 1\n /* BooleanValue */\n :\n return t.booleanValue === e.booleanValue;\n\n case 4\n /* ServerTimestampValue */\n :\n return $t(t).isEqual($t(e));\n\n case 3\n /* TimestampValue */\n :\n return function (t, e) {\n if (\"string\" == typeof t.timestampValue && \"string\" == typeof e.timestampValue && t.timestampValue.length === e.timestampValue.length) // Use string equality for ISO 8601 timestamps\n return t.timestampValue === e.timestampValue;\n var n = oe(t.timestampValue),\n r = oe(e.timestampValue);\n return n.seconds === r.seconds && n.nanos === r.nanos;\n }(t, e);\n\n case 5\n /* StringValue */\n :\n return t.stringValue === e.stringValue;\n\n case 6\n /* BlobValue */\n :\n return function (t, e) {\n return ue(t.bytesValue).isEqual(ue(e.bytesValue));\n }(t, e);\n\n case 7\n /* RefValue */\n :\n return t.referenceValue === e.referenceValue;\n\n case 8\n /* GeoPointValue */\n :\n return function (t, e) {\n return se(t.geoPointValue.latitude) === se(e.geoPointValue.latitude) && se(t.geoPointValue.longitude) === se(e.geoPointValue.longitude);\n }(t, e);\n\n case 2\n /* NumberValue */\n :\n return function (t, e) {\n if (\"integerValue\" in t && \"integerValue\" in e) return se(t.integerValue) === se(e.integerValue);\n\n if (\"doubleValue\" in t && \"doubleValue\" in e) {\n var n = se(t.doubleValue),\n r = se(e.doubleValue);\n return n === r ? at(n) === at(r) : isNaN(n) && isNaN(r);\n }\n\n return !1;\n }(t, e);\n\n case 9\n /* ArrayValue */\n :\n return Y(t.arrayValue.values || [], e.arrayValue.values || [], Zt);\n\n case 10\n /* ObjectValue */\n :\n return function (t, e) {\n var n = t.mapValue.fields || {},\n r = e.mapValue.fields || {};\n if (w(n) !== w(r)) return !1;\n\n for (var i in n) {\n if (n.hasOwnProperty(i) && (void 0 === r[i] || !Zt(n[i], r[i]))) return !1;\n }\n\n return !0;\n }(t, e);\n\n default:\n return y();\n }\n}\n\nfunction te(t, e) {\n return void 0 !== (t.values || []).find(function (t) {\n return Zt(t, e);\n });\n}\n\nfunction ee(t, e) {\n var n = Jt(t),\n r = Jt(e);\n if (n !== r) return H(n, r);\n\n switch (n) {\n case 0\n /* NullValue */\n :\n return 0;\n\n case 1\n /* BooleanValue */\n :\n return H(t.booleanValue, e.booleanValue);\n\n case 2\n /* NumberValue */\n :\n return function (t, e) {\n var n = se(t.integerValue || t.doubleValue),\n r = se(e.integerValue || e.doubleValue);\n return n < r ? -1 : n > r ? 1 : n === r ? 0 : // one or both are NaN.\n isNaN(n) ? isNaN(r) ? 0 : -1 : 1;\n }(t, e);\n\n case 3\n /* TimestampValue */\n :\n return ne(t.timestampValue, e.timestampValue);\n\n case 4\n /* ServerTimestampValue */\n :\n return ne($t(t), $t(e));\n\n case 5\n /* StringValue */\n :\n return H(t.stringValue, e.stringValue);\n\n case 6\n /* BlobValue */\n :\n return function (t, e) {\n var n = ue(t),\n r = ue(e);\n return n.L(r);\n }(t.bytesValue, e.bytesValue);\n\n case 7\n /* RefValue */\n :\n return function (t, e) {\n for (var n = t.split(\"/\"), r = e.split(\"/\"), i = 0; i < n.length && i < r.length; i++) {\n var o = H(n[i], r[i]);\n if (0 !== o) return o;\n }\n\n return H(n.length, r.length);\n }(t.referenceValue, e.referenceValue);\n\n case 8\n /* GeoPointValue */\n :\n return function (t, e) {\n var n = H(se(t.latitude), se(e.latitude));\n return 0 !== n ? n : H(se(t.longitude), se(e.longitude));\n }(t.geoPointValue, e.geoPointValue);\n\n case 9\n /* ArrayValue */\n :\n return function (t, e) {\n for (var n = t.values || [], r = e.values || [], i = 0; i < n.length && i < r.length; ++i) {\n var o = ee(n[i], r[i]);\n if (o) return o;\n }\n\n return H(n.length, r.length);\n }(t.arrayValue, e.arrayValue);\n\n case 10\n /* ObjectValue */\n :\n return function (t, e) {\n var n = t.fields || {},\n r = Object.keys(n),\n i = e.fields || {},\n o = Object.keys(i); // Even though MapValues are likely sorted correctly based on their insertion\n // order (e.g. when received from the backend), local modifications can bring\n // elements out of order. We need to re-sort the elements to ensure that\n // canonical IDs are independent of insertion order.\n\n r.sort(), o.sort();\n\n for (var s = 0; s < r.length && s < o.length; ++s) {\n var u = H(r[s], o[s]);\n if (0 !== u) return u;\n var a = ee(n[r[s]], i[o[s]]);\n if (0 !== a) return a;\n }\n\n return H(r.length, o.length);\n }(t.mapValue, e.mapValue);\n\n default:\n throw y();\n }\n}\n\nfunction ne(t, e) {\n if (\"string\" == typeof t && \"string\" == typeof e && t.length === e.length) return H(t, e);\n var n = oe(t),\n r = oe(e),\n i = H(n.seconds, r.seconds);\n return 0 !== i ? i : H(n.nanos, r.nanos);\n}\n\nfunction re(t) {\n return ie(t);\n}\n\nfunction ie(t) {\n return \"nullValue\" in t ? \"null\" : \"booleanValue\" in t ? \"\" + t.booleanValue : \"integerValue\" in t ? \"\" + t.integerValue : \"doubleValue\" in t ? \"\" + t.doubleValue : \"timestampValue\" in t ? function (t) {\n var e = oe(t);\n return \"time(\" + e.seconds + \",\" + e.nanos + \")\";\n }(t.timestampValue) : \"stringValue\" in t ? t.stringValue : \"bytesValue\" in t ? ue(t.bytesValue).toBase64() : \"referenceValue\" in t ? (n = t.referenceValue, A.C(n).toString()) : \"geoPointValue\" in t ? \"geo(\" + (e = t.geoPointValue).latitude + \",\" + e.longitude + \")\" : \"arrayValue\" in t ? function (t) {\n for (var e = \"[\", n = !0, r = 0, i = t.values || []; r < i.length; r++) {\n n ? n = !1 : e += \",\", e += ie(i[r]);\n }\n\n return e + \"]\";\n }(t.arrayValue) : \"mapValue\" in t ? function (t) {\n for ( // Iteration order in JavaScript is not guaranteed. To ensure that we generate\n // matching canonical IDs for identical maps, we need to sort the keys.\n var e = \"{\", n = !0, r = 0, i = Object.keys(t.fields || {}).sort(); r < i.length; r++) {\n var o = i[r];\n n ? n = !1 : e += \",\", e += o + \":\" + ie(t.fields[o]);\n }\n\n return e + \"}\";\n }(t.mapValue) : y();\n var e, n;\n}\n\nfunction oe(t) {\n // The json interface (for the browser) will return an iso timestamp string,\n // while the proto js library (for node) will return a\n // google.protobuf.Timestamp instance.\n if (g(!!t), \"string\" == typeof t) {\n // The date string can have higher precision (nanos) than the Date class\n // (millis), so we do some custom parsing here.\n // Parse the nanos right out of the string.\n var e = 0,\n n = Xt.exec(t);\n\n if (g(!!n), n[1]) {\n // Pad the fraction out to 9 digits (nanos).\n var r = n[1];\n r = (r + \"000000000\").substr(0, 9), e = Number(r);\n } // Parse the date to get the seconds.\n\n\n var i = new Date(t);\n return {\n seconds: Math.floor(i.getTime() / 1e3),\n nanos: e\n };\n }\n\n return {\n seconds: se(t.seconds),\n nanos: se(t.nanos)\n };\n}\n/**\n * Converts the possible Proto types for numbers into a JavaScript number.\n * Returns 0 if the value is not numeric.\n */\n\n\nfunction se(t) {\n // TODO(bjornick): Handle int64 greater than 53 bits.\n return \"number\" == typeof t ? t : \"string\" == typeof t ? Number(t) : 0;\n}\n/** Converts the possible Proto types for Blobs into a ByteString. */\n\n\nfunction ue(t) {\n return \"string\" == typeof t ? X.fromBase64String(t) : X.fromUint8Array(t);\n}\n/** Returns a reference value for the provided database and key. */\n\n\nfunction ae(t, e) {\n return {\n referenceValue: \"projects/\" + t.projectId + \"/databases/\" + t.database + \"/documents/\" + e.path.R()\n };\n}\n/** Returns true if `value` is an IntegerValue . */\n\n\nfunction ce(t) {\n return !!t && \"integerValue\" in t;\n}\n/** Returns true if `value` is a DoubleValue. */\n\n/** Returns true if `value` is an ArrayValue. */\n\n\nfunction he(t) {\n return !!t && \"arrayValue\" in t;\n}\n/** Returns true if `value` is a NullValue. */\n\n\nfunction fe(t) {\n return !!t && \"nullValue\" in t;\n}\n/** Returns true if `value` is NaN. */\n\n\nfunction le(t) {\n return !!t && \"doubleValue\" in t && isNaN(Number(t.doubleValue));\n}\n/** Returns true if `value` is a MapValue. */\n\n\nfunction pe(t) {\n return !!t && \"mapValue\" in t;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar de = {\n asc: \"ASCENDING\",\n desc: \"DESCENDING\"\n},\n ve = {\n \"<\": \"LESS_THAN\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"==\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"array-contains\": \"ARRAY_CONTAINS\",\n in: \"IN\",\n \"not-in\": \"NOT_IN\",\n \"array-contains-any\": \"ARRAY_CONTAINS_ANY\"\n},\n ye = function ye(t, e) {\n this.U = t, this.Qe = e;\n};\n/**\n * This class generates JsonObject values for the Datastore API suitable for\n * sending to either GRPC stub methods or via the JSON/HTTP REST API.\n *\n * The serializer supports both Protobuf.js and Proto3 JSON formats. By\n * setting `useProto3Json` to true, the serializer will use the Proto3 JSON\n * format.\n *\n * For a description of the Proto3 JSON format check\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n *\n * TODO(klimt): We can remove the databaseId argument if we keep the full\n * resource name in documents.\n */\n\n/**\n * Returns an IntegerValue for `value`.\n */\n\n\nfunction ge(t) {\n return {\n integerValue: \"\" + t\n };\n}\n/**\n * Returns an DoubleValue for `value` that is encoded based the serializer's\n * `useProto3Json` setting.\n */\n\n\nfunction me(t, e) {\n if (t.Qe) {\n if (isNaN(e)) return {\n doubleValue: \"NaN\"\n };\n if (e === 1 / 0) return {\n doubleValue: \"Infinity\"\n };\n if (e === -1 / 0) return {\n doubleValue: \"-Infinity\"\n };\n }\n\n return {\n doubleValue: at(e) ? \"-0\" : e\n };\n}\n/**\n * Returns a value for a number that's appropriate to put into a proto.\n * The return value is an IntegerValue if it can safely represent the value,\n * otherwise a DoubleValue is returned.\n */\n\n\nfunction we(t, e) {\n return ct(e) ? ge(e) : me(t, e);\n}\n/**\n * Returns a value for a Date that's appropriate to put into a proto.\n */\n\n\nfunction _e(t, e) {\n return t.Qe ? new Date(1e3 * e.seconds).toISOString().replace(/\\.\\d*/, \"\").replace(\"Z\", \"\") + \".\" + (\"000000000\" + e.nanoseconds).slice(-9) + \"Z\" : {\n seconds: \"\" + e.seconds,\n nanos: e.nanoseconds\n };\n}\n/**\n * Returns a value for bytes that's appropriate to put in a proto.\n *\n * Visible for testing.\n */\n\n\nfunction be(t, e) {\n return t.Qe ? e.toBase64() : e.toUint8Array();\n}\n/**\n * Returns a ByteString based on the proto string value.\n */\n\n\nfunction Ie(t, e) {\n return _e(t, e.Z());\n}\n\nfunction Ee(t) {\n return g(!!t), st.J(function (t) {\n var e = oe(t);\n return new ot(e.seconds, e.nanos);\n }(t));\n}\n\nfunction Te(t, e) {\n return function (t) {\n return new E([\"projects\", t.projectId, \"databases\", t.database]);\n }(t).child(\"documents\").child(e).R();\n}\n\nfunction Ne(t) {\n var e = E.g(t);\n return g(He(e)), e;\n}\n\nfunction Ae(t, e) {\n return Te(t.U, e.path);\n}\n\nfunction Se(t, e) {\n var n = Ne(e);\n return g(n.get(1) === t.U.projectId), g(!n.get(3) && !t.U.database || n.get(3) === t.U.database), new A(ke(n));\n}\n\nfunction De(t, e) {\n return Te(t.U, e);\n}\n\nfunction xe(t) {\n var e = Ne(t); // In v1beta1 queries for collections at the root did not have a trailing\n // \"/documents\". In v1 all resource paths contain \"/documents\". Preserve the\n // ability to read the v1beta1 form for compatibility with queries persisted\n // in the local target cache.\n\n return 4 === e.length ? E.P() : ke(e);\n}\n\nfunction Le(t) {\n return new E([\"projects\", t.U.projectId, \"databases\", t.U.database]).R();\n}\n\nfunction ke(t) {\n return g(t.length > 4 && \"documents\" === t.get(4)), t.u(5)\n /** Creates a Document proto from key and fields (but no create/update time) */\n ;\n}\n\nfunction Re(t, e, n) {\n return {\n name: Ae(t, e),\n fields: n.proto.mapValue.fields\n };\n}\n\nfunction Oe(t, e) {\n var n;\n if (e instanceof wn) n = {\n update: Re(t, e.key, e.value)\n };else if (e instanceof Nn) n = {\n delete: Ae(t, e.key)\n };else if (e instanceof _n) n = {\n update: Re(t, e.key, e.data),\n updateMask: Qe(e.We)\n };else if (e instanceof In) n = {\n transform: {\n document: Ae(t, e.key),\n fieldTransforms: e.fieldTransforms.map(function (t) {\n return function (t, e) {\n var n = e.transform;\n if (n instanceof Ze) return {\n fieldPath: e.field.R(),\n setToServerValue: \"REQUEST_TIME\"\n };\n if (n instanceof tn) return {\n fieldPath: e.field.R(),\n appendMissingElements: {\n values: n.elements\n }\n };\n if (n instanceof nn) return {\n fieldPath: e.field.R(),\n removeAllFromArray: {\n values: n.elements\n }\n };\n if (n instanceof on) return {\n fieldPath: e.field.R(),\n increment: n.je\n };\n throw y();\n }(0, t);\n })\n }\n };else {\n if (!(e instanceof An)) return y();\n n = {\n verify: Ae(t, e.key)\n };\n }\n return e.Ge.Ke || (n.currentDocument = function (t, e) {\n return void 0 !== e.updateTime ? {\n updateTime: Ie(t, e.updateTime)\n } : void 0 !== e.exists ? {\n exists: e.exists\n } : y();\n }(t, e.Ge)), n;\n}\n\nfunction Pe(t, e) {\n var n = e.currentDocument ? function (t) {\n return void 0 !== t.updateTime ? fn.updateTime(Ee(t.updateTime)) : void 0 !== t.exists ? fn.exists(t.exists) : fn.ze();\n }(e.currentDocument) : fn.ze();\n\n if (e.update) {\n e.update.name;\n var r = Se(t, e.update.name),\n i = new Sn({\n mapValue: {\n fields: e.update.fields\n }\n });\n\n if (e.updateMask) {\n var o = function (t) {\n var e = t.fieldPaths || [];\n return new an(e.map(function (t) {\n return N.S(t);\n }));\n }(e.updateMask);\n\n return new _n(r, i, o, n);\n }\n\n return new wn(r, i, n);\n }\n\n if (e.delete) {\n var s = Se(t, e.delete);\n return new Nn(s, n);\n }\n\n if (e.transform) {\n var u = Se(t, e.transform.document),\n a = e.transform.fieldTransforms.map(function (e) {\n return function (t, e) {\n var n = null;\n if (\"setToServerValue\" in e) g(\"REQUEST_TIME\" === e.setToServerValue), n = new Ze();else if (\"appendMissingElements\" in e) {\n var r = e.appendMissingElements.values || [];\n n = new tn(r);\n } else if (\"removeAllFromArray\" in e) {\n var i = e.removeAllFromArray.values || [];\n n = new nn(i);\n } else \"increment\" in e ? n = new on(t, e.increment) : y();\n var o = N.S(e.fieldPath);\n return new cn(o, n);\n }(t, e);\n });\n return g(!0 === n.exists), new In(u, a);\n }\n\n if (e.verify) {\n var c = Se(t, e.verify);\n return new An(c, n);\n }\n\n return y();\n}\n\nfunction Ve(t, e) {\n return {\n documents: [De(t, e.path)]\n };\n}\n\nfunction Ue(t, e) {\n // Dissect the path into parent, collectionId, and optional key filter.\n var n = {\n structuredQuery: {}\n },\n r = e.path;\n null !== e.collectionGroup ? (n.parent = De(t, r), n.structuredQuery.from = [{\n collectionId: e.collectionGroup,\n allDescendants: !0\n }]) : (n.parent = De(t, r.h()), n.structuredQuery.from = [{\n collectionId: r._()\n }]);\n\n var i = function (t) {\n if (0 !== t.length) {\n var e = t.map(function (t) {\n // visible for testing\n return function (t) {\n if (\"==\"\n /* EQUAL */\n === t.op) {\n if (le(t.value)) return {\n unaryFilter: {\n field: ze(t.field),\n op: \"IS_NAN\"\n }\n };\n if (fe(t.value)) return {\n unaryFilter: {\n field: ze(t.field),\n op: \"IS_NULL\"\n }\n };\n } else if (\"!=\"\n /* NOT_EQUAL */\n === t.op) {\n if (le(t.value)) return {\n unaryFilter: {\n field: ze(t.field),\n op: \"IS_NOT_NAN\"\n }\n };\n if (fe(t.value)) return {\n unaryFilter: {\n field: ze(t.field),\n op: \"IS_NOT_NULL\"\n }\n };\n }\n\n return {\n fieldFilter: {\n field: ze(t.field),\n op: Ge(t.op),\n value: t.value\n }\n };\n }(t);\n });\n return 1 === e.length ? e[0] : {\n compositeFilter: {\n op: \"AND\",\n filters: e\n }\n };\n }\n }(e.filters);\n\n i && (n.structuredQuery.where = i);\n\n var o = function (t) {\n if (0 !== t.length) return t.map(function (t) {\n // visible for testing\n return function (t) {\n return {\n field: ze(t.field),\n direction: je(t.dir)\n };\n }(t);\n });\n }(e.orderBy);\n\n o && (n.structuredQuery.orderBy = o);\n\n var s = function (t, e) {\n return t.Qe || ut(e) ? e : {\n value: e\n };\n }(t, e.limit);\n\n return null !== s && (n.structuredQuery.limit = s), e.startAt && (n.structuredQuery.startAt = Me(e.startAt)), e.endAt && (n.structuredQuery.endAt = Me(e.endAt)), n;\n}\n\nfunction Ce(t) {\n var e = xe(t.parent),\n n = t.structuredQuery,\n r = n.from ? n.from.length : 0,\n i = null;\n\n if (r > 0) {\n g(1 === r);\n var o = n.from[0];\n o.allDescendants ? i = o.collectionId : e = e.child(o.collectionId);\n }\n\n var s = [];\n n.where && (s = Fe(n.where));\n var u = [];\n n.orderBy && (u = n.orderBy.map(function (t) {\n return function (t) {\n return new fr(Be(t.field), // visible for testing\n function (t) {\n switch (t) {\n case \"ASCENDING\":\n return \"asc\"\n /* ASCENDING */\n ;\n\n case \"DESCENDING\":\n return \"desc\"\n /* DESCENDING */\n ;\n\n default:\n return;\n }\n }(t.direction));\n }(t);\n }));\n var a = null;\n n.limit && (a = function (t) {\n var e;\n return ut(e = \"object\" == typeof t ? t.value : t) ? null : e;\n }(n.limit));\n var c = null;\n n.startAt && (c = qe(n.startAt));\n var h = null;\n return n.endAt && (h = qe(n.endAt)), zn(Vn(e, i, u, s, a, \"F\"\n /* First */\n , c, h));\n}\n\nfunction Fe(t) {\n return t ? void 0 !== t.unaryFilter ? [Ke(t)] : void 0 !== t.fieldFilter ? [We(t)] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map(function (t) {\n return Fe(t);\n }).reduce(function (t, e) {\n return t.concat(e);\n }) : y() : [];\n}\n\nfunction Me(t) {\n return {\n before: t.before,\n values: t.position\n };\n}\n\nfunction qe(t) {\n var e = !!t.before,\n n = t.values || [];\n return new ur(n, e);\n} // visible for testing\n\n\nfunction je(t) {\n return de[t];\n}\n\nfunction Ge(t) {\n return ve[t];\n}\n\nfunction ze(t) {\n return {\n fieldPath: t.R()\n };\n}\n\nfunction Be(t) {\n return N.S(t.fieldPath);\n}\n\nfunction We(t) {\n return Jn.create(Be(t.fieldFilter.field), function (t) {\n switch (t) {\n case \"EQUAL\":\n return \"==\"\n /* EQUAL */\n ;\n\n case \"NOT_EQUAL\":\n return \"!=\"\n /* NOT_EQUAL */\n ;\n\n case \"GREATER_THAN\":\n return \">\"\n /* GREATER_THAN */\n ;\n\n case \"GREATER_THAN_OR_EQUAL\":\n return \">=\"\n /* GREATER_THAN_OR_EQUAL */\n ;\n\n case \"LESS_THAN\":\n return \"<\"\n /* LESS_THAN */\n ;\n\n case \"LESS_THAN_OR_EQUAL\":\n return \"<=\"\n /* LESS_THAN_OR_EQUAL */\n ;\n\n case \"ARRAY_CONTAINS\":\n return \"array-contains\"\n /* ARRAY_CONTAINS */\n ;\n\n case \"IN\":\n return \"in\"\n /* IN */\n ;\n\n case \"NOT_IN\":\n return \"not-in\"\n /* NOT_IN */\n ;\n\n case \"ARRAY_CONTAINS_ANY\":\n return \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n ;\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return y();\n }\n }(t.fieldFilter.op), t.fieldFilter.value);\n}\n\nfunction Ke(t) {\n switch (t.unaryFilter.op) {\n case \"IS_NAN\":\n var e = Be(t.unaryFilter.field);\n return Jn.create(e, \"==\"\n /* EQUAL */\n , {\n doubleValue: NaN\n });\n\n case \"IS_NULL\":\n var n = Be(t.unaryFilter.field);\n return Jn.create(n, \"==\"\n /* EQUAL */\n , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"IS_NOT_NAN\":\n var r = Be(t.unaryFilter.field);\n return Jn.create(r, \"!=\"\n /* NOT_EQUAL */\n , {\n doubleValue: NaN\n });\n\n case \"IS_NOT_NULL\":\n var i = Be(t.unaryFilter.field);\n return Jn.create(i, \"!=\"\n /* NOT_EQUAL */\n , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return y();\n }\n}\n\nfunction Qe(t) {\n var e = [];\n return t.fields.forEach(function (t) {\n return e.push(t.R());\n }), {\n fieldPaths: e\n };\n}\n\nfunction He(t) {\n // Resource names have at least 4 components (project ID, database ID)\n return t.length >= 4 && \"projects\" === t.get(0) && \"databases\" === t.get(2);\n}\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Represents a transform within a TransformMutation. */\n\n\nvar Ye = function Ye() {\n // Make sure that the structural type of `TransformOperation` is unique.\n // See https://github.com/microsoft/TypeScript/issues/5451\n this.He = void 0;\n};\n/**\n * Computes the local transform result against the provided `previousValue`,\n * optionally using the provided localWriteTime.\n */\n\n\nfunction $e(t, e, n) {\n return t instanceof Ze ? function (t, e) {\n var n = {\n fields: {\n __type__: {\n stringValue: \"server_timestamp\"\n },\n __local_write_time__: {\n timestampValue: {\n seconds: t.seconds,\n nanos: t.nanoseconds\n }\n }\n }\n };\n return e && (n.fields.__previous_value__ = e), {\n mapValue: n\n };\n }(n, e) : t instanceof tn ? en(t, e) : t instanceof nn ? rn(t, e) : function (t, e) {\n // PORTING NOTE: Since JavaScript's integer arithmetic is limited to 53 bit\n // precision and resolves overflows by reducing precision, we do not\n // manually cap overflows at 2^63.\n var n = Je(t, e),\n r = sn(n) + sn(t.je);\n return ce(n) && ce(t.je) ? ge(r) : me(t.serializer, r);\n }(t, e);\n}\n/**\n * Computes a final transform result after the transform has been acknowledged\n * by the server, potentially using the server-provided transformResult.\n */\n\n\nfunction Xe(t, e, n) {\n // The server just sends null as the transform result for array operations,\n // so we have to calculate a result the same as we do for local\n // applications.\n return t instanceof tn ? en(t, e) : t instanceof nn ? rn(t, e) : n;\n}\n/**\n * If this transform operation is not idempotent, returns the base value to\n * persist for this transform. If a base value is returned, the transform\n * operation is always applied to this base value, even if document has\n * already been updated.\n *\n * Base values provide consistent behavior for non-idempotent transforms and\n * allow us to return the same latency-compensated value even if the backend\n * has already applied the transform operation. The base value is null for\n * idempotent transforms, as they can be re-played even if the backend has\n * already applied them.\n *\n * @return a base value to store along with the mutation, or null for\n * idempotent transforms.\n */\n\n\nfunction Je(t, e) {\n return t instanceof on ? ce(n = e) || function (t) {\n return !!t && \"doubleValue\" in t;\n }(n) ? e : {\n integerValue: 0\n } : null;\n var n;\n}\n/** Transforms a value into a server-generated timestamp. */\n\n\nvar Ze =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n;\n}(Ye),\n tn =\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).elements = t, n;\n }\n\n return t.__extends(n, e), n;\n}(Ye);\n/** Transforms an array value via a union operation. */\n\n\nfunction en(t, e) {\n for (var n = un(e), r = function r(t) {\n n.some(function (e) {\n return Zt(e, t);\n }) || n.push(t);\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n\n return {\n arrayValue: {\n values: n\n }\n };\n}\n/** Transforms an array value via a remove operation. */\n\n\nvar nn =\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).elements = t, n;\n }\n\n return t.__extends(n, e), n;\n}(Ye);\n\nfunction rn(t, e) {\n for (var n = un(e), r = function r(t) {\n n = n.filter(function (e) {\n return !Zt(e, t);\n });\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n\n return {\n arrayValue: {\n values: n\n }\n };\n}\n/**\n * Implements the backend semantics for locally computed NUMERIC_ADD (increment)\n * transforms. Converts all field values to integers or doubles, but unlike the\n * backend does not cap integer values at 2^63. Instead, JavaScript number\n * arithmetic is used and precision loss can occur for values greater than 2^53.\n */\n\n\nvar on =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).serializer = t, r.je = n, r;\n }\n\n return t.__extends(n, e), n;\n}(Ye);\n\nfunction sn(t) {\n return se(t.integerValue || t.doubleValue);\n}\n\nfunction un(t) {\n return he(t) && t.arrayValue.values ? t.arrayValue.values.slice() : [];\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Provides a set of fields that can be used to partially patch a document.\n * FieldMask is used in conjunction with ObjectValue.\n * Examples:\n * foo - Overwrites foo entirely with the provided value. If foo is not\n * present in the companion ObjectValue, the field is deleted.\n * foo.bar - Overwrites only the field bar of the object foo.\n * If foo is not an object, foo is replaced with an object\n * containing foo\n */\n\n\nvar an =\n/** @class */\nfunction () {\n function t(t) {\n this.fields = t, // TODO(dimond): validation of FieldMask\n // Sort the field mask to support `FieldMask.isEqual()` and assert below.\n t.sort(N.i)\n /**\n * Verifies that `fieldPath` is included by at least one field in this field\n * mask.\n *\n * This is an O(n) operation, where `n` is the size of the field mask.\n */\n ;\n }\n\n return t.prototype.Ye = function (t) {\n for (var e = 0, n = this.fields; e < n.length; e++) {\n if (n[e].T(t)) return !0;\n }\n\n return !1;\n }, t.prototype.isEqual = function (t) {\n return Y(this.fields, t.fields, function (t, e) {\n return t.isEqual(e);\n });\n }, t;\n}(),\n cn = function cn(t, e) {\n this.field = t, this.transform = e;\n};\n/** A field path and the TransformOperation to perform upon it. */\n\n/** The result of successfully applying a mutation to the backend. */\n\n\nvar hn = function hn(\n/**\n * The version at which the mutation was committed:\n *\n * - For most operations, this is the updateTime in the WriteResult.\n * - For deletes, the commitTime of the WriteResponse (because deletes are\n * not stored and have no updateTime).\n *\n * Note that these versions can be different: No-op writes will not change\n * the updateTime even though the commitTime advances.\n */\nt,\n/**\n * The resulting fields returned from the backend after a\n * TransformMutation has been committed. Contains one FieldValue for each\n * FieldTransform that was in the mutation.\n *\n * Will be null if the mutation was not a TransformMutation.\n */\ne) {\n this.version = t, this.transformResults = e;\n},\n fn =\n/** @class */\nfunction () {\n function t(t, e) {\n this.updateTime = t, this.exists = e\n /** Creates a new empty Precondition. */\n ;\n }\n\n return t.ze = function () {\n return new t();\n },\n /** Creates a new Precondition with an exists flag. */\n t.exists = function (e) {\n return new t(void 0, e);\n },\n /** Creates a new Precondition based on a version a document exists at. */\n t.updateTime = function (e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"Ke\", {\n /** Returns whether this Precondition is empty. */\n get: function get() {\n return void 0 === this.updateTime && void 0 === this.exists;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function (t) {\n return this.exists === t.exists && (this.updateTime ? !!t.updateTime && this.updateTime.isEqual(t.updateTime) : !t.updateTime);\n }, t;\n}();\n/**\n * Encodes a precondition for a mutation. This follows the model that the\n * backend accepts with the special case of an explicit \"empty\" precondition\n * (meaning no precondition).\n */\n\n/**\n * Returns true if the preconditions is valid for the given document\n * (or null if no document is available).\n */\n\n\nfunction ln(t, e) {\n return void 0 !== t.updateTime ? e instanceof kn && e.version.isEqual(t.updateTime) : void 0 === t.exists || t.exists === e instanceof kn;\n}\n/**\n * A mutation describes a self-contained change to a document. Mutations can\n * create, replace, delete, and update subsets of documents.\n *\n * Mutations not only act on the value of the document but also its version.\n *\n * For local mutations (mutations that haven't been committed yet), we preserve\n * the existing version for Set, Patch, and Transform mutations. For Delete\n * mutations, we reset the version to 0.\n *\n * Here's the expected transition table.\n *\n * MUTATION APPLIED TO RESULTS IN\n *\n * SetMutation Document(v3) Document(v3)\n * SetMutation NoDocument(v3) Document(v0)\n * SetMutation null Document(v0)\n * PatchMutation Document(v3) Document(v3)\n * PatchMutation NoDocument(v3) NoDocument(v3)\n * PatchMutation null null\n * TransformMutation Document(v3) Document(v3)\n * TransformMutation NoDocument(v3) NoDocument(v3)\n * TransformMutation null null\n * DeleteMutation Document(v3) NoDocument(v0)\n * DeleteMutation NoDocument(v3) NoDocument(v0)\n * DeleteMutation null NoDocument(v0)\n *\n * For acknowledged mutations, we use the updateTime of the WriteResponse as\n * the resulting version for Set, Patch, and Transform mutations. As deletes\n * have no explicit update time, we use the commitTime of the WriteResponse for\n * Delete mutations.\n *\n * If a mutation is acknowledged by the backend but fails the precondition check\n * locally, we return an `UnknownDocument` and rely on Watch to send us the\n * updated version.\n *\n * Note that TransformMutations don't create Documents (in the case of being\n * applied to a NoDocument), even though they would on the backend. This is\n * because the client always combines the TransformMutation with a SetMutation\n * or PatchMutation and we only want to apply the transform if the prior\n * mutation resulted in a Document (always true for a SetMutation, but not\n * necessarily for a PatchMutation).\n *\n * ## Subclassing Notes\n *\n * Subclasses of Mutation need to implement applyToRemoteDocument() and\n * applyToLocalView() to implement the actual behavior of applying the mutation\n * to some source document.\n */\n\n\nvar pn = function pn() {};\n/**\n * Applies this mutation to the given MaybeDocument or null for the purposes\n * of computing a new remote document. If the input document doesn't match the\n * expected state (e.g. it is null or outdated), an `UnknownDocument` can be\n * returned.\n *\n * @param mutation The mutation to apply.\n * @param maybeDoc The document to mutate. The input document can be null if\n * the client has no knowledge of the pre-mutation state of the document.\n * @param mutationResult The result of applying the mutation from the backend.\n * @return The mutated document. The returned document may be an\n * UnknownDocument if the mutation could not be applied to the locally\n * cached base document.\n */\n\n\nfunction dn(t, e, n) {\n return t instanceof wn ? function (t, e, n) {\n // Unlike applySetMutationToLocalView, if we're applying a mutation to a\n // remote document the server has accepted the mutation so the precondition\n // must have held.\n return new kn(t.key, n.version, t.value, {\n hasCommittedMutations: !0\n });\n }(t, 0, n) : t instanceof _n ? function (t, e, n) {\n if (!ln(t.Ge, e)) // Since the mutation was not rejected, we know that the precondition\n // matched on the backend. We therefore must not have the expected version\n // of the document in our cache and return an UnknownDocument with the\n // known updateTime.\n return new On(t.key, n.version);\n var r = bn(t, e);\n return new kn(t.key, n.version, r, {\n hasCommittedMutations: !0\n });\n }(t, e, n) : t instanceof In ? function (t, e, n) {\n if (g(null != n.transformResults), !ln(t.Ge, e)) // Since the mutation was not rejected, we know that the precondition\n // matched on the backend. We therefore must not have the expected version\n // of the document in our cache and return an UnknownDocument with the\n // known updateTime.\n return new On(t.key, n.version);\n\n var r = En(t, e),\n i =\n /**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use after a\n * TransformMutation has been acknowledged by the server.\n *\n * @param fieldTransforms The field transforms to apply the result to.\n * @param baseDoc The document prior to applying this mutation batch.\n * @param serverTransformResults The transform results received by the server.\n * @return The transform results list.\n */\n function (t, e, n) {\n var r = [];\n g(t.length === n.length);\n\n for (var i = 0; i < n.length; i++) {\n var o = t[i],\n s = o.transform,\n u = null;\n e instanceof kn && (u = e.field(o.field)), r.push(Xe(s, u, n[i]));\n }\n\n return r;\n }(t.fieldTransforms, e, n.transformResults),\n o = n.version,\n s = Tn(t, r.data(), i);\n\n return new kn(t.key, o, s, {\n hasCommittedMutations: !0\n });\n }(t, e, n) : function (t, e, n) {\n // Unlike applyToLocalView, if we're applying a mutation to a remote\n // document the server has accepted the mutation so the precondition must\n // have held.\n return new Rn(t.key, n.version, {\n hasCommittedMutations: !0\n });\n }(t, 0, n);\n}\n/**\n * Applies this mutation to the given MaybeDocument or null for the purposes\n * of computing the new local view of a document. Both the input and returned\n * documents can be null.\n *\n * @param mutation The mutation to apply.\n * @param maybeDoc The document to mutate. The input document can be null if\n * the client has no knowledge of the pre-mutation state of the document.\n * @param baseDoc The state of the document prior to this mutation batch. The\n * input document can be null if the client has no knowledge of the\n * pre-mutation state of the document.\n * @param localWriteTime A timestamp indicating the local write time of the\n * batch this mutation is a part of.\n * @return The mutated document. The returned document may be null, but only\n * if maybeDoc was null and the mutation would not create a new document.\n */\n\n\nfunction vn(t, e, n, r) {\n return t instanceof wn ? function (t, e) {\n if (!ln(t.Ge, e)) return e;\n var n = mn(e);\n return new kn(t.key, n, t.value, {\n Je: !0\n });\n }(t, e) : t instanceof _n ? function (t, e) {\n if (!ln(t.Ge, e)) return e;\n var n = mn(e),\n r = bn(t, e);\n return new kn(t.key, n, r, {\n Je: !0\n });\n }(t, e) : t instanceof In ? function (t, e, n, r) {\n if (!ln(t.Ge, e)) return e;\n\n var i = En(t, e),\n o = function (t, e, n, r) {\n for (var i = [], o = 0, s = t; o < s.length; o++) {\n var u = s[o],\n a = u.transform,\n c = null;\n n instanceof kn && (c = n.field(u.field)), null === c && r instanceof kn && ( // If the current document does not contain a value for the mutated\n // field, use the value that existed before applying this mutation\n // batch. This solves an edge case where a PatchMutation clears the\n // values in a nested map before the TransformMutation is applied.\n c = r.field(u.field)), i.push($e(a, c, e));\n }\n\n return i;\n }(t.fieldTransforms, n, e, r),\n s = Tn(t, i.data(), o);\n\n return new kn(t.key, i.version, s, {\n Je: !0\n });\n }(t, e, r, n) : function (t, e) {\n return ln(t.Ge, e) ? new Rn(t.key, st.min()) : e;\n }(t, e);\n}\n/**\n * If this mutation is not idempotent, returns the base value to persist with\n * this mutation. If a base value is returned, the mutation is always applied\n * to this base value, even if document has already been updated.\n *\n * The base value is a sparse object that consists of only the document\n * fields for which this mutation contains a non-idempotent transformation\n * (e.g. a numeric increment). The provided value guarantees consistent\n * behavior for non-idempotent transforms and allow us to return the same\n * latency-compensated value even if the backend has already applied the\n * mutation. The base value is null for idempotent mutations, as they can be\n * re-played even if the backend has already applied them.\n *\n * @return a base value to store along with the mutation, or null for\n * idempotent mutations.\n */\n\n\nfunction yn(t, e) {\n return t instanceof In ? function (t, e) {\n for (var n = null, r = 0, i = t.fieldTransforms; r < i.length; r++) {\n var o = i[r],\n s = e instanceof kn ? e.field(o.field) : void 0,\n u = Je(o.transform, s || null);\n null != u && (n = null == n ? new Dn().set(o.field, u) : n.set(o.field, u));\n }\n\n return n ? n.Xe() : null;\n }(t, e) : null;\n}\n\nfunction gn(t, e) {\n return t.type === e.type && !!t.key.isEqual(e.key) && !!t.Ge.isEqual(e.Ge) && (0\n /* Set */\n === t.type ? t.value.isEqual(e.value) : 1\n /* Patch */\n === t.type ? t.data.isEqual(e.data) && t.We.isEqual(e.We) : 2\n /* Transform */\n !== t.type || Y(t.fieldTransforms, t.fieldTransforms, function (t, e) {\n return function (t, e) {\n return t.field.isEqual(e.field) && function (t, e) {\n return t instanceof tn && e instanceof tn || t instanceof nn && e instanceof nn ? Y(t.elements, e.elements, Zt) : t instanceof on && e instanceof on ? Zt(t.je, e.je) : t instanceof Ze && e instanceof Ze;\n }(t.transform, e.transform);\n }(t, e);\n }));\n}\n/**\n * Returns the version from the given document for use as the result of a\n * mutation. Mutations are defined to return the version of the base document\n * only if it is an existing document. Deleted and unknown documents have a\n * post-mutation version of SnapshotVersion.min().\n */\n\n\nfunction mn(t) {\n return t instanceof kn ? t.version : st.min();\n}\n/**\n * A mutation that creates or replaces the document at the given key with the\n * object value contents.\n */\n\n\nvar wn =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).key = t, i.value = n, i.Ge = r, i.type = 0\n /* Set */\n , i;\n }\n\n return t.__extends(n, e), n;\n}(pn),\n _n =\n/** @class */\nfunction (e) {\n function n(t, n, r, i) {\n var o = this;\n return (o = e.call(this) || this).key = t, o.data = n, o.We = r, o.Ge = i, o.type = 1\n /* Patch */\n , o;\n }\n\n return t.__extends(n, e), n;\n}(pn);\n\nfunction bn(t, e) {\n return function (t, e) {\n var n = new Dn(e);\n return t.We.fields.forEach(function (e) {\n if (!e.m()) {\n var r = t.data.field(e);\n null !== r ? n.set(e, r) : n.delete(e);\n }\n }), n.Xe();\n }(t, e instanceof kn ? e.data() : Sn.empty());\n}\n\nvar In =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).key = t, r.fieldTransforms = n, r.type = 2\n /* Transform */\n , // NOTE: We set a precondition of exists: true as a safety-check, since we\n // always combine TransformMutations with a SetMutation or PatchMutation which\n // (if successful) should end up with an existing document.\n r.Ge = fn.exists(!0), r;\n }\n\n return t.__extends(n, e), n;\n}(pn);\n\nfunction En(t, e) {\n return e;\n}\n\nfunction Tn(t, e, n) {\n for (var r = new Dn(e), i = 0; i < t.fieldTransforms.length; i++) {\n var o = t.fieldTransforms[i];\n r.set(o.field, n[i]);\n }\n\n return r.Xe();\n}\n/** A mutation that deletes the document at the given key. */\n\n\nvar Nn =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).key = t, r.Ge = n, r.type = 3\n /* Delete */\n , r;\n }\n\n return t.__extends(n, e), n;\n}(pn),\n An =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).key = t, r.Ge = n, r.type = 4\n /* Verify */\n , r;\n }\n\n return t.__extends(n, e), n;\n}(pn),\n Sn =\n/** @class */\nfunction () {\n function t(t) {\n this.proto = t;\n }\n\n return t.empty = function () {\n return new t({\n mapValue: {}\n });\n },\n /**\n * Returns the value at the given path or null.\n *\n * @param path the path to search\n * @return The value at the path or if there it doesn't exist.\n */\n t.prototype.field = function (t) {\n if (t.m()) return this.proto;\n\n for (var e = this.proto, n = 0; n < t.length - 1; ++n) {\n if (!e.mapValue.fields) return null;\n if (!pe(e = e.mapValue.fields[t.get(n)])) return null;\n }\n\n return (e = (e.mapValue.fields || {})[t._()]) || null;\n }, t.prototype.isEqual = function (t) {\n return Zt(this.proto, t.proto);\n }, t;\n}(),\n Dn =\n/** @class */\nfunction () {\n /**\n * @param baseObject The object to mutate.\n */\n function t(t) {\n void 0 === t && (t = Sn.empty()), this.Ze = t,\n /** A map that contains the accumulated changes in this builder. */\n this.tn = new Map();\n }\n /**\n * Sets the field to the provided value.\n *\n * @param path The field path to set.\n * @param value The value to set.\n * @return The current Builder instance.\n */\n\n\n return t.prototype.set = function (t, e) {\n return this.en(t, e), this;\n },\n /**\n * Removes the field at the specified path. If there is no field at the\n * specified path, nothing is changed.\n *\n * @param path The field path to remove.\n * @return The current Builder instance.\n */\n t.prototype.delete = function (t) {\n return this.en(t, null), this;\n },\n /**\n * Adds `value` to the overlay map at `path`. Creates nested map entries if\n * needed.\n */\n t.prototype.en = function (t, e) {\n for (var n = this.tn, r = 0; r < t.length - 1; ++r) {\n var i = t.get(r),\n o = n.get(i);\n o instanceof Map ? // Re-use a previously created map\n n = o : o && 10\n /* ObjectValue */\n === Jt(o) ? ( // Convert the existing Protobuf MapValue into a map\n o = new Map(Object.entries(o.mapValue.fields || {})), n.set(i, o), n = o) : ( // Create an empty map to represent the current nesting level\n o = new Map(), n.set(i, o), n = o);\n }\n\n n.set(t._(), e);\n },\n /** Returns an ObjectValue with all mutations applied. */\n t.prototype.Xe = function () {\n var t = this.nn(N.P(), this.tn);\n return null != t ? new Sn(t) : this.Ze;\n },\n /**\n * Applies any overlays from `currentOverlays` that exist at `currentPath`\n * and returns the merged data at `currentPath` (or null if there were no\n * changes).\n *\n * @param currentPath The path at the current nesting level. Can be set to\n * FieldValue.emptyPath() to represent the root.\n * @param currentOverlays The overlays at the current nesting level in the\n * same format as `overlayMap`.\n * @return The merged data at `currentPath` or null if no modifications\n * were applied.\n */\n t.prototype.nn = function (t, e) {\n var n = this,\n r = !1,\n i = this.Ze.field(t),\n o = pe(i) ? // If there is already data at the current path, base our\n Object.assign({}, i.mapValue.fields) : {};\n return e.forEach(function (e, i) {\n if (e instanceof Map) {\n var s = n.nn(t.child(i), e);\n null != s && (o[i] = s, r = !0);\n } else null !== e ? (o[i] = e, r = !0) : o.hasOwnProperty(i) && (delete o[i], r = !0);\n }), r ? {\n mapValue: {\n fields: o\n }\n } : null;\n }, t;\n}();\n/**\n * Returns a FieldMask built from all fields in a MapValue.\n */\n\n\nfunction xn(t) {\n var e = [];\n return _(t.fields || {}, function (t, n) {\n var r = new N([t]);\n\n if (pe(n)) {\n var i = xn(n.mapValue).fields;\n if (0 === i.length) // Preserve the empty map by adding it to the FieldMask.\n e.push(r);else // For nested and non-empty ObjectValues, add the FieldPath of the\n // leaf nodes.\n for (var o = 0, s = i; o < s.length; o++) {\n var u = s[o];\n e.push(r.child(u));\n }\n } else // For nested and non-empty ObjectValues, add the FieldPath of the leaf\n // nodes.\n e.push(r);\n }), new an(e)\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * The result of a lookup for a given path may be an existing document or a\n * marker that this document does not exist at a given version.\n */\n ;\n}\n\nvar Ln = function Ln(t, e) {\n this.key = t, this.version = e;\n},\n kn =\n/** @class */\nfunction (e) {\n function n(t, n, r, i) {\n var o = this;\n return (o = e.call(this, t, n) || this).sn = r, o.Je = !!i.Je, o.hasCommittedMutations = !!i.hasCommittedMutations, o;\n }\n\n return t.__extends(n, e), n.prototype.field = function (t) {\n return this.sn.field(t);\n }, n.prototype.data = function () {\n return this.sn;\n }, n.prototype.rn = function () {\n return this.sn.proto;\n }, n.prototype.isEqual = function (t) {\n return t instanceof n && this.key.isEqual(t.key) && this.version.isEqual(t.version) && this.Je === t.Je && this.hasCommittedMutations === t.hasCommittedMutations && this.sn.isEqual(t.sn);\n }, n.prototype.toString = function () {\n return \"Document(\" + this.key + \", \" + this.version + \", \" + this.sn.toString() + \", {hasLocalMutations: \" + this.Je + \"}), {hasCommittedMutations: \" + this.hasCommittedMutations + \"})\";\n }, Object.defineProperty(n.prototype, \"hasPendingWrites\", {\n get: function get() {\n return this.Je || this.hasCommittedMutations;\n },\n enumerable: !1,\n configurable: !0\n }), n;\n}(Ln),\n Rn =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this, t, n) || this).hasCommittedMutations = !(!r || !r.hasCommittedMutations), i;\n }\n\n return t.__extends(n, e), n.prototype.toString = function () {\n return \"NoDocument(\" + this.key + \", \" + this.version + \")\";\n }, Object.defineProperty(n.prototype, \"hasPendingWrites\", {\n get: function get() {\n return this.hasCommittedMutations;\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.isEqual = function (t) {\n return t instanceof n && t.hasCommittedMutations === this.hasCommittedMutations && t.version.isEqual(this.version) && t.key.isEqual(this.key);\n }, n;\n}(Ln),\n On =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.toString = function () {\n return \"UnknownDocument(\" + this.key + \", \" + this.version + \")\";\n }, Object.defineProperty(n.prototype, \"hasPendingWrites\", {\n get: function get() {\n return !0;\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.isEqual = function (t) {\n return t instanceof n && t.version.isEqual(this.version) && t.key.isEqual(this.key);\n }, n;\n}(Ln),\n Pn =\n/**\n * Initializes a Query with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n */\nfunction Pn(t, e, n, r, i, o\n/* First */\n, s, u) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), void 0 === i && (i = null), void 0 === o && (o = \"F\"), void 0 === s && (s = null), void 0 === u && (u = null), this.path = t, this.collectionGroup = e, this.on = n, this.filters = r, this.limit = i, this.an = o, this.startAt = s, this.endAt = u, this.cn = null, // The corresponding `Target` of this `Query` instance.\n this.un = null, this.startAt, this.endAt;\n};\n/**\n * Represents a document in Firestore with a key, version, data and whether the\n * data has local mutations applied to it.\n */\n\n/** Creates a new Query instance with the options provided. */\n\n\nfunction Vn(t, e, n, r, i, o, s, u) {\n return new Pn(t, e, n, r, i, o, s, u);\n}\n/** Creates a new Query for a query that matches all documents at `path` */\n\n\nfunction Un(t) {\n return new Pn(t);\n}\n/**\n * Helper to convert a collection group query into a collection query at a\n * specific path. This is used when executing collection group queries, since\n * we have to split the query into a set of collection queries at multiple\n * paths.\n */\n\n\nfunction Cn(t) {\n return !ut(t.limit) && \"F\"\n /* First */\n === t.an;\n}\n\nfunction Fn(t) {\n return !ut(t.limit) && \"L\"\n /* Last */\n === t.an;\n}\n\nfunction Mn(t) {\n return t.on.length > 0 ? t.on[0].field : null;\n}\n\nfunction qn(t) {\n for (var e = 0, n = t.filters; e < n.length; e++) {\n var r = n[e];\n if (r.hn()) return r.field;\n }\n\n return null;\n}\n/**\n * Checks if any of the provided Operators are included in the query and\n * returns the first one that is, or null if none are.\n */\n\n/**\n * Returns whether the query matches a collection group rather than a specific\n * collection.\n */\n\n\nfunction jn(t) {\n return null !== t.collectionGroup;\n}\n/**\n * Returns the implicit order by constraint that is used to execute the Query,\n * which can be different from the order by constraints the user provided (e.g.\n * the SDK and backend always orders by `__name__`).\n */\n\n\nfunction Gn(t) {\n var e = m(t);\n\n if (null === e.cn) {\n e.cn = [];\n var n = qn(e),\n r = Mn(e);\n if (null !== n && null === r) // In order to implicitly add key ordering, we must also add the\n // inequality filter field for it to be a valid query.\n // Note that the default inequality field and key ordering is ascending.\n n.p() || e.cn.push(new fr(n)), e.cn.push(new fr(N.v(), \"asc\"\n /* ASCENDING */\n ));else {\n for (var i = !1, o = 0, s = e.on; o < s.length; o++) {\n var u = s[o];\n e.cn.push(u), u.field.p() && (i = !0);\n }\n\n if (!i) {\n // The order of the implicit key ordering always matches the last\n // explicit order by\n var a = e.on.length > 0 ? e.on[e.on.length - 1].dir : \"asc\"\n /* ASCENDING */\n ;\n e.cn.push(new fr(N.v(), a));\n }\n }\n }\n\n return e.cn;\n}\n/**\n * Converts this `Query` instance to it's corresponding `Target` representation.\n */\n\n\nfunction zn(t) {\n var e = m(t);\n if (!e.un) if (\"F\"\n /* First */\n === e.an) e.un = ft(e.path, e.collectionGroup, Gn(e), e.filters, e.limit, e.startAt, e.endAt);else {\n for ( // Flip the orderBy directions since we want the last results\n var n = [], r = 0, i = Gn(e); r < i.length; r++) {\n var o = i[r],\n s = \"desc\"\n /* DESCENDING */\n === o.dir ? \"asc\"\n /* ASCENDING */\n : \"desc\"\n /* DESCENDING */\n ;\n n.push(new fr(o.field, s));\n } // We need to swap the cursors to match the now-flipped query ordering.\n\n\n var u = e.endAt ? new ur(e.endAt.position, !e.endAt.before) : null,\n a = e.startAt ? new ur(e.startAt.position, !e.startAt.before) : null; // Now return as a LimitType.First query.\n\n e.un = ft(e.path, e.collectionGroup, n, e.filters, e.limit, u, a);\n }\n return e.un;\n}\n\nfunction Bn(t, e, n) {\n return new Pn(t.path, t.collectionGroup, t.on.slice(), t.filters.slice(), e, n, t.startAt, t.endAt);\n}\n\nfunction Wn(t, e) {\n return new Pn(t.path, t.collectionGroup, t.on.slice(), t.filters.slice(), t.limit, t.an, e, t.endAt);\n}\n\nfunction Kn(t, e) {\n return new Pn(t.path, t.collectionGroup, t.on.slice(), t.filters.slice(), t.limit, t.an, t.startAt, e);\n}\n\nfunction Qn(t, e) {\n return pt(zn(t), zn(e)) && t.an === e.an;\n} // TODO(b/29183165): This is used to get a unique string from a query to, for\n// example, use as a dictionary key, but the implementation is subject to\n// collisions. Make it collision-free.\n\n\nfunction Hn(t) {\n return lt(zn(t)) + \"|lt:\" + t.an;\n}\n\nfunction Yn(t) {\n return \"Query(target=\" + function (t) {\n var e = t.path.R();\n return null !== t.collectionGroup && (e += \" collectionGroup=\" + t.collectionGroup), t.filters.length > 0 && (e += \", filters: [\" + t.filters.map(function (t) {\n return (e = t).field.R() + \" \" + e.op + \" \" + re(e.value);\n /** Returns a debug description for `filter`. */\n\n var e;\n /** Filter that matches on key fields (i.e. '__name__'). */\n }).join(\", \") + \"]\"), ut(t.limit) || (e += \", limit: \" + t.limit), t.orderBy.length > 0 && (e += \", orderBy: [\" + t.orderBy.map(function (t) {\n return (e = t).field.R() + \" (\" + e.dir + \")\";\n var e;\n }).join(\", \") + \"]\"), t.startAt && (e += \", startAt: \" + ar(t.startAt)), t.endAt && (e += \", endAt: \" + ar(t.endAt)), \"Target(\" + e + \")\";\n }(zn(t)) + \"; limitType=\" + t.an + \")\";\n}\n/** Returns whether `doc` matches the constraints of `query`. */\n\n\nfunction $n(t, e) {\n return function (t, e) {\n var n = e.key.path;\n return null !== t.collectionGroup ? e.key.N(t.collectionGroup) && t.path.T(n) : A.F(t.path) ? t.path.isEqual(n) : t.path.I(n);\n }(t, e) && function (t, e) {\n for (var n = 0, r = t.on; n < r.length; n++) {\n var i = r[n]; // order by key always matches\n\n if (!i.field.p() && null === e.field(i.field)) return !1;\n }\n\n return !0;\n }(t, e) && function (t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n if (!r[n].matches(e)) return !1;\n }\n\n return !0;\n }(t, e) && function (t, e) {\n return !(t.startAt && !cr(t.startAt, Gn(t), e)) && (!t.endAt || !cr(t.endAt, Gn(t), e));\n }(t, e);\n}\n\nfunction Xn(t) {\n return function (e, n) {\n for (var r = !1, i = 0, o = Gn(t); i < o.length; i++) {\n var s = o[i],\n u = lr(s, e, n);\n if (0 !== u) return u;\n r = r || s.field.p();\n }\n\n return 0;\n };\n}\n\nvar Jn =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).field = t, i.op = n, i.value = r, i;\n }\n /**\n * Creates a filter based on the provided arguments.\n */\n\n\n return t.__extends(n, e), n.create = function (t, e, r) {\n if (t.p()) return \"in\"\n /* IN */\n === e || \"not-in\"\n /* NOT_IN */\n === e ? this.ln(t, e, r) : new Zn(t, e, r);\n\n if (fe(r)) {\n if (\"==\"\n /* EQUAL */\n !== e && \"!=\"\n /* NOT_EQUAL */\n !== e) throw new c(a.INVALID_ARGUMENT, \"Invalid query. Null only supports '==' and '!=' comparisons.\");\n return new n(t, e, r);\n }\n\n if (le(r)) {\n if (\"==\"\n /* EQUAL */\n !== e && \"!=\"\n /* NOT_EQUAL */\n !== e) throw new c(a.INVALID_ARGUMENT, \"Invalid query. NaN only supports '==' and '!=' comparisons.\");\n return new n(t, e, r);\n }\n\n return \"array-contains\"\n /* ARRAY_CONTAINS */\n === e ? new rr(t, r) : \"in\"\n /* IN */\n === e ? new ir(t, r) : \"not-in\"\n /* NOT_IN */\n === e ? new or(t, r) : \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n === e ? new sr(t, r) : new n(t, e, r);\n }, n.ln = function (t, e, n) {\n return \"in\"\n /* IN */\n === e ? new tr(t, n) : new er(t, n);\n }, n.prototype.matches = function (t) {\n var e = t.field(this.field); // Types do not have to match in NOT_EQUAL filters.\n\n return \"!=\"\n /* NOT_EQUAL */\n === this.op ? null !== e && this._n(ee(e, this.value)) : null !== e && Jt(this.value) === Jt(e) && this._n(ee(e, this.value)); // Only compare types with matching backend order (such as double and int).\n }, n.prototype._n = function (t) {\n switch (this.op) {\n case \"<\"\n /* LESS_THAN */\n :\n return t < 0;\n\n case \"<=\"\n /* LESS_THAN_OR_EQUAL */\n :\n return t <= 0;\n\n case \"==\"\n /* EQUAL */\n :\n return 0 === t;\n\n case \"!=\"\n /* NOT_EQUAL */\n :\n return 0 !== t;\n\n case \">\"\n /* GREATER_THAN */\n :\n return t > 0;\n\n case \">=\"\n /* GREATER_THAN_OR_EQUAL */\n :\n return t >= 0;\n\n default:\n return y();\n }\n }, n.prototype.hn = function () {\n return [\"<\"\n /* LESS_THAN */\n , \"<=\"\n /* LESS_THAN_OR_EQUAL */\n , \">\"\n /* GREATER_THAN */\n , \">=\"\n /* GREATER_THAN_OR_EQUAL */\n , \"!=\"\n /* NOT_EQUAL */\n , \"not-in\"\n /* NOT_IN */\n ].indexOf(this.op) >= 0;\n }, n;\n}(function () {});\n\nvar Zn =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this, t, n, r) || this).key = A.C(r.referenceValue), i;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n var e = A.i(t.key, this.key);\n return this._n(e);\n }, n;\n}(Jn),\n tr =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, \"in\"\n /* IN */\n , n) || this).keys = nr(\"in\"\n /* IN */\n , n), r;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n return this.keys.some(function (e) {\n return e.isEqual(t.key);\n });\n }, n;\n}(Jn),\n er =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, \"not-in\"\n /* NOT_IN */\n , n) || this).keys = nr(\"not-in\"\n /* NOT_IN */\n , n), r;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n return !this.keys.some(function (e) {\n return e.isEqual(t.key);\n });\n }, n;\n}(Jn);\n/** Filter that matches on key fields within an array. */\n\n\nfunction nr(t, e) {\n var n;\n return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map(function (t) {\n return A.C(t.referenceValue);\n });\n}\n/** A Filter that implements the array-contains operator. */\n\n\nvar rr =\n/** @class */\nfunction (e) {\n function n(t, n) {\n return e.call(this, t, \"array-contains\"\n /* ARRAY_CONTAINS */\n , n) || this;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n var e = t.field(this.field);\n return he(e) && te(e.arrayValue, this.value);\n }, n;\n}(Jn),\n ir =\n/** @class */\nfunction (e) {\n function n(t, n) {\n return e.call(this, t, \"in\"\n /* IN */\n , n) || this;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n var e = t.field(this.field);\n return null !== e && te(this.value.arrayValue, e);\n }, n;\n}(Jn),\n or =\n/** @class */\nfunction (e) {\n function n(t, n) {\n return e.call(this, t, \"not-in\"\n /* NOT_IN */\n , n) || this;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n if (te(this.value.arrayValue, {\n nullValue: \"NULL_VALUE\"\n })) return !1;\n var e = t.field(this.field);\n return null !== e && !te(this.value.arrayValue, e);\n }, n;\n}(Jn),\n sr =\n/** @class */\nfunction (e) {\n function n(t, n) {\n return e.call(this, t, \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , n) || this;\n }\n\n return t.__extends(n, e), n.prototype.matches = function (t) {\n var e = this,\n n = t.field(this.field);\n return !(!he(n) || !n.arrayValue.values) && n.arrayValue.values.some(function (t) {\n return te(e.value.arrayValue, t);\n });\n }, n;\n}(Jn),\n ur = function ur(t, e) {\n this.position = t, this.before = e;\n};\n/** A Filter that implements the IN operator. */\n\n\nfunction ar(t) {\n // TODO(b/29183165): Make this collision robust.\n return (t.before ? \"b\" : \"a\") + \":\" + t.position.map(function (t) {\n return re(t);\n }).join(\",\");\n}\n/**\n * Returns true if a document sorts before a bound using the provided sort\n * order.\n */\n\n\nfunction cr(t, e, n) {\n for (var r = 0, i = 0; i < t.position.length; i++) {\n var o = e[i],\n s = t.position[i];\n if (r = o.field.p() ? A.i(A.C(s.referenceValue), n.key) : ee(s, n.field(o.field)), \"desc\"\n /* DESCENDING */\n === o.dir && (r *= -1), 0 !== r) break;\n }\n\n return t.before ? r <= 0 : r < 0;\n}\n\nfunction hr(t, e) {\n if (null === t) return null === e;\n if (null === e) return !1;\n if (t.before !== e.before || t.position.length !== e.position.length) return !1;\n\n for (var n = 0; n < t.position.length; n++) {\n if (!Zt(t.position[n], e.position[n])) return !1;\n }\n\n return !0;\n}\n/**\n * An ordering on a field, in some Direction. Direction defaults to ASCENDING.\n */\n\n\nvar fr = function fr(t, e\n/* ASCENDING */\n) {\n void 0 === e && (e = \"asc\"), this.field = t, this.dir = e;\n};\n\nfunction lr(t, e, n) {\n var r = t.field.p() ? A.i(e.key, n.key) : function (t, e, n) {\n var r = e.field(t),\n i = n.field(t);\n return null !== r && null !== i ? ee(r, i) : y();\n }(t.field, e, n);\n\n switch (t.dir) {\n case \"asc\"\n /* ASCENDING */\n :\n return r;\n\n case \"desc\"\n /* DESCENDING */\n :\n return -1 * r;\n\n default:\n return y();\n }\n}\n\nfunction pr(t, e) {\n return t.dir === e.dir && t.field.isEqual(e.field);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar dr = function dr() {\n var t = this;\n this.promise = new Promise(function (e, n) {\n t.resolve = e, t.reject = n;\n });\n},\n vr =\n/** @class */\nfunction () {\n function t(\n /**\n * The AsyncQueue to run backoff operations on.\n */\n t,\n /**\n * The ID to use when scheduling backoff operations on the AsyncQueue.\n */\n e,\n /**\n * The initial delay (used as the base delay on the first retry attempt).\n * Note that jitter will still be applied, so the actual delay could be as\n * little as 0.5*initialDelayMs.\n */\n n\n /**\n * The multiplier to use to determine the extended base delay after each\n * attempt.\n */\n , r\n /**\n * The maximum base delay after which no further backoff is performed.\n * Note that jitter will still be applied, so the actual delay could be as\n * much as 1.5*maxDelayMs.\n */\n , i) {\n void 0 === n && (n = 1e3), void 0 === r && (r = 1.5), void 0 === i && (i = 6e4), this.fn = t, this.dn = e, this.wn = n, this.mn = r, this.Tn = i, this.En = 0, this.In = null,\n /** The last backoff attempt, as epoch milliseconds. */\n this.An = Date.now(), this.reset();\n }\n /**\n * Resets the backoff delay.\n *\n * The very next backoffAndWait() will have no delay. If it is called again\n * (i.e. due to an error), initialDelayMs (plus jitter) will be used, and\n * subsequent ones will increase according to the backoffFactor.\n */\n\n\n return t.prototype.reset = function () {\n this.En = 0;\n },\n /**\n * Resets the backoff delay to the maximum delay (e.g. for use after a\n * RESOURCE_EXHAUSTED error).\n */\n t.prototype.Rn = function () {\n this.En = this.Tn;\n },\n /**\n * Returns a promise that resolves after currentDelayMs, and increases the\n * delay for any subsequent attempts. If there was a pending backoff operation\n * already, it will be canceled.\n */\n t.prototype.gn = function (t) {\n var e = this; // Cancel any pending backoff operation.\n\n this.cancel(); // First schedule using the current base (which may be 0 and should be\n // honored as such).\n\n var n = Math.floor(this.En + this.Pn()),\n r = Math.max(0, Date.now() - this.An),\n i = Math.max(0, n - r); // Guard against lastAttemptTime being in the future due to a clock change.\n\n i > 0 && l(\"ExponentialBackoff\", \"Backing off for \" + i + \" ms (base delay: \" + this.En + \" ms, delay with jitter: \" + n + \" ms, last attempt: \" + r + \" ms ago)\"), this.In = this.fn.yn(this.dn, i, function () {\n return e.An = Date.now(), t();\n }), // Apply backoff factor to determine next delay and ensure it is within\n // bounds.\n this.En *= this.mn, this.En < this.wn && (this.En = this.wn), this.En > this.Tn && (this.En = this.Tn);\n }, t.prototype.Vn = function () {\n null !== this.In && (this.In.pn(), this.In = null);\n }, t.prototype.cancel = function () {\n null !== this.In && (this.In.cancel(), this.In = null);\n },\n /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */\n t.prototype.Pn = function () {\n return (Math.random() - .5) * this.En;\n }, t;\n}(),\n yr =\n/** @class */\nfunction () {\n function t(t) {\n var e = this; // NOTE: next/catchCallback will always point to our own wrapper functions,\n // not the user's raw next() or catch() callbacks.\n\n this.bn = null, this.vn = null, // When the operation resolves, we'll set result or error and mark isDone.\n this.result = void 0, this.error = void 0, this.Sn = !1, // Set to true when .then() or .catch() are called and prevents additional\n // chaining.\n this.Dn = !1, t(function (t) {\n e.Sn = !0, e.result = t, e.bn && // value should be defined unless T is Void, but we can't express\n // that in the type system.\n e.bn(t);\n }, function (t) {\n e.Sn = !0, e.error = t, e.vn && e.vn(t);\n });\n }\n\n return t.prototype.catch = function (t) {\n return this.next(void 0, t);\n }, t.prototype.next = function (e, n) {\n var r = this;\n return this.Dn && y(), this.Dn = !0, this.Sn ? this.error ? this.Cn(n, this.error) : this.Nn(e, this.result) : new t(function (t, i) {\n r.bn = function (n) {\n r.Nn(e, n).next(t, i);\n }, r.vn = function (e) {\n r.Cn(n, e).next(t, i);\n };\n });\n }, t.prototype.Fn = function () {\n var t = this;\n return new Promise(function (e, n) {\n t.next(e, n);\n });\n }, t.prototype.xn = function (e) {\n try {\n var n = e();\n return n instanceof t ? n : t.resolve(n);\n } catch (e) {\n return t.reject(e);\n }\n }, t.prototype.Nn = function (e, n) {\n return e ? this.xn(function () {\n return e(n);\n }) : t.resolve(n);\n }, t.prototype.Cn = function (e, n) {\n return e ? this.xn(function () {\n return e(n);\n }) : t.reject(n);\n }, t.resolve = function (e) {\n return new t(function (t, n) {\n t(e);\n });\n }, t.reject = function (e) {\n return new t(function (t, n) {\n n(e);\n });\n }, t.$n = function ( // Accept all Promise types in waitFor().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n e) {\n return new t(function (t, n) {\n var r = 0,\n i = 0,\n o = !1;\n e.forEach(function (e) {\n ++r, e.next(function () {\n ++i, o && i === r && t();\n }, function (t) {\n return n(t);\n });\n }), o = !0, i === r && t();\n });\n },\n /**\n * Given an array of predicate functions that asynchronously evaluate to a\n * boolean, implements a short-circuiting `or` between the results. Predicates\n * will be evaluated until one of them returns `true`, then stop. The final\n * result will be whether any of them returned `true`.\n */\n t.kn = function (e) {\n for (var n = t.resolve(!1), r = function r(e) {\n n = n.next(function (n) {\n return n ? t.resolve(n) : e();\n });\n }, i = 0, o = e; i < o.length; i++) {\n r(o[i]);\n }\n\n return n;\n }, t.forEach = function (t, e) {\n var n = this,\n r = [];\n return t.forEach(function (t, i) {\n r.push(e.call(n, t, i));\n }), this.$n(r);\n }, t;\n}(),\n gr =\n/** @class */\nfunction () {\n /*\n * Creates a new SimpleDb wrapper for IndexedDb database `name`.\n *\n * Note that `version` must not be a downgrade. IndexedDB does not support\n * downgrading the schema version. We currently do not support any way to do\n * versioning outside of IndexedDB's versioning mechanism, as only\n * version-upgrade transactions are allowed to do things like create\n * objectstores.\n */\n function e(t, n, i) {\n this.name = t, this.version = n, this.Mn = i, // NOTE: According to https://bugs.webkit.org/show_bug.cgi?id=197050, the\n // bug we're checking for should exist in iOS >= 12.2 and < 13, but for\n // whatever reason it's much harder to hit after 12.2 so we only proactively\n // log on 12.2.\n 12.2 === e.On(r.getUA()) && p(\"Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n }\n /** Deletes the specified database. */\n\n\n return e.delete = function (t) {\n return l(\"SimpleDb\", \"Removing database:\", t), Er(window.indexedDB.deleteDatabase(t)).Fn();\n },\n /** Returns true if IndexedDB is available in the current environment. */\n e.Ln = function () {\n if (\"undefined\" == typeof indexedDB) return !1;\n if (e.Bn()) return !0; // We extensively use indexed array values and compound keys,\n // which IE and Edge do not support. However, they still have indexedDB\n // defined on the window, so we need to check for them here and make sure\n // to return that persistence is not enabled for those browsers.\n // For tracking support of this feature, see here:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/status/indexeddbarraysandmultientrysupport/\n // Check the UA string to find out the browser.\n\n var t = r.getUA(),\n n = e.On(t),\n i = 0 < n && n < 10,\n o = e.qn(t),\n s = 0 < o && o < 4.5; // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n // Edge\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,\n // like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n // iOS Safari: Disable for users running iOS version < 10.\n\n return !(t.indexOf(\"MSIE \") > 0 || t.indexOf(\"Trident/\") > 0 || t.indexOf(\"Edge/\") > 0 || i || s);\n },\n /**\n * Returns true if the backing IndexedDB store is the Node IndexedDBShim\n * (see https://github.com/axemclion/IndexedDBShim).\n */\n e.Bn = function () {\n var t;\n return \"undefined\" != typeof process && \"YES\" === (null === (t = process.env) || void 0 === t ? void 0 : t.Un);\n },\n /** Helper to get a typed SimpleDbStore from a transaction. */\n e.Qn = function (t, e) {\n return t.store(e);\n }, // visible for testing\n\n /** Parse User Agent to determine iOS version. Returns -1 if not found. */\n e.On = function (t) {\n var e = t.match(/i(?:phone|pad|pod) os ([\\d_]+)/i),\n n = e ? e[1].split(\"_\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }, // visible for testing\n\n /** Parse User Agent to determine Android version. Returns -1 if not found. */\n e.qn = function (t) {\n var e = t.match(/Android ([\\d.]+)/i),\n n = e ? e[1].split(\".\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n },\n /**\n * Opens the specified database, creating or upgrading it if necessary.\n */\n e.prototype.Wn = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n,\n r = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.db ? [3\n /*break*/\n , 2] : (l(\"SimpleDb\", \"Opening database:\", this.name), n = this, [4\n /*yield*/\n , new Promise(function (t, n) {\n // TODO(mikelehen): Investigate browser compatibility.\n // https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB\n // suggests IE9 and older WebKit browsers handle upgrade\n // differently. They expect setVersion, as described here:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeRequest/setVersion\n var i = indexedDB.open(r.name, r.version);\n i.onsuccess = function (e) {\n var n = e.target.result;\n t(n);\n }, i.onblocked = function () {\n n(new wr(e, \"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed.\"));\n }, i.onerror = function (t) {\n var r = t.target.error;\n \"VersionError\" === r.name ? n(new c(a.FAILED_PRECONDITION, \"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.\")) : n(new wr(e, r));\n }, i.onupgradeneeded = function (t) {\n l(\"SimpleDb\", 'Database \"' + r.name + '\" requires upgrade from version:', t.oldVersion);\n var e = t.target.result;\n r.Mn.createOrUpgrade(e, i.transaction, t.oldVersion, r.version).next(function () {\n l(\"SimpleDb\", \"Database upgrade to version \" + r.version + \" complete\");\n });\n };\n })]);\n\n case 1:\n n.db = t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n , (this.jn && (this.db.onversionchange = function (t) {\n return r.jn(t);\n }), this.db)];\n }\n });\n });\n }, e.prototype.Kn = function (t) {\n this.jn = t, this.db && (this.db.onversionchange = function (e) {\n return t(e);\n });\n }, e.prototype.runTransaction = function (e, n, r, i) {\n return t.__awaiter(this, void 0, void 0, function () {\n var o, s, u, a, c;\n return t.__generator(this, function (h) {\n switch (h.label) {\n case 0:\n o = \"readonly\" === n, s = 0, u = function u() {\n var n, u, c, h, f;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n ++s, t.label = 1;\n\n case 1:\n return t.trys.push([1, 4,, 5]), [4\n /*yield*/\n , a.Wn(e)];\n\n case 2:\n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n return a.db = t.sent(), n = br.open(a.db, e, o ? \"readonly\" : \"readwrite\", r), u = i(n).catch(function (t) {\n // Abort the transaction if there was an error.\n return n.abort(t), yr.reject(t);\n }).Fn(), c = {}, u.catch(function () {}), [4\n /*yield*/\n , n.Gn];\n\n case 3:\n return [2\n /*return*/\n , (c.value = ( // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n t.sent(), u), c)];\n\n case 4:\n return h = t.sent(), f = \"FirebaseError\" !== h.name && s < 3, l(\"SimpleDb\", \"Transaction failed with error:\", h.message, \"Retrying:\", f), a.close(), f ? [3\n /*break*/\n , 5] : [2\n /*return*/\n , {\n value: Promise.reject(h)\n }];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n }, a = this, h.label = 1;\n\n case 1:\n return [5\n /*yield**/\n , u()];\n\n case 2:\n if (\"object\" == typeof (c = h.sent())) return [2\n /*return*/\n , c.value];\n h.label = 3;\n\n case 3:\n return [3\n /*break*/\n , 1];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.close = function () {\n this.db && this.db.close(), this.db = void 0;\n }, e;\n}(),\n mr =\n/** @class */\nfunction () {\n function t(t) {\n this.zn = t, this.Hn = !1, this.Yn = null;\n }\n\n return Object.defineProperty(t.prototype, \"Sn\", {\n get: function get() {\n return this.Hn;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"Jn\", {\n get: function get() {\n return this.Yn;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"cursor\", {\n set: function set(t) {\n this.zn = t;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * This function can be called to stop iteration at any point.\n */\n t.prototype.done = function () {\n this.Hn = !0;\n },\n /**\n * This function can be called to skip to that next key, which could be\n * an index or a primary key.\n */\n t.prototype.Xn = function (t) {\n this.Yn = t;\n },\n /**\n * Delete the current cursor value from the object store.\n *\n * NOTE: You CANNOT do this with a keysOnly query.\n */\n t.prototype.delete = function () {\n return Er(this.zn.delete());\n }, t;\n}(),\n wr =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, a.UNAVAILABLE, \"IndexedDB transaction '\" + t + \"' failed: \" + n) || this).name = \"IndexedDbTransactionError\", r;\n }\n\n return t.__extends(n, e), n;\n}(c);\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A helper for running delayed tasks following an exponential backoff curve\n * between attempts.\n *\n * Each delay is made up of a \"base\" delay which follows the exponential\n * backoff curve, and a +/- 50% \"jitter\" that is calculated and added to the\n * base delay. This prevents clients from accidentally synchronizing their\n * delays causing spikes of load to the backend.\n */\n\n/** Verifies whether `e` is an IndexedDbTransactionError. */\n\n\nfunction _r(t) {\n // Use name equality, as instanceof checks on errors don't work with errors\n // that wrap other errors.\n return \"IndexedDbTransactionError\" === t.name;\n}\n/**\n * Wraps an IDBTransaction and exposes a store() method to get a handle to a\n * specific object store.\n */\n\n\nvar br =\n/** @class */\nfunction () {\n function t(t, e) {\n var n = this;\n this.action = t, this.transaction = e, this.aborted = !1,\n /**\n * A promise that resolves with the result of the IndexedDb transaction.\n */\n this.Zn = new dr(), this.transaction.oncomplete = function () {\n n.Zn.resolve();\n }, this.transaction.onabort = function () {\n e.error ? n.Zn.reject(new wr(t, e.error)) : n.Zn.resolve();\n }, this.transaction.onerror = function (e) {\n var r = Nr(e.target.error);\n n.Zn.reject(new wr(t, r));\n };\n }\n\n return t.open = function (e, n, r, i) {\n try {\n return new t(n, e.transaction(i, r));\n } catch (e) {\n throw new wr(n, e);\n }\n }, Object.defineProperty(t.prototype, \"Gn\", {\n get: function get() {\n return this.Zn.promise;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.abort = function (t) {\n t && this.Zn.reject(t), this.aborted || (l(\"SimpleDb\", \"Aborting transaction:\", t ? t.message : \"Client-initiated abort\"), this.aborted = !0, this.transaction.abort());\n },\n /**\n * Returns a SimpleDbStore for the specified store. All\n * operations performed on the SimpleDbStore happen within the context of this\n * transaction and it cannot be used anymore once the transaction is\n * completed.\n *\n * Note that we can't actually enforce that the KeyType and ValueType are\n * correct, but they allow type safety through the rest of the consuming code.\n */\n t.prototype.store = function (t) {\n var e = this.transaction.objectStore(t);\n return new Ir(e);\n }, t;\n}(),\n Ir =\n/** @class */\nfunction () {\n function t(t) {\n this.store = t;\n }\n\n return t.prototype.put = function (t, e) {\n var n;\n return void 0 !== e ? (l(\"SimpleDb\", \"PUT\", this.store.name, t, e), n = this.store.put(e, t)) : (l(\"SimpleDb\", \"PUT\", this.store.name, \"\", t), n = this.store.put(t)), Er(n);\n },\n /**\n * Adds a new value into an Object Store and returns the new key. Similar to\n * IndexedDb's `add()`, this method will fail on primary key collisions.\n *\n * @param value The object to write.\n * @return The key of the value to add.\n */\n t.prototype.add = function (t) {\n return l(\"SimpleDb\", \"ADD\", this.store.name, t, t), Er(this.store.add(t));\n },\n /**\n * Gets the object with the specified key from the specified store, or null\n * if no object exists with the specified key.\n *\n * @key The key of the object to get.\n * @return The object with the specified key or null if no object exists.\n */\n t.prototype.get = function (t) {\n var e = this; // We're doing an unsafe cast to ValueType.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n return Er(this.store.get(t)).next(function (n) {\n // Normalize nonexistence to null.\n return void 0 === n && (n = null), l(\"SimpleDb\", \"GET\", e.store.name, t, n), n;\n });\n }, t.prototype.delete = function (t) {\n return l(\"SimpleDb\", \"DELETE\", this.store.name, t), Er(this.store.delete(t));\n },\n /**\n * If we ever need more of the count variants, we can add overloads. For now,\n * all we need is to count everything in a store.\n *\n * Returns the number of rows in the store.\n */\n t.prototype.count = function () {\n return l(\"SimpleDb\", \"COUNT\", this.store.name), Er(this.store.count());\n }, t.prototype.ts = function (t, e) {\n var n = this.cursor(this.options(t, e)),\n r = [];\n return this.es(n, function (t, e) {\n r.push(e);\n }).next(function () {\n return r;\n });\n }, t.prototype.ns = function (t, e) {\n l(\"SimpleDb\", \"DELETE ALL\", this.store.name);\n var n = this.options(t, e);\n n.ss = !1;\n var r = this.cursor(n);\n return this.es(r, function (t, e, n) {\n return n.delete();\n });\n }, t.prototype.rs = function (t, e) {\n var n;\n e ? n = t : (n = {}, e = t);\n var r = this.cursor(n);\n return this.es(r, e);\n },\n /**\n * Iterates over a store, but waits for the given callback to complete for\n * each entry before iterating the next entry. This allows the callback to do\n * asynchronous work to determine if this iteration should continue.\n *\n * The provided callback should return `true` to continue iteration, and\n * `false` otherwise.\n */\n t.prototype.os = function (t) {\n var e = this.cursor({});\n return new yr(function (n, r) {\n e.onerror = function (t) {\n var e = Nr(t.target.error);\n r(e);\n }, e.onsuccess = function (e) {\n var r = e.target.result;\n r ? t(r.primaryKey, r.value).next(function (t) {\n t ? r.continue() : n();\n }) : n();\n };\n });\n }, t.prototype.es = function (t, e) {\n var n = [];\n return new yr(function (r, i) {\n t.onerror = function (t) {\n i(t.target.error);\n }, t.onsuccess = function (t) {\n var i = t.target.result;\n\n if (i) {\n var o = new mr(i),\n s = e(i.primaryKey, i.value, o);\n\n if (s instanceof yr) {\n var u = s.catch(function (t) {\n return o.done(), yr.reject(t);\n });\n n.push(u);\n }\n\n o.Sn ? r() : null === o.Jn ? i.continue() : i.continue(o.Jn);\n } else r();\n };\n }).next(function () {\n return yr.$n(n);\n });\n }, t.prototype.options = function (t, e) {\n var n = void 0;\n return void 0 !== t && (\"string\" == typeof t ? n = t : e = t), {\n index: n,\n range: e\n };\n }, t.prototype.cursor = function (t) {\n var e = \"next\";\n\n if (t.reverse && (e = \"prev\"), t.index) {\n var n = this.store.index(t.index);\n return t.ss ? n.openKeyCursor(t.range, e) : n.openCursor(t.range, e);\n }\n\n return this.store.openCursor(t.range, e);\n }, t;\n}();\n/**\n * A wrapper around an IDBObjectStore providing an API that:\n *\n * 1) Has generic KeyType / ValueType parameters to provide strongly-typed\n * methods for acting against the object store.\n * 2) Deals with IndexedDB's onsuccess / onerror event callbacks, making every\n * method return a PersistencePromise instead.\n * 3) Provides a higher-level API to avoid needing to do excessive wrapping of\n * intermediate IndexedDB types (IDBCursorWithValue, etc.)\n */\n\n/**\n * Wraps an IDBRequest in a PersistencePromise, using the onsuccess / onerror\n * handlers to resolve / reject the PersistencePromise as appropriate.\n */\n\n\nfunction Er(t) {\n return new yr(function (e, n) {\n t.onsuccess = function (t) {\n var n = t.target.result;\n e(n);\n }, t.onerror = function (t) {\n var e = Nr(t.target.error);\n n(e);\n };\n });\n} // Guard so we only report the error once.\n\n\nvar Tr = !1;\n\nfunction Nr(t) {\n var e = gr.On(r.getUA());\n\n if (e >= 12.2 && e < 13) {\n var n = \"An internal error was encountered in the Indexed Database server\";\n\n if (t.message.indexOf(n) >= 0) {\n // Wrap error in a more descriptive one.\n var i = new c(\"internal\", \"IOS_INDEXEDDB_BUG1: IndexedDb has thrown '\" + n + \"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n return Tr || (Tr = !0, // Throw a global exception outside of this promise chain, for the user to\n // potentially catch.\n setTimeout(function () {\n throw i;\n }, 0)), i;\n }\n }\n\n return t;\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** The Platform's 'window' implementation or null if not available. */\n\n\nfunction Ar() {\n // `window` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof window ? window : null;\n}\n/** The Platform's 'document' implementation or null if not available. */\n\n\nfunction Sr() {\n // `document` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof document ? document : null;\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents an operation scheduled to be run in the future on an AsyncQueue.\n *\n * It is created via DelayedOperation.createAndSchedule().\n *\n * Supports cancellation (via cancel()) and early execution (via skipDelay()).\n *\n * Note: We implement `PromiseLike` instead of `Promise`, as the `Promise` type\n * in newer versions of TypeScript defines `finally`, which is not available in\n * IE.\n */\n\n\nvar Dr =\n/** @class */\nfunction () {\n function t(t, e, n, r, i) {\n this.cs = t, this.dn = e, this.us = n, this.op = r, this.hs = i, this.ls = new dr(), this.then = this.ls.promise.then.bind(this.ls.promise), // It's normal for the deferred promise to be canceled (due to cancellation)\n // and so we attach a dummy catch callback to avoid\n // 'UnhandledPromiseRejectionWarning' log spam.\n this.ls.promise.catch(function (t) {})\n /**\n * Creates and returns a DelayedOperation that has been scheduled to be\n * executed on the provided asyncQueue after the provided delayMs.\n *\n * @param asyncQueue The queue to schedule the operation on.\n * @param id A Timer ID identifying the type of operation this is.\n * @param delayMs The delay (ms) before the operation should be scheduled.\n * @param op The operation to run.\n * @param removalCallback A callback to be called synchronously once the\n * operation is executed or canceled, notifying the AsyncQueue to remove it\n * from its delayedOperations list.\n * PORTING NOTE: This exists to prevent making removeDelayedOperation() and\n * the DelayedOperation class public.\n */\n ;\n }\n\n return t._s = function (e, n, r, i, o) {\n var s = new t(e, n, Date.now() + r, i, o);\n return s.start(r), s;\n },\n /**\n * Starts the timer. This is called immediately after construction by\n * createAndSchedule().\n */\n t.prototype.start = function (t) {\n var e = this;\n this.fs = setTimeout(function () {\n return e.ds();\n }, t);\n },\n /**\n * Queues the operation to run immediately (if it hasn't already been run or\n * canceled).\n */\n t.prototype.pn = function () {\n return this.ds();\n },\n /**\n * Cancels the operation if it hasn't already been executed or canceled. The\n * promise will be rejected.\n *\n * As long as the operation has not yet been run, calling cancel() provides a\n * guarantee that the operation will not be run.\n */\n t.prototype.cancel = function (t) {\n null !== this.fs && (this.clearTimeout(), this.ls.reject(new c(a.CANCELLED, \"Operation cancelled\" + (t ? \": \" + t : \"\"))));\n }, t.prototype.ds = function () {\n var t = this;\n this.cs.ws(function () {\n return null !== t.fs ? (t.clearTimeout(), t.op().then(function (e) {\n return t.ls.resolve(e);\n })) : Promise.resolve();\n });\n }, t.prototype.clearTimeout = function () {\n null !== this.fs && (this.hs(this), clearTimeout(this.fs), this.fs = null);\n }, t;\n}(),\n xr =\n/** @class */\nfunction () {\n function e() {\n var t = this; // The last promise in the queue.\n\n this.Ts = Promise.resolve(), // A list of retryable operations. Retryable operations are run in order and\n // retried with backoff.\n this.Es = [], // Is this AsyncQueue being shut down? Once it is set to true, it will not\n // be changed again.\n this.Is = !1, // Operations scheduled to be queued in the future. Operations are\n // automatically removed after they are run or canceled.\n this.As = [], // visible for testing\n this.Rs = null, // Flag set while there's an outstanding AsyncQueue operation, used for\n // assertion sanity-checks.\n this.gs = !1, // List of TimerIds to fast-forward delays for.\n this.Ps = [], // Backoff timer used to schedule retries for retryable operations\n this.ys = new vr(this, \"async_queue_retry\"\n /* AsyncQueueRetry */\n ), // Visibility handler that triggers an immediate retry of all retryable\n // operations. Meant to speed up recovery when we regain file system access\n // after page comes into foreground.\n this.Vs = function () {\n var e = Sr();\n e && l(\"AsyncQueue\", \"Visibility state changed to \", e.visibilityState), t.ys.Vn();\n };\n var e = Sr();\n e && \"function\" == typeof e.addEventListener && e.addEventListener(\"visibilitychange\", this.Vs);\n }\n\n return Object.defineProperty(e.prototype, \"ps\", {\n // Is this AsyncQueue being shut down? If true, this instance will not enqueue\n // any new operations, Promises from enqueue requests will not resolve.\n get: function get() {\n return this.Is;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Adds a new operation to the queue without waiting for it to complete (i.e.\n * we ignore the Promise result).\n */\n e.prototype.ws = function (t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.enqueue(t);\n },\n /**\n * Regardless if the queue has initialized shutdown, adds a new operation to the\n * queue without waiting for it to complete (i.e. we ignore the Promise result).\n */\n e.prototype.bs = function (t) {\n this.vs(), // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.Ss(t);\n },\n /**\n * Initialize the shutdown of this queue. Once this method is called, the\n * only possible way to request running an operation is through\n * `enqueueEvenWhileRestricted()`.\n */\n e.prototype.Ds = function () {\n if (!this.Is) {\n this.Is = !0;\n var t = Sr();\n t && \"function\" == typeof t.removeEventListener && t.removeEventListener(\"visibilitychange\", this.Vs);\n }\n },\n /**\n * Adds a new operation to the queue. Returns a promise that will be resolved\n * when the promise returned by the new operation is (with its value).\n */\n e.prototype.enqueue = function (t) {\n return this.vs(), this.Is ? new Promise(function (t) {}) : this.Ss(t);\n },\n /**\n * Enqueue a retryable operation.\n *\n * A retryable operation is rescheduled with backoff if it fails with a\n * IndexedDbTransactionError (the error type used by SimpleDb). All\n * retryable operations are executed in order and only run if all prior\n * operations were retried successfully.\n */\n e.prototype.Cs = function (t) {\n var e = this;\n this.ws(function () {\n return e.Es.push(t), e.Ns();\n });\n },\n /**\n * Runs the next operation from the retryable queue. If the operation fails,\n * reschedules with backoff.\n */\n e.prototype.Ns = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e,\n n = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n if (0 === this.Es.length) return [3\n /*break*/\n , 5];\n t.label = 1;\n\n case 1:\n return t.trys.push([1, 3,, 4]), [4\n /*yield*/\n , this.Es[0]()];\n\n case 2:\n return t.sent(), this.Es.shift(), this.ys.reset(), [3\n /*break*/\n , 4];\n\n case 3:\n if (!_r(e = t.sent())) throw e; // Failure will be handled by AsyncQueue\n\n return l(\"AsyncQueue\", \"Operation failed with retryable error: \" + e), [3\n /*break*/\n , 4];\n\n case 4:\n this.Es.length > 0 && // If there are additional operations, we re-schedule `retryNextOp()`.\n // This is necessary to run retryable operations that failed during\n // their initial attempt since we don't know whether they are already\n // enqueued. If, for example, `op1`, `op2`, `op3` are enqueued and `op1`\n // needs to be re-run, we will run `op1`, `op1`, `op2` using the\n // already enqueued calls to `retryNextOp()`. `op3()` will then run in the\n // call scheduled here.\n // Since `backoffAndRun()` cancels an existing backoff and schedules a\n // new backoff on every call, there is only ever a single additional\n // operation in the queue.\n this.ys.gn(function () {\n return n.Ns();\n }), t.label = 5;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.Ss = function (t) {\n var e = this,\n n = this.Ts.then(function () {\n return e.gs = !0, t().catch(function (t) {\n // Re-throw the error so that this.tail becomes a rejected Promise and\n // all further attempts to chain (via .then) will just short-circuit\n // and return the rejected Promise.\n throw e.Rs = t, e.gs = !1, p(\"INTERNAL UNHANDLED ERROR: \",\n /**\n * Chrome includes Error.message in Error.stack. Other browsers do not.\n * This returns expected output of message + stack when available.\n * @param error Error or FirestoreError\n */\n function (t) {\n var e = t.message || \"\";\n return t.stack && (e = t.stack.includes(t.message) ? t.stack : t.message + \"\\n\" + t.stack), e;\n }(t)), t;\n }).then(function (t) {\n return e.gs = !1, t;\n });\n });\n return this.Ts = n, n;\n },\n /**\n * Schedules an operation to be queued on the AsyncQueue once the specified\n * `delayMs` has elapsed. The returned DelayedOperation can be used to cancel\n * or fast-forward the operation prior to its running.\n */\n e.prototype.yn = function (t, e, n) {\n var r = this;\n this.vs(), // Fast-forward delays for timerIds that have been overriden.\n this.Ps.indexOf(t) > -1 && (e = 0);\n\n var i = Dr._s(this, t, e, n, function (t) {\n return r.Fs(t);\n });\n\n return this.As.push(i), i;\n }, e.prototype.vs = function () {\n this.Rs && y();\n },\n /**\n * Verifies there's an operation currently in-progress on the AsyncQueue.\n * Unfortunately we can't verify that the running code is in the promise chain\n * of that operation, so this isn't a foolproof check, but it should be enough\n * to catch some bugs.\n */\n e.prototype.xs = function () {},\n /**\n * Waits until all currently queued tasks are finished executing. Delayed\n * operations are not run.\n */\n e.prototype.$s = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , e = this.Ts];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n if (e !== this.Ts) return [3\n /*break*/\n , 0];\n t.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * For Tests: Determine if a delayed operation with a particular TimerId\n * exists.\n */\n e.prototype.ks = function (t) {\n for (var e = 0, n = this.As; e < n.length; e++) {\n if (n[e].dn === t) return !0;\n }\n\n return !1;\n },\n /**\n * For Tests: Runs some or all delayed operations early.\n *\n * @param lastTimerId Delayed operations up to and including this TimerId will\n * be drained. Pass TimerId.All to run all delayed operations.\n * @returns a Promise that resolves once all operations have been run.\n */\n e.prototype.Ms = function (t) {\n var e = this; // Note that draining may generate more delayed ops, so we do that first.\n\n return this.$s().then(function () {\n // Run ops in the same order they'd run if they ran naturally.\n e.As.sort(function (t, e) {\n return t.us - e.us;\n });\n\n for (var n = 0, r = e.As; n < r.length; n++) {\n var i = r[n];\n if (i.pn(), \"all\"\n /* All */\n !== t && i.dn === t) break;\n }\n\n return e.$s();\n });\n },\n /**\n * For Tests: Skip all subsequent delays for a timer id.\n */\n e.prototype.Os = function (t) {\n this.Ps.push(t);\n },\n /** Called once a DelayedOperation is run or canceled. */\n e.prototype.Fs = function (t) {\n // NOTE: indexOf / slice are O(n), but delayedOperations is expected to be small.\n var e = this.As.indexOf(t);\n this.As.splice(e, 1);\n }, e;\n}();\n/**\n * Returns a FirestoreError that can be surfaced to the user if the provided\n * error is an IndexedDbTransactionError. Re-throws the error otherwise.\n */\n\n\nfunction Lr(t, e) {\n if (p(\"AsyncQueue\", e + \": \" + t), _r(t)) return new c(a.UNAVAILABLE, e + \": \" + t);\n throw t;\n}\n\nvar kr = function kr() {\n this.Ls = void 0, this.listeners = [];\n},\n Rr = function Rr() {\n this.Bs = new it(function (t) {\n return Hn(t);\n }, Qn), this.onlineState = \"Unknown\"\n /* Unknown */\n , this.qs = new Set();\n};\n\nfunction Or(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a, c;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n if (r = m(e), i = n.query, o = !1, (s = r.Bs.get(i)) || (o = !0, s = new kr()), !o) return [3\n /*break*/\n , 4];\n t.label = 1;\n\n case 1:\n return t.trys.push([1, 3,, 4]), u = s, [4\n /*yield*/\n , r.Us(i)];\n\n case 2:\n return u.Ls = t.sent(), [3\n /*break*/\n , 4];\n\n case 3:\n return a = t.sent(), c = Lr(a, \"Initialization of query '\" + Yn(n.query) + \"' failed\"), [2\n /*return*/\n , void n.onError(c)];\n\n case 4:\n return r.Bs.set(i, s), s.listeners.push(n), // Run global snapshot listeners if a consistent snapshot has been emitted.\n n.Qs(r.onlineState), s.Ls && n.Ws(s.Ls) && Cr(r), [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Pr(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u;\n return t.__generator(this, function (t) {\n return r = m(e), i = n.query, o = !1, (s = r.Bs.get(i)) && (u = s.listeners.indexOf(n)) >= 0 && (s.listeners.splice(u, 1), o = 0 === s.listeners.length), o ? [2\n /*return*/\n , (r.Bs.delete(i), r.js(i))] : [2\n /*return*/\n ];\n });\n });\n}\n\nfunction Vr(t, e) {\n for (var n = m(t), r = !1, i = 0, o = e; i < o.length; i++) {\n var s = o[i],\n u = s.query,\n a = n.Bs.get(u);\n\n if (a) {\n for (var c = 0, h = a.listeners; c < h.length; c++) {\n h[c].Ws(s) && (r = !0);\n }\n\n a.Ls = s;\n }\n }\n\n r && Cr(n);\n}\n\nfunction Ur(t, e, n) {\n var r = m(t),\n i = r.Bs.get(e);\n if (i) for (var o = 0, s = i.listeners; o < s.length; o++) {\n s[o].onError(n);\n } // Remove all listeners. NOTE: We don't need to call syncEngine.unlisten()\n // after an error.\n\n r.Bs.delete(e);\n} // Call all global snapshot listeners that have been set.\n\n\nfunction Cr(t) {\n t.qs.forEach(function (t) {\n t.next();\n });\n}\n/**\n * QueryListener takes a series of internal view snapshots and determines\n * when to raise the event.\n *\n * It uses an Observer to dispatch events.\n */\n\n\nvar Fr =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.query = t, this.Ks = e,\n /**\n * Initial snapshots (e.g. from cache) may not be propagated to the wrapped\n * observer. This flag is set to true once we've actually raised an event.\n */\n this.Gs = !1, this.zs = null, this.onlineState = \"Unknown\"\n /* Unknown */\n , this.options = n || {}\n /**\n * Applies the new ViewSnapshot to this listener, raising a user-facing event\n * if applicable (depending on what changed, whether the user has opted into\n * metadata-only changes, etc.). Returns true if a user-facing event was\n * indeed raised.\n */\n ;\n }\n\n return t.prototype.Ws = function (t) {\n if (!this.options.includeMetadataChanges) {\n for ( // Remove the metadata only changes.\n var e = [], n = 0, r = t.docChanges; n < r.length; n++) {\n var i = r[n];\n 3\n /* Metadata */\n !== i.type && e.push(i);\n }\n\n t = new Ft(t.query, t.docs, t.Qt, e, t.Wt, t.fromCache, t.jt,\n /* excludesMetadataChanges= */\n !0);\n }\n\n var o = !1;\n return this.Gs ? this.Hs(t) && (this.Ks.next(t), o = !0) : this.Ys(t, this.onlineState) && (this.Js(t), o = !0), this.zs = t, o;\n }, t.prototype.onError = function (t) {\n this.Ks.error(t);\n },\n /** Returns whether a snapshot was raised. */\n t.prototype.Qs = function (t) {\n this.onlineState = t;\n var e = !1;\n return this.zs && !this.Gs && this.Ys(this.zs, t) && (this.Js(this.zs), e = !0), e;\n }, t.prototype.Ys = function (t, e) {\n // Always raise the first event when we're synced\n if (!t.fromCache) return !0; // NOTE: We consider OnlineState.Unknown as online (it should become Offline\n // or Online if we wait long enough).\n\n var n = \"Offline\"\n /* Offline */\n !== e; // Don't raise the event if we're online, aren't synced yet (checked\n // above) and are waiting for a sync.\n\n return !(this.options.Xs && n || t.docs.m() && \"Offline\"\n /* Offline */\n !== e); // Raise data from cache if we have any documents or we are offline\n }, t.prototype.Hs = function (t) {\n // We don't need to handle includeDocumentMetadataChanges here because\n // the Metadata only changes have already been stripped out if needed.\n // At this point the only changes we will see are the ones we should\n // propagate.\n if (t.docChanges.length > 0) return !0;\n var e = this.zs && this.zs.hasPendingWrites !== t.hasPendingWrites;\n return !(!t.jt && !e) && !0 === this.options.includeMetadataChanges; // Generally we should have hit one of the cases above, but it's possible\n // to get here if there were only metadata docChanges and they got\n // stripped out.\n }, t.prototype.Js = function (t) {\n t = Ft.Gt(t.query, t.docs, t.Wt, t.fromCache), this.Gs = !0, this.Ks.next(t);\n }, t;\n}(),\n Mr =\n/** @class */\nfunction () {\n function t(t) {\n this.uid = t;\n }\n\n return t.prototype.Zs = function () {\n return null != this.uid;\n },\n /**\n * Returns a key representing this user, suitable for inclusion in a\n * dictionary.\n */\n t.prototype.ti = function () {\n return this.Zs() ? \"uid:\" + this.uid : \"anonymous-user\";\n }, t.prototype.isEqual = function (t) {\n return t.uid === this.uid;\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Simple wrapper around a nullable UID. Mostly exists to make code more\n * readable.\n */\n\n/** A user with a null UID. */\n\n\nMr.UNAUTHENTICATED = new Mr(null), // TODO(mikelehen): Look into getting a proper uid-equivalent for\n// non-FirebaseAuth providers.\nMr.ei = new Mr(\"google-credentials-uid\"), Mr.ni = new Mr(\"first-party-uid\");\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * `ListenSequence` is a monotonic sequence. It is initialized with a minimum value to\n * exceed. All subsequent calls to next will return increasing values. If provided with a\n * `SequenceNumberSyncer`, it will additionally bump its next value when told of a new value, as\n * well as write out sequence numbers that it produces via `next()`.\n */\n\nvar qr =\n/** @class */\nfunction () {\n function t(t, e) {\n var n = this;\n this.previousValue = t, e && (e.si = function (t) {\n return n.ii(t);\n }, this.ri = function (t) {\n return e.oi(t);\n });\n }\n\n return t.prototype.ii = function (t) {\n return this.previousValue = Math.max(t, this.previousValue), this.previousValue;\n }, t.prototype.next = function () {\n var t = ++this.previousValue;\n return this.ri && this.ri(t), t;\n }, t;\n}();\n/** Assembles the key for a client state in WebStorage */\n\n\nfunction jr(t, e) {\n return \"firestore_clients_\" + t + \"_\" + e;\n} // The format of the WebStorage key that stores the mutation state is:\n// firestore_mutations__\n// (for unauthenticated users)\n// or: firestore_mutations___\n// 'user_uid' is last to avoid needing to escape '_' characters that it might\n// contain.\n\n/** Assembles the key for a mutation batch in WebStorage */\n\n\nfunction Gr(t, e, n) {\n var r = \"firestore_mutations_\" + t + \"_\" + n;\n return e.Zs() && (r += \"_\" + e.uid), r;\n} // The format of the WebStorage key that stores a query target's metadata is:\n// firestore_targets__\n\n/** Assembles the key for a query state in WebStorage */\n\n\nfunction zr(t, e) {\n return \"firestore_targets_\" + t + \"_\" + e;\n} // The WebStorage prefix that stores the primary tab's online state. The\n// format of the key is:\n// firestore_online_state_\n\n/**\n * Holds the state of a mutation batch, including its user ID, batch ID and\n * whether the batch is 'pending', 'acknowledged' or 'rejected'.\n */\n// Visible for testing\n\n\nqr.ai = -1;\n\nvar Br =\n/** @class */\nfunction () {\n function t(t, e, n, r) {\n this.user = t, this.batchId = e, this.state = n, this.error = r\n /**\n * Parses a MutationMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */\n ;\n }\n\n return t.ci = function (e, n, r) {\n var i = JSON.parse(r),\n o = \"object\" == typeof i && -1 !== [\"pending\", \"acknowledged\", \"rejected\"].indexOf(i.state) && (void 0 === i.error || \"object\" == typeof i.error),\n s = void 0;\n return o && i.error && (o = \"string\" == typeof i.error.message && \"string\" == typeof i.error.code) && (s = new c(i.error.code, i.error.message)), o ? new t(e, n, i.state, s) : (p(\"SharedClientState\", \"Failed to parse mutation state for ID '\" + n + \"': \" + r), null);\n }, t.prototype.ui = function () {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(),\n Wr =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.targetId = t, this.state = e, this.error = n\n /**\n * Parses a QueryTargetMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */\n ;\n }\n\n return t.ci = function (e, n) {\n var r = JSON.parse(n),\n i = \"object\" == typeof r && -1 !== [\"not-current\", \"current\", \"rejected\"].indexOf(r.state) && (void 0 === r.error || \"object\" == typeof r.error),\n o = void 0;\n return i && r.error && (i = \"string\" == typeof r.error.message && \"string\" == typeof r.error.code) && (o = new c(r.error.code, r.error.message)), i ? new t(e, r.state, o) : (p(\"SharedClientState\", \"Failed to parse target state for ID '\" + e + \"': \" + n), null);\n }, t.prototype.ui = function () {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(),\n Kr =\n/** @class */\nfunction () {\n function t(t, e) {\n this.clientId = t, this.activeTargetIds = e\n /**\n * Parses a RemoteClientState from the JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */\n ;\n }\n\n return t.ci = function (e, n) {\n for (var r = JSON.parse(n), i = \"object\" == typeof r && r.activeTargetIds instanceof Array, o = Vt(), s = 0; i && s < r.activeTargetIds.length; ++s) {\n i = ct(r.activeTargetIds[s]), o = o.add(r.activeTargetIds[s]);\n }\n\n return i ? new t(e, o) : (p(\"SharedClientState\", \"Failed to parse client data for instance '\" + e + \"': \" + n), null);\n }, t;\n}(),\n Qr =\n/** @class */\nfunction () {\n function t(t, e) {\n this.clientId = t, this.onlineState = e\n /**\n * Parses a SharedOnlineState from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */\n ;\n }\n\n return t.ci = function (e) {\n var n = JSON.parse(e);\n return \"object\" == typeof n && -1 !== [\"Unknown\", \"Online\", \"Offline\"].indexOf(n.onlineState) && \"string\" == typeof n.clientId ? new t(n.clientId, n.onlineState) : (p(\"SharedClientState\", \"Failed to parse online state: \" + e), null);\n }, t;\n}(),\n Hr =\n/** @class */\nfunction () {\n function t() {\n this.activeTargetIds = Vt();\n }\n\n return t.prototype.hi = function (t) {\n this.activeTargetIds = this.activeTargetIds.add(t);\n }, t.prototype.li = function (t) {\n this.activeTargetIds = this.activeTargetIds.delete(t);\n },\n /**\n * Converts this entry into a JSON-encoded format we can use for WebStorage.\n * Does not encode `clientId` as it is part of the key in WebStorage.\n */\n t.prototype.ui = function () {\n var t = {\n activeTargetIds: this.activeTargetIds.A(),\n updateTimeMs: Date.now()\n };\n return JSON.stringify(t);\n }, t;\n}(),\n Yr =\n/** @class */\nfunction () {\n function e(t, e, n, r, i) {\n this.window = t, this.fn = e, this.persistenceKey = n, this._i = r, this.fi = null, this.di = null, this.si = null, this.wi = this.mi.bind(this), this.Ti = new bt(H), this.Ei = !1,\n /**\n * Captures WebStorage events that occur before `start()` is called. These\n * events are replayed once `WebStorageSharedClientState` is started.\n */\n this.Ii = []; // Escape the special characters mentioned here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n\n var o = n.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n this.storage = this.window.localStorage, this.currentUser = i, this.Ai = jr(this.persistenceKey, this._i), this.Ri =\n /** Assembles the key for the current sequence number. */\n function (t) {\n return \"firestore_sequence_number_\" + t;\n }(this.persistenceKey), this.Ti = this.Ti.ot(this._i, new Hr()), this.gi = new RegExp(\"^firestore_clients_\" + o + \"_([^_]*)$\"), this.Pi = new RegExp(\"^firestore_mutations_\" + o + \"_(\\\\d+)(?:_(.*))?$\"), this.yi = new RegExp(\"^firestore_targets_\" + o + \"_(\\\\d+)$\"), this.Vi =\n /** Assembles the key for the online state of the primary tab. */\n function (t) {\n return \"firestore_online_state_\" + t;\n }(this.persistenceKey), // Rather than adding the storage observer during start(), we add the\n // storage observer during initialization. This ensures that we collect\n // events before other components populate their initial state (during their\n // respective start() calls). Otherwise, we might for example miss a\n // mutation that is added after LocalStore's start() processed the existing\n // mutations but before we observe WebStorage events.\n this.window.addEventListener(\"storage\", this.wi);\n }\n /** Returns 'true' if WebStorage is available in the current environment. */\n\n\n return e.Ln = function (t) {\n return !(!t || !t.localStorage);\n }, e.prototype.start = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e,\n n,\n r,\n i,\n o,\n s,\n u,\n a,\n c,\n h,\n f,\n l = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , this.fi.pi()];\n\n case 1:\n for (e = t.sent(), n = 0, r = e; n < r.length; n++) {\n (i = r[n]) !== this._i && (o = this.getItem(jr(this.persistenceKey, i))) && (s = Kr.ci(i, o)) && (this.Ti = this.Ti.ot(s.clientId, s));\n }\n\n for (this.bi(), (u = this.storage.getItem(this.Vi)) && (a = this.vi(u)) && this.Si(a), c = 0, h = this.Ii; c < h.length; c++) {\n f = h[c], this.mi(f);\n }\n\n return this.Ii = [], // Register a window unload hook to remove the client metadata entry from\n // WebStorage even if `shutdown()` was not called.\n this.window.addEventListener(\"unload\", function () {\n return l.Di();\n }), this.Ei = !0, [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.oi = function (t) {\n this.setItem(this.Ri, JSON.stringify(t));\n }, e.prototype.Ci = function () {\n return this.Ni(this.Ti);\n }, e.prototype.Fi = function (t) {\n var e = !1;\n return this.Ti.forEach(function (n, r) {\n r.activeTargetIds.has(t) && (e = !0);\n }), e;\n }, e.prototype.xi = function (t) {\n this.$i(t, \"pending\");\n }, e.prototype.ki = function (t, e, n) {\n this.$i(t, e, n), // Once a final mutation result is observed by other clients, they no longer\n // access the mutation's metadata entry. Since WebStorage replays events\n // in order, it is safe to delete the entry right after updating it.\n this.Mi(t);\n }, e.prototype.Oi = function (t) {\n var e = \"not-current\"; // Lookup an existing query state if the target ID was already registered\n // by another tab\n\n if (this.Fi(t)) {\n var n = this.storage.getItem(zr(this.persistenceKey, t));\n\n if (n) {\n var r = Wr.ci(t, n);\n r && (e = r.state);\n }\n }\n\n return this.Li.hi(t), this.bi(), e;\n }, e.prototype.Bi = function (t) {\n this.Li.li(t), this.bi();\n }, e.prototype.qi = function (t) {\n return this.Li.activeTargetIds.has(t);\n }, e.prototype.Ui = function (t) {\n this.removeItem(zr(this.persistenceKey, t));\n }, e.prototype.Qi = function (t, e, n) {\n this.Wi(t, e, n);\n }, e.prototype.ji = function (t, e, n) {\n var r = this;\n e.forEach(function (t) {\n r.Mi(t);\n }), this.currentUser = t, n.forEach(function (t) {\n r.xi(t);\n });\n }, e.prototype.Ki = function (t) {\n this.Gi(t);\n }, e.prototype.Di = function () {\n this.Ei && (this.window.removeEventListener(\"storage\", this.wi), this.removeItem(this.Ai), this.Ei = !1);\n }, e.prototype.getItem = function (t) {\n var e = this.storage.getItem(t);\n return l(\"SharedClientState\", \"READ\", t, e), e;\n }, e.prototype.setItem = function (t, e) {\n l(\"SharedClientState\", \"SET\", t, e), this.storage.setItem(t, e);\n }, e.prototype.removeItem = function (t) {\n l(\"SharedClientState\", \"REMOVE\", t), this.storage.removeItem(t);\n }, e.prototype.mi = function (e) {\n var n = this,\n r = e; // Note: The function is typed to take Event to be interface-compatible with\n // `Window.addEventListener`.\n\n if (r.storageArea === this.storage) {\n if (l(\"SharedClientState\", \"EVENT\", r.key, r.newValue), r.key === this.Ai) return void p(\"Received WebStorage notification for local change. Another client might have garbage-collected our state\");\n this.fn.Cs(function () {\n return t.__awaiter(n, void 0, void 0, function () {\n var e, n, i, o, s, u;\n return t.__generator(this, function (t) {\n if (this.Ei) {\n if (null !== r.key) if (this.gi.test(r.key)) {\n if (null == r.newValue) return e = this.zi(r.key), [2\n /*return*/\n , this.Hi(e, null)];\n if (n = this.Yi(r.key, r.newValue)) return [2\n /*return*/\n , this.Hi(n.clientId, n)];\n } else if (this.Pi.test(r.key)) {\n if (null !== r.newValue && (i = this.Ji(r.key, r.newValue))) return [2\n /*return*/\n , this.Xi(i)];\n } else if (this.yi.test(r.key)) {\n if (null !== r.newValue && (o = this.Zi(r.key, r.newValue))) return [2\n /*return*/\n , this.tr(o)];\n } else if (r.key === this.Vi) {\n if (null !== r.newValue && (s = this.vi(r.newValue))) return [2\n /*return*/\n , this.Si(s)];\n } else r.key === this.Ri && (u = function (t) {\n var e = qr.ai;\n if (null != t) try {\n var n = JSON.parse(t);\n g(\"number\" == typeof n), e = n;\n } catch (t) {\n p(\"SharedClientState\", \"Failed to read sequence number from WebStorage\", t);\n }\n return e;\n }(r.newValue)) !== qr.ai && this.si(u);\n } else this.Ii.push(r);\n\n return [2\n /*return*/\n ];\n });\n });\n });\n }\n }, Object.defineProperty(e.prototype, \"Li\", {\n get: function get() {\n return this.Ti.get(this._i);\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.bi = function () {\n this.setItem(this.Ai, this.Li.ui());\n }, e.prototype.$i = function (t, e, n) {\n var r = new Br(this.currentUser, t, e, n),\n i = Gr(this.persistenceKey, this.currentUser, t);\n this.setItem(i, r.ui());\n }, e.prototype.Mi = function (t) {\n var e = Gr(this.persistenceKey, this.currentUser, t);\n this.removeItem(e);\n }, e.prototype.Gi = function (t) {\n var e = {\n clientId: this._i,\n onlineState: t\n };\n this.storage.setItem(this.Vi, JSON.stringify(e));\n }, e.prototype.Wi = function (t, e, n) {\n var r = zr(this.persistenceKey, t),\n i = new Wr(t, e, n);\n this.setItem(r, i.ui());\n },\n /**\n * Parses a client state key in WebStorage. Returns null if the key does not\n * match the expected key format.\n */\n e.prototype.zi = function (t) {\n var e = this.gi.exec(t);\n return e ? e[1] : null;\n },\n /**\n * Parses a client state in WebStorage. Returns 'null' if the value could not\n * be parsed.\n */\n e.prototype.Yi = function (t, e) {\n var n = this.zi(t);\n return Kr.ci(n, e);\n },\n /**\n * Parses a mutation batch state in WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n e.prototype.Ji = function (t, e) {\n var n = this.Pi.exec(t),\n r = Number(n[1]),\n i = void 0 !== n[2] ? n[2] : null;\n return Br.ci(new Mr(i), r, e);\n },\n /**\n * Parses a query target state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n e.prototype.Zi = function (t, e) {\n var n = this.yi.exec(t),\n r = Number(n[1]);\n return Wr.ci(r, e);\n },\n /**\n * Parses an online state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n e.prototype.vi = function (t) {\n return Qr.ci(t);\n }, e.prototype.Xi = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return e.user.uid === this.currentUser.uid ? [2\n /*return*/\n , this.fi.er(e.batchId, e.state, e.error)] : (l(\"SharedClientState\", \"Ignoring mutation for non-active user \" + e.user.uid), [2\n /*return*/\n ]);\n });\n });\n }, e.prototype.tr = function (t) {\n return this.fi.nr(t.targetId, t.state, t.error);\n }, e.prototype.Hi = function (t, e) {\n var n = this,\n r = e ? this.Ti.ot(t, e) : this.Ti.remove(t),\n i = this.Ni(this.Ti),\n o = this.Ni(r),\n s = [],\n u = [];\n return o.forEach(function (t) {\n i.has(t) || s.push(t);\n }), i.forEach(function (t) {\n o.has(t) || u.push(t);\n }), this.fi.sr(s, u).then(function () {\n n.Ti = r;\n });\n }, e.prototype.Si = function (t) {\n // We check whether the client that wrote this online state is still active\n // by comparing its client ID to the list of clients kept active in\n // IndexedDb. If a client does not update their IndexedDb client state\n // within 5 seconds, it is considered inactive and we don't emit an online\n // state event.\n this.Ti.get(t.clientId) && this.di(t.onlineState);\n }, e.prototype.Ni = function (t) {\n var e = Vt();\n return t.forEach(function (t, n) {\n e = e.kt(n.activeTargetIds);\n }), e;\n }, e;\n}(),\n $r =\n/** @class */\nfunction () {\n function t() {\n this.ir = new Hr(), this.rr = {}, this.di = null, this.si = null;\n }\n\n return t.prototype.xi = function (t) {// No op.\n }, t.prototype.ki = function (t, e, n) {// No op.\n }, t.prototype.Oi = function (t) {\n return this.ir.hi(t), this.rr[t] || \"not-current\";\n }, t.prototype.Qi = function (t, e, n) {\n this.rr[t] = e;\n }, t.prototype.Bi = function (t) {\n this.ir.li(t);\n }, t.prototype.qi = function (t) {\n return this.ir.activeTargetIds.has(t);\n }, t.prototype.Ui = function (t) {\n delete this.rr[t];\n }, t.prototype.Ci = function () {\n return this.ir.activeTargetIds;\n }, t.prototype.Fi = function (t) {\n return this.ir.activeTargetIds.has(t);\n }, t.prototype.start = function () {\n return this.ir = new Hr(), Promise.resolve();\n }, t.prototype.ji = function (t, e, n) {// No op.\n }, t.prototype.Ki = function (t) {// No op.\n }, t.prototype.Di = function () {}, t.prototype.oi = function (t) {}, t;\n}(),\n Xr =\n/** @class */\nfunction () {\n /**\n * @param batchId The unique ID of this mutation batch.\n * @param localWriteTime The original write time of this mutation.\n * @param baseMutations Mutations that are used to populate the base\n * values when this mutation is applied locally. This can be used to locally\n * overwrite values that are persisted in the remote document cache. Base\n * mutations are never sent to the backend.\n * @param mutations The user-provided mutations in this mutation batch.\n * User-provided mutations are applied both locally and remotely on the\n * backend.\n */\n function t(t, e, n, r) {\n this.batchId = t, this.ar = e, this.baseMutations = n, this.mutations = r\n /**\n * Applies all the mutations in this MutationBatch to the specified document\n * to create a new remote document\n *\n * @param docKey The key of the document to apply mutations to.\n * @param maybeDoc The document to apply mutations to.\n * @param batchResult The result of applying the MutationBatch to the\n * backend.\n */\n ;\n }\n\n return t.prototype.cr = function (t, e, n) {\n for (var r = n.ur, i = 0; i < this.mutations.length; i++) {\n var o = this.mutations[i];\n o.key.isEqual(t) && (e = dn(o, e, r[i]));\n }\n\n return e;\n },\n /**\n * Computes the local view of a document given all the mutations in this\n * batch.\n *\n * @param docKey The key of the document to apply mutations to.\n * @param maybeDoc The document to apply mutations to.\n */\n t.prototype.hr = function (t, e) {\n // First, apply the base state. This allows us to apply non-idempotent\n // transform against a consistent set of values.\n for (var n = 0, r = this.baseMutations; n < r.length; n++) {\n var i = r[n];\n i.key.isEqual(t) && (e = vn(i, e, e, this.ar));\n } // Second, apply all user-provided mutations.\n\n\n for (var o = e, s = 0, u = this.mutations; s < u.length; s++) {\n var a = u[s];\n a.key.isEqual(t) && (e = vn(a, e, o, this.ar));\n }\n\n return e;\n },\n /**\n * Computes the local view for all provided documents given the mutations in\n * this batch.\n */\n t.prototype.lr = function (t) {\n var e = this,\n n = t; // TODO(mrschmidt): This implementation is O(n^2). If we apply the mutations\n // directly (as done in `applyToLocalView()`), we can reduce the complexity\n // to O(n).\n\n return this.mutations.forEach(function (r) {\n var i = e.hr(r.key, t.get(r.key));\n i && (n = n.ot(r.key, i));\n }), n;\n }, t.prototype.keys = function () {\n return this.mutations.reduce(function (t, e) {\n return t.add(e.key);\n }, Ot());\n }, t.prototype.isEqual = function (t) {\n return this.batchId === t.batchId && Y(this.mutations, t.mutations, function (t, e) {\n return gn(t, e);\n }) && Y(this.baseMutations, t.baseMutations, function (t, e) {\n return gn(t, e);\n });\n }, t;\n}(),\n Jr =\n/** @class */\nfunction () {\n function t(t, e, n,\n /**\n * A pre-computed mapping from each mutated document to the resulting\n * version.\n */\n r) {\n this.batch = t, this._r = e, this.ur = n, this.dr = r\n /**\n * Creates a new MutationBatchResult for the given batch and results. There\n * must be one result for each mutation in the batch. This static factory\n * caches a document=>version mapping (docVersions).\n */\n ;\n }\n\n return t.from = function (e, n, r) {\n g(e.mutations.length === r.length);\n\n for (var i = kt, o = e.mutations, s = 0; s < o.length; s++) {\n i = i.ot(o[s].key, r[s].version);\n }\n\n return new t(e, n, r, i);\n }, t;\n}(),\n Zr =\n/** @class */\nfunction () {\n function t() {\n // A mapping of document key to the new cache entry that should be written (or null if any\n // existing cache entry should be removed).\n this.wr = new it(function (t) {\n return t.toString();\n }, function (t, e) {\n return t.isEqual(e);\n }), this.mr = !1;\n }\n\n return Object.defineProperty(t.prototype, \"readTime\", {\n get: function get() {\n return this.Tr;\n },\n set: function set(t) {\n this.Tr = t;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Buffers a `RemoteDocumentCache.addEntry()` call.\n *\n * You can only modify documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.Er = function (t, e) {\n this.Ir(), this.readTime = e, this.wr.set(t.key, t);\n },\n /**\n * Buffers a `RemoteDocumentCache.removeEntry()` call.\n *\n * You can only remove documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.Ar = function (t, e) {\n this.Ir(), e && (this.readTime = e), this.wr.set(t, null);\n },\n /**\n * Looks up an entry in the cache. The buffered changes will first be checked,\n * and if no buffered change applies, this will forward to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction The transaction in which to perform any persistence\n * operations.\n * @param documentKey The key of the entry to look up.\n * @return The cached Document or NoDocument entry, or null if we have nothing\n * cached.\n */\n t.prototype.Rr = function (t, e) {\n this.Ir();\n var n = this.wr.get(e);\n return void 0 !== n ? yr.resolve(n) : this.gr(t, e);\n },\n /**\n * Looks up several entries in the cache, forwarding to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction The transaction in which to perform any persistence\n * operations.\n * @param documentKeys The keys of the entries to look up.\n * @return A map of cached `Document`s or `NoDocument`s, indexed by key. If an\n * entry cannot be found, the corresponding key will be mapped to a null\n * value.\n */\n t.prototype.getEntries = function (t, e) {\n return this.Pr(t, e);\n },\n /**\n * Applies buffered changes to the underlying RemoteDocumentCache, using\n * the provided transaction.\n */\n t.prototype.apply = function (t) {\n return this.Ir(), this.mr = !0, this.yr(t);\n },\n /** Helper to assert this.changes is not null */\n t.prototype.Ir = function () {}, t;\n}(),\n ti = \"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.\",\n ei =\n/** @class */\nfunction () {\n function t() {\n this.Vr = [];\n }\n\n return t.prototype.pr = function (t) {\n this.Vr.push(t);\n }, t.prototype.br = function () {\n this.Vr.forEach(function (t) {\n return t();\n });\n }, t;\n}(),\n ni =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.vr = t, this.Sr = e, this.Dr = n\n /**\n * Get the local view of the document identified by `key`.\n *\n * @return Local view of the document or null if we don't have any cached\n * state for it.\n */\n ;\n }\n\n return t.prototype.Cr = function (t, e) {\n var n = this;\n return this.Sr.Nr(t, e).next(function (r) {\n return n.Fr(t, e, r);\n });\n },\n /** Internal version of `getDocument` that allows reusing batches. */\n t.prototype.Fr = function (t, e, n) {\n return this.vr.Rr(t, e).next(function (t) {\n for (var r = 0, i = n; r < i.length; r++) {\n t = i[r].hr(e, t);\n }\n\n return t;\n });\n }, // Returns the view of the given `docs` as they would appear after applying\n // all mutations in the given `batches`.\n t.prototype.$r = function (t, e, n) {\n var r = Dt();\n return e.forEach(function (t, e) {\n for (var i = 0, o = n; i < o.length; i++) {\n e = o[i].hr(t, e);\n }\n\n r = r.ot(t, e);\n }), r;\n },\n /**\n * Gets the local view of the documents identified by `keys`.\n *\n * If we don't have cached state for a document in `keys`, a NoDocument will\n * be stored for that key in the resulting set.\n */\n t.prototype.kr = function (t, e) {\n var n = this;\n return this.vr.getEntries(t, e).next(function (e) {\n return n.Mr(t, e);\n });\n },\n /**\n * Similar to `getDocuments`, but creates the local view from the given\n * `baseDocs` without retrieving documents from the local store.\n */\n t.prototype.Mr = function (t, e) {\n var n = this;\n return this.Sr.Or(t, e).next(function (r) {\n var i = n.$r(t, e, r),\n o = St();\n return i.forEach(function (t, e) {\n // TODO(http://b/32275378): Don't conflate missing / deleted.\n e || (e = new Rn(t, st.min())), o = o.ot(t, e);\n }), o;\n });\n },\n /**\n * Performs a query against the local view of all documents.\n *\n * @param transaction The persistence transaction.\n * @param query The query to match documents against.\n * @param sinceReadTime If not set to SnapshotVersion.min(), return only\n * documents that have been read since this snapshot version (exclusive).\n */\n t.prototype.Lr = function (t, e, n) {\n /**\n * Returns whether the query matches a single document by path (rather than a\n * collection).\n */\n return function (t) {\n return A.F(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n }(e) ? this.Br(t, e.path) : jn(e) ? this.qr(t, e, n) : this.Ur(t, e, n);\n }, t.prototype.Br = function (t, e) {\n // Just do a simple document lookup.\n return this.Cr(t, new A(e)).next(function (t) {\n var e = Lt();\n return t instanceof kn && (e = e.ot(t.key, t)), e;\n });\n }, t.prototype.qr = function (t, e, n) {\n var r = this,\n i = e.collectionGroup,\n o = Lt();\n return this.Dr.Qr(t, i).next(function (s) {\n return yr.forEach(s, function (s) {\n var u = function (t, e) {\n return new Pn(e,\n /*collectionGroup=*/\n null, t.on.slice(), t.filters.slice(), t.limit, t.an, t.startAt, t.endAt);\n }(e, s.child(i));\n\n return r.Ur(t, u, n).next(function (t) {\n t.forEach(function (t, e) {\n o = o.ot(t, e);\n });\n });\n }).next(function () {\n return o;\n });\n });\n }, t.prototype.Ur = function (t, e, n) {\n var r,\n i,\n o = this; // Query the remote documents and overlay mutations.\n\n return this.vr.Lr(t, e, n).next(function (n) {\n return r = n, o.Sr.Wr(t, e);\n }).next(function (e) {\n return i = e, o.jr(t, i, r).next(function (t) {\n r = t;\n\n for (var e = 0, n = i; e < n.length; e++) {\n for (var o = n[e], s = 0, u = o.mutations; s < u.length; s++) {\n var a = u[s],\n c = a.key,\n h = r.get(c),\n f = vn(a, h, h, o.ar);\n r = f instanceof kn ? r.ot(c, f) : r.remove(c);\n }\n }\n });\n }).next(function () {\n // Finally, filter out any documents that don't actually match\n // the query.\n return r.forEach(function (t, n) {\n $n(e, n) || (r = r.remove(t));\n }), r;\n });\n }, t.prototype.jr = function (t, e, n) {\n for (var r = Ot(), i = 0, o = e; i < o.length; i++) {\n for (var s = 0, u = o[i].mutations; s < u.length; s++) {\n var a = u[s];\n a instanceof _n && null === n.get(a.key) && (r = r.add(a.key));\n }\n }\n\n var c = n;\n return this.vr.getEntries(t, r).next(function (t) {\n return t.forEach(function (t, e) {\n null !== e && e instanceof kn && (c = c.ot(t, e));\n }), c;\n });\n }, t;\n}(),\n ri =\n/** @class */\nfunction () {\n function t(t, e, n, r) {\n this.targetId = t, this.fromCache = e, this.Kr = n, this.Gr = r;\n }\n\n return t.zr = function (e, n) {\n for (var r = Ot(), i = Ot(), o = 0, s = n.docChanges; o < s.length; o++) {\n var u = s[o];\n\n switch (u.type) {\n case 0\n /* Added */\n :\n r = r.add(u.doc.key);\n break;\n\n case 1\n /* Removed */\n :\n i = i.add(u.doc.key);\n // do nothing\n }\n }\n\n return new t(e, n.fromCache, r, i);\n }, t;\n}();\n/**\n * Holds the state of a query target, including its target ID and whether the\n * target is 'not-current', 'current' or 'rejected'.\n */\n// Visible for testing\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nfunction ii(t, e) {\n var n = t[0],\n r = t[1],\n i = e[0],\n o = e[1],\n s = H(n, i);\n return 0 === s ? H(r, o) : s;\n}\n/**\n * Used to calculate the nth sequence number. Keeps a rolling buffer of the\n * lowest n values passed to `addElement`, and finally reports the largest of\n * them in `maxValue`.\n */\n\n\nvar oi =\n/** @class */\nfunction () {\n function t(t) {\n this.Hr = t, this.buffer = new Tt(ii), this.Yr = 0;\n }\n\n return t.prototype.Jr = function () {\n return ++this.Yr;\n }, t.prototype.Xr = function (t) {\n var e = [t, this.Jr()];\n if (this.buffer.size < this.Hr) this.buffer = this.buffer.add(e);else {\n var n = this.buffer.last();\n ii(e, n) < 0 && (this.buffer = this.buffer.delete(n).add(e));\n }\n }, Object.defineProperty(t.prototype, \"maxValue\", {\n get: function get() {\n // Guaranteed to be non-empty. If we decide we are not collecting any\n // sequence numbers, nthSequenceNumber below short-circuits. If we have\n // decided that we are collecting n sequence numbers, it's because n is some\n // percentage of the existing sequence numbers. That means we should never\n // be in a situation where we are collecting sequence numbers but don't\n // actually have any.\n return this.buffer.last()[0];\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(),\n si = {\n Zr: !1,\n eo: 0,\n no: 0,\n so: 0\n},\n ui =\n/** @class */\nfunction () {\n function t( // When we attempt to collect, we will only do so if the cache size is greater than this\n // threshold. Passing `COLLECTION_DISABLED` here will cause collection to always be skipped.\n t, // The percentage of sequence numbers that we will attempt to collect\n e, // A cap on the total number of sequence numbers that will be collected. This prevents\n // us from collecting a huge number of sequence numbers if the cache has grown very large.\n n) {\n this.io = t, this.ro = e, this.oo = n;\n }\n\n return t.ao = function (e) {\n return new t(e, t.co, t.uo);\n }, t;\n}();\n\nui.ho = -1, ui.lo = 1048576, ui._o = 41943040, ui.co = 10, ui.uo = 1e3, ui.fo = new ui(ui._o, ui.co, ui.uo), ui.do = new ui(ui.ho, 0, 0);\n/**\n * This class is responsible for the scheduling of LRU garbage collection. It handles checking\n * whether or not GC is enabled, as well as which delay to use before the next run.\n */\n\nvar ai =\n/** @class */\nfunction () {\n function e(t, e) {\n this.wo = t, this.cs = e, this.mo = !1, this.To = null;\n }\n\n return e.prototype.start = function (t) {\n this.wo.params.io !== ui.ho && this.Eo(t);\n }, e.prototype.stop = function () {\n this.To && (this.To.cancel(), this.To = null);\n }, Object.defineProperty(e.prototype, \"Ei\", {\n get: function get() {\n return null !== this.To;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.Eo = function (e) {\n var n = this,\n r = this.mo ? 3e5 : 6e4;\n l(\"LruGarbageCollector\", \"Garbage collection scheduled in \" + r + \"ms\"), this.To = this.cs.yn(\"lru_garbage_collection\"\n /* LruGarbageCollection */\n , r, function () {\n return t.__awaiter(n, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n this.To = null, this.mo = !0, t.label = 1;\n\n case 1:\n return t.trys.push([1, 3,, 7]), [4\n /*yield*/\n , e.Io(this.wo)];\n\n case 2:\n return t.sent(), [3\n /*break*/\n , 7];\n\n case 3:\n return _r(n = t.sent()) ? (l(\"LruGarbageCollector\", \"Ignoring IndexedDB error during garbage collection: \", n), [3\n /*break*/\n , 6]) : [3\n /*break*/\n , 4];\n\n case 4:\n return [4\n /*yield*/\n , Do(n)];\n\n case 5:\n t.sent(), t.label = 6;\n\n case 6:\n return [3\n /*break*/\n , 7];\n\n case 7:\n return [4\n /*yield*/\n , this.Eo(e)];\n\n case 8:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n });\n }, e;\n}(),\n ci =\n/** @class */\nfunction () {\n function t(t, e) {\n this.Ao = t, this.params = e\n /** Given a percentile of target to collect, returns the number of targets to collect. */\n ;\n }\n\n return t.prototype.Ro = function (t, e) {\n return this.Ao.Po(t).next(function (t) {\n return Math.floor(e / 100 * t);\n });\n },\n /** Returns the nth sequence number, counting in order from the smallest. */\n t.prototype.yo = function (t, e) {\n var n = this;\n if (0 === e) return yr.resolve(qr.ai);\n var r = new oi(e);\n return this.Ao.Ce(t, function (t) {\n return r.Xr(t.sequenceNumber);\n }).next(function () {\n return n.Ao.Vo(t, function (t) {\n return r.Xr(t);\n });\n }).next(function () {\n return r.maxValue;\n });\n },\n /**\n * Removes targets with a sequence number equal to or less than the given upper bound, and removes\n * document associations with those targets.\n */\n t.prototype.po = function (t, e, n) {\n return this.Ao.po(t, e, n);\n },\n /**\n * Removes documents that have a sequence number equal to or less than the upper bound and are not\n * otherwise pinned.\n */\n t.prototype.bo = function (t, e) {\n return this.Ao.bo(t, e);\n }, t.prototype.vo = function (t, e) {\n var n = this;\n return this.params.io === ui.ho ? (l(\"LruGarbageCollector\", \"Garbage collection skipped; disabled\"), yr.resolve(si)) : this.So(t).next(function (r) {\n return r < n.params.io ? (l(\"LruGarbageCollector\", \"Garbage collection skipped; Cache size \" + r + \" is lower than threshold \" + n.params.io), si) : n.Do(t, e);\n });\n }, t.prototype.So = function (t) {\n return this.Ao.So(t);\n }, t.prototype.Do = function (t, e) {\n var r,\n i,\n o,\n s,\n u,\n a,\n c,\n h = this,\n p = Date.now();\n return this.Ro(t, this.params.ro).next(function (e) {\n // Cap at the configured max\n return e > h.params.oo ? (l(\"LruGarbageCollector\", \"Capping sequence numbers to collect down to the maximum of \" + h.params.oo + \" from \" + e), i = h.params.oo) : i = e, s = Date.now(), h.yo(t, i);\n }).next(function (n) {\n return r = n, u = Date.now(), h.po(t, r, e);\n }).next(function (e) {\n return o = e, a = Date.now(), h.bo(t, r);\n }).next(function (t) {\n return c = Date.now(), f() <= n.LogLevel.DEBUG && l(\"LruGarbageCollector\", \"LRU Garbage Collection\\n\\tCounted targets in \" + (s - p) + \"ms\\n\\tDetermined least recently used \" + i + \" in \" + (u - s) + \"ms\\n\\tRemoved \" + o + \" targets in \" + (a - u) + \"ms\\n\\tRemoved \" + t + \" documents in \" + (c - a) + \"ms\\nTotal Duration: \" + (c - p) + \"ms\"), yr.resolve({\n Zr: !0,\n eo: i,\n no: o,\n so: t\n });\n });\n }, t;\n}();\n/** Implements the steps for LRU garbage collection. */\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Encodes a resource path into a IndexedDb-compatible string form.\n */\n\n\nfunction hi(t) {\n for (var e = \"\", n = 0; n < t.length; n++) {\n e.length > 0 && (e = li(e)), e = fi(t.get(n), e);\n }\n\n return li(e);\n}\n/** Encodes a single segment of a resource path into the given result */\n\n\nfunction fi(t, e) {\n for (var n = e, r = t.length, i = 0; i < r; i++) {\n var o = t.charAt(i);\n\n switch (o) {\n case \"\\0\":\n n += \"\u0001\u0010\";\n break;\n\n case \"\u0001\":\n n += \"\u0001\u0011\";\n break;\n\n default:\n n += o;\n }\n }\n\n return n;\n}\n/** Encodes a path separator into the given result */\n\n\nfunction li(t) {\n return t + \"\u0001\u0001\";\n}\n/**\n * Decodes the given IndexedDb-compatible string form of a resource path into\n * a ResourcePath instance. Note that this method is not suitable for use with\n * decoding resource names from the server; those are One Platform format\n * strings.\n */\n\n\nfunction pi(t) {\n // Event the empty path must encode as a path of at least length 2. A path\n // with exactly 2 must be the empty path.\n var e = t.length;\n if (g(e >= 2), 2 === e) return g(\"\u0001\" === t.charAt(0) && \"\u0001\" === t.charAt(1)), E.P(); // Escape characters cannot exist past the second-to-last position in the\n // source value.\n\n for (var n = e - 2, r = [], i = \"\", o = 0; o < e;) {\n // The last two characters of a valid encoded path must be a separator, so\n // there must be an end to this segment.\n var s = t.indexOf(\"\u0001\", o);\n\n switch ((s < 0 || s > n) && y(), t.charAt(s + 1)) {\n case \"\u0001\":\n var u = t.substring(o, s),\n a = void 0;\n 0 === i.length ? // Avoid copying for the common case of a segment that excludes \\0\n // and \\001\n a = u : (a = i += u, i = \"\"), r.push(a);\n break;\n\n case \"\u0010\":\n i += t.substring(o, s), i += \"\\0\";\n break;\n\n case \"\u0011\":\n // The escape character can be used in the output to encode itself.\n i += t.substring(o, s + 1);\n break;\n\n default:\n y();\n }\n\n o = s + 2;\n }\n\n return new E(r);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Serializer for values stored in the LocalStore. */\n\n\nvar di = function di(t) {\n this.Co = t;\n};\n/** Decodes a remote document from storage locally to a Document. */\n\n\nfunction vi(t, e) {\n if (e.document) return function (t, e, n) {\n var r = Se(t, e.name),\n i = Ee(e.updateTime),\n o = new Sn({\n mapValue: {\n fields: e.fields\n }\n });\n return new kn(r, i, o, {\n hasCommittedMutations: !!n\n });\n }(t.Co, e.document, !!e.hasCommittedMutations);\n\n if (e.noDocument) {\n var n = A.$(e.noDocument.path),\n r = _i(e.noDocument.readTime);\n\n return new Rn(n, r, {\n hasCommittedMutations: !!e.hasCommittedMutations\n });\n }\n\n if (e.unknownDocument) {\n var i = A.$(e.unknownDocument.path),\n o = _i(e.unknownDocument.version);\n\n return new On(i, o);\n }\n\n return y();\n}\n/** Encodes a document for storage locally. */\n\n\nfunction yi(t, e, n) {\n var r = gi(n),\n i = e.key.path.h().A();\n\n if (e instanceof kn) {\n var o = function (t, e) {\n return {\n name: Ae(t, e.key),\n fields: e.rn().mapValue.fields,\n updateTime: _e(t, e.version.Z())\n };\n }(t.Co, e),\n s = e.hasCommittedMutations;\n\n return new Ki(\n /* unknownDocument= */\n null,\n /* noDocument= */\n null, o, s, r, i);\n }\n\n if (e instanceof Rn) {\n var u = e.key.path.A(),\n a = wi(e.version),\n c = e.hasCommittedMutations;\n return new Ki(\n /* unknownDocument= */\n null, new Bi(u, a),\n /* document= */\n null, c, r, i);\n }\n\n if (e instanceof On) {\n var h = e.key.path.A(),\n f = wi(e.version);\n return new Ki(new Wi(h, f),\n /* noDocument= */\n null,\n /* document= */\n null,\n /* hasCommittedMutations= */\n !0, r, i);\n }\n\n return y();\n}\n\nfunction gi(t) {\n var e = t.Z();\n return [e.seconds, e.nanoseconds];\n}\n\nfunction mi(t) {\n var e = new ot(t[0], t[1]);\n return st.J(e);\n}\n\nfunction wi(t) {\n var e = t.Z();\n return new Mi(e.seconds, e.nanoseconds);\n}\n\nfunction _i(t) {\n var e = new ot(t.seconds, t.nanoseconds);\n return st.J(e);\n}\n/** Encodes a batch of mutations into a DbMutationBatch for local storage. */\n\n/** Decodes a DbMutationBatch into a MutationBatch */\n\n\nfunction bi(t, e) {\n var n = (e.baseMutations || []).map(function (e) {\n return Pe(t.Co, e);\n }),\n r = e.mutations.map(function (e) {\n return Pe(t.Co, e);\n }),\n i = ot.fromMillis(e.localWriteTimeMs);\n return new Xr(e.batchId, i, n, r);\n}\n/** Decodes a DbTarget into TargetData */\n\n\nfunction Ii(t) {\n var e,\n n,\n r = _i(t.readTime),\n i = void 0 !== t.lastLimboFreeSnapshotVersion ? _i(t.lastLimboFreeSnapshotVersion) : st.min();\n\n return void 0 !== t.query.documents ? (g(1 === (n = t.query).documents.length), e = zn(Un(xe(n.documents[0])))) : e = Ce(t.query), new gt(e, t.targetId, 0\n /* Listen */\n , t.lastListenSequenceNumber, r, i, X.fromBase64String(t.resumeToken))\n /** Encodes TargetData into a DbTarget for storage locally. */\n ;\n}\n\nfunction Ei(t, e) {\n var n,\n r = wi(e.nt),\n i = wi(e.lastLimboFreeSnapshotVersion);\n n = dt(e.target) ? Ve(t.Co, e.target) : Ue(t.Co, e.target); // We can't store the resumeToken as a ByteString in IndexedDb, so we\n // convert it to a base64 string for storage.\n\n var o = e.resumeToken.toBase64(); // lastListenSequenceNumber is always 0 until we do real GC.\n\n return new Hi(e.targetId, lt(e.target), r, o, e.sequenceNumber, i, n);\n}\n/**\n * A helper function for figuring out what kind of query has been stored.\n */\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** A mutation queue for a specific user, backed by IndexedDB. */\n\n\nvar Ti =\n/** @class */\nfunction () {\n function t(\n /**\n * The normalized userId (e.g. null UID => \"\" userId) used to store /\n * retrieve mutations.\n */\n t, e, n, r) {\n this.userId = t, this.serializer = e, this.Dr = n, this.No = r,\n /**\n * Caches the document keys for pending mutation batches. If the mutation\n * has been removed from IndexedDb, the cached value may continue to\n * be used to retrieve the batch's document keys. To remove a cached value\n * locally, `removeCachedMutationKeys()` should be invoked either directly\n * or through `removeMutationBatches()`.\n *\n * With multi-tab, when the primary client acknowledges or rejects a mutation,\n * this cache is used by secondary clients to invalidate the local\n * view of the documents that were previously affected by the mutation.\n */\n // PORTING NOTE: Multi-tab only.\n this.Fo = {}\n /**\n * Creates a new mutation queue for the given user.\n * @param user The user for which to create a mutation queue.\n * @param serializer The serializer to use when persisting to IndexedDb.\n */\n ;\n }\n\n return t.xo = function (e, n, r, i) {\n // TODO(mcg): Figure out what constraints there are on userIDs\n // In particular, are there any reserved characters? are empty ids allowed?\n // For the moment store these together in the same mutations table assuming\n // that empty userIDs aren't allowed.\n return g(\"\" !== e.uid), new t(e.Zs() ? e.uid : \"\", n, r, i);\n }, t.prototype.$o = function (t) {\n var e = !0,\n n = IDBKeyRange.bound([this.userId, Number.NEGATIVE_INFINITY], [this.userId, Number.POSITIVE_INFINITY]);\n return Si(t).rs({\n index: Gi.userMutationsIndex,\n range: n\n }, function (t, n, r) {\n e = !1, r.done();\n }).next(function () {\n return e;\n });\n }, t.prototype.ko = function (t, e, n, r) {\n var i = this,\n o = Di(t),\n s = Si(t); // The IndexedDb implementation in Chrome (and Firefox) does not handle\n // compound indices that include auto-generated keys correctly. To ensure\n // that the index entry is added correctly in all browsers, we perform two\n // writes: The first write is used to retrieve the next auto-generated Batch\n // ID, and the second write populates the index and stores the actual\n // mutation batch.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=701972\n // We write an empty object to obtain key\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n return s.add({}).next(function (u) {\n g(\"number\" == typeof u);\n\n for (var a = new Xr(u, e, n, r), c = function (t, e, n) {\n var r = n.baseMutations.map(function (e) {\n return Oe(t.Co, e);\n }),\n i = n.mutations.map(function (e) {\n return Oe(t.Co, e);\n });\n return new Gi(e, n.batchId, n.ar.toMillis(), r, i);\n }(i.serializer, i.userId, a), h = [], f = new Tt(function (t, e) {\n return H(t.R(), e.R());\n }), l = 0, p = r; l < p.length; l++) {\n var d = p[l],\n v = zi.key(i.userId, d.key.path, u);\n f = f.add(d.key.path.h()), h.push(s.put(c)), h.push(o.put(v, zi.PLACEHOLDER));\n }\n\n return f.forEach(function (e) {\n h.push(i.Dr.Mo(t, e));\n }), t.pr(function () {\n i.Fo[u] = a.keys();\n }), yr.$n(h).next(function () {\n return a;\n });\n });\n }, t.prototype.Oo = function (t, e) {\n var n = this;\n return Si(t).get(e).next(function (t) {\n return t ? (g(t.userId === n.userId), bi(n.serializer, t)) : null;\n });\n },\n /**\n * Returns the document keys for the mutation batch with the given batchId.\n * For primary clients, this method returns `null` after\n * `removeMutationBatches()` has been called. Secondary clients return a\n * cached result until `removeCachedMutationKeys()` is invoked.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Lo = function (t, e) {\n var n = this;\n return this.Fo[e] ? yr.resolve(this.Fo[e]) : this.Oo(t, e).next(function (t) {\n if (t) {\n var r = t.keys();\n return n.Fo[e] = r, r;\n }\n\n return null;\n });\n }, t.prototype.Bo = function (t, e) {\n var n = this,\n r = e + 1,\n i = IDBKeyRange.lowerBound([this.userId, r]),\n o = null;\n return Si(t).rs({\n index: Gi.userMutationsIndex,\n range: i\n }, function (t, e, i) {\n e.userId === n.userId && (g(e.batchId >= r), o = bi(n.serializer, e)), i.done();\n }).next(function () {\n return o;\n });\n }, t.prototype.qo = function (t) {\n var e = IDBKeyRange.upperBound([this.userId, Number.POSITIVE_INFINITY]),\n n = -1;\n return Si(t).rs({\n index: Gi.userMutationsIndex,\n range: e,\n reverse: !0\n }, function (t, e, r) {\n n = e.batchId, r.done();\n }).next(function () {\n return n;\n });\n }, t.prototype.Uo = function (t) {\n var e = this,\n n = IDBKeyRange.bound([this.userId, -1], [this.userId, Number.POSITIVE_INFINITY]);\n return Si(t).ts(Gi.userMutationsIndex, n).next(function (t) {\n return t.map(function (t) {\n return bi(e.serializer, t);\n });\n });\n }, t.prototype.Nr = function (t, e) {\n var n = this,\n r = zi.prefixForPath(this.userId, e.path),\n i = IDBKeyRange.lowerBound(r),\n o = []; // Scan the document-mutation index starting with a prefix starting with\n // the given documentKey.\n\n return Di(t).rs({\n range: i\n }, function (r, i, s) {\n var u = r[0],\n a = r[1],\n c = r[2],\n h = pi(a); // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n\n if (u === n.userId && e.path.isEqual(h)) // Look up the mutation batch in the store.\n return Si(t).get(c).next(function (t) {\n if (!t) throw y();\n g(t.userId === n.userId), o.push(bi(n.serializer, t));\n });\n s.done();\n }).next(function () {\n return o;\n });\n }, t.prototype.Or = function (t, e) {\n var n = this,\n r = new Tt(H),\n i = [];\n return e.forEach(function (e) {\n var o = zi.prefixForPath(n.userId, e.path),\n s = IDBKeyRange.lowerBound(o),\n u = Di(t).rs({\n range: s\n }, function (t, i, o) {\n var s = t[0],\n u = t[1],\n a = t[2],\n c = pi(u); // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n\n s === n.userId && e.path.isEqual(c) ? r = r.add(a) : o.done();\n });\n i.push(u);\n }), yr.$n(i).next(function () {\n return n.Qo(t, r);\n });\n }, t.prototype.Wr = function (t, e) {\n var n = this,\n r = e.path,\n i = r.length + 1,\n o = zi.prefixForPath(this.userId, r),\n s = IDBKeyRange.lowerBound(o),\n u = new Tt(H);\n return Di(t).rs({\n range: s\n }, function (t, e, o) {\n var s = t[0],\n a = t[1],\n c = t[2],\n h = pi(a);\n s === n.userId && r.T(h) ? // Rows with document keys more than one segment longer than the\n // query path can't be matches. For example, a query on 'rooms'\n // can't match the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n h.length === i && (u = u.add(c)) : o.done();\n }).next(function () {\n return n.Qo(t, u);\n });\n }, t.prototype.Qo = function (t, e) {\n var n = this,\n r = [],\n i = []; // TODO(rockwood): Implement this using iterate.\n\n return e.forEach(function (e) {\n i.push(Si(t).get(e).next(function (t) {\n if (null === t) throw y();\n g(t.userId === n.userId), r.push(bi(n.serializer, t));\n }));\n }), yr.$n(i).next(function () {\n return r;\n });\n }, t.prototype.Wo = function (t, e) {\n var n = this;\n return Ai(t.jo, this.userId, e).next(function (r) {\n return t.pr(function () {\n n.Ko(e.batchId);\n }), yr.forEach(r, function (e) {\n return n.No.Go(t, e);\n });\n });\n },\n /**\n * Clears the cached keys for a mutation batch. This method should be\n * called by secondary clients after they process mutation updates.\n *\n * Note that this method does not have to be called from primary clients as\n * the corresponding cache entries are cleared when an acknowledged or\n * rejected batch is removed from the mutation queue.\n */\n // PORTING NOTE: Multi-tab only\n t.prototype.Ko = function (t) {\n delete this.Fo[t];\n }, t.prototype.zo = function (t) {\n var e = this;\n return this.$o(t).next(function (n) {\n if (!n) return yr.resolve(); // Verify that there are no entries in the documentMutations index if\n // the queue is empty.\n\n var r = IDBKeyRange.lowerBound(zi.prefixForUser(e.userId)),\n i = [];\n return Di(t).rs({\n range: r\n }, function (t, n, r) {\n if (t[0] === e.userId) {\n var o = pi(t[1]);\n i.push(o);\n } else r.done();\n }).next(function () {\n g(0 === i.length);\n });\n });\n }, t.prototype.Ho = function (t, e) {\n return Ni(t, this.userId, e);\n }, // PORTING NOTE: Multi-tab only (state is held in memory in other clients).\n\n /** Returns the mutation queue's metadata from IndexedDb. */\n t.prototype.Yo = function (t) {\n var e = this;\n return xi(t).get(this.userId).next(function (t) {\n return t || new ji(e.userId, -1,\n /*lastStreamToken=*/\n \"\");\n });\n }, t;\n}();\n/**\n * @return true if the mutation queue for the given user contains a pending\n * mutation for the given key.\n */\n\n\nfunction Ni(t, e, n) {\n var r = zi.prefixForPath(e, n.path),\n i = r[1],\n o = IDBKeyRange.lowerBound(r),\n s = !1;\n return Di(t).rs({\n range: o,\n ss: !0\n }, function (t, n, r) {\n var o = t[0],\n u = t[1];\n t[2];\n o === e && u === i && (s = !0), r.done();\n }).next(function () {\n return s;\n });\n}\n/** Returns true if any mutation queue contains the given document. */\n\n/**\n * Delete a mutation batch and the associated document mutations.\n * @return A PersistencePromise of the document mutations that were removed.\n */\n\n\nfunction Ai(t, e, n) {\n var r = t.store(Gi.store),\n i = t.store(zi.store),\n o = [],\n s = IDBKeyRange.only(n.batchId),\n u = 0,\n a = r.rs({\n range: s\n }, function (t, e, n) {\n return u++, n.delete();\n });\n o.push(a.next(function () {\n g(1 === u);\n }));\n\n for (var c = [], h = 0, f = n.mutations; h < f.length; h++) {\n var l = f[h],\n p = zi.key(e, l.key.path, n.batchId);\n o.push(i.delete(p)), c.push(l.key);\n }\n\n return yr.$n(o).next(function () {\n return c;\n });\n}\n/**\n * Helper to get a typed SimpleDbStore for the mutations object store.\n */\n\n\nfunction Si(t) {\n return ho.Qn(t, Gi.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */\n\n\nfunction Di(t) {\n return ho.Qn(t, zi.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */\n\n\nfunction xi(t) {\n return ho.Qn(t, ji.store);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The RemoteDocumentCache for IndexedDb. To construct, invoke\n * `newIndexedDbRemoteDocumentCache()`.\n */\n\n\nvar Li =\n/** @class */\nfunction () {\n /**\n * @param serializer The document serializer.\n * @param indexManager The query indexes that need to be maintained.\n */\n function t(t, e) {\n this.serializer = t, this.Dr = e\n /**\n * Adds the supplied entries to the cache.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */\n ;\n }\n\n return t.prototype.Er = function (t, e, n) {\n return Oi(t).put(Pi(e), n);\n },\n /**\n * Removes a document from the cache.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */\n t.prototype.Ar = function (t, e) {\n var n = Oi(t),\n r = Pi(e);\n return n.delete(r);\n },\n /**\n * Updates the current cache size.\n *\n * Callers to `addEntry()` and `removeEntry()` *must* call this afterwards to update the\n * cache's metadata.\n */\n t.prototype.updateMetadata = function (t, e) {\n var n = this;\n return this.getMetadata(t).next(function (r) {\n return r.byteSize += e, n.Jo(t, r);\n });\n }, t.prototype.Rr = function (t, e) {\n var n = this;\n return Oi(t).get(Pi(e)).next(function (t) {\n return n.Xo(t);\n });\n },\n /**\n * Looks up an entry in the cache.\n *\n * @param documentKey The key of the entry to look up.\n * @return The cached MaybeDocument entry and its size, or null if we have nothing cached.\n */\n t.prototype.Zo = function (t, e) {\n var n = this;\n return Oi(t).get(Pi(e)).next(function (t) {\n var e = n.Xo(t);\n return e ? {\n ta: e,\n size: Vi(t)\n } : null;\n });\n }, t.prototype.getEntries = function (t, e) {\n var n = this,\n r = Dt();\n return this.ea(t, e, function (t, e) {\n var i = n.Xo(e);\n r = r.ot(t, i);\n }).next(function () {\n return r;\n });\n },\n /**\n * Looks up several entries in the cache.\n *\n * @param documentKeys The set of keys entries to look up.\n * @return A map of MaybeDocuments indexed by key (if a document cannot be\n * found, the key will be mapped to null) and a map of sizes indexed by\n * key (zero if the key cannot be found).\n */\n t.prototype.na = function (t, e) {\n var n = this,\n r = Dt(),\n i = new bt(A.i);\n return this.ea(t, e, function (t, e) {\n var o = n.Xo(e);\n o ? (r = r.ot(t, o), i = i.ot(t, Vi(e))) : (r = r.ot(t, null), i = i.ot(t, 0));\n }).next(function () {\n return {\n sa: r,\n ia: i\n };\n });\n }, t.prototype.ea = function (t, e, n) {\n if (e.m()) return yr.resolve();\n\n var r = IDBKeyRange.bound(e.first().path.A(), e.last().path.A()),\n i = e._t(),\n o = i.It();\n\n return Oi(t).rs({\n range: r\n }, function (t, e, r) {\n // Go through keys not found in cache.\n for (var s = A.$(t); o && A.i(o, s) < 0;) {\n n(o, null), o = i.It();\n }\n\n o && o.isEqual(s) && ( // Key found in cache.\n n(o, e), o = i.At() ? i.It() : null), // Skip to the next key (if there is one).\n o ? r.Xn(o.path.A()) : r.done();\n }).next(function () {\n // The rest of the keys are not in the cache. One case where `iterate`\n // above won't go through them is when the cache is empty.\n for (; o;) {\n n(o, null), o = i.At() ? i.It() : null;\n }\n });\n }, t.prototype.Lr = function (t, e, n) {\n var r = this,\n i = Lt(),\n o = e.path.length + 1,\n s = {};\n\n if (n.isEqual(st.min())) {\n // Documents are ordered by key, so we can use a prefix scan to narrow\n // down the documents we need to match the query against.\n var u = e.path.A();\n s.range = IDBKeyRange.lowerBound(u);\n } else {\n // Execute an index-free query and filter by read time. This is safe\n // since all document changes to queries that have a\n // lastLimboFreeSnapshotVersion (`sinceReadTime`) have a read time set.\n var a = e.path.A(),\n c = gi(n);\n s.range = IDBKeyRange.lowerBound([a, c],\n /* open= */\n !0), s.index = Ki.collectionReadTimeIndex;\n }\n\n return Oi(t).rs(s, function (t, n, s) {\n // The query is actually returning any path that starts with the query\n // path prefix which may include documents in subcollections. For\n // example, a query on 'rooms' will return rooms/abc/messages/xyx but we\n // shouldn't match it. Fix this by discarding rows with document keys\n // more than one segment longer than the query path.\n if (t.length === o) {\n var u = vi(r.serializer, n);\n e.path.T(u.key.path) ? u instanceof kn && $n(e, u) && (i = i.ot(u.key, u)) : s.done();\n }\n }).next(function () {\n return i;\n });\n }, t.prototype.ra = function (t) {\n return new ki(this, !!t && t.oa);\n }, t.prototype.aa = function (t) {\n return this.getMetadata(t).next(function (t) {\n return t.byteSize;\n });\n }, t.prototype.getMetadata = function (t) {\n return Ri(t).get(Qi.key).next(function (t) {\n return g(!!t), t;\n });\n }, t.prototype.Jo = function (t, e) {\n return Ri(t).put(Qi.key, e);\n },\n /**\n * Decodes `remoteDoc` and returns the document (or null, if the document\n * corresponds to the format used for sentinel deletes).\n */\n t.prototype.Xo = function (t) {\n if (t) {\n var e = vi(this.serializer, t);\n return e instanceof Rn && e.version.isEqual(st.min()) ? null : e;\n }\n\n return null;\n }, t;\n}(),\n ki =\n/** @class */\nfunction (e) {\n /**\n * @param documentCache The IndexedDbRemoteDocumentCache to apply the changes to.\n * @param trackRemovals Whether to create sentinel deletes that can be tracked by\n * `getNewDocumentChanges()`.\n */\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).ca = t, r.oa = n, // A map of document sizes prior to applying the changes in this buffer.\n r.ua = new it(function (t) {\n return t.toString();\n }, function (t, e) {\n return t.isEqual(e);\n }), r;\n }\n\n return t.__extends(n, e), n.prototype.yr = function (t) {\n var e = this,\n n = [],\n r = 0,\n i = new Tt(function (t, e) {\n return H(t.R(), e.R());\n });\n return this.wr.forEach(function (o, s) {\n var u = e.ua.get(o);\n\n if (s) {\n var a = yi(e.ca.serializer, s, e.readTime);\n i = i.add(o.path.h());\n var c = Vi(a);\n r += c - u, n.push(e.ca.Er(t, o, a));\n } else if (r -= u, e.oa) {\n // In order to track removals, we store a \"sentinel delete\" in the\n // RemoteDocumentCache. This entry is represented by a NoDocument\n // with a version of 0 and ignored by `maybeDecodeDocument()` but\n // preserved in `getNewDocumentChanges()`.\n var h = yi(e.ca.serializer, new Rn(o, st.min()), e.readTime);\n n.push(e.ca.Er(t, o, h));\n } else n.push(e.ca.Ar(t, o));\n }), i.forEach(function (r) {\n n.push(e.ca.Dr.Mo(t, r));\n }), n.push(this.ca.updateMetadata(t, r)), yr.$n(n);\n }, n.prototype.gr = function (t, e) {\n var n = this; // Record the size of everything we load from the cache so we can compute a delta later.\n\n return this.ca.Zo(t, e).next(function (t) {\n return null === t ? (n.ua.set(e, 0), null) : (n.ua.set(e, t.size), t.ta);\n });\n }, n.prototype.Pr = function (t, e) {\n var n = this; // Record the size of everything we load from the cache so we can compute\n // a delta later.\n\n return this.ca.na(t, e).next(function (t) {\n var e = t.sa; // Note: `getAllFromCache` returns two maps instead of a single map from\n // keys to `DocumentSizeEntry`s. This is to allow returning the\n // `NullableMaybeDocumentMap` directly, without a conversion.\n\n return t.ia.forEach(function (t, e) {\n n.ua.set(t, e);\n }), e;\n });\n }, n;\n}(Zr);\n/**\n * Creates a new IndexedDbRemoteDocumentCache.\n *\n * @param serializer The document serializer.\n * @param indexManager The query indexes that need to be maintained.\n */\n\n/**\n * Handles the details of adding and updating documents in the IndexedDbRemoteDocumentCache.\n *\n * Unlike the MemoryRemoteDocumentChangeBuffer, the IndexedDb implementation computes the size\n * delta for all submitted changes. This avoids having to re-read all documents from IndexedDb\n * when we apply the changes.\n */\n\n\nfunction Ri(t) {\n return ho.Qn(t, Qi.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the remoteDocuments object store.\n */\n\n\nfunction Oi(t) {\n return ho.Qn(t, Ki.store);\n}\n\nfunction Pi(t) {\n return t.path.A();\n}\n/**\n * Retrusn an approximate size for the given document.\n */\n\n\nfunction Vi(t) {\n var e;\n if (t.document) e = t.document;else if (t.unknownDocument) e = t.unknownDocument;else {\n if (!t.noDocument) throw y();\n e = t.noDocument;\n }\n return JSON.stringify(e).length;\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An in-memory implementation of IndexManager.\n */\n\n\nvar Ui =\n/** @class */\nfunction () {\n function t() {\n this.ha = new Ci();\n }\n\n return t.prototype.Mo = function (t, e) {\n return this.ha.add(e), yr.resolve();\n }, t.prototype.Qr = function (t, e) {\n return yr.resolve(this.ha.getEntries(e));\n }, t;\n}(),\n Ci =\n/** @class */\nfunction () {\n function t() {\n this.index = {};\n } // Returns false if the entry already existed.\n\n\n return t.prototype.add = function (t) {\n var e = t._(),\n n = t.h(),\n r = this.index[e] || new Tt(E.i),\n i = !r.has(n);\n\n return this.index[e] = r.add(n), i;\n }, t.prototype.has = function (t) {\n var e = t._(),\n n = t.h(),\n r = this.index[e];\n\n return r && r.has(n);\n }, t.prototype.getEntries = function (t) {\n return (this.index[t] || new Tt(E.i)).A();\n }, t;\n}(),\n Fi =\n/** @class */\nfunction () {\n function t(t) {\n this.serializer = t;\n }\n /**\n * Performs database creation and schema upgrades.\n *\n * Note that in production, this method is only ever used to upgrade the schema\n * to SCHEMA_VERSION. Different values of toVersion are only used for testing\n * and local feature development.\n */\n\n\n return t.prototype.createOrUpgrade = function (t, e, n, r) {\n var i = this;\n g(n < r && n >= 0 && r <= 10);\n var o = new br(\"createOrUpgrade\", e);\n n < 1 && r >= 1 && (function (t) {\n t.createObjectStore(qi.store);\n }(t), function (t) {\n t.createObjectStore(ji.store, {\n keyPath: ji.keyPath\n }), t.createObjectStore(Gi.store, {\n keyPath: Gi.keyPath,\n autoIncrement: !0\n }).createIndex(Gi.userMutationsIndex, Gi.userMutationsKeyPath, {\n unique: !0\n }), t.createObjectStore(zi.store);\n }(t), Ji(t), function (t) {\n t.createObjectStore(Ki.store);\n }(t)); // Migration 2 to populate the targetGlobal object no longer needed since\n // migration 3 unconditionally clears it.\n\n var s = yr.resolve();\n return n < 3 && r >= 3 && ( // Brand new clients don't need to drop and recreate--only clients that\n // potentially have corrupt data.\n 0 !== n && (function (t) {\n t.deleteObjectStore(Yi.store), t.deleteObjectStore(Hi.store), t.deleteObjectStore($i.store);\n }(t), Ji(t)), s = s.next(function () {\n /**\n * Creates the target global singleton row.\n *\n * @param {IDBTransaction} txn The version upgrade transaction for indexeddb\n */\n return function (t) {\n var e = t.store($i.store),\n n = new $i(\n /*highestTargetId=*/\n 0,\n /*lastListenSequenceNumber=*/\n 0, st.min().Z(),\n /*targetCount=*/\n 0);\n return e.put($i.key, n);\n }(o);\n })), n < 4 && r >= 4 && (0 !== n && ( // Schema version 3 uses auto-generated keys to generate globally unique\n // mutation batch IDs (this was previously ensured internally by the\n // client). To migrate to the new schema, we have to read all mutations\n // and write them back out. We preserve the existing batch IDs to guarantee\n // consistency with other object stores. Any further mutation batch IDs will\n // be auto-generated.\n s = s.next(function () {\n return function (t, e) {\n return e.store(Gi.store).ts().next(function (n) {\n t.deleteObjectStore(Gi.store), t.createObjectStore(Gi.store, {\n keyPath: Gi.keyPath,\n autoIncrement: !0\n }).createIndex(Gi.userMutationsIndex, Gi.userMutationsKeyPath, {\n unique: !0\n });\n var r = e.store(Gi.store),\n i = n.map(function (t) {\n return r.put(t);\n });\n return yr.$n(i);\n });\n }(t, o);\n })), s = s.next(function () {\n !function (t) {\n t.createObjectStore(Zi.store, {\n keyPath: Zi.keyPath\n });\n }(t);\n })), n < 5 && r >= 5 && (s = s.next(function () {\n return i.removeAcknowledgedMutations(o);\n })), n < 6 && r >= 6 && (s = s.next(function () {\n return function (t) {\n t.createObjectStore(Qi.store);\n }(t), i.addDocumentGlobal(o);\n })), n < 7 && r >= 7 && (s = s.next(function () {\n return i.ensureSequenceNumbers(o);\n })), n < 8 && r >= 8 && (s = s.next(function () {\n return i.createCollectionParentIndex(t, o);\n })), n < 9 && r >= 9 && (s = s.next(function () {\n // Multi-Tab used to manage its own changelog, but this has been moved\n // to the DbRemoteDocument object store itself. Since the previous change\n // log only contained transient data, we can drop its object store.\n !function (t) {\n t.objectStoreNames.contains(\"remoteDocumentChanges\") && t.deleteObjectStore(\"remoteDocumentChanges\");\n }(t), function (t) {\n var e = t.objectStore(Ki.store);\n e.createIndex(Ki.readTimeIndex, Ki.readTimeIndexPath, {\n unique: !1\n }), e.createIndex(Ki.collectionReadTimeIndex, Ki.collectionReadTimeIndexPath, {\n unique: !1\n });\n }(e);\n })), n < 10 && r >= 10 && (s = s.next(function () {\n return i.rewriteCanonicalIds(o);\n })), s;\n }, t.prototype.addDocumentGlobal = function (t) {\n var e = 0;\n return t.store(Ki.store).rs(function (t, n) {\n e += Vi(n);\n }).next(function () {\n var n = new Qi(e);\n return t.store(Qi.store).put(Qi.key, n);\n });\n }, t.prototype.removeAcknowledgedMutations = function (t) {\n var e = this,\n n = t.store(ji.store),\n r = t.store(Gi.store);\n return n.ts().next(function (n) {\n return yr.forEach(n, function (n) {\n var i = IDBKeyRange.bound([n.userId, -1], [n.userId, n.lastAcknowledgedBatchId]);\n return r.ts(Gi.userMutationsIndex, i).next(function (r) {\n return yr.forEach(r, function (r) {\n g(r.userId === n.userId);\n var i = bi(e.serializer, r);\n return Ai(t, n.userId, i).next(function () {});\n });\n });\n });\n });\n },\n /**\n * Ensures that every document in the remote document cache has a corresponding sentinel row\n * with a sequence number. Missing rows are given the most recently used sequence number.\n */\n t.prototype.ensureSequenceNumbers = function (t) {\n var e = t.store(Yi.store),\n n = t.store(Ki.store);\n return t.store($i.store).get($i.key).next(function (t) {\n var r = [];\n return n.rs(function (n, i) {\n var o = new E(n),\n s = function (t) {\n return [0, hi(t)];\n }(o);\n\n r.push(e.get(s).next(function (n) {\n return n ? yr.resolve() : function (n) {\n return e.put(new Yi(0, hi(n), t.highestListenSequenceNumber));\n }(o);\n }));\n }).next(function () {\n return yr.$n(r);\n });\n });\n }, t.prototype.createCollectionParentIndex = function (t, e) {\n // Create the index.\n t.createObjectStore(Xi.store, {\n keyPath: Xi.keyPath\n });\n\n var n = e.store(Xi.store),\n r = new Ci(),\n i = function i(t) {\n if (r.add(t)) {\n var e = t._(),\n i = t.h();\n\n return n.put({\n collectionId: e,\n parent: hi(i)\n });\n }\n }; // Helper to add an index entry iff we haven't already written it.\n // Index existing remote documents.\n\n\n return e.store(Ki.store).rs({\n ss: !0\n }, function (t, e) {\n var n = new E(t);\n return i(n.h());\n }).next(function () {\n return e.store(zi.store).rs({\n ss: !0\n }, function (t, e) {\n t[0];\n var n = t[1],\n r = (t[2], pi(n));\n return i(r.h());\n });\n });\n }, t.prototype.rewriteCanonicalIds = function (t) {\n var e = this,\n n = t.store(Hi.store);\n return n.rs(function (t, r) {\n var i = Ii(r),\n o = Ei(e.serializer, i);\n return n.put(o);\n });\n }, t;\n}(),\n Mi = function Mi(t, e) {\n this.seconds = t, this.nanoseconds = e;\n},\n qi = function qi(t,\n/** Whether to allow shared access from multiple tabs. */\ne, n) {\n this.ownerId = t, this.allowTabSynchronization = e, this.leaseTimestampMs = n;\n};\n/**\n * Internal implementation of the collection-parent index exposed by MemoryIndexManager.\n * Also used for in-memory caching by IndexedDbIndexManager and initial index population\n * in indexeddb_schema.ts\n */\n\n/**\n * Name of the IndexedDb object store.\n *\n * Note that the name 'owner' is chosen to ensure backwards compatibility with\n * older clients that only supported single locked access to the persistence\n * layer.\n */\n\n\nqi.store = \"owner\",\n/**\n * The key string used for the single object that exists in the\n * DbPrimaryClient store.\n */\nqi.key = \"owner\";\n\nvar ji = function ji(\n/**\n * The normalized user ID to which this queue belongs.\n */\nt,\n/**\n * An identifier for the highest numbered batch that has been acknowledged\n * by the server. All MutationBatches in this queue with batchIds less\n * than or equal to this value are considered to have been acknowledged by\n * the server.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\ne,\n/**\n * A stream token that was previously sent by the server.\n *\n * See StreamingWriteRequest in datastore.proto for more details about\n * usage.\n *\n * After sending this token, earlier tokens may not be used anymore so\n * only a single stream token is retained.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\nn) {\n this.userId = t, this.lastAcknowledgedBatchId = e, this.lastStreamToken = n;\n};\n/** Name of the IndexedDb object store. */\n\n\nji.store = \"mutationQueues\",\n/** Keys are automatically assigned via the userId property. */\nji.keyPath = \"userId\";\n/**\n * An object to be stored in the 'mutations' store in IndexedDb.\n *\n * Represents a batch of user-level mutations intended to be sent to the server\n * in a single write. Each user-level batch gets a separate DbMutationBatch\n * with a new batchId.\n */\n\nvar Gi = function Gi(\n/**\n * The normalized user ID to which this batch belongs.\n */\nt,\n/**\n * An identifier for this batch, allocated using an auto-generated key.\n */\ne,\n/**\n * The local write time of the batch, stored as milliseconds since the\n * epoch.\n */\nn,\n/**\n * A list of \"mutations\" that represent a partial base state from when this\n * write batch was initially created. During local application of the write\n * batch, these baseMutations are applied prior to the real writes in order\n * to override certain document fields from the remote document cache. This\n * is necessary in the case of non-idempotent writes (e.g. `increment()`\n * transforms) to make sure that the local view of the modified documents\n * doesn't flicker if the remote document cache receives the result of the\n * non-idempotent write before the write is removed from the queue.\n *\n * These mutations are never sent to the backend.\n */\nr,\n/**\n * A list of mutations to apply. All mutations will be applied atomically.\n *\n * Mutations are serialized via toMutation().\n */\ni) {\n this.userId = t, this.batchId = e, this.localWriteTimeMs = n, this.baseMutations = r, this.mutations = i;\n};\n/** Name of the IndexedDb object store. */\n\n\nGi.store = \"mutations\",\n/** Keys are automatically assigned via the userId, batchId properties. */\nGi.keyPath = \"batchId\",\n/** The index name for lookup of mutations by user. */\nGi.userMutationsIndex = \"userMutationsIndex\",\n/** The user mutations index is keyed by [userId, batchId] pairs. */\nGi.userMutationsKeyPath = [\"userId\", \"batchId\"];\n\nvar zi =\n/** @class */\nfunction () {\n function t() {}\n /**\n * Creates a [userId] key for use in the DbDocumentMutations index to iterate\n * over all of a user's document mutations.\n */\n\n\n return t.prefixForUser = function (t) {\n return [t];\n },\n /**\n * Creates a [userId, encodedPath] key for use in the DbDocumentMutations\n * index to iterate over all at document mutations for a given path or lower.\n */\n t.prefixForPath = function (t, e) {\n return [t, hi(e)];\n },\n /**\n * Creates a full index key of [userId, encodedPath, batchId] for inserting\n * and deleting into the DbDocumentMutations index.\n */\n t.key = function (t, e, n) {\n return [t, hi(e), n];\n }, t;\n}();\n\nzi.store = \"documentMutations\",\n/**\n * Because we store all the useful information for this store in the key,\n * there is no useful information to store as the value. The raw (unencoded)\n * path cannot be stored because IndexedDb doesn't store prototype\n * information.\n */\nzi.PLACEHOLDER = new zi();\n\nvar Bi = function Bi(t, e) {\n this.path = t, this.readTime = e;\n},\n Wi = function Wi(t, e) {\n this.path = t, this.version = e;\n},\n Ki = // TODO: We are currently storing full document keys almost three times\n// (once as part of the primary key, once - partly - as `parentPath` and once\n// inside the encoded documents). During our next migration, we should\n// rewrite the primary key as parentPath + document ID which would allow us\n// to drop one value.\nfunction Ki(\n/**\n * Set to an instance of DbUnknownDocument if the data for a document is\n * not known, but it is known that a document exists at the specified\n * version (e.g. it had a successful update applied to it)\n */\nt,\n/**\n * Set to an instance of a DbNoDocument if it is known that no document\n * exists.\n */\ne,\n/**\n * Set to an instance of a Document if there's a cached version of the\n * document.\n */\nn,\n/**\n * Documents that were written to the remote document store based on\n * a write acknowledgment are marked with `hasCommittedMutations`. These\n * documents are potentially inconsistent with the backend's copy and use\n * the write's commit version as their document version.\n */\nr,\n/**\n * When the document was read from the backend. Undefined for data written\n * prior to schema version 9.\n */\ni,\n/**\n * The path of the collection this document is part of. Undefined for data\n * written prior to schema version 9.\n */\no) {\n this.unknownDocument = t, this.noDocument = e, this.document = n, this.hasCommittedMutations = r, this.readTime = i, this.parentPath = o;\n};\n/**\n * Represents a document that is known to exist but whose data is unknown.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */\n\n\nKi.store = \"remoteDocuments\",\n/**\n * An index that provides access to all entries sorted by read time (which\n * corresponds to the last modification time of each row).\n *\n * This index is used to provide a changelog for Multi-Tab.\n */\nKi.readTimeIndex = \"readTimeIndex\", Ki.readTimeIndexPath = \"readTime\",\n/**\n * An index that provides access to documents in a collection sorted by read\n * time.\n *\n * This index is used to allow the RemoteDocumentCache to fetch newly changed\n * documents in a collection.\n */\nKi.collectionReadTimeIndex = \"collectionReadTimeIndex\", Ki.collectionReadTimeIndexPath = [\"parentPath\", \"readTime\"];\n/**\n * Contains a single entry that has metadata about the remote document cache.\n */\n\nvar Qi =\n/**\n * @param byteSize Approximately the total size in bytes of all the documents in the document\n * cache.\n */\nfunction Qi(t) {\n this.byteSize = t;\n};\n\nQi.store = \"remoteDocumentGlobal\", Qi.key = \"remoteDocumentGlobalKey\";\n\nvar Hi = function Hi(\n/**\n * An auto-generated sequential numeric identifier for the query.\n *\n * Queries are stored using their canonicalId as the key, but these\n * canonicalIds can be quite long so we additionally assign a unique\n * queryId which can be used by referenced data structures (e.g.\n * indexes) to minimize the on-disk cost.\n */\nt,\n/**\n * The canonical string representing this query. This is not unique.\n */\ne,\n/**\n * The last readTime received from the Watch Service for this query.\n *\n * This is the same value as TargetChange.read_time in the protos.\n */\nn,\n/**\n * An opaque, server-assigned token that allows watching a query to be\n * resumed after disconnecting without retransmitting all the data\n * that matches the query. The resume token essentially identifies a\n * point in time from which the server should resume sending results.\n *\n * This is related to the snapshotVersion in that the resumeToken\n * effectively also encodes that value, but the resumeToken is opaque\n * and sometimes encodes additional information.\n *\n * A consequence of this is that the resumeToken should be used when\n * asking the server to reason about where this client is in the watch\n * stream, but the client should use the snapshotVersion for its own\n * purposes.\n *\n * This is the same value as TargetChange.resume_token in the protos.\n */\nr,\n/**\n * A sequence number representing the last time this query was\n * listened to, used for garbage collection purposes.\n *\n * Conventionally this would be a timestamp value, but device-local\n * clocks are unreliable and they must be able to create new listens\n * even while disconnected. Instead this should be a monotonically\n * increasing number that's incremented on each listen call.\n *\n * This is different from the queryId since the queryId is an\n * immutable identifier assigned to the Query on first use while\n * lastListenSequenceNumber is updated every time the query is\n * listened to.\n */\ni,\n/**\n * Denotes the maximum snapshot version at which the associated query view\n * contained no limbo documents. Undefined for data written prior to\n * schema version 9.\n */\no,\n/**\n * The query for this target.\n *\n * Because canonical ids are not unique we must store the actual query. We\n * use the proto to have an object we can persist without having to\n * duplicate translation logic to and from a `Query` object.\n */\ns) {\n this.targetId = t, this.canonicalId = e, this.readTime = n, this.resumeToken = r, this.lastListenSequenceNumber = i, this.lastLimboFreeSnapshotVersion = o, this.query = s;\n};\n\nHi.store = \"targets\",\n/** Keys are automatically assigned via the targetId property. */\nHi.keyPath = \"targetId\",\n/** The name of the queryTargets index. */\nHi.queryTargetsIndexName = \"queryTargetsIndex\",\n/**\n * The index of all canonicalIds to the targets that they match. This is not\n * a unique mapping because canonicalId does not promise a unique name for all\n * possible queries, so we append the targetId to make the mapping unique.\n */\nHi.queryTargetsKeyPath = [\"canonicalId\", \"targetId\"];\n/**\n * An object representing an association between a target and a document, or a\n * sentinel row marking the last sequence number at which a document was used.\n * Each document cached must have a corresponding sentinel row before lru\n * garbage collection is enabled.\n *\n * The target associations and sentinel rows are co-located so that orphaned\n * documents and their sequence numbers can be identified efficiently via a scan\n * of this store.\n */\n\nvar Yi = function Yi(\n/**\n * The targetId identifying a target or 0 for a sentinel row.\n */\nt,\n/**\n * The path to the document, as encoded in the key.\n */\ne,\n/**\n * If this is a sentinel row, this should be the sequence number of the last\n * time the document specified by `path` was used. Otherwise, it should be\n * `undefined`.\n */\nn) {\n this.targetId = t, this.path = e, this.sequenceNumber = n;\n};\n/** Name of the IndexedDb object store. */\n\n\nYi.store = \"targetDocuments\",\n/** Keys are automatically assigned via the targetId, path properties. */\nYi.keyPath = [\"targetId\", \"path\"],\n/** The index name for the reverse index. */\nYi.documentTargetsIndex = \"documentTargetsIndex\",\n/** We also need to create the reverse index for these properties. */\nYi.documentTargetsKeyPath = [\"path\", \"targetId\"];\n/**\n * A record of global state tracked across all Targets, tracked separately\n * to avoid the need for extra indexes.\n *\n * This should be kept in-sync with the proto used in the iOS client.\n */\n\nvar $i = function $i(\n/**\n * The highest numbered target id across all targets.\n *\n * See DbTarget.targetId.\n */\nt,\n/**\n * The highest numbered lastListenSequenceNumber across all targets.\n *\n * See DbTarget.lastListenSequenceNumber.\n */\ne,\n/**\n * A global snapshot version representing the last consistent snapshot we\n * received from the backend. This is monotonically increasing and any\n * snapshots received from the backend prior to this version (e.g. for\n * targets resumed with a resumeToken) should be suppressed (buffered)\n * until the backend has caught up to this snapshot version again. This\n * prevents our cache from ever going backwards in time.\n */\nn,\n/**\n * The number of targets persisted.\n */\nr) {\n this.highestTargetId = t, this.highestListenSequenceNumber = e, this.lastRemoteSnapshotVersion = n, this.targetCount = r;\n};\n/**\n * The key string used for the single object that exists in the\n * DbTargetGlobal store.\n */\n\n\n$i.key = \"targetGlobalKey\", $i.store = \"targetGlobal\";\n/**\n * An object representing an association between a Collection id (e.g. 'messages')\n * to a parent path (e.g. '/chats/123') that contains it as a (sub)collection.\n * This is used to efficiently find all collections to query when performing\n * a Collection Group query.\n */\n\nvar Xi = function Xi(\n/**\n * The collectionId (e.g. 'messages')\n */\nt,\n/**\n * The path to the parent (either a document location or an empty path for\n * a root-level collection).\n */\ne) {\n this.collectionId = t, this.parent = e;\n};\n/** Name of the IndexedDb object store. */\n\n\nfunction Ji(t) {\n t.createObjectStore(Yi.store, {\n keyPath: Yi.keyPath\n }).createIndex(Yi.documentTargetsIndex, Yi.documentTargetsKeyPath, {\n unique: !0\n }), // NOTE: This is unique only because the TargetId is the suffix.\n t.createObjectStore(Hi.store, {\n keyPath: Hi.keyPath\n }).createIndex(Hi.queryTargetsIndexName, Hi.queryTargetsKeyPath, {\n unique: !0\n }), t.createObjectStore($i.store);\n}\n\nXi.store = \"collectionParents\",\n/** Keys are automatically assigned via the collectionId, parent properties. */\nXi.keyPath = [\"collectionId\", \"parent\"];\n\nvar Zi = function Zi( // Note: Previous schema versions included a field\n// \"lastProcessedDocumentChangeId\". Don't use anymore.\n\n/** The auto-generated client id assigned at client startup. */\nt,\n/** The last time this state was updated. */\ne,\n/** Whether the client's network connection is enabled. */\nn,\n/** Whether this client is running in a foreground tab. */\nr) {\n this.clientId = t, this.updateTimeMs = e, this.networkEnabled = n, this.inForeground = r;\n};\n/** Name of the IndexedDb object store. */\n\n\nZi.store = \"clientMetadata\",\n/** Keys are automatically assigned via the clientId properties. */\nZi.keyPath = \"clientId\";\n\nvar to = t.__spreadArrays(t.__spreadArrays(t.__spreadArrays([ji.store, Gi.store, zi.store, Ki.store, Hi.store, qi.store, $i.store, Yi.store], [Zi.store]), [Qi.store]), [Xi.store]),\n eo =\n/** @class */\nfunction () {\n function t() {\n /**\n * An in-memory copy of the index entries we've already written since the SDK\n * launched. Used to avoid re-writing the same entry repeatedly.\n *\n * This is *NOT* a complete cache of what's in persistence and so can never be used to\n * satisfy reads.\n */\n this.la = new Ci();\n }\n /**\n * Adds a new entry to the collection parent index.\n *\n * Repeated calls for the same collectionPath should be avoided within a\n * transaction as IndexedDbIndexManager only caches writes once a transaction\n * has been committed.\n */\n\n\n return t.prototype.Mo = function (t, e) {\n var n = this;\n\n if (!this.la.has(e)) {\n var r = e._(),\n i = e.h();\n\n t.pr(function () {\n // Add the collection to the in memory cache only if the transaction was\n // successfully committed.\n n.la.add(e);\n });\n var o = {\n collectionId: r,\n parent: hi(i)\n };\n return no(t).put(o);\n }\n\n return yr.resolve();\n }, t.prototype.Qr = function (t, e) {\n var n = [],\n r = IDBKeyRange.bound([e, \"\"], [$(e), \"\"],\n /*lowerOpen=*/\n !1,\n /*upperOpen=*/\n !0);\n return no(t).ts(r).next(function (t) {\n for (var r = 0, i = t; r < i.length; r++) {\n var o = i[r]; // This collectionId guard shouldn't be necessary (and isn't as long\n // as we're running in a real browser), but there's a bug in\n // indexeddbshim that breaks our range in our tests running in node:\n // https://github.com/axemclion/IndexedDBShim/issues/334\n\n if (o.collectionId !== e) break;\n n.push(pi(o.parent));\n }\n\n return n;\n });\n }, t;\n}(); // V2 is no longer usable (see comment at top of file)\n// Visible for testing\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A persisted implementation of IndexManager.\n */\n\n/**\n * Helper to get a typed SimpleDbStore for the collectionParents\n * document store.\n */\n\n\nfunction no(t) {\n return ho.Qn(t, Xi.store);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Offset to ensure non-overlapping target ids. */\n\n/**\n * Generates monotonically increasing target IDs for sending targets to the\n * watch stream.\n *\n * The client constructs two generators, one for the target cache, and one for\n * for the sync engine (to generate limbo documents targets). These\n * generators produce non-overlapping IDs (by using even and odd IDs\n * respectively).\n *\n * By separating the target ID space, the query cache can generate target IDs\n * that persist across client restarts, while sync engine can independently\n * generate in-memory target IDs that are transient and can be reused after a\n * restart.\n */\n\n\nvar ro =\n/** @class */\nfunction () {\n function t(t) {\n this._a = t;\n }\n\n return t.prototype.next = function () {\n return this._a += 2, this._a;\n }, t.fa = function () {\n // The target cache generator must return '2' in its first call to `next()`\n // as there is no differentiation in the protocol layer between an unset\n // number and the number '0'. If we were to sent a target with target ID\n // '0', the backend would consider it unset and replace it with its own ID.\n return new t(0);\n }, t.da = function () {\n // Sync engine assigns target IDs for limbo document detection.\n return new t(-1);\n }, t;\n}(),\n io =\n/** @class */\nfunction () {\n function t(t, e) {\n this.No = t, this.serializer = e;\n } // PORTING NOTE: We don't cache global metadata for the target cache, since\n // some of it (in particular `highestTargetId`) can be modified by secondary\n // tabs. We could perhaps be more granular (and e.g. still cache\n // `lastRemoteSnapshotVersion` in memory) but for simplicity we currently go\n // to IndexedDb whenever we need to read metadata. We can revisit if it turns\n // out to have a meaningful performance impact.\n\n\n return t.prototype.wa = function (t) {\n var e = this;\n return this.ma(t).next(function (n) {\n var r = new ro(n.highestTargetId);\n return n.highestTargetId = r.next(), e.Ta(t, n).next(function () {\n return n.highestTargetId;\n });\n });\n }, t.prototype.Ea = function (t) {\n return this.ma(t).next(function (t) {\n return st.J(new ot(t.lastRemoteSnapshotVersion.seconds, t.lastRemoteSnapshotVersion.nanoseconds));\n });\n }, t.prototype.Ia = function (t) {\n return this.ma(t).next(function (t) {\n return t.highestListenSequenceNumber;\n });\n }, t.prototype.Aa = function (t, e, n) {\n var r = this;\n return this.ma(t).next(function (i) {\n return i.highestListenSequenceNumber = e, n && (i.lastRemoteSnapshotVersion = n.Z()), e > i.highestListenSequenceNumber && (i.highestListenSequenceNumber = e), r.Ta(t, i);\n });\n }, t.prototype.Ra = function (t, e) {\n var n = this;\n return this.ga(t, e).next(function () {\n return n.ma(t).next(function (r) {\n return r.targetCount += 1, n.Pa(e, r), n.Ta(t, r);\n });\n });\n }, t.prototype.ya = function (t, e) {\n return this.ga(t, e);\n }, t.prototype.Va = function (t, e) {\n var n = this;\n return this.pa(t, e.targetId).next(function () {\n return oo(t).delete(e.targetId);\n }).next(function () {\n return n.ma(t);\n }).next(function (e) {\n return g(e.targetCount > 0), e.targetCount -= 1, n.Ta(t, e);\n });\n },\n /**\n * Drops any targets with sequence number less than or equal to the upper bound, excepting those\n * present in `activeTargetIds`. Document associations for the removed targets are also removed.\n * Returns the number of targets removed.\n */\n t.prototype.po = function (t, e, n) {\n var r = this,\n i = 0,\n o = [];\n return oo(t).rs(function (s, u) {\n var a = Ii(u);\n a.sequenceNumber <= e && null === n.get(a.targetId) && (i++, o.push(r.Va(t, a)));\n }).next(function () {\n return yr.$n(o);\n }).next(function () {\n return i;\n });\n },\n /**\n * Call provided function with each `TargetData` that we have cached.\n */\n t.prototype.Ce = function (t, e) {\n return oo(t).rs(function (t, n) {\n var r = Ii(n);\n e(r);\n });\n }, t.prototype.ma = function (t) {\n return so(t).get($i.key).next(function (t) {\n return g(null !== t), t;\n });\n }, t.prototype.Ta = function (t, e) {\n return so(t).put($i.key, e);\n }, t.prototype.ga = function (t, e) {\n return oo(t).put(Ei(this.serializer, e));\n },\n /**\n * In-place updates the provided metadata to account for values in the given\n * TargetData. Saving is done separately. Returns true if there were any\n * changes to the metadata.\n */\n t.prototype.Pa = function (t, e) {\n var n = !1;\n return t.targetId > e.highestTargetId && (e.highestTargetId = t.targetId, n = !0), t.sequenceNumber > e.highestListenSequenceNumber && (e.highestListenSequenceNumber = t.sequenceNumber, n = !0), n;\n }, t.prototype.ba = function (t) {\n return this.ma(t).next(function (t) {\n return t.targetCount;\n });\n }, t.prototype.va = function (t, e) {\n // Iterating by the canonicalId may yield more than one result because\n // canonicalId values are not required to be unique per target. This query\n // depends on the queryTargets index to be efficient.\n var n = lt(e),\n r = IDBKeyRange.bound([n, Number.NEGATIVE_INFINITY], [n, Number.POSITIVE_INFINITY]),\n i = null;\n return oo(t).rs({\n range: r,\n index: Hi.queryTargetsIndexName\n }, function (t, n, r) {\n var o = Ii(n); // After finding a potential match, check that the target is\n // actually equal to the requested target.\n\n pt(e, o.target) && (i = o, r.done());\n }).next(function () {\n return i;\n });\n }, t.prototype.Sa = function (t, e, n) {\n var r = this,\n i = [],\n o = uo(t); // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n\n return e.forEach(function (e) {\n var s = hi(e.path);\n i.push(o.put(new Yi(n, s))), i.push(r.No.Da(t, n, e));\n }), yr.$n(i);\n }, t.prototype.Ca = function (t, e, n) {\n var r = this,\n i = uo(t); // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n\n return yr.forEach(e, function (e) {\n var o = hi(e.path);\n return yr.$n([i.delete([n, o]), r.No.Na(t, n, e)]);\n });\n }, t.prototype.pa = function (t, e) {\n var n = uo(t),\n r = IDBKeyRange.bound([e], [e + 1],\n /*lowerOpen=*/\n !1,\n /*upperOpen=*/\n !0);\n return n.delete(r);\n }, t.prototype.Fa = function (t, e) {\n var n = IDBKeyRange.bound([e], [e + 1],\n /*lowerOpen=*/\n !1,\n /*upperOpen=*/\n !0),\n r = uo(t),\n i = Ot();\n return r.rs({\n range: n,\n ss: !0\n }, function (t, e, n) {\n var r = pi(t[1]),\n o = new A(r);\n i = i.add(o);\n }).next(function () {\n return i;\n });\n }, t.prototype.Ho = function (t, e) {\n var n = hi(e.path),\n r = IDBKeyRange.bound([n], [$(n)],\n /*lowerOpen=*/\n !1,\n /*upperOpen=*/\n !0),\n i = 0;\n return uo(t).rs({\n index: Yi.documentTargetsIndex,\n ss: !0,\n range: r\n }, function (t, e, n) {\n var r = t[0]; // Having a sentinel row for a document does not count as containing that document;\n // For the target cache, containing the document means the document is part of some\n // target.\n\n t[1];\n 0 !== r && (i++, n.done());\n }).next(function () {\n return i > 0;\n });\n },\n /**\n * Looks up a TargetData entry by target ID.\n *\n * @param targetId The target ID of the TargetData entry to look up.\n * @return The cached TargetData entry, or null if the cache has no entry for\n * the target.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ue = function (t, e) {\n return oo(t).get(e).next(function (t) {\n return t ? Ii(t) : null;\n });\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Helper to get a typed SimpleDbStore for the queries object store.\n */\n\n\nfunction oo(t) {\n return ho.Qn(t, Hi.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the target globals object store.\n */\n\n\nfunction so(t) {\n return ho.Qn(t, $i.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the document target object store.\n */\n\n\nfunction uo(t) {\n return ho.Qn(t, Yi.store);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar ao = \"Failed to obtain exclusive access to the persistence layer. To allow shared access, make sure to invoke `enablePersistence()` with `synchronizeTabs:true` in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.\",\n co =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).jo = t, r.xa = n, r;\n }\n\n return t.__extends(n, e), n;\n}(ei),\n ho =\n/** @class */\nfunction () {\n function e(\n /**\n * Whether to synchronize the in-memory state of multiple tabs and share\n * access to local persistence.\n */\n t, n, r, i, o, s, u, h, f,\n /**\n * If set to true, forcefully obtains database access. Existing tabs will\n * no longer be able to access IndexedDB.\n */\n l) {\n if (this.allowTabSynchronization = t, this.persistenceKey = n, this.clientId = r, this.fn = o, this.window = s, this.document = u, this.$a = f, this.ka = l, this.Ma = null, this.Oa = !1, this.isPrimary = !1, this.networkEnabled = !0,\n /** Our window.unload handler, if registered. */\n this.La = null, this.inForeground = !1,\n /** Our 'visibilitychange' listener if registered. */\n this.Ba = null,\n /** The client metadata refresh task. */\n this.qa = null,\n /** The last time we garbage collected the client metadata object store. */\n this.Ua = Number.NEGATIVE_INFINITY,\n /** A listener to notify on primary state changes. */\n this.Qa = function (t) {\n return Promise.resolve();\n }, !e.Ln()) throw new c(a.UNIMPLEMENTED, \"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.\");\n this.No = new po(this, i), this.Wa = n + \"main\", this.serializer = new di(h), this.ja = new gr(this.Wa, 10, new Fi(this.serializer)), this.Ka = new io(this.No, this.serializer), this.Dr = new eo(), this.vr = function (t, e) {\n return new Li(t, e);\n }(this.serializer, this.Dr), this.window && this.window.localStorage ? this.Ga = this.window.localStorage : (this.Ga = null, !1 === l && p(\"IndexedDbPersistence\", \"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page.\"));\n }\n\n return e.Qn = function (t, e) {\n if (t instanceof co) return gr.Qn(t.jo, e);\n throw y();\n },\n /**\n * Attempt to start IndexedDb persistence.\n *\n * @return {Promise} Whether persistence was enabled.\n */\n e.prototype.start = function () {\n var t = this; // NOTE: This is expected to fail sometimes (in the case of another tab\n // already having the persistence lock), so it's the first thing we should\n // do.\n\n return this.za().then(function () {\n if (!t.isPrimary && !t.allowTabSynchronization) // Fail `start()` if `synchronizeTabs` is disabled and we cannot\n // obtain the primary lease.\n throw new c(a.FAILED_PRECONDITION, ao);\n return t.Ha(), t.Ya(), t.Ja(), t.runTransaction(\"getHighestListenSequenceNumber\", \"readonly\", function (e) {\n return t.Ka.Ia(e);\n });\n }).then(function (e) {\n t.Ma = new qr(e, t.$a);\n }).then(function () {\n t.Oa = !0;\n }).catch(function (e) {\n return t.ja && t.ja.close(), Promise.reject(e);\n });\n },\n /**\n * Registers a listener that gets called when the primary state of the\n * instance changes. Upon registering, this listener is invoked immediately\n * with the current primary state.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n e.prototype.Xa = function (e) {\n var n = this;\n return this.Qa = function (r) {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return this.Ei ? [2\n /*return*/\n , e(r)] : [2\n /*return*/\n ];\n });\n });\n }, e(this.isPrimary);\n },\n /**\n * Registers a listener that gets called when the database receives a\n * version change event indicating that it has deleted.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n e.prototype.Za = function (e) {\n var n = this;\n this.ja.Kn(function (r) {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return null === r.newVersion ? [4\n /*yield*/\n , e()] : [3\n /*break*/\n , 2];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n });\n },\n /**\n * Adjusts the current network state in the client's metadata, potentially\n * affecting the primary lease.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n e.prototype.tc = function (e) {\n var n = this;\n this.networkEnabled !== e && (this.networkEnabled = e, // Schedule a primary lease refresh for immediate execution. The eventual\n // lease update will be propagated via `primaryStateListener`.\n this.fn.ws(function () {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.Ei ? [4\n /*yield*/\n , this.za()] : [3\n /*break*/\n , 2];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n }));\n },\n /**\n * Updates the client metadata in IndexedDb and attempts to either obtain or\n * extend the primary lease for the local client. Asynchronously notifies the\n * primary state listener if the client either newly obtained or released its\n * primary lease.\n */\n e.prototype.za = function () {\n var t = this;\n return this.runTransaction(\"updateClientMetadataAndTryBecomePrimary\", \"readwrite\", function (e) {\n return lo(e).put(new Zi(t.clientId, Date.now(), t.networkEnabled, t.inForeground)).next(function () {\n if (t.isPrimary) return t.ec(e).next(function (e) {\n e || (t.isPrimary = !1, t.fn.Cs(function () {\n return t.Qa(!1);\n }));\n });\n }).next(function () {\n return t.nc(e);\n }).next(function (n) {\n return t.isPrimary && !n ? t.sc(e).next(function () {\n return !1;\n }) : !!n && t.ic(e).next(function () {\n return !0;\n });\n });\n }).catch(function (e) {\n if (_r(e)) // Proceed with the existing state. Any subsequent access to\n // IndexedDB will verify the lease.\n return l(\"IndexedDbPersistence\", \"Failed to extend owner lease: \", e), t.isPrimary;\n if (!t.allowTabSynchronization) throw e;\n return l(\"IndexedDbPersistence\", \"Releasing owner lease after error during lease refresh\", e),\n /* isPrimary= */\n !1;\n }).then(function (e) {\n t.isPrimary !== e && t.fn.Cs(function () {\n return t.Qa(e);\n }), t.isPrimary = e;\n });\n }, e.prototype.ec = function (t) {\n var e = this;\n return fo(t).get(qi.key).next(function (t) {\n return yr.resolve(e.rc(t));\n });\n }, e.prototype.oc = function (t) {\n return lo(t).delete(this.clientId);\n },\n /**\n * If the garbage collection threshold has passed, prunes the\n * RemoteDocumentChanges and the ClientMetadata store based on the last update\n * time of all clients.\n */\n e.prototype.ac = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var n,\n r,\n i,\n o,\n s = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return !this.isPrimary || this.cc(this.Ua, 18e5) ? [3\n /*break*/\n , 2] : (this.Ua = Date.now(), [4\n /*yield*/\n , this.runTransaction(\"maybeGarbageCollectMultiClientState\", \"readwrite-primary\", function (t) {\n var n = e.Qn(t, Zi.store);\n return n.ts().next(function (t) {\n var e = s.uc(t, 18e5),\n r = t.filter(function (t) {\n return -1 === e.indexOf(t);\n }); // Delete metadata for clients that are no longer considered active.\n\n return yr.forEach(r, function (t) {\n return n.delete(t.clientId);\n }).next(function () {\n return r;\n });\n });\n }).catch(function () {\n return [];\n })]);\n\n case 1:\n // Delete potential leftover entries that may continue to mark the\n // inactive clients as zombied in LocalStorage.\n // Ideally we'd delete the IndexedDb and LocalStorage zombie entries for\n // the client atomically, but we can't. So we opt to delete the IndexedDb\n // entries first to avoid potentially reviving a zombied client.\n if (n = t.sent(), this.Ga) for (r = 0, i = n; r < i.length; r++) {\n o = i[r], this.Ga.removeItem(this.hc(o.clientId));\n }\n t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * Schedules a recurring timer to update the client metadata and to either\n * extend or acquire the primary lease if the client is eligible.\n */\n e.prototype.Ja = function () {\n var t = this;\n this.qa = this.fn.yn(\"client_metadata_refresh\"\n /* ClientMetadataRefresh */\n , 4e3, function () {\n return t.za().then(function () {\n return t.ac();\n }).then(function () {\n return t.Ja();\n });\n });\n },\n /** Checks whether `client` is the local client. */\n e.prototype.rc = function (t) {\n return !!t && t.ownerId === this.clientId;\n },\n /**\n * Evaluate the state of all active clients and determine whether the local\n * client is or can act as the holder of the primary lease. Returns whether\n * the client is eligible for the lease, but does not actually acquire it.\n * May return 'false' even if there is no active leaseholder and another\n * (foreground) client should become leaseholder instead.\n */\n e.prototype.nc = function (t) {\n var e = this;\n return this.ka ? yr.resolve(!0) : fo(t).get(qi.key).next(function (n) {\n // A client is eligible for the primary lease if:\n // - its network is enabled and the client's tab is in the foreground.\n // - its network is enabled and no other client's tab is in the\n // foreground.\n // - every clients network is disabled and the client's tab is in the\n // foreground.\n // - every clients network is disabled and no other client's tab is in\n // the foreground.\n // - the `forceOwningTab` setting was passed in.\n if (null !== n && e.cc(n.leaseTimestampMs, 5e3) && !e.lc(n.ownerId)) {\n if (e.rc(n) && e.networkEnabled) return !0;\n\n if (!e.rc(n)) {\n if (!n.allowTabSynchronization) // Fail the `canActAsPrimary` check if the current leaseholder has\n // not opted into multi-tab synchronization. If this happens at\n // client startup, we reject the Promise returned by\n // `enablePersistence()` and the user can continue to use Firestore\n // with in-memory persistence.\n // If this fails during a lease refresh, we will instead block the\n // AsyncQueue from executing further operations. Note that this is\n // acceptable since mixing & matching different `synchronizeTabs`\n // settings is not supported.\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can\n // no longer be turned off.\n throw new c(a.FAILED_PRECONDITION, ao);\n return !1;\n }\n }\n\n return !(!e.networkEnabled || !e.inForeground) || lo(t).ts().next(function (t) {\n return void 0 === e.uc(t, 5e3).find(function (t) {\n if (e.clientId !== t.clientId) {\n var n = !e.networkEnabled && t.networkEnabled,\n r = !e.inForeground && t.inForeground,\n i = e.networkEnabled === t.networkEnabled;\n if (n || r && i) return !0;\n }\n\n return !1;\n });\n });\n }).next(function (t) {\n return e.isPrimary !== t && l(\"IndexedDbPersistence\", \"Client \" + (t ? \"is\" : \"is not\") + \" eligible for a primary lease.\"), t;\n });\n }, e.prototype.Di = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n return this.Oa = !1, this._c(), this.qa && (this.qa.cancel(), this.qa = null), this.fc(), this.dc(), [4\n /*yield*/\n , this.ja.runTransaction(\"shutdown\", \"readwrite\", [qi.store, Zi.store], function (t) {\n var n = new co(t, qr.ai);\n return e.sc(n).next(function () {\n return e.oc(n);\n });\n })];\n\n case 1:\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n return t.sent(), this.ja.close(), // Remove the entry marking the client as zombied from LocalStorage since\n // we successfully deleted its metadata from IndexedDb.\n this.wc(), [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * Returns clients that are not zombied and have an updateTime within the\n * provided threshold.\n */\n e.prototype.uc = function (t, e) {\n var n = this;\n return t.filter(function (t) {\n return n.cc(t.updateTimeMs, e) && !n.lc(t.clientId);\n });\n },\n /**\n * Returns the IDs of the clients that are currently active. If multi-tab\n * is not supported, returns an array that only contains the local client's\n * ID.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n e.prototype.pi = function () {\n var t = this;\n return this.runTransaction(\"getActiveClients\", \"readonly\", function (e) {\n return lo(e).ts().next(function (e) {\n return t.uc(e, 18e5).map(function (t) {\n return t.clientId;\n });\n });\n });\n }, Object.defineProperty(e.prototype, \"Ei\", {\n get: function get() {\n return this.Oa;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.mc = function (t) {\n return Ti.xo(t, this.serializer, this.Dr, this.No);\n }, e.prototype.Tc = function () {\n return this.Ka;\n }, e.prototype.Ec = function () {\n return this.vr;\n }, e.prototype.Ic = function () {\n return this.Dr;\n }, e.prototype.runTransaction = function (t, e, n) {\n var r = this;\n l(\"IndexedDbPersistence\", \"Starting transaction:\", t);\n var i,\n o = \"readonly\" === e ? \"readonly\" : \"readwrite\"; // Do all transactions as readwrite against all object stores, since we\n // are the only reader/writer.\n\n return this.ja.runTransaction(t, o, to, function (o) {\n return i = new co(o, r.Ma ? r.Ma.next() : qr.ai), \"readwrite-primary\" === e ? r.ec(i).next(function (t) {\n return !!t || r.nc(i);\n }).next(function (e) {\n if (!e) throw p(\"Failed to obtain primary lease for action '\" + t + \"'.\"), r.isPrimary = !1, r.fn.Cs(function () {\n return r.Qa(!1);\n }), new c(a.FAILED_PRECONDITION, ti);\n return n(i);\n }).next(function (t) {\n return r.ic(i).next(function () {\n return t;\n });\n }) : r.Ac(i).next(function () {\n return n(i);\n });\n }).then(function (t) {\n return i.br(), t;\n });\n },\n /**\n * Verifies that the current tab is the primary leaseholder or alternatively\n * that the leaseholder has opted into multi-tab synchronization.\n */\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can no longer\n // be turned off.\n e.prototype.Ac = function (t) {\n var e = this;\n return fo(t).get(qi.key).next(function (t) {\n if (null !== t && e.cc(t.leaseTimestampMs, 5e3) && !e.lc(t.ownerId) && !e.rc(t) && !(e.ka || e.allowTabSynchronization && t.allowTabSynchronization)) throw new c(a.FAILED_PRECONDITION, ao);\n });\n },\n /**\n * Obtains or extends the new primary lease for the local client. This\n * method does not verify that the client is eligible for this lease.\n */\n e.prototype.ic = function (t) {\n var e = new qi(this.clientId, this.allowTabSynchronization, Date.now());\n return fo(t).put(qi.key, e);\n }, e.Ln = function () {\n return gr.Ln();\n },\n /** Checks the primary lease and removes it if we are the current primary. */\n e.prototype.sc = function (t) {\n var e = this,\n n = fo(t);\n return n.get(qi.key).next(function (t) {\n return e.rc(t) ? (l(\"IndexedDbPersistence\", \"Releasing primary lease.\"), n.delete(qi.key)) : yr.resolve();\n });\n },\n /** Verifies that `updateTimeMs` is within `maxAgeMs`. */\n e.prototype.cc = function (t, e) {\n var n = Date.now();\n return !(t < n - e || t > n && (p(\"Detected an update time that is in the future: \" + t + \" > \" + n), 1));\n }, e.prototype.Ha = function () {\n var t = this;\n null !== this.document && \"function\" == typeof this.document.addEventListener && (this.Ba = function () {\n t.fn.ws(function () {\n return t.inForeground = \"visible\" === t.document.visibilityState, t.za();\n });\n }, this.document.addEventListener(\"visibilitychange\", this.Ba), this.inForeground = \"visible\" === this.document.visibilityState);\n }, e.prototype.fc = function () {\n this.Ba && (this.document.removeEventListener(\"visibilitychange\", this.Ba), this.Ba = null);\n },\n /**\n * Attaches a window.unload handler that will synchronously write our\n * clientId to a \"zombie client id\" location in LocalStorage. This can be used\n * by tabs trying to acquire the primary lease to determine that the lease\n * is no longer valid even if the timestamp is recent. This is particularly\n * important for the refresh case (so the tab correctly re-acquires the\n * primary lease). LocalStorage is used for this rather than IndexedDb because\n * it is a synchronous API and so can be used reliably from an unload\n * handler.\n */\n e.prototype.Ya = function () {\n var t,\n e = this;\n \"function\" == typeof (null === (t = this.window) || void 0 === t ? void 0 : t.addEventListener) && (this.La = function () {\n // Note: In theory, this should be scheduled on the AsyncQueue since it\n // accesses internal state. We execute this code directly during shutdown\n // to make sure it gets a chance to run.\n e._c(), e.fn.ws(function () {\n return e.Di();\n });\n }, this.window.addEventListener(\"unload\", this.La));\n }, e.prototype.dc = function () {\n this.La && (this.window.removeEventListener(\"unload\", this.La), this.La = null);\n },\n /**\n * Returns whether a client is \"zombied\" based on its LocalStorage entry.\n * Clients become zombied when their tab closes without running all of the\n * cleanup logic in `shutdown()`.\n */\n e.prototype.lc = function (t) {\n var e;\n\n try {\n var n = null !== (null === (e = this.Ga) || void 0 === e ? void 0 : e.getItem(this.hc(t)));\n return l(\"IndexedDbPersistence\", \"Client '\" + t + \"' \" + (n ? \"is\" : \"is not\") + \" zombied in LocalStorage\"), n;\n } catch (t) {\n // Gracefully handle if LocalStorage isn't working.\n return p(\"IndexedDbPersistence\", \"Failed to get zombied client id.\", t), !1;\n }\n },\n /**\n * Record client as zombied (a client that had its tab closed). Zombied\n * clients are ignored during primary tab selection.\n */\n e.prototype._c = function () {\n if (this.Ga) try {\n this.Ga.setItem(this.hc(this.clientId), String(Date.now()));\n } catch (t) {\n // Gracefully handle if LocalStorage isn't available / working.\n p(\"Failed to set zombie client id.\", t);\n }\n },\n /** Removes the zombied client entry if it exists. */\n e.prototype.wc = function () {\n if (this.Ga) try {\n this.Ga.removeItem(this.hc(this.clientId));\n } catch (t) {// Ignore\n }\n }, e.prototype.hc = function (t) {\n return \"firestore_zombie_\" + this.persistenceKey + \"_\" + t;\n }, e;\n}();\n/**\n * Oldest acceptable age in milliseconds for client metadata before the client\n * is considered inactive and its associated data is garbage collected.\n */\n\n/**\n * Helper to get a typed SimpleDbStore for the primary client object store.\n */\n\n\nfunction fo(t) {\n return ho.Qn(t, qi.store);\n}\n/**\n * Helper to get a typed SimpleDbStore for the client metadata object store.\n */\n\n\nfunction lo(t) {\n return ho.Qn(t, Zi.store);\n}\n/** Provides LRU functionality for IndexedDB persistence. */\n\n\nvar po =\n/** @class */\nfunction () {\n function t(t, e) {\n this.db = t, this.wo = new ci(this, e);\n }\n\n return t.prototype.Po = function (t) {\n var e = this.Rc(t);\n return this.db.Tc().ba(t).next(function (t) {\n return e.next(function (e) {\n return t + e;\n });\n });\n }, t.prototype.Rc = function (t) {\n var e = 0;\n return this.Vo(t, function (t) {\n e++;\n }).next(function () {\n return e;\n });\n }, t.prototype.Ce = function (t, e) {\n return this.db.Tc().Ce(t, e);\n }, t.prototype.Vo = function (t, e) {\n return this.gc(t, function (t, n) {\n return e(n);\n });\n }, t.prototype.Da = function (t, e, n) {\n return vo(t, n);\n }, t.prototype.Na = function (t, e, n) {\n return vo(t, n);\n }, t.prototype.po = function (t, e, n) {\n return this.db.Tc().po(t, e, n);\n }, t.prototype.Go = function (t, e) {\n return vo(t, e);\n },\n /**\n * Returns true if anything would prevent this document from being garbage\n * collected, given that the document in question is not present in any\n * targets and has a sequence number less than or equal to the upper bound for\n * the collection run.\n */\n t.prototype.Pc = function (t, e) {\n return function (t, e) {\n var n = !1;\n return xi(t).os(function (r) {\n return Ni(t, r, e).next(function (t) {\n return t && (n = !0), yr.resolve(!t);\n });\n }).next(function () {\n return n;\n });\n }(t, e);\n }, t.prototype.bo = function (t, e) {\n var n = this,\n r = this.db.Ec().ra(),\n i = [],\n o = 0;\n return this.gc(t, function (s, u) {\n if (u <= e) {\n var a = n.Pc(t, s).next(function (e) {\n if (!e) // Our size accounting requires us to read all documents before\n // removing them.\n return o++, r.Rr(t, s).next(function () {\n return r.Ar(s), uo(t).delete([0, hi(s.path)]);\n });\n });\n i.push(a);\n }\n }).next(function () {\n return yr.$n(i);\n }).next(function () {\n return r.apply(t);\n }).next(function () {\n return o;\n });\n }, t.prototype.removeTarget = function (t, e) {\n var n = e.st(t.xa);\n return this.db.Tc().ya(t, n);\n }, t.prototype.yc = function (t, e) {\n return vo(t, e);\n },\n /**\n * Call provided function for each document in the cache that is 'orphaned'. Orphaned\n * means not a part of any target, so the only entry in the target-document index for\n * that document will be the sentinel row (targetId 0), which will also have the sequence\n * number for the last time the document was accessed.\n */\n t.prototype.gc = function (t, e) {\n var n,\n r = uo(t),\n i = qr.ai;\n return r.rs({\n index: Yi.documentTargetsIndex\n }, function (t, r) {\n var o = t[0],\n s = (t[1], r.path),\n u = r.sequenceNumber;\n 0 === o ? ( // if nextToReport is valid, report it, this is a new key so the\n // last one must not be a member of any targets.\n i !== qr.ai && e(new A(pi(n)), i), // set nextToReport to be this sequence number. It's the next one we\n // might report, if we don't find any targets for this document.\n // Note that the sequence number must be defined when the targetId\n // is 0.\n i = u, n = s) : // set nextToReport to be invalid, we know we don't need to report\n // this one since we found a target for it.\n i = qr.ai;\n }).next(function () {\n // Since we report sequence numbers after getting to the next key, we\n // need to check if the last key we iterated over was an orphaned\n // document and report it.\n i !== qr.ai && e(new A(pi(n)), i);\n });\n }, t.prototype.So = function (t) {\n return this.db.Ec().aa(t);\n }, t;\n}();\n\nfunction vo(t, e) {\n return uo(t).put(\n /**\n * @return A value suitable for writing a sentinel row in the target-document\n * store.\n */\n function (t, e) {\n return new Yi(0, hi(t.path), e);\n }(e, t.xa));\n}\n/**\n * Generates a string used as a prefix when storing data in IndexedDB and\n * LocalStorage.\n */\n\n\nfunction yo(t, e) {\n // Use two different prefix formats:\n // * firestore / persistenceKey / projectID . databaseID / ...\n // * firestore / persistenceKey / projectID / ...\n // projectIDs are DNS-compatible names and cannot contain dots\n // so there's no danger of collisions.\n var n = t.projectId;\n return t.j || (n += \".\" + t.database), \"firestore/\" + e + \"/\" + n + \"/\"\n /**\n * Implements `LocalStore` interface.\n *\n * Note: some field defined in this class might have public access level, but\n * the class is not exported so they are only accessible from this module.\n * This is useful to implement optional features (like bundles) in free\n * functions, such that they are tree-shakeable.\n */\n ;\n}\n\nvar go =\n/** @class */\nfunction () {\n function t(\n /** Manages our in-memory or durable persistence. */\n t, e, n) {\n this.persistence = t, this.Vc = e,\n /**\n * Maps a targetID to data about its target.\n *\n * PORTING NOTE: We are using an immutable data structure on Web to make re-runs\n * of `applyRemoteEvent()` idempotent.\n */\n this.bc = new bt(H),\n /** Maps a target to its targetID. */\n // TODO(wuandy): Evaluate if TargetId can be part of Target.\n this.vc = new it(function (t) {\n return lt(t);\n }, pt),\n /**\n * The read time of the last entry processed by `getNewDocumentChanges()`.\n *\n * PORTING NOTE: This is only used for multi-tab synchronization.\n */\n this.Sc = st.min(), this.Sr = t.mc(n), this.Dc = t.Ec(), this.Ka = t.Tc(), this.Cc = new ni(this.Dc, this.Sr, this.persistence.Ic()), this.Vc.Nc(this.Cc);\n }\n\n return t.prototype.Io = function (t) {\n var e = this;\n return this.persistence.runTransaction(\"Collect garbage\", \"readwrite-primary\", function (n) {\n return t.vo(n, e.bc);\n });\n }, t;\n}();\n/**\n * Acknowledges the given batch.\n *\n * On the happy path when a batch is acknowledged, the local store will\n *\n * + remove the batch from the mutation queue;\n * + apply the changes to the remote document cache;\n * + recalculate the latency compensated view implied by those changes (there\n * may be mutations in the queue that affect the documents but haven't been\n * acknowledged yet); and\n * + give the changed documents back the sync engine\n *\n * @returns The resulting (modified) documents.\n */\n\n\nfunction mo(t, e) {\n var n = m(t);\n return n.persistence.runTransaction(\"Acknowledge batch\", \"readwrite-primary\", function (t) {\n var r = e.batch.keys(),\n i = n.Dc.ra({\n oa: !0\n });\n return function (t, e, n, r) {\n var i = n.batch,\n o = i.keys(),\n s = yr.resolve();\n return o.forEach(function (t) {\n s = s.next(function () {\n return r.Rr(e, t);\n }).next(function (e) {\n var o = e,\n s = n.dr.get(t);\n g(null !== s), (!o || o.version.L(s) < 0) && (o = i.cr(t, o, n)) && // We use the commitVersion as the readTime rather than the\n // document's updateTime since the updateTime is not advanced\n // for updates that do not modify the underlying document.\n r.Er(o, n._r);\n });\n }), s.next(function () {\n return t.Sr.Wo(e, i);\n });\n }(n, t, e, i).next(function () {\n return i.apply(t);\n }).next(function () {\n return n.Sr.zo(t);\n }).next(function () {\n return n.Cc.kr(t, r);\n });\n });\n}\n/**\n * Removes mutations from the MutationQueue for the specified batch;\n * LocalDocuments will be recalculated.\n *\n * @returns The resulting modified documents.\n */\n\n/**\n * Returns the last consistent snapshot processed (used by the RemoteStore to\n * determine whether to buffer incoming snapshots from the backend).\n */\n\n\nfunction wo(t) {\n var e = m(t);\n return e.persistence.runTransaction(\"Get last remote snapshot version\", \"readonly\", function (t) {\n return e.Ka.Ea(t);\n });\n}\n/**\n * Updates the \"ground-state\" (remote) documents. We assume that the remote\n * event reflects any write batches that have been acknowledged or rejected\n * (i.e. we do not re-apply local mutations to updates from this event).\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */\n\n\nfunction _o(t, e) {\n var n = m(t),\n r = e.nt,\n i = n.bc;\n return n.persistence.runTransaction(\"Apply remote event\", \"readwrite-primary\", function (t) {\n var o = n.Dc.ra({\n oa: !0\n }); // Reset newTargetDataByTargetMap in case this transaction gets re-run.\n\n i = n.bc;\n var s = [];\n e.zt.forEach(function (e, o) {\n var u = i.get(o);\n\n if (u) {\n // Only update the remote keys if the target is still active. This\n // ensures that we can persist the updated target data along with\n // the updated assignment.\n s.push(n.Ka.Ca(t, e.se, o).next(function () {\n return n.Ka.Sa(t, e.ee, o);\n }));\n var a = e.resumeToken; // Update the resume token if the change includes one.\n\n if (a.O() > 0) {\n var c = u.it(a, r).st(t.xa);\n i = i.ot(o, c), // Update the target data if there are target changes (or if\n // sufficient time has passed since the last update).\n\n /**\n * Returns true if the newTargetData should be persisted during an update of\n * an active target. TargetData should always be persisted when a target is\n * being released and should not call this function.\n *\n * While the target is active, TargetData updates can be omitted when nothing\n * about the target has changed except metadata like the resume token or\n * snapshot version. Occasionally it's worth the extra write to prevent these\n * values from getting too stale after a crash, but this doesn't have to be\n * too frequent.\n */\n function (t, e, n) {\n // Always persist target data if we don't already have a resume token.\n return g(e.resumeToken.O() > 0), 0 === t.resumeToken.O() || // Don't allow resume token changes to be buffered indefinitely. This\n // allows us to be reasonably up-to-date after a crash and avoids needing\n // to loop over all active queries on shutdown. Especially in the browser\n // we may not get time to do anything interesting while the current tab is\n // closing.\n e.nt.X() - t.nt.X() >= 3e8 || n.ee.size + n.ne.size + n.se.size > 0;\n }(u, c, e) && s.push(n.Ka.ya(t, c));\n }\n }\n });\n var u = St(),\n a = Ot(); // HACK: The only reason we allow a null snapshot version is so that we\n // can synthesize remote events when we get permission denied errors while\n // trying to resolve the state of a locally cached document that is in\n // limbo.\n\n if (e.Yt.forEach(function (t, e) {\n a = a.add(t);\n }), // Each loop iteration only affects its \"own\" doc, so it's safe to get all the remote\n // documents in advance in a single call.\n s.push(o.getEntries(t, a).next(function (i) {\n e.Yt.forEach(function (a, c) {\n var h = i.get(a); // Note: The order of the steps below is important, since we want\n // to ensure that rejected limbo resolutions (which fabricate\n // NoDocuments with SnapshotVersion.min()) never add documents to\n // cache.\n\n c instanceof Rn && c.version.isEqual(st.min()) ? ( // NoDocuments with SnapshotVersion.min() are used in manufactured\n // events. We remove these documents from cache since we lost\n // access.\n o.Ar(a, r), u = u.ot(a, c)) : null == h || c.version.L(h.version) > 0 || 0 === c.version.L(h.version) && h.hasPendingWrites ? (o.Er(c, r), u = u.ot(a, c)) : l(\"LocalStore\", \"Ignoring outdated watch update for \", a, \". Current version:\", h.version, \" Watch version:\", c.version), e.Jt.has(a) && s.push(n.persistence.No.yc(t, a));\n });\n })), !r.isEqual(st.min())) {\n var c = n.Ka.Ea(t).next(function (e) {\n return n.Ka.Aa(t, t.xa, r);\n });\n s.push(c);\n }\n\n return yr.$n(s).next(function () {\n return o.apply(t);\n }).next(function () {\n return n.Cc.Mr(t, u);\n });\n }).then(function (t) {\n return n.bc = i, t;\n });\n}\n/**\n * Gets the mutation batch after the passed in batchId in the mutation queue\n * or null if empty.\n * @param afterBatchId If provided, the batch to search after.\n * @returns The next mutation or null if there wasn't one.\n */\n\n\nfunction bo(t, e) {\n var n = m(t);\n return n.persistence.runTransaction(\"Get next mutation batch\", \"readonly\", function (t) {\n return void 0 === e && (e = -1), n.Sr.Bo(t, e);\n });\n}\n/**\n * Reads the current value of a Document with a given key or null if not\n * found - used for testing.\n */\n\n/**\n * Assigns the given target an internal ID so that its results can be pinned so\n * they don't get GC'd. A target must be allocated in the local store before\n * the store can be used to manage its view.\n *\n * Allocating an already allocated `Target` will return the existing `TargetData`\n * for that `Target`.\n */\n\n\nfunction Io(t, e) {\n var n = m(t);\n return n.persistence.runTransaction(\"Allocate target\", \"readwrite\", function (t) {\n var r;\n return n.Ka.va(t, e).next(function (i) {\n return i ? ( // This target has been listened to previously, so reuse the\n // previous targetID.\n // TODO(mcg): freshen last accessed date?\n r = i, yr.resolve(r)) : n.Ka.wa(t).next(function (i) {\n return r = new gt(e, i, 0\n /* Listen */\n , t.xa), n.Ka.Ra(t, r).next(function () {\n return r;\n });\n });\n });\n }).then(function (t) {\n // If Multi-Tab is enabled, the existing target data may be newer than\n // the in-memory data\n var r = n.bc.get(t.targetId);\n return (null === r || t.nt.L(r.nt) > 0) && (n.bc = n.bc.ot(t.targetId, t), n.vc.set(e, t.targetId)), t;\n });\n}\n/**\n * Returns the TargetData as seen by the LocalStore, including updates that may\n * have not yet been persisted to the TargetCache.\n */\n// Visible for testing.\n\n/**\n * Unpins all the documents associated with the given target. If\n * `keepPersistedTargetData` is set to false and Eager GC enabled, the method\n * directly removes the associated target data from the target cache.\n *\n * Releasing a non-existing `Target` is a no-op.\n */\n// PORTING NOTE: `keepPersistedTargetData` is multi-tab only.\n\n\nfunction Eo(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n i = m(e), o = i.bc.get(n), s = r ? \"readwrite\" : \"readwrite-primary\", t.label = 1;\n\n case 1:\n return t.trys.push([1, 4,, 5]), r ? [3\n /*break*/\n , 3] : [4\n /*yield*/\n , i.persistence.runTransaction(\"Release target\", s, function (t) {\n return i.persistence.No.removeTarget(t, o);\n })];\n\n case 2:\n t.sent(), t.label = 3;\n\n case 3:\n return [3\n /*break*/\n , 5];\n\n case 4:\n if (!_r(u = t.sent())) throw u; // All `releaseTarget` does is record the final metadata state for the\n // target, but we've been recording this periodically during target\n // activity. If we lose this write this could cause a very slight\n // difference in the order of target deletion during GC, but we\n // don't define exact LRU semantics so this is acceptable.\n\n return l(\"LocalStore\", \"Failed to update sequence numbers for target \" + n + \": \" + u), [3\n /*break*/\n , 5];\n\n case 5:\n return i.bc = i.bc.remove(n), i.vc.delete(o.target), [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Runs the specified query against the local store and returns the results,\n * potentially taking advantage of query data from previous executions (such\n * as the set of remote keys).\n *\n * @param usePreviousResults Whether results from previous executions can\n * be used to optimize this query execution.\n */\n\n\nfunction To(t, e, n) {\n var r = m(t),\n i = st.min(),\n o = Ot();\n return r.persistence.runTransaction(\"Execute query\", \"readonly\", function (t) {\n return function (t, e, n) {\n var r = m(t),\n i = r.vc.get(n);\n return void 0 !== i ? yr.resolve(r.bc.get(i)) : r.Ka.va(e, n);\n }(r, t, zn(e)).next(function (e) {\n if (e) return i = e.lastLimboFreeSnapshotVersion, r.Ka.Fa(t, e.targetId).next(function (t) {\n o = t;\n });\n }).next(function () {\n return r.Vc.Lr(t, e, n ? i : st.min(), n ? o : Ot());\n }).next(function (t) {\n return {\n documents: t,\n Fc: o\n };\n });\n });\n} // PORTING NOTE: Multi-Tab only.\n\n\nfunction No(t, e) {\n var n = m(t),\n r = m(n.Ka),\n i = n.bc.get(e);\n return i ? Promise.resolve(i.target) : n.persistence.runTransaction(\"Get target data\", \"readonly\", function (t) {\n return r.Ue(t, e).next(function (t) {\n return t ? t.target : null;\n });\n });\n}\n/**\n * Returns the set of documents that have been updated since the last call.\n * If this is the first call, returns the set of changes since client\n * initialization. Further invocations will return document that have changed\n * since the prior call.\n */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction Ao(t) {\n var e = m(t);\n return e.persistence.runTransaction(\"Get new document changes\", \"readonly\", function (t) {\n return function (t, e, n) {\n var r = m(t),\n i = St(),\n o = gi(n),\n s = Oi(e),\n u = IDBKeyRange.lowerBound(o, !0);\n return s.rs({\n index: Ki.readTimeIndex,\n range: u\n }, function (t, e) {\n // Unlike `getEntry()` and others, `getNewDocumentChanges()` parses\n // the documents directly since we want to keep sentinel deletes.\n var n = vi(r.serializer, e);\n i = i.ot(n.key, n), o = e.readTime;\n }).next(function () {\n return {\n xc: i,\n readTime: mi(o)\n };\n });\n }(e.Dc, t, e.Sc);\n }).then(function (t) {\n var n = t.xc,\n r = t.readTime;\n return e.Sc = r, n;\n });\n}\n/**\n * Reads the newest document change from persistence and moves the internal\n * synchronization marker forward so that calls to `getNewDocumentChanges()`\n * only return changes that happened after client initialization.\n */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction So(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n return [2\n /*return*/\n , (n = m(e)).persistence.runTransaction(\"Synchronize last document change read time\", \"readonly\", function (t) {\n return function (t) {\n var e = Oi(t),\n n = st.min(); // If there are no existing entries, we return SnapshotVersion.min().\n\n return e.rs({\n index: Ki.readTimeIndex,\n reverse: !0\n }, function (t, e, r) {\n e.readTime && (n = mi(e.readTime)), r.done();\n }).next(function () {\n return n;\n });\n }(t);\n }).then(function (t) {\n n.Sc = t;\n })];\n });\n });\n}\n/**\n * Verifies the error thrown by a LocalStore operation. If a LocalStore\n * operation fails because the primary lease has been taken by another client,\n * we ignore the error (the persistence layer will immediately call\n * `applyPrimaryLease` to propagate the primary state change). All other errors\n * are re-thrown.\n *\n * @param err An error returned by a LocalStore operation.\n * @return A Promise that resolves after we recovered, or the original error.\n */\n\n\nfunction Do(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n if (e.code !== a.FAILED_PRECONDITION || e.message !== ti) throw e;\n return l(\"LocalStore\", \"Unexpectedly lost primary lease\"), [2\n /*return*/\n ];\n });\n });\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A collection of references to a document from some kind of numbered entity\n * (either a target ID or batch ID). As references are added to or removed from\n * the set corresponding events are emitted to a registered garbage collector.\n *\n * Each reference is represented by a DocumentReference object. Each of them\n * contains enough information to uniquely identify the reference. They are all\n * stored primarily in a set sorted by key. A document is considered garbage if\n * there's no references in that set (this can be efficiently checked thanks to\n * sorting by key).\n *\n * ReferenceSet also keeps a secondary set that contains references sorted by\n * IDs. This one is used to efficiently implement removal of all references by\n * some target ID.\n */\n\n\nvar xo =\n/** @class */\nfunction () {\n function t() {\n // A set of outstanding references to a document sorted by key.\n this.$c = new Tt(Lo.kc), // A set of outstanding references to a document sorted by target id.\n this.Mc = new Tt(Lo.Oc)\n /** Returns true if the reference set contains no references. */\n ;\n }\n\n return t.prototype.m = function () {\n return this.$c.m();\n },\n /** Adds a reference to the given document key for the given ID. */\n t.prototype.Da = function (t, e) {\n var n = new Lo(t, e);\n this.$c = this.$c.add(n), this.Mc = this.Mc.add(n);\n },\n /** Add references to the given document keys for the given ID. */\n t.prototype.Lc = function (t, e) {\n var n = this;\n t.forEach(function (t) {\n return n.Da(t, e);\n });\n },\n /**\n * Removes a reference to the given document key for the given\n * ID.\n */\n t.prototype.Na = function (t, e) {\n this.Bc(new Lo(t, e));\n }, t.prototype.qc = function (t, e) {\n var n = this;\n t.forEach(function (t) {\n return n.Na(t, e);\n });\n },\n /**\n * Clears all references with a given ID. Calls removeRef() for each key\n * removed.\n */\n t.prototype.Uc = function (t) {\n var e = this,\n n = new A(new E([])),\n r = new Lo(n, t),\n i = new Lo(n, t + 1),\n o = [];\n return this.Mc.Ft([r, i], function (t) {\n e.Bc(t), o.push(t.key);\n }), o;\n }, t.prototype.Qc = function () {\n var t = this;\n this.$c.forEach(function (e) {\n return t.Bc(e);\n });\n }, t.prototype.Bc = function (t) {\n this.$c = this.$c.delete(t), this.Mc = this.Mc.delete(t);\n }, t.prototype.Wc = function (t) {\n var e = new A(new E([])),\n n = new Lo(e, t),\n r = new Lo(e, t + 1),\n i = Ot();\n return this.Mc.Ft([n, r], function (t) {\n i = i.add(t.key);\n }), i;\n }, t.prototype.Ho = function (t) {\n var e = new Lo(t, 0),\n n = this.$c.$t(e);\n return null !== n && t.isEqual(n.key);\n }, t;\n}(),\n Lo =\n/** @class */\nfunction () {\n function t(t, e) {\n this.key = t, this.jc = e\n /** Compare by key then by ID */\n ;\n }\n\n return t.kc = function (t, e) {\n return A.i(t.key, e.key) || H(t.jc, e.jc);\n },\n /** Compare by ID then by key */\n t.Oc = function (t, e) {\n return H(t.jc, e.jc) || A.i(t.key, e.key);\n }, t;\n}(),\n ko = function ko(t, e) {\n this.user = e, this.type = \"OAuth\", this.Kc = {}, // Set the headers using Object Literal notation to avoid minification\n this.Kc.Authorization = \"Bearer \" + t;\n},\n Ro =\n/** @class */\nfunction () {\n function t() {\n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.Gc = null;\n }\n\n return t.prototype.getToken = function () {\n return Promise.resolve(null);\n }, t.prototype.zc = function () {}, t.prototype.Hc = function (t) {\n this.Gc = t, // Fire with initial user.\n t(Mr.UNAUTHENTICATED);\n }, t.prototype.Yc = function () {\n this.Gc = null;\n }, t;\n}(),\n Oo =\n/** @class */\nfunction () {\n function t(t) {\n var e = this;\n /**\n * The auth token listener registered with FirebaseApp, retained here so we\n * can unregister it.\n */\n\n this.Jc = null,\n /** Tracks the current User. */\n this.currentUser = Mr.UNAUTHENTICATED, this.Xc = !1,\n /**\n * Counter used to detect if the token changed while a getToken request was\n * outstanding.\n */\n this.Zc = 0,\n /** The listener registered with setChangeListener(). */\n this.Gc = null, this.forceRefresh = !1, this.Jc = function () {\n e.Zc++, e.currentUser = e.tu(), e.Xc = !0, e.Gc && e.Gc(e.currentUser);\n }, this.Zc = 0, this.auth = t.getImmediate({\n optional: !0\n }), this.auth ? this.auth.addAuthTokenListener(this.Jc) : ( // if auth is not available, invoke tokenListener once with null token\n this.Jc(null), t.get().then(function (t) {\n e.auth = t, e.Jc && // tokenListener can be removed by removeChangeListener()\n e.auth.addAuthTokenListener(e.Jc);\n }, function () {}));\n }\n\n return t.prototype.getToken = function () {\n var t = this,\n e = this.Zc,\n n = this.forceRefresh; // Take note of the current value of the tokenCounter so that this method\n // can fail (with an ABORTED error) if there is a token change while the\n // request is outstanding.\n\n return this.forceRefresh = !1, this.auth ? this.auth.getToken(n).then(function (n) {\n // Cancel the request since the token changed while the request was\n // outstanding so the response is potentially for a previous user (which\n // user, we can't be sure).\n return t.Zc !== e ? (l(\"FirebaseCredentialsProvider\", \"getToken aborted due to token change.\"), t.getToken()) : n ? (g(\"string\" == typeof n.accessToken), new ko(n.accessToken, t.currentUser)) : null;\n }) : Promise.resolve(null);\n }, t.prototype.zc = function () {\n this.forceRefresh = !0;\n }, t.prototype.Hc = function (t) {\n this.Gc = t, // Fire the initial event\n this.Xc && t(this.currentUser);\n }, t.prototype.Yc = function () {\n this.auth && this.auth.removeAuthTokenListener(this.Jc), this.Jc = null, this.Gc = null;\n }, // Auth.getUid() can return null even with a user logged in. It is because\n // getUid() is synchronous, but the auth code populating Uid is asynchronous.\n // This method should only be called in the AuthTokenListener callback\n // to guarantee to get the actual user.\n t.prototype.tu = function () {\n var t = this.auth && this.auth.getUid();\n return g(null === t || \"string\" == typeof t), new Mr(t);\n }, t;\n}(),\n Po =\n/** @class */\nfunction () {\n function t(t, e) {\n this.eu = t, this.nu = e, this.type = \"FirstParty\", this.user = Mr.ni;\n }\n\n return Object.defineProperty(t.prototype, \"Kc\", {\n get: function get() {\n var t = {\n \"X-Goog-AuthUser\": this.nu\n },\n e = this.eu.auth.getAuthHeaderValueForFirstParty([]); // Use array notation to prevent minification\n\n return e && (t.Authorization = e), t;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(),\n Vo =\n/** @class */\nfunction () {\n function t(t, e) {\n this.eu = t, this.nu = e;\n }\n\n return t.prototype.getToken = function () {\n return Promise.resolve(new Po(this.eu, this.nu));\n }, t.prototype.Hc = function (t) {\n // Fire with initial uid.\n t(Mr.ni);\n }, t.prototype.Yc = function () {}, t.prototype.zc = function () {}, t;\n}(),\n Uo =\n/** @class */\nfunction () {\n function e(t, e, n, r, i, o) {\n this.fn = t, this.su = n, this.iu = r, this.ru = i, this.listener = o, this.state = 0\n /* Initial */\n ,\n /**\n * A close count that's incremented every time the stream is closed; used by\n * getCloseGuardedDispatcher() to invalidate callbacks that happen after\n * close.\n */\n this.ou = 0, this.au = null, this.stream = null, this.ys = new vr(t, e)\n /**\n * Returns true if start() has been called and no error has occurred. True\n * indicates the stream is open or in the process of opening (which\n * encompasses respecting backoff, getting auth tokens, and starting the\n * actual RPC). Use isOpen() to determine if the stream is open and ready for\n * outbound requests.\n */\n ;\n }\n\n return e.prototype.cu = function () {\n return 1\n /* Starting */\n === this.state || 2\n /* Open */\n === this.state || 4\n /* Backoff */\n === this.state;\n },\n /**\n * Returns true if the underlying RPC is open (the onOpen() listener has been\n * called) and the stream is ready for outbound requests.\n */\n e.prototype.uu = function () {\n return 2\n /* Open */\n === this.state;\n },\n /**\n * Starts the RPC. Only allowed if isStarted() returns false. The stream is\n * not immediately ready for use: onOpen() will be invoked when the RPC is\n * ready for outbound requests, at which point isOpen() will return true.\n *\n * When start returns, isStarted() will return true.\n */\n e.prototype.start = function () {\n 3\n /* Error */\n !== this.state ? this.auth() : this.hu();\n },\n /**\n * Stops the RPC. This call is idempotent and allowed regardless of the\n * current isStarted() state.\n *\n * When stop returns, isStarted() and isOpen() will both return false.\n */\n e.prototype.stop = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.cu() ? [4\n /*yield*/\n , this.close(0\n /* Initial */\n )] : [3\n /*break*/\n , 2];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * After an error the stream will usually back off on the next attempt to\n * start it. If the error warrants an immediate restart of the stream, the\n * sender can use this to indicate that the receiver should not back off.\n *\n * Each error will call the onClose() listener. That function can decide to\n * inhibit backoff if required.\n */\n e.prototype.lu = function () {\n this.state = 0\n /* Initial */\n , this.ys.reset();\n },\n /**\n * Marks this stream as idle. If no further actions are performed on the\n * stream for one minute, the stream will automatically close itself and\n * notify the stream's onClose() handler with Status.OK. The stream will then\n * be in a !isStarted() state, requiring the caller to start the stream again\n * before further use.\n *\n * Only streams that are in state 'Open' can be marked idle, as all other\n * states imply pending network operations.\n */\n e.prototype._u = function () {\n var t = this; // Starts the idle time if we are in state 'Open' and are not yet already\n // running a timer (in which case the previous idle timeout still applies).\n\n this.uu() && null === this.au && (this.au = this.fn.yn(this.su, 6e4, function () {\n return t.fu();\n }));\n },\n /** Sends a message to the underlying stream. */\n e.prototype.du = function (t) {\n this.wu(), this.stream.send(t);\n },\n /** Called by the idle timer when the stream should close due to inactivity. */\n e.prototype.fu = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return this.uu() ? [2\n /*return*/\n , this.close(0\n /* Initial */\n )] : [2\n /*return*/\n ];\n });\n });\n },\n /** Marks the stream as active again. */\n e.prototype.wu = function () {\n this.au && (this.au.cancel(), this.au = null);\n },\n /**\n * Closes the stream and cleans up as necessary:\n *\n * * closes the underlying GRPC stream;\n * * calls the onClose handler with the given 'error';\n * * sets internal stream state to 'finalState';\n * * adjusts the backoff timer based on the error\n *\n * A new stream can be opened by calling start().\n *\n * @param finalState the intended state of the stream after closing.\n * @param error the error the connection was closed with.\n */\n e.prototype.close = function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n // Notify the listener that the stream closed.\n // Cancel any outstanding timers (they're guaranteed not to execute).\n return this.wu(), this.ys.cancel(), // Invalidates any stream-related callbacks (e.g. from auth or the\n // underlying stream), guaranteeing they won't execute.\n this.ou++, 3\n /* Error */\n !== e ? // If this is an intentional close ensure we don't delay our next connection attempt.\n this.ys.reset() : n && n.code === a.RESOURCE_EXHAUSTED ? ( // Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)\n p(n.toString()), p(\"Using maximum backoff delay to prevent overloading the backend.\"), this.ys.Rn()) : n && n.code === a.UNAUTHENTICATED && // \"unauthenticated\" error means the token was rejected. Try force refreshing it in case it\n // just expired.\n this.ru.zc(), // Clean up the underlying stream because we are no longer interested in events.\n null !== this.stream && (this.mu(), this.stream.close(), this.stream = null), // This state must be assigned before calling onClose() to allow the callback to\n // inhibit backoff or otherwise manipulate the state in its non-started state.\n this.state = e, [4\n /*yield*/\n , this.listener.Tu(n)];\n\n case 1:\n // Cancel any outstanding timers (they're guaranteed not to execute).\n // Notify the listener that the stream closed.\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * Can be overridden to perform additional cleanup before the stream is closed.\n * Calling super.tearDown() is not required.\n */\n e.prototype.mu = function () {}, e.prototype.auth = function () {\n var t = this;\n this.state = 1\n /* Starting */\n ;\n var e = this.Eu(this.ou),\n n = this.ou; // TODO(mikelehen): Just use dispatchIfNotClosed, but see TODO below.\n\n this.ru.getToken().then(function (e) {\n // Stream can be stopped while waiting for authentication.\n // TODO(mikelehen): We really should just use dispatchIfNotClosed\n // and let this dispatch onto the queue, but that opened a spec test can\n // of worms that I don't want to deal with in this PR.\n t.ou === n && // Normally we'd have to schedule the callback on the AsyncQueue.\n // However, the following calls are safe to be called outside the\n // AsyncQueue since they don't chain asynchronous calls\n t.Iu(e);\n }, function (n) {\n e(function () {\n var e = new c(a.UNKNOWN, \"Fetching auth token failed: \" + n.message);\n return t.Au(e);\n });\n });\n }, e.prototype.Iu = function (t) {\n var e = this,\n n = this.Eu(this.ou);\n this.stream = this.Ru(t), this.stream.gu(function () {\n n(function () {\n return e.state = 2\n /* Open */\n , e.listener.gu();\n });\n }), this.stream.Tu(function (t) {\n n(function () {\n return e.Au(t);\n });\n }), this.stream.onMessage(function (t) {\n n(function () {\n return e.onMessage(t);\n });\n });\n }, e.prototype.hu = function () {\n var e = this;\n this.state = 4\n /* Backoff */\n , this.ys.gn(function () {\n return t.__awaiter(e, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return this.state = 0\n /* Initial */\n , this.start(), [2\n /*return*/\n ];\n });\n });\n });\n }, // Visible for tests\n e.prototype.Au = function (t) {\n // In theory the stream could close cleanly, however, in our current model\n // we never expect this to happen because if we stop a stream ourselves,\n // this callback will never be called. To prevent cases where we retry\n // without a backoff accidentally, we set the stream to error in all cases.\n return l(\"PersistentStream\", \"close with error: \" + t), this.stream = null, this.close(3\n /* Error */\n , t);\n },\n /**\n * Returns a \"dispatcher\" function that dispatches operations onto the\n * AsyncQueue but only runs them if closeCount remains unchanged. This allows\n * us to turn auth / stream callbacks into no-ops if the stream is closed /\n * re-opened, etc.\n */\n e.prototype.Eu = function (t) {\n var e = this;\n return function (n) {\n e.fn.ws(function () {\n return e.ou === t ? n() : (l(\"PersistentStream\", \"stream callback skipped by getCloseGuardedDispatcher.\"), Promise.resolve());\n });\n };\n }, e;\n}(),\n Co =\n/** @class */\nfunction (e) {\n function n(t, n, r, i, o) {\n var s = this;\n return (s = e.call(this, t, \"listen_stream_connection_backoff\"\n /* ListenStreamConnectionBackoff */\n , \"listen_stream_idle\"\n /* ListenStreamIdle */\n , n, r, o) || this).serializer = i, s;\n }\n\n return t.__extends(n, e), n.prototype.Ru = function (t) {\n return this.iu.Pu(\"Listen\", t);\n }, n.prototype.onMessage = function (t) {\n // A successful response means the stream is healthy\n this.ys.reset();\n\n var e = function (t, e) {\n var n;\n\n if (\"targetChange\" in e) {\n e.targetChange; // proto3 default value is unset in JSON (undefined), so use 'NO_CHANGE'\n // if unset\n\n var r = function (t) {\n return \"NO_CHANGE\" === t ? 0\n /* NoChange */\n : \"ADD\" === t ? 1\n /* Added */\n : \"REMOVE\" === t ? 2\n /* Removed */\n : \"CURRENT\" === t ? 3\n /* Current */\n : \"RESET\" === t ? 4\n /* Reset */\n : y();\n }(e.targetChange.targetChangeType || \"NO_CHANGE\"),\n i = e.targetChange.targetIds || [],\n o = function (t, e) {\n return t.Qe ? (g(void 0 === e || \"string\" == typeof e), X.fromBase64String(e || \"\")) : (g(void 0 === e || e instanceof Uint8Array), X.fromUint8Array(e || new Uint8Array()));\n }(t, e.targetChange.resumeToken),\n s = e.targetChange.cause,\n u = s && function (t) {\n var e = void 0 === t.code ? a.UNKNOWN : _t(t.code);\n return new c(e, t.message || \"\");\n }(s);\n\n n = new zt(r, i, o, u || null);\n } else if (\"documentChange\" in e) {\n e.documentChange;\n var h = e.documentChange;\n h.document, h.document.name, h.document.updateTime;\n var f = Se(t, h.document.name),\n l = Ee(h.document.updateTime),\n p = new Sn({\n mapValue: {\n fields: h.document.fields\n }\n }),\n d = new kn(f, l, p, {}),\n v = h.targetIds || [],\n m = h.removedTargetIds || [];\n n = new jt(v, m, d.key, d);\n } else if (\"documentDelete\" in e) {\n e.documentDelete;\n var w = e.documentDelete;\n w.document;\n\n var _ = Se(t, w.document),\n b = w.readTime ? Ee(w.readTime) : st.min(),\n I = new Rn(_, b),\n E = w.removedTargetIds || [];\n\n n = new jt([], E, I.key, I);\n } else if (\"documentRemove\" in e) {\n e.documentRemove;\n var T = e.documentRemove;\n T.document;\n var N = Se(t, T.document),\n A = T.removedTargetIds || [];\n n = new jt([], A, N, null);\n } else {\n if (!(\"filter\" in e)) return y();\n e.filter;\n var S = e.filter;\n S.targetId;\n var D = S.count || 0,\n x = new mt(D),\n L = S.targetId;\n n = new Gt(L, x);\n }\n\n return n;\n }(this.serializer, t),\n n = function (t) {\n // We have only reached a consistent snapshot for the entire stream if there\n // is a read_time set and it applies to all targets (i.e. the list of\n // targets is empty). The backend is guaranteed to send such responses.\n if (!(\"targetChange\" in t)) return st.min();\n var e = t.targetChange;\n return e.targetIds && e.targetIds.length ? st.min() : e.readTime ? Ee(e.readTime) : st.min();\n }(t);\n\n return this.listener.yu(e, n);\n },\n /**\n * Registers interest in the results of the given target. If the target\n * includes a resumeToken it will be included in the request. Results that\n * affect the target will be streamed back as WatchChange messages that\n * reference the targetId.\n */\n n.prototype.Vu = function (t) {\n var e = {};\n e.database = Le(this.serializer), e.addTarget = function (t, e) {\n var n,\n r = e.target;\n return (n = dt(r) ? {\n documents: Ve(t, r)\n } : {\n query: Ue(t, r)\n }).targetId = e.targetId, e.resumeToken.O() > 0 && (n.resumeToken = be(t, e.resumeToken)), n;\n }(this.serializer, t);\n\n var n = function (t, e) {\n var n = function (t, e) {\n switch (e) {\n case 0\n /* Listen */\n :\n return null;\n\n case 1\n /* ExistenceFilterMismatch */\n :\n return \"existence-filter-mismatch\";\n\n case 2\n /* LimboResolution */\n :\n return \"limbo-document\";\n\n default:\n return y();\n }\n }(0, e.et);\n\n return null == n ? null : {\n \"goog-listen-tags\": n\n };\n }(this.serializer, t);\n\n n && (e.labels = n), this.du(e);\n },\n /**\n * Unregisters interest in the results of the target associated with the\n * given targetId.\n */\n n.prototype.pu = function (t) {\n var e = {};\n e.database = Le(this.serializer), e.removeTarget = t, this.du(e);\n }, n;\n}(Uo),\n Fo =\n/** @class */\nfunction (e) {\n function n(t, n, r, i, o) {\n var s = this;\n return (s = e.call(this, t, \"write_stream_connection_backoff\"\n /* WriteStreamConnectionBackoff */\n , \"write_stream_idle\"\n /* WriteStreamIdle */\n , n, r, o) || this).serializer = i, s.bu = !1, s;\n }\n\n return t.__extends(n, e), Object.defineProperty(n.prototype, \"vu\", {\n /**\n * Tracks whether or not a handshake has been successfully exchanged and\n * the stream is ready to accept mutations.\n */\n get: function get() {\n return this.bu;\n },\n enumerable: !1,\n configurable: !0\n }), // Override of PersistentStream.start\n n.prototype.start = function () {\n this.bu = !1, this.lastStreamToken = void 0, e.prototype.start.call(this);\n }, n.prototype.mu = function () {\n this.bu && this.Su([]);\n }, n.prototype.Ru = function (t) {\n return this.iu.Pu(\"Write\", t);\n }, n.prototype.onMessage = function (t) {\n if ( // Always capture the last stream token.\n g(!!t.streamToken), this.lastStreamToken = t.streamToken, this.bu) {\n // A successful first write response means the stream is healthy,\n // Note, that we could consider a successful handshake healthy, however,\n // the write itself might be causing an error we want to back off from.\n this.ys.reset();\n\n var e = function (t, e) {\n return t && t.length > 0 ? (g(void 0 !== e), t.map(function (t) {\n return function (t, e) {\n // NOTE: Deletes don't have an updateTime.\n var n = t.updateTime ? Ee(t.updateTime) : Ee(e);\n n.isEqual(st.min()) && ( // The Firestore Emulator currently returns an update time of 0 for\n // deletes of non-existing documents (rather than null). This breaks the\n // test \"get deleted doc while offline with source=cache\" as NoDocuments\n // with version 0 are filtered by IndexedDb's RemoteDocumentCache.\n // TODO(#2149): Remove this when Emulator is fixed\n n = Ee(e));\n var r = null;\n return t.transformResults && t.transformResults.length > 0 && (r = t.transformResults), new hn(n, r);\n }(t, e);\n })) : [];\n }(t.writeResults, t.commitTime),\n n = Ee(t.commitTime);\n\n return this.listener.Du(n, e);\n } // The first response is always the handshake response\n\n\n return g(!t.writeResults || 0 === t.writeResults.length), this.bu = !0, this.listener.Cu();\n },\n /**\n * Sends an initial streamToken to the server, performing the handshake\n * required to make the StreamingWrite RPC work. Subsequent\n * calls should wait until onHandshakeComplete was called.\n */\n n.prototype.Nu = function () {\n // TODO(dimond): Support stream resumption. We intentionally do not set the\n // stream token on the handshake, ignoring any stream token we might have.\n var t = {};\n t.database = Le(this.serializer), this.du(t);\n },\n /** Sends a group of mutations to the Firestore backend to apply. */\n n.prototype.Su = function (t) {\n var e = this,\n n = {\n streamToken: this.lastStreamToken,\n writes: t.map(function (t) {\n return Oe(e.serializer, t);\n })\n };\n this.du(n);\n }, n;\n}(Uo),\n Mo =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).credentials = t, i.iu = n, i.serializer = r, i.Fu = !1, i;\n }\n\n return t.__extends(n, e), n.prototype.xu = function () {\n if (this.Fu) throw new c(a.FAILED_PRECONDITION, \"The client has already been terminated.\");\n },\n /** Gets an auth token and invokes the provided RPC. */\n n.prototype.$u = function (t, e, n) {\n var r = this;\n return this.xu(), this.credentials.getToken().then(function (i) {\n return r.iu.$u(t, e, n, i);\n }).catch(function (t) {\n throw t.code === a.UNAUTHENTICATED && r.credentials.zc(), t;\n });\n },\n /** Gets an auth token and invokes the provided RPC with streamed results. */\n n.prototype.ku = function (t, e, n) {\n var r = this;\n return this.xu(), this.credentials.getToken().then(function (i) {\n return r.iu.ku(t, e, n, i);\n }).catch(function (t) {\n throw t.code === a.UNAUTHENTICATED && r.credentials.zc(), t;\n });\n }, n.prototype.terminate = function () {\n this.Fu = !1;\n }, n;\n}(function () {}),\n qo =\n/** @class */\nfunction () {\n function t(t, e) {\n this.cs = t, this.di = e,\n /** The current OnlineState. */\n this.state = \"Unknown\"\n /* Unknown */\n ,\n /**\n * A count of consecutive failures to open the stream. If it reaches the\n * maximum defined by MAX_WATCH_STREAM_FAILURES, we'll set the OnlineState to\n * Offline.\n */\n this.Mu = 0,\n /**\n * A timer that elapses after ONLINE_STATE_TIMEOUT_MS, at which point we\n * transition from OnlineState.Unknown to OnlineState.Offline without waiting\n * for the stream to actually fail (MAX_WATCH_STREAM_FAILURES times).\n */\n this.Ou = null,\n /**\n * Whether the client should log a warning message if it fails to connect to\n * the backend (initially true, cleared after a successful stream, or if we've\n * logged the message already).\n */\n this.Lu = !0\n /**\n * Called by RemoteStore when a watch stream is started (including on each\n * backoff attempt).\n *\n * If this is the first attempt, it sets the OnlineState to Unknown and starts\n * the onlineStateTimer.\n */\n ;\n }\n\n return t.prototype.Bu = function () {\n var t = this;\n 0 === this.Mu && (this.qu(\"Unknown\"\n /* Unknown */\n ), this.Ou = this.cs.yn(\"online_state_timeout\"\n /* OnlineStateTimeout */\n , 1e4, function () {\n return t.Ou = null, t.Uu(\"Backend didn't respond within 10 seconds.\"), t.qu(\"Offline\"\n /* Offline */\n ), Promise.resolve();\n }));\n },\n /**\n * Updates our OnlineState as appropriate after the watch stream reports a\n * failure. The first failure moves us to the 'Unknown' state. We then may\n * allow multiple failures (based on MAX_WATCH_STREAM_FAILURES) before we\n * actually transition to the 'Offline' state.\n */\n t.prototype.Qu = function (t) {\n \"Online\"\n /* Online */\n === this.state ? this.qu(\"Unknown\"\n /* Unknown */\n ) : (this.Mu++, this.Mu >= 1 && (this.Wu(), this.Uu(\"Connection failed 1 times. Most recent error: \" + t.toString()), this.qu(\"Offline\"\n /* Offline */\n )));\n },\n /**\n * Explicitly sets the OnlineState to the specified state.\n *\n * Note that this resets our timers / failure counters, etc. used by our\n * Offline heuristics, so must not be used in place of\n * handleWatchStreamStart() and handleWatchStreamFailure().\n */\n t.prototype.set = function (t) {\n this.Wu(), this.Mu = 0, \"Online\"\n /* Online */\n === t && ( // We've connected to watch at least once. Don't warn the developer\n // about being offline going forward.\n this.Lu = !1), this.qu(t);\n }, t.prototype.qu = function (t) {\n t !== this.state && (this.state = t, this.di(t));\n }, t.prototype.Uu = function (t) {\n var e = \"Could not reach Cloud Firestore backend. \" + t + \"\\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.\";\n this.Lu ? (p(e), this.Lu = !1) : l(\"OnlineStateTracker\", e);\n }, t.prototype.Wu = function () {\n null !== this.Ou && (this.Ou.cancel(), this.Ou = null);\n }, t;\n}(),\n jo = function jo(\n/**\n * The local store, used to fill the write pipeline with outbound mutations.\n */\ne,\n/** The client-side proxy for interacting with the backend. */\nn, r, i, o) {\n var s = this;\n this.ju = e, this.Ku = n, this.cs = r, this.Gu = {},\n /**\n * A list of up to MAX_PENDING_WRITES writes that we have fetched from the\n * LocalStore via fillWritePipeline() and have or will send to the write\n * stream.\n *\n * Whenever writePipeline.length > 0 the RemoteStore will attempt to start or\n * restart the write stream. When the stream is established the writes in the\n * pipeline will be sent in order.\n *\n * Writes remain in writePipeline until they are acknowledged by the backend\n * and thus will automatically be re-sent if the stream is interrupted /\n * restarted before they're acknowledged.\n *\n * Write responses from the backend are linked to their originating request\n * purely based on order, and so we can just shift() writes from the front of\n * the writePipeline as we receive responses.\n */\n this.zu = [],\n /**\n * A mapping of watched targets that the client cares about tracking and the\n * user has explicitly called a 'listen' for this target.\n *\n * These targets may or may not have been sent to or acknowledged by the\n * server. On re-establishing the listen stream, these targets should be sent\n * to the server. The targets removed with unlistens are removed eagerly\n * without waiting for confirmation from the listen stream.\n */\n this.Hu = new Map(),\n /**\n * A set of reasons for why the RemoteStore may be offline. If empty, the\n * RemoteStore may start its network connections.\n */\n this.Yu = new Set(),\n /**\n * Event handlers that get called when the network is disabled or enabled.\n *\n * PORTING NOTE: These functions are used on the Web client to create the\n * underlying streams (to support tree-shakeable streams). On Android and iOS,\n * the streams are created during construction of RemoteStore.\n */\n this.Ju = [], this.Xu = o, this.Xu.Zu(function (e) {\n r.ws(function () {\n return t.__awaiter(s, void 0, void 0, function () {\n return t.__generator(this, function (e) {\n switch (e.label) {\n case 0:\n return Xo(this) ? (l(\"RemoteStore\", \"Restarting streams for network reachability change.\"), [4\n /*yield*/\n , function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return (n = m(e)).Yu.add(4\n /* ConnectivityChange */\n ), [4\n /*yield*/\n , zo(n)];\n\n case 1:\n return t.sent(), n.th.set(\"Unknown\"\n /* Unknown */\n ), n.Yu.delete(4\n /* ConnectivityChange */\n ), [4\n /*yield*/\n , Go(n)];\n\n case 2:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }(this)]) : [3\n /*break*/\n , 2];\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n });\n }), this.th = new qo(r, i);\n};\n\nfunction Go(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n, r;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n if (!Xo(e)) return [3\n /*break*/\n , 4];\n n = 0, r = e.Ju, t.label = 1;\n\n case 1:\n return n < r.length ? [4\n /*yield*/\n , (0, r[n])(\n /* enabled= */\n !0)] : [3\n /*break*/\n , 4];\n\n case 2:\n t.sent(), t.label = 3;\n\n case 3:\n return n++, [3\n /*break*/\n , 1];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Temporarily disables the network. The network can be re-enabled using\n * enableNetwork().\n */\n\n\nfunction zo(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n, r;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n n = 0, r = e.Ju, t.label = 1;\n\n case 1:\n return n < r.length ? [4\n /*yield*/\n , (0, r[n])(\n /* enabled= */\n !1)] : [3\n /*break*/\n , 4];\n\n case 2:\n t.sent(), t.label = 3;\n\n case 3:\n return n++, [3\n /*break*/\n , 1];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Bo(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return n = m(e), l(\"RemoteStore\", \"RemoteStore shutting down.\"), n.Yu.add(5\n /* Shutdown */\n ), [4\n /*yield*/\n , zo(n)];\n\n case 1:\n return t.sent(), n.Xu.Di(), // Set the OnlineState to Unknown (rather than Offline) to avoid potentially\n // triggering spurious listener events with cached data, etc.\n n.th.set(\"Unknown\"\n /* Unknown */\n ), [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Starts new listen for the given target. Uses resume token if provided. It\n * is a no-op if the target of given `TargetData` is already being listened to.\n */\n\n\nfunction Wo(t, e) {\n var n = m(t);\n n.Hu.has(e.targetId) || ( // Mark this as something the client is currently listening for.\n n.Hu.set(e.targetId, e), $o(n) ? // The listen will be sent in onWatchStreamOpen\n Yo(n) : ls(n).uu() && Qo(n, e));\n}\n/**\n * Removes the listen from server. It is a no-op if the given target id is\n * not being listened to.\n */\n\n\nfunction Ko(t, e) {\n var n = m(t),\n r = ls(n);\n n.Hu.delete(e), r.uu() && Ho(n, e), 0 === n.Hu.size && (r.uu() ? r._u() : Xo(n) && // Revert to OnlineState.Unknown if the watch stream is not open and we\n // have no listeners, since without any listens to send we cannot\n // confirm if the stream is healthy and upgrade to OnlineState.Online.\n n.th.set(\"Unknown\"\n /* Unknown */\n ));\n}\n/**\n * We need to increment the the expected number of pending responses we're due\n * from watch so we wait for the ack to process any messages from this target.\n */\n\n\nfunction Qo(t, e) {\n t.eh.Ie(e.targetId), ls(t).Vu(e)\n /**\n * We need to increment the expected number of pending responses we're due\n * from watch so we wait for the removal on the server before we process any\n * messages from this target.\n */\n ;\n}\n\nfunction Ho(t, e) {\n t.eh.Ie(e), ls(t).pu(e);\n}\n\nfunction Yo(t) {\n t.eh = new Wt({\n qe: function qe(e) {\n return t.Gu.qe(e);\n },\n Ue: function Ue(e) {\n return t.Hu.get(e) || null;\n }\n }), ls(t).start(), t.th.Bu()\n /**\n * Returns whether the watch stream should be started because it's necessary\n * and has not yet been started.\n */\n ;\n}\n\nfunction $o(t) {\n return Xo(t) && !ls(t).cu() && t.Hu.size > 0;\n}\n\nfunction Xo(t) {\n return 0 === m(t).Yu.size;\n}\n\nfunction Jo(t) {\n t.eh = void 0;\n}\n\nfunction Zo(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return e.Hu.forEach(function (t, n) {\n Qo(e, t);\n }), [2\n /*return*/\n ];\n });\n });\n}\n\nfunction ts(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return Jo(e), // If we still need the watch stream, retry the connection.\n $o(e) ? (e.th.Qu(n), Yo(e)) : // No need to restart watch stream because there are no active targets.\n // The online state is set to unknown because there is no active attempt\n // at establishing a connection\n e.th.set(\"Unknown\"\n /* Unknown */\n ), [2\n /*return*/\n ];\n });\n });\n}\n\nfunction es(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s;\n return t.__generator(this, function (u) {\n switch (u.label) {\n case 0:\n if (e.th.set(\"Online\"\n /* Online */\n ), !(n instanceof zt && 2\n /* Removed */\n === n.state && n.cause)) // Mark the client as online since we got a message from the server\n return [3\n /*break*/\n , 6];\n u.label = 1;\n\n case 1:\n return u.trys.push([1, 3,, 5]), [4\n /*yield*/\n ,\n /** Handles an error on a target */\n function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n r = n.cause, i = 0, o = n.targetIds, t.label = 1;\n\n case 1:\n return i < o.length ? (s = o[i], e.Hu.has(s) ? [4\n /*yield*/\n , e.Gu.nh(s, r)] : [3\n /*break*/\n , 3]) : [3\n /*break*/\n , 5];\n\n case 2:\n t.sent(), e.Hu.delete(s), e.eh.removeTarget(s), t.label = 3;\n\n case 3:\n t.label = 4;\n\n case 4:\n return i++, [3\n /*break*/\n , 1];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(e, n)];\n\n case 2:\n return u.sent(), [3\n /*break*/\n , 5];\n\n case 3:\n return i = u.sent(), l(\"RemoteStore\", \"Failed to remove targets %s: %s \", n.targetIds.join(\",\"), i), [4\n /*yield*/\n , ns(e, i)];\n\n case 4:\n return u.sent(), [3\n /*break*/\n , 5];\n\n case 5:\n return [3\n /*break*/\n , 13];\n\n case 6:\n if (n instanceof jt ? e.eh.be(n) : n instanceof Gt ? e.eh.$e(n) : e.eh.De(n), r.isEqual(st.min())) return [3\n /*break*/\n , 13];\n u.label = 7;\n\n case 7:\n return u.trys.push([7, 11,, 13]), [4\n /*yield*/\n , wo(e.ju)];\n\n case 8:\n return o = u.sent(), r.L(o) >= 0 ? [4\n /*yield*/\n ,\n /**\n * Takes a batch of changes from the Datastore, repackages them as a\n * RemoteEvent, and passes that on to the listener, which is typically the\n * SyncEngine.\n */\n function (t, e) {\n var n = t.eh.Oe(e); // Update in-memory resume tokens. LocalStore will update the\n // persistent view of these when applying the completed RemoteEvent.\n\n return n.zt.forEach(function (n, r) {\n if (n.resumeToken.O() > 0) {\n var i = t.Hu.get(r); // A watched target might have been removed already.\n\n i && t.Hu.set(r, i.it(n.resumeToken, e));\n }\n }), // Re-establish listens for the targets that have been invalidated by\n // existence filter mismatches.\n n.Ht.forEach(function (e) {\n var n = t.Hu.get(e);\n\n if (n) {\n // Clear the resume token for the target, since we're in a known mismatch\n // state.\n t.Hu.set(e, n.it(X.B, n.nt)), // Cause a hard reset by unwatching and rewatching immediately, but\n // deliberately don't send a resume token so that we get a full update.\n Ho(t, e); // Mark the target we send as being on behalf of an existence filter\n // mismatch, but don't actually retain that in listenTargets. This ensures\n // that we flag the first re-listen this way without impacting future\n // listens of this target (that might happen e.g. on reconnect).\n\n var r = new gt(n.target, e, 1\n /* ExistenceFilterMismatch */\n , n.sequenceNumber);\n Qo(t, r);\n }\n }), t.Gu.sh(n);\n }(e, r)] : [3\n /*break*/\n , 10];\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n\n case 9:\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n u.sent(), u.label = 10;\n\n case 10:\n return [3\n /*break*/\n , 13];\n\n case 11:\n return l(\"RemoteStore\", \"Failed to raise snapshot:\", s = u.sent()), [4\n /*yield*/\n , ns(e, s)];\n\n case 12:\n return u.sent(), [3\n /*break*/\n , 13];\n\n case 13:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Recovery logic for IndexedDB errors that takes the network offline until\n * `op` succeeds. Retries are scheduled with backoff using\n * `enqueueRetryable()`. If `op()` is not provided, IndexedDB access is\n * validated via a generic operation.\n *\n * The returned Promise is resolved once the network is disabled and before\n * any retry attempt.\n */\n\n\nfunction ns(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i = this;\n return t.__generator(this, function (o) {\n switch (o.label) {\n case 0:\n if (!_r(n)) throw n; // Disable network and raise offline snapshots\n\n return e.Yu.add(1\n /* IndexedDbFailed */\n ), [4\n /*yield*/\n , zo(e)];\n\n case 1:\n // Disable network and raise offline snapshots\n return o.sent(), e.th.set(\"Offline\"\n /* Offline */\n ), r || ( // Use a simple read operation to determine if IndexedDB recovered.\n // Ideally, we would expose a health check directly on SimpleDb, but\n // RemoteStore only has access to persistence through LocalStore.\n r = function r() {\n return wo(e.ju);\n }), // Probe IndexedDB periodically and re-enable network\n e.cs.Cs(function () {\n return t.__awaiter(i, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return l(\"RemoteStore\", \"Retrying IndexedDB access\"), [4\n /*yield*/\n , r()];\n\n case 1:\n return t.sent(), e.Yu.delete(1\n /* IndexedDbFailed */\n ), [4\n /*yield*/\n , Go(e)];\n\n case 2:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }), [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Executes `op`. If `op` fails, takes the network offline until `op`\n * succeeds. Returns after the first attempt.\n */\n\n\nfunction rs(t, e) {\n return e().catch(function (n) {\n return ns(t, n, e);\n });\n}\n\nfunction is(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n, r, i, o, s;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n n = m(e), r = ps(n), i = n.zu.length > 0 ? n.zu[n.zu.length - 1].batchId : -1, t.label = 1;\n\n case 1:\n if (!\n /**\n * Returns true if we can add to the write pipeline (i.e. the network is\n * enabled and the write pipeline is not full).\n */\n function (t) {\n return Xo(t) && t.zu.length < 10;\n }\n /**\n * Queues additional writes to be sent to the write stream, sending them\n * immediately if the write stream is established.\n */\n (n)) return [3\n /*break*/\n , 7];\n t.label = 2;\n\n case 2:\n return t.trys.push([2, 4,, 6]), [4\n /*yield*/\n , bo(n.ju, i)];\n\n case 3:\n return null === (o = t.sent()) ? (0 === n.zu.length && r._u(), [3\n /*break*/\n , 7]) : (i = o.batchId, function (t, e) {\n t.zu.push(e);\n var n = ps(t);\n n.uu() && n.vu && n.Su(e.mutations);\n }(n, o), [3\n /*break*/\n , 6]);\n\n case 4:\n return s = t.sent(), [4\n /*yield*/\n , ns(n, s)];\n\n case 5:\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 6:\n return [3\n /*break*/\n , 1];\n\n case 7:\n return os(n) && ss(n), [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction os(t) {\n return Xo(t) && !ps(t).cu() && t.zu.length > 0;\n}\n\nfunction ss(t) {\n ps(t).start();\n}\n\nfunction us(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return ps(e).Nu(), [2\n /*return*/\n ];\n });\n });\n}\n\nfunction as(e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n, r, i, o;\n return t.__generator(this, function (t) {\n // Send the write pipeline now that the stream is established.\n for (n = ps(e), r = 0, i = e.zu; r < i.length; r++) {\n o = i[r], n.Su(o.mutations);\n }\n\n return [2\n /*return*/\n ];\n });\n });\n}\n\nfunction cs(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return i = e.zu.shift(), o = Jr.from(i, n, r), [4\n /*yield*/\n , rs(e, function () {\n return e.Gu.ih(o);\n })];\n\n case 1:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return t.sent(), [4\n /*yield*/\n , is(e)];\n\n case 2:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction hs(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (r) {\n switch (r.label) {\n case 0:\n return n && ps(e).vu ? [4\n /*yield*/\n , function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return wt(i = n.code) && i !== a.ABORTED ? (r = e.zu.shift(), // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n ps(e).lu(), [4\n /*yield*/\n , rs(e, function () {\n return e.Gu.rh(r.batchId, n);\n })]) : [3\n /*break*/\n , 3];\n\n case 1:\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n return t.sent(), [4\n /*yield*/\n , is(e)];\n\n case 2:\n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n t.sent(), t.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(e, n)] : [3\n /*break*/\n , 2];\n // This error affects the actual write.\n\n case 1:\n // This error affects the actual write.\n r.sent(), r.label = 2;\n\n case 2:\n // If the write stream closed after the write handshake completes, a write\n // operation failed and we fail the pending operation.\n // The write stream might have been started by refilling the write\n // pipeline for failed writes\n return os(e) && ss(e), [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Toggles the network state when the client gains or loses its primary lease.\n */\n\n\nfunction fs(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = m(e), n ? (r.Yu.delete(2\n /* IsSecondary */\n ), [4\n /*yield*/\n , Go(r)]) : [3\n /*break*/\n , 2];\n\n case 1:\n return t.sent(), [3\n /*break*/\n , 5];\n\n case 2:\n return (i = n) ? [3\n /*break*/\n , 4] : (r.Yu.add(2\n /* IsSecondary */\n ), [4\n /*yield*/\n , zo(r)]);\n\n case 3:\n t.sent(), i = r.th.set(\"Unknown\"\n /* Unknown */\n ), t.label = 4;\n\n case 4:\n i, t.label = 5;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * If not yet initialized, registers the WatchStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WatchStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */\n\n\nfunction ls(e) {\n var n = this;\n return e.oh || ( // Create stream (but note that it is not started yet).\n e.oh = function (t, e, n) {\n var r = m(t);\n return r.xu(), new Co(e, r.iu, r.credentials, r.serializer, n);\n }(e.Ku, e.cs, {\n gu: Zo.bind(null, e),\n Tu: ts.bind(null, e),\n yu: es.bind(null, e)\n }), e.Ju.push(function (r) {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r ? (e.oh.lu(), $o(e) ? Yo(e) : e.th.set(\"Unknown\"\n /* Unknown */\n ), [3\n /*break*/\n , 3]) : [3\n /*break*/\n , 1];\n\n case 1:\n return [4\n /*yield*/\n , e.oh.stop()];\n\n case 2:\n t.sent(), Jo(e), t.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n })), e.oh\n /**\n * If not yet initialized, registers the WriteStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WriteStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */\n ;\n}\n\nfunction ps(e) {\n var n = this;\n return e.ah || ( // Create stream (but note that it is not started yet).\n e.ah = function (t, e, n) {\n var r = m(t);\n return r.xu(), new Fo(e, r.iu, r.credentials, r.serializer, n);\n }(e.Ku, e.cs, {\n gu: us.bind(null, e),\n Tu: hs.bind(null, e),\n Cu: as.bind(null, e),\n Du: cs.bind(null, e)\n }), e.Ju.push(function (r) {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r ? (e.ah.lu(), [4\n /*yield*/\n , is(e)]) : [3\n /*break*/\n , 2];\n\n case 1:\n // This will start the write stream if necessary.\n return t.sent(), [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , e.ah.stop()];\n\n case 3:\n t.sent(), e.zu.length > 0 && (l(\"RemoteStore\", \"Stopping write stream with \" + e.zu.length + \" pending writes\"), e.zu = []), t.label = 4;\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n })), e.ah\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n ;\n}\n\nvar ds = function ds(t) {\n this.key = t;\n},\n vs = function vs(t) {\n this.key = t;\n},\n ys =\n/** @class */\nfunction () {\n function t(t,\n /** Documents included in the remote target */\n e) {\n this.query = t, this.uh = e, this.hh = null,\n /**\n * A flag whether the view is current with the backend. A view is considered\n * current after it has seen the current flag from the backend and did not\n * lose consistency within the watch stream (e.g. because of an existence\n * filter mismatch).\n */\n this.te = !1,\n /** Documents in the view but not in the remote target */\n this.lh = Ot(),\n /** Document Keys that have local changes */\n this.Wt = Ot(), this._h = Xn(t), this.fh = new Ut(this._h);\n }\n\n return Object.defineProperty(t.prototype, \"dh\", {\n /**\n * The set of remote documents that the server has told us belongs to the target associated with\n * this view.\n */\n get: function get() {\n return this.uh;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Iterates over a set of doc changes, applies the query limit, and computes\n * what the new results should be, what the changes were, and whether we may\n * need to go back to the local cache for more results. Does not make any\n * changes to the view.\n * @param docChanges The doc changes to apply to this view.\n * @param previousChanges If this is being called with a refill, then start\n * with this set of docs and changes instead of the current view.\n * @return a new set of docs, changes, and refill flag.\n */\n t.prototype.wh = function (t, e) {\n var n = this,\n r = e ? e.mh : new Ct(),\n i = e ? e.fh : this.fh,\n o = e ? e.Wt : this.Wt,\n s = i,\n u = !1,\n a = Cn(this.query) && i.size === this.query.limit ? i.last() : null,\n c = Fn(this.query) && i.size === this.query.limit ? i.first() : null; // Drop documents out to meet limit/limitToLast requirement.\n\n if (t.ht(function (t, e) {\n var h = i.get(t),\n f = e instanceof kn ? e : null;\n f && (f = $n(n.query, f) ? f : null);\n var l = !!h && n.Wt.has(h.key),\n p = !!f && (f.Je || // We only consider committed mutations for documents that were\n // mutated during the lifetime of the view.\n n.Wt.has(f.key) && f.hasCommittedMutations),\n d = !1; // Calculate change\n\n h && f ? h.data().isEqual(f.data()) ? l !== p && (r.track({\n type: 3\n /* Metadata */\n ,\n doc: f\n }), d = !0) : n.Th(h, f) || (r.track({\n type: 2\n /* Modified */\n ,\n doc: f\n }), d = !0, (a && n._h(f, a) > 0 || c && n._h(f, c) < 0) && ( // This doc moved from inside the limit to outside the limit.\n // That means there may be some other doc in the local cache\n // that should be included instead.\n u = !0)) : !h && f ? (r.track({\n type: 0\n /* Added */\n ,\n doc: f\n }), d = !0) : h && !f && (r.track({\n type: 1\n /* Removed */\n ,\n doc: h\n }), d = !0, (a || c) && ( // A doc was removed from a full limit query. We'll need to\n // requery from the local cache to see if we know about some other\n // doc that should be in the results.\n u = !0)), d && (f ? (s = s.add(f), o = p ? o.add(t) : o.delete(t)) : (s = s.delete(t), o = o.delete(t)));\n }), Cn(this.query) || Fn(this.query)) for (; s.size > this.query.limit;) {\n var h = Cn(this.query) ? s.last() : s.first();\n s = s.delete(h.key), o = o.delete(h.key), r.track({\n type: 1\n /* Removed */\n ,\n doc: h\n });\n }\n return {\n fh: s,\n mh: r,\n Eh: u,\n Wt: o\n };\n }, t.prototype.Th = function (t, e) {\n // We suppress the initial change event for documents that were modified as\n // part of a write acknowledgment (e.g. when the value of a server transform\n // is applied) as Watch will send us the same document again.\n // By suppressing the event, we only raise two user visible events (one with\n // `hasPendingWrites` and the final state of the document) instead of three\n // (one with `hasPendingWrites`, the modified document with\n // `hasPendingWrites` and the final state of the document).\n return t.Je && e.hasCommittedMutations && !e.Je;\n },\n /**\n * Updates the view with the given ViewDocumentChanges and optionally updates\n * limbo docs and sync state from the provided target change.\n * @param docChanges The set of changes to make to the view's docs.\n * @param updateLimboDocuments Whether to update limbo documents based on this\n * change.\n * @param targetChange A target change to apply for computing limbo docs and\n * sync state.\n * @return A new ViewChange with the given docs, changes, and sync state.\n */\n // PORTING NOTE: The iOS/Android clients always compute limbo document changes.\n t.prototype.yr = function (t, e, n) {\n var r = this,\n i = this.fh;\n this.fh = t.fh, this.Wt = t.Wt; // Sort changes based on type and query comparator\n\n var o = t.mh.Ut();\n o.sort(function (t, e) {\n return function (t, e) {\n var n = function n(t) {\n switch (t) {\n case 0\n /* Added */\n :\n return 1;\n\n case 2\n /* Modified */\n :\n case 3\n /* Metadata */\n :\n // A metadata change is converted to a modified change at the public\n // api layer. Since we sort by document key and then change type,\n // metadata and modified changes must be sorted equivalently.\n return 2;\n\n case 1\n /* Removed */\n :\n return 0;\n\n default:\n return y();\n }\n };\n\n return n(t) - n(e);\n }(t.type, e.type) || r._h(t.doc, e.doc);\n }), this.Ih(n);\n var s = e ? this.Ah() : [],\n u = 0 === this.lh.size && this.te ? 1\n /* Synced */\n : 0\n /* Local */\n ,\n a = u !== this.hh;\n return this.hh = u, 0 !== o.length || a ? {\n snapshot: new Ft(this.query, t.fh, i, o, t.Wt, 0\n /* Local */\n === u, a,\n /* excludesMetadataChanges= */\n !1),\n Rh: s\n } : {\n Rh: s\n }; // no changes\n },\n /**\n * Applies an OnlineState change to the view, potentially generating a\n * ViewChange if the view's syncState changes as a result.\n */\n t.prototype.Qs = function (t) {\n return this.te && \"Offline\"\n /* Offline */\n === t ? ( // If we're offline, set `current` to false and then call applyChanges()\n // to refresh our syncState and generate a ViewChange as appropriate. We\n // are guaranteed to get a new TargetChange that sets `current` back to\n // true once the client is back online.\n this.te = !1, this.yr({\n fh: this.fh,\n mh: new Ct(),\n Wt: this.Wt,\n Eh: !1\n },\n /* updateLimboDocuments= */\n !1)) : {\n Rh: []\n };\n },\n /**\n * Returns whether the doc for the given key should be in limbo.\n */\n t.prototype.gh = function (t) {\n // If the remote end says it's part of this query, it's not in limbo.\n return !this.uh.has(t) && // The local store doesn't think it's a result, so it shouldn't be in limbo.\n !!this.fh.has(t) && !this.fh.get(t).Je;\n },\n /**\n * Updates syncedDocuments, current, and limbo docs based on the given change.\n * Returns the list of changes to which docs are in limbo.\n */\n t.prototype.Ih = function (t) {\n var e = this;\n t && (t.ee.forEach(function (t) {\n return e.uh = e.uh.add(t);\n }), t.ne.forEach(function (t) {}), t.se.forEach(function (t) {\n return e.uh = e.uh.delete(t);\n }), this.te = t.te);\n }, t.prototype.Ah = function () {\n var t = this; // We can only determine limbo documents when we're in-sync with the server.\n\n if (!this.te) return []; // TODO(klimt): Do this incrementally so that it's not quadratic when\n // updating many documents.\n\n var e = this.lh;\n this.lh = Ot(), this.fh.forEach(function (e) {\n t.gh(e.key) && (t.lh = t.lh.add(e.key));\n }); // Diff the new limbo docs with the old limbo docs.\n\n var n = [];\n return e.forEach(function (e) {\n t.lh.has(e) || n.push(new vs(e));\n }), this.lh.forEach(function (t) {\n e.has(t) || n.push(new ds(t));\n }), n;\n },\n /**\n * Update the in-memory state of the current view with the state read from\n * persistence.\n *\n * We update the query view whenever a client's primary status changes:\n * - When a client transitions from primary to secondary, it can miss\n * LocalStorage updates and its query views may temporarily not be\n * synchronized with the state on disk.\n * - For secondary to primary transitions, the client needs to update the list\n * of `syncedDocuments` since secondary clients update their query views\n * based purely on synthesized RemoteEvents.\n *\n * @param queryResult.documents - The documents that match the query according\n * to the LocalStore.\n * @param queryResult.remoteKeys - The keys of the documents that match the\n * query according to the backend.\n *\n * @return The ViewChange that resulted from this synchronization.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ph = function (t) {\n this.uh = t.Fc, this.lh = Ot();\n var e = this.wh(t.documents);\n return this.yr(e,\n /*updateLimboDocuments=*/\n !0);\n },\n /**\n * Returns a view snapshot as if this query was just listened to. Contains\n * a document add for every existing document and the `fromCache` and\n * `hasPendingWrites` status of the already established view.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.yh = function () {\n return Ft.Gt(this.query, this.fh, this.Wt, 0\n /* Local */\n === this.hh);\n }, t;\n}(),\n gs = function gs(\n/**\n * The query itself.\n */\nt,\n/**\n * The target number created by the client that is used in the watch\n * stream to identify this query.\n */\ne,\n/**\n * The view is responsible for computing the final merged truth of what\n * docs are in the query. It gets notified of local and remote changes,\n * and applies the query filters and limits to determine the most correct\n * possible results.\n */\nn) {\n this.query = t, this.targetId = e, this.view = n;\n},\n ms = function ms(t) {\n this.key = t,\n /**\n * Set to true once we've received a document. This is used in\n * getRemoteKeysForTarget() and ultimately used by WatchChangeAggregator to\n * decide whether it needs to manufacture a delete event for the target once\n * the target is CURRENT.\n */\n this.Vh = !1;\n},\n ws =\n/** @class */\nfunction () {\n function t(t, e, n, // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o) {\n this.ju = t, this.ph = e, this.bh = n, this.Sh = r, this.currentUser = i, this.Dh = o, this.Ch = {}, this.Nh = new it(function (t) {\n return Hn(t);\n }, Qn), this.Fh = new Map(),\n /**\n * The keys of documents that are in limbo for which we haven't yet started a\n * limbo resolution query.\n */\n this.xh = [],\n /**\n * Keeps track of the target ID for each document that is in limbo with an\n * active target.\n */\n this.$h = new bt(A.i),\n /**\n * Keeps track of the information about an active limbo resolution for each\n * active target ID that was started for the purpose of limbo resolution.\n */\n this.kh = new Map(), this.Mh = new xo(),\n /** Stores user completion handlers, indexed by User and BatchId. */\n this.Oh = {},\n /** Stores user callbacks waiting for all pending writes to be acknowledged. */\n this.Lh = new Map(), this.Bh = ro.da(), this.onlineState = \"Unknown\"\n /* Unknown */\n , // The primary state is set to `true` or `false` immediately after Firestore\n // startup. In the interim, a client should only be considered primary if\n // `isPrimary` is true.\n this.qh = void 0;\n }\n\n return Object.defineProperty(t.prototype, \"Uh\", {\n get: function get() {\n return !0 === this.qh;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}();\n/**\n * Initiates the new listen, resolves promise when listen enqueued to the\n * server. All the subsequent view snapshots or errors are sent to the\n * subscribed handlers. Returns the initial snapshot.\n */\n\n\nfunction _s(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = Ks(e), (s = r.Nh.get(n)) ? ( // PORTING NOTE: With Multi-Tab Web, it is possible that a query view\n // already exists when EventManager calls us for the first time. This\n // happens when the primary tab is already listening to this query on\n // behalf of another tab and the user of the primary also starts listening\n // to the query. EventManager will not have an assigned target ID in this\n // case and calls `listen` to obtain this ID.\n i = s.targetId, r.Sh.Oi(i), o = s.view.yh(), [3\n /*break*/\n , 4]) : [3\n /*break*/\n , 1];\n\n case 1:\n return [4\n /*yield*/\n , Io(r.ju, zn(n))];\n\n case 2:\n return u = t.sent(), a = r.Sh.Oi(u.targetId), i = u.targetId, [4\n /*yield*/\n , bs(r, n, i, \"current\" === a)];\n\n case 3:\n o = t.sent(), r.Uh && Wo(r.ph, u), t.label = 4;\n\n case 4:\n return [2\n /*return*/\n , o];\n }\n });\n });\n}\n/**\n * Registers a view for a previously unknown query and computes its initial\n * snapshot.\n */\n\n\nfunction bs(e, n, r, i) {\n return t.__awaiter(this, void 0, void 0, function () {\n var o, s, u, a, c, h;\n return t.__generator(this, function (f) {\n switch (f.label) {\n case 0:\n // PORTING NOTE: On Web only, we inject the code that registers new Limbo\n // targets based on view changes. This allows us to only depend on Limbo\n // changes when user code includes queries.\n return e.Qh = function (n, r, i) {\n return function (e, n, r, i) {\n return t.__awaiter(this, void 0, void 0, function () {\n var o, s, u;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return o = n.view.wh(r), o.Eh ? [4\n /*yield*/\n , To(e.ju, n.query,\n /* usePreviousResults= */\n !1).then(function (t) {\n var e = t.documents;\n return n.view.wh(e, o);\n })] : [3\n /*break*/\n , 2];\n\n case 1:\n // The query has a limit and some docs were removed, so we need\n // to re-run the query against the local store to make sure we\n // didn't lose any good docs that had been past the limit.\n o = t.sent(), t.label = 2;\n\n case 2:\n return s = i && i.zt.get(n.targetId), u = n.view.yr(o,\n /* updateLimboDocuments= */\n e.Uh, s), [2\n /*return*/\n , (Rs(e, n.targetId, u.Rh), u.snapshot)];\n }\n });\n });\n }(e, n, r, i);\n }, [4\n /*yield*/\n , To(e.ju, n,\n /* usePreviousResults= */\n !0)];\n\n case 1:\n return o = f.sent(), s = new ys(n, o.Fc), u = s.wh(o.documents), a = qt.Zt(r, i && \"Offline\"\n /* Offline */\n !== e.onlineState), c = s.yr(u,\n /* updateLimboDocuments= */\n e.Uh, a), Rs(e, r, c.Rh), h = new gs(n, r, s), [2\n /*return*/\n , (e.Nh.set(n, h), e.Fh.has(r) ? e.Fh.get(r).push(n) : e.Fh.set(r, [n]), c.snapshot)];\n }\n });\n });\n}\n/** Stops listening to the query. */\n\n\nfunction Is(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = m(e), i = r.Nh.get(n), (o = r.Fh.get(i.targetId)).length > 1 ? [2\n /*return*/\n , (r.Fh.set(i.targetId, o.filter(function (t) {\n return !Qn(t, n);\n })), void r.Nh.delete(n))] : r.Uh ? ( // We need to remove the local query target first to allow us to verify\n // whether any other client is still interested in this target.\n r.Sh.Bi(i.targetId), r.Sh.Fi(i.targetId) ? [3\n /*break*/\n , 2] : [4\n /*yield*/\n , Eo(r.ju, i.targetId,\n /*keepPersistedTargetData=*/\n !1).then(function () {\n r.Sh.Ui(i.targetId), Ko(r.ph, i.targetId), Ls(r, i.targetId);\n }).catch(Do)]) : [3\n /*break*/\n , 3];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [3\n /*break*/\n , 5];\n\n case 3:\n return Ls(r, i.targetId), [4\n /*yield*/\n , Eo(r.ju, i.targetId,\n /*keepPersistedTargetData=*/\n !0)];\n\n case 4:\n t.sent(), t.label = 5;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Initiates the write of local mutation batch which involves adding the\n * writes to the mutation queue, notifying the remote store about new\n * mutations and raising events for any changes this write caused.\n *\n * The promise returned by this call is resolved when the above steps\n * have completed, *not* when the write was acked by the backend. The\n * userCallback is resolved once the write was acked/rejected by the\n * backend (or failed locally for any other reason).\n */\n\n/**\n * Applies one remote event to the sync engine, notifying any views of the\n * changes, and releasing any pending mutation batches that would become\n * visible because of the snapshot version the remote event contains.\n */\n\n\nfunction Es(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n r = m(e), t.label = 1;\n\n case 1:\n return t.trys.push([1, 4,, 6]), [4\n /*yield*/\n , _o(r.ju, n)];\n\n case 2:\n return i = t.sent(), // Update `receivedDocument` as appropriate for any limbo targets.\n n.zt.forEach(function (t, e) {\n var n = r.kh.get(e);\n n && ( // Since this is a limbo resolution lookup, it's for a single document\n // and it could be added, modified, or removed, but not a combination.\n g(t.ee.size + t.ne.size + t.se.size <= 1), t.ee.size > 0 ? n.Vh = !0 : t.ne.size > 0 ? g(n.Vh) : t.se.size > 0 && (g(n.Vh), n.Vh = !1));\n }), [4\n /*yield*/\n , Vs(r, i, n)];\n\n case 3:\n // Update `receivedDocument` as appropriate for any limbo targets.\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 4:\n return [4\n /*yield*/\n , Do(t.sent())];\n\n case 5:\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Applies an OnlineState change to the sync engine and notifies any views of\n * the change.\n */\n\n\nfunction Ts(t, e, n) {\n var r = m(t); // If we are the secondary client, we explicitly ignore the remote store's\n // online state (the local client may go offline, even though the primary\n // tab remains online) and only apply the primary tab's online state from\n // SharedClientState.\n\n if (r.Uh && 0\n /* RemoteStore */\n === n || !r.Uh && 1\n /* SharedClientState */\n === n) {\n var i = [];\n r.Nh.forEach(function (t, n) {\n var r = n.view.Qs(e);\n r.snapshot && i.push(r.snapshot);\n }), function (t, e) {\n var n = m(t);\n n.onlineState = e;\n var r = !1;\n n.Bs.forEach(function (t, n) {\n for (var i = 0, o = n.listeners; i < o.length; i++) {\n // Run global snapshot listeners if a consistent snapshot has been emitted.\n o[i].Qs(e) && (r = !0);\n }\n }), r && Cr(n);\n }(r.bh, e), i.length && r.Ch.yu(i), r.onlineState = e, r.Uh && r.Sh.Ki(e);\n }\n}\n/**\n * Rejects the listen for the given targetID. This can be triggered by the\n * backend for any active target.\n *\n * @param syncEngine The sync engine implementation.\n * @param targetId The targetID corresponds to one previously initiated by the\n * user as part of TargetData passed to listen() on RemoteStore.\n * @param err A description of the condition that has forced the rejection.\n * Nearly always this will be an indication that the user is no longer\n * authorized to see the data matching the target.\n */\n\n\nfunction Ns(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u, a, c;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n // PORTING NOTE: Multi-tab only.\n return (i = m(e)).Sh.Qi(n, \"rejected\", r), o = i.kh.get(n), (s = o && o.key) ? (u = (u = new bt(A.i)).ot(s, new Rn(s, st.min())), a = Ot().add(s), c = new Mt(st.min(),\n /* targetChanges= */\n new Map(),\n /* targetMismatches= */\n new Tt(H), u, a), [4\n /*yield*/\n , Es(i, c)]) : [3\n /*break*/\n , 2];\n\n case 1:\n return t.sent(), // Since this query failed, we won't want to manually unlisten to it.\n // We only remove it from bookkeeping after we successfully applied the\n // RemoteEvent. If `applyRemoteEvent()` throws, we want to re-listen to\n // this query when the RemoteStore restarts the Watch stream, which should\n // re-trigger the target failure.\n i.$h = i.$h.remove(s), i.kh.delete(n), Ps(i), [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , Eo(i.ju, n,\n /* keepPersistedTargetData */\n !1).then(function () {\n return Ls(i, n, r);\n }).catch(Do)];\n\n case 3:\n t.sent(), t.label = 4;\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction As(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n r = m(e), i = n.batch.batchId, t.label = 1;\n\n case 1:\n return t.trys.push([1, 4,, 6]), [4\n /*yield*/\n , mo(r.ju, n)];\n\n case 2:\n return o = t.sent(), // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n xs(r, i,\n /*error=*/\n null), Ds(r, i), r.Sh.ki(i, \"acknowledged\"), [4\n /*yield*/\n , Vs(r, o)];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 4:\n return [4\n /*yield*/\n , Do(t.sent())];\n\n case 5:\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Ss(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n i = m(e), t.label = 1;\n\n case 1:\n return t.trys.push([1, 4,, 6]), [4\n /*yield*/\n , function (t, e) {\n var n = m(t);\n return n.persistence.runTransaction(\"Reject batch\", \"readwrite-primary\", function (t) {\n var r;\n return n.Sr.Oo(t, e).next(function (e) {\n return g(null !== e), r = e.keys(), n.Sr.Wo(t, e);\n }).next(function () {\n return n.Sr.zo(t);\n }).next(function () {\n return n.Cc.kr(t, r);\n });\n });\n }(i.ju, n)];\n\n case 2:\n return o = t.sent(), // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n xs(i, n, r), Ds(i, n), i.Sh.ki(n, \"rejected\", r), [4\n /*yield*/\n , Vs(i, o)];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 4:\n return [4\n /*yield*/\n , Do(t.sent())];\n\n case 5:\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\n * Registers a user callback that resolves when all pending mutations at the moment of calling\n * are acknowledged .\n */\n\n/**\n * Triggers the callbacks that are waiting for this batch id to get acknowledged by server,\n * if there are any.\n */\n\n\nfunction Ds(t, e) {\n (t.Lh.get(e) || []).forEach(function (t) {\n t.resolve();\n }), t.Lh.delete(e)\n /** Reject all outstanding callbacks waiting for pending writes to complete. */\n ;\n}\n\nfunction xs(t, e, n) {\n var r = m(t),\n i = r.Oh[r.currentUser.ti()]; // NOTE: Mutations restored from persistence won't have callbacks, so it's\n // okay for there to be no callback for this ID.\n\n if (i) {\n var o = i.get(e);\n o && (n ? o.reject(n) : o.resolve(), i = i.remove(e)), r.Oh[r.currentUser.ti()] = i;\n }\n}\n\nfunction Ls(t, e, n) {\n void 0 === n && (n = null), t.Sh.Bi(e);\n\n for (var r = 0, i = t.Fh.get(e); r < i.length; r++) {\n var o = i[r];\n t.Nh.delete(o), n && t.Ch.Wh(o, n);\n }\n\n t.Fh.delete(e), t.Uh && t.Mh.Uc(e).forEach(function (e) {\n t.Mh.Ho(e) || // We removed the last reference for this key\n ks(t, e);\n });\n}\n\nfunction ks(t, e) {\n // It's possible that the target already got removed because the query failed. In that case,\n // the key won't exist in `limboTargetsByKey`. Only do the cleanup if we still have the target.\n var n = t.$h.get(e);\n null !== n && (Ko(t.ph, n), t.$h = t.$h.remove(e), t.kh.delete(n), Ps(t));\n}\n\nfunction Rs(t, e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r];\n o instanceof ds ? (t.Mh.Da(o.key, e), Os(t, o)) : o instanceof vs ? (l(\"SyncEngine\", \"Document no longer in limbo: \" + o.key), t.Mh.Na(o.key, e), t.Mh.Ho(o.key) || // We removed the last reference for this key\n ks(t, o.key)) : y();\n }\n}\n\nfunction Os(t, e) {\n var n = e.key;\n t.$h.get(n) || (l(\"SyncEngine\", \"New document in limbo: \" + n), t.xh.push(n), Ps(t));\n}\n/**\n * Starts listens for documents in limbo that are enqueued for resolution,\n * subject to a maximum number of concurrent resolutions.\n *\n * Without bounding the number of concurrent resolutions, the server can fail\n * with \"resource exhausted\" errors which can lead to pathological client\n * behavior as seen in https://github.com/firebase/firebase-js-sdk/issues/2683.\n */\n\n\nfunction Ps(t) {\n for (; t.xh.length > 0 && t.$h.size < t.Dh;) {\n var e = t.xh.shift(),\n n = t.Bh.next();\n t.kh.set(n, new ms(e)), t.$h = t.$h.ot(e, n), Wo(t.ph, new gt(zn(Un(e.path)), n, 2\n /* LimboResolution */\n , qr.ai));\n }\n}\n\nfunction Vs(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u;\n return t.__generator(this, function (a) {\n switch (a.label) {\n case 0:\n return i = m(e), o = [], s = [], u = [], i.Nh.m() ? [3\n /*break*/\n , 3] : (i.Nh.forEach(function (t, e) {\n u.push(i.Qh(e, n, r).then(function (t) {\n if (t) {\n i.Uh && i.Sh.Qi(e.targetId, t.fromCache ? \"not-current\" : \"current\"), o.push(t);\n var n = ri.zr(e.targetId, t);\n s.push(n);\n }\n }));\n }), [4\n /*yield*/\n , Promise.all(u)]);\n\n case 1:\n return a.sent(), i.Ch.yu(o), [4\n /*yield*/\n , function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a, c, h, f;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n r = m(e), t.label = 1;\n\n case 1:\n return t.trys.push([1, 3,, 4]), [4\n /*yield*/\n , r.persistence.runTransaction(\"notifyLocalViewChanges\", \"readwrite\", function (t) {\n return yr.forEach(n, function (e) {\n return yr.forEach(e.Kr, function (n) {\n return r.persistence.No.Da(t, e.targetId, n);\n }).next(function () {\n return yr.forEach(e.Gr, function (n) {\n return r.persistence.No.Na(t, e.targetId, n);\n });\n });\n });\n })];\n\n case 2:\n return t.sent(), [3\n /*break*/\n , 4];\n\n case 3:\n if (!_r(i = t.sent())) throw i; // If `notifyLocalViewChanges` fails, we did not advance the sequence\n // number for the documents that were included in this transaction.\n // This might trigger them to be deleted earlier than they otherwise\n // would have, but it should not invalidate the integrity of the data.\n\n return l(\"LocalStore\", \"Failed to update sequence numbers: \" + i), [3\n /*break*/\n , 4];\n\n case 4:\n for (o = 0, s = n; o < s.length; o++) {\n u = s[o], a = u.targetId, u.fromCache || (c = r.bc.get(a), h = c.nt, f = c.rt(h), // Advance the last limbo free snapshot version\n r.bc = r.bc.ot(a, f));\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n }(i.ju, s)];\n\n case 2:\n a.sent(), a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Us(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i;\n return t.__generator(this, function (o) {\n switch (o.label) {\n case 0:\n return (r = m(e)).currentUser.isEqual(n) ? [3\n /*break*/\n , 3] : (l(\"SyncEngine\", \"User change. New user:\", n.ti()), [4\n /*yield*/\n ,\n /**\n * Tells the LocalStore that the currently authenticated user has changed.\n *\n * In response the local store switches the mutation queue to the new user and\n * returns any resulting document changes.\n */\n // PORTING NOTE: Android and iOS only return the documents affected by the\n // change.\n function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = m(e), i = r.Sr, o = r.Cc, [4\n /*yield*/\n , r.persistence.runTransaction(\"Handle user change\", \"readonly\", function (t) {\n // Swap out the mutation queue, grabbing the pending mutation batches\n // before and after.\n var e;\n return r.Sr.Uo(t).next(function (s) {\n return e = s, i = r.persistence.mc(n), // Recreate our LocalDocumentsView using the new\n // MutationQueue.\n o = new ni(r.Dc, i, r.persistence.Ic()), i.Uo(t);\n }).next(function (n) {\n for (var r = [], i = [], s = Ot(), u = 0, a = e // Union the old/new changed keys.\n ; u < a.length; u++) {\n var c = a[u];\n r.push(c.batchId);\n\n for (var h = 0, f = c.mutations; h < f.length; h++) {\n var l = f[h];\n s = s.add(l.key);\n }\n }\n\n for (var p = 0, d = n; p < d.length; p++) {\n var v = d[p];\n i.push(v.batchId);\n\n for (var y = 0, g = v.mutations; y < g.length; y++) {\n var m = g[y];\n s = s.add(m.key);\n }\n } // Return the set of all (potentially) changed documents and the list\n // of mutation batch IDs that were affected by change.\n\n\n return o.kr(t, s).next(function (t) {\n return {\n jh: t,\n Kh: r,\n Gh: i\n };\n });\n });\n })];\n\n case 1:\n return s = t.sent(), [2\n /*return*/\n , (r.Sr = i, r.Cc = o, r.Vc.Nc(r.Cc), s)];\n }\n });\n });\n }(r.ju, n)]);\n\n case 1:\n return i = o.sent(), r.currentUser = n, // Fails tasks waiting for pending writes requested by previous user.\n function (t, e) {\n t.Lh.forEach(function (t) {\n t.forEach(function (t) {\n t.reject(new c(a.CANCELLED, \"'waitForPendingWrites' promise is rejected due to a user change.\"));\n });\n }), t.Lh.clear();\n }(r), // TODO(b/114226417): Consider calling this only in the primary tab.\n r.Sh.ji(n, i.Kh, i.Gh), [4\n /*yield*/\n , Vs(r, i.jh)];\n\n case 2:\n o.sent(), o.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Cs(t, e) {\n var n = m(t),\n r = n.kh.get(e);\n if (r && r.Vh) return Ot().add(r.key);\n var i = Ot(),\n o = n.Fh.get(e);\n if (!o) return i;\n\n for (var s = 0, u = o; s < u.length; s++) {\n var a = u[s],\n c = n.Nh.get(a);\n i = i.kt(c.view.dh);\n }\n\n return i;\n}\n/**\n * Reconcile the list of synced documents in an existing view with those\n * from persistence.\n */\n\n\nfunction Fs(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , To((r = m(e)).ju, n.query,\n /* usePreviousResults= */\n !0)];\n\n case 1:\n return i = t.sent(), o = n.view.Ph(i), [2\n /*return*/\n , (r.Uh && Rs(r, n.targetId, o.Rh), o)];\n }\n });\n });\n}\n/** Applies a mutation state to an existing batch. */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction Ms(e, n, r, i) {\n return t.__awaiter(this, void 0, void 0, function () {\n var o, s;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , function (t, e) {\n var n = m(t),\n r = m(n.Sr);\n return n.persistence.runTransaction(\"Lookup mutation documents\", \"readonly\", function (t) {\n return r.Lo(t, e).next(function (e) {\n return e ? n.Cc.kr(t, e) : yr.resolve(null);\n });\n });\n }((o = m(e)).ju, n)];\n\n case 1:\n return null === (s = t.sent()) ? [3\n /*break*/\n , 6] : \"pending\" !== r ? [3\n /*break*/\n , 3] : [4\n /*yield*/\n , is(o.ph)];\n\n case 2:\n // If we are the primary client, we need to send this write to the\n // backend. Secondary clients will ignore these writes since their remote\n // connection is disabled.\n return t.sent(), [3\n /*break*/\n , 4];\n\n case 3:\n \"acknowledged\" === r || \"rejected\" === r ? ( // NOTE: Both these methods are no-ops for batches that originated from\n // other clients.\n xs(o, n, i || null), Ds(o, n), function (t, e) {\n m(m(t).Sr).Ko(e);\n }(o.ju, n)) : y(), t.label = 4;\n\n case 4:\n return [4\n /*yield*/\n , Vs(o, s)];\n\n case 5:\n return t.sent(), [3\n /*break*/\n , 7];\n\n case 6:\n // A throttled tab may not have seen the mutation before it was completed\n // and removed from the mutation queue, in which case we won't have cached\n // the affected documents. In this case we can safely ignore the update\n // since that means we didn't apply the mutation locally at all (if we\n // had, we would have cached the affected documents), and so we will just\n // see any resulting document changes via normal remote document updates\n // as applicable.\n l(\"SyncEngine\", \"Cannot apply mutation batch with id: \" + n), t.label = 7;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction qs(e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a, c, h;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return Ks(r = m(e)), Qs(r), !0 !== n || !0 === r.qh ? [3\n /*break*/\n , 3] : (i = r.Sh.Ci(), [4\n /*yield*/\n , js(r, i.A())]);\n\n case 1:\n return o = t.sent(), r.qh = !0, [4\n /*yield*/\n , fs(r.ph, !0)];\n\n case 2:\n for (t.sent(), s = 0, u = o; s < u.length; s++) {\n a = u[s], Wo(r.ph, a);\n }\n\n return [3\n /*break*/\n , 7];\n\n case 3:\n return !1 !== n || !1 === r.qh ? [3\n /*break*/\n , 7] : (c = [], h = Promise.resolve(), r.Fh.forEach(function (t, e) {\n r.Sh.qi(e) ? c.push(e) : h = h.then(function () {\n return Ls(r, e), Eo(r.ju, e,\n /*keepPersistedTargetData=*/\n !0);\n }), Ko(r.ph, e);\n }), [4\n /*yield*/\n , h]);\n\n case 4:\n return t.sent(), [4\n /*yield*/\n , js(r, c)];\n\n case 5:\n return t.sent(), // PORTING NOTE: Multi-Tab only.\n function (t) {\n var e = m(t);\n e.kh.forEach(function (t, n) {\n Ko(e.ph, n);\n }), e.Mh.Qc(), e.kh = new Map(), e.$h = new bt(A.i);\n }(r), r.qh = !1, [4\n /*yield*/\n , fs(r.ph, !1)];\n\n case 6:\n t.sent(), t.label = 7;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction js(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a, c, h, f, l, p, d, v, y;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n r = m(e), i = [], o = [], s = 0, u = n, t.label = 1;\n\n case 1:\n return s < u.length ? (a = u[s], c = void 0, (h = r.Fh.get(a)) && 0 !== h.length ? [4\n /*yield*/\n , Io(r.ju, zn(h[0]))] : [3\n /*break*/\n , 7]) : [3\n /*break*/\n , 13];\n\n case 2:\n // For queries that have a local View, we fetch their current state\n // from LocalStore (as the resume token and the snapshot version\n // might have changed) and reconcile their views with the persisted\n // state (the list of syncedDocuments may have gotten out of sync).\n c = t.sent(), f = 0, l = h, t.label = 3;\n\n case 3:\n return f < l.length ? (p = l[f], d = r.Nh.get(p), [4\n /*yield*/\n , Fs(r, d)]) : [3\n /*break*/\n , 6];\n\n case 4:\n (v = t.sent()).snapshot && o.push(v.snapshot), t.label = 5;\n\n case 5:\n return f++, [3\n /*break*/\n , 3];\n\n case 6:\n return [3\n /*break*/\n , 11];\n\n case 7:\n return [4\n /*yield*/\n , No(r.ju, a)];\n\n case 8:\n return y = t.sent(), [4\n /*yield*/\n , Io(r.ju, y)];\n\n case 9:\n return c = t.sent(), [4\n /*yield*/\n , bs(r, Gs(y), a,\n /*current=*/\n !1)];\n\n case 10:\n t.sent(), t.label = 11;\n\n case 11:\n i.push(c), t.label = 12;\n\n case 12:\n return s++, [3\n /*break*/\n , 1];\n\n case 13:\n return [2\n /*return*/\n , (r.Ch.yu(o), i)];\n }\n });\n });\n}\n/**\n * Creates a `Query` object from the specified `Target`. There is no way to\n * obtain the original `Query`, so we synthesize a `Query` from the `Target`\n * object.\n *\n * The synthesized result might be different from the original `Query`, but\n * since the synthesized `Query` should return the same results as the\n * original one (only the presentation of results might differ), the potential\n * difference will not cause issues.\n */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction Gs(t) {\n return Vn(t.path, t.collectionGroup, t.orderBy, t.filters, t.limit, \"F\"\n /* First */\n , t.startAt, t.endAt);\n}\n/** Returns the IDs of the clients that are currently active. */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction zs(t) {\n var e = m(t);\n return m(m(e.ju).persistence).pi();\n}\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\n\n\nfunction Bs(e, n, r, i) {\n return t.__awaiter(this, void 0, void 0, function () {\n var o, s, u;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return (o = m(e)).qh ? ( // If we receive a target state notification via WebStorage, we are\n // either already secondary or another tab has taken the primary lease.\n l(\"SyncEngine\", \"Ignoring unexpected query state notification.\"), [3\n /*break*/\n , 8]) : [3\n /*break*/\n , 1];\n\n case 1:\n if (!o.Fh.has(n)) return [3\n /*break*/\n , 8];\n\n switch (r) {\n case \"current\":\n case \"not-current\":\n return [3\n /*break*/\n , 2];\n\n case \"rejected\":\n return [3\n /*break*/\n , 5];\n }\n\n return [3\n /*break*/\n , 7];\n\n case 2:\n return [4\n /*yield*/\n , Ao(o.ju)];\n\n case 3:\n return s = t.sent(), u = Mt.Xt(n, \"current\" === r), [4\n /*yield*/\n , Vs(o, s, u)];\n\n case 4:\n return t.sent(), [3\n /*break*/\n , 8];\n\n case 5:\n return [4\n /*yield*/\n , Eo(o.ju, n,\n /* keepPersistedTargetData */\n !0)];\n\n case 6:\n return t.sent(), Ls(o, n, i), [3\n /*break*/\n , 8];\n\n case 7:\n y(), t.label = 8;\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/** Adds or removes Watch targets for queries from different tabs. */\n\n\nfunction Ws(e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u, a, c, h, f, p, d;\n return t.__generator(this, function (v) {\n switch (v.label) {\n case 0:\n if (!(i = Ks(e)).qh) return [3\n /*break*/\n , 10];\n o = 0, s = n, v.label = 1;\n\n case 1:\n return o < s.length ? (u = s[o], i.Fh.has(u) ? ( // A target might have been added in a previous attempt\n l(\"SyncEngine\", \"Adding an already active target \" + u), [3\n /*break*/\n , 5]) : [4\n /*yield*/\n , No(i.ju, u)]) : [3\n /*break*/\n , 6];\n\n case 2:\n return a = v.sent(), [4\n /*yield*/\n , Io(i.ju, a)];\n\n case 3:\n return c = v.sent(), [4\n /*yield*/\n , bs(i, Gs(a), c.targetId,\n /*current=*/\n !1)];\n\n case 4:\n v.sent(), Wo(i.ph, c), v.label = 5;\n\n case 5:\n return o++, [3\n /*break*/\n , 1];\n\n case 6:\n h = function h(e) {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return i.Fh.has(e) ? [4\n /*yield*/\n , Eo(i.ju, e,\n /* keepPersistedTargetData */\n !1).then(function () {\n Ko(i.ph, e), Ls(i, e);\n }).catch(Do)] : [3\n /*break*/\n , 2];\n // Release queries that are still active.\n\n case 1:\n // Release queries that are still active.\n t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n }, f = 0, p = r, v.label = 7;\n\n case 7:\n return f < p.length ? (d = p[f], [5\n /*yield**/\n , h(d)]) : [3\n /*break*/\n , 10];\n\n case 8:\n v.sent(), v.label = 9;\n\n case 9:\n return f++, [3\n /*break*/\n , 7];\n\n case 10:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction Ks(t) {\n var e = m(t);\n return e.ph.Gu.sh = Es.bind(null, e), e.ph.Gu.qe = Cs.bind(null, e), e.ph.Gu.nh = Ns.bind(null, e), e.Ch.yu = Vr.bind(null, e.bh), e.Ch.Wh = Ur.bind(null, e.bh), e;\n}\n\nfunction Qs(t) {\n var e = m(t);\n return e.ph.Gu.ih = As.bind(null, e), e.ph.Gu.rh = Ss.bind(null, e), e;\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// TOOD(b/140938512): Drop SimpleQueryEngine and rename IndexFreeQueryEngine.\n\n/**\n * A query engine that takes advantage of the target document mapping in the\n * QueryCache. The IndexFreeQueryEngine optimizes query execution by only\n * reading the documents that previously matched a query plus any documents that were\n * edited after the query was last listened to.\n *\n * There are some cases where Index-Free queries are not guaranteed to produce\n * the same results as full collection scans. In these cases, the\n * IndexFreeQueryEngine falls back to full query processing. These cases are:\n *\n * - Limit queries where a document that matched the query previously no longer\n * matches the query.\n *\n * - Limit queries where a document edit may cause the document to sort below\n * another document that is in the local cache.\n *\n * - Queries that have never been CURRENT or free of Limbo documents.\n */\n\n\nvar Hs =\n/** @class */\nfunction () {\n function t() {}\n\n return t.prototype.Nc = function (t) {\n this.zh = t;\n }, t.prototype.Lr = function (t, e, r, i) {\n var o = this; // Queries that match all documents don't benefit from using\n // IndexFreeQueries. It is more efficient to scan all documents in a\n // collection, rather than to perform individual lookups.\n\n return function (t) {\n return 0 === t.filters.length && null === t.limit && null == t.startAt && null == t.endAt && (0 === t.on.length || 1 === t.on.length && t.on[0].field.p());\n }(e) || r.isEqual(st.min()) ? this.Hh(t, e) : this.zh.kr(t, i).next(function (s) {\n var u = o.Yh(e, s);\n return (Cn(e) || Fn(e)) && o.Eh(e.an, u, i, r) ? o.Hh(t, e) : (f() <= n.LogLevel.DEBUG && l(\"IndexFreeQueryEngine\", \"Re-using previous result from %s to execute query: %s\", r.toString(), Yn(e)), o.zh.Lr(t, e, r).next(function (t) {\n // We merge `previousResults` into `updateResults`, since\n // `updateResults` is already a DocumentMap. If a document is\n // contained in both lists, then its contents are the same.\n return u.forEach(function (e) {\n t = t.ot(e.key, e);\n }), t;\n }));\n }); // Queries that have never seen a snapshot without limbo free documents\n // should also be run as a full collection scan.\n },\n /** Applies the query filter and sorting to the provided documents. */\n t.prototype.Yh = function (t, e) {\n // Sort the documents and re-apply the query filter since previously\n // matching documents do not necessarily still match the query.\n var n = new Tt(Xn(t));\n return e.forEach(function (e, r) {\n r instanceof kn && $n(t, r) && (n = n.add(r));\n }), n;\n },\n /**\n * Determines if a limit query needs to be refilled from cache, making it\n * ineligible for index-free execution.\n *\n * @param sortedPreviousResults The documents that matched the query when it\n * was last synchronized, sorted by the query's comparator.\n * @param remoteKeys The document keys that matched the query at the last\n * snapshot.\n * @param limboFreeSnapshotVersion The version of the snapshot when the query\n * was last synchronized.\n */\n t.prototype.Eh = function (t, e, n, r) {\n // The query needs to be refilled if a previously matching document no\n // longer matches.\n if (n.size !== e.size) return !0; // Limit queries are not eligible for index-free query execution if there is\n // a potential that an older document from cache now sorts before a document\n // that was previously part of the limit. This, however, can only happen if\n // the document at the edge of the limit goes out of limit.\n // If a document that is not the limit boundary sorts differently,\n // the boundary of the limit itself did not change and documents from cache\n // will continue to be \"rejected\" by this boundary. Therefore, we can ignore\n // any modifications that don't affect the last document.\n\n var i = \"F\"\n /* First */\n === t ? e.last() : e.first();\n return !!i && (i.hasPendingWrites || i.version.L(r) > 0);\n }, t.prototype.Hh = function (t, e) {\n return f() <= n.LogLevel.DEBUG && l(\"IndexFreeQueryEngine\", \"Using full collection scan to execute query:\", Yn(e)), this.zh.Lr(t, e, st.min());\n }, t;\n}(),\n Ys =\n/** @class */\nfunction () {\n function t(t, e) {\n this.Dr = t, this.No = e,\n /**\n * The set of all mutations that have been sent but not yet been applied to\n * the backend.\n */\n this.Sr = [],\n /** Next value to use when assigning sequential IDs to each mutation batch. */\n this.Jh = 1,\n /** An ordered mapping between documents and the mutations batch IDs. */\n this.Xh = new Tt(Lo.kc);\n }\n\n return t.prototype.$o = function (t) {\n return yr.resolve(0 === this.Sr.length);\n }, t.prototype.ko = function (t, e, n, r) {\n var i = this.Jh;\n this.Jh++, this.Sr.length > 0 && this.Sr[this.Sr.length - 1];\n var o = new Xr(i, e, n, r);\n this.Sr.push(o); // Track references by document key and index collection parents.\n\n for (var s = 0, u = r; s < u.length; s++) {\n var a = u[s];\n this.Xh = this.Xh.add(new Lo(a.key, i)), this.Dr.Mo(t, a.key.path.h());\n }\n\n return yr.resolve(o);\n }, t.prototype.Oo = function (t, e) {\n return yr.resolve(this.Zh(e));\n }, t.prototype.Bo = function (t, e) {\n var n = e + 1,\n r = this.tl(n),\n i = r < 0 ? 0 : r; // The requested batchId may still be out of range so normalize it to the\n // start of the queue.\n\n return yr.resolve(this.Sr.length > i ? this.Sr[i] : null);\n }, t.prototype.qo = function () {\n return yr.resolve(0 === this.Sr.length ? -1 : this.Jh - 1);\n }, t.prototype.Uo = function (t) {\n return yr.resolve(this.Sr.slice());\n }, t.prototype.Nr = function (t, e) {\n var n = this,\n r = new Lo(e, 0),\n i = new Lo(e, Number.POSITIVE_INFINITY),\n o = [];\n return this.Xh.Ft([r, i], function (t) {\n var e = n.Zh(t.jc);\n o.push(e);\n }), yr.resolve(o);\n }, t.prototype.Or = function (t, e) {\n var n = this,\n r = new Tt(H);\n return e.forEach(function (t) {\n var e = new Lo(t, 0),\n i = new Lo(t, Number.POSITIVE_INFINITY);\n n.Xh.Ft([e, i], function (t) {\n r = r.add(t.jc);\n });\n }), yr.resolve(this.el(r));\n }, t.prototype.Wr = function (t, e) {\n // Use the query path as a prefix for testing if a document matches the\n // query.\n var n = e.path,\n r = n.length + 1,\n i = n; // Construct a document reference for actually scanning the index. Unlike\n // the prefix the document key in this reference must have an even number of\n // segments. The empty segment can be used a suffix of the query path\n // because it precedes all other segments in an ordered traversal.\n\n A.F(i) || (i = i.child(\"\"));\n var o = new Lo(new A(i), 0),\n s = new Tt(H); // Find unique batchIDs referenced by all documents potentially matching the\n // query.\n\n return this.Xh.xt(function (t) {\n var e = t.key.path;\n return !!n.T(e) && ( // Rows with document keys more than one segment longer than the query\n // path can't be matches. For example, a query on 'rooms' can't match\n // the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n e.length === r && (s = s.add(t.jc)), !0);\n }, o), yr.resolve(this.el(s));\n }, t.prototype.el = function (t) {\n var e = this,\n n = []; // Construct an array of matching batches, sorted by batchID to ensure that\n // multiple mutations affecting the same document key are applied in order.\n\n return t.forEach(function (t) {\n var r = e.Zh(t);\n null !== r && n.push(r);\n }), n;\n }, t.prototype.Wo = function (t, e) {\n var n = this;\n g(0 === this.nl(e.batchId, \"removed\")), this.Sr.shift();\n var r = this.Xh;\n return yr.forEach(e.mutations, function (i) {\n var o = new Lo(i.key, e.batchId);\n return r = r.delete(o), n.No.Go(t, i.key);\n }).next(function () {\n n.Xh = r;\n });\n }, t.prototype.Ko = function (t) {// No-op since the memory mutation queue does not maintain a separate cache.\n }, t.prototype.Ho = function (t, e) {\n var n = new Lo(e, 0),\n r = this.Xh.$t(n);\n return yr.resolve(e.isEqual(r && r.key));\n }, t.prototype.zo = function (t) {\n return this.Sr.length, yr.resolve();\n },\n /**\n * Finds the index of the given batchId in the mutation queue and asserts that\n * the resulting index is within the bounds of the queue.\n *\n * @param batchId The batchId to search for\n * @param action A description of what the caller is doing, phrased in passive\n * form (e.g. \"acknowledged\" in a routine that acknowledges batches).\n */\n t.prototype.nl = function (t, e) {\n return this.tl(t);\n },\n /**\n * Finds the index of the given batchId in the mutation queue. This operation\n * is O(1).\n *\n * @return The computed index of the batch with the given batchId, based on\n * the state of the queue. Note this index can be negative if the requested\n * batchId has already been remvoed from the queue or past the end of the\n * queue if the batchId is larger than the last added batch.\n */\n t.prototype.tl = function (t) {\n return 0 === this.Sr.length ? 0 : t - this.Sr[0].batchId; // Examine the front of the queue to figure out the difference between the\n // batchId and indexes in the array. Note that since the queue is ordered\n // by batchId, if the first batch has a larger batchId then the requested\n // batchId doesn't exist in the queue.\n },\n /**\n * A version of lookupMutationBatch that doesn't return a promise, this makes\n * other functions that uses this code easier to read and more efficent.\n */\n t.prototype.Zh = function (t) {\n var e = this.tl(t);\n return e < 0 || e >= this.Sr.length ? null : this.Sr[e];\n }, t;\n}(),\n $s =\n/** @class */\nfunction () {\n /**\n * @param sizer Used to assess the size of a document. For eager GC, this is expected to just\n * return 0 to avoid unnecessarily doing the work of calculating the size.\n */\n function t(t, e) {\n this.Dr = t, this.sl = e,\n /** Underlying cache of documents and their read times. */\n this.docs = new bt(A.i),\n /** Size of all cached documents. */\n this.size = 0\n /**\n * Adds the supplied entry to the cache and updates the cache size as appropriate.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */\n ;\n }\n\n return t.prototype.Er = function (t, e, n) {\n var r = e.key,\n i = this.docs.get(r),\n o = i ? i.size : 0,\n s = this.sl(e);\n return this.docs = this.docs.ot(r, {\n ta: e,\n size: s,\n readTime: n\n }), this.size += s - o, this.Dr.Mo(t, r.path.h());\n },\n /**\n * Removes the specified entry from the cache and updates the cache size as appropriate.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */\n t.prototype.Ar = function (t) {\n var e = this.docs.get(t);\n e && (this.docs = this.docs.remove(t), this.size -= e.size);\n }, t.prototype.Rr = function (t, e) {\n var n = this.docs.get(e);\n return yr.resolve(n ? n.ta : null);\n }, t.prototype.getEntries = function (t, e) {\n var n = this,\n r = Dt();\n return e.forEach(function (t) {\n var e = n.docs.get(t);\n r = r.ot(t, e ? e.ta : null);\n }), yr.resolve(r);\n }, t.prototype.Lr = function (t, e, n) {\n for (var r = Lt(), i = new A(e.path.child(\"\")), o = this.docs.ft(i) // Documents are ordered by key, so we can use a prefix scan to narrow down\n // the documents we need to match the query against.\n ; o.At();) {\n var s = o.It(),\n u = s.key,\n a = s.value,\n c = a.ta,\n h = a.readTime;\n if (!e.path.T(u.path)) break;\n h.L(n) <= 0 || c instanceof kn && $n(e, c) && (r = r.ot(c.key, c));\n }\n\n return yr.resolve(r);\n }, t.prototype.il = function (t, e) {\n return yr.forEach(this.docs, function (t) {\n return e(t);\n });\n }, t.prototype.ra = function (t) {\n // `trackRemovals` is ignores since the MemoryRemoteDocumentCache keeps\n // a separate changelog and does not need special handling for removals.\n return new Xs(this);\n }, t.prototype.aa = function (t) {\n return yr.resolve(this.size);\n }, t;\n}(),\n Xs =\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).ca = t, n;\n }\n\n return t.__extends(n, e), n.prototype.yr = function (t) {\n var e = this,\n n = [];\n return this.wr.forEach(function (r, i) {\n i ? n.push(e.ca.Er(t, i, e.readTime)) : e.ca.Ar(r);\n }), yr.$n(n);\n }, n.prototype.gr = function (t, e) {\n return this.ca.Rr(t, e);\n }, n.prototype.Pr = function (t, e) {\n return this.ca.getEntries(t, e);\n }, n;\n}(Zr),\n Js =\n/** @class */\nfunction () {\n function t(t) {\n this.persistence = t,\n /**\n * Maps a target to the data about that target\n */\n this.rl = new it(function (t) {\n return lt(t);\n }, pt),\n /** The last received snapshot version. */\n this.lastRemoteSnapshotVersion = st.min(),\n /** The highest numbered target ID encountered. */\n this.highestTargetId = 0,\n /** The highest sequence number encountered. */\n this.ol = 0,\n /**\n * A ordered bidirectional mapping between documents and the remote target\n * IDs.\n */\n this.al = new xo(), this.targetCount = 0, this.cl = ro.fa();\n }\n\n return t.prototype.Ce = function (t, e) {\n return this.rl.forEach(function (t, n) {\n return e(n);\n }), yr.resolve();\n }, t.prototype.Ea = function (t) {\n return yr.resolve(this.lastRemoteSnapshotVersion);\n }, t.prototype.Ia = function (t) {\n return yr.resolve(this.ol);\n }, t.prototype.wa = function (t) {\n return this.highestTargetId = this.cl.next(), yr.resolve(this.highestTargetId);\n }, t.prototype.Aa = function (t, e, n) {\n return n && (this.lastRemoteSnapshotVersion = n), e > this.ol && (this.ol = e), yr.resolve();\n }, t.prototype.ga = function (t) {\n this.rl.set(t.target, t);\n var e = t.targetId;\n e > this.highestTargetId && (this.cl = new ro(e), this.highestTargetId = e), t.sequenceNumber > this.ol && (this.ol = t.sequenceNumber);\n }, t.prototype.Ra = function (t, e) {\n return this.ga(e), this.targetCount += 1, yr.resolve();\n }, t.prototype.ya = function (t, e) {\n return this.ga(e), yr.resolve();\n }, t.prototype.Va = function (t, e) {\n return this.rl.delete(e.target), this.al.Uc(e.targetId), this.targetCount -= 1, yr.resolve();\n }, t.prototype.po = function (t, e, n) {\n var r = this,\n i = 0,\n o = [];\n return this.rl.forEach(function (s, u) {\n u.sequenceNumber <= e && null === n.get(u.targetId) && (r.rl.delete(s), o.push(r.pa(t, u.targetId)), i++);\n }), yr.$n(o).next(function () {\n return i;\n });\n }, t.prototype.ba = function (t) {\n return yr.resolve(this.targetCount);\n }, t.prototype.va = function (t, e) {\n var n = this.rl.get(e) || null;\n return yr.resolve(n);\n }, t.prototype.Sa = function (t, e, n) {\n return this.al.Lc(e, n), yr.resolve();\n }, t.prototype.Ca = function (t, e, n) {\n this.al.qc(e, n);\n var r = this.persistence.No,\n i = [];\n return r && e.forEach(function (e) {\n i.push(r.Go(t, e));\n }), yr.$n(i);\n }, t.prototype.pa = function (t, e) {\n return this.al.Uc(e), yr.resolve();\n }, t.prototype.Fa = function (t, e) {\n var n = this.al.Wc(e);\n return yr.resolve(n);\n }, t.prototype.Ho = function (t, e) {\n return yr.resolve(this.al.Ho(e));\n }, t;\n}(),\n Zs =\n/** @class */\nfunction () {\n /**\n * The constructor accepts a factory for creating a reference delegate. This\n * allows both the delegate and this instance to have strong references to\n * each other without having nullable fields that would then need to be\n * checked or asserted on every access.\n */\n function t(t) {\n var e = this;\n this.ul = {}, this.Ma = new qr(0), this.Oa = !1, this.Oa = !0, this.No = t(this), this.Ka = new Js(this), this.Dr = new Ui(), this.vr = function (t, n) {\n return new $s(t, function (t) {\n return e.No.hl(t);\n });\n }(this.Dr);\n }\n\n return t.prototype.start = function () {\n return Promise.resolve();\n }, t.prototype.Di = function () {\n // No durable state to ensure is closed on shutdown.\n return this.Oa = !1, Promise.resolve();\n }, Object.defineProperty(t.prototype, \"Ei\", {\n get: function get() {\n return this.Oa;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.Za = function () {// No op.\n }, t.prototype.tc = function () {// No op.\n }, t.prototype.Ic = function () {\n return this.Dr;\n }, t.prototype.mc = function (t) {\n var e = this.ul[t.ti()];\n return e || (e = new Ys(this.Dr, this.No), this.ul[t.ti()] = e), e;\n }, t.prototype.Tc = function () {\n return this.Ka;\n }, t.prototype.Ec = function () {\n return this.vr;\n }, t.prototype.runTransaction = function (t, e, n) {\n var r = this;\n l(\"MemoryPersistence\", \"Starting transaction:\", t);\n var i = new tu(this.Ma.next());\n return this.No.ll(), n(i).next(function (t) {\n return r.No._l(i).next(function () {\n return t;\n });\n }).Fn().then(function (t) {\n return i.br(), t;\n });\n }, t.prototype.fl = function (t, e) {\n return yr.kn(Object.values(this.ul).map(function (n) {\n return function () {\n return n.Ho(t, e);\n };\n }));\n }, t;\n}(),\n tu =\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).xa = t, n;\n }\n\n return t.__extends(n, e), n;\n}(ei),\n eu =\n/** @class */\nfunction () {\n function t(t) {\n this.persistence = t,\n /** Tracks all documents that are active in Query views. */\n this.dl = new xo(),\n /** The list of documents that are potentially GCed after each transaction. */\n this.wl = null;\n }\n\n return t.ml = function (e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"Tl\", {\n get: function get() {\n if (this.wl) return this.wl;\n throw y();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.Da = function (t, e, n) {\n return this.dl.Da(n, e), this.Tl.delete(n.toString()), yr.resolve();\n }, t.prototype.Na = function (t, e, n) {\n return this.dl.Na(n, e), this.Tl.add(n.toString()), yr.resolve();\n }, t.prototype.Go = function (t, e) {\n return this.Tl.add(e.toString()), yr.resolve();\n }, t.prototype.removeTarget = function (t, e) {\n var n = this;\n this.dl.Uc(e.targetId).forEach(function (t) {\n return n.Tl.add(t.toString());\n });\n var r = this.persistence.Tc();\n return r.Fa(t, e.targetId).next(function (t) {\n t.forEach(function (t) {\n return n.Tl.add(t.toString());\n });\n }).next(function () {\n return r.Va(t, e);\n });\n }, t.prototype.ll = function () {\n this.wl = new Set();\n }, t.prototype._l = function (t) {\n var e = this,\n n = this.persistence.Ec().ra(); // Remove newly orphaned documents.\n\n return yr.forEach(this.Tl, function (r) {\n var i = A.D(r);\n return e.El(t, i).next(function (t) {\n t || n.Ar(i);\n });\n }).next(function () {\n return e.wl = null, n.apply(t);\n });\n }, t.prototype.yc = function (t, e) {\n var n = this;\n return this.El(t, e).next(function (t) {\n t ? n.Tl.delete(e.toString()) : n.Tl.add(e.toString());\n });\n }, t.prototype.hl = function (t) {\n // For eager GC, we don't care about the document size, there are no size thresholds.\n return 0;\n }, t.prototype.El = function (t, e) {\n var n = this;\n return yr.kn([function () {\n return yr.resolve(n.dl.Ho(e));\n }, function () {\n return n.persistence.Tc().Ho(t, e);\n }, function () {\n return n.persistence.fl(t, e);\n }]);\n }, t;\n}(),\n nu =\n/** @class */\nfunction () {\n function t(t) {\n this.Il = t.Il, this.Al = t.Al;\n }\n\n return t.prototype.gu = function (t) {\n this.Rl = t;\n }, t.prototype.Tu = function (t) {\n this.gl = t;\n }, t.prototype.onMessage = function (t) {\n this.Pl = t;\n }, t.prototype.close = function () {\n this.Al();\n }, t.prototype.send = function (t) {\n this.Il(t);\n }, t.prototype.yl = function () {\n this.Rl();\n }, t.prototype.Vl = function (t) {\n this.gl(t);\n }, t.prototype.pl = function (t) {\n this.Pl(t);\n }, t;\n}(),\n ru = {\n BatchGetDocuments: \"batchGet\",\n Commit: \"commit\",\n RunQuery: \"runQuery\"\n},\n iu =\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this, t) || this).forceLongPolling = t.forceLongPolling, n.W = t.W, n;\n }\n /**\n * Base class for all Rest-based connections to the backend (WebChannel and\n * HTTP).\n */\n\n\n return t.__extends(n, e), n.prototype.Nl = function (t, e, n, r) {\n return new Promise(function (o, s) {\n var u = new i.XhrIo();\n u.listenOnce(i.EventType.COMPLETE, function () {\n try {\n switch (u.getLastErrorCode()) {\n case i.ErrorCode.NO_ERROR:\n var e = u.getResponseJson();\n l(\"Connection\", \"XHR received:\", JSON.stringify(e)), o(e);\n break;\n\n case i.ErrorCode.TIMEOUT:\n l(\"Connection\", 'RPC \"' + t + '\" timed out'), s(new c(a.DEADLINE_EXCEEDED, \"Request time out\"));\n break;\n\n case i.ErrorCode.HTTP_ERROR:\n var n = u.getStatus();\n\n if (l(\"Connection\", 'RPC \"' + t + '\" failed with status:', n, \"response text:\", u.getResponseText()), n > 0) {\n var r = u.getResponseJson().error;\n\n if (r && r.status && r.message) {\n var h = function (t) {\n var e = t.toLowerCase().replace(\"_\", \"-\");\n return Object.values(a).indexOf(e) >= 0 ? e : a.UNKNOWN;\n }(r.status);\n\n s(new c(h, r.message));\n } else s(new c(a.UNKNOWN, \"Server responded with status \" + u.getStatus()));\n } else // If we received an HTTP_ERROR but there's no status code,\n // it's most probably a connection issue\n s(new c(a.UNAVAILABLE, \"Connection failed.\"));\n\n break;\n\n default:\n y();\n }\n } finally {\n l(\"Connection\", 'RPC \"' + t + '\" completed.');\n }\n });\n var h = JSON.stringify(r);\n u.send(e, \"POST\", h, n, 15);\n });\n }, n.prototype.Pu = function (t, e) {\n var n = [this.vl, \"/\", \"google.firestore.v1.Firestore\", \"/\", t, \"/channel\"],\n o = i.createWebChannelTransport(),\n s = {\n // Required for backend stickiness, routing behavior is based on this\n // parameter.\n httpSessionIdParam: \"gsessionid\",\n initMessageHeaders: {},\n messageUrlParams: {\n // This param is used to improve routing and project isolation by the\n // backend and must be included in every request.\n database: \"projects/\" + this.U.projectId + \"/databases/\" + this.U.database\n },\n sendRawJson: !0,\n supportsCrossDomainXhr: !0,\n internalChannelParams: {\n // Override the default timeout (randomized between 10-20 seconds) since\n // a large write batch on a slow internet connection may take a long\n // time to send to the backend. Rather than have WebChannel impose a\n // tight timeout which could lead to infinite timeouts and retries, we\n // set it very large (5-10 minutes) and rely on the browser's builtin\n // timeouts to kick in if the request isn't working.\n forwardChannelRequestTimeoutMs: 6e5\n },\n forceLongPolling: this.forceLongPolling,\n detectBufferingProxy: this.W\n };\n this.Cl(s.initMessageHeaders, e), // Sending the custom headers we just added to request.initMessageHeaders\n // (Authorization, etc.) will trigger the browser to make a CORS preflight\n // request because the XHR will no longer meet the criteria for a \"simple\"\n // CORS request:\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests\n // Therefore to avoid the CORS preflight request (an extra network\n // roundtrip), we use the httpHeadersOverwriteParam option to specify that\n // the headers should instead be encoded into a special \"$httpHeaders\" query\n // parameter, which is recognized by the webchannel backend. This is\n // formally defined here:\n // https://github.com/google/closure-library/blob/b0e1815b13fb92a46d7c9b3c30de5d6a396a3245/closure/goog/net/rpc/httpcors.js#L32\n // TODO(b/145624756): There is a backend bug where $httpHeaders isn't respected if the request\n // doesn't have an Origin header. So we have to exclude a few browser environments that are\n // known to (sometimes) not include an Origin. See\n // https://github.com/firebase/firebase-js-sdk/issues/1491.\n r.isMobileCordova() || r.isReactNative() || r.isElectron() || r.isIE() || r.isUWP() || r.isBrowserExtension() || (s.httpHeadersOverwriteParam = \"$httpHeaders\");\n var u = n.join(\"\");\n l(\"Connection\", \"Creating WebChannel: \" + u, s);\n\n var h = o.createWebChannel(u, s),\n f = !1,\n p = !1,\n v = new nu({\n Il: function Il(t) {\n p ? l(\"Connection\", \"Not sending because WebChannel is closed:\", t) : (f || (l(\"Connection\", \"Opening WebChannel transport.\"), h.open(), f = !0), l(\"Connection\", \"WebChannel sending:\", t), h.send(t));\n },\n Al: function Al() {\n return h.close();\n }\n }),\n y = function y(t, e) {\n // TODO(dimond): closure typing seems broken because WebChannel does\n // not implement goog.events.Listenable\n h.listen(t, function (t) {\n try {\n e(t);\n } catch (t) {\n setTimeout(function () {\n throw t;\n }, 0);\n }\n });\n }; // WebChannel supports sending the first message with the handshake - saving\n // a network round trip. However, it will have to call send in the same\n // JS event loop as open. In order to enforce this, we delay actually\n // opening the WebChannel until send is called. Whether we have called\n // open is tracked with this variable.\n // Closure events are guarded and exceptions are swallowed, so catch any\n // exception and rethrow using a setTimeout so they become visible again.\n // Note that eventually this function could go away if we are confident\n // enough the code is exception free.\n\n\n return y(i.WebChannel.EventType.OPEN, function () {\n p || l(\"Connection\", \"WebChannel transport opened.\");\n }), y(i.WebChannel.EventType.CLOSE, function () {\n p || (p = !0, l(\"Connection\", \"WebChannel transport closed\"), v.Vl());\n }), y(i.WebChannel.EventType.ERROR, function (t) {\n p || (p = !0, d(\"Connection\", \"WebChannel transport errored:\", t), v.Vl(new c(a.UNAVAILABLE, \"The operation could not be completed\")));\n }), y(i.WebChannel.EventType.MESSAGE, function (t) {\n var e;\n\n if (!p) {\n var n = t.data[0];\n g(!!n); // TODO(b/35143891): There is a bug in One Platform that caused errors\n // (and only errors) to be wrapped in an extra array. To be forward\n // compatible with the bug we need to check either condition. The latter\n // can be removed once the fix has been rolled out.\n // Use any because msgData.error is not typed.\n\n var r = n,\n i = r.error || (null === (e = r[0]) || void 0 === e ? void 0 : e.error);\n\n if (i) {\n l(\"Connection\", \"WebChannel received error:\", i); // error.status will be a string like 'OK' or 'NOT_FOUND'.\n\n var o = i.status,\n s = function (t) {\n // lookup by string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var e = vt[t];\n if (void 0 !== e) return _t(e);\n }(o),\n u = i.message;\n\n void 0 === s && (s = a.INTERNAL, u = \"Unknown error status: \" + o + \" with message \" + i.message), // Mark closed so no further events are propagated\n p = !0, v.Vl(new c(s, u)), h.close();\n } else l(\"Connection\", \"WebChannel received:\", n), v.pl(n);\n }\n }), setTimeout(function () {\n // Technically we could/should wait for the WebChannel opened event,\n // but because we want to send the first message with the WebChannel\n // handshake we pretend the channel opened here (asynchronously), and\n // then delay the actual open until the first message is sent.\n v.yl();\n }, 0), v;\n }, n;\n}(\n/** @class */\nfunction () {\n function t(t) {\n this.bl = t, this.U = t.U;\n var e = t.ssl ? \"https\" : \"http\";\n this.vl = e + \"://\" + t.host, this.Sl = \"projects/\" + this.U.projectId + \"/databases/\" + this.U.database + \"/documents\";\n }\n\n return t.prototype.$u = function (t, e, n, r) {\n var i = this.Dl(t, e);\n l(\"RestConnection\", \"Sending: \", i, n);\n var o = {};\n return this.Cl(o, r), this.Nl(t, i, o, n).then(function (t) {\n return l(\"RestConnection\", \"Received: \", t), t;\n }, function (e) {\n throw d(\"RestConnection\", t + \" failed with error: \", e, \"url: \", i, \"request:\", n), e;\n });\n }, t.prototype.ku = function (t, e, n, r) {\n // The REST API automatically aggregates all of the streamed results, so we\n // can just use the normal invoke() method.\n return this.$u(t, e, n, r);\n },\n /**\n * Modifies the headers for a request, adding any authorization token if\n * present and any additional headers for the request.\n */\n t.prototype.Cl = function (t, e) {\n if (t[\"X-Goog-Api-Client\"] = \"gl-js/ fire/7.24.0\", // Content-Type: text/plain will avoid preflight requests which might\n // mess with CORS and redirects by proxies. If we add custom headers\n // we will need to change this code to potentially use the $httpOverwrite\n // parameter supported by ESF to avoid triggering preflight requests.\n t[\"Content-Type\"] = \"text/plain\", e) for (var n in e.Kc) {\n e.Kc.hasOwnProperty(n) && (t[n] = e.Kc[n]);\n }\n }, t.prototype.Dl = function (t, e) {\n var n = ru[t];\n return this.vl + \"/v1/\" + e + \":\" + n;\n }, t;\n}()),\n ou =\n/** @class */\nfunction () {\n function t() {\n var t = this;\n this.Fl = function () {\n return t.xl();\n }, this.$l = function () {\n return t.kl();\n }, this.Ml = [], this.Ol();\n }\n\n return t.prototype.Zu = function (t) {\n this.Ml.push(t);\n }, t.prototype.Di = function () {\n window.removeEventListener(\"online\", this.Fl), window.removeEventListener(\"offline\", this.$l);\n }, t.prototype.Ol = function () {\n window.addEventListener(\"online\", this.Fl), window.addEventListener(\"offline\", this.$l);\n }, t.prototype.xl = function () {\n l(\"ConnectivityMonitor\", \"Network connectivity changed: AVAILABLE\");\n\n for (var t = 0, e = this.Ml; t < e.length; t++) {\n (0, e[t])(0\n /* AVAILABLE */\n );\n }\n }, t.prototype.kl = function () {\n l(\"ConnectivityMonitor\", \"Network connectivity changed: UNAVAILABLE\");\n\n for (var t = 0, e = this.Ml; t < e.length; t++) {\n (0, e[t])(1\n /* UNAVAILABLE */\n );\n }\n }, // TODO(chenbrian): Consider passing in window either into this component or\n // here for testing via FakeWindow.\n\n /** Checks that all used attributes of window are available. */\n t.Ln = function () {\n return \"undefined\" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener;\n }, t;\n}(),\n su =\n/** @class */\nfunction () {\n function t() {}\n\n return t.prototype.Zu = function (t) {// No-op.\n }, t.prototype.Di = function () {// No-op.\n }, t;\n}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Initializes the WebChannelConnection for the browser. */\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nfunction uu(t) {\n return new ye(t,\n /* useProto3Json= */\n !0);\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar au = \"You are using the memory-only build of Firestore. Persistence support is only available via the @firebase/firestore bundle or the firebase-firestore.js build.\",\n cu =\n/** @class */\nfunction () {\n function e() {}\n\n return e.prototype.initialize = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.Sh = this.Ll(e), this.persistence = this.Bl(e), [4\n /*yield*/\n , this.persistence.start()];\n\n case 1:\n return t.sent(), this.ql = this.Ul(e), this.ju = this.Ql(e), [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.Ul = function (t) {\n return null;\n }, e.prototype.Ql = function (t) {\n /** Manages our in-memory or durable persistence. */\n return e = this.persistence, n = new Hs(), r = t.Wl, new go(e, n, r);\n var e, n, r;\n }, e.prototype.Bl = function (t) {\n if (t.persistenceSettings.jl) throw new c(a.FAILED_PRECONDITION, au);\n return new Zs(eu.ml);\n }, e.prototype.Ll = function (t) {\n return new $r();\n }, e.prototype.terminate = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.ql && this.ql.stop(), [4\n /*yield*/\n , this.Sh.Di()];\n\n case 1:\n return t.sent(), [4\n /*yield*/\n , this.persistence.Di()];\n\n case 2:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.clearPersistence = function (t, e) {\n throw new c(a.FAILED_PRECONDITION, au);\n }, e;\n}(),\n hu =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.initialize = function (n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r,\n i = this;\n return t.__generator(this, function (o) {\n switch (o.label) {\n case 0:\n return [4\n /*yield*/\n , e.prototype.initialize.call(this, n)];\n\n case 1:\n return o.sent(), r = this.Kl.fi, this.Sh instanceof Yr ? (this.Sh.fi = {\n er: Ms.bind(null, r),\n nr: Bs.bind(null, r),\n sr: Ws.bind(null, r),\n pi: zs.bind(null, r)\n }, [4\n /*yield*/\n , this.Sh.start()]) : [3\n /*break*/\n , 3];\n\n case 2:\n o.sent(), o.label = 3;\n\n case 3:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return [4\n /*yield*/\n , this.persistence.Xa(function (e) {\n return t.__awaiter(i, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , qs(this.Kl.fi, e)];\n\n case 1:\n return t.sent(), this.ql && (e && !this.ql.Ei ? this.ql.start(this.ju) : e || this.ql.stop()), [2\n /*return*/\n ];\n }\n });\n });\n })];\n\n case 4:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return o.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }, n.prototype.Ll = function (t) {\n if (t.persistenceSettings.jl && t.persistenceSettings.synchronizeTabs) {\n var e = Ar();\n if (!Yr.Ln(e)) throw new c(a.UNIMPLEMENTED, \"IndexedDB persistence is only available on platforms that support LocalStorage.\");\n var n = yo(t.bl.U, t.bl.persistenceKey);\n return new Yr(e, t.cs, n, t.clientId, t.Wl);\n }\n\n return new $r();\n }, n;\n}(\n/** @class */\nfunction (e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).Kl = t, n;\n }\n\n return t.__extends(n, e), n.prototype.initialize = function (n) {\n return t.__awaiter(this, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , e.prototype.initialize.call(this, n)];\n\n case 1:\n return t.sent(), [4\n /*yield*/\n , So(this.ju)];\n\n case 2:\n return t.sent(), [4\n /*yield*/\n , this.Kl.initialize(this, n)];\n\n case 3:\n // Enqueue writes from a previous session\n return t.sent(), [4\n /*yield*/\n , Qs(this.Kl.fi)];\n\n case 4:\n // Enqueue writes from a previous session\n return t.sent(), [4\n /*yield*/\n , is(this.Kl.ph)];\n\n case 5:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }, n.prototype.Ul = function (t) {\n var e = this.persistence.No.wo;\n return new ai(e, t.cs);\n }, n.prototype.Bl = function (t) {\n var e = yo(t.bl.U, t.bl.persistenceKey),\n n = uu(t.bl.U);\n return new ho(t.persistenceSettings.synchronizeTabs, e, t.clientId, ui.ao(t.persistenceSettings.cacheSizeBytes), t.cs, Ar(), Sr(), n, this.Sh, t.persistenceSettings.ka);\n }, n.prototype.Ll = function (t) {\n return new $r();\n }, n.prototype.clearPersistence = function (e, n) {\n return function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return gr.Ln() ? (n = e + \"main\", [4\n /*yield*/\n , gr.delete(n)]) : [2\n /*return*/\n , Promise.resolve()];\n\n case 1:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }(yo(e, n));\n }, n;\n}(cu)),\n fu =\n/** @class */\nfunction () {\n function e() {}\n\n return e.prototype.initialize = function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.ju ? [3\n /*break*/\n , 2] : (this.ju = e.ju, this.Sh = e.Sh, this.Ku = this.Gl(n), this.ph = this.zl(n), this.bh = this.Hl(n), this.fi = this.Yl(n), this.Sh.di = function (t) {\n return Ts(r.fi, t, 1\n /* SharedClientState */\n );\n }, this.ph.Gu.Jl = Us.bind(null, this.fi), [4\n /*yield*/\n , fs(this.ph, this.fi.Uh)]);\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.Hl = function (t) {\n return new Rr();\n }, e.prototype.Gl = function (t) {\n var e,\n n = uu(t.bl.U),\n r = (e = t.bl, new iu(e));\n /** Return the Platform-specific connectivity monitor. */\n\n return function (t, e, n) {\n return new Mo(t, e, n);\n }(t.credentials, r, n);\n }, e.prototype.zl = function (t) {\n var e,\n n,\n r,\n i,\n o,\n s = this;\n return e = this.ju, n = this.Ku, r = t.cs, i = function i(t) {\n return Ts(s.fi, t, 0\n /* RemoteStore */\n );\n }, o = ou.Ln() ? new ou() : new su(), new jo(e, n, r, i, o);\n }, e.prototype.Yl = function (t) {\n return function (t, e, n, // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o, s) {\n var u = new ws(t, e, n, r, i, o);\n return s && (u.qh = !0), u;\n }(this.ju, this.ph, this.bh, this.Sh, t.Wl, t.Dh, !t.persistenceSettings.jl || !t.persistenceSettings.synchronizeTabs);\n }, e.prototype.terminate = function () {\n return Bo(this.ph);\n }, e;\n}(),\n lu =\n/** @class */\nfunction () {\n function t(t) {\n this.observer = t,\n /**\n * When set to true, will not raise future events. Necessary to deal with\n * async detachment of listener.\n */\n this.muted = !1;\n }\n\n return t.prototype.next = function (t) {\n this.observer.next && this.Xl(this.observer.next, t);\n }, t.prototype.error = function (t) {\n this.observer.error ? this.Xl(this.observer.error, t) : console.error(\"Uncaught Error in snapshot listener:\", t);\n }, t.prototype.Zl = function () {\n this.muted = !0;\n }, t.prototype.Xl = function (t, e) {\n var n = this;\n this.muted || setTimeout(function () {\n n.muted || t(e);\n }, 0);\n }, t;\n}(),\n pu = function pu(t) {\n !function (t, e, n, r) {\n if (!(e instanceof Array) || e.length < 1) throw new c(a.INVALID_ARGUMENT, \"Function FieldPath() requires its fieldNames argument to be an array with at least \" + W(1, \"element\") + \".\");\n }(0, t);\n\n for (var e = 0; e < t.length; ++e) {\n if (k(\"FieldPath\", \"string\", e, t[e]), 0 === t[e].length) throw new c(a.INVALID_ARGUMENT, \"Invalid field name at argument $(i + 1). Field names must not be empty.\");\n }\n\n this.t_ = new N(t);\n},\n du =\n/** @class */\nfunction (e) {\n /**\n * Creates a FieldPath from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames A list of field names.\n */\n function n() {\n for (var t = [], n = 0; n < arguments.length; n++) {\n t[n] = arguments[n];\n }\n\n return e.call(this, t) || this;\n }\n\n return t.__extends(n, e), n.documentId = function () {\n /**\n * Internal Note: The backend doesn't technically support querying by\n * document ID. Instead it queries by the entire document name (full path\n * included), but in the cases we currently support documentId(), the net\n * effect is the same.\n */\n return new n(N.v().R());\n }, n.prototype.isEqual = function (t) {\n if (!(t instanceof n)) throw G(\"isEqual\", \"FieldPath\", 1, t);\n return this.t_.isEqual(t.t_);\n }, n;\n}(pu),\n vu = new RegExp(\"[~\\\\*/\\\\[\\\\]]\"),\n yu =\n/**\n * @param _methodName The public API endpoint that returns this class.\n */\nfunction yu(t) {\n this.e_ = t;\n},\n gu =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.n_ = function (t) {\n if (2\n /* MergeSet */\n !== t.s_) throw 1\n /* Update */\n === t.s_ ? t.i_(this.e_ + \"() can only appear at the top level of your update data\") : t.i_(this.e_ + \"() cannot be used with set() unless you pass {merge:true}\"); // No transform to add for a delete, but we need to add it to our\n // fieldMask so it gets deleted.\n\n return t.We.push(t.path), null;\n }, n.prototype.isEqual = function (t) {\n return t instanceof n;\n }, n;\n}(yu);\n/**\n * Provides all components needed for Firestore with in-memory persistence.\n * Uses EagerGC garbage collection.\n */\n\n/**\n * Creates a child context for parsing SerializableFieldValues.\n *\n * This is different than calling `ParseContext.contextWith` because it keeps\n * the fieldTransforms and fieldMask separate.\n *\n * The created context has its `dataSource` set to `UserDataSource.Argument`.\n * Although these values are used with writes, any elements in these FieldValues\n * are not considered writes since they cannot contain any FieldValue sentinels,\n * etc.\n *\n * @param fieldValue The sentinel FieldValue for which to create a child\n * context.\n * @param context The parent context.\n * @param arrayElement Whether or not the FieldValue has an array.\n */\n\n\nfunction mu(t, e, n) {\n return new Lu({\n s_: 3\n /* Argument */\n ,\n r_: e.settings.r_,\n methodName: t.e_,\n o_: n\n }, e.U, e.serializer, e.ignoreUndefinedProperties);\n}\n\nvar wu =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.n_ = function (t) {\n return new cn(t.path, new Ze());\n }, n.prototype.isEqual = function (t) {\n return t instanceof n;\n }, n;\n}(yu),\n _u =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).a_ = n, r;\n }\n\n return t.__extends(n, e), n.prototype.n_ = function (t) {\n var e = mu(this, t,\n /*array=*/\n !0),\n n = this.a_.map(function (t) {\n return Uu(t, e);\n }),\n r = new tn(n);\n return new cn(t.path, r);\n }, n.prototype.isEqual = function (t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(yu),\n bu =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).a_ = n, r;\n }\n\n return t.__extends(n, e), n.prototype.n_ = function (t) {\n var e = mu(this, t,\n /*array=*/\n !0),\n n = this.a_.map(function (t) {\n return Uu(t, e);\n }),\n r = new nn(n);\n return new cn(t.path, r);\n }, n.prototype.isEqual = function (t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(yu),\n Iu =\n/** @class */\nfunction (e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).c_ = n, r;\n }\n\n return t.__extends(n, e), n.prototype.n_ = function (t) {\n var e = new on(t.serializer, we(t.serializer, this.c_));\n return new cn(t.path, e);\n }, n.prototype.isEqual = function (t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(yu),\n Eu =\n/** @class */\nfunction () {\n /**\n * Creates a new immutable `GeoPoint` object with the provided latitude and\n * longitude values.\n * @param latitude The latitude as number between -90 and 90.\n * @param longitude The longitude as number between -180 and 180.\n */\n function t(t, e) {\n if (D(\"GeoPoint\", arguments, 2), k(\"GeoPoint\", \"number\", 1, t), k(\"GeoPoint\", \"number\", 2, e), !isFinite(t) || t < -90 || t > 90) throw new c(a.INVALID_ARGUMENT, \"Latitude must be a number between -90 and 90, but was: \" + t);\n if (!isFinite(e) || e < -180 || e > 180) throw new c(a.INVALID_ARGUMENT, \"Longitude must be a number between -180 and 180, but was: \" + e);\n this.u_ = t, this.h_ = e;\n }\n\n return Object.defineProperty(t.prototype, \"latitude\", {\n /**\n * The latitude of this `GeoPoint` instance.\n */\n get: function get() {\n return this.u_;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"longitude\", {\n /**\n * The longitude of this `GeoPoint` instance.\n */\n get: function get() {\n return this.h_;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Returns true if this `GeoPoint` is equal to the provided one.\n *\n * @param other The `GeoPoint` to compare against.\n * @return true if this `GeoPoint` is equal to the provided one.\n */\n t.prototype.isEqual = function (t) {\n return this.u_ === t.u_ && this.h_ === t.h_;\n }, t.prototype.toJSON = function () {\n return {\n latitude: this.u_,\n longitude: this.h_\n };\n },\n /**\n * Actually private to JS consumers of our API, so this function is prefixed\n * with an underscore.\n */\n t.prototype.Y = function (t) {\n return H(this.u_, t.u_) || H(this.h_, t.h_);\n }, t;\n}(),\n Tu = function Tu(t) {\n this.l_ = t;\n},\n Nu = /^__.*__$/,\n Au = function Au(t, e, n) {\n this.__ = t, this.f_ = e, this.d_ = n;\n},\n Su =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.data = t, this.We = e, this.fieldTransforms = n;\n }\n\n return t.prototype.w_ = function (t, e) {\n var n = [];\n return null !== this.We ? n.push(new _n(t, this.data, this.We, e)) : n.push(new wn(t, this.data, e)), this.fieldTransforms.length > 0 && n.push(new In(t, this.fieldTransforms)), n;\n }, t;\n}(),\n Du =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.data = t, this.We = e, this.fieldTransforms = n;\n }\n\n return t.prototype.w_ = function (t, e) {\n var n = [new _n(t, this.data, this.We, e)];\n return this.fieldTransforms.length > 0 && n.push(new In(t, this.fieldTransforms)), n;\n }, t;\n}();\n\nfunction xu(t) {\n switch (t) {\n case 0\n /* Set */\n : // fall through\n\n case 2\n /* MergeSet */\n : // fall through\n\n case 1\n /* Update */\n :\n return !0;\n\n case 3\n /* Argument */\n :\n case 4\n /* ArrayArgument */\n :\n return !1;\n\n default:\n throw y();\n }\n}\n/** A \"context\" object passed around while parsing user data. */\n\n\nvar Lu =\n/** @class */\nfunction () {\n /**\n * Initializes a ParseContext with the given source and path.\n *\n * @param settings The settings for the parser.\n * @param databaseId The database ID of the Firestore instance.\n * @param serializer The serializer to use to generate the Value proto.\n * @param ignoreUndefinedProperties Whether to ignore undefined properties\n * rather than throw.\n * @param fieldTransforms A mutable list of field transforms encountered while\n * parsing the data.\n * @param fieldMask A mutable list of field paths encountered while parsing\n * the data.\n *\n * TODO(b/34871131): We don't support array paths right now, so path can be\n * null to indicate the context represents any location within an array (in\n * which case certain features will not work and errors will be somewhat\n * compromised).\n */\n function t(t, e, n, r, i, o) {\n this.settings = t, this.U = e, this.serializer = n, this.ignoreUndefinedProperties = r, // Minor hack: If fieldTransforms is undefined, we assume this is an\n // external call and we need to validate the entire path.\n void 0 === i && this.m_(), this.fieldTransforms = i || [], this.We = o || [];\n }\n\n return Object.defineProperty(t.prototype, \"path\", {\n get: function get() {\n return this.settings.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"s_\", {\n get: function get() {\n return this.settings.s_;\n },\n enumerable: !1,\n configurable: !0\n }),\n /** Returns a new context with the specified settings overwritten. */\n t.prototype.T_ = function (e) {\n return new t(Object.assign(Object.assign({}, this.settings), e), this.U, this.serializer, this.ignoreUndefinedProperties, this.fieldTransforms, this.We);\n }, t.prototype.E_ = function (t) {\n var e,\n n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t),\n r = this.T_({\n path: n,\n o_: !1\n });\n return r.I_(t), r;\n }, t.prototype.A_ = function (t) {\n var e,\n n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t),\n r = this.T_({\n path: n,\n o_: !1\n });\n return r.m_(), r;\n }, t.prototype.R_ = function (t) {\n // TODO(b/34871131): We don't support array paths right now; so make path\n // undefined.\n return this.T_({\n path: void 0,\n o_: !0\n });\n }, t.prototype.i_ = function (t) {\n return Gu(t, this.settings.methodName, this.settings.g_ || !1, this.path, this.settings.r_);\n },\n /** Returns 'true' if 'fieldPath' was traversed when creating this context. */\n t.prototype.contains = function (t) {\n return void 0 !== this.We.find(function (e) {\n return t.T(e);\n }) || void 0 !== this.fieldTransforms.find(function (e) {\n return t.T(e.field);\n });\n }, t.prototype.m_ = function () {\n // TODO(b/34871131): Remove null check once we have proper paths for fields\n // within arrays.\n if (this.path) for (var t = 0; t < this.path.length; t++) {\n this.I_(this.path.get(t));\n }\n }, t.prototype.I_ = function (t) {\n if (0 === t.length) throw this.i_(\"Document fields must not be empty\");\n if (xu(this.s_) && Nu.test(t)) throw this.i_('Document fields cannot begin and end with \"__\"');\n }, t;\n}(),\n ku =\n/** @class */\nfunction () {\n function t(t, e, n) {\n this.U = t, this.ignoreUndefinedProperties = e, this.serializer = n || uu(t)\n /** Creates a new top-level parse context. */\n ;\n }\n\n return t.prototype.P_ = function (t, e, n, r) {\n return void 0 === r && (r = !1), new Lu({\n s_: t,\n methodName: e,\n r_: n,\n path: N.P(),\n o_: !1,\n g_: r\n }, this.U, this.serializer, this.ignoreUndefinedProperties);\n }, t;\n}();\n/**\n * Helper for parsing raw user input (provided via the API) into internal model\n * classes.\n */\n\n/** Parse document data from a set() call. */\n\n\nfunction Ru(t, e, n, r, i, o) {\n void 0 === o && (o = {});\n var s = t.P_(o.merge || o.mergeFields ? 2\n /* MergeSet */\n : 0\n /* Set */\n , e, n, i);\n Mu(\"Data must be an object, but it was:\", s, r);\n var u,\n h,\n f = Cu(r, s);\n if (o.merge) u = new an(s.We), h = s.fieldTransforms;else if (o.mergeFields) {\n for (var l = [], p = 0, d = o.mergeFields; p < d.length; p++) {\n var v = d[p],\n g = void 0;\n if (v instanceof pu) g = v.t_;else {\n if (\"string\" != typeof v) throw y();\n g = ju(e, v, n);\n }\n if (!s.contains(g)) throw new c(a.INVALID_ARGUMENT, \"Field '\" + g + \"' is specified in your field mask but missing from your input data.\");\n zu(l, g) || l.push(g);\n }\n\n u = new an(l), h = s.fieldTransforms.filter(function (t) {\n return u.Ye(t.field);\n });\n } else u = null, h = s.fieldTransforms;\n return new Su(new Sn(f), u, h);\n}\n/** Parse update data from an update() call. */\n\n\nfunction Ou(t, e, n, r) {\n var i = t.P_(1\n /* Update */\n , e, n);\n Mu(\"Data must be an object, but it was:\", i, r);\n var o = [],\n s = new Dn();\n\n _(r, function (t, r) {\n var u = ju(e, t, n),\n a = i.A_(u);\n if (r instanceof gu || r instanceof Tu && r.l_ instanceof gu) // Add it to the field mask, but don't add anything to updateData.\n o.push(u);else {\n var c = Uu(r, a);\n null != c && (o.push(u), s.set(u, c));\n }\n });\n\n var u = new an(o);\n return new Du(s.Xe(), u, i.fieldTransforms);\n}\n/** Parse update data from a list of field/value arguments. */\n\n\nfunction Pu(t, e, n, r, i, o) {\n var s = t.P_(1\n /* Update */\n , e, n),\n u = [qu(e, r, n)],\n h = [i];\n if (o.length % 2 != 0) throw new c(a.INVALID_ARGUMENT, \"Function \" + e + \"() needs to be called with an even number of arguments that alternate between field names and values.\");\n\n for (var f = 0; f < o.length; f += 2) {\n u.push(qu(e, o[f])), h.push(o[f + 1]);\n } // We iterate in reverse order to pick the last value for a field if the\n // user specified the field multiple times.\n\n\n for (var l = [], p = new Dn(), d = u.length - 1; d >= 0; --d) {\n if (!zu(l, u[d])) {\n var v = u[d],\n y = h[d],\n g = s.A_(v);\n if (y instanceof gu || y instanceof Tu && y.l_ instanceof gu) // Add it to the field mask, but don't add anything to updateData.\n l.push(v);else {\n var m = Uu(y, g);\n null != m && (l.push(v), p.set(v, m));\n }\n }\n }\n\n var w = new an(l);\n return new Du(p.Xe(), w, s.fieldTransforms);\n}\n/**\n * Parse a \"query value\" (e.g. value in a where filter or a value in a cursor\n * bound).\n *\n * @param allowArrays Whether the query value is an array that may directly\n * contain additional arrays (e.g. the operand of an `in` query).\n */\n\n\nfunction Vu(t, e, n, r) {\n return void 0 === r && (r = !1), Uu(n, t.P_(r ? 4\n /* ArrayArgument */\n : 3\n /* Argument */\n , e));\n}\n/**\n * Parses user data to Protobuf Values.\n *\n * @param input Data to be parsed.\n * @param context A context object representing the current path being parsed,\n * the source of the data being parsed, etc.\n * @return The parsed value, or null if the value was a FieldValue sentinel\n * that should not be included in the resulting parsed data.\n */\n\n\nfunction Uu(t, e) {\n if ( // Unwrap the API type from the Compat SDK. This will return the API type\n // from firestore-exp.\n t instanceof Tu && (t = t.l_), Fu(t)) return Mu(\"Unsupported field value:\", e, t), Cu(t, e);\n if (t instanceof yu) // FieldValues usually parse into transforms (except FieldValue.delete())\n // in which case we do not want to include this field in our parsed data\n // (as doing so will overwrite the field directly prior to the transform\n // trying to transform it). So we don't add this location to\n // context.fieldMask and we return null as our parsing result.\n\n /**\n * \"Parses\" the provided FieldValueImpl, adding any necessary transforms to\n * context.fieldTransforms.\n */\n return function (t, e) {\n // Sentinels are only supported with writes, and not within arrays.\n if (!xu(e.s_)) throw e.i_(t.e_ + \"() can only be used with update() and set()\");\n if (!e.path) throw e.i_(t.e_ + \"() is not currently supported inside arrays\");\n var n = t.n_(e);\n n && e.fieldTransforms.push(n);\n }(t, e), null;\n\n if ( // If context.path is null we are inside an array and we don't support\n // field mask paths more granular than the top-level array.\n e.path && e.We.push(e.path), t instanceof Array) {\n // TODO(b/34871131): Include the path containing the array in the error\n // message.\n // In the case of IN queries, the parsed data is an array (representing\n // the set of values to be included for the IN query) that may directly\n // contain additional arrays (each representing an individual field\n // value), so we disable this validation.\n if (e.settings.o_ && 4\n /* ArrayArgument */\n !== e.s_) throw e.i_(\"Nested arrays are not supported\");\n return function (t, e) {\n for (var n = [], r = 0, i = 0, o = t; i < o.length; i++) {\n var s = Uu(o[i], e.R_(r));\n null == s && ( // Just include nulls in the array for fields being replaced with a\n // sentinel.\n s = {\n nullValue: \"NULL_VALUE\"\n }), n.push(s), r++;\n }\n\n return {\n arrayValue: {\n values: n\n }\n };\n }(t, e);\n }\n\n return function (t, e) {\n if (null === t) return {\n nullValue: \"NULL_VALUE\"\n };\n if (\"number\" == typeof t) return we(e.serializer, t);\n if (\"boolean\" == typeof t) return {\n booleanValue: t\n };\n if (\"string\" == typeof t) return {\n stringValue: t\n };\n\n if (t instanceof Date) {\n var n = ot.fromDate(t);\n return {\n timestampValue: _e(e.serializer, n)\n };\n }\n\n if (t instanceof ot) {\n // Firestore backend truncates precision down to microseconds. To ensure\n // offline mode works the same with regards to truncation, perform the\n // truncation immediately without waiting for the backend to do that.\n var r = new ot(t.seconds, 1e3 * Math.floor(t.nanoseconds / 1e3));\n return {\n timestampValue: _e(e.serializer, r)\n };\n }\n\n if (t instanceof Eu) return {\n geoPointValue: {\n latitude: t.latitude,\n longitude: t.longitude\n }\n };\n if (t instanceof J) return {\n bytesValue: be(e.serializer, t.q)\n };\n\n if (t instanceof Au) {\n var i = e.U,\n o = t.__;\n if (!o.isEqual(i)) throw e.i_(\"Document reference is for database \" + o.projectId + \"/\" + o.database + \" but should be for database \" + i.projectId + \"/\" + i.database);\n return {\n referenceValue: Te(t.__ || e.U, t.f_.path)\n };\n }\n\n if (void 0 === t && e.ignoreUndefinedProperties) return null;\n throw e.i_(\"Unsupported field value: \" + M(t));\n }(t, e);\n}\n\nfunction Cu(t, e) {\n var n = {};\n return b(t) ? // If we encounter an empty object, we explicitly add it to the update\n // mask to ensure that the server creates a map entry.\n e.path && e.path.length > 0 && e.We.push(e.path) : _(t, function (t, r) {\n var i = Uu(r, e.E_(t));\n null != i && (n[t] = i);\n }), {\n mapValue: {\n fields: n\n }\n };\n}\n\nfunction Fu(t) {\n return !(\"object\" != typeof t || null === t || t instanceof Array || t instanceof Date || t instanceof ot || t instanceof Eu || t instanceof J || t instanceof Au || t instanceof yu);\n}\n\nfunction Mu(t, e, n) {\n if (!Fu(n) || !F(n)) {\n var r = M(n);\n throw \"an object\" === r ? e.i_(t + \" a custom object\") : e.i_(t + \" \" + r);\n }\n}\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */\n\n\nfunction qu(t, e, n) {\n if (e instanceof pu) return e.t_;\n if (\"string\" == typeof e) return ju(t, e);\n throw Gu(\"Field path arguments must be of type string or FieldPath.\", t,\n /* hasConverter= */\n !1,\n /* path= */\n void 0, n);\n}\n/**\n * Wraps fromDotSeparatedString with an error message about the method that\n * was thrown.\n * @param methodName The publicly visible method name\n * @param path The dot-separated string form of a field path which will be split\n * on dots.\n * @param targetDoc The document against which the field path will be evaluated.\n */\n\n\nfunction ju(e, n, r) {\n try {\n return function (e) {\n if (e.search(vu) >= 0) throw new c(a.INVALID_ARGUMENT, \"Invalid field path (\" + e + \"). Paths must not contain '~', '*', '/', '[', or ']'\");\n\n try {\n return new (du.bind.apply(du, t.__spreadArrays([void 0], e.split(\".\"))))();\n } catch (t) {\n throw new c(a.INVALID_ARGUMENT, \"Invalid field path (\" + e + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\");\n }\n }(n).t_;\n } catch (n) {\n throw Gu((i = n) instanceof Error ? i.message : i.toString(), e,\n /* hasConverter= */\n !1,\n /* path= */\n void 0, r);\n }\n /**\n * Extracts the message from a caught exception, which should be an Error object\n * though JS doesn't guarantee that.\n */\n\n\n var i;\n /** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */\n}\n\nfunction Gu(t, e, n, r, i) {\n var o = r && !r.m(),\n s = void 0 !== i,\n u = \"Function \" + e + \"() called with invalid data\";\n n && (u += \" (via `toFirestore()`)\");\n var h = \"\";\n return (o || s) && (h += \" (found\", o && (h += \" in field \" + r), s && (h += \" in document \" + i), h += \")\"), new c(a.INVALID_ARGUMENT, (u += \". \") + t + h);\n}\n\nfunction zu(t, e) {\n return t.some(function (t) {\n return t.isEqual(e);\n });\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Internal transaction object responsible for accumulating the mutations to\n * perform and the base versions for any documents read.\n */\n\n\nvar Bu =\n/** @class */\nfunction () {\n function e(t) {\n this.Ku = t, // The version of each document that was read during this transaction.\n this.y_ = new Map(), this.mutations = [], this.V_ = !1,\n /**\n * A deferred usage error that occurred previously in this transaction that\n * will cause the transaction to fail once it actually commits.\n */\n this.p_ = null,\n /**\n * Set of documents that have been written in the transaction.\n *\n * When there's more than one write to the same key in a transaction, any\n * writes after the first are handled differently.\n */\n this.b_ = new Set();\n }\n\n return e.prototype.v_ = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n,\n r = this;\n return t.__generator(this, function (i) {\n switch (i.label) {\n case 0:\n if (this.S_(), this.mutations.length > 0) throw new c(a.INVALID_ARGUMENT, \"Firestore transactions require all reads to be executed before all writes.\");\n return [4\n /*yield*/\n , function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u, a;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = m(e), i = Le(r.serializer) + \"/documents\", o = {\n documents: n.map(function (t) {\n return Ae(r.serializer, t);\n })\n }, [4\n /*yield*/\n , r.ku(\"BatchGetDocuments\", i, o)];\n\n case 1:\n return s = t.sent(), u = new Map(), s.forEach(function (t) {\n var e = function (t, e) {\n return \"found\" in e ? function (t, e) {\n g(!!e.found), e.found.name, e.found.updateTime;\n var n = Se(t, e.found.name),\n r = Ee(e.found.updateTime),\n i = new Sn({\n mapValue: {\n fields: e.found.fields\n }\n });\n return new kn(n, r, i, {});\n }(t, e) : \"missing\" in e ? function (t, e) {\n g(!!e.missing), g(!!e.readTime);\n var n = Se(t, e.missing),\n r = Ee(e.readTime);\n return new Rn(n, r);\n }(t, e) : y();\n }(r.serializer, t);\n\n u.set(e.key.toString(), e);\n }), a = [], [2\n /*return*/\n , (n.forEach(function (t) {\n var e = u.get(t.toString());\n g(!!e), a.push(e);\n }), a)];\n }\n });\n });\n }(this.Ku, e)];\n\n case 1:\n return [2\n /*return*/\n , ((n = i.sent()).forEach(function (t) {\n t instanceof Rn || t instanceof kn ? r.D_(t) : y();\n }), n)];\n }\n });\n });\n }, e.prototype.set = function (t, e) {\n this.write(e.w_(t, this.Ge(t))), this.b_.add(t.toString());\n }, e.prototype.update = function (t, e) {\n try {\n this.write(e.w_(t, this.C_(t)));\n } catch (t) {\n this.p_ = t;\n }\n\n this.b_.add(t.toString());\n }, e.prototype.delete = function (t) {\n this.write([new Nn(t, this.Ge(t))]), this.b_.add(t.toString());\n }, e.prototype.commit = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e,\n n = this;\n return t.__generator(this, function (r) {\n switch (r.label) {\n case 0:\n if (this.S_(), this.p_) throw this.p_;\n return e = this.y_, // For each mutation, note that the doc was written.\n this.mutations.forEach(function (t) {\n e.delete(t.key.toString());\n }), // For each document that was read but not written to, we want to perform\n // a `verify` operation.\n e.forEach(function (t, e) {\n var r = A.D(e);\n n.mutations.push(new An(r, n.Ge(r)));\n }), [4\n /*yield*/\n , function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return r = m(e), i = Le(r.serializer) + \"/documents\", o = {\n writes: n.map(function (t) {\n return Oe(r.serializer, t);\n })\n }, [4\n /*yield*/\n , r.$u(\"Commit\", i, o)];\n\n case 1:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }(this.Ku, this.mutations)];\n\n case 1:\n // For each mutation, note that the doc was written.\n return r.sent(), this.V_ = !0, [2\n /*return*/\n ];\n }\n });\n });\n }, e.prototype.D_ = function (t) {\n var e;\n if (t instanceof kn) e = t.version;else {\n if (!(t instanceof Rn)) throw y(); // For deleted docs, we must use baseVersion 0 when we overwrite them.\n\n e = st.min();\n }\n var n = this.y_.get(t.key.toString());\n\n if (n) {\n if (!e.isEqual(n)) // This transaction will fail no matter what.\n throw new c(a.ABORTED, \"Document version changed between two reads.\");\n } else this.y_.set(t.key.toString(), e);\n },\n /**\n * Returns the version of this document when it was read in this transaction,\n * as a precondition, or no precondition if it was not read.\n */\n e.prototype.Ge = function (t) {\n var e = this.y_.get(t.toString());\n return !this.b_.has(t.toString()) && e ? fn.updateTime(e) : fn.ze();\n },\n /**\n * Returns the precondition for a document if the operation is an update.\n */\n e.prototype.C_ = function (t) {\n var e = this.y_.get(t.toString()); // The first time a document is written, we want to take into account the\n // read time and existence\n\n if (!this.b_.has(t.toString()) && e) {\n if (e.isEqual(st.min())) // The document doesn't exist, so fail the transaction.\n // This has to be validated locally because you can't send a\n // precondition that a document does not exist without changing the\n // semantics of the backend write to be an insert. This is the reverse\n // of what we want, since we want to assert that the document doesn't\n // exist but then send the update and have it fail. Since we can't\n // express that to the backend, we have to validate locally.\n // Note: this can change once we can send separate verify writes in the\n // transaction.\n throw new c(a.INVALID_ARGUMENT, \"Can't update a document that doesn't exist.\"); // Document exists, base precondition on document update time.\n\n return fn.updateTime(e);\n } // Document was not read, so we just use the preconditions for a blind\n // update.\n\n\n return fn.exists(!0);\n }, e.prototype.write = function (t) {\n this.S_(), this.mutations = this.mutations.concat(t);\n }, e.prototype.S_ = function () {}, e;\n}(),\n Wu =\n/** @class */\nfunction () {\n function e(t, e, n, r) {\n this.cs = t, this.Ku = e, this.updateFunction = n, this.ls = r, this.N_ = 5, this.ys = new vr(this.cs, \"transaction_retry\"\n /* TransactionRetry */\n )\n /** Runs the transaction and sets the result on deferred. */\n ;\n }\n\n return e.prototype.run = function () {\n this.F_();\n }, e.prototype.F_ = function () {\n var e = this;\n this.ys.gn(function () {\n return t.__awaiter(e, void 0, void 0, function () {\n var e,\n n,\n r = this;\n return t.__generator(this, function (t) {\n return e = new Bu(this.Ku), (n = this.x_(e)) && n.then(function (t) {\n r.cs.ws(function () {\n return e.commit().then(function () {\n r.ls.resolve(t);\n }).catch(function (t) {\n r.k_(t);\n });\n });\n }).catch(function (t) {\n r.k_(t);\n }), [2\n /*return*/\n ];\n });\n });\n });\n }, e.prototype.x_ = function (t) {\n try {\n var e = this.updateFunction(t);\n return !ut(e) && e.catch && e.then ? e : (this.ls.reject(Error(\"Transaction callback must return a Promise\")), null);\n } catch (t) {\n // Do not retry errors thrown by user provided updateFunction.\n return this.ls.reject(t), null;\n }\n }, e.prototype.k_ = function (t) {\n var e = this;\n this.N_ > 0 && this.M_(t) ? (this.N_ -= 1, this.cs.ws(function () {\n return e.F_(), Promise.resolve();\n })) : this.ls.reject(t);\n }, e.prototype.M_ = function (t) {\n if (\"FirebaseError\" === t.name) {\n // In transactions, the backend will fail outdated reads with FAILED_PRECONDITION and\n // non-matching document versions with ABORTED. These errors should be retried.\n var e = t.code;\n return \"aborted\" === e || \"failed-precondition\" === e || !wt(e);\n }\n\n return !1;\n }, e;\n}(),\n Ku =\n/** @class */\nfunction () {\n function e(t,\n /**\n * Asynchronous queue responsible for all of our internal processing. When\n * we get incoming work from the user (via public API) or the network\n * (incoming GRPC messages), we should always schedule onto this queue.\n * This ensures all of our work is properly serialized (e.g. we don't\n * start processing a new operation while the previous one is waiting for\n * an async I/O to complete).\n */\n e) {\n this.credentials = t, this.cs = e, this.clientId = Q.k(), // We defer our initialization until we get the current user from\n // setChangeListener(). We block the async queue until we got the initial\n // user and the initialization is completed. This will prevent any scheduled\n // work from happening before initialization is completed.\n // If initializationDone resolved then the FirestoreClient is in a usable\n // state.\n this.O_ = new dr()\n /**\n * Starts up the FirestoreClient, returning only whether or not enabling\n * persistence succeeded.\n *\n * The intent here is to \"do the right thing\" as far as users are concerned.\n * Namely, in cases where offline persistence is requested and possible,\n * enable it, but otherwise fall back to persistence disabled. For the most\n * part we expect this to succeed one way or the other so we don't expect our\n * users to actually wait on the firestore.enablePersistence Promise since\n * they generally won't care.\n *\n * Of course some users actually do care about whether or not persistence\n * was successfully enabled, so the Promise returned from this method\n * indicates this outcome.\n *\n * This presents a problem though: even before enablePersistence resolves or\n * rejects, users may have made calls to e.g. firestore.collection() which\n * means that the FirestoreClient in there will be available and will be\n * enqueuing actions on the async queue.\n *\n * Meanwhile any failure of an operation on the async queue causes it to\n * panic and reject any further work, on the premise that unhandled errors\n * are fatal.\n *\n * Consequently the fallback is handled internally here in start, and if the\n * fallback succeeds we signal success to the async queue even though the\n * start() itself signals failure.\n *\n * @param databaseInfo The connection information for the current instance.\n * @param offlineComponentProvider Provider that returns all components\n * required for memory-only or IndexedDB persistence.\n * @param onlineComponentProvider Provider that returns all components\n * required for online support.\n * @param persistenceSettings Settings object to configure offline\n * persistence.\n * @returns A deferred result indicating the user-visible result of enabling\n * offline persistence. This method will reject this if IndexedDB fails to\n * start for any reason. If usePersistence is false this is\n * unconditionally resolved.\n */\n ;\n }\n\n return e.prototype.start = function (e, n, r, i) {\n var o = this;\n this.L_(), this.bl = e; // If usePersistence is true, certain classes of errors while starting are\n // recoverable but only by falling back to persistence disabled.\n // If there's an error in the first case but not in recovery we cannot\n // reject the promise blocking the async queue because this will cause the\n // async queue to panic.\n\n var s = new dr(),\n u = !1; // Return only the result of enabling persistence. Note that this does not\n // need to await the completion of initializationDone because the result of\n // this method should not reflect any other kind of failure to start.\n\n return this.credentials.Hc(function (e) {\n if (!u) return u = !0, l(\"FirestoreClient\", \"Initializing. user=\", e.uid), o.B_(n, r, i, e, s).then(o.O_.resolve, o.O_.reject);\n o.cs.Cs(function () {\n return function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return (r = m(e)).cs.xs(), l(\"RemoteStore\", \"RemoteStore received new credentials\"), i = Xo(r), // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n r.Yu.add(3\n /* CredentialChange */\n ), [4\n /*yield*/\n , zo(r)];\n\n case 1:\n return t.sent(), i && // Don't set the network status to Unknown if we are offline.\n r.th.set(\"Unknown\"\n /* Unknown */\n ), [4\n /*yield*/\n , r.Gu.Jl(n)];\n\n case 2:\n return t.sent(), r.Yu.delete(3\n /* CredentialChange */\n ), [4\n /*yield*/\n , Go(r)];\n\n case 3:\n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }(o.ph, e);\n });\n }), // Block the async queue until initialization is done\n this.cs.ws(function () {\n return o.O_.promise;\n }), s.promise;\n },\n /** Enables the network connection and requeues all pending operations. */\n e.prototype.enableNetwork = function () {\n var t = this;\n return this.L_(), this.cs.enqueue(function () {\n return t.persistence.tc(!0), function (t) {\n var e = m(t);\n return e.Yu.delete(0\n /* UserDisabled */\n ), Go(e);\n }(t.ph);\n });\n },\n /**\n * Initializes persistent storage, attempting to use IndexedDB if\n * usePersistence is true or memory-only if false.\n *\n * If IndexedDB fails because it's already open in another tab or because the\n * platform can't possibly support our implementation then this method rejects\n * the persistenceResult and falls back on memory-only persistence.\n *\n * @param offlineComponentProvider Provider that returns all components\n * required for memory-only or IndexedDB persistence.\n * @param onlineComponentProvider Provider that returns all components\n * required for online support.\n * @param persistenceSettings Settings object to configure offline persistence\n * @param user The initial user\n * @param persistenceResult A deferred result indicating the user-visible\n * result of enabling offline persistence. This method will reject this if\n * IndexedDB fails to start for any reason. If usePersistence is false\n * this is unconditionally resolved.\n * @returns a Promise indicating whether or not initialization should\n * continue, i.e. that one of the persistence implementations actually\n * succeeded.\n */\n e.prototype.B_ = function (e, n, r, i, o) {\n return t.__awaiter(this, void 0, void 0, function () {\n var s,\n u,\n a = this;\n return t.__generator(this, function (c) {\n switch (c.label) {\n case 0:\n return c.trys.push([0, 3,, 4]), s = {\n cs: this.cs,\n bl: this.bl,\n clientId: this.clientId,\n credentials: this.credentials,\n Wl: i,\n Dh: 100,\n persistenceSettings: r\n }, [4\n /*yield*/\n , e.initialize(s)];\n\n case 1:\n return c.sent(), [4\n /*yield*/\n , n.initialize(e, s)];\n\n case 2:\n return c.sent(), this.persistence = e.persistence, this.Sh = e.Sh, this.ju = e.ju, this.ql = e.ql, this.Ku = n.Ku, this.ph = n.ph, this.fi = n.fi, this.q_ = n.bh, this.q_.Us = _s.bind(null, this.fi), this.q_.js = Is.bind(null, this.fi), // When a user calls clearPersistence() in one client, all other clients\n // need to be terminated to allow the delete to succeed.\n this.persistence.Za(function () {\n return t.__awaiter(a, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return [4\n /*yield*/\n , this.terminate()];\n\n case 1:\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }), o.resolve(), [3\n /*break*/\n , 4];\n\n case 3:\n // An unknown failure on the first stage shuts everything down.\n if (u = c.sent(), // Regardless of whether or not the retry succeeds, from an user\n // perspective, offline persistence has failed.\n o.reject(u), !this.U_(u)) throw u;\n return [2\n /*return*/\n , (console.warn(\"Error enabling offline persistence. Falling back to persistence disabled: \" + u), this.B_(new cu(), new fu(), {\n jl: !1\n }, i, o))];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n /**\n * Decides whether the provided error allows us to gracefully disable\n * persistence (as opposed to crashing the client).\n */\n e.prototype.U_ = function (t) {\n return \"FirebaseError\" === t.name ? t.code === a.FAILED_PRECONDITION || t.code === a.UNIMPLEMENTED : !(\"undefined\" != typeof DOMException && t instanceof DOMException) || // When the browser is out of quota we could get either quota exceeded\n // or an aborted error depending on whether the error happened during\n // schema migration.\n 22 === t.code || 20 === t.code || // Firefox Private Browsing mode disables IndexedDb and returns\n // INVALID_STATE for any usage.\n 11 === t.code;\n },\n /**\n * Checks that the client has not been terminated. Ensures that other methods on\n * this class cannot be called after the client is terminated.\n */\n e.prototype.L_ = function () {\n if (this.cs.ps) throw new c(a.FAILED_PRECONDITION, \"The client has already been terminated.\");\n },\n /** Disables the network connection. Pending operations will not complete. */\n e.prototype.disableNetwork = function () {\n var e = this;\n return this.L_(), this.cs.enqueue(function () {\n return e.persistence.tc(!1), function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return (n = m(e)).Yu.add(0\n /* UserDisabled */\n ), [4\n /*yield*/\n , zo(n)];\n\n case 1:\n return t.sent(), // Set the OnlineState to Offline so get()s return from cache, etc.\n n.th.set(\"Offline\"\n /* Offline */\n ), [2\n /*return*/\n ];\n }\n });\n });\n }(e.ph);\n });\n }, e.prototype.terminate = function () {\n var e = this;\n this.cs.Ds();\n var n = new dr();\n return this.cs.bs(function () {\n return t.__awaiter(e, void 0, void 0, function () {\n var e, r;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return t.trys.push([0, 4,, 5]), // PORTING NOTE: LocalStore does not need an explicit shutdown on web.\n this.ql && this.ql.stop(), [4\n /*yield*/\n , Bo(this.ph)];\n\n case 1:\n return t.sent(), [4\n /*yield*/\n , this.Sh.Di()];\n\n case 2:\n return t.sent(), [4\n /*yield*/\n , this.persistence.Di()];\n\n case 3:\n // PORTING NOTE: LocalStore does not need an explicit shutdown on web.\n return t.sent(), // `removeChangeListener` must be called after shutting down the\n // RemoteStore as it will prevent the RemoteStore from retrieving\n // auth tokens.\n this.credentials.Yc(), n.resolve(), [3\n /*break*/\n , 5];\n\n case 4:\n return e = t.sent(), r = Lr(e, \"Failed to shutdown persistence\"), n.reject(r), [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n }), n.promise;\n },\n /**\n * Returns a Promise that resolves when all writes that were pending at the time this\n * method was called received server acknowledgement. An acknowledgement can be either acceptance\n * or rejection.\n */\n e.prototype.waitForPendingWrites = function () {\n var e = this;\n this.L_();\n var n = new dr();\n return this.cs.ws(function () {\n return function (e, n) {\n return t.__awaiter(this, void 0, void 0, function () {\n var r, i, o, s, u;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n Xo((r = m(e)).ph) || l(\"SyncEngine\", \"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.\"), t.label = 1;\n\n case 1:\n return t.trys.push([1, 3,, 4]), [4\n /*yield*/\n , function (t) {\n var e = m(t);\n return e.persistence.runTransaction(\"Get highest unacknowledged batch id\", \"readonly\", function (t) {\n return e.Sr.qo(t);\n });\n }(r.ju)];\n\n case 2:\n return -1 === (i = t.sent()) ? [2\n /*return*/\n , void n.resolve()] : ((o = r.Lh.get(i) || []).push(n), r.Lh.set(i, o), [3\n /*break*/\n , 4]);\n\n case 3:\n return s = t.sent(), u = Lr(s, \"Initialization of waitForPendingWrites() operation failed\"), n.reject(u), [3\n /*break*/\n , 4];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(e.fi, n);\n }), n.promise;\n }, e.prototype.listen = function (t, e, n) {\n var r = this;\n this.L_();\n var i = new lu(n),\n o = new Fr(t, i, e);\n return this.cs.ws(function () {\n return Or(r.q_, o);\n }), function () {\n i.Zl(), r.cs.ws(function () {\n return Pr(r.q_, o);\n });\n };\n }, e.prototype.Q_ = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n,\n r = this;\n return t.__generator(this, function (i) {\n switch (i.label) {\n case 0:\n return this.L_(), [4\n /*yield*/\n , this.O_.promise];\n\n case 1:\n return i.sent(), n = new dr(), [2\n /*return*/\n , (this.cs.ws(function () {\n return function (e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return t.trys.push([0, 2,, 3]), [4\n /*yield*/\n , function (t, e) {\n var n = m(t);\n return n.persistence.runTransaction(\"read document\", \"readonly\", function (t) {\n return n.Cc.Cr(t, e);\n });\n }(e, n)];\n\n case 1:\n return (i = t.sent()) instanceof kn ? r.resolve(i) : i instanceof Rn ? r.resolve(null) : r.reject(new c(a.UNAVAILABLE, \"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)\")), [3\n /*break*/\n , 3];\n\n case 2:\n return o = t.sent(), s = Lr(o, \"Failed to get document '\" + n + \" from cache\"), r.reject(s), [3\n /*break*/\n , 3];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(r.ju, e, n);\n }), n.promise)];\n }\n });\n });\n }, e.prototype.W_ = function (e, n) {\n return void 0 === n && (n = {}), t.__awaiter(this, void 0, void 0, function () {\n var r,\n i = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.L_(), [4\n /*yield*/\n , this.O_.promise];\n\n case 1:\n return t.sent(), r = new dr(), [2\n /*return*/\n , (this.cs.ws(function () {\n return function (t, e, n, r, i) {\n var o = new lu({\n next: function next(o) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.ws(function () {\n return Pr(t, s);\n });\n var u = o.docs.has(n);\n !u && o.fromCache ? // TODO(dimond): If we're online and the document doesn't\n // exist then we resolve with a doc.exists set to false. If\n // we're offline however, we reject the Promise in this\n // case. Two options: 1) Cache the negative response from\n // the server so we can deliver that even when you're\n // offline 2) Actually reject the Promise in the online case\n // if the document doesn't exist.\n i.reject(new c(a.UNAVAILABLE, \"Failed to get document because the client is offline.\")) : u && o.fromCache && r && \"server\" === r.source ? i.reject(new c(a.UNAVAILABLE, 'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to \"server\" to retrieve the cached document.)')) : i.resolve(o);\n },\n error: function error(t) {\n return i.reject(t);\n }\n }),\n s = new Fr(Un(n.path), o, {\n includeMetadataChanges: !0,\n Xs: !0\n });\n return Or(t, s);\n }(i.q_, i.cs, e, n, r);\n }), r.promise)];\n }\n });\n });\n }, e.prototype.j_ = function (e) {\n return t.__awaiter(this, void 0, void 0, function () {\n var n,\n r = this;\n return t.__generator(this, function (i) {\n switch (i.label) {\n case 0:\n return this.L_(), [4\n /*yield*/\n , this.O_.promise];\n\n case 1:\n return i.sent(), n = new dr(), [2\n /*return*/\n , (this.cs.ws(function () {\n return function (e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u, a, c;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return t.trys.push([0, 2,, 3]), [4\n /*yield*/\n , To(e, n,\n /* usePreviousResults= */\n !0)];\n\n case 1:\n return i = t.sent(), o = new ys(n, i.Fc), s = o.wh(i.documents), u = o.yr(s,\n /* updateLimboDocuments= */\n !1), r.resolve(u.snapshot), [3\n /*break*/\n , 3];\n\n case 2:\n return a = t.sent(), c = Lr(a, \"Failed to execute query '\" + n + \" against cache\"), r.reject(c), [3\n /*break*/\n , 3];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(r.ju, e, n);\n }), n.promise)];\n }\n });\n });\n }, e.prototype.K_ = function (e, n) {\n return void 0 === n && (n = {}), t.__awaiter(this, void 0, void 0, function () {\n var r,\n i = this;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return this.L_(), [4\n /*yield*/\n , this.O_.promise];\n\n case 1:\n return t.sent(), r = new dr(), [2\n /*return*/\n , (this.cs.ws(function () {\n return function (t, e, n, r, i) {\n var o = new lu({\n next: function next(n) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.ws(function () {\n return Pr(t, s);\n }), n.fromCache && \"server\" === r.source ? i.reject(new c(a.UNAVAILABLE, 'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to \"server\" to retrieve the cached documents.)')) : i.resolve(n);\n },\n error: function error(t) {\n return i.reject(t);\n }\n }),\n s = new Fr(n, o, {\n includeMetadataChanges: !0,\n Xs: !0\n });\n return Or(t, s);\n }(i.q_, i.cs, e, n, r);\n }), r.promise)];\n }\n });\n });\n }, e.prototype.write = function (e) {\n var n = this;\n this.L_();\n var r = new dr();\n return this.cs.ws(function () {\n return function (e, n, r) {\n return t.__awaiter(this, void 0, void 0, function () {\n var i, o, s, u;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n i = Qs(e), t.label = 1;\n\n case 1:\n return t.trys.push([1, 5,, 6]), [4\n /*yield*/\n ,\n /* Accepts locally generated Mutations and commit them to storage. */\n function (t, e) {\n var n,\n r = m(t),\n i = ot.now(),\n o = e.reduce(function (t, e) {\n return t.add(e.key);\n }, Ot());\n return r.persistence.runTransaction(\"Locally write mutations\", \"readwrite\", function (t) {\n return r.Cc.kr(t, o).next(function (o) {\n n = o;\n\n for ( // For non-idempotent mutations (such as `FieldValue.increment()`),\n // we record the base state in a separate patch mutation. This is\n // later used to guarantee consistent values and prevents flicker\n // even if the backend sends us an update that already includes our\n // transform.\n var s = [], u = 0, a = e; u < a.length; u++) {\n var c = a[u],\n h = yn(c, n.get(c.key));\n null != h && // NOTE: The base state should only be applied if there's some\n // existing document to override, so use a Precondition of\n // exists=true\n s.push(new _n(c.key, h, xn(h.proto.mapValue), fn.exists(!0)));\n }\n\n return r.Sr.ko(t, i, s, e);\n });\n }).then(function (t) {\n var e = t.lr(n);\n return {\n batchId: t.batchId,\n wr: e\n };\n });\n }(i.ju, n)];\n\n case 2:\n return o = t.sent(), i.Sh.xi(o.batchId), function (t, e, n) {\n var r = t.Oh[t.currentUser.ti()];\n r || (r = new bt(H)), r = r.ot(e, n), t.Oh[t.currentUser.ti()] = r;\n }(i, o.batchId, r), [4\n /*yield*/\n , Vs(i, o.wr)];\n\n case 3:\n return t.sent(), [4\n /*yield*/\n , is(i.ph)];\n\n case 4:\n return t.sent(), [3\n /*break*/\n , 6];\n\n case 5:\n return s = t.sent(), u = Lr(s, \"Failed to persist write\"), r.reject(u), [3\n /*break*/\n , 6];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n }(n.fi, e, r);\n }), r.promise;\n }, e.prototype.U = function () {\n return this.bl.U;\n }, e.prototype.G_ = function (e) {\n var n = this;\n this.L_();\n var r = new lu(e);\n return this.cs.ws(function () {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return [2\n /*return*/\n , function (t, e) {\n m(t).qs.add(e), // Immediately fire an initial event, indicating all existing listeners\n // are in-sync.\n e.next();\n }(this.q_, r)];\n });\n });\n }), function () {\n r.Zl(), n.cs.ws(function () {\n return t.__awaiter(n, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n return [2\n /*return*/\n , function (t, e) {\n m(t).qs.delete(e);\n }(this.q_, r)];\n });\n });\n });\n };\n }, Object.defineProperty(e.prototype, \"z_\", {\n get: function get() {\n // Technically, the asyncQueue is still running, but only accepting operations\n // related to termination or supposed to be run after termination. It is effectively\n // terminated to the eyes of users.\n return this.cs.ps;\n },\n enumerable: !1,\n configurable: !0\n }),\n /**\n * Takes an updateFunction in which a set of reads and writes can be performed\n * atomically. In the updateFunction, the client can read and write values\n * using the supplied transaction object. After the updateFunction, all\n * changes will be committed. If a retryable error occurs (ex: some other\n * client has changed any of the data referenced), then the updateFunction\n * will be called again after a backoff. If the updateFunction still fails\n * after all retries, then the transaction will be rejected.\n *\n * The transaction object passed to the updateFunction contains methods for\n * accessing documents and collections. Unlike other datastore access, data\n * accessed with the transaction will not reflect local changes that have not\n * been committed. For this reason, it is required that all reads are\n * performed before any writes. Transactions must be performed while online.\n */\n e.prototype.transaction = function (t) {\n var e = this;\n this.L_();\n var n = new dr();\n return this.cs.ws(function () {\n return new Wu(e.cs, e.Ku, t, n).run(), Promise.resolve();\n }), n.promise;\n }, e;\n}();\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * TransactionRunner encapsulates the logic needed to run and retry transactions\n * with backoff.\n */\n\n\nfunction Qu(t) {\n /**\n * Returns true if obj is an object and contains at least one of the specified\n * methods.\n */\n return function (t, e) {\n if (\"object\" != typeof t || null === t) return !1;\n\n for (var n = t, r = 0, i = [\"next\", \"error\", \"complete\"]; r < i.length; r++) {\n var o = i[r];\n if (o in n && \"function\" == typeof n[o]) return !0;\n }\n\n return !1;\n }(t);\n}\n\nvar Hu =\n/** @class */\nfunction () {\n function t(t, e, n, r, i) {\n this.U = t, this.timestampsInSnapshots = e, this.H_ = n, this.Y_ = r, this.J_ = i;\n }\n\n return t.prototype.X_ = function (t) {\n switch (Jt(t)) {\n case 0\n /* NullValue */\n :\n return null;\n\n case 1\n /* BooleanValue */\n :\n return t.booleanValue;\n\n case 2\n /* NumberValue */\n :\n return se(t.integerValue || t.doubleValue);\n\n case 3\n /* TimestampValue */\n :\n return this.Z_(t.timestampValue);\n\n case 4\n /* ServerTimestampValue */\n :\n return this.tf(t);\n\n case 5\n /* StringValue */\n :\n return t.stringValue;\n\n case 6\n /* BlobValue */\n :\n return this.J_(ue(t.bytesValue));\n\n case 7\n /* RefValue */\n :\n return this.ef(t.referenceValue);\n\n case 8\n /* GeoPointValue */\n :\n return this.nf(t.geoPointValue);\n\n case 9\n /* ArrayValue */\n :\n return this.sf(t.arrayValue);\n\n case 10\n /* ObjectValue */\n :\n return this.if(t.mapValue);\n\n default:\n throw y();\n }\n }, t.prototype.if = function (t) {\n var e = this,\n n = {};\n return _(t.fields || {}, function (t, r) {\n n[t] = e.X_(r);\n }), n;\n }, t.prototype.nf = function (t) {\n return new Eu(se(t.latitude), se(t.longitude));\n }, t.prototype.sf = function (t) {\n var e = this;\n return (t.values || []).map(function (t) {\n return e.X_(t);\n });\n }, t.prototype.tf = function (t) {\n switch (this.H_) {\n case \"previous\":\n var e = Yt(t);\n return null == e ? null : this.X_(e);\n\n case \"estimate\":\n return this.Z_($t(t));\n\n default:\n return null;\n }\n }, t.prototype.Z_ = function (t) {\n var e = oe(t),\n n = new ot(e.seconds, e.nanos);\n return this.timestampsInSnapshots ? n : n.toDate();\n }, t.prototype.ef = function (t) {\n var e = E.g(t);\n g(He(e));\n var n = new rt(e.get(1), e.get(3)),\n r = new A(e.u(5));\n return n.isEqual(this.U) || // TODO(b/64130202): Somehow support foreign references.\n p(\"Document \" + r + \" contains a document reference within a different database (\" + n.projectId + \"/\" + n.database + \") which is not supported. It will be treated as a reference in the current database (\" + this.U.projectId + \"/\" + this.U.database + \") instead.\"), this.Y_(r);\n }, t;\n}(),\n Yu = ui.ho,\n $u =\n/** @class */\nfunction () {\n function t(t) {\n var e, n, r, i, o;\n\n if (void 0 === t.host) {\n if (void 0 !== t.ssl) throw new c(a.INVALID_ARGUMENT, \"Can't provide ssl option if host option is not set\");\n this.host = \"firestore.googleapis.com\", this.ssl = !0;\n } else O(\"settings\", \"non-empty string\", \"host\", t.host), this.host = t.host, P(\"settings\", \"boolean\", \"ssl\", t.ssl), this.ssl = null === (e = t.ssl) || void 0 === e || e;\n\n if (j(\"settings\", t, [\"host\", \"ssl\", \"credentials\", \"timestampsInSnapshots\", \"cacheSizeBytes\", \"experimentalForceLongPolling\", \"experimentalAutoDetectLongPolling\", \"ignoreUndefinedProperties\"]), P(\"settings\", \"object\", \"credentials\", t.credentials), this.credentials = t.credentials, P(\"settings\", \"boolean\", \"timestampsInSnapshots\", t.timestampsInSnapshots), P(\"settings\", \"boolean\", \"ignoreUndefinedProperties\", t.ignoreUndefinedProperties), // Nobody should set timestampsInSnapshots anymore, but the error depends on\n // whether they set it to true or false...\n !0 === t.timestampsInSnapshots ? p(\"The setting 'timestampsInSnapshots: true' is no longer required and should be removed.\") : !1 === t.timestampsInSnapshots && p(\"Support for 'timestampsInSnapshots: false' will be removed soon. You must update your code to handle Timestamp objects.\"), this.timestampsInSnapshots = null === (n = t.timestampsInSnapshots) || void 0 === n || n, this.ignoreUndefinedProperties = null !== (r = t.ignoreUndefinedProperties) && void 0 !== r && r, P(\"settings\", \"number\", \"cacheSizeBytes\", t.cacheSizeBytes), void 0 === t.cacheSizeBytes) this.cacheSizeBytes = ui._o;else {\n if (t.cacheSizeBytes !== Yu && t.cacheSizeBytes < ui.lo) throw new c(a.INVALID_ARGUMENT, \"cacheSizeBytes must be at least \" + ui.lo);\n this.cacheSizeBytes = t.cacheSizeBytes;\n }\n P(\"settings\", \"boolean\", \"experimentalForceLongPolling\", t.experimentalForceLongPolling), this.experimentalForceLongPolling = null !== (i = t.experimentalForceLongPolling) && void 0 !== i && i, P(\"settings\", \"boolean\", \"experimentalAutoDetectLongPolling\", t.experimentalAutoDetectLongPolling), this.experimentalAutoDetectLongPolling = null !== (o = t.experimentalAutoDetectLongPolling) && void 0 !== o && o, function (t, e, n, r) {\n if (!0 === e && !0 === r) throw new c(a.INVALID_ARGUMENT, \"experimentalForceLongPolling and experimentalAutoDetectLongPolling cannot be used together.\");\n }(0, t.experimentalForceLongPolling, 0, t.experimentalAutoDetectLongPolling);\n }\n\n return t.prototype.isEqual = function (t) {\n return this.host === t.host && this.ssl === t.ssl && this.timestampsInSnapshots === t.timestampsInSnapshots && this.credentials === t.credentials && this.cacheSizeBytes === t.cacheSizeBytes && this.experimentalForceLongPolling === t.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t.ignoreUndefinedProperties;\n }, t;\n}(),\n Xu =\n/** @class */\nfunction () {\n // Note: We are using `MemoryComponentProvider` as a default\n // ComponentProvider to ensure backwards compatibility with the format\n // expected by the console build.\n function e(n, r, i, o) {\n var s = this;\n\n if (void 0 === i && (i = new cu()), void 0 === o && (o = new fu()), this.rf = i, this.af = o, this.cf = null, // Public for use in tests.\n // TODO(mikelehen): Use modularized initialization instead.\n this.uf = new xr(), this.INTERNAL = {\n delete: function _delete() {\n return t.__awaiter(s, void 0, void 0, function () {\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n // The client must be initalized to ensure that all subsequent API usage\n // throws an exception.\n return this.hf(), [4\n /*yield*/\n , this.lf.terminate()];\n\n case 1:\n // The client must be initalized to ensure that all subsequent API usage\n // throws an exception.\n return t.sent(), [2\n /*return*/\n ];\n }\n });\n });\n }\n }, \"object\" == typeof n.options) {\n // This is very likely a Firebase app object\n // TODO(b/34177605): Can we somehow use instanceof?\n var u = n;\n this.cf = u, this.__ = e._f(u), this.ff = u.name, this.df = new Oo(r);\n } else {\n var h = n;\n if (!h.projectId) throw new c(a.INVALID_ARGUMENT, \"Must provide projectId\");\n this.__ = new rt(h.projectId, h.database), // Use a default persistenceKey that lines up with FirebaseApp.\n this.ff = \"[DEFAULT]\", this.df = new Ro();\n }\n\n this.wf = new $u({});\n }\n\n return Object.defineProperty(e.prototype, \"mf\", {\n get: function get() {\n return this.Tf || ( // Lazy initialize UserDataReader once the settings are frozen\n this.Tf = new ku(this.__, this.wf.ignoreUndefinedProperties)), this.Tf;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.settings = function (t) {\n D(\"Firestore.settings\", arguments, 1), k(\"Firestore.settings\", \"object\", 1, t), t.merge && // Remove the property from the settings once the merge is completed\n delete (t = Object.assign(Object.assign({}, this.wf), t)).merge;\n var e = new $u(t);\n if (this.lf && !this.wf.isEqual(e)) throw new c(a.FAILED_PRECONDITION, \"Firestore has already been started and its settings can no longer be changed. You can only call settings() before calling any other methods on a Firestore object.\");\n this.wf = e, void 0 !== e.credentials && (this.df = function (t) {\n if (!t) return new Ro();\n\n switch (t.type) {\n case \"gapi\":\n var e = t.client; // Make sure this really is a Gapi client.\n\n return g(!(\"object\" != typeof e || null === e || !e.auth || !e.auth.getAuthHeaderValueForFirstParty)), new Vo(e, t.sessionIndex || \"0\");\n\n case \"provider\":\n return t.client;\n\n default:\n throw new c(a.INVALID_ARGUMENT, \"makeCredentialsProvider failed due to invalid credential type\");\n }\n }(e.credentials));\n }, e.prototype.enableNetwork = function () {\n return this.hf(), this.lf.enableNetwork();\n }, e.prototype.disableNetwork = function () {\n return this.hf(), this.lf.disableNetwork();\n }, e.prototype.enablePersistence = function (t) {\n var e, n;\n if (this.lf) throw new c(a.FAILED_PRECONDITION, \"Firestore has already been started and persistence can no longer be enabled. You can only call enablePersistence() before calling any other methods on a Firestore object.\");\n var r = !1,\n i = !1;\n if (t && (void 0 !== t.experimentalTabSynchronization && p(\"The 'experimentalTabSynchronization' setting will be removed. Use 'synchronizeTabs' instead.\"), r = null !== (n = null !== (e = t.synchronizeTabs) && void 0 !== e ? e : t.experimentalTabSynchronization) && void 0 !== n && n, i = !!t.experimentalForceOwningTab && t.experimentalForceOwningTab, r && i)) throw new c(a.INVALID_ARGUMENT, \"The 'experimentalForceOwningTab' setting cannot be used with 'synchronizeTabs'.\");\n return this.Ef(this.rf, this.af, {\n jl: !0,\n cacheSizeBytes: this.wf.cacheSizeBytes,\n synchronizeTabs: r,\n ka: i\n });\n }, e.prototype.clearPersistence = function () {\n return t.__awaiter(this, void 0, void 0, function () {\n var e,\n n = this;\n return t.__generator(this, function (r) {\n if (void 0 !== this.lf && !this.lf.z_) throw new c(a.FAILED_PRECONDITION, \"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.\");\n return e = new dr(), [2\n /*return*/\n , (this.uf.bs(function () {\n return t.__awaiter(n, void 0, void 0, function () {\n var n;\n return t.__generator(this, function (t) {\n switch (t.label) {\n case 0:\n return t.trys.push([0, 2,, 3]), [4\n /*yield*/\n , this.rf.clearPersistence(this.__, this.ff)];\n\n case 1:\n return t.sent(), e.resolve(), [3\n /*break*/\n , 3];\n\n case 2:\n return n = t.sent(), e.reject(n), [3\n /*break*/\n , 3];\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n }), e.promise)];\n });\n });\n }, e.prototype.terminate = function () {\n return this.app._removeServiceInstance(\"firestore\"), this.INTERNAL.delete();\n }, Object.defineProperty(e.prototype, \"If\", {\n get: function get() {\n return this.hf(), this.lf.z_;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.waitForPendingWrites = function () {\n return this.hf(), this.lf.waitForPendingWrites();\n }, e.prototype.onSnapshotsInSync = function (t) {\n if (this.hf(), Qu(t)) return this.lf.G_(t);\n k(\"Firestore.onSnapshotsInSync\", \"function\", 1, t);\n var e = {\n next: t\n };\n return this.lf.G_(e);\n }, e.prototype.hf = function () {\n return this.lf || // Kick off starting the client but don't actually wait for it.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.Ef(new cu(), new fu(), {\n jl: !1\n }), this.lf;\n }, e.prototype.Af = function () {\n return new nt(this.__, this.ff, this.wf.host, this.wf.ssl, this.wf.experimentalForceLongPolling, this.wf.experimentalAutoDetectLongPolling);\n }, e.prototype.Ef = function (t, e, n) {\n var r = this.Af();\n return this.lf = new Ku(this.df, this.uf), this.lf.start(r, t, e, n);\n }, e._f = function (t) {\n if (e = t.options, \"projectId\", !Object.prototype.hasOwnProperty.call(e, \"projectId\")) throw new c(a.INVALID_ARGUMENT, '\"projectId\" not provided in firebase.initializeApp.');\n var e,\n n = t.options.projectId;\n if (!n || \"string\" != typeof n) throw new c(a.INVALID_ARGUMENT, \"projectId must be a string in FirebaseApp.options\");\n return new rt(n);\n }, Object.defineProperty(e.prototype, \"app\", {\n get: function get() {\n if (!this.cf) throw new c(a.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this.cf;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.collection = function (t) {\n return D(\"Firestore.collection\", arguments, 1), k(\"Firestore.collection\", \"non-empty string\", 1, t), this.hf(), new la(E.g(t), this,\n /* converter= */\n null);\n }, e.prototype.doc = function (t) {\n return D(\"Firestore.doc\", arguments, 1), k(\"Firestore.doc\", \"non-empty string\", 1, t), this.hf(), ta.Rf(E.g(t), this,\n /* converter= */\n null);\n }, e.prototype.collectionGroup = function (t) {\n if (D(\"Firestore.collectionGroup\", arguments, 1), k(\"Firestore.collectionGroup\", \"non-empty string\", 1, t), t.indexOf(\"/\") >= 0) throw new c(a.INVALID_ARGUMENT, \"Invalid collection ID '\" + t + \"' passed to function Firestore.collectionGroup(). Collection IDs must not contain '/'.\");\n return this.hf(), new ha(\n /**\n * Creates a new Query for a collection group query that matches all documents\n * within the provided collection group.\n */\n function (t) {\n return new Pn(E.P(), t);\n }(t), this,\n /* converter= */\n null);\n }, e.prototype.runTransaction = function (t) {\n var e = this;\n return D(\"Firestore.runTransaction\", arguments, 1), k(\"Firestore.runTransaction\", \"function\", 1, t), this.hf().transaction(function (n) {\n return t(new Ju(e, n));\n });\n }, e.prototype.batch = function () {\n return this.hf(), new Zu(this);\n }, Object.defineProperty(e, \"logLevel\", {\n get: function get() {\n switch (f()) {\n case n.LogLevel.DEBUG:\n return \"debug\";\n\n case n.LogLevel.ERROR:\n return \"error\";\n\n case n.LogLevel.SILENT:\n return \"silent\";\n\n case n.LogLevel.WARN:\n return \"warn\";\n\n case n.LogLevel.INFO:\n return \"info\";\n\n case n.LogLevel.VERBOSE:\n return \"verbose\";\n\n default:\n // The default log level is error\n return \"error\";\n }\n },\n enumerable: !1,\n configurable: !0\n }), e.setLogLevel = function (t) {\n var e;\n D(\"Firestore.setLogLevel\", arguments, 1), U(\"setLogLevel\", [\"debug\", \"error\", \"silent\", \"warn\", \"info\", \"verbose\"], 1, t), e = t, h.setLogLevel(e);\n }, // Note: this is not a property because the minifier can't work correctly with\n // the way TypeScript compiler outputs properties.\n e.prototype.gf = function () {\n return this.wf.timestampsInSnapshots;\n }, // Visible for testing.\n e.prototype.Pf = function () {\n return this.wf;\n }, e;\n}(),\n Ju =\n/** @class */\nfunction () {\n function t(t, e) {\n this.yf = t, this.Vf = e;\n }\n\n return t.prototype.get = function (t) {\n var e = this;\n D(\"Transaction.get\", arguments, 1);\n var n = ya(\"Transaction.get\", t, this.yf);\n return this.Vf.v_([n.f_]).then(function (t) {\n if (!t || 1 !== t.length) return y();\n var r = t[0];\n if (r instanceof Rn) return new na(e.yf, n.f_, null,\n /* fromCache= */\n !1,\n /* hasPendingWrites= */\n !1, n.d_);\n if (r instanceof kn) return new na(e.yf, n.f_, r,\n /* fromCache= */\n !1,\n /* hasPendingWrites= */\n !1, n.d_);\n throw y();\n });\n }, t.prototype.set = function (t, e, n) {\n L(\"Transaction.set\", arguments, 2, 3);\n var r = ya(\"Transaction.set\", t, this.yf);\n n = pa(\"Transaction.set\", n);\n var i = ma(r.d_, e, n),\n o = Ru(this.yf.mf, \"Transaction.set\", r.f_, i, null !== r.d_, n);\n return this.Vf.set(r.f_, o), this;\n }, t.prototype.update = function (t, e, n) {\n for (var r, i, o = [], s = 3; s < arguments.length; s++) {\n o[s - 3] = arguments[s];\n }\n\n return \"string\" == typeof e || e instanceof du ? (x(\"Transaction.update\", arguments, 3), r = ya(\"Transaction.update\", t, this.yf), i = Pu(this.yf.mf, \"Transaction.update\", r.f_, e, n, o)) : (D(\"Transaction.update\", arguments, 2), r = ya(\"Transaction.update\", t, this.yf), i = Ou(this.yf.mf, \"Transaction.update\", r.f_, e)), this.Vf.update(r.f_, i), this;\n }, t.prototype.delete = function (t) {\n D(\"Transaction.delete\", arguments, 1);\n var e = ya(\"Transaction.delete\", t, this.yf);\n return this.Vf.delete(e.f_), this;\n }, t;\n}(),\n Zu =\n/** @class */\nfunction () {\n function t(t) {\n this.yf = t, this.pf = [], this.bf = !1;\n }\n\n return t.prototype.set = function (t, e, n) {\n L(\"WriteBatch.set\", arguments, 2, 3), this.vf();\n var r = ya(\"WriteBatch.set\", t, this.yf);\n n = pa(\"WriteBatch.set\", n);\n var i = ma(r.d_, e, n),\n o = Ru(this.yf.mf, \"WriteBatch.set\", r.f_, i, null !== r.d_, n);\n return this.pf = this.pf.concat(o.w_(r.f_, fn.ze())), this;\n }, t.prototype.update = function (t, e, n) {\n for (var r, i, o = [], s = 3; s < arguments.length; s++) {\n o[s - 3] = arguments[s];\n }\n\n return this.vf(), \"string\" == typeof e || e instanceof du ? (x(\"WriteBatch.update\", arguments, 3), r = ya(\"WriteBatch.update\", t, this.yf), i = Pu(this.yf.mf, \"WriteBatch.update\", r.f_, e, n, o)) : (D(\"WriteBatch.update\", arguments, 2), r = ya(\"WriteBatch.update\", t, this.yf), i = Ou(this.yf.mf, \"WriteBatch.update\", r.f_, e)), this.pf = this.pf.concat(i.w_(r.f_, fn.exists(!0))), this;\n }, t.prototype.delete = function (t) {\n D(\"WriteBatch.delete\", arguments, 1), this.vf();\n var e = ya(\"WriteBatch.delete\", t, this.yf);\n return this.pf = this.pf.concat(new Nn(e.f_, fn.ze())), this;\n }, t.prototype.commit = function () {\n return this.vf(), this.bf = !0, this.pf.length > 0 ? this.yf.hf().write(this.pf) : Promise.resolve();\n }, t.prototype.vf = function () {\n if (this.bf) throw new c(a.FAILED_PRECONDITION, \"A write batch can no longer be used after commit() has been called.\");\n }, t;\n}(),\n ta =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this, n.__, t, r) || this).f_ = t, i.firestore = n, i.d_ = r, i.lf = i.firestore.hf(), i;\n }\n\n return t.__extends(n, e), n.Rf = function (t, e, r) {\n if (t.length % 2 != 0) throw new c(a.INVALID_ARGUMENT, \"Invalid document reference. Document references must have an even number of segments, but \" + t.R() + \" has \" + t.length);\n return new n(new A(t), e, r);\n }, Object.defineProperty(n.prototype, \"id\", {\n get: function get() {\n return this.f_.path._();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"parent\", {\n get: function get() {\n return new la(this.f_.path.h(), this.firestore, this.d_);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"path\", {\n get: function get() {\n return this.f_.path.R();\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.collection = function (t) {\n if (D(\"DocumentReference.collection\", arguments, 1), k(\"DocumentReference.collection\", \"non-empty string\", 1, t), !t) throw new c(a.INVALID_ARGUMENT, \"Must provide a non-empty collection name to collection()\");\n var e = E.g(t);\n return new la(this.f_.path.child(e), this.firestore,\n /* converter= */\n null);\n }, n.prototype.isEqual = function (t) {\n if (!(t instanceof n)) throw G(\"isEqual\", \"DocumentReference\", 1, t);\n return this.firestore === t.firestore && this.f_.isEqual(t.f_) && this.d_ === t.d_;\n }, n.prototype.set = function (t, e) {\n L(\"DocumentReference.set\", arguments, 1, 2), e = pa(\"DocumentReference.set\", e);\n var n = ma(this.d_, t, e),\n r = Ru(this.firestore.mf, \"DocumentReference.set\", this.f_, n, null !== this.d_, e);\n return this.lf.write(r.w_(this.f_, fn.ze()));\n }, n.prototype.update = function (t, e) {\n for (var n, r = [], i = 2; i < arguments.length; i++) {\n r[i - 2] = arguments[i];\n }\n\n return \"string\" == typeof t || t instanceof du ? (x(\"DocumentReference.update\", arguments, 2), n = Pu(this.firestore.mf, \"DocumentReference.update\", this.f_, t, e, r)) : (D(\"DocumentReference.update\", arguments, 1), n = Ou(this.firestore.mf, \"DocumentReference.update\", this.f_, t)), this.lf.write(n.w_(this.f_, fn.exists(!0)));\n }, n.prototype.delete = function () {\n return D(\"DocumentReference.delete\", arguments, 0), this.lf.write([new Nn(this.f_, fn.ze())]);\n }, n.prototype.onSnapshot = function () {\n for (var t, e, n, r = this, i = [], o = 0; o < arguments.length; o++) {\n i[o] = arguments[o];\n }\n\n L(\"DocumentReference.onSnapshot\", arguments, 1, 4);\n var s = {\n includeMetadataChanges: !1\n },\n u = 0;\n \"object\" != typeof i[u] || Qu(i[u]) || (j(\"DocumentReference.onSnapshot\", s = i[u], [\"includeMetadataChanges\"]), P(\"DocumentReference.onSnapshot\", \"boolean\", \"includeMetadataChanges\", s.includeMetadataChanges), u++);\n var a = {\n includeMetadataChanges: s.includeMetadataChanges\n };\n\n if (Qu(i[u])) {\n var c = i[u];\n i[u] = null === (t = c.next) || void 0 === t ? void 0 : t.bind(c), i[u + 1] = null === (e = c.error) || void 0 === e ? void 0 : e.bind(c), i[u + 2] = null === (n = c.complete) || void 0 === n ? void 0 : n.bind(c);\n } else k(\"DocumentReference.onSnapshot\", \"function\", u, i[u]), R(\"DocumentReference.onSnapshot\", \"function\", u + 1, i[u + 1]), R(\"DocumentReference.onSnapshot\", \"function\", u + 2, i[u + 2]);\n\n var h = {\n next: function next(t) {\n i[u] && i[u](r.Sf(t));\n },\n error: i[u + 1],\n complete: i[u + 2]\n };\n return this.lf.listen(Un(this.f_.path), a, h);\n }, n.prototype.get = function (t) {\n var e = this;\n L(\"DocumentReference.get\", arguments, 0, 1), va(\"DocumentReference.get\", t);\n var n = this.firestore.hf();\n return t && \"cache\" === t.source ? n.Q_(this.f_).then(function (t) {\n return new na(e.firestore, e.f_, t,\n /*fromCache=*/\n !0, t instanceof kn && t.Je, e.d_);\n }) : n.W_(this.f_, t).then(function (t) {\n return e.Sf(t);\n });\n }, n.prototype.withConverter = function (t) {\n return new n(this.f_, this.firestore, t);\n },\n /**\n * Converts a ViewSnapshot that contains the current document to a\n * DocumentSnapshot.\n */\n n.prototype.Sf = function (t) {\n var e = t.docs.get(this.f_);\n return new na(this.firestore, this.f_, e, t.fromCache, t.hasPendingWrites, this.d_);\n }, n;\n}(Au),\n ea =\n/** @class */\nfunction () {\n function t(t, e) {\n this.hasPendingWrites = t, this.fromCache = e\n /**\n * Returns true if this `SnapshotMetadata` is equal to the provided one.\n *\n * @param other The `SnapshotMetadata` to compare against.\n * @return true if this `SnapshotMetadata` is equal to the provided one.\n */\n ;\n }\n\n return t.prototype.isEqual = function (t) {\n return this.hasPendingWrites === t.hasPendingWrites && this.fromCache === t.fromCache;\n }, t;\n}(),\n na =\n/** @class */\nfunction () {\n function t(t, e, n, r, i, o) {\n this.yf = t, this.f_ = e, this.Df = n, this.Cf = r, this.Nf = i, this.d_ = o;\n }\n\n return t.prototype.data = function (t) {\n var e = this;\n\n if (L(\"DocumentSnapshot.data\", arguments, 0, 1), t = da(\"DocumentSnapshot.data\", t), this.Df) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n if (this.d_) {\n var n = new ra(this.yf, this.f_, this.Df, this.Cf, this.Nf,\n /* converter= */\n null);\n return this.d_.fromFirestore(n, t);\n }\n\n return new Hu(this.yf.__, this.yf.gf(), t.serverTimestamps || \"none\", function (t) {\n return new ta(t, e.yf,\n /* converter= */\n null);\n }, function (t) {\n return new et(t);\n }).X_(this.Df.rn());\n }\n }, t.prototype.get = function (t, e) {\n var n = this;\n\n if (L(\"DocumentSnapshot.get\", arguments, 1, 2), e = da(\"DocumentSnapshot.get\", e), this.Df) {\n var r = this.Df.data().field(qu(\"DocumentSnapshot.get\", t, this.f_));\n if (null !== r) return new Hu(this.yf.__, this.yf.gf(), e.serverTimestamps || \"none\", function (t) {\n return new ta(t, n.yf, n.d_);\n }, function (t) {\n return new et(t);\n }).X_(r);\n }\n }, Object.defineProperty(t.prototype, \"id\", {\n get: function get() {\n return this.f_.path._();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"ref\", {\n get: function get() {\n return new ta(this.f_, this.yf, this.d_);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"exists\", {\n get: function get() {\n return null !== this.Df;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"metadata\", {\n get: function get() {\n return new ea(this.Nf, this.Cf);\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function (e) {\n if (!(e instanceof t)) throw G(\"isEqual\", \"DocumentSnapshot\", 1, e);\n return this.yf === e.yf && this.Cf === e.Cf && this.f_.isEqual(e.f_) && (null === this.Df ? null === e.Df : this.Df.isEqual(e.Df)) && this.d_ === e.d_;\n }, t;\n}(),\n ra =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.prototype.data = function (t) {\n return e.prototype.data.call(this, t);\n }, n;\n}(na);\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// settings() defaults:\n\n\nfunction ia(t, e, n, r, i, o, s) {\n var u;\n\n if (i.p()) {\n if (\"array-contains\"\n /* ARRAY_CONTAINS */\n === o || \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n === o) throw new c(a.INVALID_ARGUMENT, \"Invalid Query. You can't perform '\" + o + \"' queries on FieldPath.documentId().\");\n\n if (\"in\"\n /* IN */\n === o || \"not-in\"\n /* NOT_IN */\n === o) {\n ua(s, o);\n\n for (var h = [], f = 0, l = s; f < l.length; f++) {\n var p = l[f];\n h.push(sa(r, t, p));\n }\n\n u = {\n arrayValue: {\n values: h\n }\n };\n } else u = sa(r, t, s);\n } else \"in\"\n /* IN */\n !== o && \"not-in\"\n /* NOT_IN */\n !== o && \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n !== o || ua(s, o), u = Vu(n, e, s,\n /* allowArrays= */\n \"in\"\n /* IN */\n === o || \"not-in\"\n /* NOT_IN */\n === o);\n\n var d = Jn.create(i, o, u);\n return function (t, e) {\n if (e.hn()) {\n var n = qn(t);\n if (null !== n && !n.isEqual(e.field)) throw new c(a.INVALID_ARGUMENT, \"Invalid query. All where filters with an inequality (<, <=, >, or >=) must be on the same field. But you have inequality filters on '\" + n.toString() + \"' and '\" + e.field.toString() + \"'\");\n var r = Mn(t);\n null !== r && aa(t, e.field, r);\n }\n\n var i = function (t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n var i = r[n];\n if (e.indexOf(i.op) >= 0) return i.op;\n }\n\n return null;\n }(t,\n /**\n * Given an operator, returns the set of operators that cannot be used with it.\n *\n * Operators in a query must adhere to the following set of rules:\n * 1. Only one array operator is allowed.\n * 2. Only one disjunctive operator is allowed.\n * 3. NOT_EQUAL cannot be used with another NOT_EQUAL operator.\n * 4. NOT_IN cannot be used with array, disjunctive, or NOT_EQUAL operators.\n *\n * Array operators: ARRAY_CONTAINS, ARRAY_CONTAINS_ANY\n * Disjunctive operators: IN, ARRAY_CONTAINS_ANY, NOT_IN\n */\n function (t) {\n switch (t) {\n case \"!=\"\n /* NOT_EQUAL */\n :\n return [\"!=\"\n /* NOT_EQUAL */\n , \"not-in\"\n /* NOT_IN */\n ];\n\n case \"array-contains\"\n /* ARRAY_CONTAINS */\n :\n return [\"array-contains\"\n /* ARRAY_CONTAINS */\n , \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , \"not-in\"\n /* NOT_IN */\n ];\n\n case \"in\"\n /* IN */\n :\n return [\"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , \"in\"\n /* IN */\n , \"not-in\"\n /* NOT_IN */\n ];\n\n case \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n :\n return [\"array-contains\"\n /* ARRAY_CONTAINS */\n , \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , \"in\"\n /* IN */\n , \"not-in\"\n /* NOT_IN */\n ];\n\n case \"not-in\"\n /* NOT_IN */\n :\n return [\"array-contains\"\n /* ARRAY_CONTAINS */\n , \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , \"in\"\n /* IN */\n , \"not-in\"\n /* NOT_IN */\n , \"!=\"\n /* NOT_EQUAL */\n ];\n\n default:\n return [];\n }\n }(e.op));\n\n if (null !== i) // Special case when it's a duplicate op to give a slightly clearer error message.\n throw i === e.op ? new c(a.INVALID_ARGUMENT, \"Invalid query. You cannot use more than one '\" + e.op.toString() + \"' filter.\") : new c(a.INVALID_ARGUMENT, \"Invalid query. You cannot use '\" + e.op.toString() + \"' filters with '\" + i.toString() + \"' filters.\");\n }(t, d), d;\n}\n\nfunction oa(t, e, n) {\n if (null !== t.startAt) throw new c(a.INVALID_ARGUMENT, \"Invalid query. You must not call startAt() or startAfter() before calling orderBy().\");\n if (null !== t.endAt) throw new c(a.INVALID_ARGUMENT, \"Invalid query. You must not call endAt() or endBefore() before calling orderBy().\");\n var r = new fr(e, n);\n return function (t, e) {\n if (null === Mn(t)) {\n // This is the first order by. It must match any inequality.\n var n = qn(t);\n null !== n && aa(t, n, e.field);\n }\n }(t, r), r\n /**\n * Create a Bound from a query and a document.\n *\n * Note that the Bound will always include the key of the document\n * and so only the provided document will compare equal to the returned\n * position.\n *\n * Will throw if the document does not contain all fields of the order by\n * of the query or if any of the fields in the order by are an uncommitted\n * server timestamp.\n */\n\n /**\n * Parses the given documentIdValue into a ReferenceValue, throwing\n * appropriate errors if the value is anything other than a DocumentReference\n * or String, or if the string is malformed.\n */\n ;\n}\n\nfunction sa(t, e, n) {\n if (\"string\" == typeof n) {\n if (\"\" === n) throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid document ID, but it was an empty string.\");\n if (!jn(e) && -1 !== n.indexOf(\"/\")) throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying a collection by FieldPath.documentId(), you must provide a plain document ID, but '\" + n + \"' contains a '/' character.\");\n var r = e.path.child(E.g(n));\n if (!A.F(r)) throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying a collection group by FieldPath.documentId(), the value provided must result in a valid document path, but '\" + r + \"' is not because it has an odd number of segments (\" + r.length + \").\");\n return ae(t, new A(r));\n }\n\n if (n instanceof Au) return ae(t, n.f_);\n throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid string or a DocumentReference, but it was: \" + M(n) + \".\");\n}\n/**\n * Validates that the value passed into a disjunctive filter satisfies all\n * array requirements.\n */\n\n\nfunction ua(t, e) {\n if (!Array.isArray(t) || 0 === t.length) throw new c(a.INVALID_ARGUMENT, \"Invalid Query. A non-empty array is required for '\" + e.toString() + \"' filters.\");\n if (t.length > 10) throw new c(a.INVALID_ARGUMENT, \"Invalid Query. '\" + e.toString() + \"' filters support a maximum of 10 elements in the value array.\");\n\n if (\"in\"\n /* IN */\n === e || \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n === e) {\n if (t.indexOf(null) >= 0) throw new c(a.INVALID_ARGUMENT, \"Invalid Query. '\" + e.toString() + \"' filters cannot contain 'null' in the value array.\");\n if (t.filter(function (t) {\n return Number.isNaN(t);\n }).length > 0) throw new c(a.INVALID_ARGUMENT, \"Invalid Query. '\" + e.toString() + \"' filters cannot contain 'NaN' in the value array.\");\n }\n}\n\nfunction aa(t, e, n) {\n if (!n.isEqual(e)) throw new c(a.INVALID_ARGUMENT, \"Invalid query. You have a where filter with an inequality (<, <=, >, or >=) on field '\" + e.toString() + \"' and so you must also use '\" + e.toString() + \"' as your first orderBy(), but your first orderBy() is on field '\" + n.toString() + \"' instead.\");\n}\n\nfunction ca(t) {\n if (Fn(t) && 0 === t.on.length) throw new c(a.UNIMPLEMENTED, \"limitToLast() queries require specifying at least one orderBy() clause\");\n}\n\nvar ha =\n/** @class */\nfunction () {\n function e(t, e, n) {\n this.Ff = t, this.firestore = e, this.d_ = n;\n }\n\n return e.prototype.where = function (t, n, r) {\n D(\"Query.where\", arguments, 3), q(\"Query.where\", 3, r); // Enumerated from the WhereFilterOp type in index.d.ts.\n\n var i = U(\"Query.where\", [\"<\"\n /* LESS_THAN */\n , \"<=\"\n /* LESS_THAN_OR_EQUAL */\n , \"==\"\n /* EQUAL */\n , \"!=\"\n /* NOT_EQUAL */\n , \">=\"\n /* GREATER_THAN_OR_EQUAL */\n , \">\"\n /* GREATER_THAN */\n , \"array-contains\"\n /* ARRAY_CONTAINS */\n , \"in\"\n /* IN */\n , \"array-contains-any\"\n /* ARRAY_CONTAINS_ANY */\n , \"not-in\"\n /* NOT_IN */\n ], 2, n),\n o = qu(\"Query.where\", t),\n s = ia(this.Ff, \"Query.where\", this.firestore.mf, this.firestore.__, o, i, r);\n return new e(function (t, e) {\n var n = t.filters.concat([e]);\n return new Pn(t.path, t.collectionGroup, t.on.slice(), n, t.limit, t.an, t.startAt, t.endAt);\n }(this.Ff, s), this.firestore, this.d_);\n }, e.prototype.orderBy = function (t, n) {\n var r;\n if (L(\"Query.orderBy\", arguments, 1, 2), R(\"Query.orderBy\", \"non-empty string\", 2, n), void 0 === n || \"asc\" === n) r = \"asc\"\n /* ASCENDING */\n ;else {\n if (\"desc\" !== n) throw new c(a.INVALID_ARGUMENT, \"Function Query.orderBy() has unknown direction '\" + n + \"', expected 'asc' or 'desc'.\");\n r = \"desc\"\n /* DESCENDING */\n ;\n }\n var i = qu(\"Query.orderBy\", t),\n o = oa(this.Ff, i, r);\n return new e(function (t, e) {\n // TODO(dimond): validate that orderBy does not list the same key twice.\n var n = t.on.concat([e]);\n return new Pn(t.path, t.collectionGroup, n, t.filters.slice(), t.limit, t.an, t.startAt, t.endAt);\n }(this.Ff, o), this.firestore, this.d_);\n }, e.prototype.limit = function (t) {\n return D(\"Query.limit\", arguments, 1), k(\"Query.limit\", \"number\", 1, t), z(\"Query.limit\", 1, t), new e(Bn(this.Ff, t, \"F\"\n /* First */\n ), this.firestore, this.d_);\n }, e.prototype.limitToLast = function (t) {\n return D(\"Query.limitToLast\", arguments, 1), k(\"Query.limitToLast\", \"number\", 1, t), z(\"Query.limitToLast\", 1, t), new e(Bn(this.Ff, t, \"L\"\n /* Last */\n ), this.firestore, this.d_);\n }, e.prototype.startAt = function (t) {\n for (var n = [], r = 1; r < arguments.length; r++) {\n n[r - 1] = arguments[r];\n }\n\n x(\"Query.startAt\", arguments, 1);\n var i = this.xf(\"Query.startAt\", t, n,\n /*before=*/\n !0);\n return new e(Wn(this.Ff, i), this.firestore, this.d_);\n }, e.prototype.startAfter = function (t) {\n for (var n = [], r = 1; r < arguments.length; r++) {\n n[r - 1] = arguments[r];\n }\n\n x(\"Query.startAfter\", arguments, 1);\n var i = this.xf(\"Query.startAfter\", t, n,\n /*before=*/\n !1);\n return new e(Wn(this.Ff, i), this.firestore, this.d_);\n }, e.prototype.endBefore = function (t) {\n for (var n = [], r = 1; r < arguments.length; r++) {\n n[r - 1] = arguments[r];\n }\n\n x(\"Query.endBefore\", arguments, 1);\n var i = this.xf(\"Query.endBefore\", t, n,\n /*before=*/\n !0);\n return new e(Kn(this.Ff, i), this.firestore, this.d_);\n }, e.prototype.endAt = function (t) {\n for (var n = [], r = 1; r < arguments.length; r++) {\n n[r - 1] = arguments[r];\n }\n\n x(\"Query.endAt\", arguments, 1);\n var i = this.xf(\"Query.endAt\", t, n,\n /*before=*/\n !1);\n return new e(Kn(this.Ff, i), this.firestore, this.d_);\n }, e.prototype.isEqual = function (t) {\n if (!(t instanceof e)) throw G(\"isEqual\", \"Query\", 1, t);\n return this.firestore === t.firestore && Qn(this.Ff, t.Ff) && this.d_ === t.d_;\n }, e.prototype.withConverter = function (t) {\n return new e(this.Ff, this.firestore, t);\n },\n /** Helper function to create a bound from a document or fields */\n e.prototype.xf = function (e, n, r, i) {\n if (q(e, 1, n), n instanceof na) return D(e, t.__spreadArrays([n], r), 1), function (t, e, n, r, i) {\n if (!r) throw new c(a.NOT_FOUND, \"Can't use a DocumentSnapshot that doesn't exist for \" + n + \"().\"); // Because people expect to continue/end a query at the exact document\n // provided, we need to use the implicit sort order rather than the explicit\n // sort order, because it's guaranteed to contain the document key. That way\n // the position becomes unambiguous and the query continues/ends exactly at\n // the provided document. Without the key (by using the explicit sort\n // orders), multiple documents could match the position, yielding duplicate\n // results.\n\n for (var o = [], s = 0, u = Gn(t); s < u.length; s++) {\n var h = u[s];\n if (h.field.p()) o.push(ae(e, r.key));else {\n var f = r.field(h.field);\n if (Ht(f)) throw new c(a.INVALID_ARGUMENT, 'Invalid query. You are trying to start or end a query using a document for which the field \"' + h.field + '\" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');\n\n if (null === f) {\n var l = h.field.R();\n throw new c(a.INVALID_ARGUMENT, \"Invalid query. You are trying to start or end a query using a document for which the field '\" + l + \"' (used as the orderBy) does not exist.\");\n }\n\n o.push(f);\n }\n }\n\n return new ur(o, i);\n }(this.Ff, this.firestore.__, e, n.Df, i);\n var o = [n].concat(r);\n return function (t, e, n, r, i, o) {\n // Use explicit order by's because it has to match the query the user made\n var s = t.on;\n if (i.length > s.length) throw new c(a.INVALID_ARGUMENT, \"Too many arguments provided to \" + r + \"(). The number of arguments must be less than or equal to the number of orderBy() clauses\");\n\n for (var u = [], h = 0; h < i.length; h++) {\n var f = i[h];\n\n if (s[h].field.p()) {\n if (\"string\" != typeof f) throw new c(a.INVALID_ARGUMENT, \"Invalid query. Expected a string for document ID in \" + r + \"(), but got a \" + typeof f);\n if (!jn(t) && -1 !== f.indexOf(\"/\")) throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying a collection and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must be a plain document ID, but '\" + f + \"' contains a slash.\");\n var l = t.path.child(E.g(f));\n if (!A.F(l)) throw new c(a.INVALID_ARGUMENT, \"Invalid query. When querying a collection group and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must result in a valid document path, but '\" + l + \"' is not because it contains an odd number of segments.\");\n var p = new A(l);\n u.push(ae(e, p));\n } else {\n var d = Vu(n, r, f);\n u.push(d);\n }\n }\n\n return new ur(u, o);\n }(this.Ff, this.firestore.__, this.firestore.mf, e, o, i);\n }, e.prototype.onSnapshot = function () {\n for (var t, e, n, r = this, i = [], o = 0; o < arguments.length; o++) {\n i[o] = arguments[o];\n }\n\n L(\"Query.onSnapshot\", arguments, 1, 4);\n var s = {},\n u = 0;\n\n if (\"object\" != typeof i[u] || Qu(i[u]) || (j(\"Query.onSnapshot\", s = i[u], [\"includeMetadataChanges\"]), P(\"Query.onSnapshot\", \"boolean\", \"includeMetadataChanges\", s.includeMetadataChanges), u++), Qu(i[u])) {\n var a = i[u];\n i[u] = null === (t = a.next) || void 0 === t ? void 0 : t.bind(a), i[u + 1] = null === (e = a.error) || void 0 === e ? void 0 : e.bind(a), i[u + 2] = null === (n = a.complete) || void 0 === n ? void 0 : n.bind(a);\n } else k(\"Query.onSnapshot\", \"function\", u, i[u]), R(\"Query.onSnapshot\", \"function\", u + 1, i[u + 1]), R(\"Query.onSnapshot\", \"function\", u + 2, i[u + 2]);\n\n var c = {\n next: function next(t) {\n i[u] && i[u](new fa(r.firestore, r.Ff, t, r.d_));\n },\n error: i[u + 1],\n complete: i[u + 2]\n };\n return ca(this.Ff), this.firestore.hf().listen(this.Ff, s, c);\n }, e.prototype.get = function (t) {\n var e = this;\n L(\"Query.get\", arguments, 0, 1), va(\"Query.get\", t), ca(this.Ff);\n var n = this.firestore.hf();\n return (t && \"cache\" === t.source ? n.j_(this.Ff) : n.K_(this.Ff, t)).then(function (t) {\n return new fa(e.firestore, e.Ff, t, e.d_);\n });\n }, e;\n}(),\n fa =\n/** @class */\nfunction () {\n function t(t, e, n, r) {\n this.yf = t, this.$f = e, this.kf = n, this.d_ = r, this.Mf = null, this.Of = null, this.metadata = new ea(n.hasPendingWrites, n.fromCache);\n }\n\n return Object.defineProperty(t.prototype, \"docs\", {\n get: function get() {\n var t = [];\n return this.forEach(function (e) {\n return t.push(e);\n }), t;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"empty\", {\n get: function get() {\n return this.kf.docs.m();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"size\", {\n get: function get() {\n return this.kf.docs.size;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.forEach = function (t, e) {\n var n = this;\n L(\"QuerySnapshot.forEach\", arguments, 1, 2), k(\"QuerySnapshot.forEach\", \"function\", 1, t), this.kf.docs.forEach(function (r) {\n t.call(e, n.Lf(r, n.metadata.fromCache, n.kf.Wt.has(r.key)));\n });\n }, Object.defineProperty(t.prototype, \"query\", {\n get: function get() {\n return new ha(this.$f, this.yf, this.d_);\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.docChanges = function (t) {\n t && (j(\"QuerySnapshot.docChanges\", t, [\"includeMetadataChanges\"]), P(\"QuerySnapshot.docChanges\", \"boolean\", \"includeMetadataChanges\", t.includeMetadataChanges));\n var e = !(!t || !t.includeMetadataChanges);\n if (e && this.kf.Kt) throw new c(a.INVALID_ARGUMENT, \"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().\");\n return this.Mf && this.Of === e || (this.Mf =\n /**\n * Calculates the array of DocumentChanges for a given ViewSnapshot.\n *\n * Exported for testing.\n *\n * @param snapshot The ViewSnapshot that represents the expected state.\n * @param includeMetadataChanges Whether to include metadata changes.\n * @param converter A factory function that returns a QueryDocumentSnapshot.\n * @return An object that matches the DocumentChange API.\n */\n function (t, e, n) {\n if (t.Qt.m()) {\n // Special case the first snapshot because index calculation is easy and\n // fast\n var r = 0;\n return t.docChanges.map(function (e) {\n var i = n(e.doc, t.fromCache, t.Wt.has(e.doc.key));\n return e.doc, {\n type: \"added\",\n doc: i,\n oldIndex: -1,\n newIndex: r++\n };\n });\n } // A DocumentSet that is updated incrementally as changes are applied to use\n // to lookup the index of a document.\n\n\n var i = t.Qt;\n return t.docChanges.filter(function (t) {\n return e || 3\n /* Metadata */\n !== t.type;\n }).map(function (e) {\n var r = n(e.doc, t.fromCache, t.Wt.has(e.doc.key)),\n o = -1,\n s = -1;\n return 0\n /* Added */\n !== e.type && (o = i.indexOf(e.doc.key), i = i.delete(e.doc.key)), 1\n /* Removed */\n !== e.type && (s = (i = i.add(e.doc)).indexOf(e.doc.key)), {\n type: ga(e.type),\n doc: r,\n oldIndex: o,\n newIndex: s\n };\n });\n }(this.kf, e, this.Lf.bind(this)), this.Of = e), this.Mf;\n },\n /** Check the equality. The call can be very expensive. */\n t.prototype.isEqual = function (e) {\n if (!(e instanceof t)) throw G(\"isEqual\", \"QuerySnapshot\", 1, e);\n return this.yf === e.yf && Qn(this.$f, e.$f) && this.kf.isEqual(e.kf) && this.d_ === e.d_;\n }, t.prototype.Lf = function (t, e, n) {\n return new ra(this.yf, t.key, t, e, n, this.d_);\n }, t;\n}(),\n la =\n/** @class */\nfunction (e) {\n function n(t, n, r) {\n var i = this;\n if ((i = e.call(this, Un(t), n, r) || this).Bf = t, t.length % 2 != 1) throw new c(a.INVALID_ARGUMENT, \"Invalid collection reference. Collection references must have an odd number of segments, but \" + t.R() + \" has \" + t.length);\n return i;\n }\n\n return t.__extends(n, e), Object.defineProperty(n.prototype, \"id\", {\n get: function get() {\n return this.Ff.path._();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"parent\", {\n get: function get() {\n var t = this.Ff.path.h();\n return t.m() ? null : new ta(new A(t), this.firestore,\n /* converter= */\n null);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"path\", {\n get: function get() {\n return this.Ff.path.R();\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.doc = function (t) {\n L(\"CollectionReference.doc\", arguments, 0, 1), // We allow omission of 'pathString' but explicitly prohibit passing in both\n // 'undefined' and 'null'.\n 0 === arguments.length && (t = Q.k()), k(\"CollectionReference.doc\", \"non-empty string\", 1, t);\n var e = E.g(t);\n return ta.Rf(this.Ff.path.child(e), this.firestore, this.d_);\n }, n.prototype.add = function (t) {\n D(\"CollectionReference.add\", arguments, 1);\n var e = this.d_ ? this.d_.toFirestore(t) : t;\n k(\"CollectionReference.add\", \"object\", 1, e);\n var n = this.doc(); // Call set() with the converted value directly to avoid calling toFirestore() a second time.\n\n return new ta(n.f_, this.firestore, null).set(e).then(function () {\n return n;\n });\n }, n.prototype.withConverter = function (t) {\n return new n(this.Bf, this.firestore, t);\n }, n;\n}(ha);\n\nfunction pa(t, e) {\n if (void 0 === e) return {\n merge: !1\n };\n if (j(t, e, [\"merge\", \"mergeFields\"]), P(t, \"boolean\", \"merge\", e.merge), function (t, e, n, r, i) {\n void 0 !== r && function (t, e, n, r, i) {\n if (!(r instanceof Array)) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires its \" + e + \" option to be an array, but it was: \" + M(r));\n\n for (var o = 0; o < r.length; ++o) {\n if (!i(r[o])) throw new c(a.INVALID_ARGUMENT, \"Function \" + t + \"() requires all \" + e + \" elements to be \" + n + \", but the value at index \" + o + \" was: \" + M(r[o]));\n }\n }(t, e, n, r, i);\n }(t, \"mergeFields\", \"a string or a FieldPath\", e.mergeFields, function (t) {\n return \"string\" == typeof t || t instanceof du;\n }), void 0 !== e.mergeFields && void 0 !== e.merge) throw new c(a.INVALID_ARGUMENT, \"Invalid options passed to function \" + t + '(): You cannot specify both \"merge\" and \"mergeFields\".');\n return e;\n}\n\nfunction da(t, e) {\n return void 0 === e ? {} : (j(t, e, [\"serverTimestamps\"]), V(t, 0, \"serverTimestamps\", e.serverTimestamps, [\"estimate\", \"previous\", \"none\"]), e);\n}\n\nfunction va(t, e) {\n R(t, \"object\", 1, e), e && (j(t, e, [\"source\"]), V(t, 0, \"source\", e.source, [\"default\", \"server\", \"cache\"]));\n}\n\nfunction ya(t, e, n) {\n if (e instanceof Au) {\n if (e.firestore !== n) throw new c(a.INVALID_ARGUMENT, \"Provided document reference is from a different Firestore instance.\");\n return e;\n }\n\n throw G(t, \"DocumentReference\", 1, e);\n}\n\nfunction ga(t) {\n switch (t) {\n case 0\n /* Added */\n :\n return \"added\";\n\n case 2\n /* Modified */\n :\n case 3\n /* Metadata */\n :\n return \"modified\";\n\n case 1\n /* Removed */\n :\n return \"removed\";\n\n default:\n return y();\n }\n}\n/**\n * Converts custom model object of type T into DocumentData by applying the\n * converter if it exists.\n *\n * This function is used when converting user objects to DocumentData\n * because we want to provide the user with a more specific error message if\n * their set() or fails due to invalid data originating from a toFirestore()\n * call.\n */\n\n\nfunction ma(t, e, n) {\n // Cast to `any` in order to satisfy the union type constraint on\n // toFirestore().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return t ? n && (n.merge || n.mergeFields) ? t.toFirestore(e, n) : t.toFirestore(e) : e;\n}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar wa =\n/** @class */\nfunction (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return t.__extends(n, e), n.serverTimestamp = function () {\n S(\"FieldValue.serverTimestamp\", arguments);\n var t = new wu(\"serverTimestamp\");\n return t.e_ = \"FieldValue.serverTimestamp\", new n(t);\n }, n.delete = function () {\n S(\"FieldValue.delete\", arguments);\n var t = new gu(\"deleteField\");\n return t.e_ = \"FieldValue.delete\", new n(t);\n }, n.arrayUnion = function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n x(\"FieldValue.arrayUnion\", arguments, 1);\n\n var r =\n /**\n * Returns a special value that can be used with {@link setDoc()} or {@link\n * updateDoc()} that tells the server to union the given elements with any array\n * value that already exists on the server. Each specified element that doesn't\n * already exist in the array will be added to the end. If the field being\n * modified is not already an array it will be overwritten with an array\n * containing exactly the specified elements.\n *\n * @param elements The elements to union into the array.\n * @return The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`.\n */\n function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n } // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n\n\n return x(\"arrayUnion()\", arguments, 1), new _u(\"arrayUnion\", t);\n }.apply(void 0, t);\n\n return r.e_ = \"FieldValue.arrayUnion\", new n(r);\n }, n.arrayRemove = function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n x(\"FieldValue.arrayRemove\", arguments, 1);\n\n var r = function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n } // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n\n\n return x(\"arrayRemove()\", arguments, 1), new bu(\"arrayRemove\", t);\n }.apply(void 0, t);\n\n return r.e_ = \"FieldValue.arrayRemove\", new n(r);\n }, n.increment = function (t) {\n k(\"FieldValue.increment\", \"number\", 1, t), D(\"FieldValue.increment\", arguments, 1);\n\n var e = function (t) {\n return new Iu(\"increment\", t);\n }(t);\n\n return e.e_ = \"FieldValue.increment\", new n(e);\n }, n.prototype.isEqual = function (t) {\n return this.l_.isEqual(t.l_);\n }, n;\n}(Tu),\n _a = {\n Firestore: Xu,\n GeoPoint: Eu,\n Timestamp: ot,\n Blob: et,\n Transaction: Ju,\n WriteBatch: Zu,\n DocumentReference: ta,\n DocumentSnapshot: na,\n Query: ha,\n QueryDocumentSnapshot: ra,\n QuerySnapshot: fa,\n CollectionReference: la,\n FieldPath: du,\n FieldValue: wa,\n setLogLevel: Xu.setLogLevel,\n CACHE_SIZE_UNLIMITED: Yu\n};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Configures Firestore as part of the Firebase SDK by calling registerService.\n *\n * @param firebase The FirebaseNamespace to register Firestore with\n * @param firestoreFactory A factory function that returns a new Firestore\n * instance.\n */\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Registers the main Firestore build with the components framework.\n * Persistence can be enabled via `firebase.firestore().enablePersistence()`.\n */\n\n\nfunction ba(t) {\n !function (t, e) {\n t.INTERNAL.registerComponent(new o.Component(\"firestore\", function (t) {\n return function (t, e) {\n var n = new fu(),\n r = new hu(n);\n return new Xu(t, e, r, n);\n }(t.getProvider(\"app\").getImmediate(), t.getProvider(\"auth-internal\"));\n }, \"PUBLIC\"\n /* PUBLIC */\n ).setServiceProps(Object.assign({}, _a)));\n }(t), t.registerVersion(\"@firebase/firestore\", \"1.18.0\");\n}\n\nba(u.default), exports.__PRIVATE_registerFirestore = ba;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar g,\n goog = goog || {},\n k = commonjsGlobal || self;\n\nfunction aa() {}\n\nfunction ba(a) {\n var b = typeof a;\n return \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\";\n}\n\nfunction ca(a) {\n var b = ba(a);\n return \"array\" == b || \"object\" == b && \"number\" == typeof a.length;\n}\n\nfunction n(a) {\n var b = typeof a;\n return \"object\" == b && null != a || \"function\" == b;\n}\n\nfunction da(a) {\n return Object.prototype.hasOwnProperty.call(a, ea) && a[ea] || (a[ea] = ++fa);\n}\n\nvar ea = \"closure_uid_\" + (1E9 * Math.random() >>> 0),\n fa = 0;\n\nfunction ha(a, b, c) {\n return a.call.apply(a.bind, arguments);\n}\n\nfunction ja(a, b, c) {\n if (!a) throw Error();\n\n if (2 < arguments.length) {\n var d = Array.prototype.slice.call(arguments, 2);\n return function () {\n var e = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(e, d);\n return a.apply(b, e);\n };\n }\n\n return function () {\n return a.apply(b, arguments);\n };\n}\n\nfunction p(a, b, c) {\n Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? p = ha : p = ja;\n return p.apply(null, arguments);\n}\n\nfunction ka(a, b) {\n var c = Array.prototype.slice.call(arguments, 1);\n return function () {\n var d = c.slice();\n d.push.apply(d, arguments);\n return a.apply(this, d);\n };\n}\n\nvar q = Date.now;\n\nfunction r(a, b) {\n function c() {}\n\n c.prototype = b.prototype;\n a.S = b.prototype;\n a.prototype = new c();\n a.prototype.constructor = a;\n}\n\nfunction u() {\n this.j = this.j;\n this.i = this.i;\n}\n\nvar la = 0;\nu.prototype.j = !1;\n\nu.prototype.ja = function () {\n if (!this.j && (this.j = !0, this.G(), 0 != la)) {\n var a = da(this);\n }\n};\n\nu.prototype.G = function () {\n if (this.i) for (; this.i.length;) {\n this.i.shift()();\n }\n};\n\nvar na = Array.prototype.indexOf ? function (a, b) {\n return Array.prototype.indexOf.call(a, b, void 0);\n} : function (a, b) {\n if (\"string\" === typeof a) return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0);\n\n for (var c = 0; c < a.length; c++) {\n if (c in a && a[c] === b) return c;\n }\n\n return -1;\n},\n oa = Array.prototype.forEach ? function (a, b, c) {\n Array.prototype.forEach.call(a, b, c);\n} : function (a, b, c) {\n for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++) {\n f in e && b.call(c, e[f], f, a);\n }\n};\n\nfunction pa(a) {\n a: {\n var b = qa;\n\n for (var c = a.length, d = \"string\" === typeof a ? a.split(\"\") : a, e = 0; e < c; e++) {\n if (e in d && b.call(void 0, d[e], e, a)) {\n b = e;\n break a;\n }\n }\n\n b = -1;\n }\n\n return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b];\n}\n\nfunction ra(a) {\n return Array.prototype.concat.apply([], arguments);\n}\n\nfunction sa(a) {\n var b = a.length;\n\n if (0 < b) {\n for (var c = Array(b), d = 0; d < b; d++) {\n c[d] = a[d];\n }\n\n return c;\n }\n\n return [];\n}\n\nfunction ta(a) {\n return /^[\\s\\xa0]*$/.test(a);\n}\n\nvar ua = String.prototype.trim ? function (a) {\n return a.trim();\n} : function (a) {\n return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1];\n};\n\nfunction v(a, b) {\n return -1 != a.indexOf(b);\n}\n\nfunction xa(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nvar w;\n\na: {\n var ya = k.navigator;\n\n if (ya) {\n var za = ya.userAgent;\n\n if (za) {\n w = za;\n break a;\n }\n }\n\n w = \"\";\n}\n\nfunction Aa(a, b, c) {\n for (var d in a) {\n b.call(c, a[d], d, a);\n }\n}\n\nfunction Ba(a) {\n var b = {};\n\n for (var c in a) {\n b[c] = a[c];\n }\n\n return b;\n}\n\nvar Ca = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\n\nfunction Da(a, b) {\n var c, d;\n\n for (var e = 1; e < arguments.length; e++) {\n d = arguments[e];\n\n for (c in d) {\n a[c] = d[c];\n }\n\n for (var f = 0; f < Ca.length; f++) {\n c = Ca[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\n }\n }\n}\n\nfunction Ea(a) {\n Ea[\" \"](a);\n return a;\n}\n\nEa[\" \"] = aa;\n\nfunction Fa(a, b) {\n var c = Ga;\n return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a);\n}\n\nvar Ha = v(w, \"Opera\"),\n x = v(w, \"Trident\") || v(w, \"MSIE\"),\n Ia = v(w, \"Edge\"),\n Ja = Ia || x,\n Ka = v(w, \"Gecko\") && !(v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\")) && !(v(w, \"Trident\") || v(w, \"MSIE\")) && !v(w, \"Edge\"),\n La = v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\");\n\nfunction Ma() {\n var a = k.document;\n return a ? a.documentMode : void 0;\n}\n\nvar Na;\n\na: {\n var Oa = \"\",\n Pa = function () {\n var a = w;\n if (Ka) return /rv:([^\\);]+)(\\)|;)/.exec(a);\n if (Ia) return /Edge\\/([\\d\\.]+)/.exec(a);\n if (x) return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);\n if (La) return /WebKit\\/(\\S+)/.exec(a);\n if (Ha) return /(?:Version)[ \\/]?(\\S+)/.exec(a);\n }();\n\n Pa && (Oa = Pa ? Pa[1] : \"\");\n\n if (x) {\n var Qa = Ma();\n\n if (null != Qa && Qa > parseFloat(Oa)) {\n Na = String(Qa);\n break a;\n }\n }\n\n Na = Oa;\n}\n\nvar Ga = {};\n\nfunction Ra(a) {\n return Fa(a, function () {\n {\n var b = 0;\n var e = ua(String(Na)).split(\".\"),\n f = ua(String(a)).split(\".\"),\n h = Math.max(e.length, f.length);\n\n for (var m = 0; 0 == b && m < h; m++) {\n var c = e[m] || \"\",\n d = f[m] || \"\";\n\n do {\n c = /(\\d*)(\\D*)(.*)/.exec(c) || [\"\", \"\", \"\", \"\"];\n d = /(\\d*)(\\D*)(.*)/.exec(d) || [\"\", \"\", \"\", \"\"];\n if (0 == c[0].length && 0 == d[0].length) break;\n b = xa(0 == c[1].length ? 0 : parseInt(c[1], 10), 0 == d[1].length ? 0 : parseInt(d[1], 10)) || xa(0 == c[2].length, 0 == d[2].length) || xa(c[2], d[2]);\n c = c[3];\n d = d[3];\n } while (0 == b);\n }\n }\n return 0 <= b;\n });\n}\n\nvar Sa;\n\nif (k.document && x) {\n var Ta = Ma();\n Sa = Ta ? Ta : parseInt(Na, 10) || void 0;\n} else Sa = void 0;\n\nvar Ua = Sa;\n\nvar Va = !x || 9 <= Number(Ua),\n Wa = x && !Ra(\"9\"),\n Xa = function () {\n if (!k.addEventListener || !Object.defineProperty) return !1;\n var a = !1,\n b = Object.defineProperty({}, \"passive\", {\n get: function get() {\n a = !0;\n }\n });\n\n try {\n k.addEventListener(\"test\", aa, b), k.removeEventListener(\"test\", aa, b);\n } catch (c) {}\n\n return a;\n}();\n\nfunction y(a, b) {\n this.type = a;\n this.a = this.target = b;\n this.defaultPrevented = !1;\n}\n\ny.prototype.b = function () {\n this.defaultPrevented = !0;\n};\n\nfunction A(a, b) {\n y.call(this, a ? a.type : \"\");\n this.relatedTarget = this.a = this.target = null;\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\n this.key = \"\";\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\n this.pointerId = 0;\n this.pointerType = \"\";\n this.c = null;\n\n if (a) {\n var c = this.type = a.type,\n d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\n this.target = a.target || a.srcElement;\n this.a = b;\n\n if (b = a.relatedTarget) {\n if (Ka) {\n a: {\n try {\n Ea(b.nodeName);\n var e = !0;\n break a;\n } catch (f) {}\n\n e = !1;\n }\n\n e || (b = null);\n }\n } else \"mouseover\" == c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\n\n this.relatedTarget = b;\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\n this.button = a.button;\n this.key = a.key || \"\";\n this.ctrlKey = a.ctrlKey;\n this.altKey = a.altKey;\n this.shiftKey = a.shiftKey;\n this.metaKey = a.metaKey;\n this.pointerId = a.pointerId || 0;\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Ya[a.pointerType] || \"\";\n this.c = a;\n a.defaultPrevented && this.b();\n }\n}\n\nr(A, y);\nvar Ya = {\n 2: \"touch\",\n 3: \"pen\",\n 4: \"mouse\"\n};\n\nA.prototype.b = function () {\n A.S.b.call(this);\n var a = this.c;\n if (a.preventDefault) a.preventDefault();else if (a.returnValue = !1, Wa) try {\n if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1;\n } catch (b) {}\n};\n\nvar C = \"closure_listenable_\" + (1E6 * Math.random() | 0),\n Za = 0;\n\nfunction $a(a, b, c, d, e) {\n this.listener = a;\n this.proxy = null;\n this.src = b;\n this.type = c;\n this.capture = !!d;\n this.ca = e;\n this.key = ++Za;\n this.Y = this.Z = !1;\n}\n\nfunction ab(a) {\n a.Y = !0;\n a.listener = null;\n a.proxy = null;\n a.src = null;\n a.ca = null;\n}\n\nfunction bb(a) {\n this.src = a;\n this.a = {};\n this.b = 0;\n}\n\nbb.prototype.add = function (a, b, c, d, e) {\n var f = a.toString();\n a = this.a[f];\n a || (a = this.a[f] = [], this.b++);\n var h = cb(a, b, d, e);\n -1 < h ? (b = a[h], c || (b.Z = !1)) : (b = new $a(b, this.src, f, !!d, e), b.Z = c, a.push(b));\n return b;\n};\n\nfunction db(a, b) {\n var c = b.type;\n\n if (c in a.a) {\n var d = a.a[c],\n e = na(d, b),\n f;\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\n f && (ab(b), 0 == a.a[c].length && (delete a.a[c], a.b--));\n }\n}\n\nfunction cb(a, b, c, d) {\n for (var e = 0; e < a.length; ++e) {\n var f = a[e];\n if (!f.Y && f.listener == b && f.capture == !!c && f.ca == d) return e;\n }\n\n return -1;\n}\n\nvar eb = \"closure_lm_\" + (1E6 * Math.random() | 0),\n fb = {};\n\nfunction hb(a, b, c, d, e) {\n if (d && d.once) return ib(a, b, c, d, e);\n\n if (Array.isArray(b)) {\n for (var f = 0; f < b.length; f++) {\n hb(a, b[f], c, d, e);\n }\n\n return null;\n }\n\n c = jb(c);\n return a && a[C] ? a.va(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !1, d, e);\n}\n\nfunction kb(a, b, c, d, e, f) {\n if (!b) throw Error(\"Invalid event type\");\n var h = n(e) ? !!e.capture : !!e;\n if (h && !Va) return null;\n var m = lb(a);\n m || (a[eb] = m = new bb(a));\n c = m.add(b, c, d, h, f);\n if (c.proxy) return c;\n d = mb();\n c.proxy = d;\n d.src = a;\n d.listener = c;\n if (a.addEventListener) Xa || (e = h), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);else if (a.attachEvent) a.attachEvent(nb(b.toString()), d);else if (a.addListener && a.removeListener) a.addListener(d);else throw Error(\"addEventListener and attachEvent are unavailable.\");\n return c;\n}\n\nfunction mb() {\n var a = ob,\n b = Va ? function (c) {\n return a.call(b.src, b.listener, c);\n } : function (c) {\n c = a.call(b.src, b.listener, c);\n if (!c) return c;\n };\n return b;\n}\n\nfunction ib(a, b, c, d, e) {\n if (Array.isArray(b)) {\n for (var f = 0; f < b.length; f++) {\n ib(a, b[f], c, d, e);\n }\n\n return null;\n }\n\n c = jb(c);\n return a && a[C] ? a.wa(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !0, d, e);\n}\n\nfunction pb(a, b, c, d, e) {\n if (Array.isArray(b)) for (var f = 0; f < b.length; f++) {\n pb(a, b[f], c, d, e);\n } else (d = n(d) ? !!d.capture : !!d, c = jb(c), a && a[C]) ? (a = a.c, b = String(b).toString(), b in a.a && (f = a.a[b], c = cb(f, c, d, e), -1 < c && (ab(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.a[b], a.b--)))) : a && (a = lb(a)) && (b = a.a[b.toString()], a = -1, b && (a = cb(b, c, d, e)), (c = -1 < a ? b[a] : null) && rb(c));\n}\n\nfunction rb(a) {\n if (\"number\" !== typeof a && a && !a.Y) {\n var b = a.src;\n if (b && b[C]) db(b.c, a);else {\n var c = a.type,\n d = a.proxy;\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(nb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\n (c = lb(b)) ? (db(c, a), 0 == c.b && (c.src = null, b[eb] = null)) : ab(a);\n }\n }\n}\n\nfunction nb(a) {\n return a in fb ? fb[a] : fb[a] = \"on\" + a;\n}\n\nfunction sb(a, b) {\n var c = a.listener,\n d = a.ca || a.src;\n a.Z && rb(a);\n return c.call(d, b);\n}\n\nfunction ob(a, b) {\n if (a.Y) return !0;\n\n if (!Va) {\n if (!b) a: {\n b = [\"window\", \"event\"];\n\n for (var c = k, d = 0; d < b.length; d++) {\n if (c = c[b[d]], null == c) {\n b = null;\n break a;\n }\n }\n\n b = c;\n }\n b = new A(b, this);\n return sb(a, b);\n }\n\n return sb(a, new A(b, this));\n}\n\nfunction lb(a) {\n a = a[eb];\n return a instanceof bb ? a : null;\n}\n\nvar tb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\n\nfunction jb(a) {\n if (\"function\" == ba(a)) return a;\n a[tb] || (a[tb] = function (b) {\n return a.handleEvent(b);\n });\n return a[tb];\n}\n\nfunction D() {\n u.call(this);\n this.c = new bb(this);\n this.J = this;\n this.C = null;\n}\n\nr(D, u);\nD.prototype[C] = !0;\ng = D.prototype;\n\ng.addEventListener = function (a, b, c, d) {\n hb(this, a, b, c, d);\n};\n\ng.removeEventListener = function (a, b, c, d) {\n pb(this, a, b, c, d);\n};\n\ng.dispatchEvent = function (a) {\n var b,\n c = this.C;\n if (c) for (b = []; c; c = c.C) {\n b.push(c);\n }\n c = this.J;\n var d = a.type || a;\n if (\"string\" === typeof a) a = new y(a, c);else if (a instanceof y) a.target = a.target || c;else {\n var e = a;\n a = new y(d, c);\n Da(a, e);\n }\n e = !0;\n if (b) for (var f = b.length - 1; 0 <= f; f--) {\n var h = a.a = b[f];\n e = ub(h, d, !0, a) && e;\n }\n h = a.a = c;\n e = ub(h, d, !0, a) && e;\n e = ub(h, d, !1, a) && e;\n if (b) for (f = 0; f < b.length; f++) {\n h = a.a = b[f], e = ub(h, d, !1, a) && e;\n }\n return e;\n};\n\ng.G = function () {\n D.S.G.call(this);\n\n if (this.c) {\n var a = this.c,\n c;\n\n for (c in a.a) {\n for (var d = a.a[c], e = 0; e < d.length; e++) {\n ab(d[e]);\n }\n\n delete a.a[c];\n a.b--;\n }\n }\n\n this.C = null;\n};\n\ng.va = function (a, b, c, d) {\n return this.c.add(String(a), b, !1, c, d);\n};\n\ng.wa = function (a, b, c, d) {\n return this.c.add(String(a), b, !0, c, d);\n};\n\nfunction ub(a, b, c, d) {\n b = a.c.a[String(b)];\n if (!b) return !0;\n b = b.concat();\n\n for (var e = !0, f = 0; f < b.length; ++f) {\n var h = b[f];\n\n if (h && !h.Y && h.capture == c) {\n var m = h.listener,\n l = h.ca || h.src;\n h.Z && db(a.c, h);\n e = !1 !== m.call(l, d) && e;\n }\n }\n\n return e && !d.defaultPrevented;\n}\n\nvar vb = k.JSON.stringify;\n\nfunction wb() {\n this.b = this.a = null;\n}\n\nvar yb = new (\n/** @class */\nfunction () {\n function class_1(a, b, c) {\n this.f = c;\n this.c = a;\n this.g = b;\n this.b = 0;\n this.a = null;\n }\n\n class_1.prototype.get = function () {\n var a;\n 0 < this.b ? (this.b--, a = this.a, this.a = a.next, a.next = null) : a = this.c();\n return a;\n };\n\n return class_1;\n}())(function () {\n return new xb();\n}, function (a) {\n a.reset();\n}, 100);\n\nwb.prototype.add = function (a, b) {\n var c = yb.get();\n c.set(a, b);\n this.b ? this.b.next = c : this.a = c;\n this.b = c;\n};\n\nfunction zb() {\n var a = Ab,\n b = null;\n a.a && (b = a.a, a.a = a.a.next, a.a || (a.b = null), b.next = null);\n return b;\n}\n\nfunction xb() {\n this.next = this.b = this.a = null;\n}\n\nxb.prototype.set = function (a, b) {\n this.a = a;\n this.b = b;\n this.next = null;\n};\n\nxb.prototype.reset = function () {\n this.next = this.b = this.a = null;\n};\n\nfunction Bb(a) {\n k.setTimeout(function () {\n throw a;\n }, 0);\n}\n\nfunction Cb(a, b) {\n Db || Eb();\n Fb || (Db(), Fb = !0);\n Ab.add(a, b);\n}\n\nvar Db;\n\nfunction Eb() {\n var a = k.Promise.resolve(void 0);\n\n Db = function Db() {\n a.then(Gb);\n };\n}\n\nvar Fb = !1,\n Ab = new wb();\n\nfunction Gb() {\n for (var a; a = zb();) {\n try {\n a.a.call(a.b);\n } catch (c) {\n Bb(c);\n }\n\n var b = yb;\n b.g(a);\n b.b < b.f && (b.b++, a.next = b.a, b.a = a);\n }\n\n Fb = !1;\n}\n\nfunction Hb(a, b) {\n D.call(this);\n this.b = a || 1;\n this.a = b || k;\n this.f = p(this.Ya, this);\n this.g = q();\n}\n\nr(Hb, D);\ng = Hb.prototype;\ng.aa = !1;\ng.M = null;\n\ng.Ya = function () {\n if (this.aa) {\n var a = q() - this.g;\n 0 < a && a < .8 * this.b ? this.M = this.a.setTimeout(this.f, this.b - a) : (this.M && (this.a.clearTimeout(this.M), this.M = null), this.dispatchEvent(\"tick\"), this.aa && (Ib(this), this.start()));\n }\n};\n\ng.start = function () {\n this.aa = !0;\n this.M || (this.M = this.a.setTimeout(this.f, this.b), this.g = q());\n};\n\nfunction Ib(a) {\n a.aa = !1;\n a.M && (a.a.clearTimeout(a.M), a.M = null);\n}\n\ng.G = function () {\n Hb.S.G.call(this);\n Ib(this);\n delete this.a;\n};\n\nfunction Jb(a, b, c) {\n if (\"function\" == ba(a)) c && (a = p(a, c));else if (a && \"function\" == typeof a.handleEvent) a = p(a.handleEvent, a);else throw Error(\"Invalid listener argument\");\n return 2147483647 < Number(b) ? -1 : k.setTimeout(a, b || 0);\n}\n\nfunction Kb(a) {\n a.a = Jb(function () {\n a.a = null;\n a.c && (a.c = !1, Kb(a));\n }, a.h);\n var b = a.b;\n a.b = null;\n a.g.apply(null, b);\n}\n\nvar Lb =\n/** @class */\nfunction (_super) {\n __extends(Lb, _super);\n\n function Lb(a, b, c) {\n var _this = _super.call(this) || this;\n\n _this.g = null != c ? a.bind(c) : a;\n _this.h = b;\n _this.b = null;\n _this.c = !1;\n _this.a = null;\n return _this;\n }\n\n Lb.prototype.f = function (a) {\n this.b = arguments;\n this.a ? this.c = !0 : Kb(this);\n };\n\n Lb.prototype.G = function () {\n _super.prototype.G.call(this);\n\n this.a && (k.clearTimeout(this.a), this.a = null, this.c = !1, this.b = null);\n };\n\n return Lb;\n}(u);\n\nfunction E(a) {\n u.call(this);\n this.b = a;\n this.a = {};\n}\n\nr(E, u);\nvar Mb = [];\n\nfunction Nb(a, b, c, d) {\n Array.isArray(c) || (c && (Mb[0] = c.toString()), c = Mb);\n\n for (var e = 0; e < c.length; e++) {\n var f = hb(b, c[e], d || a.handleEvent, !1, a.b || a);\n if (!f) break;\n a.a[f.key] = f;\n }\n}\n\nfunction Ob(a) {\n Aa(a.a, function (b, c) {\n this.a.hasOwnProperty(c) && rb(b);\n }, a);\n a.a = {};\n}\n\nE.prototype.G = function () {\n E.S.G.call(this);\n Ob(this);\n};\n\nE.prototype.handleEvent = function () {\n throw Error(\"EventHandler.handleEvent not implemented\");\n};\n\nfunction Pb() {\n this.a = !0;\n}\n\nfunction Qb(a, b, c, d, e, f) {\n a.info(function () {\n if (a.a) {\n if (f) {\n var h = \"\";\n\n for (var m = f.split(\"&\"), l = 0; l < m.length; l++) {\n var t = m[l].split(\"=\");\n\n if (1 < t.length) {\n var B = t[0];\n t = t[1];\n var z = B.split(\"_\");\n h = 2 <= z.length && \"type\" == z[1] ? h + (B + \"=\" + t + \"&\") : h + (B + \"=redacted&\");\n }\n }\n } else h = null;\n } else h = f;\n return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + h;\n });\n}\n\nfunction Rb(a, b, c, d, e, f, h) {\n a.info(function () {\n return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + h;\n });\n}\n\nfunction F(a, b, c, d) {\n a.info(function () {\n return \"XMLHTTP TEXT (\" + b + \"): \" + Sb(a, c) + (d ? \" \" + d : \"\");\n });\n}\n\nfunction Tb(a, b) {\n a.info(function () {\n return \"TIMEOUT: \" + b;\n });\n}\n\nPb.prototype.info = function () {};\n\nfunction Sb(a, b) {\n if (!a.a) return b;\n if (!b) return null;\n\n try {\n var c = JSON.parse(b);\n if (c) for (a = 0; a < c.length; a++) {\n if (Array.isArray(c[a])) {\n var d = c[a];\n\n if (!(2 > d.length)) {\n var e = d[1];\n\n if (Array.isArray(e) && !(1 > e.length)) {\n var f = e[0];\n if (\"noop\" != f && \"stop\" != f && \"close\" != f) for (var h = 1; h < e.length; h++) {\n e[h] = \"\";\n }\n }\n }\n }\n }\n return vb(c);\n } catch (m) {\n return b;\n }\n}\n\nvar Ub = null;\n\nfunction Vb() {\n return Ub = Ub || new D();\n}\n\nfunction Wb(a) {\n y.call(this, \"serverreachability\", a);\n}\n\nr(Wb, y);\n\nfunction G(a) {\n var b = Vb();\n b.dispatchEvent(new Wb(b, a));\n}\n\nfunction Xb(a) {\n y.call(this, \"statevent\", a);\n}\n\nr(Xb, y);\n\nfunction H(a) {\n var b = Vb();\n b.dispatchEvent(new Xb(b, a));\n}\n\nfunction Yb(a) {\n y.call(this, \"timingevent\", a);\n}\n\nr(Yb, y);\n\nfunction I(a, b) {\n if (\"function\" != ba(a)) throw Error(\"Fn must not be null and must be a function\");\n return k.setTimeout(function () {\n a();\n }, b);\n}\n\nvar Zb = {\n NO_ERROR: 0,\n Za: 1,\n gb: 2,\n fb: 3,\n bb: 4,\n eb: 5,\n hb: 6,\n Da: 7,\n TIMEOUT: 8,\n kb: 9\n};\nvar $b = {\n ab: \"complete\",\n ob: \"success\",\n Ea: \"error\",\n Da: \"abort\",\n mb: \"ready\",\n nb: \"readystatechange\",\n TIMEOUT: \"timeout\",\n ib: \"incrementaldata\",\n lb: \"progress\",\n cb: \"downloadprogress\",\n pb: \"uploadprogress\"\n};\n\nfunction ac() {}\n\nac.prototype.a = null;\n\nfunction bc(a) {\n var b;\n (b = a.a) || (b = a.a = {});\n return b;\n}\n\nfunction cc() {}\n\nvar J = {\n OPEN: \"a\",\n $a: \"b\",\n Ea: \"c\",\n jb: \"d\"\n};\n\nfunction dc() {\n y.call(this, \"d\");\n}\n\nr(dc, y);\n\nfunction ec() {\n y.call(this, \"c\");\n}\n\nr(ec, y);\nvar fc;\n\nfunction gc() {}\n\nr(gc, ac);\nfc = new gc();\n\nfunction K(a, b, c, d) {\n this.g = a;\n this.c = b;\n this.f = c;\n this.T = d || 1;\n this.J = new E(this);\n this.P = hc;\n a = Ja ? 125 : void 0;\n this.R = new Hb(a);\n this.B = null;\n this.b = !1;\n this.j = this.l = this.i = this.H = this.u = this.U = this.o = null;\n this.s = [];\n this.a = null;\n this.D = 0;\n this.h = this.m = null;\n this.N = -1;\n this.A = !1;\n this.O = 0;\n this.F = null;\n this.W = this.C = this.V = this.I = !1;\n}\n\nvar hc = 45E3,\n ic = {},\n jc = {};\ng = K.prototype;\n\ng.setTimeout = function (a) {\n this.P = a;\n};\n\nfunction kc(a, b, c) {\n a.H = 1;\n a.i = lc(L(b));\n a.j = c;\n a.I = !0;\n mc(a, null);\n}\n\nfunction mc(a, b) {\n a.u = q();\n M(a);\n a.l = L(a.i);\n var c = a.l,\n d = a.T;\n Array.isArray(d) || (d = [String(d)]);\n nc(c.b, \"t\", d);\n a.D = 0;\n a.a = oc(a.g, a.g.C ? b : null);\n 0 < a.O && (a.F = new Lb(p(a.Ca, a, a.a), a.O));\n Nb(a.J, a.a, \"readystatechange\", a.Wa);\n b = a.B ? Ba(a.B) : {};\n a.j ? (a.m || (a.m = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.a.ba(a.l, a.m, a.j, b)) : (a.m = \"GET\", a.a.ba(a.l, a.m, null, b));\n G(1);\n Qb(a.c, a.m, a.l, a.f, a.T, a.j);\n}\n\ng.Wa = function (a) {\n a = a.target;\n var b = this.F;\n b && 3 == N(a) ? b.f() : this.Ca(a);\n};\n\ng.Ca = function (a) {\n try {\n if (a == this.a) a: {\n var b = N(this.a),\n c = this.a.ua(),\n d = this.a.X();\n\n if (!(3 > b || 3 == b && !Ja && !this.a.$())) {\n this.A || 4 != b || 7 == c || (8 == c || 0 >= d ? G(3) : G(2));\n pc(this);\n var e = this.a.X();\n this.N = e;\n var f = this.a.$();\n this.b = 200 == e;\n Rb(this.c, this.m, this.l, this.f, this.T, b, e);\n\n if (this.b) {\n if (this.V && !this.C) {\n b: {\n if (this.a) {\n var h,\n m = this.a;\n\n if ((h = m.a ? m.a.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !ta(h)) {\n var l = h;\n break b;\n }\n }\n\n l = null;\n }\n\n if (l) F(this.c, this.f, l, \"Initial handshake response via X-HTTP-Initial-Response\"), this.C = !0, qc(this, l);else {\n this.b = !1;\n this.h = 3;\n H(12);\n O(this);\n rc(this);\n break a;\n }\n }\n\n this.I ? (tc(this, b, f), Ja && this.b && 3 == b && (Nb(this.J, this.R, \"tick\", this.Va), this.R.start())) : (F(this.c, this.f, f, null), qc(this, f));\n 4 == b && O(this);\n this.b && !this.A && (4 == b ? uc(this.g, this) : (this.b = !1, M(this)));\n } else 400 == e && 0 < f.indexOf(\"Unknown SID\") ? (this.h = 3, H(12)) : (this.h = 0, H(13)), O(this), rc(this);\n }\n }\n } catch (t) {} finally {}\n};\n\nfunction tc(a, b, c) {\n for (var d = !0; !a.A && a.D < c.length;) {\n var e = vc(a, c);\n\n if (e == jc) {\n 4 == b && (a.h = 4, H(14), d = !1);\n F(a.c, a.f, null, \"[Incomplete Response]\");\n break;\n } else if (e == ic) {\n a.h = 4;\n H(15);\n F(a.c, a.f, c, \"[Invalid Chunk]\");\n d = !1;\n break;\n } else F(a.c, a.f, e, null), qc(a, e);\n }\n\n 4 == b && 0 == c.length && (a.h = 1, H(16), d = !1);\n a.b = a.b && d;\n d ? 0 < c.length && !a.W && (a.W = !0, b = a.g, b.a == a && b.V && !b.F && (b.c.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), xc(b), b.F = !0)) : (F(a.c, a.f, c, \"[Invalid Chunked Response]\"), O(a), rc(a));\n}\n\ng.Va = function () {\n if (this.a) {\n var a = N(this.a),\n b = this.a.$();\n this.D < b.length && (pc(this), tc(this, a, b), this.b && 4 != a && M(this));\n }\n};\n\nfunction vc(a, b) {\n var c = a.D,\n d = b.indexOf(\"\\n\", c);\n if (-1 == d) return jc;\n c = Number(b.substring(c, d));\n if (isNaN(c)) return ic;\n d += 1;\n if (d + c > b.length) return jc;\n b = b.substr(d, c);\n a.D = d + c;\n return b;\n}\n\ng.cancel = function () {\n this.A = !0;\n O(this);\n};\n\nfunction M(a) {\n a.U = q() + a.P;\n yc(a, a.P);\n}\n\nfunction yc(a, b) {\n if (null != a.o) throw Error(\"WatchDog timer not null\");\n a.o = I(p(a.Ua, a), b);\n}\n\nfunction pc(a) {\n a.o && (k.clearTimeout(a.o), a.o = null);\n}\n\ng.Ua = function () {\n this.o = null;\n var a = q();\n 0 <= a - this.U ? (Tb(this.c, this.l), 2 != this.H && (G(3), H(17)), O(this), this.h = 2, rc(this)) : yc(this, this.U - a);\n};\n\nfunction rc(a) {\n 0 == a.g.v || a.A || uc(a.g, a);\n}\n\nfunction O(a) {\n pc(a);\n var b = a.F;\n b && \"function\" == typeof b.ja && b.ja();\n a.F = null;\n Ib(a.R);\n Ob(a.J);\n a.a && (b = a.a, a.a = null, b.abort(), b.ja());\n}\n\nfunction qc(a, b) {\n try {\n var c = a.g;\n if (0 != c.v && (c.a == a || zc(c.b, a))) if (c.I = a.N, !a.C && zc(c.b, a) && 3 == c.v) {\n try {\n var d = c.ka.a.parse(b);\n } catch (sc) {\n d = null;\n }\n\n if (Array.isArray(d) && 3 == d.length) {\n var e = d;\n if (0 == e[0]) a: {\n if (!c.j) {\n if (c.a) if (c.a.u + 3E3 < a.u) Ac(c), Bc(c);else break a;\n Cc(c);\n H(18);\n }\n } else c.oa = e[1], 0 < c.oa - c.P && 37500 > e[2] && c.H && 0 == c.o && !c.m && (c.m = I(p(c.Ra, c), 6E3));\n\n if (1 >= Dc(c.b) && c.ea) {\n try {\n c.ea();\n } catch (sc) {}\n\n c.ea = void 0;\n }\n } else P(c, 11);\n } else if ((a.C || c.a == a) && Ac(c), !ta(b)) for (b = d = c.ka.a.parse(b), d = 0; d < b.length; d++) {\n if (e = b[d], c.P = e[0], e = e[1], 2 == c.v) {\n if (\"c\" == e[0]) {\n c.J = e[1];\n c.ga = e[2];\n var f = e[3];\n null != f && (c.ha = f, c.c.info(\"VER=\" + c.ha));\n var h = e[4];\n null != h && (c.pa = h, c.c.info(\"SVER=\" + c.pa));\n var m = e[5];\n\n if (null != m && \"number\" === typeof m && 0 < m) {\n var l = 1.5 * m;\n c.D = l;\n c.c.info(\"backChannelRequestTimeoutMs_=\" + l);\n }\n\n l = c;\n var t = a.a;\n\n if (t) {\n var B = t.a ? t.a.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\n\n if (B) {\n var z = l.b;\n !z.a && (v(B, \"spdy\") || v(B, \"quic\") || v(B, \"h2\")) && (z.f = z.g, z.a = new Set(), z.b && (Ec(z, z.b), z.b = null));\n }\n\n if (l.A) {\n var qb = t.a ? t.a.getResponseHeader(\"X-HTTP-Session-Id\") : null;\n qb && (l.na = qb, Q(l.B, l.A, qb));\n }\n }\n\n c.v = 3;\n c.f && c.f.ta();\n c.V && (c.N = q() - a.u, c.c.info(\"Handshake RTT: \" + c.N + \"ms\"));\n l = c;\n var va = a;\n l.la = Fc(l, l.C ? l.ga : null, l.fa);\n\n if (va.C) {\n Gc(l.b, va);\n var wa = va,\n wc = l.D;\n wc && wa.setTimeout(wc);\n wa.o && (pc(wa), M(wa));\n l.a = va;\n } else Hc(l);\n\n 0 < c.g.length && Ic(c);\n } else \"stop\" != e[0] && \"close\" != e[0] || P(c, 7);\n } else 3 == c.v && (\"stop\" == e[0] || \"close\" == e[0] ? \"stop\" == e[0] ? P(c, 7) : Jc(c) : \"noop\" != e[0] && c.f && c.f.sa(e), c.o = 0);\n }\n G(4);\n } catch (sc) {}\n}\n\nfunction Kc(a) {\n if (a.K && \"function\" == typeof a.K) return a.K();\n if (\"string\" === typeof a) return a.split(\"\");\n\n if (ca(a)) {\n for (var b = [], c = a.length, d = 0; d < c; d++) {\n b.push(a[d]);\n }\n\n return b;\n }\n\n b = [];\n c = 0;\n\n for (d in a) {\n b[c++] = a[d];\n }\n\n return a = b;\n}\n\nfunction Lc(a, b) {\n if (a.forEach && \"function\" == typeof a.forEach) a.forEach(b, void 0);else if (ca(a) || \"string\" === typeof a) oa(a, b, void 0);else {\n if (a.L && \"function\" == typeof a.L) var c = a.L();else if (a.K && \"function\" == typeof a.K) c = void 0;else if (ca(a) || \"string\" === typeof a) {\n c = [];\n\n for (var d = a.length, e = 0; e < d; e++) {\n c.push(e);\n }\n } else for (e in c = [], d = 0, a) {\n c[d++] = e;\n }\n d = Kc(a);\n e = d.length;\n\n for (var f = 0; f < e; f++) {\n b.call(void 0, d[f], c && c[f], a);\n }\n }\n}\n\nfunction R(a, b) {\n this.b = {};\n this.a = [];\n this.c = 0;\n var c = arguments.length;\n\n if (1 < c) {\n if (c % 2) throw Error(\"Uneven number of arguments\");\n\n for (var d = 0; d < c; d += 2) {\n this.set(arguments[d], arguments[d + 1]);\n }\n } else if (a) if (a instanceof R) for (c = a.L(), d = 0; d < c.length; d++) {\n this.set(c[d], a.get(c[d]));\n } else for (d in a) {\n this.set(d, a[d]);\n }\n}\n\ng = R.prototype;\n\ng.K = function () {\n Mc(this);\n\n for (var a = [], b = 0; b < this.a.length; b++) {\n a.push(this.b[this.a[b]]);\n }\n\n return a;\n};\n\ng.L = function () {\n Mc(this);\n return this.a.concat();\n};\n\nfunction Mc(a) {\n if (a.c != a.a.length) {\n for (var b = 0, c = 0; b < a.a.length;) {\n var d = a.a[b];\n S(a.b, d) && (a.a[c++] = d);\n b++;\n }\n\n a.a.length = c;\n }\n\n if (a.c != a.a.length) {\n var e = {};\n\n for (c = b = 0; b < a.a.length;) {\n d = a.a[b], S(e, d) || (a.a[c++] = d, e[d] = 1), b++;\n }\n\n a.a.length = c;\n }\n}\n\ng.get = function (a, b) {\n return S(this.b, a) ? this.b[a] : b;\n};\n\ng.set = function (a, b) {\n S(this.b, a) || (this.c++, this.a.push(a));\n this.b[a] = b;\n};\n\ng.forEach = function (a, b) {\n for (var c = this.L(), d = 0; d < c.length; d++) {\n var e = c[d],\n f = this.get(e);\n a.call(b, f, e, this);\n }\n};\n\nfunction S(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nvar Nc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\n\nfunction Oc(a, b) {\n if (a) {\n a = a.split(\"&\");\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c].indexOf(\"=\"),\n e = null;\n\n if (0 <= d) {\n var f = a[c].substring(0, d);\n e = a[c].substring(d + 1);\n } else f = a[c];\n\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\n }\n }\n}\n\nfunction T(a, b) {\n this.c = this.j = this.f = \"\";\n this.h = null;\n this.i = this.g = \"\";\n this.a = !1;\n\n if (a instanceof T) {\n this.a = void 0 !== b ? b : a.a;\n Pc(this, a.f);\n this.j = a.j;\n Qc(this, a.c);\n Rc(this, a.h);\n this.g = a.g;\n b = a.b;\n var c = new U();\n c.c = b.c;\n b.a && (c.a = new R(b.a), c.b = b.b);\n Sc(this, c);\n this.i = a.i;\n } else a && (c = String(a).match(Nc)) ? (this.a = !!b, Pc(this, c[1] || \"\", !0), this.j = Tc(c[2] || \"\"), Qc(this, c[3] || \"\", !0), Rc(this, c[4]), this.g = Tc(c[5] || \"\", !0), Sc(this, c[6] || \"\", !0), this.i = Tc(c[7] || \"\")) : (this.a = !!b, this.b = new U(null, this.a));\n}\n\nT.prototype.toString = function () {\n var a = [],\n b = this.f;\n b && a.push(Uc(b, Vc, !0), \":\");\n var c = this.c;\n if (c || \"file\" == b) a.push(\"//\"), (b = this.j) && a.push(Uc(b, Vc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.h, null != c && a.push(\":\", String(c));\n if (c = this.g) this.c && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Uc(c, \"/\" == c.charAt(0) ? Wc : Xc, !0));\n (c = this.b.toString()) && a.push(\"?\", c);\n (c = this.i) && a.push(\"#\", Uc(c, Yc));\n return a.join(\"\");\n};\n\nfunction L(a) {\n return new T(a);\n}\n\nfunction Pc(a, b, c) {\n a.f = c ? Tc(b, !0) : b;\n a.f && (a.f = a.f.replace(/:$/, \"\"));\n}\n\nfunction Qc(a, b, c) {\n a.c = c ? Tc(b, !0) : b;\n}\n\nfunction Rc(a, b) {\n if (b) {\n b = Number(b);\n if (isNaN(b) || 0 > b) throw Error(\"Bad port number \" + b);\n a.h = b;\n } else a.h = null;\n}\n\nfunction Sc(a, b, c) {\n b instanceof U ? (a.b = b, Zc(a.b, a.a)) : (c || (b = Uc(b, $c)), a.b = new U(b, a.a));\n}\n\nfunction Q(a, b, c) {\n a.b.set(b, c);\n}\n\nfunction lc(a) {\n Q(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ q()).toString(36));\n return a;\n}\n\nfunction ad(a) {\n return a instanceof T ? L(a) : new T(a, void 0);\n}\n\nfunction bd(a, b, c, d) {\n var e = new T(null, void 0);\n a && Pc(e, a);\n b && Qc(e, b);\n c && Rc(e, c);\n d && (e.g = d);\n return e;\n}\n\nfunction Tc(a, b) {\n return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\";\n}\n\nfunction Uc(a, b, c) {\n return \"string\" === typeof a ? (a = encodeURI(a).replace(b, cd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null;\n}\n\nfunction cd(a) {\n a = a.charCodeAt(0);\n return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16);\n}\n\nvar Vc = /[#\\/\\?@]/g,\n Xc = /[#\\?:]/g,\n Wc = /[#\\?]/g,\n $c = /[#\\?@]/g,\n Yc = /#/g;\n\nfunction U(a, b) {\n this.b = this.a = null;\n this.c = a || null;\n this.f = !!b;\n}\n\nfunction V(a) {\n a.a || (a.a = new R(), a.b = 0, a.c && Oc(a.c, function (b, c) {\n a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c);\n }));\n}\n\ng = U.prototype;\n\ng.add = function (a, b) {\n V(this);\n this.c = null;\n a = W(this, a);\n var c = this.a.get(a);\n c || this.a.set(a, c = []);\n c.push(b);\n this.b += 1;\n return this;\n};\n\nfunction dd(a, b) {\n V(a);\n b = W(a, b);\n S(a.a.b, b) && (a.c = null, a.b -= a.a.get(b).length, a = a.a, S(a.b, b) && (delete a.b[b], a.c--, a.a.length > 2 * a.c && Mc(a)));\n}\n\nfunction ed(a, b) {\n V(a);\n b = W(a, b);\n return S(a.a.b, b);\n}\n\ng.forEach = function (a, b) {\n V(this);\n this.a.forEach(function (c, d) {\n oa(c, function (e) {\n a.call(b, e, d, this);\n }, this);\n }, this);\n};\n\ng.L = function () {\n V(this);\n\n for (var a = this.a.K(), b = this.a.L(), c = [], d = 0; d < b.length; d++) {\n for (var e = a[d], f = 0; f < e.length; f++) {\n c.push(b[d]);\n }\n }\n\n return c;\n};\n\ng.K = function (a) {\n V(this);\n var b = [];\n if (\"string\" === typeof a) ed(this, a) && (b = ra(b, this.a.get(W(this, a))));else {\n a = this.a.K();\n\n for (var c = 0; c < a.length; c++) {\n b = ra(b, a[c]);\n }\n }\n return b;\n};\n\ng.set = function (a, b) {\n V(this);\n this.c = null;\n a = W(this, a);\n ed(this, a) && (this.b -= this.a.get(a).length);\n this.a.set(a, [b]);\n this.b += 1;\n return this;\n};\n\ng.get = function (a, b) {\n if (!a) return b;\n a = this.K(a);\n return 0 < a.length ? String(a[0]) : b;\n};\n\nfunction nc(a, b, c) {\n dd(a, b);\n 0 < c.length && (a.c = null, a.a.set(W(a, b), sa(c)), a.b += c.length);\n}\n\ng.toString = function () {\n if (this.c) return this.c;\n if (!this.a) return \"\";\n\n for (var a = [], b = this.a.L(), c = 0; c < b.length; c++) {\n var d = b[c],\n e = encodeURIComponent(String(d));\n d = this.K(d);\n\n for (var f = 0; f < d.length; f++) {\n var h = e;\n \"\" !== d[f] && (h += \"=\" + encodeURIComponent(String(d[f])));\n a.push(h);\n }\n }\n\n return this.c = a.join(\"&\");\n};\n\nfunction W(a, b) {\n b = String(b);\n a.f && (b = b.toLowerCase());\n return b;\n}\n\nfunction Zc(a, b) {\n b && !a.f && (V(a), a.c = null, a.a.forEach(function (c, d) {\n var e = d.toLowerCase();\n d != e && (dd(this, d), nc(this, e, c));\n }, a));\n a.f = b;\n}\n\nfunction fd(a, b) {\n this.b = a;\n this.a = b;\n}\n\nfunction gd(a) {\n this.g = a || hd;\n k.PerformanceNavigationTiming ? (a = k.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(k.ia && k.ia.ya && k.ia.ya() && k.ia.ya().qb);\n this.f = a ? this.g : 1;\n this.a = null;\n 1 < this.f && (this.a = new Set());\n this.b = null;\n this.c = [];\n}\n\nvar hd = 10;\n\nfunction id(a) {\n return a.b ? !0 : a.a ? a.a.size >= a.f : !1;\n}\n\nfunction Dc(a) {\n return a.b ? 1 : a.a ? a.a.size : 0;\n}\n\nfunction zc(a, b) {\n return a.b ? a.b == b : a.a ? a.a.has(b) : !1;\n}\n\nfunction Ec(a, b) {\n a.a ? a.a.add(b) : a.b = b;\n}\n\nfunction Gc(a, b) {\n a.b && a.b == b ? a.b = null : a.a && a.a.has(b) && a.a.delete(b);\n}\n\ngd.prototype.cancel = function () {\n var e_1, _a;\n\n this.c = jd(this);\n if (this.b) this.b.cancel(), this.b = null;else if (this.a && 0 !== this.a.size) {\n try {\n for (var _b = __values(this.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var a = _c.value;\n a.cancel();\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n this.a.clear();\n }\n};\n\nfunction jd(a) {\n var e_2, _a;\n\n if (null != a.b) return a.c.concat(a.b.s);\n\n if (null != a.a && 0 !== a.a.size) {\n var b = a.c;\n\n try {\n for (var _b = __values(a.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var c = _c.value;\n b = b.concat(c.s);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return b;\n }\n\n return sa(a.c);\n}\n\nfunction kd() {}\n\nkd.prototype.stringify = function (a) {\n return k.JSON.stringify(a, void 0);\n};\n\nkd.prototype.parse = function (a) {\n return k.JSON.parse(a, void 0);\n};\n\nfunction ld() {\n this.a = new kd();\n}\n\nfunction md(a, b, c) {\n var d = c || \"\";\n\n try {\n Lc(a, function (e, f) {\n var h = e;\n n(e) && (h = vb(e));\n b.push(d + f + \"=\" + encodeURIComponent(h));\n });\n } catch (e) {\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\n }\n}\n\nfunction nd(a, b) {\n var c = new Pb();\n\n if (k.Image) {\n var d = new Image();\n d.onload = ka(od, c, d, \"TestLoadImage: loaded\", !0, b);\n d.onerror = ka(od, c, d, \"TestLoadImage: error\", !1, b);\n d.onabort = ka(od, c, d, \"TestLoadImage: abort\", !1, b);\n d.ontimeout = ka(od, c, d, \"TestLoadImage: timeout\", !1, b);\n k.setTimeout(function () {\n if (d.ontimeout) d.ontimeout();\n }, 1E4);\n d.src = a;\n } else b(!1);\n}\n\nfunction od(a, b, c, d, e) {\n try {\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\n } catch (f) {}\n}\n\nvar pd = k.JSON.parse;\n\nfunction X(a) {\n D.call(this);\n this.headers = new R();\n this.H = a || null;\n this.b = !1;\n this.s = this.a = null;\n this.B = \"\";\n this.h = 0;\n this.f = \"\";\n this.g = this.A = this.l = this.u = !1;\n this.o = 0;\n this.m = null;\n this.I = qd;\n this.D = this.F = !1;\n}\n\nr(X, D);\nvar qd = \"\",\n rd = /^https?$/i,\n sd = [\"POST\", \"PUT\"];\ng = X.prototype;\n\ng.ba = function (a, b, c, d) {\n if (this.a) throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.B + \"; newUri=\" + a);\n b = b ? b.toUpperCase() : \"GET\";\n this.B = a;\n this.f = \"\";\n this.h = 0;\n this.u = !1;\n this.b = !0;\n this.a = new XMLHttpRequest();\n this.s = this.H ? bc(this.H) : bc(fc);\n this.a.onreadystatechange = p(this.za, this);\n\n try {\n this.A = !0, this.a.open(b, String(a), !0), this.A = !1;\n } catch (f) {\n td(this, f);\n return;\n }\n\n a = c || \"\";\n var e = new R(this.headers);\n d && Lc(d, function (f, h) {\n e.set(h, f);\n });\n d = pa(e.L());\n c = k.FormData && a instanceof k.FormData;\n !(0 <= na(sd, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\n e.forEach(function (f, h) {\n this.a.setRequestHeader(h, f);\n }, this);\n this.I && (this.a.responseType = this.I);\n \"withCredentials\" in this.a && this.a.withCredentials !== this.F && (this.a.withCredentials = this.F);\n\n try {\n ud(this), 0 < this.o && ((this.D = vd(this.a)) ? (this.a.timeout = this.o, this.a.ontimeout = p(this.xa, this)) : this.m = Jb(this.xa, this.o, this)), this.l = !0, this.a.send(a), this.l = !1;\n } catch (f) {\n td(this, f);\n }\n};\n\nfunction vd(a) {\n return x && Ra(9) && \"number\" === typeof a.timeout && void 0 !== a.ontimeout;\n}\n\nfunction qa(a) {\n return \"content-type\" == a.toLowerCase();\n}\n\ng.xa = function () {\n \"undefined\" != typeof goog && this.a && (this.f = \"Timed out after \" + this.o + \"ms, aborting\", this.h = 8, this.dispatchEvent(\"timeout\"), this.abort(8));\n};\n\nfunction td(a, b) {\n a.b = !1;\n a.a && (a.g = !0, a.a.abort(), a.g = !1);\n a.f = b;\n a.h = 5;\n wd(a);\n xd(a);\n}\n\nfunction wd(a) {\n a.u || (a.u = !0, a.dispatchEvent(\"complete\"), a.dispatchEvent(\"error\"));\n}\n\ng.abort = function (a) {\n this.a && this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1, this.h = a || 7, this.dispatchEvent(\"complete\"), this.dispatchEvent(\"abort\"), xd(this));\n};\n\ng.G = function () {\n this.a && (this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1), xd(this, !0));\n X.S.G.call(this);\n};\n\ng.za = function () {\n this.j || (this.A || this.l || this.g ? yd(this) : this.Ta());\n};\n\ng.Ta = function () {\n yd(this);\n};\n\nfunction yd(a) {\n if (a.b && \"undefined\" != typeof goog && (!a.s[1] || 4 != N(a) || 2 != a.X())) if (a.l && 4 == N(a)) Jb(a.za, 0, a);else if (a.dispatchEvent(\"readystatechange\"), 4 == N(a)) {\n a.b = !1;\n\n try {\n var b = a.X();\n\n a: switch (b) {\n case 200:\n case 201:\n case 202:\n case 204:\n case 206:\n case 304:\n case 1223:\n var c = !0;\n break a;\n\n default:\n c = !1;\n }\n\n var d;\n\n if (!(d = c)) {\n var e;\n\n if (e = 0 === b) {\n var f = String(a.B).match(Nc)[1] || null;\n\n if (!f && k.self && k.self.location) {\n var h = k.self.location.protocol;\n f = h.substr(0, h.length - 1);\n }\n\n e = !rd.test(f ? f.toLowerCase() : \"\");\n }\n\n d = e;\n }\n\n if (d) a.dispatchEvent(\"complete\"), a.dispatchEvent(\"success\");else {\n a.h = 6;\n\n try {\n var m = 2 < N(a) ? a.a.statusText : \"\";\n } catch (l) {\n m = \"\";\n }\n\n a.f = m + \" [\" + a.X() + \"]\";\n wd(a);\n }\n } finally {\n xd(a);\n }\n }\n}\n\nfunction xd(a, b) {\n if (a.a) {\n ud(a);\n var c = a.a,\n d = a.s[0] ? aa : null;\n a.a = null;\n a.s = null;\n b || a.dispatchEvent(\"ready\");\n\n try {\n c.onreadystatechange = d;\n } catch (e) {}\n }\n}\n\nfunction ud(a) {\n a.a && a.D && (a.a.ontimeout = null);\n a.m && (k.clearTimeout(a.m), a.m = null);\n}\n\nfunction N(a) {\n return a.a ? a.a.readyState : 0;\n}\n\ng.X = function () {\n try {\n return 2 < N(this) ? this.a.status : -1;\n } catch (a) {\n return -1;\n }\n};\n\ng.$ = function () {\n try {\n return this.a ? this.a.responseText : \"\";\n } catch (a) {\n return \"\";\n }\n};\n\ng.Na = function (a) {\n if (this.a) {\n var b = this.a.responseText;\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\n return pd(b);\n }\n};\n\ng.ua = function () {\n return this.h;\n};\n\ng.Qa = function () {\n return \"string\" === typeof this.f ? this.f : String(this.f);\n};\n\nfunction zd(a) {\n var b = \"\";\n Aa(a, function (c, d) {\n b += d;\n b += \":\";\n b += c;\n b += \"\\r\\n\";\n });\n return b;\n}\n\nfunction Ad(a, b, c) {\n a: {\n for (d in c) {\n var d = !1;\n break a;\n }\n\n d = !0;\n }\n\n d || (c = zd(c), \"string\" === typeof a ? null != c && encodeURIComponent(String(c)) : Q(a, b, c));\n}\n\nfunction Bd(a, b, c) {\n return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b;\n}\n\nfunction Cd(a) {\n this.pa = 0;\n this.g = [];\n this.c = new Pb();\n this.ga = this.la = this.B = this.fa = this.a = this.na = this.A = this.W = this.i = this.O = this.l = null;\n this.La = this.R = 0;\n this.Ia = Bd(\"failFast\", !1, a);\n this.H = this.m = this.j = this.h = this.f = null;\n this.T = !0;\n this.I = this.oa = this.P = -1;\n this.U = this.o = this.u = 0;\n this.Fa = Bd(\"baseRetryDelayMs\", 5E3, a);\n this.Ma = Bd(\"retryDelaySeedMs\", 1E4, a);\n this.Ja = Bd(\"forwardChannelMaxRetries\", 2, a);\n this.ma = Bd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\n this.Ka = a && a.g || void 0;\n this.D = void 0;\n this.C = a && a.supportsCrossDomainXhr || !1;\n this.J = \"\";\n this.b = new gd(a && a.concurrentRequestLimit);\n this.ka = new ld();\n this.da = a && a.fastHandshake || !1;\n this.Ga = a && a.b || !1;\n a && a.f && (this.c.a = !1);\n a && a.forceLongPolling && (this.T = !1);\n this.V = !this.da && this.T && a && a.c || !1;\n this.ea = void 0;\n this.N = 0;\n this.F = !1;\n this.s = null;\n}\n\ng = Cd.prototype;\ng.ha = 8;\ng.v = 1;\n\nfunction Jc(a) {\n Dd(a);\n\n if (3 == a.v) {\n var b = a.R++,\n c = L(a.B);\n Q(c, \"SID\", a.J);\n Q(c, \"RID\", b);\n Q(c, \"TYPE\", \"terminate\");\n Ed(a, c);\n b = new K(a, a.c, b, void 0);\n b.H = 2;\n b.i = lc(L(c));\n c = !1;\n k.navigator && k.navigator.sendBeacon && (c = k.navigator.sendBeacon(b.i.toString(), \"\"));\n !c && k.Image && (new Image().src = b.i, c = !0);\n c || (b.a = oc(b.g, null), b.a.ba(b.i));\n b.u = q();\n M(b);\n }\n\n Fd(a);\n}\n\nfunction Bc(a) {\n a.a && (xc(a), a.a.cancel(), a.a = null);\n}\n\nfunction Dd(a) {\n Bc(a);\n a.j && (k.clearTimeout(a.j), a.j = null);\n Ac(a);\n a.b.cancel();\n a.h && (\"number\" === typeof a.h && k.clearTimeout(a.h), a.h = null);\n}\n\nfunction Gd(a, b) {\n a.g.push(new fd(a.La++, b));\n 3 == a.v && Ic(a);\n}\n\nfunction Ic(a) {\n id(a.b) || a.h || (a.h = !0, Cb(a.Ba, a), a.u = 0);\n}\n\nfunction Hd(a, b) {\n if (Dc(a.b) >= a.b.f - (a.h ? 1 : 0)) return !1;\n if (a.h) return a.g = b.s.concat(a.g), !0;\n if (1 == a.v || 2 == a.v || a.u >= (a.Ia ? 0 : a.Ja)) return !1;\n a.h = I(p(a.Ba, a, b), Id(a, a.u));\n a.u++;\n return !0;\n}\n\ng.Ba = function (a) {\n if (this.h) if (this.h = null, 1 == this.v) {\n if (!a) {\n this.R = Math.floor(1E5 * Math.random());\n a = this.R++;\n var b = new K(this, this.c, a, void 0),\n c = this.l;\n this.O && (c ? (c = Ba(c), Da(c, this.O)) : c = this.O);\n null === this.i && (b.B = c);\n var d;\n if (this.da) a: {\n for (var e = d = 0; e < this.g.length; e++) {\n b: {\n var f = this.g[e];\n\n if (\"__data__\" in f.a && (f = f.a.__data__, \"string\" === typeof f)) {\n f = f.length;\n break b;\n }\n\n f = void 0;\n }\n\n if (void 0 === f) break;\n d += f;\n\n if (4096 < d) {\n d = e;\n break a;\n }\n\n if (4096 === d || e === this.g.length - 1) {\n d = e + 1;\n break a;\n }\n }\n\n d = 1E3;\n } else d = 1E3;\n d = Jd(this, b, d);\n e = L(this.B);\n Q(e, \"RID\", a);\n Q(e, \"CVER\", 22);\n this.A && Q(e, \"X-HTTP-Session-Id\", this.A);\n Ed(this, e);\n this.i && c && Ad(e, this.i, c);\n Ec(this.b, b);\n this.Ga && Q(e, \"TYPE\", \"init\");\n this.da ? (Q(e, \"$req\", d), Q(e, \"SID\", \"null\"), b.V = !0, kc(b, e, null)) : kc(b, e, d);\n this.v = 2;\n }\n } else 3 == this.v && (a ? Kd(this, a) : 0 == this.g.length || id(this.b) || Kd(this));\n};\n\nfunction Kd(a, b) {\n var c;\n b ? c = b.f : c = a.R++;\n var d = L(a.B);\n Q(d, \"SID\", a.J);\n Q(d, \"RID\", c);\n Q(d, \"AID\", a.P);\n Ed(a, d);\n a.i && a.l && Ad(d, a.i, a.l);\n c = new K(a, a.c, c, a.u + 1);\n null === a.i && (c.B = a.l);\n b && (a.g = b.s.concat(a.g));\n b = Jd(a, c, 1E3);\n c.setTimeout(Math.round(.5 * a.ma) + Math.round(.5 * a.ma * Math.random()));\n Ec(a.b, c);\n kc(c, d, b);\n}\n\nfunction Ed(a, b) {\n a.f && Lc({}, function (c, d) {\n Q(b, d, c);\n });\n}\n\nfunction Jd(a, b, c) {\n c = Math.min(a.g.length, c);\n var d = a.f ? p(a.f.Ha, a.f, a) : null;\n\n a: for (var e = a.g, f = -1;;) {\n var h = [\"count=\" + c];\n -1 == f ? 0 < c ? (f = e[0].b, h.push(\"ofs=\" + f)) : f = 0 : h.push(\"ofs=\" + f);\n\n for (var m = !0, l = 0; l < c; l++) {\n var t = e[l].b,\n B = e[l].a;\n t -= f;\n if (0 > t) f = Math.max(0, e[l].b - 100), m = !1;else try {\n md(B, h, \"req\" + t + \"_\");\n } catch (z) {\n d && d(B);\n }\n }\n\n if (m) {\n d = h.join(\"&\");\n break a;\n }\n }\n\n a = a.g.splice(0, c);\n b.s = a;\n return d;\n}\n\nfunction Hc(a) {\n a.a || a.j || (a.U = 1, Cb(a.Aa, a), a.o = 0);\n}\n\nfunction Cc(a) {\n if (a.a || a.j || 3 <= a.o) return !1;\n a.U++;\n a.j = I(p(a.Aa, a), Id(a, a.o));\n a.o++;\n return !0;\n}\n\ng.Aa = function () {\n this.j = null;\n Ld(this);\n\n if (this.V && !(this.F || null == this.a || 0 >= this.N)) {\n var a = 2 * this.N;\n this.c.info(\"BP detection timer enabled: \" + a);\n this.s = I(p(this.Sa, this), a);\n }\n};\n\ng.Sa = function () {\n this.s && (this.s = null, this.c.info(\"BP detection timeout reached.\"), this.c.info(\"Buffering proxy detected and switch to long-polling!\"), this.H = !1, this.F = !0, Bc(this), Ld(this));\n};\n\nfunction xc(a) {\n null != a.s && (k.clearTimeout(a.s), a.s = null);\n}\n\nfunction Ld(a) {\n a.a = new K(a, a.c, \"rpc\", a.U);\n null === a.i && (a.a.B = a.l);\n a.a.O = 0;\n var b = L(a.la);\n Q(b, \"RID\", \"rpc\");\n Q(b, \"SID\", a.J);\n Q(b, \"CI\", a.H ? \"0\" : \"1\");\n Q(b, \"AID\", a.P);\n Ed(a, b);\n Q(b, \"TYPE\", \"xmlhttp\");\n a.i && a.l && Ad(b, a.i, a.l);\n a.D && a.a.setTimeout(a.D);\n var c = a.a;\n a = a.ga;\n c.H = 1;\n c.i = lc(L(b));\n c.j = null;\n c.I = !0;\n mc(c, a);\n}\n\ng.Ra = function () {\n null != this.m && (this.m = null, Bc(this), Cc(this), H(19));\n};\n\nfunction Ac(a) {\n null != a.m && (k.clearTimeout(a.m), a.m = null);\n}\n\nfunction uc(a, b) {\n var c = null;\n\n if (a.a == b) {\n Ac(a);\n xc(a);\n a.a = null;\n var d = 2;\n } else if (zc(a.b, b)) c = b.s, Gc(a.b, b), d = 1;else return;\n\n a.I = b.N;\n if (0 != a.v) if (b.b) {\n if (1 == d) {\n c = b.j ? b.j.length : 0;\n b = q() - b.u;\n var e = a.u;\n d = Vb();\n d.dispatchEvent(new Yb(d, c, b, e));\n Ic(a);\n } else Hc(a);\n } else if (e = b.h, 3 == e || 0 == e && 0 < a.I || !(1 == d && Hd(a, b) || 2 == d && Cc(a))) switch (c && 0 < c.length && (b = a.b, b.c = b.c.concat(c)), e) {\n case 1:\n P(a, 5);\n break;\n\n case 4:\n P(a, 10);\n break;\n\n case 3:\n P(a, 6);\n break;\n\n default:\n P(a, 2);\n }\n}\n\nfunction Id(a, b) {\n var c = a.Fa + Math.floor(Math.random() * a.Ma);\n a.f || (c *= 2);\n return c * b;\n}\n\nfunction P(a, b) {\n a.c.info(\"Error code \" + b);\n\n if (2 == b) {\n var c = null;\n a.f && (c = null);\n var d = p(a.Xa, a);\n c || (c = new T(\"//www.google.com/images/cleardot.gif\"), k.location && \"http\" == k.location.protocol || Pc(c, \"https\"), lc(c));\n nd(c.toString(), d);\n } else H(2);\n\n a.v = 0;\n a.f && a.f.ra(b);\n Fd(a);\n Dd(a);\n}\n\ng.Xa = function (a) {\n a ? (this.c.info(\"Successfully pinged google.com\"), H(2)) : (this.c.info(\"Failed to ping google.com\"), H(1));\n};\n\nfunction Fd(a) {\n a.v = 0;\n a.I = -1;\n\n if (a.f) {\n if (0 != jd(a.b).length || 0 != a.g.length) a.b.c.length = 0, sa(a.g), a.g.length = 0;\n a.f.qa();\n }\n}\n\nfunction Fc(a, b, c) {\n var d = ad(c);\n if (\"\" != d.c) b && Qc(d, b + \".\" + d.c), Rc(d, d.h);else {\n var e = k.location;\n d = bd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\n }\n a.W && Aa(a.W, function (f, h) {\n Q(d, h, f);\n });\n b = a.A;\n c = a.na;\n b && c && Q(d, b, c);\n Q(d, \"VER\", a.ha);\n Ed(a, d);\n return d;\n}\n\nfunction oc(a, b) {\n if (b && !a.C) throw Error(\"Can't create secondary domain capable XhrIo object.\");\n b = new X(a.Ka);\n b.F = a.C;\n return b;\n}\n\nfunction Md() {}\n\ng = Md.prototype;\n\ng.ta = function () {};\n\ng.sa = function () {};\n\ng.ra = function () {};\n\ng.qa = function () {};\n\ng.Ha = function () {};\n\nfunction Nd() {\n if (x && !(10 <= Number(Ua))) throw Error(\"Environmental error: no available transport.\");\n}\n\nNd.prototype.a = function (a, b) {\n return new Y(a, b);\n};\n\nfunction Y(a, b) {\n D.call(this);\n this.a = new Cd(b);\n this.l = a;\n this.b = b && b.messageUrlParams || null;\n a = b && b.messageHeaders || null;\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = {\n \"X-Client-Protocol\": \"webchannel\"\n });\n this.a.l = a;\n a = b && b.initMessageHeaders || null;\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = {\n \"X-WebChannel-Content-Type\": b.messageContentType\n });\n b && b.a && (a ? a[\"X-WebChannel-Client-Profile\"] = b.a : a = {\n \"X-WebChannel-Client-Profile\": b.a\n });\n this.a.O = a;\n (a = b && b.httpHeadersOverwriteParam) && !ta(a) && (this.a.i = a);\n this.h = b && b.supportsCrossDomainXhr || !1;\n this.g = b && b.sendRawJson || !1;\n (b = b && b.httpSessionIdParam) && !ta(b) && (this.a.A = b, a = this.b, null !== a && b in a && (a = this.b, b in a && delete a[b]));\n this.f = new Z(this);\n}\n\nr(Y, D);\ng = Y.prototype;\n\ng.addEventListener = function (a, b, c, d) {\n Y.S.addEventListener.call(this, a, b, c, d);\n};\n\ng.removeEventListener = function (a, b, c, d) {\n Y.S.removeEventListener.call(this, a, b, c, d);\n};\n\ng.Oa = function () {\n this.a.f = this.f;\n this.h && (this.a.C = !0);\n var a = this.a,\n b = this.l,\n c = this.b || void 0;\n H(0);\n a.fa = b;\n a.W = c || {};\n a.H = a.T;\n a.B = Fc(a, null, a.fa);\n Ic(a);\n};\n\ng.close = function () {\n Jc(this.a);\n};\n\ng.Pa = function (a) {\n if (\"string\" === typeof a) {\n var b = {};\n b.__data__ = a;\n Gd(this.a, b);\n } else this.g ? (b = {}, b.__data__ = vb(a), Gd(this.a, b)) : Gd(this.a, a);\n};\n\ng.G = function () {\n this.a.f = null;\n delete this.f;\n Jc(this.a);\n delete this.a;\n Y.S.G.call(this);\n};\n\nfunction Od(a) {\n dc.call(this);\n var b = a.__sm__;\n\n if (b) {\n a: {\n for (var c in b) {\n a = c;\n break a;\n }\n\n a = void 0;\n }\n\n (this.c = a) ? (a = this.c, this.data = null !== b && a in b ? b[a] : void 0) : this.data = b;\n } else this.data = a;\n}\n\nr(Od, dc);\n\nfunction Pd() {\n ec.call(this);\n this.status = 1;\n}\n\nr(Pd, ec);\n\nfunction Z(a) {\n this.a = a;\n}\n\nr(Z, Md);\n\nZ.prototype.ta = function () {\n this.a.dispatchEvent(\"a\");\n};\n\nZ.prototype.sa = function (a) {\n this.a.dispatchEvent(new Od(a));\n};\n\nZ.prototype.ra = function (a) {\n this.a.dispatchEvent(new Pd(a));\n};\n\nZ.prototype.qa = function () {\n this.a.dispatchEvent(\"b\");\n};\n/*\r\nCopyright 2017 Google LLC\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\nhttp://www.apache.org/licenses/LICENSE-2.0\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n*/\n\n\nNd.prototype.createWebChannel = Nd.prototype.a;\nY.prototype.send = Y.prototype.Pa;\nY.prototype.open = Y.prototype.Oa;\nY.prototype.close = Y.prototype.close;\nZb.NO_ERROR = 0;\nZb.TIMEOUT = 8;\nZb.HTTP_ERROR = 6;\n$b.COMPLETE = \"complete\";\ncc.EventType = J;\nJ.OPEN = \"a\";\nJ.CLOSE = \"b\";\nJ.ERROR = \"c\";\nJ.MESSAGE = \"d\";\nD.prototype.listen = D.prototype.va;\nX.prototype.listenOnce = X.prototype.wa;\nX.prototype.getLastError = X.prototype.Qa;\nX.prototype.getLastErrorCode = X.prototype.ua;\nX.prototype.getStatus = X.prototype.X;\nX.prototype.getResponseJson = X.prototype.Na;\nX.prototype.getResponseText = X.prototype.$;\nX.prototype.send = X.prototype.ba;\n\nvar createWebChannelTransport = function createWebChannelTransport() {\n return new Nd();\n};\n\nvar ErrorCode = Zb;\nvar EventType = $b;\nvar WebChannel = cc;\nvar XhrIo = X;\nvar esm = {\n createWebChannelTransport: createWebChannelTransport,\n ErrorCode: ErrorCode,\n EventType: EventType,\n WebChannel: WebChannel,\n XhrIo: XhrIo\n};\nexport default esm;\nexport { ErrorCode, EventType, WebChannel, XhrIo, createWebChannelTransport };","'use strict';\n\nvar firebase = require('@firebase/app');\n\nvar tslib = require('tslib');\n\nvar component = require('@firebase/component');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar firebase__default =\n/*#__PURE__*/\n_interopDefaultLegacy(firebase);\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Standard error codes for different ways a request can fail, as defined by:\r\n * https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto\r\n *\r\n * This map is used primarily to convert from a backend error code string to\r\n * a client SDK error code string, and make sure it's in the supported set.\r\n */\n\n\nvar errorCodeMap = {\n OK: 'ok',\n CANCELLED: 'cancelled',\n UNKNOWN: 'unknown',\n INVALID_ARGUMENT: 'invalid-argument',\n DEADLINE_EXCEEDED: 'deadline-exceeded',\n NOT_FOUND: 'not-found',\n ALREADY_EXISTS: 'already-exists',\n PERMISSION_DENIED: 'permission-denied',\n UNAUTHENTICATED: 'unauthenticated',\n RESOURCE_EXHAUSTED: 'resource-exhausted',\n FAILED_PRECONDITION: 'failed-precondition',\n ABORTED: 'aborted',\n OUT_OF_RANGE: 'out-of-range',\n UNIMPLEMENTED: 'unimplemented',\n INTERNAL: 'internal',\n UNAVAILABLE: 'unavailable',\n DATA_LOSS: 'data-loss'\n};\n/**\r\n * An explicit error that can be thrown from a handler to send an error to the\r\n * client that called the function.\r\n */\n\nvar HttpsErrorImpl =\n/** @class */\nfunction (_super) {\n tslib.__extends(HttpsErrorImpl, _super);\n\n function HttpsErrorImpl(code, message, details) {\n var _this = _super.call(this, message) || this; // This is a workaround for a bug in TypeScript when extending Error:\n // tslint:disable-next-line\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n\n\n Object.setPrototypeOf(_this, HttpsErrorImpl.prototype);\n _this.code = code;\n _this.details = details;\n return _this;\n }\n\n return HttpsErrorImpl;\n}(Error);\n/**\r\n * Takes an HTTP status code and returns the corresponding ErrorCode.\r\n * This is the standard HTTP status code -> error mapping defined in:\r\n * https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto\r\n *\r\n * @param status An HTTP status code.\r\n * @return The corresponding ErrorCode, or ErrorCode.UNKNOWN if none.\r\n */\n\n\nfunction codeForHTTPStatus(status) {\n // Make sure any successful status is OK.\n if (status >= 200 && status < 300) {\n return 'ok';\n }\n\n switch (status) {\n case 0:\n // This can happen if the server returns 500.\n return 'internal';\n\n case 400:\n return 'invalid-argument';\n\n case 401:\n return 'unauthenticated';\n\n case 403:\n return 'permission-denied';\n\n case 404:\n return 'not-found';\n\n case 409:\n return 'aborted';\n\n case 429:\n return 'resource-exhausted';\n\n case 499:\n return 'cancelled';\n\n case 500:\n return 'internal';\n\n case 501:\n return 'unimplemented';\n\n case 503:\n return 'unavailable';\n\n case 504:\n return 'deadline-exceeded';\n }\n\n return 'unknown';\n}\n/**\r\n * Takes an HTTP response and returns the corresponding Error, if any.\r\n */\n\n\nfunction _errorForResponse(status, bodyJSON, serializer) {\n var code = codeForHTTPStatus(status); // Start with reasonable defaults from the status code.\n\n var description = code;\n var details = undefined; // Then look through the body for explicit details.\n\n try {\n var errorJSON = bodyJSON && bodyJSON.error;\n\n if (errorJSON) {\n var status_1 = errorJSON.status;\n\n if (typeof status_1 === 'string') {\n if (!errorCodeMap[status_1]) {\n // They must've included an unknown error code in the body.\n return new HttpsErrorImpl('internal', 'internal');\n }\n\n code = errorCodeMap[status_1]; // TODO(klimt): Add better default descriptions for error enums.\n // The default description needs to be updated for the new code.\n\n description = status_1;\n }\n\n var message = errorJSON.message;\n\n if (typeof message === 'string') {\n description = message;\n }\n\n details = errorJSON.details;\n\n if (details !== undefined) {\n details = serializer.decode(details);\n }\n }\n } catch (e) {// If we couldn't parse explicit error data, that's fine.\n }\n\n if (code === 'ok') {\n // Technically, there's an edge case where a developer could explicitly\n // return an error code of OK, and we will treat it as success, but that\n // seems reasonable.\n return null;\n }\n\n return new HttpsErrorImpl(code, description, details);\n}\n/**\r\n * Helper class to get metadata that should be included with a function call.\r\n */\n\n\nvar ContextProvider =\n/** @class */\nfunction () {\n function ContextProvider(authProvider, messagingProvider) {\n var _this = this;\n\n this.auth = null;\n this.messaging = null;\n this.auth = authProvider.getImmediate({\n optional: true\n });\n this.messaging = messagingProvider.getImmediate({\n optional: true\n });\n\n if (!this.auth) {\n authProvider.get().then(function (auth) {\n return _this.auth = auth;\n }, function () {\n /* get() never rejects */\n });\n }\n\n if (!this.messaging) {\n messagingProvider.get().then(function (messaging) {\n return _this.messaging = messaging;\n }, function () {\n /* get() never rejects */\n });\n }\n }\n\n ContextProvider.prototype.getAuthToken = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var token, e_1;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.auth) {\n return [2\n /*return*/\n , undefined];\n }\n\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.auth.getToken()];\n\n case 2:\n token = _a.sent();\n\n if (!token) {\n return [2\n /*return*/\n , undefined];\n }\n\n return [2\n /*return*/\n , token.accessToken];\n\n case 3:\n e_1 = _a.sent(); // If there's any error when trying to get the auth token, leave it off.\n\n return [2\n /*return*/\n , undefined];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n ContextProvider.prototype.getInstanceIdToken = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n return tslib.__generator(this, function (_a) {\n if (!this.messaging || !('Notification' in self) || Notification.permission !== 'granted') {\n return [2\n /*return*/\n , undefined];\n }\n\n try {\n return [2\n /*return*/\n , this.messaging.getToken()];\n } catch (e) {\n // We don't warn on this, because it usually means messaging isn't set up.\n // console.warn('Failed to retrieve instance id token.', e);\n // If there's any error when trying to get the token, leave it off.\n return [2\n /*return*/\n , undefined];\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n ContextProvider.prototype.getContext = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var authToken, instanceIdToken;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getAuthToken()];\n\n case 1:\n authToken = _a.sent();\n return [4\n /*yield*/\n , this.getInstanceIdToken()];\n\n case 2:\n instanceIdToken = _a.sent();\n return [2\n /*return*/\n , {\n authToken: authToken,\n instanceIdToken: instanceIdToken\n }];\n }\n });\n });\n };\n\n return ContextProvider;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar LONG_TYPE = 'type.googleapis.com/google.protobuf.Int64Value';\nvar UNSIGNED_LONG_TYPE = 'type.googleapis.com/google.protobuf.UInt64Value';\n\nfunction mapValues( // { [k: string]: unknown } is no longer a wildcard assignment target after typescript 3.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no, f) {\n var result = {};\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n result[key] = f(o[key]);\n }\n }\n\n return result;\n}\n\nvar Serializer =\n/** @class */\nfunction () {\n function Serializer() {} // Takes data and encodes it in a JSON-friendly way, such that types such as\n // Date are preserved.\n\n\n Serializer.prototype.encode = function (data) {\n var _this = this;\n\n if (data == null) {\n return null;\n }\n\n if (data instanceof Number) {\n data = data.valueOf();\n }\n\n if (typeof data === 'number' && isFinite(data)) {\n // Any number in JS is safe to put directly in JSON and parse as a double\n // without any loss of precision.\n return data;\n }\n\n if (data === true || data === false) {\n return data;\n }\n\n if (Object.prototype.toString.call(data) === '[object String]') {\n return data;\n }\n\n if (Array.isArray(data)) {\n return data.map(function (x) {\n return _this.encode(x);\n });\n }\n\n if (typeof data === 'function' || typeof data === 'object') {\n return mapValues(data, function (x) {\n return _this.encode(x);\n });\n } // If we got this far, the data is not encodable.\n\n\n throw new Error('Data cannot be encoded in JSON: ' + data);\n }; // Takes data that's been encoded in a JSON-friendly form and returns a form\n // with richer datatypes, such as Dates, etc.\n\n\n Serializer.prototype.decode = function (json) {\n var _this = this;\n\n if (json == null) {\n return json;\n }\n\n if (json['@type']) {\n switch (json['@type']) {\n case LONG_TYPE: // Fall through and handle this the same as unsigned.\n\n case UNSIGNED_LONG_TYPE:\n {\n // Technically, this could work return a valid number for malformed\n // data if there was a number followed by garbage. But it's just not\n // worth all the extra code to detect that case.\n var value = Number(json['value']);\n\n if (isNaN(value)) {\n throw new Error('Data cannot be decoded from JSON: ' + json);\n }\n\n return value;\n }\n\n default:\n {\n throw new Error('Data cannot be decoded from JSON: ' + json);\n }\n }\n }\n\n if (Array.isArray(json)) {\n return json.map(function (x) {\n return _this.decode(x);\n });\n }\n\n if (typeof json === 'function' || typeof json === 'object') {\n return mapValues(json, function (x) {\n return _this.decode(x);\n });\n } // Anything else is safe to return.\n\n\n return json;\n };\n\n return Serializer;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a Promise that will be rejected after the given duration.\r\n * The error will be of type HttpsErrorImpl.\r\n *\r\n * @param millis Number of milliseconds to wait before rejecting.\r\n */\n\n\nfunction failAfter(millis) {\n var timer;\n var promise = new Promise(function (_, reject) {\n timer = setTimeout(function () {\n reject(new HttpsErrorImpl('deadline-exceeded', 'deadline-exceeded'));\n }, millis);\n });\n return {\n timer: timer,\n promise: promise\n };\n}\n/**\r\n * The main class for the Firebase Functions SDK.\r\n */\n\n\nvar Service =\n/** @class */\nfunction () {\n /**\r\n * Creates a new Functions service for the given app and (optional) region or custom domain.\r\n * @param app_ The FirebaseApp to use.\r\n * @param regionOrCustomDomain_ one of:\r\n * a) A region to call functions from, such as us-central1\r\n * b) A custom domain to use as a functions prefix, such as https://mydomain.com\r\n */\n function Service(app_, authProvider, messagingProvider, regionOrCustomDomain_, fetchImpl) {\n var _this = this;\n\n if (regionOrCustomDomain_ === void 0) {\n regionOrCustomDomain_ = 'us-central1';\n }\n\n this.app_ = app_;\n this.fetchImpl = fetchImpl;\n this.serializer = new Serializer();\n this.emulatorOrigin = null;\n this.INTERNAL = {\n delete: function _delete() {\n return Promise.resolve(_this.deleteService());\n }\n };\n this.contextProvider = new ContextProvider(authProvider, messagingProvider); // Cancels all ongoing requests when resolved.\n\n this.cancelAllRequests = new Promise(function (resolve) {\n _this.deleteService = function () {\n return resolve();\n };\n }); // Resolve the region or custom domain overload by attempting to parse it.\n\n try {\n var url = new URL(regionOrCustomDomain_);\n this.customDomain = url.origin;\n this.region = 'us-central1';\n } catch (e) {\n this.customDomain = null;\n this.region = regionOrCustomDomain_;\n }\n }\n\n Object.defineProperty(Service.prototype, \"app\", {\n get: function get() {\n return this.app_;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Returns the URL for a callable with the given name.\r\n * @param name The name of the callable.\r\n */\n\n Service.prototype._url = function (name) {\n var projectId = this.app_.options.projectId;\n\n if (this.emulatorOrigin !== null) {\n var origin_1 = this.emulatorOrigin;\n return origin_1 + \"/\" + projectId + \"/\" + this.region + \"/\" + name;\n }\n\n if (this.customDomain !== null) {\n return this.customDomain + \"/\" + name;\n }\n\n return \"https://\" + this.region + \"-\" + projectId + \".cloudfunctions.net/\" + name;\n };\n /**\r\n * Changes this instance to point to a Cloud Functions emulator running\r\n * locally. See https://firebase.google.com/docs/functions/local-emulator\r\n *\r\n * @param origin The origin of the local emulator, such as\r\n * \"http://localhost:5005\".\r\n */\n\n\n Service.prototype.useFunctionsEmulator = function (origin) {\n this.emulatorOrigin = origin;\n };\n /**\r\n * Returns a reference to the callable https trigger with the given name.\r\n * @param name The name of the trigger.\r\n */\n\n\n Service.prototype.httpsCallable = function (name, options) {\n var _this = this;\n\n return function (data) {\n return _this.call(name, data, options || {});\n };\n };\n /**\r\n * Does an HTTP POST and returns the completed response.\r\n * @param url The url to post to.\r\n * @param body The JSON body of the post.\r\n * @param headers The HTTP headers to include in the request.\r\n * @return A Promise that will succeed when the request finishes.\r\n */\n\n\n Service.prototype.postJSON = function (url, body, headers) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var response, e_1, json, e_2;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n headers['Content-Type'] = 'application/json';\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.fetchImpl(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: headers\n })];\n\n case 2:\n response = _a.sent();\n return [3\n /*break*/\n , 4];\n\n case 3:\n e_1 = _a.sent(); // This could be an unhandled error on the backend, or it could be a\n // network error. There's no way to know, since an unhandled error on the\n // backend will fail to set the proper CORS header, and thus will be\n // treated as a network error by fetch.\n\n return [2\n /*return*/\n , {\n status: 0,\n json: null\n }];\n\n case 4:\n json = null;\n _a.label = 5;\n\n case 5:\n _a.trys.push([5, 7,, 8]);\n\n return [4\n /*yield*/\n , response.json()];\n\n case 6:\n json = _a.sent();\n return [3\n /*break*/\n , 8];\n\n case 7:\n e_2 = _a.sent();\n return [3\n /*break*/\n , 8];\n\n case 8:\n return [2\n /*return*/\n , {\n status: response.status,\n json: json\n }];\n }\n });\n });\n };\n /**\r\n * Calls a callable function asynchronously and returns the result.\r\n * @param name The name of the callable trigger.\r\n * @param data The data to pass as params to the function.s\r\n */\n\n\n Service.prototype.call = function (name, data, options) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var url, body, headers, context, timeout, _a, timer, failAfterPromise, response, error, responseData, decodedData;\n\n return tslib.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n url = this._url(name); // Encode any special types, such as dates, in the input data.\n\n data = this.serializer.encode(data);\n body = {\n data: data\n };\n headers = {};\n return [4\n /*yield*/\n , this.contextProvider.getContext()];\n\n case 1:\n context = _b.sent();\n\n if (context.authToken) {\n headers['Authorization'] = 'Bearer ' + context.authToken;\n }\n\n if (context.instanceIdToken) {\n headers['Firebase-Instance-ID-Token'] = context.instanceIdToken;\n }\n\n timeout = options.timeout || 70000;\n _a = failAfter(timeout), timer = _a.timer, failAfterPromise = _a.promise;\n return [4\n /*yield*/\n , Promise.race([clearTimeoutWrapper(timer, this.postJSON(url, body, headers)), failAfterPromise, clearTimeoutWrapper(timer, this.cancelAllRequests)])];\n\n case 2:\n response = _b.sent(); // If service was deleted, interrupted response throws an error.\n\n if (!response) {\n throw new HttpsErrorImpl('cancelled', 'Firebase Functions instance was deleted.');\n }\n\n error = _errorForResponse(response.status, response.json, this.serializer);\n\n if (error) {\n throw error;\n }\n\n if (!response.json) {\n throw new HttpsErrorImpl('internal', 'Response is not valid JSON object.');\n }\n\n responseData = response.json.data; // TODO(klimt): For right now, allow \"result\" instead of \"data\", for\n // backwards compatibility.\n\n if (typeof responseData === 'undefined') {\n responseData = response.json.result;\n }\n\n if (typeof responseData === 'undefined') {\n // Consider the response malformed.\n throw new HttpsErrorImpl('internal', 'Response is missing data field.');\n }\n\n decodedData = this.serializer.decode(responseData);\n return [2\n /*return*/\n , {\n data: decodedData\n }];\n }\n });\n });\n };\n\n return Service;\n}();\n\nfunction clearTimeoutWrapper(timer, promise) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var result;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , promise];\n\n case 1:\n result = _a.sent(); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n clearTimeout(timer);\n return [2\n /*return*/\n , result];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Type constant for Firebase Functions.\r\n */\n\n\nvar FUNCTIONS_TYPE = 'functions';\n\nfunction registerFunctions(instance, fetchImpl) {\n var namespaceExports = {\n // no-inline\n Functions: Service\n };\n\n function factory(container, regionOrCustomDomain) {\n // Dependencies\n var app = container.getProvider('app').getImmediate();\n var authProvider = container.getProvider('auth-internal');\n var messagingProvider = container.getProvider('messaging'); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n return new Service(app, authProvider, messagingProvider, regionOrCustomDomain, fetchImpl);\n }\n\n instance.INTERNAL.registerComponent(new component.Component(FUNCTIONS_TYPE, factory, \"PUBLIC\"\n /* PUBLIC */\n ).setServiceProps(namespaceExports).setMultipleInstances(true));\n}\n\nvar name = \"@firebase/functions\";\nvar version = \"0.5.1\";\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nregisterFunctions(firebase__default['default'], fetch.bind(self));\nfirebase__default['default'].registerVersion(name, version);","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar firebase = require('@firebase/app');\n\nrequire('@firebase/installations');\n\nvar tslib = require('tslib');\n\nvar util = require('@firebase/util');\n\nvar logger$1 = require('@firebase/logger');\n\nvar component = require('@firebase/component');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar firebase__default =\n/*#__PURE__*/\n_interopDefaultLegacy(firebase);\n\nvar name = \"@firebase/performance\";\nvar version = \"0.4.2\";\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar SDK_VERSION = version;\n/** The prefix for start User Timing marks used for creating Traces. */\n\nvar TRACE_START_MARK_PREFIX = 'FB-PERF-TRACE-START';\n/** The prefix for stop User Timing marks used for creating Traces. */\n\nvar TRACE_STOP_MARK_PREFIX = 'FB-PERF-TRACE-STOP';\n/** The prefix for User Timing measure used for creating Traces. */\n\nvar TRACE_MEASURE_PREFIX = 'FB-PERF-TRACE-MEASURE';\n/** The prefix for out of the box page load Trace name. */\n\nvar OOB_TRACE_PAGE_LOAD_PREFIX = '_wt_';\nvar FIRST_PAINT_COUNTER_NAME = '_fp';\nvar FIRST_CONTENTFUL_PAINT_COUNTER_NAME = '_fcp';\nvar FIRST_INPUT_DELAY_COUNTER_NAME = '_fid';\nvar CONFIG_LOCAL_STORAGE_KEY = '@firebase/performance/config';\nvar CONFIG_EXPIRY_LOCAL_STORAGE_KEY = '@firebase/performance/configexpire';\nvar SERVICE = 'performance';\nvar SERVICE_NAME = 'Performance';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a;\n\nvar ERROR_DESCRIPTION_MAP = (_a = {}, _a[\"trace started\"\n/* TRACE_STARTED_BEFORE */\n] = 'Trace {$traceName} was started before.', _a[\"trace stopped\"\n/* TRACE_STOPPED_BEFORE */\n] = 'Trace {$traceName} is not running.', _a[\"nonpositive trace startTime\"\n/* NONPOSITIVE_TRACE_START_TIME */\n] = 'Trace {$traceName} startTime should be positive.', _a[\"nonpositive trace duration\"\n/* NONPOSITIVE_TRACE_DURATION */\n] = 'Trace {$traceName} duration should be positive.', _a[\"no window\"\n/* NO_WINDOW */\n] = 'Window is not available.', _a[\"no app id\"\n/* NO_APP_ID */\n] = 'App id is not available.', _a[\"no project id\"\n/* NO_PROJECT_ID */\n] = 'Project id is not available.', _a[\"no api key\"\n/* NO_API_KEY */\n] = 'Api key is not available.', _a[\"invalid cc log\"\n/* INVALID_CC_LOG */\n] = 'Attempted to queue invalid cc event', _a[\"FB not default\"\n/* FB_NOT_DEFAULT */\n] = 'Performance can only start when Firebase app instance is the default one.', _a[\"RC response not ok\"\n/* RC_NOT_OK */\n] = 'RC response is not ok', _a[\"invalid attribute name\"\n/* INVALID_ATTRIBUTE_NAME */\n] = 'Attribute name {$attributeName} is invalid.', _a[\"invalid attribute value\"\n/* INVALID_ATTRIBUTE_VALUE */\n] = 'Attribute value {$attributeValue} is invalid.', _a[\"invalid custom metric name\"\n/* INVALID_CUSTOM_METRIC_NAME */\n] = 'Custom metric name {$customMetricName} is invalid', _a[\"invalid String merger input\"\n/* INVALID_STRING_MERGER_PARAMETER */\n] = 'Input for String merger is invalid, contact support team to resolve.', _a);\nvar ERROR_FACTORY = new util.ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar consoleLogger = new logger$1.Logger(SERVICE_NAME);\nconsoleLogger.logLevel = logger$1.LogLevel.INFO;\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar apiInstance;\nvar windowInstance;\n/**\r\n * This class holds a reference to various browser related objects injected by\r\n * set methods.\r\n */\n\nvar Api =\n/** @class */\nfunction () {\n function Api(window) {\n this.window = window;\n\n if (!window) {\n throw ERROR_FACTORY.create(\"no window\"\n /* NO_WINDOW */\n );\n }\n\n this.performance = window.performance;\n this.PerformanceObserver = window.PerformanceObserver;\n this.windowLocation = window.location;\n this.navigator = window.navigator;\n this.document = window.document;\n\n if (this.navigator && this.navigator.cookieEnabled) {\n // If user blocks cookies on the browser, accessing localStorage will\n // throw an exception.\n this.localStorage = window.localStorage;\n }\n\n if (window.perfMetrics && window.perfMetrics.onFirstInputDelay) {\n this.onFirstInputDelay = window.perfMetrics.onFirstInputDelay;\n }\n }\n\n Api.prototype.getUrl = function () {\n // Do not capture the string query part of url.\n return this.windowLocation.href.split('?')[0];\n };\n\n Api.prototype.mark = function (name) {\n if (!this.performance || !this.performance.mark) {\n return;\n }\n\n this.performance.mark(name);\n };\n\n Api.prototype.measure = function (measureName, mark1, mark2) {\n if (!this.performance || !this.performance.measure) {\n return;\n }\n\n this.performance.measure(measureName, mark1, mark2);\n };\n\n Api.prototype.getEntriesByType = function (type) {\n if (!this.performance || !this.performance.getEntriesByType) {\n return [];\n }\n\n return this.performance.getEntriesByType(type);\n };\n\n Api.prototype.getEntriesByName = function (name) {\n if (!this.performance || !this.performance.getEntriesByName) {\n return [];\n }\n\n return this.performance.getEntriesByName(name);\n };\n\n Api.prototype.getTimeOrigin = function () {\n // Polyfill the time origin with performance.timing.navigationStart.\n return this.performance && (this.performance.timeOrigin || this.performance.timing.navigationStart);\n };\n\n Api.prototype.requiredApisAvailable = function () {\n if (!fetch || !Promise || !this.navigator || !this.navigator.cookieEnabled) {\n consoleLogger.info('Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled.');\n return false;\n }\n\n if (!util.isIndexedDBAvailable()) {\n consoleLogger.info('IndexedDB is not supported by current browswer');\n return false;\n }\n\n return true;\n };\n\n Api.prototype.setupObserver = function (entryType, callback) {\n if (!this.PerformanceObserver) {\n return;\n }\n\n var observer = new this.PerformanceObserver(function (list) {\n for (var _i = 0, _a = list.getEntries(); _i < _a.length; _i++) {\n var entry = _a[_i]; // `entry` is a PerformanceEntry instance.\n\n callback(entry);\n }\n }); // Start observing the entry types you care about.\n\n observer.observe({\n entryTypes: [entryType]\n });\n };\n\n Api.getInstance = function () {\n if (apiInstance === undefined) {\n apiInstance = new Api(windowInstance);\n }\n\n return apiInstance;\n };\n\n return Api;\n}();\n\nfunction setupApi(window) {\n windowInstance = window;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction mergeStrings(part1, part2) {\n var sizeDiff = part1.length - part2.length;\n\n if (sizeDiff < 0 || sizeDiff > 1) {\n throw ERROR_FACTORY.create(\"invalid String merger input\"\n /* INVALID_STRING_MERGER_PARAMETER */\n );\n }\n\n var resultArray = [];\n\n for (var i = 0; i < part1.length; i++) {\n resultArray.push(part1.charAt(i));\n\n if (part2.length > i) {\n resultArray.push(part2.charAt(i));\n }\n }\n\n return resultArray.join('');\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar settingsServiceInstance;\n\nvar SettingsService =\n/** @class */\nfunction () {\n function SettingsService() {\n // The variable which controls logging of automatic traces and HTTP/S network monitoring.\n this.instrumentationEnabled = true; // The variable which controls logging of custom traces.\n\n this.dataCollectionEnabled = true; // Configuration flags set through remote config.\n\n this.loggingEnabled = false; // Sampling rate between 0 and 1.\n\n this.tracesSamplingRate = 1;\n this.networkRequestsSamplingRate = 1; // Address of logging service.\n\n this.logEndPointUrl = 'https://firebaselogging.googleapis.com/v0cc/log?format=json_proto'; // Performance event transport endpoint URL which should be compatible with proto3.\n // New Address for transport service, not configurable via Remote Config.\n\n this.flTransportEndpointUrl = mergeStrings('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\n this.transportKey = mergeStrings('AzSC8r6ReiGqFMyfvgow', 'Iayx0u-XT3vksVM-pIV'); // Source type for performance event logs.\n\n this.logSource = 462; // Flags which control per session logging of traces and network requests.\n\n this.logTraceAfterSampling = false;\n this.logNetworkAfterSampling = false; // TTL of config retrieved from remote config in hours.\n\n this.configTimeToLive = 12;\n }\n\n SettingsService.prototype.getAppId = function () {\n var appId = this.firebaseAppInstance && this.firebaseAppInstance.options && this.firebaseAppInstance.options.appId;\n\n if (!appId) {\n throw ERROR_FACTORY.create(\"no app id\"\n /* NO_APP_ID */\n );\n }\n\n return appId;\n };\n\n SettingsService.prototype.getProjectId = function () {\n var projectId = this.firebaseAppInstance && this.firebaseAppInstance.options && this.firebaseAppInstance.options.projectId;\n\n if (!projectId) {\n throw ERROR_FACTORY.create(\"no project id\"\n /* NO_PROJECT_ID */\n );\n }\n\n return projectId;\n };\n\n SettingsService.prototype.getApiKey = function () {\n var apiKey = this.firebaseAppInstance && this.firebaseAppInstance.options && this.firebaseAppInstance.options.apiKey;\n\n if (!apiKey) {\n throw ERROR_FACTORY.create(\"no api key\"\n /* NO_API_KEY */\n );\n }\n\n return apiKey;\n };\n\n SettingsService.prototype.getFlTransportFullUrl = function () {\n return this.flTransportEndpointUrl.concat('?key=', this.transportKey);\n };\n\n SettingsService.getInstance = function () {\n if (settingsServiceInstance === undefined) {\n settingsServiceInstance = new SettingsService();\n }\n\n return settingsServiceInstance;\n };\n\n return SettingsService;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar iid;\n\nfunction getIidPromise() {\n var iidPromise = SettingsService.getInstance().installationsService.getId(); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n iidPromise.then(function (iidVal) {\n iid = iidVal;\n });\n return iidPromise;\n} // This method should be used after the iid is retrieved by getIidPromise method.\n\n\nfunction getIid() {\n return iid;\n}\n\nfunction getAuthTokenPromise() {\n var authTokenPromise = SettingsService.getInstance().installationsService.getToken(); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n authTokenPromise.then(function (authTokenVal) {});\n return authTokenPromise;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar VisibilityState;\n\n(function (VisibilityState) {\n VisibilityState[VisibilityState[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n VisibilityState[VisibilityState[\"VISIBLE\"] = 1] = \"VISIBLE\";\n VisibilityState[VisibilityState[\"HIDDEN\"] = 2] = \"HIDDEN\";\n})(VisibilityState || (VisibilityState = {}));\n\nvar RESERVED_ATTRIBUTE_PREFIXES = ['firebase_', 'google_', 'ga_'];\nvar ATTRIBUTE_FORMAT_REGEX = new RegExp('^[a-zA-Z]\\\\w*$');\nvar MAX_ATTRIBUTE_NAME_LENGTH = 40;\nvar MAX_ATTRIBUTE_VALUE_LENGTH = 100;\n\nfunction getServiceWorkerStatus() {\n var navigator = Api.getInstance().navigator;\n\n if ('serviceWorker' in navigator) {\n if (navigator.serviceWorker.controller) {\n return 2\n /* CONTROLLED */\n ;\n } else {\n return 3\n /* UNCONTROLLED */\n ;\n }\n } else {\n return 1\n /* UNSUPPORTED */\n ;\n }\n}\n\nfunction getVisibilityState() {\n var document = Api.getInstance().document;\n var visibilityState = document.visibilityState;\n\n switch (visibilityState) {\n case 'visible':\n return VisibilityState.VISIBLE;\n\n case 'hidden':\n return VisibilityState.HIDDEN;\n\n default:\n return VisibilityState.UNKNOWN;\n }\n}\n\nfunction getEffectiveConnectionType() {\n var navigator = Api.getInstance().navigator;\n var navigatorConnection = navigator.connection;\n var effectiveType = navigatorConnection && navigatorConnection.effectiveType;\n\n switch (effectiveType) {\n case 'slow-2g':\n return 1\n /* CONNECTION_SLOW_2G */\n ;\n\n case '2g':\n return 2\n /* CONNECTION_2G */\n ;\n\n case '3g':\n return 3\n /* CONNECTION_3G */\n ;\n\n case '4g':\n return 4\n /* CONNECTION_4G */\n ;\n\n default:\n return 0\n /* UNKNOWN */\n ;\n }\n}\n\nfunction isValidCustomAttributeName(name) {\n if (name.length === 0 || name.length > MAX_ATTRIBUTE_NAME_LENGTH) {\n return false;\n }\n\n var matchesReservedPrefix = RESERVED_ATTRIBUTE_PREFIXES.some(function (prefix) {\n return name.startsWith(prefix);\n });\n return !matchesReservedPrefix && !!name.match(ATTRIBUTE_FORMAT_REGEX);\n}\n\nfunction isValidCustomAttributeValue(value) {\n return value.length !== 0 && value.length <= MAX_ATTRIBUTE_VALUE_LENGTH;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar REMOTE_CONFIG_SDK_VERSION = '0.0.1'; // These values will be used if the remote config object is successfully\n// retrieved, but the template does not have these fields.\n\nvar DEFAULT_CONFIGS = {\n loggingEnabled: true\n};\nvar FIS_AUTH_PREFIX = 'FIREBASE_INSTALLATIONS_AUTH';\n\nfunction getConfig(iid) {\n var config = getStoredConfig();\n\n if (config) {\n processConfig(config);\n return Promise.resolve();\n }\n\n return getRemoteConfig(iid).then(processConfig).then(function (config) {\n return storeConfig(config);\n },\n /** Do nothing for error, use defaults set in settings service. */\n function () {});\n}\n\nfunction getStoredConfig() {\n var localStorage = Api.getInstance().localStorage;\n\n if (!localStorage) {\n return;\n }\n\n var expiryString = localStorage.getItem(CONFIG_EXPIRY_LOCAL_STORAGE_KEY);\n\n if (!expiryString || !configValid(expiryString)) {\n return;\n }\n\n var configStringified = localStorage.getItem(CONFIG_LOCAL_STORAGE_KEY);\n\n if (!configStringified) {\n return;\n }\n\n try {\n var configResponse = JSON.parse(configStringified);\n return configResponse;\n } catch (_a) {\n return;\n }\n}\n\nfunction storeConfig(config) {\n var localStorage = Api.getInstance().localStorage;\n\n if (!config || !localStorage) {\n return;\n }\n\n localStorage.setItem(CONFIG_LOCAL_STORAGE_KEY, JSON.stringify(config));\n localStorage.setItem(CONFIG_EXPIRY_LOCAL_STORAGE_KEY, String(Date.now() + SettingsService.getInstance().configTimeToLive * 60 * 60 * 1000));\n}\n\nvar COULD_NOT_GET_CONFIG_MSG = 'Could not fetch config, will use default configs';\n\nfunction getRemoteConfig(iid) {\n // Perf needs auth token only to retrieve remote config.\n return getAuthTokenPromise().then(function (authToken) {\n var projectId = SettingsService.getInstance().getProjectId();\n var configEndPoint = \"https://firebaseremoteconfig.googleapis.com/v1/projects/\" + projectId + \"/namespaces/fireperf:fetch?key=\" + SettingsService.getInstance().getApiKey();\n var request = new Request(configEndPoint, {\n method: 'POST',\n headers: {\n Authorization: FIS_AUTH_PREFIX + \" \" + authToken\n },\n\n /* eslint-disable camelcase */\n body: JSON.stringify({\n app_instance_id: iid,\n app_instance_id_token: authToken,\n app_id: SettingsService.getInstance().getAppId(),\n app_version: SDK_VERSION,\n sdk_version: REMOTE_CONFIG_SDK_VERSION\n })\n /* eslint-enable camelcase */\n\n });\n return fetch(request).then(function (response) {\n if (response.ok) {\n return response.json();\n } // In case response is not ok. This will be caught by catch.\n\n\n throw ERROR_FACTORY.create(\"RC response not ok\"\n /* RC_NOT_OK */\n );\n });\n }).catch(function () {\n consoleLogger.info(COULD_NOT_GET_CONFIG_MSG);\n return undefined;\n });\n}\n/**\r\n * Processes config coming either from calling RC or from local storage.\r\n * This method only runs if call is successful or config in storage\r\n * is valid.\r\n */\n\n\nfunction processConfig(config) {\n if (!config) {\n return config;\n }\n\n var settingsServiceInstance = SettingsService.getInstance();\n var entries = config.entries || {};\n\n if (entries.fpr_enabled !== undefined) {\n // TODO: Change the assignment of loggingEnabled once the received type is\n // known.\n settingsServiceInstance.loggingEnabled = String(entries.fpr_enabled) === 'true';\n } else {\n // Config retrieved successfully, but there is no fpr_enabled in template.\n // Use secondary configs value.\n settingsServiceInstance.loggingEnabled = DEFAULT_CONFIGS.loggingEnabled;\n }\n\n if (entries.fpr_log_source) {\n settingsServiceInstance.logSource = Number(entries.fpr_log_source);\n }\n\n if (entries.fpr_log_endpoint_url) {\n settingsServiceInstance.logEndPointUrl = entries.fpr_log_endpoint_url;\n } // Key from Remote Config has to be non-empty string, otherwsie use local value.\n\n\n if (entries.fpr_log_transport_key) {\n settingsServiceInstance.transportKey = entries.fpr_log_transport_key;\n }\n\n if (entries.fpr_vc_network_request_sampling_rate !== undefined) {\n settingsServiceInstance.networkRequestsSamplingRate = Number(entries.fpr_vc_network_request_sampling_rate);\n }\n\n if (entries.fpr_vc_trace_sampling_rate !== undefined) {\n settingsServiceInstance.tracesSamplingRate = Number(entries.fpr_vc_trace_sampling_rate);\n } // Set the per session trace and network logging flags.\n\n\n settingsServiceInstance.logTraceAfterSampling = shouldLogAfterSampling(settingsServiceInstance.tracesSamplingRate);\n settingsServiceInstance.logNetworkAfterSampling = shouldLogAfterSampling(settingsServiceInstance.networkRequestsSamplingRate);\n return config;\n}\n\nfunction configValid(expiry) {\n return Number(expiry) > Date.now();\n}\n\nfunction shouldLogAfterSampling(samplingRate) {\n return Math.random() <= samplingRate;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar initializationStatus = 1\n/* notInitialized */\n;\nvar initializationPromise;\n\nfunction getInitializationPromise() {\n initializationStatus = 2\n /* initializationPending */\n ;\n initializationPromise = initializationPromise || initializePerf();\n return initializationPromise;\n}\n\nfunction isPerfInitialized() {\n return initializationStatus === 3\n /* initialized */\n ;\n}\n\nfunction initializePerf() {\n return getDocumentReadyComplete().then(function () {\n return getIidPromise();\n }).then(function (iid) {\n return getConfig(iid);\n }).then(function () {\n return changeInitializationStatus();\n }, function () {\n return changeInitializationStatus();\n });\n}\n/**\r\n * Returns a promise which resolves whenever the document readystate is complete or\r\n * immediately if it is called after page load complete.\r\n */\n\n\nfunction getDocumentReadyComplete() {\n var document = Api.getInstance().document;\n return new Promise(function (resolve) {\n if (document && document.readyState !== 'complete') {\n var handler_1 = function handler_1() {\n if (document.readyState === 'complete') {\n document.removeEventListener('readystatechange', handler_1);\n resolve();\n }\n };\n\n document.addEventListener('readystatechange', handler_1);\n } else {\n resolve();\n }\n });\n}\n\nfunction changeInitializationStatus() {\n initializationStatus = 3\n /* initialized */\n ;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_SEND_INTERVAL_MS = 10 * 1000;\nvar INITIAL_SEND_TIME_DELAY_MS = 5.5 * 1000; // If end point does not work, the call will be tried for these many times.\n\nvar DEFAULT_REMAINING_TRIES = 3;\nvar remainingTries = DEFAULT_REMAINING_TRIES;\n/* eslint-enable camelcase */\n\nvar queue = [];\nvar isTransportSetup = false;\n\nfunction setupTransportService() {\n if (!isTransportSetup) {\n processQueue(INITIAL_SEND_TIME_DELAY_MS);\n isTransportSetup = true;\n }\n}\n\nfunction processQueue(timeOffset) {\n setTimeout(function () {\n // If there is no remainingTries left, stop retrying.\n if (remainingTries === 0) {\n return;\n } // If there are no events to process, wait for DEFAULT_SEND_INTERVAL_MS and try again.\n\n\n if (!queue.length) {\n return processQueue(DEFAULT_SEND_INTERVAL_MS);\n }\n\n dispatchQueueEvents();\n }, timeOffset);\n}\n\nfunction dispatchQueueEvents() {\n // Capture a snapshot of the queue and empty the \"official queue\".\n var staged = tslib.__spreadArrays(queue);\n\n queue = [];\n /* eslint-disable camelcase */\n // We will pass the JSON serialized event to the backend.\n\n var log_event = staged.map(function (evt) {\n return {\n source_extension_json_proto3: evt.message,\n event_time_ms: String(evt.eventTime)\n };\n });\n var data = {\n request_time_ms: String(Date.now()),\n client_info: {\n client_type: 1,\n js_client_info: {}\n },\n log_source: SettingsService.getInstance().logSource,\n log_event: log_event\n };\n /* eslint-enable camelcase */\n\n sendEventsToFl(data, staged).catch(function () {\n // If the request fails for some reason, add the events that were attempted\n // back to the primary queue to retry later.\n queue = tslib.__spreadArrays(staged, queue);\n remainingTries--;\n consoleLogger.info(\"Tries left: \" + remainingTries + \".\");\n processQueue(DEFAULT_SEND_INTERVAL_MS);\n });\n}\n\nfunction sendEventsToFl(data, staged) {\n return postToFlEndpoint(data).then(function (res) {\n if (!res.ok) {\n consoleLogger.info('Call to Firebase backend failed.');\n }\n\n return res.json();\n }).then(function (res) {\n // Find the next call wait time from the response.\n var transportWait = Number(res.nextRequestWaitMillis);\n var requestOffset = DEFAULT_SEND_INTERVAL_MS;\n\n if (!isNaN(transportWait)) {\n requestOffset = Math.max(transportWait, requestOffset);\n } // Delete request if response include RESPONSE_ACTION_UNKNOWN or DELETE_REQUEST action.\n // Otherwise, retry request using normal scheduling if response include RETRY_REQUEST_LATER.\n\n\n var logResponseDetails = res.logResponseDetails;\n\n if (Array.isArray(logResponseDetails) && logResponseDetails.length > 0 && logResponseDetails[0].responseAction === 'RETRY_REQUEST_LATER') {\n queue = tslib.__spreadArrays(staged, queue);\n consoleLogger.info(\"Retry transport request later.\");\n }\n\n remainingTries = DEFAULT_REMAINING_TRIES; // Schedule the next process.\n\n processQueue(requestOffset);\n });\n}\n\nfunction postToFlEndpoint(data) {\n var flTransportFullUrl = SettingsService.getInstance().getFlTransportFullUrl();\n return fetch(flTransportFullUrl, {\n method: 'POST',\n body: JSON.stringify(data)\n });\n}\n\nfunction addToQueue(evt) {\n if (!evt.eventTime || !evt.message) {\n throw ERROR_FACTORY.create(\"invalid cc log\"\n /* INVALID_CC_LOG */\n );\n } // Add the new event to the queue.\n\n\n queue = tslib.__spreadArrays(queue, [evt]);\n}\n/** Log handler for cc service to send the performance logs to the server. */\n\n\nfunction transportHandler( // eslint-disable-next-line @typescript-eslint/no-explicit-any\nserializer) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var message = serializer.apply(void 0, args);\n addToQueue({\n message: message,\n eventTime: Date.now()\n });\n };\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/* eslint-enble camelcase */\n\n\nvar logger; // This method is not called before initialization.\n\nfunction sendLog(resource, resourceType) {\n if (!logger) {\n logger = transportHandler(serializer);\n }\n\n logger(resource, resourceType);\n}\n\nfunction logTrace(trace) {\n var settingsService = SettingsService.getInstance(); // Do not log if trace is auto generated and instrumentation is disabled.\n\n if (!settingsService.instrumentationEnabled && trace.isAuto) {\n return;\n } // Do not log if trace is custom and data collection is disabled.\n\n\n if (!settingsService.dataCollectionEnabled && !trace.isAuto) {\n return;\n } // Do not log if required apis are not available.\n\n\n if (!Api.getInstance().requiredApisAvailable()) {\n return;\n } // Only log the page load auto traces if page is visible.\n\n\n if (trace.isAuto && getVisibilityState() !== VisibilityState.VISIBLE) {\n return;\n }\n\n if (isPerfInitialized()) {\n sendTraceLog(trace);\n } else {\n // Custom traces can be used before the initialization but logging\n // should wait until after.\n getInitializationPromise().then(function () {\n return sendTraceLog(trace);\n }, function () {\n return sendTraceLog(trace);\n });\n }\n}\n\nfunction sendTraceLog(trace) {\n if (!getIid()) {\n return;\n }\n\n var settingsService = SettingsService.getInstance();\n\n if (!settingsService.loggingEnabled || !settingsService.logTraceAfterSampling) {\n return;\n }\n\n setTimeout(function () {\n return sendLog(trace, 1\n /* Trace */\n );\n }, 0);\n}\n\nfunction logNetworkRequest(networkRequest) {\n var settingsService = SettingsService.getInstance(); // Do not log network requests if instrumentation is disabled.\n\n if (!settingsService.instrumentationEnabled) {\n return;\n } // Do not log the js sdk's call to transport service domain to avoid unnecessary cycle.\n // Need to blacklist both old and new endpoints to avoid migration gap.\n\n\n var networkRequestUrl = networkRequest.url; // Blacklist old log endpoint and new transport endpoint.\n // Because Performance SDK doesn't instrument requests sent from SDK itself.\n\n var logEndpointUrl = settingsService.logEndPointUrl.split('?')[0];\n var flEndpointUrl = settingsService.flTransportEndpointUrl.split('?')[0];\n\n if (networkRequestUrl === logEndpointUrl || networkRequestUrl === flEndpointUrl) {\n return;\n }\n\n if (!settingsService.loggingEnabled || !settingsService.logNetworkAfterSampling) {\n return;\n }\n\n setTimeout(function () {\n return sendLog(networkRequest, 0\n /* NetworkRequest */\n );\n }, 0);\n}\n\nfunction serializer(resource, resourceType) {\n if (resourceType === 0\n /* NetworkRequest */\n ) {\n return serializeNetworkRequest(resource);\n }\n\n return serializeTrace(resource);\n}\n\nfunction serializeNetworkRequest(networkRequest) {\n var networkRequestMetric = {\n url: networkRequest.url,\n http_method: networkRequest.httpMethod || 0,\n http_response_code: 200,\n response_payload_bytes: networkRequest.responsePayloadBytes,\n client_start_time_us: networkRequest.startTimeUs,\n time_to_response_initiated_us: networkRequest.timeToResponseInitiatedUs,\n time_to_response_completed_us: networkRequest.timeToResponseCompletedUs\n };\n var perfMetric = {\n application_info: getApplicationInfo(),\n network_request_metric: networkRequestMetric\n };\n return JSON.stringify(perfMetric);\n}\n\nfunction serializeTrace(trace) {\n var traceMetric = {\n name: trace.name,\n is_auto: trace.isAuto,\n client_start_time_us: trace.startTimeUs,\n duration_us: trace.durationUs\n };\n\n if (Object.keys(trace.counters).length !== 0) {\n traceMetric.counters = trace.counters;\n }\n\n var customAttributes = trace.getAttributes();\n\n if (Object.keys(customAttributes).length !== 0) {\n traceMetric.custom_attributes = customAttributes;\n }\n\n var perfMetric = {\n application_info: getApplicationInfo(),\n trace_metric: traceMetric\n };\n return JSON.stringify(perfMetric);\n}\n\nfunction getApplicationInfo() {\n return {\n google_app_id: SettingsService.getInstance().getAppId(),\n app_instance_id: getIid(),\n web_app_info: {\n sdk_version: SDK_VERSION,\n page_url: Api.getInstance().getUrl(),\n service_worker_status: getServiceWorkerStatus(),\n visibility_state: getVisibilityState(),\n effective_connection_type: getEffectiveConnectionType()\n },\n application_process_state: 0\n };\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar MAX_METRIC_NAME_LENGTH = 100;\nvar RESERVED_AUTO_PREFIX = '_';\nvar oobMetrics = [FIRST_PAINT_COUNTER_NAME, FIRST_CONTENTFUL_PAINT_COUNTER_NAME, FIRST_INPUT_DELAY_COUNTER_NAME];\n/**\r\n * Returns true if the metric is custom and does not start with reserved prefix, or if\r\n * the metric is one of out of the box page load trace metrics.\r\n */\n\nfunction isValidMetricName(name, traceName) {\n if (name.length === 0 || name.length > MAX_METRIC_NAME_LENGTH) {\n return false;\n }\n\n return traceName && traceName.startsWith(OOB_TRACE_PAGE_LOAD_PREFIX) && oobMetrics.indexOf(name) > -1 || !name.startsWith(RESERVED_AUTO_PREFIX);\n}\n/**\r\n * Converts the provided value to an integer value to be used in case of a metric.\r\n * @param providedValue Provided number value of the metric that needs to be converted to an integer.\r\n *\r\n * @returns Converted integer number to be set for the metric.\r\n */\n\n\nfunction convertMetricValueToInteger(providedValue) {\n var valueAsInteger = Math.floor(providedValue);\n\n if (valueAsInteger < providedValue) {\n consoleLogger.info(\"Metric value should be an Integer, setting the value as : \" + valueAsInteger + \".\");\n }\n\n return valueAsInteger;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar Trace =\n/** @class */\nfunction () {\n /**\r\n * @param name The name of the trace.\r\n * @param isAuto If the trace is auto-instrumented.\r\n * @param traceMeasureName The name of the measure marker in user timing specification. This field\r\n * is only set when the trace is built for logging when the user directly uses the user timing\r\n * api (performance.mark and performance.measure).\r\n */\n function Trace(name, isAuto, traceMeasureName) {\n if (isAuto === void 0) {\n isAuto = false;\n }\n\n this.name = name;\n this.isAuto = isAuto;\n this.state = 1\n /* UNINITIALIZED */\n ;\n this.customAttributes = {};\n this.counters = {};\n this.api = Api.getInstance();\n this.randomId = Math.floor(Math.random() * 1000000);\n\n if (!this.isAuto) {\n this.traceStartMark = TRACE_START_MARK_PREFIX + \"-\" + this.randomId + \"-\" + this.name;\n this.traceStopMark = TRACE_STOP_MARK_PREFIX + \"-\" + this.randomId + \"-\" + this.name;\n this.traceMeasure = traceMeasureName || TRACE_MEASURE_PREFIX + \"-\" + this.randomId + \"-\" + this.name;\n\n if (traceMeasureName) {\n // For the case of direct user timing traces, no start stop will happen. The measure object\n // is already available.\n this.calculateTraceMetrics();\n }\n }\n }\n /**\r\n * Starts a trace. The measurement of the duration starts at this point.\r\n */\n\n\n Trace.prototype.start = function () {\n if (this.state !== 1\n /* UNINITIALIZED */\n ) {\n throw ERROR_FACTORY.create(\"trace started\"\n /* TRACE_STARTED_BEFORE */\n , {\n traceName: this.name\n });\n }\n\n this.api.mark(this.traceStartMark);\n this.state = 2\n /* RUNNING */\n ;\n };\n /**\r\n * Stops the trace. The measurement of the duration of the trace stops at this point and trace\r\n * is logged.\r\n */\n\n\n Trace.prototype.stop = function () {\n if (this.state !== 2\n /* RUNNING */\n ) {\n throw ERROR_FACTORY.create(\"trace stopped\"\n /* TRACE_STOPPED_BEFORE */\n , {\n traceName: this.name\n });\n }\n\n this.state = 3\n /* TERMINATED */\n ;\n this.api.mark(this.traceStopMark);\n this.api.measure(this.traceMeasure, this.traceStartMark, this.traceStopMark);\n this.calculateTraceMetrics();\n logTrace(this);\n };\n /**\r\n * Records a trace with predetermined values. If this method is used a trace is created and logged\r\n * directly. No need to use start and stop methods.\r\n * @param startTime Trace start time since epoch in millisec\r\n * @param duration The duraction of the trace in millisec\r\n * @param options An object which can optionally hold maps of custom metrics and custom attributes\r\n */\n\n\n Trace.prototype.record = function (startTime, duration, options) {\n if (startTime <= 0) {\n throw ERROR_FACTORY.create(\"nonpositive trace startTime\"\n /* NONPOSITIVE_TRACE_START_TIME */\n , {\n traceName: this.name\n });\n }\n\n if (duration <= 0) {\n throw ERROR_FACTORY.create(\"nonpositive trace duration\"\n /* NONPOSITIVE_TRACE_DURATION */\n , {\n traceName: this.name\n });\n }\n\n this.durationUs = Math.floor(duration * 1000);\n this.startTimeUs = Math.floor(startTime * 1000);\n\n if (options && options.attributes) {\n this.customAttributes = tslib.__assign({}, options.attributes);\n }\n\n if (options && options.metrics) {\n for (var _i = 0, _a = Object.keys(options.metrics); _i < _a.length; _i++) {\n var metric = _a[_i];\n\n if (!isNaN(Number(options.metrics[metric]))) {\n this.counters[metric] = Number(Math.floor(options.metrics[metric]));\n }\n }\n }\n\n logTrace(this);\n };\n /**\r\n * Increments a custom metric by a certain number or 1 if number not specified. Will create a new\r\n * custom metric if one with the given name does not exist. The value will be floored down to an\r\n * integer.\r\n * @param counter Name of the custom metric\r\n * @param numAsInteger Increment by value\r\n */\n\n\n Trace.prototype.incrementMetric = function (counter, numAsInteger) {\n if (numAsInteger === void 0) {\n numAsInteger = 1;\n }\n\n if (this.counters[counter] === undefined) {\n this.putMetric(counter, numAsInteger);\n } else {\n this.putMetric(counter, this.counters[counter] + numAsInteger);\n }\n };\n /**\r\n * Sets a custom metric to a specified value. Will create a new custom metric if one with the\r\n * given name does not exist. The value will be floored down to an integer.\r\n * @param counter Name of the custom metric\r\n * @param numAsInteger Set custom metric to this value\r\n */\n\n\n Trace.prototype.putMetric = function (counter, numAsInteger) {\n if (isValidMetricName(counter, this.name)) {\n this.counters[counter] = convertMetricValueToInteger(numAsInteger);\n } else {\n throw ERROR_FACTORY.create(\"invalid custom metric name\"\n /* INVALID_CUSTOM_METRIC_NAME */\n , {\n customMetricName: counter\n });\n }\n };\n /**\r\n * Returns the value of the custom metric by that name. If a custom metric with that name does\r\n * not exist will return zero.\r\n * @param counter\r\n */\n\n\n Trace.prototype.getMetric = function (counter) {\n return this.counters[counter] || 0;\n };\n /**\r\n * Sets a custom attribute of a trace to a certain value.\r\n * @param attr\r\n * @param value\r\n */\n\n\n Trace.prototype.putAttribute = function (attr, value) {\n var isValidName = isValidCustomAttributeName(attr);\n var isValidValue = isValidCustomAttributeValue(value);\n\n if (isValidName && isValidValue) {\n this.customAttributes[attr] = value;\n return;\n } // Throw appropriate error when the attribute name or value is invalid.\n\n\n if (!isValidName) {\n throw ERROR_FACTORY.create(\"invalid attribute name\"\n /* INVALID_ATTRIBUTE_NAME */\n , {\n attributeName: attr\n });\n }\n\n if (!isValidValue) {\n throw ERROR_FACTORY.create(\"invalid attribute value\"\n /* INVALID_ATTRIBUTE_VALUE */\n , {\n attributeValue: value\n });\n }\n };\n /**\r\n * Retrieves the value a custom attribute of a trace is set to.\r\n * @param attr\r\n */\n\n\n Trace.prototype.getAttribute = function (attr) {\n return this.customAttributes[attr];\n };\n\n Trace.prototype.removeAttribute = function (attr) {\n if (this.customAttributes[attr] === undefined) {\n return;\n }\n\n delete this.customAttributes[attr];\n };\n\n Trace.prototype.getAttributes = function () {\n return tslib.__assign({}, this.customAttributes);\n };\n\n Trace.prototype.setStartTime = function (startTime) {\n this.startTimeUs = startTime;\n };\n\n Trace.prototype.setDuration = function (duration) {\n this.durationUs = duration;\n };\n /**\r\n * Calculates and assigns the duration and start time of the trace using the measure performance\r\n * entry.\r\n */\n\n\n Trace.prototype.calculateTraceMetrics = function () {\n var perfMeasureEntries = this.api.getEntriesByName(this.traceMeasure);\n var perfMeasureEntry = perfMeasureEntries && perfMeasureEntries[0];\n\n if (perfMeasureEntry) {\n this.durationUs = Math.floor(perfMeasureEntry.duration * 1000);\n this.startTimeUs = Math.floor((perfMeasureEntry.startTime + this.api.getTimeOrigin()) * 1000);\n }\n };\n /**\r\n * @param navigationTimings A single element array which contains the navigationTIming object of\r\n * the page load\r\n * @param paintTimings A array which contains paintTiming object of the page load\r\n * @param firstInputDelay First input delay in millisec\r\n */\n\n\n Trace.createOobTrace = function (navigationTimings, paintTimings, firstInputDelay) {\n var route = Api.getInstance().getUrl();\n\n if (!route) {\n return;\n }\n\n var trace = new Trace(OOB_TRACE_PAGE_LOAD_PREFIX + route, true);\n var timeOriginUs = Math.floor(Api.getInstance().getTimeOrigin() * 1000);\n trace.setStartTime(timeOriginUs); // navigationTimings includes only one element.\n\n if (navigationTimings && navigationTimings[0]) {\n trace.setDuration(Math.floor(navigationTimings[0].duration * 1000));\n trace.putMetric('domInteractive', Math.floor(navigationTimings[0].domInteractive * 1000));\n trace.putMetric('domContentLoadedEventEnd', Math.floor(navigationTimings[0].domContentLoadedEventEnd * 1000));\n trace.putMetric('loadEventEnd', Math.floor(navigationTimings[0].loadEventEnd * 1000));\n }\n\n var FIRST_PAINT = 'first-paint';\n var FIRST_CONTENTFUL_PAINT = 'first-contentful-paint';\n\n if (paintTimings) {\n var firstPaint = paintTimings.find(function (paintObject) {\n return paintObject.name === FIRST_PAINT;\n });\n\n if (firstPaint && firstPaint.startTime) {\n trace.putMetric(FIRST_PAINT_COUNTER_NAME, Math.floor(firstPaint.startTime * 1000));\n }\n\n var firstContentfulPaint = paintTimings.find(function (paintObject) {\n return paintObject.name === FIRST_CONTENTFUL_PAINT;\n });\n\n if (firstContentfulPaint && firstContentfulPaint.startTime) {\n trace.putMetric(FIRST_CONTENTFUL_PAINT_COUNTER_NAME, Math.floor(firstContentfulPaint.startTime * 1000));\n }\n\n if (firstInputDelay) {\n trace.putMetric(FIRST_INPUT_DELAY_COUNTER_NAME, Math.floor(firstInputDelay * 1000));\n }\n }\n\n logTrace(trace);\n };\n\n Trace.createUserTimingTrace = function (measureName) {\n var trace = new Trace(measureName, false, measureName);\n logTrace(trace);\n };\n\n return Trace;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction createNetworkRequestEntry(entry) {\n var performanceEntry = entry;\n\n if (!performanceEntry || performanceEntry.responseStart === undefined) {\n return;\n }\n\n var timeOrigin = Api.getInstance().getTimeOrigin();\n var startTimeUs = Math.floor((performanceEntry.startTime + timeOrigin) * 1000);\n var timeToResponseInitiatedUs = performanceEntry.responseStart ? Math.floor((performanceEntry.responseStart - performanceEntry.startTime) * 1000) : undefined;\n var timeToResponseCompletedUs = Math.floor((performanceEntry.responseEnd - performanceEntry.startTime) * 1000); // Remove the query params from logged network request url.\n\n var url = performanceEntry.name && performanceEntry.name.split('?')[0];\n var networkRequest = {\n url: url,\n responsePayloadBytes: performanceEntry.transferSize,\n startTimeUs: startTimeUs,\n timeToResponseInitiatedUs: timeToResponseInitiatedUs,\n timeToResponseCompletedUs: timeToResponseCompletedUs\n };\n logNetworkRequest(networkRequest);\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar FID_WAIT_TIME_MS = 5000;\n\nfunction setupOobResources() {\n // Do not initialize unless iid is available.\n if (!getIid()) {\n return;\n } // The load event might not have fired yet, and that means performance navigation timing\n // object has a duration of 0. The setup should run after all current tasks in js queue.\n\n\n setTimeout(function () {\n return setupOobTraces();\n }, 0);\n setTimeout(function () {\n return setupNetworkRequests();\n }, 0);\n setTimeout(function () {\n return setupUserTimingTraces();\n }, 0);\n}\n\nfunction setupNetworkRequests() {\n var api = Api.getInstance();\n var resources = api.getEntriesByType('resource');\n\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\n var resource = resources_1[_i];\n createNetworkRequestEntry(resource);\n }\n\n api.setupObserver('resource', createNetworkRequestEntry);\n}\n\nfunction setupOobTraces() {\n var api = Api.getInstance();\n var navigationTimings = api.getEntriesByType('navigation');\n var paintTimings = api.getEntriesByType('paint'); // If First Input Desly polyfill is added to the page, report the fid value.\n // https://github.com/GoogleChromeLabs/first-input-delay\n\n if (api.onFirstInputDelay) {\n // If the fid call back is not called for certain time, continue without it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var timeoutId_1 = setTimeout(function () {\n Trace.createOobTrace(navigationTimings, paintTimings);\n timeoutId_1 = undefined;\n }, FID_WAIT_TIME_MS);\n api.onFirstInputDelay(function (fid) {\n if (timeoutId_1) {\n clearTimeout(timeoutId_1);\n Trace.createOobTrace(navigationTimings, paintTimings, fid);\n }\n });\n } else {\n Trace.createOobTrace(navigationTimings, paintTimings);\n }\n}\n\nfunction setupUserTimingTraces() {\n var api = Api.getInstance(); // Run through the measure performance entries collected up to this point.\n\n var measures = api.getEntriesByType('measure');\n\n for (var _i = 0, measures_1 = measures; _i < measures_1.length; _i++) {\n var measure = measures_1[_i];\n createUserTimingTrace(measure);\n } // Setup an observer to capture the measures from this point on.\n\n\n api.setupObserver('measure', createUserTimingTrace);\n}\n\nfunction createUserTimingTrace(measure) {\n var measureName = measure.name; // Do not create a trace, if the user timing marks and measures are created by the sdk itself.\n\n if (measureName.substring(0, TRACE_MEASURE_PREFIX.length) === TRACE_MEASURE_PREFIX) {\n return;\n }\n\n Trace.createUserTimingTrace(measureName);\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar PerformanceController =\n/** @class */\nfunction () {\n function PerformanceController(app) {\n this.app = app;\n\n if (Api.getInstance().requiredApisAvailable()) {\n util.validateIndexedDBOpenable().then(function (isAvailable) {\n if (isAvailable) {\n setupTransportService();\n getInitializationPromise().then(setupOobResources, setupOobResources);\n }\n }).catch(function (error) {\n consoleLogger.info(\"Environment doesn't support IndexedDB: \" + error);\n });\n }\n }\n\n PerformanceController.prototype.trace = function (name) {\n return new Trace(name);\n };\n\n Object.defineProperty(PerformanceController.prototype, \"instrumentationEnabled\", {\n get: function get() {\n return SettingsService.getInstance().instrumentationEnabled;\n },\n set: function set(val) {\n SettingsService.getInstance().instrumentationEnabled = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PerformanceController.prototype, \"dataCollectionEnabled\", {\n get: function get() {\n return SettingsService.getInstance().dataCollectionEnabled;\n },\n set: function set(val) {\n SettingsService.getInstance().dataCollectionEnabled = val;\n },\n enumerable: false,\n configurable: true\n });\n return PerformanceController;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\nfunction registerPerformance(instance) {\n var factoryMethod = function factoryMethod(app, installations) {\n if (app.name !== DEFAULT_ENTRY_NAME) {\n throw ERROR_FACTORY.create(\"FB not default\"\n /* FB_NOT_DEFAULT */\n );\n }\n\n if (typeof window === 'undefined') {\n throw ERROR_FACTORY.create(\"no window\"\n /* NO_WINDOW */\n );\n }\n\n setupApi(window);\n SettingsService.getInstance().firebaseAppInstance = app;\n SettingsService.getInstance().installationsService = installations;\n return new PerformanceController(app);\n }; // Register performance with firebase-app.\n\n\n instance.INTERNAL.registerComponent(new component.Component('performance', function (container) {\n /* Dependencies */\n // getImmediate for FirebaseApp will always succeed\n var app = container.getProvider('app').getImmediate(); // The following call will always succeed because perf has `import '@firebase/installations'`\n\n var installations = container.getProvider('installations').getImmediate();\n return factoryMethod(app, installations);\n }, \"PUBLIC\"\n /* PUBLIC */\n ));\n instance.registerVersion(name, version);\n}\n\nregisterPerformance(firebase__default['default']);\nexports.registerPerformance = registerPerformance;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar firebase = require('@firebase/app');\n\nrequire('@firebase/installations');\n\nvar tslib = require('tslib');\n\nvar util = require('@firebase/util');\n\nvar logger = require('@firebase/logger');\n\nvar component = require('@firebase/component');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar firebase__default =\n/*#__PURE__*/\n_interopDefaultLegacy(firebase);\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Implements the {@link RemoteConfigClient} abstraction with success response caching.\r\n *\r\n *

Comparable to the browser's Cache API for responses, but the Cache API requires a Service\r\n * Worker, which requires HTTPS, which would significantly complicate SDK installation. Also, the\r\n * Cache API doesn't support matching entries by time.\r\n */\n\n\nvar CachingClient =\n/** @class */\nfunction () {\n function CachingClient(client, storage, storageCache, logger) {\n this.client = client;\n this.storage = storage;\n this.storageCache = storageCache;\n this.logger = logger;\n }\n /**\r\n * Returns true if the age of the cached fetched configs is less than or equal to\r\n * {@link Settings#minimumFetchIntervalInSeconds}.\r\n *\r\n *

This is comparable to passing `headers = { 'Cache-Control': max-age }` to the\r\n * native Fetch API.\r\n *\r\n *

Visible for testing.\r\n */\n\n\n CachingClient.prototype.isCachedDataFresh = function (cacheMaxAgeMillis, lastSuccessfulFetchTimestampMillis) {\n // Cache can only be fresh if it's populated.\n if (!lastSuccessfulFetchTimestampMillis) {\n this.logger.debug('Config fetch cache check. Cache unpopulated.');\n return false;\n } // Calculates age of cache entry.\n\n\n var cacheAgeMillis = Date.now() - lastSuccessfulFetchTimestampMillis;\n var isCachedDataFresh = cacheAgeMillis <= cacheMaxAgeMillis;\n this.logger.debug('Config fetch cache check.' + (\" Cache age millis: \" + cacheAgeMillis + \".\") + (\" Cache max age millis (minimumFetchIntervalMillis setting): \" + cacheMaxAgeMillis + \".\") + (\" Is cache hit: \" + isCachedDataFresh + \".\"));\n return isCachedDataFresh;\n };\n\n CachingClient.prototype.fetch = function (request) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var _a, lastSuccessfulFetchTimestampMillis, lastSuccessfulFetchResponse, response, storageOperations;\n\n return tslib.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(), this.storage.getLastSuccessfulFetchResponse()])];\n\n case 1:\n _a = _b.sent(), lastSuccessfulFetchTimestampMillis = _a[0], lastSuccessfulFetchResponse = _a[1]; // Exits early on cache hit.\n\n if (lastSuccessfulFetchResponse && this.isCachedDataFresh(request.cacheMaxAgeMillis, lastSuccessfulFetchTimestampMillis)) {\n return [2\n /*return*/\n , lastSuccessfulFetchResponse];\n } // Deviates from pure decorator by not honoring a passed ETag since we don't have a public API\n // that allows the caller to pass an ETag.\n\n\n request.eTag = lastSuccessfulFetchResponse && lastSuccessfulFetchResponse.eTag;\n return [4\n /*yield*/\n , this.client.fetch(request)];\n\n case 2:\n response = _b.sent();\n storageOperations = [// Uses write-through cache for consistency with synchronous public API.\n this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];\n\n if (response.status === 200) {\n // Caches response only if it has changed, ie non-304 responses.\n storageOperations.push(this.storage.setLastSuccessfulFetchResponse(response));\n }\n\n return [4\n /*yield*/\n , Promise.all(storageOperations)];\n\n case 3:\n _b.sent();\n\n return [2\n /*return*/\n , response];\n }\n });\n });\n };\n\n return CachingClient;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar _a;\n\nvar ERROR_DESCRIPTION_MAP = (_a = {}, _a[\"registration-window\"\n/* REGISTRATION_WINDOW */\n] = 'Undefined window object. This SDK only supports usage in a browser environment.', _a[\"registration-project-id\"\n/* REGISTRATION_PROJECT_ID */\n] = 'Undefined project identifier. Check Firebase app initialization.', _a[\"registration-api-key\"\n/* REGISTRATION_API_KEY */\n] = 'Undefined API key. Check Firebase app initialization.', _a[\"registration-app-id\"\n/* REGISTRATION_APP_ID */\n] = 'Undefined app identifier. Check Firebase app initialization.', _a[\"storage-open\"\n/* STORAGE_OPEN */\n] = 'Error thrown when opening storage. Original error: {$originalErrorMessage}.', _a[\"storage-get\"\n/* STORAGE_GET */\n] = 'Error thrown when reading from storage. Original error: {$originalErrorMessage}.', _a[\"storage-set\"\n/* STORAGE_SET */\n] = 'Error thrown when writing to storage. Original error: {$originalErrorMessage}.', _a[\"storage-delete\"\n/* STORAGE_DELETE */\n] = 'Error thrown when deleting from storage. Original error: {$originalErrorMessage}.', _a[\"fetch-client-network\"\n/* FETCH_NETWORK */\n] = 'Fetch client failed to connect to a network. Check Internet connection.' + ' Original error: {$originalErrorMessage}.', _a[\"fetch-timeout\"\n/* FETCH_TIMEOUT */\n] = 'The config fetch request timed out. ' + ' Configure timeout using \"fetchTimeoutMillis\" SDK setting.', _a[\"fetch-throttle\"\n/* FETCH_THROTTLE */\n] = 'The config fetch request timed out while in an exponential backoff state.' + ' Configure timeout using \"fetchTimeoutMillis\" SDK setting.' + ' Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.', _a[\"fetch-client-parse\"\n/* FETCH_PARSE */\n] = 'Fetch client could not parse response.' + ' Original error: {$originalErrorMessage}.', _a[\"fetch-status\"\n/* FETCH_STATUS */\n] = 'Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.', _a);\nvar ERROR_FACTORY = new util.ErrorFactory('remoteconfig'\n/* service */\n, 'Remote Config'\n/* service name */\n, ERROR_DESCRIPTION_MAP); // Note how this is like typeof/instanceof, but for ErrorCode.\n\nfunction hasErrorCode(e, errorCode) {\n return e instanceof util.FirebaseError && e.code.indexOf(errorCode) !== -1;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Attempts to get the most accurate browser language setting.\r\n *\r\n *

Adapted from getUserLanguage in packages/auth/src/utils.js for TypeScript.\r\n *\r\n *

Defers default language specification to server logic for consistency.\r\n *\r\n * @param navigatorLanguage Enables tests to override read-only {@link NavigatorLanguage}.\r\n */\n\n\nfunction getUserLanguage(navigatorLanguage) {\n if (navigatorLanguage === void 0) {\n navigatorLanguage = navigator;\n }\n\n return (// Most reliable, but only supported in Chrome/Firefox.\n navigatorLanguage.languages && navigatorLanguage.languages[0] || // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language // Polyfill otherwise.\n\n );\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Implements the Client abstraction for the Remote Config REST API.\r\n */\n\n\nvar RestClient =\n/** @class */\nfunction () {\n function RestClient(firebaseInstallations, sdkVersion, namespace, projectId, apiKey, appId) {\n this.firebaseInstallations = firebaseInstallations;\n this.sdkVersion = sdkVersion;\n this.namespace = namespace;\n this.projectId = projectId;\n this.apiKey = apiKey;\n this.appId = appId;\n }\n /**\r\n * Fetches from the Remote Config REST API.\r\n *\r\n * @throws a {@link ErrorCode.FETCH_NETWORK} error if {@link GlobalFetch#fetch} can't\r\n * connect to the network.\r\n * @throws a {@link ErrorCode.FETCH_PARSE} error if {@link Response#json} can't parse the\r\n * fetch response.\r\n * @throws a {@link ErrorCode.FETCH_STATUS} error if the service returns an HTTP error status.\r\n */\n\n\n RestClient.prototype.fetch = function (request) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var _a, installationId, installationToken, urlBase, url, headers, requestBody, options, fetchPromise, timeoutPromise, response, originalError_1, errorCode, status, responseEtag, config, state, responseBody, originalError_2;\n\n return tslib.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , Promise.all([this.firebaseInstallations.getId(), this.firebaseInstallations.getToken()])];\n\n case 1:\n _a = _b.sent(), installationId = _a[0], installationToken = _a[1];\n urlBase = window.FIREBASE_REMOTE_CONFIG_URL_BASE || 'https://firebaseremoteconfig.googleapis.com';\n url = urlBase + \"/v1/projects/\" + this.projectId + \"/namespaces/\" + this.namespace + \":fetch?key=\" + this.apiKey;\n headers = {\n 'Content-Type': 'application/json',\n 'Content-Encoding': 'gzip',\n // Deviates from pure decorator by not passing max-age header since we don't currently have\n // service behavior using that header.\n 'If-None-Match': request.eTag || '*'\n };\n requestBody = {\n /* eslint-disable camelcase */\n sdk_version: this.sdkVersion,\n app_instance_id: installationId,\n app_instance_id_token: installationToken,\n app_id: this.appId,\n language_code: getUserLanguage()\n /* eslint-enable camelcase */\n\n };\n options = {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(requestBody)\n };\n fetchPromise = fetch(url, options);\n timeoutPromise = new Promise(function (_resolve, reject) {\n // Maps async event listener to Promise API.\n request.signal.addEventListener(function () {\n // Emulates https://heycam.github.io/webidl/#aborterror\n var error = new Error('The operation was aborted.');\n error.name = 'AbortError';\n reject(error);\n });\n });\n _b.label = 2;\n\n case 2:\n _b.trys.push([2, 5,, 6]);\n\n return [4\n /*yield*/\n , Promise.race([fetchPromise, timeoutPromise])];\n\n case 3:\n _b.sent();\n\n return [4\n /*yield*/\n , fetchPromise];\n\n case 4:\n response = _b.sent();\n return [3\n /*break*/\n , 6];\n\n case 5:\n originalError_1 = _b.sent();\n errorCode = \"fetch-client-network\"\n /* FETCH_NETWORK */\n ;\n\n if (originalError_1.name === 'AbortError') {\n errorCode = \"fetch-timeout\"\n /* FETCH_TIMEOUT */\n ;\n }\n\n throw ERROR_FACTORY.create(errorCode, {\n originalErrorMessage: originalError_1.message\n });\n\n case 6:\n status = response.status;\n responseEtag = response.headers.get('ETag') || undefined;\n if (!(response.status === 200)) return [3\n /*break*/\n , 11];\n responseBody = void 0;\n _b.label = 7;\n\n case 7:\n _b.trys.push([7, 9,, 10]);\n\n return [4\n /*yield*/\n , response.json()];\n\n case 8:\n responseBody = _b.sent();\n return [3\n /*break*/\n , 10];\n\n case 9:\n originalError_2 = _b.sent();\n throw ERROR_FACTORY.create(\"fetch-client-parse\"\n /* FETCH_PARSE */\n , {\n originalErrorMessage: originalError_2.message\n });\n\n case 10:\n config = responseBody['entries'];\n state = responseBody['state'];\n _b.label = 11;\n\n case 11:\n // Normalizes based on legacy state.\n if (state === 'INSTANCE_STATE_UNSPECIFIED') {\n status = 500;\n } else if (state === 'NO_CHANGE') {\n status = 304;\n } else if (state === 'NO_TEMPLATE' || state === 'EMPTY_CONFIG') {\n // These cases can be fixed remotely, so normalize to safe value.\n config = {};\n } // Normalize to exception-based control flow for non-success cases.\n // Encapsulates HTTP specifics in this class as much as possible. Status is still the best for\n // differentiating success states (200 from 304; the state body param is undefined in a\n // standard 304).\n\n\n if (status !== 304 && status !== 200) {\n throw ERROR_FACTORY.create(\"fetch-status\"\n /* FETCH_STATUS */\n , {\n httpStatus: status\n });\n }\n\n return [2\n /*return*/\n , {\n status: status,\n eTag: responseEtag,\n config: config\n }];\n }\n });\n });\n };\n\n return RestClient;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Shims a minimal AbortSignal.\r\n *\r\n *

AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\r\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\r\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\r\n * swapped out if/when we do.\r\n */\n\n\nvar RemoteConfigAbortSignal =\n/** @class */\nfunction () {\n function RemoteConfigAbortSignal() {\n this.listeners = [];\n }\n\n RemoteConfigAbortSignal.prototype.addEventListener = function (listener) {\n this.listeners.push(listener);\n };\n\n RemoteConfigAbortSignal.prototype.abort = function () {\n this.listeners.forEach(function (listener) {\n return listener();\n });\n };\n\n return RemoteConfigAbortSignal;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_VALUE_FOR_BOOLEAN = false;\nvar DEFAULT_VALUE_FOR_STRING = '';\nvar DEFAULT_VALUE_FOR_NUMBER = 0;\nvar BOOLEAN_TRUTHY_VALUES = ['1', 'true', 't', 'yes', 'y', 'on'];\n\nvar Value =\n/** @class */\nfunction () {\n function Value(_source, _value) {\n if (_value === void 0) {\n _value = DEFAULT_VALUE_FOR_STRING;\n }\n\n this._source = _source;\n this._value = _value;\n }\n\n Value.prototype.asString = function () {\n return this._value;\n };\n\n Value.prototype.asBoolean = function () {\n if (this._source === 'static') {\n return DEFAULT_VALUE_FOR_BOOLEAN;\n }\n\n return BOOLEAN_TRUTHY_VALUES.indexOf(this._value.toLowerCase()) >= 0;\n };\n\n Value.prototype.asNumber = function () {\n if (this._source === 'static') {\n return DEFAULT_VALUE_FOR_NUMBER;\n }\n\n var num = Number(this._value);\n\n if (isNaN(num)) {\n num = DEFAULT_VALUE_FOR_NUMBER;\n }\n\n return num;\n };\n\n Value.prototype.getSource = function () {\n return this._source;\n };\n\n return Value;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_FETCH_TIMEOUT_MILLIS = 60 * 1000; // One minute\n\nvar DEFAULT_CACHE_MAX_AGE_MILLIS = 12 * 60 * 60 * 1000; // Twelve hours.\n\n/**\r\n * Encapsulates business logic mapping network and storage dependencies to the public SDK API.\r\n *\r\n * See {@link https://github.com/FirebasePrivate/firebase-js-sdk/blob/master/packages/firebase/index.d.ts|interface documentation} for method descriptions.\r\n */\n\nvar RemoteConfig =\n/** @class */\nfunction () {\n function RemoteConfig( // Required by FirebaseServiceFactory interface.\n app, // JS doesn't support private yet\n // (https://github.com/tc39/proposal-class-fields#private-fields), so we hint using an\n // underscore prefix.\n _client, _storageCache, _storage, _logger) {\n this.app = app;\n this._client = _client;\n this._storageCache = _storageCache;\n this._storage = _storage;\n this._logger = _logger; // Tracks completion of initialization promise.\n\n this._isInitializationComplete = false;\n this.settings = {\n fetchTimeoutMillis: DEFAULT_FETCH_TIMEOUT_MILLIS,\n minimumFetchIntervalMillis: DEFAULT_CACHE_MAX_AGE_MILLIS\n };\n this.defaultConfig = {};\n } // Based on packages/firestore/src/util/log.ts but not static because we need per-instance levels\n // to differentiate 2p and 3p use-cases.\n\n\n RemoteConfig.prototype.setLogLevel = function (logLevel) {\n switch (logLevel) {\n case 'debug':\n this._logger.logLevel = logger.LogLevel.DEBUG;\n break;\n\n case 'silent':\n this._logger.logLevel = logger.LogLevel.SILENT;\n break;\n\n default:\n this._logger.logLevel = logger.LogLevel.ERROR;\n }\n };\n\n Object.defineProperty(RemoteConfig.prototype, \"fetchTimeMillis\", {\n get: function get() {\n return this._storageCache.getLastSuccessfulFetchTimestampMillis() || -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RemoteConfig.prototype, \"lastFetchStatus\", {\n get: function get() {\n return this._storageCache.getLastFetchStatus() || 'no-fetch-yet';\n },\n enumerable: false,\n configurable: true\n });\n\n RemoteConfig.prototype.activate = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var _a, lastSuccessfulFetchResponse, activeConfigEtag;\n\n return tslib.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , Promise.all([this._storage.getLastSuccessfulFetchResponse(), this._storage.getActiveConfigEtag()])];\n\n case 1:\n _a = _b.sent(), lastSuccessfulFetchResponse = _a[0], activeConfigEtag = _a[1];\n\n if (!lastSuccessfulFetchResponse || !lastSuccessfulFetchResponse.config || !lastSuccessfulFetchResponse.eTag || lastSuccessfulFetchResponse.eTag === activeConfigEtag) {\n // Either there is no successful fetched config, or is the same as current active\n // config.\n return [2\n /*return*/\n , false];\n }\n\n return [4\n /*yield*/\n , Promise.all([this._storageCache.setActiveConfig(lastSuccessfulFetchResponse.config), this._storage.setActiveConfigEtag(lastSuccessfulFetchResponse.eTag)])];\n\n case 2:\n _b.sent();\n\n return [2\n /*return*/\n , true];\n }\n });\n });\n };\n\n RemoteConfig.prototype.ensureInitialized = function () {\n var _this = this;\n\n if (!this._initializePromise) {\n this._initializePromise = this._storageCache.loadFromStorage().then(function () {\n _this._isInitializationComplete = true;\n });\n }\n\n return this._initializePromise;\n };\n /**\r\n * @throws a {@link ErrorCode.FETCH_CLIENT_TIMEOUT} if the request takes longer than\r\n * {@link Settings.fetchTimeoutInSeconds} or\r\n * {@link DEFAULT_FETCH_TIMEOUT_SECONDS}.\r\n */\n\n\n RemoteConfig.prototype.fetch = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var abortSignal, e_1, lastFetchStatus;\n\n var _this = this;\n\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n abortSignal = new RemoteConfigAbortSignal();\n setTimeout(function () {\n return tslib.__awaiter(_this, void 0, void 0, function () {\n return tslib.__generator(this, function (_a) {\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\n abortSignal.abort();\n return [2\n /*return*/\n ];\n });\n });\n }, this.settings.fetchTimeoutMillis);\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 4,, 6]);\n\n return [4\n /*yield*/\n , this._client.fetch({\n cacheMaxAgeMillis: this.settings.minimumFetchIntervalMillis,\n signal: abortSignal\n })];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , this._storageCache.setLastFetchStatus('success')];\n\n case 3:\n _a.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 4:\n e_1 = _a.sent();\n lastFetchStatus = hasErrorCode(e_1, \"fetch-throttle\"\n /* FETCH_THROTTLE */\n ) ? 'throttle' : 'failure';\n return [4\n /*yield*/\n , this._storageCache.setLastFetchStatus(lastFetchStatus)];\n\n case 5:\n _a.sent();\n\n throw e_1;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n RemoteConfig.prototype.fetchAndActivate = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.fetch()];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n , this.activate()];\n }\n });\n });\n };\n\n RemoteConfig.prototype.getAll = function () {\n var _this = this;\n\n return getAllKeys(this._storageCache.getActiveConfig(), this.defaultConfig).reduce(function (allConfigs, key) {\n allConfigs[key] = _this.getValue(key);\n return allConfigs;\n }, {});\n };\n\n RemoteConfig.prototype.getBoolean = function (key) {\n return this.getValue(key).asBoolean();\n };\n\n RemoteConfig.prototype.getNumber = function (key) {\n return this.getValue(key).asNumber();\n };\n\n RemoteConfig.prototype.getString = function (key) {\n return this.getValue(key).asString();\n };\n\n RemoteConfig.prototype.getValue = function (key) {\n if (!this._isInitializationComplete) {\n this._logger.debug(\"A value was requested for key \\\"\" + key + \"\\\" before SDK initialization completed.\" + ' Await on ensureInitialized if the intent was to get a previously activated value.');\n }\n\n var activeConfig = this._storageCache.getActiveConfig();\n\n if (activeConfig && activeConfig[key] !== undefined) {\n return new Value('remote', activeConfig[key]);\n } else if (this.defaultConfig && this.defaultConfig[key] !== undefined) {\n return new Value('default', String(this.defaultConfig[key]));\n }\n\n this._logger.debug(\"Returning static value for key \\\"\" + key + \"\\\".\" + ' Define a default or remote value if this is unintentional.');\n\n return new Value('static');\n };\n\n return RemoteConfig;\n}();\n/**\r\n * Dedupes and returns an array of all the keys of the received objects.\r\n */\n\n\nfunction getAllKeys(obj1, obj2) {\n if (obj1 === void 0) {\n obj1 = {};\n }\n\n if (obj2 === void 0) {\n obj2 = {};\n }\n\n return Object.keys(tslib.__assign(tslib.__assign({}, obj1), obj2));\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Converts an error event associated with a {@link IDBRequest} to a {@link FirebaseError}.\r\n */\n\n\nfunction toFirebaseError(event, errorCode) {\n var originalError = event.target.error || undefined;\n return ERROR_FACTORY.create(errorCode, {\n originalErrorMessage: originalError && originalError.message\n });\n}\n/**\r\n * A general-purpose store keyed by app + namespace + {@link\r\n * ProjectNamespaceKeyFieldValue}.\r\n *\r\n *

The Remote Config SDK can be used with multiple app installations, and each app can interact\r\n * with multiple namespaces, so this store uses app (ID + name) and namespace as common parent keys\r\n * for a set of key-value pairs. See {@link Storage#createCompositeKey}.\r\n *\r\n *

Visible for testing.\r\n */\n\n\nvar APP_NAMESPACE_STORE = 'app_namespace_store';\nvar DB_NAME = 'firebase_remote_config';\nvar DB_VERSION = 1; // Visible for testing.\n\nfunction openDatabase() {\n return new Promise(function (resolve, reject) {\n var request = indexedDB.open(DB_NAME, DB_VERSION);\n\n request.onerror = function (event) {\n reject(toFirebaseError(event, \"storage-open\"\n /* STORAGE_OPEN */\n ));\n };\n\n request.onsuccess = function (event) {\n resolve(event.target.result);\n };\n\n request.onupgradeneeded = function (event) {\n var db = event.target.result; // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n\n switch (event.oldVersion) {\n case 0:\n db.createObjectStore(APP_NAMESPACE_STORE, {\n keyPath: 'compositeKey'\n });\n }\n };\n });\n}\n/**\r\n * Abstracts data persistence.\r\n */\n\n\nvar Storage =\n/** @class */\nfunction () {\n /**\r\n * @param appId enables storage segmentation by app (ID + name).\r\n * @param appName enables storage segmentation by app (ID + name).\r\n * @param namespace enables storage segmentation by namespace.\r\n */\n function Storage(appId, appName, namespace, openDbPromise) {\n if (openDbPromise === void 0) {\n openDbPromise = openDatabase();\n }\n\n this.appId = appId;\n this.appName = appName;\n this.namespace = namespace;\n this.openDbPromise = openDbPromise;\n }\n\n Storage.prototype.getLastFetchStatus = function () {\n return this.get('last_fetch_status');\n };\n\n Storage.prototype.setLastFetchStatus = function (status) {\n return this.set('last_fetch_status', status);\n }; // This is comparable to a cache entry timestamp. If we need to expire other data, we could\n // consider adding timestamp to all storage records and an optional max age arg to getters.\n\n\n Storage.prototype.getLastSuccessfulFetchTimestampMillis = function () {\n return this.get('last_successful_fetch_timestamp_millis');\n };\n\n Storage.prototype.setLastSuccessfulFetchTimestampMillis = function (timestamp) {\n return this.set('last_successful_fetch_timestamp_millis', timestamp);\n };\n\n Storage.prototype.getLastSuccessfulFetchResponse = function () {\n return this.get('last_successful_fetch_response');\n };\n\n Storage.prototype.setLastSuccessfulFetchResponse = function (response) {\n return this.set('last_successful_fetch_response', response);\n };\n\n Storage.prototype.getActiveConfig = function () {\n return this.get('active_config');\n };\n\n Storage.prototype.setActiveConfig = function (config) {\n return this.set('active_config', config);\n };\n\n Storage.prototype.getActiveConfigEtag = function () {\n return this.get('active_config_etag');\n };\n\n Storage.prototype.setActiveConfigEtag = function (etag) {\n return this.set('active_config_etag', etag);\n };\n\n Storage.prototype.getThrottleMetadata = function () {\n return this.get('throttle_metadata');\n };\n\n Storage.prototype.setThrottleMetadata = function (metadata) {\n return this.set('throttle_metadata', metadata);\n };\n\n Storage.prototype.deleteThrottleMetadata = function () {\n return this.delete('throttle_metadata');\n };\n\n Storage.prototype.get = function (key) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var db;\n\n var _this = this;\n\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.openDbPromise];\n\n case 1:\n db = _a.sent();\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n var transaction = db.transaction([APP_NAMESPACE_STORE], 'readonly');\n var objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n\n var compositeKey = _this.createCompositeKey(key);\n\n try {\n var request = objectStore.get(compositeKey);\n\n request.onerror = function (event) {\n reject(toFirebaseError(event, \"storage-get\"\n /* STORAGE_GET */\n ));\n };\n\n request.onsuccess = function (event) {\n var result = event.target.result;\n\n if (result) {\n resolve(result.value);\n } else {\n resolve(undefined);\n }\n };\n } catch (e) {\n reject(ERROR_FACTORY.create(\"storage-get\"\n /* STORAGE_GET */\n , {\n originalErrorMessage: e && e.message\n }));\n }\n })];\n }\n });\n });\n };\n\n Storage.prototype.set = function (key, value) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var db;\n\n var _this = this;\n\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.openDbPromise];\n\n case 1:\n db = _a.sent();\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n var transaction = db.transaction([APP_NAMESPACE_STORE], 'readwrite');\n var objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n\n var compositeKey = _this.createCompositeKey(key);\n\n try {\n var request = objectStore.put({\n compositeKey: compositeKey,\n value: value\n });\n\n request.onerror = function (event) {\n reject(toFirebaseError(event, \"storage-set\"\n /* STORAGE_SET */\n ));\n };\n\n request.onsuccess = function () {\n resolve();\n };\n } catch (e) {\n reject(ERROR_FACTORY.create(\"storage-set\"\n /* STORAGE_SET */\n , {\n originalErrorMessage: e && e.message\n }));\n }\n })];\n }\n });\n });\n };\n\n Storage.prototype.delete = function (key) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var db;\n\n var _this = this;\n\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.openDbPromise];\n\n case 1:\n db = _a.sent();\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n var transaction = db.transaction([APP_NAMESPACE_STORE], 'readwrite');\n var objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n\n var compositeKey = _this.createCompositeKey(key);\n\n try {\n var request = objectStore.delete(compositeKey);\n\n request.onerror = function (event) {\n reject(toFirebaseError(event, \"storage-delete\"\n /* STORAGE_DELETE */\n ));\n };\n\n request.onsuccess = function () {\n resolve();\n };\n } catch (e) {\n reject(ERROR_FACTORY.create(\"storage-delete\"\n /* STORAGE_DELETE */\n , {\n originalErrorMessage: e && e.message\n }));\n }\n })];\n }\n });\n });\n }; // Facilitates composite key functionality (which is unsupported in IE).\n\n\n Storage.prototype.createCompositeKey = function (key) {\n return [this.appId, this.appName, this.namespace, key].join();\n };\n\n return Storage;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * A memory cache layer over storage to support the SDK's synchronous read requirements.\r\n */\n\n\nvar StorageCache =\n/** @class */\nfunction () {\n function StorageCache(storage) {\n this.storage = storage;\n }\n /**\r\n * Memory-only getters\r\n */\n\n\n StorageCache.prototype.getLastFetchStatus = function () {\n return this.lastFetchStatus;\n };\n\n StorageCache.prototype.getLastSuccessfulFetchTimestampMillis = function () {\n return this.lastSuccessfulFetchTimestampMillis;\n };\n\n StorageCache.prototype.getActiveConfig = function () {\n return this.activeConfig;\n };\n /**\r\n * Read-ahead getter\r\n */\n\n\n StorageCache.prototype.loadFromStorage = function () {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var lastFetchStatusPromise, lastSuccessfulFetchTimestampMillisPromise, activeConfigPromise, lastFetchStatus, lastSuccessfulFetchTimestampMillis, activeConfig;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n lastFetchStatusPromise = this.storage.getLastFetchStatus();\n lastSuccessfulFetchTimestampMillisPromise = this.storage.getLastSuccessfulFetchTimestampMillis();\n activeConfigPromise = this.storage.getActiveConfig();\n return [4\n /*yield*/\n , lastFetchStatusPromise];\n\n case 1:\n lastFetchStatus = _a.sent();\n\n if (lastFetchStatus) {\n this.lastFetchStatus = lastFetchStatus;\n }\n\n return [4\n /*yield*/\n , lastSuccessfulFetchTimestampMillisPromise];\n\n case 2:\n lastSuccessfulFetchTimestampMillis = _a.sent();\n\n if (lastSuccessfulFetchTimestampMillis) {\n this.lastSuccessfulFetchTimestampMillis = lastSuccessfulFetchTimestampMillis;\n }\n\n return [4\n /*yield*/\n , activeConfigPromise];\n\n case 3:\n activeConfig = _a.sent();\n\n if (activeConfig) {\n this.activeConfig = activeConfig;\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\r\n * Write-through setters\r\n */\n\n\n StorageCache.prototype.setLastFetchStatus = function (status) {\n this.lastFetchStatus = status;\n return this.storage.setLastFetchStatus(status);\n };\n\n StorageCache.prototype.setLastSuccessfulFetchTimestampMillis = function (timestampMillis) {\n this.lastSuccessfulFetchTimestampMillis = timestampMillis;\n return this.storage.setLastSuccessfulFetchTimestampMillis(timestampMillis);\n };\n\n StorageCache.prototype.setActiveConfig = function (activeConfig) {\n this.activeConfig = activeConfig;\n return this.storage.setActiveConfig(activeConfig);\n };\n\n return StorageCache;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Supports waiting on a backoff by:\r\n *\r\n *

    \r\n *
  • Promisifying setTimeout, so we can set a timeout in our Promise chain
  • \r\n *
  • Listening on a signal bus for abort events, just like the Fetch API
  • \r\n *
  • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\r\n * request appear the same.
  • \r\n *
\r\n *\r\n *

Visible for testing.\r\n */\n\n\nfunction setAbortableTimeout(signal, throttleEndTimeMillis) {\n return new Promise(function (resolve, reject) {\n // Derives backoff from given end time, normalizing negative numbers to zero.\n var backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\n var timeout = setTimeout(resolve, backoffMillis); // Adds listener, rather than sets onabort, because signal is a shared object.\n\n signal.addEventListener(function () {\n clearTimeout(timeout); // If the request completes before this timeout, the rejection has no effect.\n\n reject(ERROR_FACTORY.create(\"fetch-throttle\"\n /* FETCH_THROTTLE */\n , {\n throttleEndTimeMillis: throttleEndTimeMillis\n }));\n });\n });\n}\n/**\r\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\r\n */\n\n\nfunction isRetriableError(e) {\n if (!(e instanceof util.FirebaseError)) {\n return false;\n } // Uses string index defined by ErrorData, which FirebaseError implements.\n\n\n var httpStatus = Number(e['httpStatus']);\n return httpStatus === 429 || httpStatus === 500 || httpStatus === 503 || httpStatus === 504;\n}\n/**\r\n * Decorates a Client with retry logic.\r\n *\r\n *

Comparable to CachingClient, but uses backoff logic instead of cache max age and doesn't cache\r\n * responses (because the SDK has no use for error responses).\r\n */\n\n\nvar RetryingClient =\n/** @class */\nfunction () {\n function RetryingClient(client, storage) {\n this.client = client;\n this.storage = storage;\n }\n\n RetryingClient.prototype.fetch = function (request) {\n return tslib.__awaiter(this, void 0, void 0, function () {\n var throttleMetadata;\n return tslib.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.storage.getThrottleMetadata()];\n\n case 1:\n throttleMetadata = _a.sent() || {\n backoffCount: 0,\n throttleEndTimeMillis: Date.now()\n };\n return [2\n /*return*/\n , this.attemptFetch(request, throttleMetadata)];\n }\n });\n });\n };\n /**\r\n * A recursive helper for attempting a fetch request repeatedly.\r\n *\r\n * @throws any non-retriable errors.\r\n */\n\n\n RetryingClient.prototype.attemptFetch = function (request, _a) {\n var throttleEndTimeMillis = _a.throttleEndTimeMillis,\n backoffCount = _a.backoffCount;\n return tslib.__awaiter(this, void 0, void 0, function () {\n var response, e_1, throttleMetadata;\n return tslib.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // Starts with a (potentially zero) timeout to support resumption from stored state.\n // Ensures the throttle end time is honored if the last attempt timed out.\n // Note the SDK will never make a request if the fetch timeout expires at this point.\n return [4\n /*yield*/\n , setAbortableTimeout(request.signal, throttleEndTimeMillis)];\n\n case 1:\n // Starts with a (potentially zero) timeout to support resumption from stored state.\n // Ensures the throttle end time is honored if the last attempt timed out.\n // Note the SDK will never make a request if the fetch timeout expires at this point.\n _b.sent();\n\n _b.label = 2;\n\n case 2:\n _b.trys.push([2, 5,, 7]);\n\n return [4\n /*yield*/\n , this.client.fetch(request)];\n\n case 3:\n response = _b.sent(); // Note the SDK only clears throttle state if response is success or non-retriable.\n\n return [4\n /*yield*/\n , this.storage.deleteThrottleMetadata()];\n\n case 4:\n // Note the SDK only clears throttle state if response is success or non-retriable.\n _b.sent();\n\n return [2\n /*return*/\n , response];\n\n case 5:\n e_1 = _b.sent();\n\n if (!isRetriableError(e_1)) {\n throw e_1;\n }\n\n throttleMetadata = {\n throttleEndTimeMillis: Date.now() + util.calculateBackoffMillis(backoffCount),\n backoffCount: backoffCount + 1\n }; // Persists state.\n\n return [4\n /*yield*/\n , this.storage.setThrottleMetadata(throttleMetadata)];\n\n case 6:\n // Persists state.\n _b.sent();\n\n return [2\n /*return*/\n , this.attemptFetch(request, throttleMetadata)];\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return RetryingClient;\n}();\n\nvar name = \"@firebase/remote-config\";\nvar version = \"0.1.28\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nfunction registerRemoteConfig(firebaseInstance) {\n firebaseInstance.INTERNAL.registerComponent(new component.Component('remoteConfig', remoteConfigFactory, \"PUBLIC\"\n /* PUBLIC */\n ).setMultipleInstances(true));\n firebaseInstance.registerVersion(name, version);\n\n function remoteConfigFactory(container, namespace) {\n /* Dependencies */\n // getImmediate for FirebaseApp will always succeed\n var app = container.getProvider('app').getImmediate(); // The following call will always succeed because rc has `import '@firebase/installations'`\n\n var installations = container.getProvider('installations').getImmediate(); // Guards against the SDK being used in non-browser environments.\n\n if (typeof window === 'undefined') {\n throw ERROR_FACTORY.create(\"registration-window\"\n /* REGISTRATION_WINDOW */\n );\n } // Normalizes optional inputs.\n\n\n var _a = app.options,\n projectId = _a.projectId,\n apiKey = _a.apiKey,\n appId = _a.appId;\n\n if (!projectId) {\n throw ERROR_FACTORY.create(\"registration-project-id\"\n /* REGISTRATION_PROJECT_ID */\n );\n }\n\n if (!apiKey) {\n throw ERROR_FACTORY.create(\"registration-api-key\"\n /* REGISTRATION_API_KEY */\n );\n }\n\n if (!appId) {\n throw ERROR_FACTORY.create(\"registration-app-id\"\n /* REGISTRATION_APP_ID */\n );\n }\n\n namespace = namespace || 'firebase';\n var storage = new Storage(appId, app.name, namespace);\n var storageCache = new StorageCache(storage);\n var logger$1 = new logger.Logger(name); // Sets ERROR as the default log level.\n // See RemoteConfig#setLogLevel for corresponding normalization to ERROR log level.\n\n logger$1.logLevel = logger.LogLevel.ERROR;\n var restClient = new RestClient(installations, // Uses the JS SDK version, by which the RC package version can be deduced, if necessary.\n firebaseInstance.SDK_VERSION, namespace, projectId, apiKey, appId);\n var retryingClient = new RetryingClient(restClient, storage);\n var cachingClient = new CachingClient(retryingClient, storage, storageCache, logger$1);\n var remoteConfigInstance = new RemoteConfig(app, cachingClient, storageCache, storage, logger$1); // Starts warming cache.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n remoteConfigInstance.ensureInitialized();\n return remoteConfigInstance;\n }\n}\n\nregisterRemoteConfig(firebase__default['default']);\nexports.registerRemoteConfig = registerRemoteConfig;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar UserAgentApplication_1 = require(\"./UserAgentApplication\");\n\nexports.UserAgentApplication = UserAgentApplication_1.UserAgentApplication;\n\nvar Logger_1 = require(\"./Logger\");\n\nexports.Logger = Logger_1.Logger;\n\nvar Logger_2 = require(\"./Logger\");\n\nexports.LogLevel = Logger_2.LogLevel;\n\nvar User_1 = require(\"./User\");\n\nexports.User = User_1.User;\n\nvar Constants_1 = require(\"./Constants\");\n\nexports.Constants = Constants_1.Constants;\n\nvar RequestInfo_1 = require(\"./RequestInfo\");\n\nexports.TokenResponse = RequestInfo_1.TokenResponse;\n\nvar Authority_1 = require(\"./Authority\");\n\nexports.Authority = Authority_1.Authority;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar AccessTokenKey_1 = require(\"./AccessTokenKey\");\n\nvar AccessTokenValue_1 = require(\"./AccessTokenValue\");\n\nvar AuthenticationRequestParameters_1 = require(\"./AuthenticationRequestParameters\");\n\nvar ClientInfo_1 = require(\"./ClientInfo\");\n\nvar Constants_1 = require(\"./Constants\");\n\nvar IdToken_1 = require(\"./IdToken\");\n\nvar Logger_1 = require(\"./Logger\");\n\nvar Storage_1 = require(\"./Storage\");\n\nvar RequestInfo_1 = require(\"./RequestInfo\");\n\nvar User_1 = require(\"./User\");\n\nvar Utils_1 = require(\"./Utils\");\n\nvar AuthorityFactory_1 = require(\"./AuthorityFactory\");\n/*\r\n * @hidden\r\n */\n\n\nvar ResponseTypes = {\n id_token: \"id_token\",\n token: \"token\",\n id_token_token: \"id_token token\"\n};\n\nvar resolveTokenOnlyIfOutOfIframe = function resolveTokenOnlyIfOutOfIframe(target, propertyKey, descriptor) {\n var tokenAcquisitionMethod = descriptor.value;\n\n descriptor.value = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return this.isInIframe() ? new Promise(function () {}) : tokenAcquisitionMethod.apply(this, args);\n };\n\n return descriptor;\n};\n\nvar UserAgentApplication =\n/** @class */\nfunction () {\n /*\r\n * Initialize a UserAgentApplication with a given clientId and authority.\r\n * @constructor\r\n * @param {string} clientId - The clientID of your application, you should get this from the application registration portal.\r\n * @param {string} authority - A URL indicating a directory that MSAL can use to obtain tokens.\r\n * - In Azure AD, it is of the form https://<instance>/<tenant>,\\ where <instance> is the directory host (e.g. https://login.microsoftonline.com) and <tenant> is a identifier within the directory itself (e.g. a domain associated to the tenant, such as contoso.onmicrosoft.com, or the GUID representing the TenantID property of the directory)\r\n * - In Azure B2C, it is of the form https://<instance>/tfp/<tenantId>/<policyName>/\r\n * - Default value is: \"https://login.microsoftonline.com/common\"\r\n * @param _tokenReceivedCallback - The function that will get the call back once this API is completed (either successfully or with a failure).\r\n * @param {boolean} validateAuthority - boolean to turn authority validation on/off.\r\n */\n function UserAgentApplication(clientId, authority, tokenReceivedCallback, options) {\n if (options === void 0) {\n options = {};\n }\n /*\r\n * @hidden\r\n */\n\n\n this._cacheLocations = {\n localStorage: \"localStorage\",\n sessionStorage: \"sessionStorage\"\n };\n /*\r\n * @hidden\r\n */\n\n this._clockSkew = 300;\n /*\r\n * @hidden\r\n */\n\n this._tokenReceivedCallback = null;\n this._isAngular = false;\n var _a = options.validateAuthority,\n validateAuthority = _a === void 0 ? true : _a,\n _b = options.cacheLocation,\n cacheLocation = _b === void 0 ? \"sessionStorage\" : _b,\n _c = options.redirectUri,\n redirectUri = _c === void 0 ? window.location.href.split(\"?\")[0].split(\"#\")[0] : _c,\n _d = options.postLogoutRedirectUri,\n postLogoutRedirectUri = _d === void 0 ? window.location.href.split(\"?\")[0].split(\"#\")[0] : _d,\n _e = options.logger,\n logger = _e === void 0 ? new Logger_1.Logger(null) : _e,\n _f = options.loadFrameTimeout,\n loadFrameTimeout = _f === void 0 ? 6000 : _f,\n _g = options.navigateToLoginRequestUrl,\n navigateToLoginRequestUrl = _g === void 0 ? true : _g,\n _h = options.isAngular,\n isAngular = _h === void 0 ? false : _h,\n _j = options.anonymousEndpoints,\n anonymousEndpoints = _j === void 0 ? new Array() : _j,\n _k = options.endPoints,\n endPoints = _k === void 0 ? new Map() : _k;\n this.loadFrameTimeout = loadFrameTimeout;\n this.clientId = clientId;\n this.validateAuthority = validateAuthority;\n this.authority = authority || \"https://login.microsoftonline.com/common\";\n this._tokenReceivedCallback = tokenReceivedCallback;\n this._redirectUri = redirectUri;\n this._postLogoutredirectUri = postLogoutRedirectUri;\n this._loginInProgress = false;\n this._acquireTokenInProgress = false;\n this._cacheLocation = cacheLocation;\n this._navigateToLoginRequestUrl = navigateToLoginRequestUrl;\n this._isAngular = isAngular;\n this._anonymousEndpoints = anonymousEndpoints;\n this._endpoints = endPoints;\n\n if (!this._cacheLocations[cacheLocation]) {\n throw new Error(\"Cache Location is not valid. Provided value:\" + this._cacheLocation + \".Possible values are: \" + this._cacheLocations.localStorage + \", \" + this._cacheLocations.sessionStorage);\n }\n\n this._cacheStorage = new Storage_1.Storage(this._cacheLocation); //cache keys msal\n\n this._logger = logger;\n window.openedWindows = [];\n window.activeRenewals = {};\n window.renewStates = [];\n window.callBackMappedToRenewStates = {};\n window.callBacksMappedToRenewStates = {};\n window.msal = this;\n var urlHash = window.location.hash;\n var isCallback = this.isCallback(urlHash);\n\n if (!this._isAngular) {\n if (isCallback) {\n this.handleAuthenticationResponse.call(this, urlHash);\n } else {\n var pendingCallback = this._cacheStorage.getItem(Constants_1.Constants.urlHash);\n\n if (pendingCallback) {\n this.processCallBack(pendingCallback);\n }\n }\n }\n }\n\n Object.defineProperty(UserAgentApplication.prototype, \"cacheLocation\", {\n /*\r\n * Used to get the cache location\r\n */\n get: function get() {\n return this._cacheLocation;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UserAgentApplication.prototype, \"authority\", {\n /*\r\n * Used to get the authority.\r\n */\n get: function get() {\n return this.authorityInstance.CanonicalAuthority;\n },\n\n /*\r\n * Used to set the authority.\r\n * @param {string} authority - A URL indicating a directory that MSAL can use to obtain tokens.\r\n * - In Azure AD, it is of the form https://<tenant>/<tenant>, where <tenant> is the directory host (e.g. https://login.microsoftonline.com) and <tenant> is a identifier within the directory itself (e.g. a domain associated to the tenant, such as contoso.onmicrosoft.com, or the GUID representing the TenantID property of the directory)\r\n * - In Azure B2C, it is of the form https://<instance>/tfp/<tenant>//\r\n * - Default value is: \"https://login.microsoftonline.com/common\"\r\n */\n set: function set(val) {\n this.authorityInstance = AuthorityFactory_1.AuthorityFactory.CreateInstance(val, this.validateAuthority);\n },\n enumerable: true,\n configurable: true\n });\n /*\r\n * Used to call the constructor callback with the token/error\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n * @hidden\r\n */\n\n UserAgentApplication.prototype.processCallBack = function (hash) {\n this._logger.info('Processing the callback from redirect response');\n\n var requestInfo = this.getRequestInfo(hash);\n this.saveTokenFromHash(requestInfo);\n var token = requestInfo.parameters[Constants_1.Constants.accessToken] || requestInfo.parameters[Constants_1.Constants.idToken];\n var errorDesc = requestInfo.parameters[Constants_1.Constants.errorDescription];\n var error = requestInfo.parameters[Constants_1.Constants.error];\n var tokenType;\n\n if (requestInfo.parameters[Constants_1.Constants.accessToken]) {\n tokenType = Constants_1.Constants.accessToken;\n } else {\n tokenType = Constants_1.Constants.idToken;\n }\n\n this._cacheStorage.removeItem(Constants_1.Constants.urlHash);\n\n try {\n if (this._tokenReceivedCallback) {\n this._tokenReceivedCallback.call(this, errorDesc, token, error, tokenType);\n }\n } catch (err) {\n this._logger.error(\"Error occurred in token received callback function: \" + err);\n }\n };\n /*\r\n * Initiate the login process by redirecting the user to the STS authorization endpoint.\r\n * @param {Array.} scopes - Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {string} extraQueryParameters - Key-value pairs to pass to the authentication server during the interactive authentication flow.\r\n */\n\n\n UserAgentApplication.prototype.loginRedirect = function (scopes, extraQueryParameters) {\n var _this = this;\n /*\r\n 1. Create navigate url\r\n 2. saves value in cache\r\n 3. redirect user to AAD\r\n */\n\n\n if (this._loginInProgress) {\n if (this._tokenReceivedCallback) {\n this._tokenReceivedCallback(Constants_1.ErrorDescription.loginProgressError, null, Constants_1.ErrorCodes.loginProgressError, Constants_1.Constants.idToken);\n\n return;\n }\n }\n\n if (scopes) {\n var isValidScope = this.validateInputScope(scopes);\n\n if (isValidScope && !Utils_1.Utils.isEmpty(isValidScope)) {\n if (this._tokenReceivedCallback) {\n this._tokenReceivedCallback(Constants_1.ErrorDescription.inputScopesError, null, Constants_1.ErrorCodes.inputScopesError, Constants_1.Constants.idToken);\n\n return;\n }\n }\n\n scopes = this.filterScopes(scopes);\n }\n\n this._loginInProgress = true;\n this.authorityInstance.ResolveEndpointsAsync().then(function () {\n var authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(_this.authorityInstance, _this.clientId, scopes, ResponseTypes.id_token, _this._redirectUri);\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n var loginStartPage = _this._cacheStorage.getItem(Constants_1.Constants.angularLoginRequest);\n\n if (!loginStartPage || loginStartPage === \"\") {\n loginStartPage = window.location.href;\n } else {\n _this._cacheStorage.setItem(Constants_1.Constants.angularLoginRequest, \"\");\n }\n\n _this._cacheStorage.setItem(Constants_1.Constants.loginRequest, loginStartPage);\n\n _this._cacheStorage.setItem(Constants_1.Constants.loginError, \"\");\n\n _this._cacheStorage.setItem(Constants_1.Constants.stateLogin, authenticationRequest.state);\n\n _this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalError, \"\");\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, \"\");\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(authorityKey))) {\n _this._cacheStorage.setItem(authorityKey, _this.authority);\n }\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=select_account\" + \"&response_mode=fragment\";\n\n _this.promptUser(urlNavigate);\n });\n };\n /*\r\n * Initiate the login process by opening a popup window.\r\n * @param {Array.} scopes - Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {string} extraQueryParameters - Key-value pairs to pass to the STS during the interactive authentication flow.\r\n * @returns {Promise.} - A Promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the token or error.\r\n */\n\n\n UserAgentApplication.prototype.loginPopup = function (scopes, extraQueryParameters) {\n var _this = this;\n /*\r\n 1. Create navigate url\r\n 2. saves value in cache\r\n 3. redirect user to AAD\r\n */\n\n\n return new Promise(function (resolve, reject) {\n if (_this._loginInProgress) {\n reject(Constants_1.ErrorCodes.loginProgressError + \"|\" + Constants_1.ErrorDescription.loginProgressError);\n return;\n }\n\n if (scopes) {\n var isValidScope = _this.validateInputScope(scopes);\n\n if (isValidScope && !Utils_1.Utils.isEmpty(isValidScope)) {\n reject(Constants_1.ErrorCodes.inputScopesError + \"|\" + Constants_1.ErrorDescription.inputScopesError);\n return;\n }\n\n scopes = _this.filterScopes(scopes);\n } else {\n scopes = [_this.clientId];\n }\n\n var scope = scopes.join(\" \").toLowerCase();\n\n var popUpWindow = _this.openWindow(\"about:blank\", \"_blank\", 1, _this, resolve, reject);\n\n if (!popUpWindow) {\n return;\n }\n\n _this._loginInProgress = true;\n\n _this.authorityInstance.ResolveEndpointsAsync().then(function () {\n var authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(_this.authorityInstance, _this.clientId, scopes, ResponseTypes.id_token, _this._redirectUri);\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n _this._cacheStorage.setItem(Constants_1.Constants.loginRequest, window.location.href);\n\n _this._cacheStorage.setItem(Constants_1.Constants.loginError, \"\");\n\n _this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalError, \"\");\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, \"\");\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(authorityKey))) {\n _this._cacheStorage.setItem(authorityKey, _this.authority);\n }\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=select_account\" + \"&response_mode=fragment\";\n window.renewStates.push(authenticationRequest.state);\n window.requestType = Constants_1.Constants.login;\n\n _this.registerCallback(authenticationRequest.state, scope, resolve, reject);\n\n if (popUpWindow) {\n _this._logger.infoPii(\"Navigated Popup window to:\" + urlNavigate);\n\n popUpWindow.location.href = urlNavigate;\n }\n }, function () {\n _this._logger.info(Constants_1.ErrorCodes.endpointResolutionError + \":\" + Constants_1.ErrorDescription.endpointResolutionError);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalError, Constants_1.ErrorCodes.endpointResolutionError);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, Constants_1.ErrorDescription.endpointResolutionError);\n\n if (reject) {\n reject(Constants_1.ErrorCodes.endpointResolutionError + \":\" + Constants_1.ErrorDescription.endpointResolutionError);\n }\n\n if (popUpWindow) {\n popUpWindow.close();\n }\n }).catch(function (err) {\n _this._logger.warning(\"could not resolve endpoints\");\n\n reject(err);\n });\n });\n };\n /*\r\n * Used to redirect the browser to the STS authorization endpoint\r\n * @param {string} urlNavigate - URL of the authorization endpoint\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.promptUser = function (urlNavigate) {\n if (urlNavigate && !Utils_1.Utils.isEmpty(urlNavigate)) {\n this._logger.infoPii(\"Navigate to:\" + urlNavigate);\n\n window.location.replace(urlNavigate);\n } else {\n this._logger.info(\"Navigate url is empty\");\n }\n };\n /*\r\n * Used to send the user to the redirect_uri after authentication is complete. The user\"s bearer token is attached to the URI fragment as an id_token/access_token field.\r\n * This function also closes the popup window after redirection.\r\n * @hidden\r\n * @ignore\r\n */\n\n\n UserAgentApplication.prototype.openWindow = function (urlNavigate, title, interval, instance, resolve, reject) {\n var _this = this;\n\n var popupWindow = this.openPopup(urlNavigate, title, Constants_1.Constants.popUpWidth, Constants_1.Constants.popUpHeight);\n\n if (popupWindow == null) {\n instance._loginInProgress = false;\n instance._acquireTokenInProgress = false;\n\n this._logger.info(Constants_1.ErrorCodes.popUpWindowError + \":\" + Constants_1.ErrorDescription.popUpWindowError);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalError, Constants_1.ErrorCodes.popUpWindowError);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, Constants_1.ErrorDescription.popUpWindowError);\n\n if (reject) {\n reject(Constants_1.ErrorCodes.popUpWindowError + \"|\" + Constants_1.ErrorDescription.popUpWindowError);\n }\n\n return null;\n }\n\n window.openedWindows.push(popupWindow);\n var pollTimer = window.setInterval(function () {\n if (popupWindow && popupWindow.closed && instance._loginInProgress) {\n if (reject) {\n reject(Constants_1.ErrorCodes.userCancelledError + \"|\" + Constants_1.ErrorDescription.userCancelledError);\n }\n\n window.clearInterval(pollTimer);\n\n if (_this._isAngular) {\n _this.broadcast('msal:popUpClosed', Constants_1.ErrorCodes.userCancelledError + \"|\" + Constants_1.ErrorDescription.userCancelledError);\n\n return;\n }\n\n instance._loginInProgress = false;\n instance._acquireTokenInProgress = false;\n }\n\n try {\n var popUpWindowLocation = popupWindow.location;\n\n if (popUpWindowLocation.href.indexOf(_this._redirectUri) !== -1) {\n window.clearInterval(pollTimer);\n instance._loginInProgress = false;\n instance._acquireTokenInProgress = false;\n\n _this._logger.info(\"Closing popup window\");\n\n if (_this._isAngular) {\n _this.broadcast('msal:popUpHashChanged', popUpWindowLocation.hash);\n\n for (var i = 0; i < window.openedWindows.length; i++) {\n window.openedWindows[i].close();\n }\n }\n }\n } catch (e) {//Cross Domain url check error. Will be thrown until AAD redirects the user back to the app\"s root page with the token. No need to log or throw this error as it will create unnecessary traffic.\n }\n }, interval);\n return popupWindow;\n };\n\n UserAgentApplication.prototype.broadcast = function (eventName, data) {\n var evt = new CustomEvent(eventName, {\n detail: data\n });\n window.dispatchEvent(evt);\n };\n /*\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Defaults behaviour is to redirect the user to `window.location.href`.\r\n */\n\n\n UserAgentApplication.prototype.logout = function () {\n this.clearCache();\n this._user = null;\n var logout = \"\";\n\n if (this._postLogoutredirectUri) {\n logout = \"post_logout_redirect_uri=\" + encodeURIComponent(this._postLogoutredirectUri);\n }\n\n var urlNavigate = this.authority + \"/oauth2/v2.0/logout?\" + logout;\n this.promptUser(urlNavigate);\n };\n /*\r\n * Used to configure the popup window for login.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.clearCache = function () {\n window.renewStates = [];\n\n var accessTokenItems = this._cacheStorage.getAllAccessTokens(Constants_1.Constants.clientId, Constants_1.Constants.userIdentifier);\n\n for (var i = 0; i < accessTokenItems.length; i++) {\n this._cacheStorage.removeItem(JSON.stringify(accessTokenItems[i].key));\n }\n\n this._cacheStorage.resetCacheItems();\n };\n\n UserAgentApplication.prototype.clearCacheForScope = function (accessToken) {\n var accessTokenItems = this._cacheStorage.getAllAccessTokens(Constants_1.Constants.clientId, Constants_1.Constants.userIdentifier);\n\n for (var i = 0; i < accessTokenItems.length; i++) {\n var token = accessTokenItems[i];\n\n if (token.value.accessToken == accessToken) {\n this._cacheStorage.removeItem(JSON.stringify(token.key));\n }\n }\n };\n /*\r\n * Configures popup window for login.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.openPopup = function (urlNavigate, title, popUpWidth, popUpHeight) {\n try {\n /*\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\n var winTop = window.screenTop ? window.screenTop : window.screenY;\n /*\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\n\n var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n var left = width / 2 - popUpWidth / 2 + winLeft;\n var top_1 = height / 2 - popUpHeight / 2 + winTop;\n var popupWindow = window.open(urlNavigate, title, \"width=\" + popUpWidth + \", height=\" + popUpHeight + \", top=\" + top_1 + \", left=\" + left);\n\n if (popupWindow.focus) {\n popupWindow.focus();\n }\n\n return popupWindow;\n } catch (e) {\n this._logger.error(\"error opening popup \" + e.message);\n\n this._loginInProgress = false;\n this._acquireTokenInProgress = false;\n return null;\n }\n };\n /*\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} scopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.validateInputScope = function (scopes) {\n if (!scopes || scopes.length < 1) {\n return \"Scopes cannot be passed as an empty array\";\n }\n\n if (!Array.isArray(scopes)) {\n throw new Error(\"API does not accept non-array scopes\");\n }\n\n if (scopes.indexOf(this.clientId) > -1) {\n if (scopes.length > 1) {\n return \"ClientId can only be provided as a single scope\";\n }\n }\n\n return \"\";\n };\n /*\r\n * Used to remove openid and profile from the list of scopes passed by the developer.These scopes are added by default\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.filterScopes = function (scopes) {\n scopes = scopes.filter(function (element) {\n return element !== \"openid\";\n });\n scopes = scopes.filter(function (element) {\n return element !== \"profile\";\n });\n return scopes;\n };\n /*\r\n * Used to add the developer requested callback to the array of callbacks for the specified scopes. The updated array is stored on the window object\r\n * @param {string} scope - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {string} expectedState - Unique state identifier (guid).\r\n * @param {Function} resolve - The resolve function of the promise object.\r\n * @param {Function} reject - The reject function of the promise object.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.registerCallback = function (expectedState, scope, resolve, reject) {\n var _this = this;\n\n window.activeRenewals[scope] = expectedState;\n\n if (!window.callBacksMappedToRenewStates[expectedState]) {\n window.callBacksMappedToRenewStates[expectedState] = [];\n }\n\n window.callBacksMappedToRenewStates[expectedState].push({\n resolve: resolve,\n reject: reject\n });\n\n if (!window.callBackMappedToRenewStates[expectedState]) {\n window.callBackMappedToRenewStates[expectedState] = function (errorDesc, token, error, tokenType) {\n window.activeRenewals[scope] = null;\n\n for (var i = 0; i < window.callBacksMappedToRenewStates[expectedState].length; ++i) {\n try {\n if (errorDesc || error) {\n window.callBacksMappedToRenewStates[expectedState][i].reject(errorDesc + \"|\" + error);\n } else if (token) {\n window.callBacksMappedToRenewStates[expectedState][i].resolve(token);\n }\n } catch (e) {\n _this._logger.warning(e);\n }\n }\n\n window.callBacksMappedToRenewStates[expectedState] = null;\n window.callBackMappedToRenewStates[expectedState] = null;\n };\n }\n };\n\n UserAgentApplication.prototype.getCachedTokenInternal = function (scopes, user) {\n var userObject = user ? user : this.getUser();\n\n if (!userObject) {\n return;\n }\n\n var authenticationRequest;\n var newAuthority = this.authorityInstance ? this.authorityInstance : AuthorityFactory_1.AuthorityFactory.CreateInstance(this.authority, this.validateAuthority);\n\n if (Utils_1.Utils.compareObjects(userObject, this.getUser())) {\n if (scopes.indexOf(this.clientId) > -1) {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, this.clientId, scopes, ResponseTypes.id_token, this._redirectUri);\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, this.clientId, scopes, ResponseTypes.token, this._redirectUri);\n }\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, this.clientId, scopes, ResponseTypes.id_token_token, this._redirectUri);\n }\n\n return this.getCachedToken(authenticationRequest, user);\n };\n /*\r\n * Used to get token for the specified set of scopes from the cache\r\n * @param {AuthenticationRequestParameters} authenticationRequest - Request sent to the STS to obtain an id_token/access_token\r\n * @param {User} user - User for which the scopes were requested\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getCachedToken = function (authenticationRequest, user) {\n var accessTokenCacheItem = null;\n var scopes = authenticationRequest.scopes;\n\n var tokenCacheItems = this._cacheStorage.getAllAccessTokens(this.clientId, user ? user.userIdentifier : null); //filter by clientId and user\n\n\n if (tokenCacheItems.length === 0) {\n // No match found after initial filtering\n return null;\n }\n\n var filteredItems = []; //if no authority passed\n\n if (!authenticationRequest.authority) {\n //filter by scope\n for (var i = 0; i < tokenCacheItems.length; i++) {\n var cacheItem = tokenCacheItems[i];\n var cachedScopes = cacheItem.key.scopes.split(\" \");\n\n if (Utils_1.Utils.containsScope(cachedScopes, scopes)) {\n filteredItems.push(cacheItem);\n }\n } //if only one cached token found\n\n\n if (filteredItems.length === 1) {\n accessTokenCacheItem = filteredItems[0];\n authenticationRequest.authorityInstance = AuthorityFactory_1.AuthorityFactory.CreateInstance(accessTokenCacheItem.key.authority, this.validateAuthority);\n } else if (filteredItems.length > 1) {\n return {\n errorDesc: \"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements like authority\",\n token: null,\n error: \"multiple_matching_tokens_detected\"\n };\n } else {\n //no match found. check if there was a single authority used\n var authorityList = this.getUniqueAuthority(tokenCacheItems, \"authority\");\n\n if (authorityList.length > 1) {\n return {\n errorDesc: \"Multiple authorities found in the cache. Pass authority in the API overload.\",\n token: null,\n error: \"multiple_matching_tokens_detected\"\n };\n }\n\n authenticationRequest.authorityInstance = AuthorityFactory_1.AuthorityFactory.CreateInstance(authorityList[0], this.validateAuthority);\n }\n } else {\n //authority was passed in the API, filter by authority and scope\n for (var i = 0; i < tokenCacheItems.length; i++) {\n var cacheItem = tokenCacheItems[i];\n var cachedScopes = cacheItem.key.scopes.split(\" \");\n\n if (Utils_1.Utils.containsScope(cachedScopes, scopes) && cacheItem.key.authority === authenticationRequest.authority) {\n filteredItems.push(cacheItem);\n }\n } //no match\n\n\n if (filteredItems.length === 0) {\n return null;\n } //only one cachedToken Found\n else if (filteredItems.length === 1) {\n accessTokenCacheItem = filteredItems[0];\n } else {\n //more than one match found.\n return {\n errorDesc: \"The cache contains multiple tokens satisfying the requirements.Call AcquireToken again providing more requirements like authority\",\n token: null,\n error: \"multiple_matching_tokens_detected\"\n };\n }\n }\n\n if (accessTokenCacheItem != null) {\n var expired = Number(accessTokenCacheItem.value.expiresIn); // If expiration is within offset, it will force renew\n\n var offset = this._clockSkew || 300;\n\n if (expired && expired > Utils_1.Utils.now() + offset) {\n return {\n errorDesc: null,\n token: accessTokenCacheItem.value.accessToken,\n error: null\n };\n } else {\n this._cacheStorage.removeItem(JSON.stringify(filteredItems[0].key));\n\n return null;\n }\n } else {\n return null;\n }\n };\n /*\r\n * Used to filter all cached items and return a list of unique users based on userIdentifier.\r\n * @param {Array} Users - users saved in the cache.\r\n */\n\n\n UserAgentApplication.prototype.getAllUsers = function () {\n var users = [];\n\n var accessTokenCacheItems = this._cacheStorage.getAllAccessTokens(Constants_1.Constants.clientId, Constants_1.Constants.userIdentifier);\n\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\n var idToken = new IdToken_1.IdToken(accessTokenCacheItems[i].value.idToken);\n var clientInfo = new ClientInfo_1.ClientInfo(accessTokenCacheItems[i].value.clientInfo);\n var user = User_1.User.createUser(idToken, clientInfo, this.authority);\n users.push(user);\n }\n\n return this.getUniqueUsers(users);\n };\n /*\r\n * Used to filter users based on userIdentifier\r\n * @param {Array} Users - users saved in the cache\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getUniqueUsers = function (users) {\n if (!users || users.length <= 1) {\n return users;\n }\n\n var flags = [];\n var uniqueUsers = [];\n\n for (var index = 0; index < users.length; ++index) {\n if (users[index].userIdentifier && flags.indexOf(users[index].userIdentifier) === -1) {\n flags.push(users[index].userIdentifier);\n uniqueUsers.push(users[index]);\n }\n }\n\n return uniqueUsers;\n };\n /*\r\n * Used to get a unique list of authoritues from the cache\r\n * @param {Array} accessTokenCacheItems - accessTokenCacheItems saved in the cache\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getUniqueAuthority = function (accessTokenCacheItems, property) {\n var authorityList = [];\n var flags = [];\n accessTokenCacheItems.forEach(function (element) {\n if (element.key.hasOwnProperty(property) && flags.indexOf(element.key[property]) === -1) {\n flags.push(element.key[property]);\n authorityList.push(element.key[property]);\n }\n });\n return authorityList;\n };\n /*\r\n * Adds login_hint to authorization URL which is used to pre-fill the username field of sign in page for the user if known ahead of time\r\n * domain_hint can be one of users/organisations which when added skips the email based discovery process of the user\r\n * domain_req utid received as part of the clientInfo\r\n * login_req uid received as part of clientInfo\r\n * @param {string} urlNavigate - Authentication request url\r\n * @param {User} user - User for which the token is requested\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.addHintParameters = function (urlNavigate, user) {\n var userObject = user ? user : this.getUser();\n var decodedClientInfo = userObject.userIdentifier.split(\".\");\n var uid = Utils_1.Utils.base64DecodeStringUrlSafe(decodedClientInfo[0]);\n var utid = Utils_1.Utils.base64DecodeStringUrlSafe(decodedClientInfo[1]);\n\n if (!this.urlContainsQueryStringParameter(\"login_hint\", urlNavigate) && userObject.displayableId && !Utils_1.Utils.isEmpty(userObject.displayableId)) {\n urlNavigate += \"&login_hint=\" + encodeURIComponent(user.displayableId);\n }\n\n if (!Utils_1.Utils.isEmpty(uid) && !Utils_1.Utils.isEmpty(utid)) {\n if (!this.urlContainsQueryStringParameter(\"domain_req\", urlNavigate) && !Utils_1.Utils.isEmpty(utid)) {\n urlNavigate += \"&domain_req=\" + encodeURIComponent(utid);\n }\n\n if (!this.urlContainsQueryStringParameter(\"login_req\", urlNavigate) && !Utils_1.Utils.isEmpty(uid)) {\n urlNavigate += \"&login_req=\" + encodeURIComponent(uid);\n }\n\n if (!this.urlContainsQueryStringParameter(\"domain_hint\", urlNavigate) && !Utils_1.Utils.isEmpty(utid)) {\n if (utid === \"9188040d-6c67-4c5b-b112-36a304b66dad\") {\n urlNavigate += \"&domain_hint=\" + encodeURIComponent(\"consumers\");\n } else {\n urlNavigate += \"&domain_hint=\" + encodeURIComponent(\"organizations\");\n }\n }\n }\n\n return urlNavigate;\n };\n /*\r\n * Checks if the authorization endpoint URL contains query string parameters\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.urlContainsQueryStringParameter = function (name, url) {\n // regex to detect pattern of a ? or & followed by the name parameter and an equals character\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=\");\n return regex.test(url);\n };\n\n UserAgentApplication.prototype.acquireTokenRedirect = function (scopes, authority, user, extraQueryParameters) {\n var _this = this;\n\n var isValidScope = this.validateInputScope(scopes);\n\n if (isValidScope && !Utils_1.Utils.isEmpty(isValidScope)) {\n if (this._tokenReceivedCallback) {\n this._tokenReceivedCallback(Constants_1.ErrorDescription.inputScopesError, null, Constants_1.ErrorCodes.inputScopesError, Constants_1.Constants.accessToken);\n\n return;\n }\n }\n\n if (scopes) {\n scopes = this.filterScopes(scopes);\n }\n\n var userObject = user ? user : this.getUser();\n\n if (this._acquireTokenInProgress) {\n return;\n }\n\n var scope = scopes.join(\" \").toLowerCase();\n\n if (!userObject) {\n if (this._tokenReceivedCallback) {\n this._tokenReceivedCallback(Constants_1.ErrorDescription.userLoginError, null, Constants_1.ErrorCodes.userLoginError, Constants_1.Constants.accessToken);\n\n return;\n }\n }\n\n this._acquireTokenInProgress = true;\n var authenticationRequest;\n var acquireTokenAuthority = authority ? AuthorityFactory_1.AuthorityFactory.CreateInstance(authority, this.validateAuthority) : this.authorityInstance;\n acquireTokenAuthority.ResolveEndpointsAsync().then(function () {\n if (Utils_1.Utils.compareObjects(userObject, _this.getUser())) {\n if (scopes.indexOf(_this.clientId) > -1) {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.id_token, _this._redirectUri);\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.token, _this._redirectUri);\n }\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.id_token_token, _this._redirectUri);\n }\n\n _this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n var acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + userObject.userIdentifier + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(acquireTokenUserKey))) {\n _this._cacheStorage.setItem(acquireTokenUserKey, JSON.stringify(userObject));\n }\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(authorityKey))) {\n _this._cacheStorage.setItem(authorityKey, acquireTokenAuthority.CanonicalAuthority);\n }\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=select_account\" + \"&response_mode=fragment\";\n urlNavigate = _this.addHintParameters(urlNavigate, userObject);\n\n if (urlNavigate) {\n _this._cacheStorage.setItem(Constants_1.Constants.stateAcquireToken, authenticationRequest.state);\n\n window.location.replace(urlNavigate);\n }\n });\n };\n\n UserAgentApplication.prototype.acquireTokenPopup = function (scopes, authority, user, extraQueryParameters) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var isValidScope = _this.validateInputScope(scopes);\n\n if (isValidScope && !Utils_1.Utils.isEmpty(isValidScope)) {\n reject(Constants_1.ErrorCodes.inputScopesError + \"|\" + isValidScope);\n }\n\n if (scopes) {\n scopes = _this.filterScopes(scopes);\n }\n\n var userObject = user ? user : _this.getUser();\n\n if (_this._acquireTokenInProgress) {\n reject(Constants_1.ErrorCodes.acquireTokenProgressError + \"|\" + Constants_1.ErrorDescription.acquireTokenProgressError);\n return;\n }\n\n var scope = scopes.join(\" \").toLowerCase();\n\n if (!userObject) {\n reject(Constants_1.ErrorCodes.userLoginError + \"|\" + Constants_1.ErrorDescription.userLoginError);\n return;\n }\n\n _this._acquireTokenInProgress = true;\n var authenticationRequest;\n var acquireTokenAuthority = authority ? AuthorityFactory_1.AuthorityFactory.CreateInstance(authority, _this.validateAuthority) : _this.authorityInstance;\n\n var popUpWindow = _this.openWindow(\"about:blank\", \"_blank\", 1, _this, resolve, reject);\n\n if (!popUpWindow) {\n return;\n }\n\n acquireTokenAuthority.ResolveEndpointsAsync().then(function () {\n if (Utils_1.Utils.compareObjects(userObject, _this.getUser())) {\n if (scopes.indexOf(_this.clientId) > -1) {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.id_token, _this._redirectUri);\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.token, _this._redirectUri);\n }\n } else {\n authenticationRequest = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(acquireTokenAuthority, _this.clientId, scopes, ResponseTypes.id_token_token, _this._redirectUri);\n }\n\n _this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n authenticationRequest.state = authenticationRequest.state;\n var acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + userObject.userIdentifier + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(acquireTokenUserKey))) {\n _this._cacheStorage.setItem(acquireTokenUserKey, JSON.stringify(userObject));\n }\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(_this._cacheStorage.getItem(authorityKey))) {\n _this._cacheStorage.setItem(authorityKey, acquireTokenAuthority.CanonicalAuthority);\n }\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=select_account\" + \"&response_mode=fragment\";\n urlNavigate = _this.addHintParameters(urlNavigate, userObject);\n window.renewStates.push(authenticationRequest.state);\n window.requestType = Constants_1.Constants.renewToken;\n\n _this.registerCallback(authenticationRequest.state, scope, resolve, reject);\n\n if (popUpWindow) {\n popUpWindow.location.href = urlNavigate;\n }\n }, function () {\n _this._logger.info(Constants_1.ErrorCodes.endpointResolutionError + \":\" + Constants_1.ErrorDescription.endpointResolutionError);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalError, Constants_1.ErrorCodes.endpointResolutionError);\n\n _this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, Constants_1.ErrorDescription.endpointResolutionError);\n\n if (reject) {\n reject(Constants_1.ErrorCodes.endpointResolutionError + \"|\" + Constants_1.ErrorDescription.endpointResolutionError);\n }\n\n if (popUpWindow) {\n popUpWindow.close();\n }\n }).catch(function (err) {\n _this._logger.warning(\"could not resolve endpoints\");\n\n reject(err);\n });\n });\n };\n /*\r\n * Used to get the token from cache.\r\n * MSAL will return the cached token if it is not expired.\r\n * Or it will send a request to the STS to obtain an access_token using a hidden iframe. To renew idToken, clientId should be passed as the only scope in the scopes array.\r\n * @param {Array} scopes - Permissions you want included in the access token. Not all scopes are guaranteed to be included in the access token. Scopes like \"openid\" and \"profile\" are sent with every request.\r\n * @param {string} authority - A URL indicating a directory that MSAL can use to obtain tokens.\r\n * - In Azure AD, it is of the form https://<tenant>/<tenant>, where <tenant> is the directory host (e.g. https://login.microsoftonline.com) and <tenant> is a identifier within the directory itself (e.g. a domain associated to the tenant, such as contoso.onmicrosoft.com, or the GUID representing the TenantID property of the directory)\r\n * - In Azure B2C, it is of the form https://<instance>/tfp/<tenant>//\r\n * - Default value is: \"https://login.microsoftonline.com/common\"\r\n * @param {User} user - The user for which the scopes are requested.The default user is the logged in user.\r\n * @param {string} extraQueryParameters - Key-value pairs to pass to the STS during the authentication flow.\r\n * @returns {Promise.} - A Promise that is fulfilled when this function has completed, or rejected if an error was raised. Resolved with token or rejected with error.\r\n */\n\n\n UserAgentApplication.prototype.acquireTokenSilent = function (scopes, authority, user, extraQueryParameters) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var isValidScope = _this.validateInputScope(scopes);\n\n if (isValidScope && !Utils_1.Utils.isEmpty(isValidScope)) {\n reject(Constants_1.ErrorCodes.inputScopesError + \"|\" + isValidScope);\n } else {\n if (scopes) {\n scopes = _this.filterScopes(scopes);\n }\n\n var scope_1 = scopes.join(\" \").toLowerCase();\n var userObject_1 = user ? user : _this.getUser();\n\n if (!userObject_1) {\n reject(Constants_1.ErrorCodes.userLoginError + \"|\" + Constants_1.ErrorDescription.userLoginError);\n return;\n }\n\n var authenticationRequest_1;\n var newAuthority = authority ? AuthorityFactory_1.AuthorityFactory.CreateInstance(authority, _this.validateAuthority) : _this.authorityInstance;\n\n if (Utils_1.Utils.compareObjects(userObject_1, _this.getUser())) {\n if (scopes.indexOf(_this.clientId) > -1) {\n authenticationRequest_1 = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, _this.clientId, scopes, ResponseTypes.id_token, _this._redirectUri);\n } else {\n authenticationRequest_1 = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, _this.clientId, scopes, ResponseTypes.token, _this._redirectUri);\n }\n } else {\n authenticationRequest_1 = new AuthenticationRequestParameters_1.AuthenticationRequestParameters(newAuthority, _this.clientId, scopes, ResponseTypes.id_token_token, _this._redirectUri);\n }\n\n var cacheResult = _this.getCachedToken(authenticationRequest_1, userObject_1);\n\n if (cacheResult) {\n if (cacheResult.token) {\n _this._logger.info(\"Token is already in cache for scope:\" + scope_1);\n\n resolve(cacheResult.token);\n return;\n } else if (cacheResult.errorDesc || cacheResult.error) {\n _this._logger.infoPii(cacheResult.errorDesc + \":\" + cacheResult.error);\n\n reject(cacheResult.errorDesc + \"|\" + cacheResult.error);\n return;\n }\n } else {\n _this._logger.verbose(\"Token is not in cache for scope:\" + scope_1);\n } // cache miss\n\n\n return newAuthority.ResolveEndpointsAsync().then(function () {\n // refresh attept with iframe\n //Already renewing for this scope, callback when we get the token.\n if (window.activeRenewals[scope_1]) {\n _this._logger.verbose(\"Renew token for scope: \" + scope_1 + \" is in progress. Registering callback\"); //Active renewals contains the state for each renewal.\n\n\n _this.registerCallback(window.activeRenewals[scope_1], scope_1, resolve, reject);\n } else {\n if (scopes && scopes.indexOf(_this.clientId) > -1 && scopes.length === 1) {\n // App uses idToken to send to api endpoints\n // Default scope is tracked as clientId to store this token\n _this._logger.verbose(\"renewing idToken\");\n\n _this.renewIdToken(scopes, resolve, reject, userObject_1, authenticationRequest_1, extraQueryParameters);\n } else {\n _this._logger.verbose(\"renewing accesstoken\");\n\n _this.renewToken(scopes, resolve, reject, userObject_1, authenticationRequest_1, extraQueryParameters);\n }\n }\n }).catch(function (err) {\n _this._logger.warning(\"could not resolve endpoints\");\n\n reject(err);\n });\n }\n });\n };\n /*\r\n * Calling _loadFrame but with a timeout to signal failure in loadframeStatus. Callbacks are left.\r\n * registered when network errors occur and subsequent token requests for same resource are registered to the pending request.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.loadIframeTimeout = function (urlNavigate, frameName, scope) {\n var _this = this; //set iframe session to pending\n\n\n var expectedState = window.activeRenewals[scope];\n\n this._logger.verbose(\"Set loading state to pending for: \" + scope + \":\" + expectedState);\n\n this._cacheStorage.setItem(Constants_1.Constants.renewStatus + expectedState, Constants_1.Constants.tokenRenewStatusInProgress);\n\n this.loadFrame(urlNavigate, frameName);\n setTimeout(function () {\n if (_this._cacheStorage.getItem(Constants_1.Constants.renewStatus + expectedState) === Constants_1.Constants.tokenRenewStatusInProgress) {\n // fail the iframe session if it\"s in pending state\n _this._logger.verbose(\"Loading frame has timed out after: \" + _this.loadFrameTimeout / 1000 + \" seconds for scope \" + scope + \":\" + expectedState);\n\n if (expectedState && window.callBackMappedToRenewStates[expectedState]) {\n window.callBackMappedToRenewStates[expectedState](\"Token renewal operation failed due to timeout\", null, \"Token Renewal Failed\", Constants_1.Constants.accessToken);\n }\n\n _this._cacheStorage.setItem(Constants_1.Constants.renewStatus + expectedState, Constants_1.Constants.tokenRenewStatusCancelled);\n }\n }, this.loadFrameTimeout);\n };\n /*\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.loadFrame = function (urlNavigate, frameName) {\n var _this = this; // This trick overcomes iframe navigation in IE\n // IE does not load the page consistently in iframe\n\n\n this._logger.info(\"LoadFrame: \" + frameName);\n\n var frameCheck = frameName;\n setTimeout(function () {\n var frameHandle = _this.addAdalFrame(frameCheck);\n\n if (frameHandle.src === \"\" || frameHandle.src === \"about:blank\") {\n frameHandle.src = urlNavigate;\n\n _this._logger.infoPii(\"Frame Name : \" + frameName + \" Navigated to: \" + urlNavigate);\n }\n }, 500);\n };\n /*\r\n * Adds the hidden iframe for silent token renewal.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.addAdalFrame = function (iframeId) {\n if (typeof iframeId === \"undefined\") {\n return null;\n }\n\n this._logger.info(\"Add msal frame to document:\" + iframeId);\n\n var adalFrame = document.getElementById(iframeId);\n\n if (!adalFrame) {\n if (document.createElement && document.documentElement && window.navigator.userAgent.indexOf(\"MSIE 5.0\") === -1) {\n var ifr = document.createElement(\"iframe\");\n ifr.setAttribute(\"id\", iframeId);\n ifr.style.visibility = \"hidden\";\n ifr.style.position = \"absolute\";\n ifr.style.width = ifr.style.height = \"0\";\n ifr.style.border = \"0\";\n adalFrame = document.getElementsByTagName(\"body\")[0].appendChild(ifr);\n } else if (document.body && document.body.insertAdjacentHTML) {\n document.body.insertAdjacentHTML('beforeend', '');\n }\n\n if (window.frames && window.frames[iframeId]) {\n adalFrame = window.frames[iframeId];\n }\n }\n\n return adalFrame;\n };\n /*\r\n * Acquires access token using a hidden iframe.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.renewToken = function (scopes, resolve, reject, user, authenticationRequest, extraQueryParameters) {\n var scope = scopes.join(\" \").toLowerCase();\n\n this._logger.verbose(\"renewToken is called for scope:\" + scope);\n\n var frameHandle = this.addAdalFrame(\"msalRenewFrame\" + scope);\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n var acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + user.userIdentifier + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(this._cacheStorage.getItem(acquireTokenUserKey))) {\n this._cacheStorage.setItem(acquireTokenUserKey, JSON.stringify(user));\n }\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(this._cacheStorage.getItem(authorityKey))) {\n this._cacheStorage.setItem(authorityKey, authenticationRequest.authority);\n } // renew happens in iframe, so it keeps javascript context\n\n\n this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n this._logger.verbose(\"Renew token Expected state: \" + authenticationRequest.state);\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=none\";\n urlNavigate = this.addHintParameters(urlNavigate, user);\n window.renewStates.push(authenticationRequest.state);\n window.requestType = Constants_1.Constants.renewToken;\n this.registerCallback(authenticationRequest.state, scope, resolve, reject);\n\n this._logger.infoPii(\"Navigate to:\" + urlNavigate);\n\n frameHandle.src = \"about:blank\";\n this.loadIframeTimeout(urlNavigate, \"msalRenewFrame\" + scope, scope);\n };\n /*\r\n * Renews idtoken for app\"s own backend when clientId is passed as a single scope in the scopes array.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.renewIdToken = function (scopes, resolve, reject, user, authenticationRequest, extraQueryParameters) {\n var scope = scopes.join(\" \").toLowerCase();\n\n this._logger.info(\"renewidToken is called\");\n\n var frameHandle = this.addAdalFrame(\"msalIdTokenFrame\");\n\n if (extraQueryParameters) {\n authenticationRequest.extraQueryParameters = extraQueryParameters;\n }\n\n var acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + user.userIdentifier + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(this._cacheStorage.getItem(acquireTokenUserKey))) {\n this._cacheStorage.setItem(acquireTokenUserKey, JSON.stringify(user));\n }\n\n var authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + authenticationRequest.state;\n\n if (Utils_1.Utils.isEmpty(this._cacheStorage.getItem(authorityKey))) {\n this._cacheStorage.setItem(authorityKey, authenticationRequest.authority);\n }\n\n this._cacheStorage.setItem(Constants_1.Constants.nonceIdToken, authenticationRequest.nonce);\n\n this._logger.verbose(\"Renew Idtoken Expected state: \" + authenticationRequest.state);\n\n var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + \"&prompt=none\";\n urlNavigate = this.addHintParameters(urlNavigate, user);\n window.renewStates.push(authenticationRequest.state);\n window.requestType = Constants_1.Constants.renewToken;\n this.registerCallback(authenticationRequest.state, this.clientId, resolve, reject);\n\n this._logger.infoPii(\"Navigate to:\" + urlNavigate);\n\n frameHandle.src = \"about:blank\";\n this.loadIframeTimeout(urlNavigate, \"msalIdTokenFrame\", this.clientId);\n };\n /*\r\n * Returns the signed in user (received from a user object created at the time of login) or null.\r\n */\n\n\n UserAgentApplication.prototype.getUser = function () {\n // idToken is first call\n if (this._user) {\n return this._user;\n } // frame is used to get idToken\n\n\n var rawIdToken = this._cacheStorage.getItem(Constants_1.Constants.idTokenKey);\n\n var rawClientInfo = this._cacheStorage.getItem(Constants_1.Constants.msalClientInfo);\n\n if (!Utils_1.Utils.isEmpty(rawIdToken) && !Utils_1.Utils.isEmpty(rawClientInfo)) {\n var idToken = new IdToken_1.IdToken(rawIdToken);\n var clientInfo = new ClientInfo_1.ClientInfo(rawClientInfo);\n this._user = User_1.User.createUser(idToken, clientInfo, this.authority);\n return this._user;\n }\n\n return null;\n };\n /*\r\n * This method must be called for processing the response received from the STS. It extracts the hash, processes the token or error information and saves it in the cache. It then\r\n * calls the registered callbacks in case of redirect or resolves the promises with the result.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.handleAuthenticationResponse = function (hash) {\n if (hash == null) {\n hash = window.location.hash;\n }\n\n var self = null;\n var isPopup = false;\n var isWindowOpenerMsal = false;\n\n try {\n isWindowOpenerMsal = window.opener && window.opener.msal && window.opener.msal !== window.msal;\n } catch (err) {\n // err = SecurityError: Blocked a frame with origin \"[url]\" from accessing a cross-origin frame.\n isWindowOpenerMsal = false;\n }\n\n if (isWindowOpenerMsal) {\n self = window.opener.msal;\n isPopup = true;\n } else if (window.parent && window.parent.msal) {\n self = window.parent.msal;\n }\n\n var requestInfo = self.getRequestInfo(hash); //if(window.parent!==window), by using self, window.parent becomes equal to window in getRequestInfo method specifically\n\n var token = null,\n tokenReceivedCallback = null,\n tokenType,\n saveToken = true;\n\n self._logger.info(\"Returned from redirect url\");\n\n if (window.parent !== window && window.parent.msal) {\n tokenReceivedCallback = window.parent.callBackMappedToRenewStates[requestInfo.stateResponse];\n } else if (isWindowOpenerMsal) {\n tokenReceivedCallback = window.opener.callBackMappedToRenewStates[requestInfo.stateResponse];\n } else {\n if (self._navigateToLoginRequestUrl) {\n tokenReceivedCallback = null;\n\n self._cacheStorage.setItem(Constants_1.Constants.urlHash, hash);\n\n saveToken = false;\n\n if (window.parent === window && !isPopup) {\n window.location.href = self._cacheStorage.getItem(Constants_1.Constants.loginRequest);\n }\n\n return;\n } else {\n tokenReceivedCallback = self._tokenReceivedCallback;\n window.location.hash = '';\n }\n }\n\n self.saveTokenFromHash(requestInfo);\n\n if (requestInfo.requestType === Constants_1.Constants.renewToken && window.parent) {\n if (window.parent !== window) {\n self._logger.verbose(\"Window is in iframe, acquiring token silently\");\n } else {\n self._logger.verbose(\"acquiring token interactive in progress\");\n }\n\n token = requestInfo.parameters[Constants_1.Constants.accessToken] || requestInfo.parameters[Constants_1.Constants.idToken];\n tokenType = Constants_1.Constants.accessToken;\n } else if (requestInfo.requestType === Constants_1.Constants.login) {\n token = requestInfo.parameters[Constants_1.Constants.idToken];\n tokenType = Constants_1.Constants.idToken;\n }\n\n var errorDesc = requestInfo.parameters[Constants_1.Constants.errorDescription];\n var error = requestInfo.parameters[Constants_1.Constants.error];\n\n try {\n if (tokenReceivedCallback) {\n tokenReceivedCallback.call(self, errorDesc, token, error, tokenType);\n }\n } catch (err) {\n self._logger.error(\"Error occurred in token received callback function: \" + err);\n }\n\n if (isWindowOpenerMsal) {\n for (var i = 0; i < window.opener.openedWindows.length; i++) {\n window.opener.openedWindows[i].close();\n }\n }\n };\n /*\r\n * This method must be called for processing the response received from AAD. It extracts the hash, processes the token or error, saves it in the cache and calls the registered callbacks with the result.\r\n * @param {string} authority authority received in the redirect response from AAD.\r\n * @param {TokenResponse} requestInfo an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n * @param {User} user user object for which scopes are consented for. The default user is the logged in user.\r\n * @param {ClientInfo} clientInfo clientInfo received as part of the response comprising of fields uid and utid.\r\n * @param {IdToken} idToken idToken received as part of the response.\r\n * @ignore\r\n * @private\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.saveAccessToken = function (authority, tokenResponse, user, clientInfo, idToken) {\n var scope;\n var clientObj = new ClientInfo_1.ClientInfo(clientInfo);\n\n if (tokenResponse.parameters.hasOwnProperty(\"scope\")) {\n scope = tokenResponse.parameters[\"scope\"];\n var consentedScopes = scope.split(\" \");\n\n var accessTokenCacheItems = this._cacheStorage.getAllAccessTokens(this.clientId, authority);\n\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\n var accessTokenCacheItem = accessTokenCacheItems[i];\n\n if (accessTokenCacheItem.key.userIdentifier === user.userIdentifier) {\n var cachedScopes = accessTokenCacheItem.key.scopes.split(\" \");\n\n if (Utils_1.Utils.isIntersectingScopes(cachedScopes, consentedScopes)) {\n this._cacheStorage.removeItem(JSON.stringify(accessTokenCacheItem.key));\n }\n }\n }\n\n var accessTokenKey = new AccessTokenKey_1.AccessTokenKey(authority, this.clientId, scope, clientObj.uid, clientObj.utid);\n var accessTokenValue = new AccessTokenValue_1.AccessTokenValue(tokenResponse.parameters[Constants_1.Constants.accessToken], idToken.rawIdToken, Utils_1.Utils.expiresIn(tokenResponse.parameters[Constants_1.Constants.expiresIn]).toString(), clientInfo);\n\n this._cacheStorage.setItem(JSON.stringify(accessTokenKey), JSON.stringify(accessTokenValue));\n } else {\n scope = this.clientId;\n var accessTokenKey = new AccessTokenKey_1.AccessTokenKey(authority, this.clientId, scope, clientObj.uid, clientObj.utid);\n var accessTokenValue = new AccessTokenValue_1.AccessTokenValue(tokenResponse.parameters[Constants_1.Constants.idToken], tokenResponse.parameters[Constants_1.Constants.idToken], idToken.expiration, clientInfo);\n\n this._cacheStorage.setItem(JSON.stringify(accessTokenKey), JSON.stringify(accessTokenValue));\n }\n };\n /*\r\n * Saves token or error received in the response from AAD in the cache. In case of id_token, it also creates the user object.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.saveTokenFromHash = function (tokenResponse) {\n this._logger.info(\"State status:\" + tokenResponse.stateMatch + \"; Request type:\" + tokenResponse.requestType);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalError, \"\");\n\n this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, \"\");\n\n var scope = \"\";\n var authorityKey = \"\";\n var acquireTokenUserKey = \"\";\n\n if (tokenResponse.parameters.hasOwnProperty(\"scope\")) {\n scope = tokenResponse.parameters[\"scope\"].toLowerCase();\n } else {\n scope = this.clientId;\n } // Record error\n\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.errorDescription) || tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.error)) {\n this._logger.infoPii(\"Error :\" + tokenResponse.parameters[Constants_1.Constants.error] + \"; Error description:\" + tokenResponse.parameters[Constants_1.Constants.errorDescription]);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalError, tokenResponse.parameters[\"error\"]);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, tokenResponse.parameters[Constants_1.Constants.errorDescription]);\n\n if (tokenResponse.requestType === Constants_1.Constants.login) {\n this._loginInProgress = false;\n\n this._cacheStorage.setItem(Constants_1.Constants.loginError, tokenResponse.parameters[Constants_1.Constants.errorDescription] + \":\" + tokenResponse.parameters[Constants_1.Constants.error]);\n\n authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n }\n\n if (tokenResponse.requestType === Constants_1.Constants.renewToken) {\n this._acquireTokenInProgress = false;\n authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n var userKey = this.getUser() !== null ? this.getUser().userIdentifier : \"\";\n acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + userKey + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n }\n } else {\n // It must verify the state from redirect\n if (tokenResponse.stateMatch) {\n // record tokens to storage if exists\n this._logger.info(\"State is right\");\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.sessionState)) {\n this._cacheStorage.setItem(Constants_1.Constants.msalSessionState, tokenResponse.parameters[Constants_1.Constants.sessionState]);\n }\n\n var idToken;\n var clientInfo = \"\";\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.accessToken)) {\n this._logger.info(\"Fragment has access token\");\n\n this._acquireTokenInProgress = false;\n var user = void 0;\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.idToken)) {\n idToken = new IdToken_1.IdToken(tokenResponse.parameters[Constants_1.Constants.idToken]);\n } else {\n idToken = new IdToken_1.IdToken(this._cacheStorage.getItem(Constants_1.Constants.idTokenKey));\n }\n\n authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n var authority = void 0;\n\n if (!Utils_1.Utils.isEmpty(this._cacheStorage.getItem(authorityKey))) {\n authority = this._cacheStorage.getItem(authorityKey);\n authority = Utils_1.Utils.replaceFirstPath(authority, idToken.tenantId);\n }\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.clientInfo)) {\n clientInfo = tokenResponse.parameters[Constants_1.Constants.clientInfo];\n user = User_1.User.createUser(idToken, new ClientInfo_1.ClientInfo(clientInfo), authority);\n } else {\n this._logger.warning(\"ClientInfo not received in the response from AAD\");\n\n user = User_1.User.createUser(idToken, new ClientInfo_1.ClientInfo(clientInfo), authority);\n }\n\n acquireTokenUserKey = Constants_1.Constants.acquireTokenUser + Constants_1.Constants.resourceDelimeter + user.userIdentifier + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n var acquireTokenUser = void 0;\n\n if (!Utils_1.Utils.isEmpty(this._cacheStorage.getItem(acquireTokenUserKey))) {\n acquireTokenUser = JSON.parse(this._cacheStorage.getItem(acquireTokenUserKey));\n\n if (user && acquireTokenUser && Utils_1.Utils.compareObjects(user, acquireTokenUser)) {\n this.saveAccessToken(authority, tokenResponse, user, clientInfo, idToken);\n\n this._logger.info(\"The user object received in the response is the same as the one passed in the acquireToken request\");\n } else {\n this._logger.warning(\"The user object created from the response is not the same as the one passed in the acquireToken request\");\n }\n }\n }\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.idToken)) {\n if (scope.indexOf(this.clientId) > -1) {\n this._logger.info(\"Fragment has id token\");\n\n this._loginInProgress = false;\n idToken = new IdToken_1.IdToken(tokenResponse.parameters[Constants_1.Constants.idToken]);\n\n if (tokenResponse.parameters.hasOwnProperty(Constants_1.Constants.clientInfo)) {\n clientInfo = tokenResponse.parameters[Constants_1.Constants.clientInfo];\n } else {\n this._logger.warning(\"ClientInfo not received in the response from AAD\");\n }\n\n authorityKey = Constants_1.Constants.authority + Constants_1.Constants.resourceDelimeter + tokenResponse.stateResponse;\n var authority = void 0;\n\n if (!Utils_1.Utils.isEmpty(this._cacheStorage.getItem(authorityKey))) {\n authority = this._cacheStorage.getItem(authorityKey);\n authority = Utils_1.Utils.replaceFirstPath(authority, idToken.tenantId);\n }\n\n this._user = User_1.User.createUser(idToken, new ClientInfo_1.ClientInfo(clientInfo), authority);\n\n if (idToken && idToken.nonce) {\n if (idToken.nonce !== this._cacheStorage.getItem(Constants_1.Constants.nonceIdToken)) {\n this._user = null;\n\n this._cacheStorage.setItem(Constants_1.Constants.loginError, \"Nonce Mismatch. Expected Nonce: \" + this._cacheStorage.getItem(Constants_1.Constants.nonceIdToken) + \",\" + \"Actual Nonce: \" + idToken.nonce);\n\n this._logger.error(\"Nonce Mismatch.Expected Nonce: \" + this._cacheStorage.getItem(Constants_1.Constants.nonceIdToken) + \",\" + \"Actual Nonce: \" + idToken.nonce);\n } else {\n this._cacheStorage.setItem(Constants_1.Constants.idTokenKey, tokenResponse.parameters[Constants_1.Constants.idToken]);\n\n this._cacheStorage.setItem(Constants_1.Constants.msalClientInfo, clientInfo); // Save idToken as access token for app itself\n\n\n this.saveAccessToken(authority, tokenResponse, this._user, clientInfo, idToken);\n }\n } else {\n authorityKey = tokenResponse.stateResponse;\n acquireTokenUserKey = tokenResponse.stateResponse;\n\n this._logger.error(\"Invalid id_token received in the response\");\n\n tokenResponse.parameters['error'] = 'invalid idToken';\n tokenResponse.parameters['error_description'] = 'Invalid idToken. idToken: ' + tokenResponse.parameters[Constants_1.Constants.idToken];\n\n this._cacheStorage.setItem(Constants_1.Constants.msalError, \"invalid idToken\");\n\n this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, \"Invalid idToken. idToken: \" + tokenResponse.parameters[Constants_1.Constants.idToken]);\n }\n }\n }\n } else {\n authorityKey = tokenResponse.stateResponse;\n acquireTokenUserKey = tokenResponse.stateResponse;\n\n this._logger.error(\"State Mismatch.Expected State: \" + this._cacheStorage.getItem(Constants_1.Constants.stateLogin) + \",\" + \"Actual State: \" + tokenResponse.stateResponse);\n\n tokenResponse.parameters['error'] = 'Invalid_state';\n tokenResponse.parameters['error_description'] = 'Invalid_state. state: ' + tokenResponse.stateResponse;\n\n this._cacheStorage.setItem(Constants_1.Constants.msalError, \"Invalid_state\");\n\n this._cacheStorage.setItem(Constants_1.Constants.msalErrorDescription, \"Invalid_state. state: \" + tokenResponse.stateResponse);\n }\n }\n\n this._cacheStorage.setItem(Constants_1.Constants.renewStatus + tokenResponse.stateResponse, Constants_1.Constants.tokenRenewStatusCompleted);\n\n this._cacheStorage.removeAcquireTokenEntries(authorityKey, acquireTokenUserKey);\n };\n /*\r\n * Checks if the redirect response is received from the STS. In case of redirect, the url fragment has either id_token, access_token or error.\r\n * @param {string} hash - Hash passed from redirect page.\r\n * @returns {Boolean} - true if response contains id_token, access_token or error, false otherwise.\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.isCallback = function (hash) {\n hash = this.getHash(hash);\n var parameters = Utils_1.Utils.deserialize(hash);\n return parameters.hasOwnProperty(Constants_1.Constants.errorDescription) || parameters.hasOwnProperty(Constants_1.Constants.error) || parameters.hasOwnProperty(Constants_1.Constants.accessToken) || parameters.hasOwnProperty(Constants_1.Constants.idToken);\n };\n /*\r\n * Returns the anchor part(#) of the URL\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getHash = function (hash) {\n if (hash.indexOf(\"#/\") > -1) {\n hash = hash.substring(hash.indexOf(\"#/\") + 2);\n } else if (hash.indexOf(\"#\") > -1) {\n hash = hash.substring(1);\n }\n\n return hash;\n };\n /*\r\n * Creates a requestInfo object from the URL fragment and returns it.\r\n * @param {string} hash - Hash passed from redirect page\r\n * @returns {TokenResponse} an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getRequestInfo = function (hash) {\n hash = this.getHash(hash);\n var parameters = Utils_1.Utils.deserialize(hash);\n var tokenResponse = new RequestInfo_1.TokenResponse();\n\n if (parameters) {\n tokenResponse.parameters = parameters;\n\n if (parameters.hasOwnProperty(Constants_1.Constants.errorDescription) || parameters.hasOwnProperty(Constants_1.Constants.error) || parameters.hasOwnProperty(Constants_1.Constants.accessToken) || parameters.hasOwnProperty(Constants_1.Constants.idToken)) {\n tokenResponse.valid = true; // which call\n\n var stateResponse = void 0;\n\n if (parameters.hasOwnProperty(\"state\")) {\n stateResponse = parameters.state;\n } else {\n return tokenResponse;\n }\n\n tokenResponse.stateResponse = stateResponse; // async calls can fire iframe and login request at the same time if developer does not use the API as expected\n // incoming callback needs to be looked up to find the request type\n\n if (stateResponse === this._cacheStorage.getItem(Constants_1.Constants.stateLogin)) {\n // loginRedirect\n tokenResponse.requestType = Constants_1.Constants.login;\n tokenResponse.stateMatch = true;\n return tokenResponse;\n } else if (stateResponse === this._cacheStorage.getItem(Constants_1.Constants.stateAcquireToken)) {\n //acquireTokenRedirect\n tokenResponse.requestType = Constants_1.Constants.renewToken;\n tokenResponse.stateMatch = true;\n return tokenResponse;\n } // external api requests may have many renewtoken requests for different resource\n\n\n if (!tokenResponse.stateMatch) {\n tokenResponse.requestType = window.requestType;\n var statesInParentContext = window.renewStates;\n\n for (var i = 0; i < statesInParentContext.length; i++) {\n if (statesInParentContext[i] === tokenResponse.stateResponse) {\n tokenResponse.stateMatch = true;\n break;\n }\n }\n }\n }\n }\n\n return tokenResponse;\n };\n /*\r\n * Extracts scope value from the state sent with the authentication request.\r\n * @returns {string} scope.\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.getScopeFromState = function (state) {\n if (state) {\n var splitIndex = state.indexOf(\"|\");\n\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\n return state.substring(splitIndex + 1);\n }\n }\n\n return \"\";\n };\n /*\r\n * Returns whether current window is in ifram for token renewal\r\n * @ignore\r\n * @hidden\r\n */\n\n\n UserAgentApplication.prototype.isInIframe = function () {\n return window.parent !== window;\n };\n\n UserAgentApplication.prototype.loginInProgress = function () {\n var pendingCallback = this._cacheStorage.getItem(Constants_1.Constants.urlHash);\n\n if (pendingCallback) return true;\n return this._loginInProgress;\n };\n\n UserAgentApplication.prototype.getHostFromUri = function (uri) {\n // remove http:// or https:// from uri\n var extractedUri = String(uri).replace(/^(https?:)\\/\\//, '');\n extractedUri = extractedUri.split('/')[0];\n return extractedUri;\n };\n\n UserAgentApplication.prototype.getScopesForEndpoint = function (endpoint) {\n // if user specified list of anonymous endpoints, no need to send token to these endpoints, return null.\n if (this._anonymousEndpoints.length > 0) {\n for (var i = 0; i < this._anonymousEndpoints.length; i++) {\n if (endpoint.indexOf(this._anonymousEndpoints[i]) > -1) {\n return null;\n }\n }\n }\n\n if (this._endpoints.size > 0) {\n for (var _i = 0, _a = Array.from(this._endpoints.keys()); _i < _a.length; _i++) {\n var key = _a[_i]; // configEndpoint is like /api/Todo requested endpoint can be /api/Todo/1\n\n if (endpoint.indexOf(key) > -1) {\n return this._endpoints.get(key);\n }\n }\n } // default resource will be clientid if nothing specified\n // App will use idtoken for calls to itself\n // check if it's staring from http or https, needs to match with app host\n\n\n if (endpoint.indexOf('http://') > -1 || endpoint.indexOf('https://') > -1) {\n if (this.getHostFromUri(endpoint) === this.getHostFromUri(this._redirectUri)) {\n return new Array(this.clientId);\n }\n } else {\n // in angular level, the url for $http interceptor call could be relative url,\n // if it's relative call, we'll treat it as app backend call. \n return new Array(this.clientId);\n } // if not the app's own backend or not a domain listed in the endpoints structure\n\n\n return null;\n }; //These APIS are exposed for msalAngular wrapper only\n\n\n UserAgentApplication.prototype.setloginInProgress = function (loginInProgress) {\n this._loginInProgress = loginInProgress;\n };\n\n UserAgentApplication.prototype.getAcquireTokenInProgress = function () {\n return this._acquireTokenInProgress;\n };\n\n UserAgentApplication.prototype.setAcquireTokenInProgress = function (acquireTokenInProgress) {\n this._acquireTokenInProgress = acquireTokenInProgress;\n };\n\n UserAgentApplication.prototype.getLogger = function () {\n return this._logger;\n };\n\n tslib_1.__decorate([resolveTokenOnlyIfOutOfIframe], UserAgentApplication.prototype, \"acquireTokenSilent\", null);\n\n return UserAgentApplication;\n}();\n\nexports.UserAgentApplication = UserAgentApplication;","\"use strict\";\n/*\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n/*\r\n * @hidden\r\n */\n\n\nvar AccessTokenKey =\n/** @class */\nfunction () {\n function AccessTokenKey(authority, clientId, scopes, uid, utid) {\n this.authority = authority;\n this.clientId = clientId;\n this.scopes = scopes;\n this.userIdentifier = Utils_1.Utils.base64EncodeStringUrlSafe(uid) + \".\" + Utils_1.Utils.base64EncodeStringUrlSafe(utid);\n }\n\n return AccessTokenKey;\n}();\n\nexports.AccessTokenKey = AccessTokenKey;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar AccessTokenValue =\n/** @class */\nfunction () {\n function AccessTokenValue(accessToken, idToken, expiresIn, clientInfo) {\n this.accessToken = accessToken;\n this.idToken = idToken;\n this.expiresIn = expiresIn;\n this.clientInfo = clientInfo;\n }\n\n return AccessTokenValue;\n}();\n\nexports.AccessTokenValue = AccessTokenValue;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n/*\r\n * @hidden\r\n */\n\n\nvar AuthenticationRequestParameters =\n/** @class */\nfunction () {\n function AuthenticationRequestParameters(authority, clientId, scope, responseType, redirectUri) {\n this.authorityInstance = authority;\n this.clientId = clientId;\n this.scopes = scope;\n this.responseType = responseType;\n this.redirectUri = redirectUri; // randomly generated values\n\n this.correlationId = Utils_1.Utils.createNewGuid();\n this.state = Utils_1.Utils.createNewGuid();\n this.nonce = Utils_1.Utils.createNewGuid(); // telemetry information\n\n this.xClientSku = \"MSAL.JS\";\n this.xClientVer = Utils_1.Utils.getLibraryVersion();\n }\n\n Object.defineProperty(AuthenticationRequestParameters.prototype, \"authority\", {\n get: function get() {\n return this.authorityInstance.CanonicalAuthority;\n },\n enumerable: true,\n configurable: true\n });\n\n AuthenticationRequestParameters.prototype.createNavigateUrl = function (scopes) {\n if (!scopes) {\n scopes = [this.clientId];\n }\n\n if (scopes.indexOf(this.clientId) === -1) {\n scopes.push(this.clientId);\n }\n\n var str = [];\n str.push(\"response_type=\" + this.responseType);\n this.translateclientIdUsedInScope(scopes);\n str.push(\"scope=\" + encodeURIComponent(this.parseScope(scopes)));\n str.push(\"client_id=\" + encodeURIComponent(this.clientId));\n str.push(\"redirect_uri=\" + encodeURIComponent(this.redirectUri));\n str.push(\"state=\" + encodeURIComponent(this.state));\n str.push(\"nonce=\" + encodeURIComponent(this.nonce));\n str.push(\"client_info=1\");\n str.push(\"x-client-SKU=\" + this.xClientSku);\n str.push(\"x-client-Ver=\" + this.xClientVer);\n\n if (this.extraQueryParameters) {\n str.push(this.extraQueryParameters);\n }\n\n str.push(\"client-request-id=\" + encodeURIComponent(this.correlationId));\n var authEndpoint = this.authorityInstance.AuthorizationEndpoint; // if the endpoint already has queryparams, lets add to it, otherwise add the first one\n\n if (authEndpoint.indexOf(\"?\") < 0) {\n authEndpoint += \"?\";\n } else {\n authEndpoint += \"&\";\n }\n\n var requestUrl = \"\" + authEndpoint + str.join(\"&\");\n return requestUrl;\n };\n\n AuthenticationRequestParameters.prototype.translateclientIdUsedInScope = function (scopes) {\n var clientIdIndex = scopes.indexOf(this.clientId);\n\n if (clientIdIndex >= 0) {\n scopes.splice(clientIdIndex, 1);\n\n if (scopes.indexOf(\"openid\") === -1) {\n scopes.push(\"openid\");\n }\n\n if (scopes.indexOf(\"profile\") === -1) {\n scopes.push(\"profile\");\n }\n }\n };\n\n AuthenticationRequestParameters.prototype.parseScope = function (scopes) {\n var scopeList = \"\";\n\n if (scopes) {\n for (var i = 0; i < scopes.length; ++i) {\n scopeList += i !== scopes.length - 1 ? scopes[i] + \" \" : scopes[i];\n }\n }\n\n return scopeList;\n };\n\n return AuthenticationRequestParameters;\n}();\n\nexports.AuthenticationRequestParameters = AuthenticationRequestParameters;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n/*\r\n * @hidden\r\n */\n\n\nvar ClientInfo =\n/** @class */\nfunction () {\n function ClientInfo(rawClientInfo) {\n if (!rawClientInfo || Utils_1.Utils.isEmpty(rawClientInfo)) {\n this.uid = \"\";\n this.utid = \"\";\n return;\n }\n\n try {\n var decodedClientInfo = Utils_1.Utils.base64DecodeStringUrlSafe(rawClientInfo);\n var clientInfo = JSON.parse(decodedClientInfo);\n\n if (clientInfo) {\n if (clientInfo.hasOwnProperty(\"uid\")) {\n this.uid = clientInfo.uid;\n }\n\n if (clientInfo.hasOwnProperty(\"utid\")) {\n this.utid = clientInfo.utid;\n }\n }\n } catch (e) {\n throw new Error(e);\n }\n }\n\n Object.defineProperty(ClientInfo.prototype, \"uid\", {\n get: function get() {\n return this._uid ? this._uid : \"\";\n },\n set: function set(uid) {\n this._uid = uid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ClientInfo.prototype, \"utid\", {\n get: function get() {\n return this._utid ? this._utid : \"\";\n },\n set: function set(utid) {\n this._utid = utid;\n },\n enumerable: true,\n configurable: true\n });\n return ClientInfo;\n}();\n\nexports.ClientInfo = ClientInfo;","\"use strict\";\n/*\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Utils_1 = require(\"./Utils\");\n/*\r\n * @hidden\r\n */\n\n\nvar IdToken =\n/** @class */\nfunction () {\n function IdToken(rawIdToken) {\n if (Utils_1.Utils.isEmpty(rawIdToken)) {\n throw new Error(\"null or empty raw idtoken\");\n }\n\n try {\n this.rawIdToken = rawIdToken;\n this.decodedIdToken = Utils_1.Utils.extractIdToken(rawIdToken);\n\n if (this.decodedIdToken) {\n if (this.decodedIdToken.hasOwnProperty(\"iss\")) {\n this.issuer = this.decodedIdToken[\"iss\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"oid\")) {\n this.objectId = this.decodedIdToken['oid'];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"sub\")) {\n this.subject = this.decodedIdToken[\"sub\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"tid\")) {\n this.tenantId = this.decodedIdToken[\"tid\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"ver\")) {\n this.version = this.decodedIdToken[\"ver\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"preferred_username\")) {\n this.preferredName = this.decodedIdToken[\"preferred_username\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"name\")) {\n this.name = this.decodedIdToken[\"name\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"nonce\")) {\n this.nonce = this.decodedIdToken[\"nonce\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"exp\")) {\n this.expiration = this.decodedIdToken[\"exp\"];\n }\n\n if (this.decodedIdToken.hasOwnProperty(\"home_oid\")) {\n this.homeObjectId = this.decodedIdToken[\"home_oid\"];\n }\n }\n } catch (e) {\n throw new Error(\"Failed to parse the returned id token\");\n }\n }\n\n return IdToken;\n}();\n\nexports.IdToken = IdToken;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Constants_1 = require(\"./Constants\");\n\nvar AccessTokenCacheItem_1 = require(\"./AccessTokenCacheItem\");\n/*\r\n * @hidden\r\n */\n\n\nvar Storage =\n/** @class */\nfunction () {\n function Storage(cacheLocation) {\n if (Storage._instance) {\n return Storage._instance;\n }\n\n this._cacheLocation = cacheLocation;\n this._localStorageSupported = typeof window[this._cacheLocation] !== \"undefined\" && window[this._cacheLocation] != null;\n this._sessionStorageSupported = typeof window[cacheLocation] !== \"undefined\" && window[cacheLocation] != null;\n Storage._instance = this;\n\n if (!this._localStorageSupported && !this._sessionStorageSupported) {\n throw new Error(\"localStorage and sessionStorage not supported\");\n }\n\n return Storage._instance;\n } // add value to storage\n\n\n Storage.prototype.setItem = function (key, value) {\n if (window[this._cacheLocation]) {\n window[this._cacheLocation].setItem(key, value);\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n }; // get one item by key from storage\n\n\n Storage.prototype.getItem = function (key) {\n if (window[this._cacheLocation]) {\n return window[this._cacheLocation].getItem(key);\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n }; // remove value from storage\n\n\n Storage.prototype.removeItem = function (key) {\n if (window[this._cacheLocation]) {\n return window[this._cacheLocation].removeItem(key);\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n }; // clear storage (remove all items from it)\n\n\n Storage.prototype.clear = function () {\n if (window[this._cacheLocation]) {\n return window[this._cacheLocation].clear();\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n };\n\n Storage.prototype.getAllAccessTokens = function (clientId, userIdentifier) {\n var results = [];\n var accessTokenCacheItem;\n var storage = window[this._cacheLocation];\n\n if (storage) {\n var key = void 0;\n\n for (key in storage) {\n if (storage.hasOwnProperty(key)) {\n if (key.match(clientId) && key.match(userIdentifier)) {\n var value = this.getItem(key);\n\n if (value) {\n accessTokenCacheItem = new AccessTokenCacheItem_1.AccessTokenCacheItem(JSON.parse(key), JSON.parse(value));\n results.push(accessTokenCacheItem);\n }\n }\n }\n }\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n\n return results;\n };\n\n Storage.prototype.removeAcquireTokenEntries = function (authorityKey, acquireTokenUserKey) {\n var storage = window[this._cacheLocation];\n\n if (storage) {\n var key = void 0;\n\n for (key in storage) {\n if (storage.hasOwnProperty(key)) {\n if (authorityKey != \"\" && key.indexOf(authorityKey) > -1 || acquireTokenUserKey != \"\" && key.indexOf(acquireTokenUserKey) > -1) {\n this.removeItem(key);\n }\n }\n }\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n };\n\n Storage.prototype.resetCacheItems = function () {\n var storage = window[this._cacheLocation];\n\n if (storage) {\n var key = void 0;\n\n for (key in storage) {\n if (storage.hasOwnProperty(key) && key.indexOf(Constants_1.Constants.msal) !== -1) {\n this.setItem(key, \"\");\n }\n\n if (storage.hasOwnProperty(key) && key.indexOf(Constants_1.Constants.renewStatus) !== -1) this.removeItem(key);\n }\n } else {\n throw new Error(\"localStorage and sessionStorage are not supported\");\n }\n };\n\n return Storage;\n}();\n\nexports.Storage = Storage;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar AccessTokenCacheItem =\n/** @class */\nfunction () {\n function AccessTokenCacheItem(key, value) {\n this.key = key;\n this.value = value;\n }\n\n return AccessTokenCacheItem;\n}();\n\nexports.AccessTokenCacheItem = AccessTokenCacheItem;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * @hidden\r\n */\n\nvar Utils_1 = require(\"./Utils\");\n\nvar AadAuthority_1 = require(\"./AadAuthority\");\n\nvar B2cAuthority_1 = require(\"./B2cAuthority\");\n\nvar Authority_1 = require(\"./Authority\");\n\nvar ErrorMessage_1 = require(\"./ErrorMessage\");\n\nvar AuthorityFactory =\n/** @class */\nfunction () {\n function AuthorityFactory() {}\n /*\r\n * Parse the url and determine the type of authority\r\n */\n\n\n AuthorityFactory.DetectAuthorityFromUrl = function (authorityUrl) {\n authorityUrl = Utils_1.Utils.CanonicalizeUri(authorityUrl);\n var components = Utils_1.Utils.GetUrlComponents(authorityUrl);\n var pathSegments = components.PathSegments;\n\n switch (pathSegments[0]) {\n case \"tfp\":\n return Authority_1.AuthorityType.B2C;\n\n case \"adfs\":\n return Authority_1.AuthorityType.Adfs;\n\n default:\n return Authority_1.AuthorityType.Aad;\n }\n };\n /*\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (eg aad, b2c)\r\n */\n\n\n AuthorityFactory.CreateInstance = function (authorityUrl, validateAuthority) {\n var type = AuthorityFactory.DetectAuthorityFromUrl(authorityUrl); // Depending on above detection, create the right type.\n\n switch (type) {\n case Authority_1.AuthorityType.B2C:\n return new B2cAuthority_1.B2cAuthority(authorityUrl, validateAuthority);\n\n case Authority_1.AuthorityType.Aad:\n return new AadAuthority_1.AadAuthority(authorityUrl, validateAuthority);\n\n default:\n throw ErrorMessage_1.ErrorMessage.invalidAuthorityType;\n }\n };\n\n return AuthorityFactory;\n}();\n\nexports.AuthorityFactory = AuthorityFactory;","\"use strict\";\n/**\r\n * Copyright (c) Microsoft Corporation\r\n * All Rights Reserved\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the 'Software'), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\r\n * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT\r\n * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar AadAuthority_1 = require(\"./AadAuthority\");\n\nvar Authority_1 = require(\"./Authority\");\n\nvar ErrorMessage_1 = require(\"./ErrorMessage\");\n\nvar Utils_1 = require(\"./Utils\");\n/*\r\n * @hidden\r\n */\n\n\nvar B2cAuthority =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(B2cAuthority, _super);\n\n function B2cAuthority(authority, validateAuthority) {\n var _this = _super.call(this, authority, validateAuthority) || this;\n\n var urlComponents = Utils_1.Utils.GetUrlComponents(authority);\n var pathSegments = urlComponents.PathSegments;\n\n if (pathSegments.length < 3) {\n throw ErrorMessage_1.ErrorMessage.b2cAuthorityUriInvalidPath;\n }\n\n _this.CanonicalAuthority = \"https://\" + urlComponents.HostNameAndPort + \"/\" + pathSegments[0] + \"/\" + pathSegments[1] + \"/\" + pathSegments[2] + \"/\";\n return _this;\n }\n\n Object.defineProperty(B2cAuthority.prototype, \"AuthorityType\", {\n get: function get() {\n return Authority_1.AuthorityType.B2C;\n },\n enumerable: true,\n configurable: true\n });\n /*\r\n * Returns a promise with the TenantDiscoveryEndpoint\r\n */\n\n B2cAuthority.prototype.GetOpenIdConfigurationEndpointAsync = function () {\n var _this = this;\n\n var resultPromise = new Promise(function (resolve, reject) {\n return resolve(_this.DefaultOpenIdConfigurationEndpoint);\n });\n\n if (!this.IsValidationEnabled) {\n return resultPromise;\n }\n\n if (this.IsInTrustedHostList(this.CanonicalAuthorityUrlComponents.HostNameAndPort)) {\n return resultPromise;\n }\n\n return new Promise(function (resolve, reject) {\n return reject(ErrorMessage_1.ErrorMessage.unsupportedAuthorityValidation);\n });\n };\n\n return B2cAuthority;\n}(AadAuthority_1.AadAuthority);\n\nexports.B2cAuthority = B2cAuthority;","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\", \"./loader\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"), require(\"./loader\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes, global.loader);\n global.index = mod.exports;\n }\n})(this, function (exports, _react, _propTypes, _loader) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = Loader;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var componentNames = [\"Audio\", \"BallTriangle\", \"Bars\", \"Circles\", \"Grid\", \"Hearts\", \"Oval\", \"Puff\", \"Rings\", \"TailSpin\", \"ThreeDots\", \"Watch\", \"RevolvingDot\", \"Triangle\", \"Plane\", \"MutatingDots\", \"CradleLoader\"];\n\n function componentName(type) {\n if (componentNames.includes(type)) {\n return _loader.Spinner[type];\n }\n\n return _loader.Spinner.Audio;\n }\n /**\n * @return {null}\n */\n\n\n function Loader(props) {\n var _useState = (0, _react.useState)(true),\n _useState2 = _slicedToArray(_useState, 2),\n display = _useState2[0],\n setDisplay = _useState2[1];\n\n (0, _react.useEffect)(function () {\n var timer = void 0;\n\n if (props.timeout && props.timeout > 0) {\n timer = setTimeout(function () {\n setDisplay(false);\n }, props.timeout);\n }\n\n return function () {\n if (timer) clearTimeout(timer);\n };\n });\n\n if (!props.visible || props.visible === \"false\") {\n return null;\n }\n\n return display ? _react2.default.createElement(\"div\", {\n \"aria-busy\": \"true\",\n className: props.className,\n style: props.style\n }, _react2.default.createElement(componentName(props.type), _extends({}, props))) : null;\n }\n\n Loader.propTypes = {\n type: _propTypes2.default.oneOf([].concat(componentNames)),\n style: _propTypes2.default.objectOf(_propTypes2.default.string),\n className: _propTypes2.default.string,\n visible: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n timeout: _propTypes2.default.number\n };\n Loader.defaultProps = {\n type: \"Audio\",\n style: {},\n className: \"\",\n visible: true,\n timeout: 0\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"./Circles\", \"./Watch\", \"./Audio\", \"./BallTriangle\", \"./Bars\", \"./CradleLoader\", \"./Grid\", \"./Hearts\", \"./MutatingDots\", \"./Oval\", \"./Plane\", \"./Puff\", \"./RevolvingDot\", \"./Rings\", \"./TailSpin\", \"./ThreeDots\", \"./Triangle\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"./Circles\"), require(\"./Watch\"), require(\"./Audio\"), require(\"./BallTriangle\"), require(\"./Bars\"), require(\"./CradleLoader\"), require(\"./Grid\"), require(\"./Hearts\"), require(\"./MutatingDots\"), require(\"./Oval\"), require(\"./Plane\"), require(\"./Puff\"), require(\"./RevolvingDot\"), require(\"./Rings\"), require(\"./TailSpin\"), require(\"./ThreeDots\"), require(\"./Triangle\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.Circles, global.Watch, global.Audio, global.BallTriangle, global.Bars, global.CradleLoader, global.Grid, global.Hearts, global.MutatingDots, global.Oval, global.Plane, global.Puff, global.RevolvingDot, global.Rings, global.TailSpin, global.ThreeDots, global.Triangle);\n global.index = mod.exports;\n }\n})(this, function (exports, _Circles, _Watch, _Audio, _BallTriangle, _Bars, _CradleLoader, _Grid, _Hearts, _MutatingDots, _Oval, _Plane, _Puff, _RevolvingDot, _Rings, _TailSpin, _ThreeDots, _Triangle) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Spinner = undefined;\n var Spinner = exports.Spinner = {\n Circles: _Circles.Circles,\n Audio: _Audio.Audio,\n BallTriangle: _BallTriangle.BallTriangle,\n Bars: _Bars.Bars,\n CradleLoader: _CradleLoader.CradleLoader,\n Grid: _Grid.Grid,\n Hearts: _Hearts.Hearts,\n MutatingDots: _MutatingDots.MutatingDots,\n Oval: _Oval.Oval,\n Plane: _Plane.Plane,\n Puff: _Puff.Puff,\n RevolvingDot: _RevolvingDot.RevolvingDot,\n Rings: _Rings.Rings,\n TailSpin: _TailSpin.TailSpin,\n ThreeDots: _ThreeDots.ThreeDots,\n Triangle: _Triangle.Triangle,\n Watch: _Watch.Watch\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Circles = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Circles = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Circles = exports.Circles = function Circles(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 135 135\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"path\", {\n d: \"M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 67 67\",\n to: \"-360 67 67\",\n dur: \"2.5s\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"path\", {\n d: \"M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 67 67\",\n to: \"360 67 67\",\n dur: \"8s\",\n repeatCount: \"indefinite\"\n })));\n };\n\n Circles.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Circles.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Watch = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Watch = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Watch = exports.Watch = function Watch(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n version: \"1.1\",\n id: \"L2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 100 100\",\n enableBackground: \"new 0 0 100 100\",\n xmlSpace: \"preserve\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"circle\", {\n fill: \"none\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n cx: \"50\",\n cy: \"50\",\n r: \"48\"\n }), _react2.default.createElement(\"line\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n x1: \"50\",\n y1: \"50\",\n x2: \"85\",\n y2: \"50.5\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"2s\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"360 50 50\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"line\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n x1: \"50\",\n y1: \"50\",\n x2: \"49.5\",\n y2: \"74\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"15s\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"360 50 50\",\n repeatCount: \"indefinite\"\n })));\n };\n\n Watch.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Watch.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Audio = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Audio = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Audio = exports.Audio = function Audio(props) {\n return _react2.default.createElement(\"svg\", {\n height: props.height,\n width: props.width,\n fill: props.color,\n viewBox: \"0 0 55 80\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"g\", {\n transform: \"matrix(1 0 0 -1 0 80)\"\n }, _react2.default.createElement(\"rect\", {\n width: \"10\",\n height: \"20\",\n rx: \"3\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"4.3s\",\n values: \"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"15\",\n width: \"10\",\n height: \"80\",\n rx: \"3\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"2s\",\n values: \"80;55;33;5;75;23;73;33;12;14;60;80\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"30\",\n width: \"10\",\n height: \"50\",\n rx: \"3\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1.4s\",\n values: \"50;34;78;23;56;23;34;76;80;54;21;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"45\",\n width: \"10\",\n height: \"30\",\n rx: \"3\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"2s\",\n values: \"30;45;13;80;56;72;45;76;34;23;67;30\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }))));\n };\n\n Audio.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Audio.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.BallTriangle = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BallTriangle = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var BallTriangle = exports.BallTriangle = function BallTriangle(props) {\n return _react2.default.createElement(\"svg\", {\n height: props.height,\n width: props.width,\n stroke: props.color,\n viewBox: \"0 0 57 57\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, _react2.default.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, _react2.default.createElement(\"circle\", {\n cx: \"5\",\n cy: \"50\",\n r: \"5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"50;5;50;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"5;27;49;5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"27\",\n cy: \"5\",\n r: \"5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n from: \"5\",\n to: \"5\",\n values: \"5;50;50;5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n dur: \"2.2s\",\n from: \"27\",\n to: \"27\",\n values: \"27;49;5;27\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"49\",\n cy: \"50\",\n r: \"5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"50;50;5;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"cx\",\n from: \"49\",\n to: \"49\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"49;5;27;49\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })))));\n };\n\n BallTriangle.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n BallTriangle.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Bars = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Bars = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Bars = exports.Bars = function Bars(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n fill: props.color,\n viewBox: \"0 0 135 140\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"rect\", {\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"30\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"60\",\n width: \"15\",\n height: \"140\",\n rx: \"6\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"90\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"rect\", {\n x: \"120\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n };\n\n Bars.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Bars.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.CradleLoader = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CradleLoader = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var CradleLoader = exports.CradleLoader = function CradleLoader(props) {\n return _react2.default.createElement(\"div\", {\n \"aria-label\": props.label,\n role: \"presentation\",\n className: \"container\"\n }, _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-swing\"\n }, _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-swing-l\"\n }), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-swing-r\"\n })), _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-shadow\"\n }, _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-shadow-l\"\n }), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", null), _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-shadow-r\"\n })));\n };\n\n CradleLoader.propTypes = {\n label: _propTypes2.default.string\n };\n CradleLoader.defaultProps = {\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Grid = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Grid = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Grid = exports.Grid = function Grid(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 105 105\",\n fill: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"12.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"52.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"100ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"12.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"300ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"52.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"600ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"12.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"800ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"52.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"400ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"92.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"700ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"92.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"500ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"92.5\",\n r: \"12.5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"200ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n };\n\n Grid.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Grid.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Hearts = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Hearts = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Hearts = exports.Hearts = function Hearts(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 140 64\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"path\", {\n d: \"M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.717-6.002 11.47-7.65 17.305-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z\",\n attributeName: \"fill-opacity\",\n from: \"0\",\n to: \".5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n dur: \"1.4s\",\n values: \"0.5;1;0.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"path\", {\n d: \"M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.592-2.32 17.307 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z\",\n attributeName: \"fill-opacity\",\n from: \"0\",\n to: \".5\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0.7s\",\n dur: \"1.4s\",\n values: \"0.5;1;0.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"path\", {\n d: \"M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z\"\n }));\n };\n\n Hearts.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Hearts.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.MutatingDots = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.MutatingDots = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var MutatingDots = exports.MutatingDots = function MutatingDots(props) {\n return _react2.default.createElement(\"svg\", {\n id: \"goo-loader\",\n width: props.width,\n height: 90,\n fill: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"filter\", {\n id: \"fancy-goo\"\n }, _react2.default.createElement(\"feGaussianBlur\", {\n \"in\": \"SourceGraphic\",\n stdDeviation: \"6\",\n result: \"blur\"\n }), _react2.default.createElement(\"feColorMatrix\", {\n \"in\": \"blur\",\n mode: \"matrix\",\n values: \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9\",\n result: \"goo\"\n }), _react2.default.createElement(\"feComposite\", {\n \"in\": \"SourceGraphic\",\n in2: \"goo\",\n operator: \"atop\"\n })), _react2.default.createElement(\"g\", {\n filter: \"url(#fancy-goo)\"\n }, _react2.default.createElement(\"animateTransform\", {\n id: \"mainAnim\",\n attributeName: \"transform\",\n attributeType: \"XML\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"359 50 50\",\n dur: \"1.2s\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"circle\", {\n cx: \"50%\",\n cy: \"40\",\n r: \"11\"\n }, _react2.default.createElement(\"animate\", {\n id: \"cAnim1\",\n attributeType: \"XML\",\n attributeName: \"cy\",\n dur: \"0.6s\",\n begin: \"0;cAnim1.end+0.2s\",\n calcMode: \"spline\",\n values: \"40;20;40\",\n keyTimes: \"0;0.3;1\",\n keySplines: \"0.175, 0.885, 0.320, 1.5; 0.175, 0.885, 0.320, 1.5\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"50%\",\n cy: \"60\",\n r: \"11\"\n }, _react2.default.createElement(\"animate\", {\n id: \"cAnim2\",\n attributeType: \"XML\",\n attributeName: \"cy\",\n dur: \"0.6s\",\n begin: \"0.4s;cAnim2.end+0.2s\",\n calcMode: \"spline\",\n values: \"60;80;60\",\n keyTimes: \"0;0.3;1\",\n keySplines: \"0.175, 0.885, 0.320, 1.5;0.175, 0.885, 0.320, 1.5\"\n }))));\n };\n\n MutatingDots.propTypes = {\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n MutatingDots.defaultProps = {\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Oval = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Oval = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Oval = exports.Oval = function Oval(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, _react2.default.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, _react2.default.createElement(\"circle\", {\n strokeOpacity: \".5\",\n cx: \"18\",\n cy: \"18\",\n r: \"18\"\n }), _react2.default.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n };\n\n Oval.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Oval.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Plane = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Plane = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Plane = exports.Plane = function Plane(props) {\n return _react2.default.createElement(\"svg\", {\n className: \"react-spinner-loader-svg-calLoader\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"230\",\n height: \"230\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"desc\", null, \"Plane animation. Loading \"), _react2.default.createElement(\"path\", {\n className: \"react-spinner-loader-cal-loader__path\",\n style: {\n stroke: props.secondaryColor\n },\n d: \"M86.429 40c63.616-20.04 101.511 25.08 107.265 61.93 6.487 41.54-18.593 76.99-50.6 87.643-59.46 19.791-101.262-23.577-107.142-62.616C29.398 83.441 59.945 48.343 86.43 40z\",\n fill: \"none\",\n stroke: \"#0099cc\",\n strokeWidth: \"4\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeDasharray: \"10 10 10 10 10 10 10 432\",\n strokeDashoffset: \"77\"\n }), _react2.default.createElement(\"path\", {\n className: \"cal-loader__plane\",\n style: {\n fill: props.color\n },\n d: \"M141.493 37.93c-1.087-.927-2.942-2.002-4.32-2.501-2.259-.824-3.252-.955-9.293-1.172-4.017-.146-5.197-.23-5.47-.37-.766-.407-1.526-1.448-7.114-9.773-4.8-7.145-5.344-7.914-6.327-8.976-1.214-1.306-1.396-1.378-3.79-1.473-1.036-.04-2-.043-2.153-.002-.353.1-.87.586-1 .952-.139.399-.076.71.431 2.22.241.72 1.029 3.386 1.742 5.918 1.644 5.844 2.378 8.343 2.863 9.705.206.601.33 1.1.275 1.125-.24.097-10.56 1.066-11.014 1.032a3.532 3.532 0 0 1-1.002-.276l-.487-.246-2.044-2.613c-2.234-2.87-2.228-2.864-3.35-3.309-.717-.287-2.82-.386-3.276-.163-.457.237-.727.644-.737 1.152-.018.39.167.805 1.916 4.373 1.06 2.166 1.964 4.083 1.998 4.27.04.179.004.521-.076.75-.093.228-1.109 2.064-2.269 4.088-1.921 3.34-2.11 3.711-2.123 4.107-.008.25.061.557.168.725.328.512.72.644 1.966.676 1.32.029 2.352-.236 3.05-.762.222-.171 1.275-1.313 2.412-2.611 1.918-2.185 2.048-2.32 2.45-2.505.241-.111.601-.232.82-.271.267-.058 2.213.201 5.912.8 3.036.48 5.525.894 5.518.914 0 .026-.121.306-.27.638-.54 1.198-1.515 3.842-3.35 9.021-1.029 2.913-2.107 5.897-2.4 6.62-.703 1.748-.725 1.833-.594 2.286.137.46.45.833.872 1.012.41.177 3.823.24 4.37.085.852-.25 1.44-.688 2.312-1.724 1.166-1.39 3.169-3.948 6.771-8.661 5.8-7.583 6.561-8.49 7.387-8.702.233-.065 2.828-.056 5.784.011 5.827.138 6.64.09 8.62-.5 2.24-.67 4.035-1.65 5.517-3.016 1.136-1.054 1.135-1.014.207-1.962-.357-.38-.767-.777-.902-.893z\",\n fill: \"#000033\"\n }));\n };\n\n Plane.propTypes = {\n secondaryColor: _propTypes2.default.string,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Plane.defaultProps = {\n secondaryColor: \"grey\",\n color: \"#FFA500\",\n label: \"async-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Puff = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Puff = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Puff = exports.Puff = function Puff(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 44 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: \"2\"\n }, _react2.default.createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: \"1\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n dur: \"1.8s\",\n values: \"1; 20\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"0s\",\n dur: \"1.8s\",\n values: \"1; 0\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: \"1\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"-0.9s\",\n dur: \"1.8s\",\n values: \"1; 20\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"-0.9s\",\n dur: \"1.8s\",\n values: \"1; 0\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n repeatCount: \"indefinite\"\n }))));\n };\n\n Puff.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Puff.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.RevolvingDot = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.RevolvingDot = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var RevolvingDot = exports.RevolvingDot = function RevolvingDot(props) {\n return _react2.default.createElement(\"svg\", {\n version: \"1.1\",\n width: props.width,\n height: props.height,\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"circle\", {\n fill: \"none\",\n stroke: props.color,\n strokeWidth: \"4\",\n cx: \"50\",\n cy: \"50\",\n r: \"44\",\n style: {\n opacity: 0.5\n }\n }), _react2.default.createElement(\"circle\", {\n fill: props.color,\n stroke: props.color,\n strokeWidth: \"3\",\n cx: \"8\",\n cy: \"54\",\n r: \"6\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"2s\",\n type: \"rotate\",\n from: \"0 50 48\",\n to: \"360 50 52\",\n repeatCount: \"indefinite\"\n })));\n };\n\n RevolvingDot.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n RevolvingDot.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Rings = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Rings = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Rings = exports.Rings = function Rings(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 45 45\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, _react2.default.createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: \"6\",\n strokeOpacity: \"0\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"6;22\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"1;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"stroke-width\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"2;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: \"6\",\n strokeOpacity: \"0\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"6;22\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"1;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"strokeWidth\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"2;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: \"8\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n dur: \"1.5s\",\n values: \"6;1;2;3;4;5;6\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }))));\n };\n\n Rings.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Rings.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.TailSpin = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.TailSpin = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var TailSpin = exports.TailSpin = function TailSpin(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"defs\", null, _react2.default.createElement(\"linearGradient\", {\n x1: \"8.042%\",\n y1: \"0%\",\n x2: \"65.682%\",\n y2: \"23.865%\",\n id: \"a\"\n }, _react2.default.createElement(\"stop\", {\n stopColor: props.color,\n stopOpacity: \"0\",\n offset: \"0%\"\n }), _react2.default.createElement(\"stop\", {\n stopColor: props.color,\n stopOpacity: \".631\",\n offset: \"63.146%\"\n }), _react2.default.createElement(\"stop\", {\n stopColor: props.color,\n offset: \"100%\"\n }))), _react2.default.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, _react2.default.createElement(\"g\", {\n transform: \"translate(1 1)\"\n }, _react2.default.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\",\n id: \"Oval-2\",\n stroke: props.color,\n strokeWidth: \"2\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n fill: \"#fff\",\n cx: \"36\",\n cy: \"18\",\n r: \"1\"\n }, _react2.default.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n })))));\n };\n\n TailSpin.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n TailSpin.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.ThreeDots = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ThreeDots = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var ThreeDots = exports.ThreeDots = function ThreeDots(props) {\n return _react2.default.createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 120 30\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, _react2.default.createElement(\"circle\", {\n cx: \"15\",\n cy: \"15\",\n r: \"15\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"60\",\n cy: \"15\",\n r: \"9\",\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"0.3\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"9\",\n to: \"9\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"9;15;9\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"0.5\",\n to: \"0.5\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \".5;1;.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), _react2.default.createElement(\"circle\", {\n cx: \"105\",\n cy: \"15\",\n r: \"15\"\n }, _react2.default.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), _react2.default.createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n };\n\n ThreeDots.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n ThreeDots.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.Triangle = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Triangle = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var Triangle = exports.Triangle = function Triangle(props) {\n return _react2.default.createElement(\"div\", {\n className: \"react-spinner-loader-svg\"\n }, _react2.default.createElement(\"svg\", {\n id: \"triangle\",\n width: props.width,\n height: props.height,\n viewBox: \"-3 -4 39 39\",\n \"aria-label\": props.label\n }, _react2.default.createElement(\"polygon\", {\n fill: \"transparent\",\n stroke: props.color,\n strokeWidth: \"1\",\n points: \"16,0 32,32 0,32\"\n })));\n };\n\n Triangle.propTypes = {\n height: _propTypes2.default.number,\n width: _propTypes2.default.number,\n color: _propTypes2.default.string,\n label: _propTypes2.default.string\n };\n Triangle.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n };\n});","module.exports = function load(src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n\n if (typeof opts === 'function') {\n cb = opts;\n opts = {};\n }\n\n opts = opts || {};\n\n cb = cb || function () {};\n\n script.type = opts.type || 'text/javascript';\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true;\n script.src = src;\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs);\n }\n\n if (opts.text) {\n script.text = '' + opts.text;\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd;\n onend(script, cb); // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script);\n};\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd(script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null;\n cb(null, script);\n };\n\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null;\n cb(new Error('Failed to load ' + this.src), script);\n };\n}\n\nfunction ieOnEnd(script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return;\n this.onreadystatechange = null;\n cb(null, script); // there is no way to catch loading errors in IE8\n };\n}","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _YouTube = require(\"./YouTube\");\n\nvar _SoundCloud = require(\"./SoundCloud\");\n\nvar _Vimeo = require(\"./Vimeo\");\n\nvar _Facebook = require(\"./Facebook\");\n\nvar _Streamable = require(\"./Streamable\");\n\nvar _Wistia = require(\"./Wistia\");\n\nvar _Twitch = require(\"./Twitch\");\n\nvar _DailyMotion = require(\"./DailyMotion\");\n\nvar _Mixcloud = require(\"./Mixcloud\");\n\nvar _FilePlayer = require(\"./FilePlayer\");\n\nvar _default = [_YouTube.YouTube, _SoundCloud.SoundCloud, _Vimeo.Vimeo, _Facebook.Facebook, _Streamable.Streamable, _Wistia.Wistia, _Twitch.Twitch, _DailyMotion.DailyMotion, _Mixcloud.Mixcloud, _FilePlayer.FilePlayer];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n\n if (obj != null) {\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar ICON_SIZE = '64px';\n\nvar Preview =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Preview, _Component);\n\n function Preview() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Preview);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Preview)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n image: null\n });\n\n return _this;\n }\n\n _createClass(Preview, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n this.fetchImage(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n url = _this$props.url,\n light = _this$props.light;\n\n if (prevProps.url !== url || prevProps.light !== light) {\n this.fetchImage(this.props);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"fetchImage\",\n value: function fetchImage(_ref) {\n var _this2 = this;\n\n var url = _ref.url,\n light = _ref.light;\n\n if (typeof light === 'string') {\n this.setState({\n image: light\n });\n return;\n }\n\n this.setState({\n image: null\n });\n return window.fetch(\"https://noembed.com/embed?url=\".concat(url)).then(function (response) {\n return response.json();\n }).then(function (data) {\n if (data.thumbnail_url && _this2.mounted) {\n var image = data.thumbnail_url.replace('height=100', 'height=480');\n\n _this2.setState({\n image: image\n });\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n onClick = _this$props2.onClick,\n playIcon = _this$props2.playIcon;\n var image = this.state.image;\n var flexCenter = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n };\n var styles = {\n preview: _objectSpread({\n width: '100%',\n height: '100%',\n backgroundImage: image ? \"url(\".concat(image, \")\") : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n cursor: 'pointer'\n }, flexCenter),\n shadow: _objectSpread({\n background: 'radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)',\n borderRadius: ICON_SIZE,\n width: ICON_SIZE,\n height: ICON_SIZE\n }, flexCenter),\n playIcon: {\n borderStyle: 'solid',\n borderWidth: '16px 0 16px 26px',\n borderColor: 'transparent transparent transparent white',\n marginLeft: '7px'\n }\n };\n\n var defaultPlayIcon = _react[\"default\"].createElement(\"div\", {\n style: styles.shadow,\n className: \"react-player__shadow\"\n }, _react[\"default\"].createElement(\"div\", {\n style: styles.playIcon,\n className: \"react-player__play-icon\"\n }));\n\n return _react[\"default\"].createElement(\"div\", {\n style: styles.preview,\n className: \"react-player__preview\",\n onClick: onClick\n }, playIcon || defaultPlayIcon);\n }\n }]);\n\n return Preview;\n}(_react.Component);\n\nexports[\"default\"] = Preview;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = renderPreloadPlayers;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nvar _YouTube = require(\"./players/YouTube\");\n\nvar _SoundCloud = require(\"./players/SoundCloud\");\n\nvar _Vimeo = require(\"./players/Vimeo\");\n\nvar _DailyMotion = require(\"./players/DailyMotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar PRELOAD_PLAYERS = [{\n Player: _YouTube.YouTube,\n configKey: 'youtube',\n url: 'https://www.youtube.com/watch?v=GlCmAC4MHek'\n}, {\n Player: _SoundCloud.SoundCloud,\n configKey: 'soundcloud',\n url: 'https://soundcloud.com/seucheu/john-cage-433-8-bit-version'\n}, {\n Player: _Vimeo.Vimeo,\n configKey: 'vimeo',\n url: 'https://vimeo.com/300970506'\n}, {\n Player: _DailyMotion.DailyMotion,\n configKey: 'dailymotion',\n url: 'http://www.dailymotion.com/video/xqdpyk'\n}];\n\nfunction renderPreloadPlayers(url, controls, config) {\n var players = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = PRELOAD_PLAYERS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var player = _step.value;\n\n if (!player.Player.canPlay(url) && config[player.configKey].preload) {\n players.push(_react[\"default\"].createElement(_Player[\"default\"], {\n key: player.Player.displayName,\n activePlayer: player.Player,\n url: player.url,\n controls: controls,\n playing: true,\n muted: true,\n display: \"none\"\n }));\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return players;\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _TransitionGroup = require('./TransitionGroup');\n\nvar _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);\n\nvar _CSSTransitionGroupChild = require('./CSSTransitionGroupChild');\n\nvar _CSSTransitionGroupChild2 = _interopRequireDefault(_CSSTransitionGroupChild);\n\nvar _PropTypes = require('./utils/PropTypes');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar propTypes = {\n transitionName: _PropTypes.nameShape.isRequired,\n transitionAppear: _propTypes2.default.bool,\n transitionEnter: _propTypes2.default.bool,\n transitionLeave: _propTypes2.default.bool,\n transitionAppearTimeout: (0, _PropTypes.transitionTimeout)('Appear'),\n transitionEnterTimeout: (0, _PropTypes.transitionTimeout)('Enter'),\n transitionLeaveTimeout: (0, _PropTypes.transitionTimeout)('Leave')\n};\nvar defaultProps = {\n transitionAppear: false,\n transitionEnter: true,\n transitionLeave: true\n};\n\nvar CSSTransitionGroup = function (_React$Component) {\n _inherits(CSSTransitionGroup, _React$Component);\n\n function CSSTransitionGroup() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, CSSTransitionGroup);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._wrapChild = function (child) {\n return _react2.default.createElement(_CSSTransitionGroupChild2.default, {\n name: _this.props.transitionName,\n appear: _this.props.transitionAppear,\n enter: _this.props.transitionEnter,\n leave: _this.props.transitionLeave,\n appearTimeout: _this.props.transitionAppearTimeout,\n enterTimeout: _this.props.transitionEnterTimeout,\n leaveTimeout: _this.props.transitionLeaveTimeout\n }, child);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n } // We need to provide this childFactory so that\n // ReactCSSTransitionGroupChild can receive updates to name, enter, and\n // leave while it is leaving.\n\n\n CSSTransitionGroup.prototype.render = function render() {\n return _react2.default.createElement(_TransitionGroup2.default, _extends({}, this.props, {\n childFactory: this._wrapChild\n }));\n };\n\n return CSSTransitionGroup;\n}(_react2.default.Component);\n\nCSSTransitionGroup.displayName = 'CSSTransitionGroup';\nCSSTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nCSSTransitionGroup.defaultProps = defaultProps;\nexports.default = CSSTransitionGroup;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _chainFunction = require('chain-function');\n\nvar _chainFunction2 = _interopRequireDefault(_chainFunction);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ChildMapping = require('./utils/ChildMapping');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar propTypes = {\n component: _propTypes2.default.any,\n childFactory: _propTypes2.default.func,\n children: _propTypes2.default.node\n};\nvar defaultProps = {\n component: 'span',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n\nvar TransitionGroup = function (_React$Component) {\n _inherits(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n _classCallCheck(this, TransitionGroup);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.performAppear = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillAppear) {\n component.componentWillAppear(_this._handleDoneAppearing.bind(_this, key, component));\n } else {\n _this._handleDoneAppearing(key, component);\n }\n };\n\n _this._handleDoneAppearing = function (key, component) {\n if (component.componentDidAppear) {\n component.componentDidAppear();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n // This was removed before it had fully appeared. Remove it.\n _this.performLeave(key, component);\n }\n };\n\n _this.performEnter = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillEnter) {\n component.componentWillEnter(_this._handleDoneEntering.bind(_this, key, component));\n } else {\n _this._handleDoneEntering(key, component);\n }\n };\n\n _this._handleDoneEntering = function (key, component) {\n if (component.componentDidEnter) {\n component.componentDidEnter();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n // This was removed before it had fully entered. Remove it.\n _this.performLeave(key, component);\n }\n };\n\n _this.performLeave = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillLeave) {\n component.componentWillLeave(_this._handleDoneLeaving.bind(_this, key, component));\n } else {\n // Note that this is somewhat dangerous b/c it calls setState()\n // again, effectively mutating the component before all the work\n // is done.\n _this._handleDoneLeaving(key, component);\n }\n };\n\n _this._handleDoneLeaving = function (key, component) {\n if (component.componentDidLeave) {\n component.componentDidLeave();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {\n // This entered again before it fully left. Add it again.\n _this.keysToEnter.push(key);\n } else {\n _this.setState(function (state) {\n var newChildren = _extends({}, state.children);\n\n delete newChildren[key];\n return {\n children: newChildren\n };\n });\n }\n };\n\n _this.childRefs = Object.create(null);\n _this.state = {\n children: (0, _ChildMapping.getChildMapping)(props.children)\n };\n return _this;\n }\n\n TransitionGroup.prototype.componentWillMount = function componentWillMount() {\n this.currentlyTransitioningKeys = {};\n this.keysToEnter = [];\n this.keysToLeave = [];\n };\n\n TransitionGroup.prototype.componentDidMount = function componentDidMount() {\n var initialChildMapping = this.state.children;\n\n for (var key in initialChildMapping) {\n if (initialChildMapping[key]) {\n this.performAppear(key, this.childRefs[key]);\n }\n }\n };\n\n TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children);\n var prevChildMapping = this.state.children;\n this.setState({\n children: (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping)\n });\n\n for (var key in nextChildMapping) {\n var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);\n\n if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {\n this.keysToEnter.push(key);\n }\n }\n\n for (var _key in prevChildMapping) {\n var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(_key);\n\n if (prevChildMapping[_key] && !hasNext && !this.currentlyTransitioningKeys[_key]) {\n this.keysToLeave.push(_key);\n }\n } // If we want to someday check for reordering, we could do it here.\n\n };\n\n TransitionGroup.prototype.componentDidUpdate = function componentDidUpdate() {\n var _this2 = this;\n\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(function (key) {\n return _this2.performEnter(key, _this2.childRefs[key]);\n });\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(function (key) {\n return _this2.performLeave(key, _this2.childRefs[key]);\n });\n };\n\n TransitionGroup.prototype.render = function render() {\n var _this3 = this; // TODO: we could get rid of the need for the wrapper node\n // by cloning a single child\n\n\n var childrenToRender = [];\n\n var _loop = function _loop(key) {\n var child = _this3.state.children[key];\n\n if (child) {\n var isCallbackRef = typeof child.ref !== 'string';\n\n var factoryChild = _this3.props.childFactory(child);\n\n var ref = function ref(r) {\n _this3.childRefs[key] = r;\n };\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(isCallbackRef, 'string refs are not supported on children of TransitionGroup and will be ignored. ' + 'Please use a callback ref instead: https://facebook.github.io/react/docs/refs-and-the-dom.html#the-ref-callback-attribute') : void 0; // Always chaining the refs leads to problems when the childFactory\n // wraps the child. The child ref callback gets called twice with the\n // wrapper and the child. So we only need to chain the ref if the\n // factoryChild is not different from child.\n\n if (factoryChild === child && isCallbackRef) {\n ref = (0, _chainFunction2.default)(child.ref, ref);\n } // You may need to apply reactive updates to a child as it is leaving.\n // The normal React way to do it won't work since the child will have\n // already been removed. In case you need this behavior you can provide\n // a childFactory function to wrap every child, even the ones that are\n // leaving.\n\n\n childrenToRender.push(_react2.default.cloneElement(factoryChild, {\n key: key,\n ref: ref\n }));\n }\n };\n\n for (var key in this.state.children) {\n _loop(key);\n } // Do not forward TransitionGroup props to primitive DOM nodes\n\n\n var props = _extends({}, this.props);\n\n delete props.transitionLeave;\n delete props.transitionName;\n delete props.transitionAppear;\n delete props.transitionEnter;\n delete props.childFactory;\n delete props.transitionLeaveTimeout;\n delete props.transitionEnterTimeout;\n delete props.transitionAppearTimeout;\n delete props.component;\n return _react2.default.createElement(this.props.component, props, childrenToRender);\n };\n\n return TransitionGroup;\n}(_react2.default.Component);\n\nTransitionGroup.displayName = 'TransitionGroup';\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\nexports.default = TransitionGroup;\nmodule.exports = exports['default'];","module.exports = function chain() {\n var len = arguments.length;\n var args = [];\n\n for (var i = 0; i < len; i++) {\n args[i] = arguments[i];\n }\n\n args = args.filter(function (fn) {\n return fn != null;\n });\n if (args.length === 0) return undefined;\n if (args.length === 1) return args[0];\n return args.reduce(function (current, next) {\n return function chainedFunction() {\n current.apply(this, arguments);\n next.apply(this, arguments);\n };\n });\n};","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n'use strict';\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;","'use strict';\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\n\nvar _react = require('react');\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\n\nfunction getChildMapping(children) {\n if (!children) {\n return children;\n }\n\n var result = {};\n\n _react.Children.map(children, function (child) {\n return child;\n }).forEach(function (child) {\n result[child.key] = child;\n });\n\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n if (next.hasOwnProperty(key)) {\n return next[key];\n }\n\n return prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = {};\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (next.hasOwnProperty(prevKey)) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i = void 0;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending.hasOwnProperty(nextKey)) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _addClass = require('dom-helpers/class/addClass');\n\nvar _addClass2 = _interopRequireDefault(_addClass);\n\nvar _removeClass = require('dom-helpers/class/removeClass');\n\nvar _removeClass2 = _interopRequireDefault(_removeClass);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _properties = require('dom-helpers/transition/properties');\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _PropTypes = require('./utils/PropTypes');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar events = [];\nif (_properties.transitionEnd) events.push(_properties.transitionEnd);\nif (_properties.animationEnd) events.push(_properties.animationEnd);\n\nfunction addEndListener(node, listener) {\n if (events.length) {\n events.forEach(function (e) {\n return node.addEventListener(e, listener, false);\n });\n } else {\n setTimeout(listener, 0);\n }\n\n return function () {\n if (!events.length) return;\n events.forEach(function (e) {\n return node.removeEventListener(e, listener, false);\n });\n };\n}\n\nvar propTypes = {\n children: _propTypes2.default.node,\n name: _PropTypes.nameShape.isRequired,\n // Once we require timeouts to be specified, we can remove the\n // boolean flags (appear etc.) and just accept a number\n // or a bool for the timeout flags (appearTimeout etc.)\n appear: _propTypes2.default.bool,\n enter: _propTypes2.default.bool,\n leave: _propTypes2.default.bool,\n appearTimeout: _propTypes2.default.number,\n enterTimeout: _propTypes2.default.number,\n leaveTimeout: _propTypes2.default.number\n};\n\nvar CSSTransitionGroupChild = function (_React$Component) {\n _inherits(CSSTransitionGroupChild, _React$Component);\n\n function CSSTransitionGroupChild() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, CSSTransitionGroupChild);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.componentWillAppear = function (done) {\n if (_this.props.appear) {\n _this.transition('appear', done, _this.props.appearTimeout);\n } else {\n done();\n }\n }, _this.componentWillEnter = function (done) {\n if (_this.props.enter) {\n _this.transition('enter', done, _this.props.enterTimeout);\n } else {\n done();\n }\n }, _this.componentWillLeave = function (done) {\n if (_this.props.leave) {\n _this.transition('leave', done, _this.props.leaveTimeout);\n } else {\n done();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n CSSTransitionGroupChild.prototype.componentWillMount = function componentWillMount() {\n this.classNameAndNodeQueue = [];\n this.transitionTimeouts = [];\n };\n\n CSSTransitionGroupChild.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n this.transitionTimeouts.forEach(function (timeout) {\n clearTimeout(timeout);\n });\n this.classNameAndNodeQueue.length = 0;\n };\n\n CSSTransitionGroupChild.prototype.transition = function transition(animationType, finishCallback, timeout) {\n var node = (0, _reactDom.findDOMNode)(this);\n\n if (!node) {\n if (finishCallback) {\n finishCallback();\n }\n\n return;\n }\n\n var className = this.props.name[animationType] || this.props.name + '-' + animationType;\n var activeClassName = this.props.name[animationType + 'Active'] || className + '-active';\n var timer = null;\n var removeListeners = void 0;\n (0, _addClass2.default)(node, className); // Need to do this to actually trigger a transition.\n\n this.queueClassAndNode(activeClassName, node); // Clean-up the animation after the specified delay\n\n var finish = function finish(e) {\n if (e && e.target !== node) {\n return;\n }\n\n clearTimeout(timer);\n if (removeListeners) removeListeners();\n (0, _removeClass2.default)(node, className);\n (0, _removeClass2.default)(node, activeClassName);\n if (removeListeners) removeListeners(); // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n\n if (finishCallback) {\n finishCallback();\n }\n };\n\n if (timeout) {\n timer = setTimeout(finish, timeout);\n this.transitionTimeouts.push(timer);\n } else if (_properties.transitionEnd) {\n removeListeners = addEndListener(node, finish);\n }\n };\n\n CSSTransitionGroupChild.prototype.queueClassAndNode = function queueClassAndNode(className, node) {\n var _this2 = this;\n\n this.classNameAndNodeQueue.push({\n className: className,\n node: node\n });\n\n if (!this.rafHandle) {\n this.rafHandle = (0, _requestAnimationFrame2.default)(function () {\n return _this2.flushClassNameAndNodeQueue();\n });\n }\n };\n\n CSSTransitionGroupChild.prototype.flushClassNameAndNodeQueue = function flushClassNameAndNodeQueue() {\n if (!this.unmounted) {\n this.classNameAndNodeQueue.forEach(function (obj) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n /* eslint-disable no-unused-expressions */\n obj.node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n (0, _addClass2.default)(obj.node, obj.className);\n });\n }\n\n this.classNameAndNodeQueue.length = 0;\n this.rafHandle = null;\n };\n\n CSSTransitionGroupChild.prototype.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.name;\n delete props.appear;\n delete props.enter;\n delete props.leave;\n delete props.appearTimeout;\n delete props.enterTimeout;\n delete props.leaveTimeout;\n delete props.children;\n return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), props);\n };\n\n return CSSTransitionGroupChild;\n}(_react2.default.Component);\n\nCSSTransitionGroupChild.displayName = 'CSSTransitionGroupChild';\nCSSTransitionGroupChild.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexports.default = CSSTransitionGroupChild;\nmodule.exports = exports['default'];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\n\nif (_inDOM.default) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\n\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\n\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\n\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\n\nvar _default = compatRaf;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\n\nif (_inDOM.default) {\n var _getTransitionPropert = getTransitionProperties();\n\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n exports.transform = transform = prefix + \"-\" + transform;\n exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n exports.animationName = animationName = prefix + \"-animation-name\";\n exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\n\nvar _default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\nexports.default = _default;\n\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var transitionEnd, animationEnd;\n var prefix = '';\n\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n prefix = \"-\" + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n style = null;\n return {\n animationEnd: animationEnd,\n transitionEnd: transitionEnd,\n prefix: prefix\n };\n}","(function (module) {\n 'use strict';\n\n module.exports.is_uri = is_iri;\n module.exports.is_http_uri = is_http_iri;\n module.exports.is_https_uri = is_https_iri;\n module.exports.is_web_uri = is_web_iri; // Create aliases\n\n module.exports.isUri = is_iri;\n module.exports.isHttpUri = is_http_iri;\n module.exports.isHttpsUri = is_https_iri;\n module.exports.isWebUri = is_web_iri; // private function\n // internal URI spitter method - direct from RFC 3986\n\n var splitUri = function splitUri(uri) {\n var splitted = uri.match(/(?:([^:\\/?#]+):)?(?:\\/\\/([^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/);\n return splitted;\n };\n\n function is_iri(value) {\n if (!value) {\n return;\n } // check for illegal characters\n\n\n if (/[^a-z0-9\\:\\/\\?\\#\\[\\]\\@\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=\\.\\-\\_\\~\\%]/i.test(value)) return; // check for hex escapes that aren't complete\n\n if (/%[^0-9a-f]/i.test(value)) return;\n if (/%[0-9a-f](:?[^0-9a-f]|$)/i.test(value)) return;\n var splitted = [];\n var scheme = '';\n var authority = '';\n var path = '';\n var query = '';\n var fragment = '';\n var out = ''; // from RFC 3986\n\n splitted = splitUri(value);\n scheme = splitted[1];\n authority = splitted[2];\n path = splitted[3];\n query = splitted[4];\n fragment = splitted[5]; // scheme and path are required, though the path can be empty\n\n if (!(scheme && scheme.length && path.length >= 0)) return; // if authority is present, the path must be empty or begin with a /\n\n if (authority && authority.length) {\n if (!(path.length === 0 || /^\\//.test(path))) return;\n } else {\n // if authority is not present, the path must not start with //\n if (/^\\/\\//.test(path)) return;\n } // scheme must begin with a letter, then consist of letters, digits, +, ., or -\n\n\n if (!/^[a-z][a-z0-9\\+\\-\\.]*$/.test(scheme.toLowerCase())) return; // re-assemble the URL per section 5.3 in RFC 3986\n\n out += scheme + ':';\n\n if (authority && authority.length) {\n out += '//' + authority;\n }\n\n out += path;\n\n if (query && query.length) {\n out += '?' + query;\n }\n\n if (fragment && fragment.length) {\n out += '#' + fragment;\n }\n\n return out;\n }\n\n function is_http_iri(value, allowHttps) {\n if (!is_iri(value)) {\n return;\n }\n\n var splitted = [];\n var scheme = '';\n var authority = '';\n var path = '';\n var port = '';\n var query = '';\n var fragment = '';\n var out = ''; // from RFC 3986\n\n splitted = splitUri(value);\n scheme = splitted[1];\n authority = splitted[2];\n path = splitted[3];\n query = splitted[4];\n fragment = splitted[5];\n if (!scheme) return;\n\n if (allowHttps) {\n if (scheme.toLowerCase() != 'https') return;\n } else {\n if (scheme.toLowerCase() != 'http') return;\n } // fully-qualified URIs must have an authority section that is\n // a valid host\n\n\n if (!authority) {\n return;\n } // enable port component\n\n\n if (/:(\\d+)$/.test(authority)) {\n port = authority.match(/:(\\d+)$/)[0];\n authority = authority.replace(/:\\d+$/, '');\n }\n\n out += scheme + ':';\n out += '//' + authority;\n\n if (port) {\n out += port;\n }\n\n out += path;\n\n if (query && query.length) {\n out += '?' + query;\n }\n\n if (fragment && fragment.length) {\n out += '#' + fragment;\n }\n\n return out;\n }\n\n function is_https_iri(value) {\n return is_http_iri(value, true);\n }\n\n function is_web_iri(value) {\n return is_http_iri(value) || is_https_iri(value);\n }\n})(module);","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","var atob = require('./atob');\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, function (m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n\n if (code.length < 2) {\n code = '0' + code;\n }\n\n return '%' + code;\n }));\n}\n\nmodule.exports = function (str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n switch (output.length % 4) {\n case 0:\n break;\n\n case 2:\n output += \"==\";\n break;\n\n case 3:\n output += \"=\";\n break;\n\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n};","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, '');\n\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n }\n\n for ( // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = ''; // get next character\n buffer = str.charAt(idx++); // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n\n return output;\n}\n\nmodule.exports = typeof window !== 'undefined' && window.atob && window.atob.bind(window) || polyfill;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory } from '@firebase/util';\nimport { __spread, __awaiter, __generator, __assign, __values } from 'tslib';\nimport { deleteDb, openDb } from 'idb';\nimport firebase from '@firebase/app';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a;\n\nvar ERROR_MAP = (_a = {}, _a[\"missing-app-config-values\"\n/* MISSING_APP_CONFIG_VALUES */\n] = 'Missing App configuration value: \"{$valueName}\"', _a[\"only-available-in-window\"\n/* AVAILABLE_IN_WINDOW */\n] = 'This method is available in a Window context.', _a[\"only-available-in-sw\"\n/* AVAILABLE_IN_SW */\n] = 'This method is available in a service worker context.', _a[\"permission-default\"\n/* PERMISSION_DEFAULT */\n] = 'The notification permission was not granted and dismissed instead.', _a[\"permission-blocked\"\n/* PERMISSION_BLOCKED */\n] = 'The notification permission was not granted and blocked instead.', _a[\"unsupported-browser\"\n/* UNSUPPORTED_BROWSER */\n] = \"This browser doesn't support the API's required to use the firebase SDK.\", _a[\"failed-service-worker-registration\"\n/* FAILED_DEFAULT_REGISTRATION */\n] = 'We are unable to register the default service worker. {$browserErrorMessage}', _a[\"token-subscribe-failed\"\n/* TOKEN_SUBSCRIBE_FAILED */\n] = 'A problem occurred while subscribing the user to FCM: {$errorInfo}', _a[\"token-subscribe-no-token\"\n/* TOKEN_SUBSCRIBE_NO_TOKEN */\n] = 'FCM returned no token when subscribing the user to push.', _a[\"token-unsubscribe-failed\"\n/* TOKEN_UNSUBSCRIBE_FAILED */\n] = 'A problem occurred while unsubscribing the ' + 'user from FCM: {$errorInfo}', _a[\"token-update-failed\"\n/* TOKEN_UPDATE_FAILED */\n] = 'A problem occurred while updating the user from FCM: {$errorInfo}', _a[\"token-update-no-token\"\n/* TOKEN_UPDATE_NO_TOKEN */\n] = 'FCM returned no token when updating the user to push.', _a[\"use-sw-after-get-token\"\n/* USE_SW_AFTER_GET_TOKEN */\n] = 'The useServiceWorker() method may only be called once and must be ' + 'called before calling getToken() to ensure your service worker is used.', _a[\"invalid-sw-registration\"\n/* INVALID_SW_REGISTRATION */\n] = 'The input to useServiceWorker() must be a ServiceWorkerRegistration.', _a[\"invalid-bg-handler\"\n/* INVALID_BG_HANDLER */\n] = 'The input to setBackgroundMessageHandler() must be a function.', _a[\"invalid-vapid-key\"\n/* INVALID_VAPID_KEY */\n] = 'The public VAPID key must be a string.', _a[\"use-vapid-key-after-get-token\"\n/* USE_VAPID_KEY_AFTER_GET_TOKEN */\n] = 'The usePublicVapidKey() method may only be called once and must be ' + 'called before calling getToken() to ensure your VAPID key is used.', _a);\nvar ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\nvar DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\nvar DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\nvar ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\n/** Key of FCM Payload in Notification's data field. */\n\nvar FCM_MSG = 'FCM_MSG';\nvar CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\nvar CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\nvar CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\n/** Set to '1' if Analytics is enabled for the campaign */\n\nvar CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\nvar TAG = 'FirebaseMessaging: ';\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\n\nvar MessageType;\n\n(function (MessageType) {\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\n})(MessageType || (MessageType = {}));\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction arrayToBase64(array) {\n var uint8Array = new Uint8Array(array);\n var base64String = btoa(String.fromCharCode.apply(String, __spread(uint8Array)));\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n\nfunction base64ToArray(base64String) {\n var padding = '='.repeat((4 - base64String.length % 4) % 4);\n var base64 = (base64String + padding).replace(/\\-/g, '+').replace(/_/g, '/');\n var rawData = atob(base64);\n var outputArray = new Uint8Array(rawData.length);\n\n for (var i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar OLD_DB_NAME = 'fcm_token_details_db';\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\n\nvar OLD_DB_VERSION = 5;\nvar OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\n\nfunction migrateOldDatabase(senderId) {\n return __awaiter(this, void 0, void 0, function () {\n var databases, dbNames, tokenDetails, db;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!('databases' in indexedDB)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , indexedDB.databases()];\n\n case 1:\n databases = _a.sent();\n dbNames = databases.map(function (db) {\n return db.name;\n });\n\n if (!dbNames.includes(OLD_DB_NAME)) {\n // old DB didn't exist, no need to open.\n return [2\n /*return*/\n , null];\n }\n\n _a.label = 2;\n\n case 2:\n tokenDetails = null;\n return [4\n /*yield*/\n , openDb(OLD_DB_NAME, OLD_DB_VERSION, function (db) {\n return __awaiter(_this, void 0, void 0, function () {\n var objectStore, value, oldDetails, oldDetails, oldDetails;\n\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (db.oldVersion < 2) {\n // Database too old, skip migration.\n return [2\n /*return*/\n ];\n }\n\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\n // Database did not exist. Nothing to do.\n return [2\n /*return*/\n ];\n }\n\n objectStore = db.transaction.objectStore(OLD_OBJECT_STORE_NAME);\n return [4\n /*yield*/\n , objectStore.index('fcmSenderId').get(senderId)];\n\n case 1:\n value = _b.sent();\n return [4\n /*yield*/\n , objectStore.clear()];\n\n case 2:\n _b.sent();\n\n if (!value) {\n // No entry in the database, nothing to migrate.\n return [2\n /*return*/\n ];\n }\n\n if (db.oldVersion === 2) {\n oldDetails = value;\n\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\n return [2\n /*return*/\n ];\n }\n\n tokenDetails = {\n token: oldDetails.fcmToken,\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\n subscriptionOptions: {\n auth: oldDetails.auth,\n p256dh: oldDetails.p256dh,\n endpoint: oldDetails.endpoint,\n swScope: oldDetails.swScope,\n vapidKey: typeof oldDetails.vapidKey === 'string' ? oldDetails.vapidKey : arrayToBase64(oldDetails.vapidKey)\n }\n };\n } else if (db.oldVersion === 3) {\n oldDetails = value;\n tokenDetails = {\n token: oldDetails.fcmToken,\n createTime: oldDetails.createTime,\n subscriptionOptions: {\n auth: arrayToBase64(oldDetails.auth),\n p256dh: arrayToBase64(oldDetails.p256dh),\n endpoint: oldDetails.endpoint,\n swScope: oldDetails.swScope,\n vapidKey: arrayToBase64(oldDetails.vapidKey)\n }\n };\n } else if (db.oldVersion === 4) {\n oldDetails = value;\n tokenDetails = {\n token: oldDetails.fcmToken,\n createTime: oldDetails.createTime,\n subscriptionOptions: {\n auth: arrayToBase64(oldDetails.auth),\n p256dh: arrayToBase64(oldDetails.p256dh),\n endpoint: oldDetails.endpoint,\n swScope: oldDetails.swScope,\n vapidKey: arrayToBase64(oldDetails.vapidKey)\n }\n };\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n })];\n\n case 3:\n db = _a.sent();\n db.close(); // Delete all old databases.\n\n return [4\n /*yield*/\n , deleteDb(OLD_DB_NAME)];\n\n case 4:\n // Delete all old databases.\n _a.sent();\n\n return [4\n /*yield*/\n , deleteDb('fcm_vapid_details_db')];\n\n case 5:\n _a.sent();\n\n return [4\n /*yield*/\n , deleteDb('undefined')];\n\n case 6:\n _a.sent();\n\n return [2\n /*return*/\n , checkTokenDetails(tokenDetails) ? tokenDetails : null];\n }\n });\n });\n}\n\nfunction checkTokenDetails(tokenDetails) {\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\n return false;\n }\n\n var subscriptionOptions = tokenDetails.subscriptionOptions;\n return typeof tokenDetails.createTime === 'number' && tokenDetails.createTime > 0 && typeof tokenDetails.token === 'string' && tokenDetails.token.length > 0 && typeof subscriptionOptions.auth === 'string' && subscriptionOptions.auth.length > 0 && typeof subscriptionOptions.p256dh === 'string' && subscriptionOptions.p256dh.length > 0 && typeof subscriptionOptions.endpoint === 'string' && subscriptionOptions.endpoint.length > 0 && typeof subscriptionOptions.swScope === 'string' && subscriptionOptions.swScope.length > 0 && typeof subscriptionOptions.vapidKey === 'string' && subscriptionOptions.vapidKey.length > 0;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Exported for tests.\n\n\nvar DATABASE_NAME = 'firebase-messaging-database';\nvar DATABASE_VERSION = 1;\nvar OBJECT_STORE_NAME = 'firebase-messaging-store';\nvar dbPromise = null;\n\nfunction getDbPromise() {\n if (!dbPromise) {\n dbPromise = openDb(DATABASE_NAME, DATABASE_VERSION, function (upgradeDb) {\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\n // because if there are multiple versions between the old version and the current version, we\n // want ALL the migrations that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (upgradeDb.oldVersion) {\n case 0:\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\n }\n });\n }\n\n return dbPromise;\n}\n/** Gets record(s) from the objectStore that match the given key. */\n\n\nfunction dbGet(firebaseDependencies) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tokenDetails, oldTokenDetails;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(firebaseDependencies);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n return [4\n /*yield*/\n , db.transaction(OBJECT_STORE_NAME).objectStore(OBJECT_STORE_NAME).get(key)];\n\n case 2:\n tokenDetails = _a.sent();\n if (!tokenDetails) return [3\n /*break*/\n , 3];\n return [2\n /*return*/\n , tokenDetails];\n\n case 3:\n return [4\n /*yield*/\n , migrateOldDatabase(firebaseDependencies.appConfig.senderId)];\n\n case 4:\n oldTokenDetails = _a.sent();\n if (!oldTokenDetails) return [3\n /*break*/\n , 6];\n return [4\n /*yield*/\n , dbSet(firebaseDependencies, oldTokenDetails)];\n\n case 5:\n _a.sent();\n\n return [2\n /*return*/\n , oldTokenDetails];\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/** Assigns or overwrites the record for the given key with the given value. */\n\n\nfunction dbSet(firebaseDependencies, tokenDetails) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(firebaseDependencies);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n return [4\n /*yield*/\n , tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key)];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , tx.complete];\n\n case 3:\n _a.sent();\n\n return [2\n /*return*/\n , tokenDetails];\n }\n });\n });\n}\n/** Removes record(s) from the objectStore that match the given key. */\n\n\nfunction dbRemove(firebaseDependencies) {\n return __awaiter(this, void 0, void 0, function () {\n var key, db, tx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = getKey(firebaseDependencies);\n return [4\n /*yield*/\n , getDbPromise()];\n\n case 1:\n db = _a.sent();\n tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\n return [4\n /*yield*/\n , tx.objectStore(OBJECT_STORE_NAME).delete(key)];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , tx.complete];\n\n case 3:\n _a.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction getKey(_a) {\n var appConfig = _a.appConfig;\n return appConfig.appId;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction requestGetToken(firebaseDependencies, subscriptionOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var headers, body, subscribeOptions, responseData, response, err_1, message;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , getHeaders(firebaseDependencies)];\n\n case 1:\n headers = _a.sent();\n body = getBody(subscriptionOptions);\n subscribeOptions = {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(body)\n };\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 5,, 6]);\n\n return [4\n /*yield*/\n , fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions)];\n\n case 3:\n response = _a.sent();\n return [4\n /*yield*/\n , response.json()];\n\n case 4:\n responseData = _a.sent();\n return [3\n /*break*/\n , 6];\n\n case 5:\n err_1 = _a.sent();\n throw ERROR_FACTORY.create(\"token-subscribe-failed\"\n /* TOKEN_SUBSCRIBE_FAILED */\n , {\n errorInfo: err_1\n });\n\n case 6:\n if (responseData.error) {\n message = responseData.error.message;\n throw ERROR_FACTORY.create(\"token-subscribe-failed\"\n /* TOKEN_SUBSCRIBE_FAILED */\n , {\n errorInfo: message\n });\n }\n\n if (!responseData.token) {\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\"\n /* TOKEN_SUBSCRIBE_NO_TOKEN */\n );\n }\n\n return [2\n /*return*/\n , responseData.token];\n }\n });\n });\n}\n\nfunction requestUpdateToken(firebaseDependencies, tokenDetails) {\n return __awaiter(this, void 0, void 0, function () {\n var headers, body, updateOptions, responseData, response, err_2, message;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , getHeaders(firebaseDependencies)];\n\n case 1:\n headers = _a.sent();\n body = getBody(tokenDetails.subscriptionOptions);\n updateOptions = {\n method: 'PATCH',\n headers: headers,\n body: JSON.stringify(body)\n };\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 5,, 6]);\n\n return [4\n /*yield*/\n , fetch(getEndpoint(firebaseDependencies.appConfig) + \"/\" + tokenDetails.token, updateOptions)];\n\n case 3:\n response = _a.sent();\n return [4\n /*yield*/\n , response.json()];\n\n case 4:\n responseData = _a.sent();\n return [3\n /*break*/\n , 6];\n\n case 5:\n err_2 = _a.sent();\n throw ERROR_FACTORY.create(\"token-update-failed\"\n /* TOKEN_UPDATE_FAILED */\n , {\n errorInfo: err_2\n });\n\n case 6:\n if (responseData.error) {\n message = responseData.error.message;\n throw ERROR_FACTORY.create(\"token-update-failed\"\n /* TOKEN_UPDATE_FAILED */\n , {\n errorInfo: message\n });\n }\n\n if (!responseData.token) {\n throw ERROR_FACTORY.create(\"token-update-no-token\"\n /* TOKEN_UPDATE_NO_TOKEN */\n );\n }\n\n return [2\n /*return*/\n , responseData.token];\n }\n });\n });\n}\n\nfunction requestDeleteToken(firebaseDependencies, token) {\n return __awaiter(this, void 0, void 0, function () {\n var headers, unsubscribeOptions, response, responseData, message, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , getHeaders(firebaseDependencies)];\n\n case 1:\n headers = _a.sent();\n unsubscribeOptions = {\n method: 'DELETE',\n headers: headers\n };\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 5,, 6]);\n\n return [4\n /*yield*/\n , fetch(getEndpoint(firebaseDependencies.appConfig) + \"/\" + token, unsubscribeOptions)];\n\n case 3:\n response = _a.sent();\n return [4\n /*yield*/\n , response.json()];\n\n case 4:\n responseData = _a.sent();\n\n if (responseData.error) {\n message = responseData.error.message;\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\"\n /* TOKEN_UNSUBSCRIBE_FAILED */\n , {\n errorInfo: message\n });\n }\n\n return [3\n /*break*/\n , 6];\n\n case 5:\n err_3 = _a.sent();\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\"\n /* TOKEN_UNSUBSCRIBE_FAILED */\n , {\n errorInfo: err_3\n });\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction getEndpoint(_a) {\n var projectId = _a.projectId;\n return ENDPOINT + \"/projects/\" + projectId + \"/registrations\";\n}\n\nfunction getHeaders(_a) {\n var appConfig = _a.appConfig,\n installations = _a.installations;\n return __awaiter(this, void 0, void 0, function () {\n var authToken;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , installations.getToken()];\n\n case 1:\n authToken = _b.sent();\n return [2\n /*return*/\n , new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'x-goog-api-key': appConfig.apiKey,\n 'x-goog-firebase-installations-auth': \"FIS \" + authToken\n })];\n }\n });\n });\n}\n\nfunction getBody(_a) {\n var p256dh = _a.p256dh,\n auth = _a.auth,\n endpoint = _a.endpoint,\n vapidKey = _a.vapidKey;\n var body = {\n web: {\n endpoint: endpoint,\n auth: auth,\n p256dh: p256dh\n }\n };\n\n if (vapidKey !== DEFAULT_VAPID_KEY) {\n body.web.applicationPubKey = vapidKey;\n }\n\n return body;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/** UpdateRegistration will be called once every week. */\n\n\nvar TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\n\nfunction getToken(firebaseDependencies, swRegistration, vapidKey) {\n return __awaiter(this, void 0, void 0, function () {\n var pushSubscription, tokenDetails, subscriptionOptions, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Notification.permission !== 'granted') {\n throw ERROR_FACTORY.create(\"permission-blocked\"\n /* PERMISSION_BLOCKED */\n );\n }\n\n return [4\n /*yield*/\n , getPushSubscription(swRegistration, vapidKey)];\n\n case 1:\n pushSubscription = _a.sent();\n return [4\n /*yield*/\n , dbGet(firebaseDependencies)];\n\n case 2:\n tokenDetails = _a.sent();\n subscriptionOptions = {\n vapidKey: vapidKey,\n swScope: swRegistration.scope,\n endpoint: pushSubscription.endpoint,\n auth: arrayToBase64(pushSubscription.getKey('auth')),\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\n };\n if (!!tokenDetails) return [3\n /*break*/\n , 3]; // No token, get a new one.\n\n return [2\n /*return*/\n , getNewToken(firebaseDependencies, subscriptionOptions)];\n\n case 3:\n if (!!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) return [3\n /*break*/\n , 8];\n _a.label = 4;\n\n case 4:\n _a.trys.push([4, 6,, 7]);\n\n return [4\n /*yield*/\n , requestDeleteToken(firebaseDependencies, tokenDetails.token)];\n\n case 5:\n _a.sent();\n\n return [3\n /*break*/\n , 7];\n\n case 6:\n e_1 = _a.sent(); // Suppress errors because of #2364\n\n console.warn(e_1);\n return [3\n /*break*/\n , 7];\n\n case 7:\n return [2\n /*return*/\n , getNewToken(firebaseDependencies, subscriptionOptions)];\n\n case 8:\n if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\n // Weekly token refresh\n return [2\n /*return*/\n , updateToken({\n token: tokenDetails.token,\n createTime: Date.now(),\n subscriptionOptions: subscriptionOptions\n }, firebaseDependencies, swRegistration)];\n } else {\n // Valid token, nothing to do.\n return [2\n /*return*/\n , tokenDetails.token];\n }\n\n case 9:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\n\n\nfunction deleteToken(firebaseDependencies, swRegistration) {\n return __awaiter(this, void 0, void 0, function () {\n var tokenDetails, pushSubscription;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , dbGet(firebaseDependencies)];\n\n case 1:\n tokenDetails = _a.sent();\n if (!tokenDetails) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , requestDeleteToken(firebaseDependencies, tokenDetails.token)];\n\n case 2:\n _a.sent();\n\n return [4\n /*yield*/\n , dbRemove(firebaseDependencies)];\n\n case 3:\n _a.sent();\n\n _a.label = 4;\n\n case 4:\n return [4\n /*yield*/\n , swRegistration.pushManager.getSubscription()];\n\n case 5:\n pushSubscription = _a.sent();\n\n if (pushSubscription) {\n return [2\n /*return*/\n , pushSubscription.unsubscribe()];\n } // If there's no SW, consider it a success.\n\n\n return [2\n /*return*/\n , true];\n }\n });\n });\n}\n\nfunction updateToken(tokenDetails, firebaseDependencies, swRegistration) {\n return __awaiter(this, void 0, void 0, function () {\n var updatedToken, updatedTokenDetails, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3,, 5]);\n\n return [4\n /*yield*/\n , requestUpdateToken(firebaseDependencies, tokenDetails)];\n\n case 1:\n updatedToken = _a.sent();\n updatedTokenDetails = __assign(__assign({}, tokenDetails), {\n token: updatedToken,\n createTime: Date.now()\n });\n return [4\n /*yield*/\n , dbSet(firebaseDependencies, updatedTokenDetails)];\n\n case 2:\n _a.sent();\n\n return [2\n /*return*/\n , updatedToken];\n\n case 3:\n e_2 = _a.sent();\n return [4\n /*yield*/\n , deleteToken(firebaseDependencies, swRegistration)];\n\n case 4:\n _a.sent();\n\n throw e_2;\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n\nfunction getNewToken(firebaseDependencies, subscriptionOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var token, tokenDetails;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , requestGetToken(firebaseDependencies, subscriptionOptions)];\n\n case 1:\n token = _a.sent();\n tokenDetails = {\n token: token,\n createTime: Date.now(),\n subscriptionOptions: subscriptionOptions\n };\n return [4\n /*yield*/\n , dbSet(firebaseDependencies, tokenDetails)];\n\n case 2:\n _a.sent();\n\n return [2\n /*return*/\n , tokenDetails.token];\n }\n });\n });\n}\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\n\n\nfunction getPushSubscription(swRegistration, vapidKey) {\n return __awaiter(this, void 0, void 0, function () {\n var subscription;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , swRegistration.pushManager.getSubscription()];\n\n case 1:\n subscription = _a.sent();\n\n if (subscription) {\n return [2\n /*return*/\n , subscription];\n }\n\n return [2\n /*return*/\n , swRegistration.pushManager.subscribe({\n userVisibleOnly: true,\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\n // submitted to pushManager#subscribe must be of type Uint8Array.\n applicationServerKey: base64ToArray(vapidKey)\n })];\n }\n });\n });\n}\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\n\n\nfunction isTokenValid(dbOptions, currentOptions) {\n var isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\n var isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\n var isAuthEqual = currentOptions.auth === dbOptions.auth;\n var isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\n}\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction externalizePayload(internalPayload) {\n var payload = {\n from: internalPayload.from,\n // eslint-disable-next-line camelcase\n collapseKey: internalPayload.collapse_key\n };\n propagateNotificationPayload(payload, internalPayload);\n propagateDataPayload(payload, internalPayload);\n propagateFcmOptions(payload, internalPayload);\n return payload;\n}\n\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\n if (!messagePayloadInternal.notification) {\n return;\n }\n\n payload.notification = {};\n var title = messagePayloadInternal.notification.title;\n\n if (!!title) {\n payload.notification.title = title;\n }\n\n var body = messagePayloadInternal.notification.body;\n\n if (!!body) {\n payload.notification.body = body;\n }\n\n var image = messagePayloadInternal.notification.image;\n\n if (!!image) {\n payload.notification.image = image;\n }\n}\n\nfunction propagateDataPayload(payload, messagePayloadInternal) {\n if (!messagePayloadInternal.data) {\n return;\n }\n\n payload.data = messagePayloadInternal.data;\n}\n\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\n if (!messagePayloadInternal.fcmOptions) {\n return;\n }\n\n payload.fcmOptions = {};\n var link = messagePayloadInternal.fcmOptions.link;\n\n if (!!link) {\n payload.fcmOptions.link = link;\n } // eslint-disable-next-line camelcase\n\n\n var analyticsLabel = messagePayloadInternal.fcmOptions.analytics_label;\n\n if (!!analyticsLabel) {\n payload.fcmOptions.analyticsLabel = analyticsLabel;\n }\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction isConsoleMessage(data) {\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/** Returns a promise that resolves after given time passes. */\n\n\nfunction sleep(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar SwController =\n/** @class */\nfunction () {\n function SwController(firebaseDependencies) {\n var _this = this;\n\n this.firebaseDependencies = firebaseDependencies; // A boolean flag to determine wether an app is using onBackgroundMessage or\n // setBackgroundMessageHandler. onBackgroundMessage will receive a MessagePayload regardless of if\n // a notification is displayed. Whereas, setBackgroundMessageHandler will swallow the\n // MessagePayload if a NotificationPayload is included.\n\n this.isOnBackgroundMessageUsed = null;\n this.vapidKey = null;\n this.bgMessageHandler = null;\n self.addEventListener('push', function (e) {\n e.waitUntil(_this.onPush(e));\n });\n self.addEventListener('pushsubscriptionchange', function (e) {\n e.waitUntil(_this.onSubChange(e));\n });\n self.addEventListener('notificationclick', function (e) {\n e.waitUntil(_this.onNotificationClick(e));\n });\n }\n\n Object.defineProperty(SwController.prototype, \"app\", {\n get: function get() {\n return this.firebaseDependencies.app;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * @deprecated. Use onBackgroundMessage(nextOrObserver: NextFn | Observer):\r\n * Unsubscribe instead.\r\n *\r\n * Calling setBackgroundMessageHandler will opt in to some specific behaviors.\r\n *\r\n * 1.) If a notification doesn't need to be shown due to a window already being visible, then push\r\n * messages will be sent to the page. 2.) If a notification needs to be shown, and the message\r\n * contains no notification data this method will be called and the promise it returns will be\r\n * passed to event.waitUntil. If you do not set this callback then all push messages will let and\r\n * the developer can handle them in a their own 'push' event callback\r\n *\r\n * @param callback The callback to be called when a push message is received and a notification\r\n * must be shown. The callback will be given the data from the push message.\r\n */\n\n SwController.prototype.setBackgroundMessageHandler = function (callback) {\n this.isOnBackgroundMessageUsed = false;\n\n if (!callback || typeof callback !== 'function') {\n throw ERROR_FACTORY.create(\"invalid-bg-handler\"\n /* INVALID_BG_HANDLER */\n );\n }\n\n this.bgMessageHandler = callback;\n };\n\n SwController.prototype.onBackgroundMessage = function (nextOrObserver) {\n var _this = this;\n\n this.isOnBackgroundMessageUsed = true;\n this.bgMessageHandler = nextOrObserver;\n return function () {\n _this.bgMessageHandler = null;\n };\n }; // TODO: Remove getToken from SW Controller. Calling this from an old SW can cause all kinds of\n // trouble.\n\n\n SwController.prototype.getToken = function () {\n var _a, _b;\n\n return __awaiter(this, void 0, void 0, function () {\n var tokenDetails;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!!this.vapidKey) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , dbGet(this.firebaseDependencies)];\n\n case 1:\n tokenDetails = _c.sent();\n this.vapidKey = (_b = (_a = tokenDetails === null || tokenDetails === void 0 ? void 0 : tokenDetails.subscriptionOptions) === null || _a === void 0 ? void 0 : _a.vapidKey) !== null && _b !== void 0 ? _b : DEFAULT_VAPID_KEY;\n _c.label = 2;\n\n case 2:\n return [2\n /*return*/\n , getToken(this.firebaseDependencies, self.registration, this.vapidKey)];\n }\n });\n });\n }; // TODO: Remove deleteToken from SW Controller. Calling this from an old SW can cause all kinds of\n // trouble.\n\n\n SwController.prototype.deleteToken = function () {\n return deleteToken(this.firebaseDependencies, self.registration);\n };\n\n SwController.prototype.requestPermission = function () {\n throw ERROR_FACTORY.create(\"only-available-in-window\"\n /* AVAILABLE_IN_WINDOW */\n );\n }; // TODO: Remove this together with getToken from SW Controller.\n\n\n SwController.prototype.usePublicVapidKey = function (vapidKey) {\n if (this.vapidKey !== null) {\n throw ERROR_FACTORY.create(\"use-vapid-key-after-get-token\"\n /* USE_VAPID_KEY_AFTER_GET_TOKEN */\n );\n }\n\n if (typeof vapidKey !== 'string' || vapidKey.length === 0) {\n throw ERROR_FACTORY.create(\"invalid-vapid-key\"\n /* INVALID_VAPID_KEY */\n );\n }\n\n this.vapidKey = vapidKey;\n };\n\n SwController.prototype.useServiceWorker = function () {\n throw ERROR_FACTORY.create(\"only-available-in-window\"\n /* AVAILABLE_IN_WINDOW */\n );\n };\n\n SwController.prototype.onMessage = function () {\n throw ERROR_FACTORY.create(\"only-available-in-window\"\n /* AVAILABLE_IN_WINDOW */\n );\n };\n\n SwController.prototype.onTokenRefresh = function () {\n throw ERROR_FACTORY.create(\"only-available-in-window\"\n /* AVAILABLE_IN_WINDOW */\n );\n };\n /**\r\n * A handler for push events that shows notifications based on the content of the payload.\r\n *\r\n * The payload must be a JSON-encoded Object with a `notification` key. The value of the\r\n * `notification` property will be used as the NotificationOptions object passed to\r\n * showNotification. Additionally, the `title` property of the notification object will be used as\r\n * the title.\r\n *\r\n * If there is no notification data in the payload then no notification will be shown.\r\n */\n\n\n SwController.prototype.onPush = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var internalPayload, clientList, isNotificationShown, payload;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n internalPayload = getMessagePayloadInternal(event);\n\n if (!internalPayload) {\n console.debug(TAG + 'failed to get parsed MessagePayload from the PushEvent. Skip handling the push.');\n return [2\n /*return*/\n ];\n }\n\n return [4\n /*yield*/\n , getClientList()];\n\n case 1:\n clientList = _a.sent();\n\n if (hasVisibleClients(clientList)) {\n return [2\n /*return*/\n , sendMessagePayloadInternalToWindows(clientList, internalPayload)];\n }\n\n isNotificationShown = false;\n if (!!!internalPayload.notification) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , showNotification(wrapInternalPayload(internalPayload))];\n\n case 2:\n _a.sent();\n\n isNotificationShown = true;\n _a.label = 3;\n\n case 3:\n // MessagePayload is only passed to `onBackgroundMessage`. Skip passing MessagePayload for\n // the legacy `setBackgroundMessageHandler` to preserve the SDK behaviors.\n if (isNotificationShown === true && this.isOnBackgroundMessageUsed === false) {\n return [2\n /*return*/\n ];\n }\n\n if (!!this.bgMessageHandler) {\n payload = externalizePayload(internalPayload);\n\n if (typeof this.bgMessageHandler === 'function') {\n this.bgMessageHandler(payload);\n } else {\n this.bgMessageHandler.next(payload);\n }\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n SwController.prototype.onSubChange = function (event) {\n var _a, _b;\n\n return __awaiter(this, void 0, void 0, function () {\n var newSubscription, tokenDetails;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n newSubscription = event.newSubscription;\n if (!!newSubscription) return [3\n /*break*/\n , 2]; // Subscription revoked, delete token\n\n return [4\n /*yield*/\n , deleteToken(this.firebaseDependencies, self.registration)];\n\n case 1:\n // Subscription revoked, delete token\n _c.sent();\n\n return [2\n /*return*/\n ];\n\n case 2:\n return [4\n /*yield*/\n , dbGet(this.firebaseDependencies)];\n\n case 3:\n tokenDetails = _c.sent();\n return [4\n /*yield*/\n , deleteToken(this.firebaseDependencies, self.registration)];\n\n case 4:\n _c.sent();\n\n return [4\n /*yield*/\n , getToken(this.firebaseDependencies, self.registration, (_b = (_a = tokenDetails === null || tokenDetails === void 0 ? void 0 : tokenDetails.subscriptionOptions) === null || _a === void 0 ? void 0 : _a.vapidKey) !== null && _b !== void 0 ? _b : DEFAULT_VAPID_KEY)];\n\n case 5:\n _c.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n SwController.prototype.onNotificationClick = function (event) {\n var _a, _b;\n\n return __awaiter(this, void 0, void 0, function () {\n var internalPayload, link, url, originUrl, client;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n internalPayload = (_b = (_a = event.notification) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b[FCM_MSG];\n\n if (!internalPayload) {\n return [2\n /*return*/\n ];\n } else if (event.action) {\n // User clicked on an action button. This will allow developers to act on action button clicks\n // by using a custom onNotificationClick listener that they define.\n return [2\n /*return*/\n ];\n } // Prevent other listeners from receiving the event\n\n\n event.stopImmediatePropagation();\n event.notification.close();\n link = getLink(internalPayload);\n\n if (!link) {\n return [2\n /*return*/\n ];\n }\n\n url = new URL(link, self.location.href);\n originUrl = new URL(self.location.origin);\n\n if (url.host !== originUrl.host) {\n return [2\n /*return*/\n ];\n }\n\n return [4\n /*yield*/\n , getWindowClient(url)];\n\n case 1:\n client = _c.sent();\n if (!!client) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , self.clients.openWindow(link)];\n\n case 2:\n client = _c.sent(); // Wait three seconds for the client to initialize and set up the message handler so that it\n // can receive the message.\n\n return [4\n /*yield*/\n , sleep(3000)];\n\n case 3:\n // Wait three seconds for the client to initialize and set up the message handler so that it\n // can receive the message.\n _c.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 4:\n return [4\n /*yield*/\n , client.focus()];\n\n case 5:\n client = _c.sent();\n _c.label = 6;\n\n case 6:\n if (!client) {\n // Window Client will not be returned if it's for a third party origin.\n return [2\n /*return*/\n ];\n }\n\n internalPayload.messageType = MessageType.NOTIFICATION_CLICKED;\n internalPayload.isFirebaseMessaging = true;\n return [2\n /*return*/\n , client.postMessage(internalPayload)];\n }\n });\n });\n };\n\n return SwController;\n}();\n\nfunction wrapInternalPayload(internalPayload) {\n var _a;\n\n var wrappedInternalPayload = __assign({}, internalPayload.notification); // Put the message payload under FCM_MSG name so we can identify the notification as being an FCM\n // notification vs a notification from somewhere else (i.e. normal web push or developer generated\n // notification).\n\n\n wrappedInternalPayload.data = (_a = {}, _a[FCM_MSG] = internalPayload, _a);\n return wrappedInternalPayload;\n}\n\nfunction getMessagePayloadInternal(_a) {\n var data = _a.data;\n\n if (!data) {\n return null;\n }\n\n try {\n return data.json();\n } catch (err) {\n // Not JSON so not an FCM message.\n return null;\n }\n}\n/**\r\n * @param url The URL to look for when focusing a client.\r\n * @return Returns an existing window client or a newly opened WindowClient.\r\n */\n\n\nfunction getWindowClient(url) {\n return __awaiter(this, void 0, void 0, function () {\n var clientList, clientList_1, clientList_1_1, client, clientUrl;\n\n var e_1, _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4\n /*yield*/\n , getClientList()];\n\n case 1:\n clientList = _b.sent();\n\n try {\n for (clientList_1 = __values(clientList), clientList_1_1 = clientList_1.next(); !clientList_1_1.done; clientList_1_1 = clientList_1.next()) {\n client = clientList_1_1.value;\n clientUrl = new URL(client.url, self.location.href);\n\n if (url.host === clientUrl.host) {\n return [2\n /*return*/\n , client];\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (clientList_1_1 && !clientList_1_1.done && (_a = clientList_1.return)) _a.call(clientList_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return [2\n /*return*/\n , null];\n }\n });\n });\n}\n/**\r\n * @returns If there is currently a visible WindowClient, this method will resolve to true,\r\n * otherwise false.\r\n */\n\n\nfunction hasVisibleClients(clientList) {\n return clientList.some(function (client) {\n return client.visibilityState === 'visible' && // Ignore chrome-extension clients as that matches the background pages of extensions, which\n // are always considered visible for some reason.\n !client.url.startsWith('chrome-extension://');\n });\n}\n\nfunction sendMessagePayloadInternalToWindows(clientList, internalPayload) {\n var e_2, _a;\n\n internalPayload.isFirebaseMessaging = true;\n internalPayload.messageType = MessageType.PUSH_RECEIVED;\n\n try {\n for (var clientList_2 = __values(clientList), clientList_2_1 = clientList_2.next(); !clientList_2_1.done; clientList_2_1 = clientList_2.next()) {\n var client = clientList_2_1.value;\n client.postMessage(internalPayload);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (clientList_2_1 && !clientList_2_1.done && (_a = clientList_2.return)) _a.call(clientList_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n}\n\nfunction getClientList() {\n return self.clients.matchAll({\n type: 'window',\n includeUncontrolled: true // TS doesn't know that \"type: 'window'\" means it'll return WindowClient[]\n\n });\n}\n\nfunction showNotification(notificationPayloadInternal) {\n var _a; // Note: Firefox does not support the maxActions property.\n // https://developer.mozilla.org/en-US/docs/Web/API/notification/maxActions\n\n\n var actions = notificationPayloadInternal.actions;\n var maxActions = Notification.maxActions;\n\n if (actions && maxActions && actions.length > maxActions) {\n console.warn(\"This browser only supports \" + maxActions + \" actions. The remaining actions will not be displayed.\");\n }\n\n return self.registration.showNotification((_a =\n /* title= */\n notificationPayloadInternal.title) !== null && _a !== void 0 ? _a : '', notificationPayloadInternal);\n}\n\nfunction getLink(payload) {\n var _a, _b, _c; // eslint-disable-next-line camelcase\n\n\n var link = (_b = (_a = payload.fcmOptions) === null || _a === void 0 ? void 0 : _a.link) !== null && _b !== void 0 ? _b : (_c = payload.notification) === null || _c === void 0 ? void 0 : _c.click_action;\n\n if (link) {\n return link;\n }\n\n if (isConsoleMessage(payload.data)) {\n // Notification created in the Firebase Console. Redirect to origin.\n return self.location.origin;\n } else {\n return null;\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar WindowController =\n/** @class */\nfunction () {\n function WindowController(firebaseDependencies) {\n var _this = this;\n\n this.firebaseDependencies = firebaseDependencies;\n this.vapidKey = null;\n this.onMessageCallback = null;\n navigator.serviceWorker.addEventListener('message', function (e) {\n return _this.messageEventListener(e);\n });\n }\n\n Object.defineProperty(WindowController.prototype, \"app\", {\n get: function get() {\n return this.firebaseDependencies.app;\n },\n enumerable: false,\n configurable: true\n });\n\n WindowController.prototype.messageEventListener = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var internalPayload, dataPayload;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n internalPayload = event.data;\n\n if (!internalPayload.isFirebaseMessaging) {\n return [2\n /*return*/\n ];\n } // onMessageCallback is either a function or observer/subscriber.\n // TODO: in the modularization release, have onMessage handle type MessagePayload as supposed to\n // the legacy payload where some fields are in snake cases.\n\n\n if (this.onMessageCallback && internalPayload.messageType === MessageType.PUSH_RECEIVED) {\n if (typeof this.onMessageCallback === 'function') {\n this.onMessageCallback(stripInternalFields(Object.assign({}, internalPayload)));\n } else {\n this.onMessageCallback.next(Object.assign({}, internalPayload));\n }\n }\n\n dataPayload = internalPayload.data;\n if (!(isConsoleMessage(dataPayload) && dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.logEvent(internalPayload.messageType, dataPayload)];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n WindowController.prototype.getVapidKey = function () {\n return this.vapidKey;\n };\n\n WindowController.prototype.getSwReg = function () {\n return this.swRegistration;\n };\n\n WindowController.prototype.getToken = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(Notification.permission === 'default')) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , Notification.requestPermission()];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n if (Notification.permission !== 'granted') {\n throw ERROR_FACTORY.create(\"permission-blocked\"\n /* PERMISSION_BLOCKED */\n );\n }\n\n return [4\n /*yield*/\n , this.updateVapidKey(options === null || options === void 0 ? void 0 : options.vapidKey)];\n\n case 3:\n _a.sent();\n\n return [4\n /*yield*/\n , this.updateSwReg(options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration)];\n\n case 4:\n _a.sent();\n\n return [2\n /*return*/\n , getToken(this.firebaseDependencies, this.swRegistration, this.vapidKey)];\n }\n });\n });\n };\n\n WindowController.prototype.updateVapidKey = function (vapidKey) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!!vapidKey) {\n this.vapidKey = vapidKey;\n } else if (!this.vapidKey) {\n this.vapidKey = DEFAULT_VAPID_KEY;\n }\n\n return [2\n /*return*/\n ];\n });\n });\n };\n\n WindowController.prototype.updateSwReg = function (swRegistration) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!swRegistration && !this.swRegistration)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.registerDefaultSw()];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n if (!swRegistration && !!this.swRegistration) {\n return [2\n /*return*/\n ];\n }\n\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\n throw ERROR_FACTORY.create(\"invalid-sw-registration\"\n /* INVALID_SW_REGISTRATION */\n );\n }\n\n this.swRegistration = swRegistration;\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n WindowController.prototype.registerDefaultSw = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, e_1;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2,, 3]);\n\n _a = this;\n return [4\n /*yield*/\n , navigator.serviceWorker.register(DEFAULT_SW_PATH, {\n scope: DEFAULT_SW_SCOPE\n })];\n\n case 1:\n _a.swRegistration = _b.sent(); // The timing when browser updates sw when sw has an update is unreliable by my experiment. It\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\n // is stuck with the old version. For example,\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\n // sw if there was an update.\n\n this.swRegistration.update().catch(function () {\n /* it is non blocking and we don't care if it failed */\n });\n return [3\n /*break*/\n , 3];\n\n case 2:\n e_1 = _b.sent();\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\"\n /* FAILED_DEFAULT_REGISTRATION */\n , {\n browserErrorMessage: e_1.message\n });\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n WindowController.prototype.deleteToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.swRegistration) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.registerDefaultSw()];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n , deleteToken(this.firebaseDependencies, this.swRegistration)];\n }\n });\n });\n };\n /**\r\n * Request permission if it is not currently granted.\r\n *\r\n * @return Resolves if the permission was granted, rejects otherwise.\r\n *\r\n * @deprecated Use Notification.requestPermission() instead.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Notification/requestPermission\r\n */\n\n\n WindowController.prototype.requestPermission = function () {\n return __awaiter(this, void 0, void 0, function () {\n var permissionResult;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Notification.permission === 'granted') {\n return [2\n /*return*/\n ];\n }\n\n return [4\n /*yield*/\n , Notification.requestPermission()];\n\n case 1:\n permissionResult = _a.sent();\n\n if (permissionResult === 'granted') {\n return [2\n /*return*/\n ];\n } else if (permissionResult === 'denied') {\n throw ERROR_FACTORY.create(\"permission-blocked\"\n /* PERMISSION_BLOCKED */\n );\n } else {\n throw ERROR_FACTORY.create(\"permission-default\"\n /* PERMISSION_DEFAULT */\n );\n }\n\n }\n });\n });\n };\n /**\r\n * @deprecated. Use getToken(options?: {vapidKey?: string; serviceWorkerRegistration?:\r\n * ServiceWorkerRegistration;}): Promise instead.\r\n */\n\n\n WindowController.prototype.usePublicVapidKey = function (vapidKey) {\n if (this.vapidKey !== null) {\n throw ERROR_FACTORY.create(\"use-vapid-key-after-get-token\"\n /* USE_VAPID_KEY_AFTER_GET_TOKEN */\n );\n }\n\n if (typeof vapidKey !== 'string' || vapidKey.length === 0) {\n throw ERROR_FACTORY.create(\"invalid-vapid-key\"\n /* INVALID_VAPID_KEY */\n );\n }\n\n this.vapidKey = vapidKey;\n };\n /**\r\n * @deprecated. Use getToken(options?: {vapidKey?: string; serviceWorkerRegistration?:\r\n * ServiceWorkerRegistration;}): Promise instead.\r\n */\n\n\n WindowController.prototype.useServiceWorker = function (swRegistration) {\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\n throw ERROR_FACTORY.create(\"invalid-sw-registration\"\n /* INVALID_SW_REGISTRATION */\n );\n }\n\n if (this.swRegistration) {\n throw ERROR_FACTORY.create(\"use-sw-after-get-token\"\n /* USE_SW_AFTER_GET_TOKEN */\n );\n }\n\n this.swRegistration = swRegistration;\n };\n /**\r\n * @param nextOrObserver An observer object or a function triggered on message.\r\n *\r\n * @return The unsubscribe function for the observer.\r\n */\n\n\n WindowController.prototype.onMessage = function (nextOrObserver) {\n var _this = this;\n\n this.onMessageCallback = nextOrObserver;\n return function () {\n _this.onMessageCallback = null;\n };\n };\n\n WindowController.prototype.setBackgroundMessageHandler = function () {\n throw ERROR_FACTORY.create(\"only-available-in-sw\"\n /* AVAILABLE_IN_SW */\n );\n };\n\n WindowController.prototype.onBackgroundMessage = function () {\n throw ERROR_FACTORY.create(\"only-available-in-sw\"\n /* AVAILABLE_IN_SW */\n );\n };\n /**\r\n * @deprecated No-op. It was initially designed with token rotation requests from server in mind.\r\n * However, the plan to implement such feature was abandoned.\r\n */\n\n\n WindowController.prototype.onTokenRefresh = function () {\n return function () {};\n };\n\n WindowController.prototype.logEvent = function (messageType, data) {\n return __awaiter(this, void 0, void 0, function () {\n var eventType, analytics;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventType = getEventType(messageType);\n return [4\n /*yield*/\n , this.firebaseDependencies.analyticsProvider.get()];\n\n case 1:\n analytics = _a.sent();\n analytics.logEvent(eventType, {\n /* eslint-disable camelcase */\n message_id: data[CONSOLE_CAMPAIGN_ID],\n message_name: data[CONSOLE_CAMPAIGN_NAME],\n message_time: data[CONSOLE_CAMPAIGN_TIME],\n message_device_time: Math.floor(Date.now() / 1000)\n /* eslint-enable camelcase */\n\n });\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return WindowController;\n}();\n\nfunction getEventType(messageType) {\n switch (messageType) {\n case MessageType.NOTIFICATION_CLICKED:\n return 'notification_open';\n\n case MessageType.PUSH_RECEIVED:\n return 'notification_foreground';\n\n default:\n throw new Error();\n }\n}\n\nfunction stripInternalFields(internalPayload) {\n delete internalPayload.messageType;\n delete internalPayload.isFirebaseMessaging;\n return internalPayload;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction extractAppConfig(app) {\n var e_1, _a;\n\n if (!app || !app.options) {\n throw getMissingValueError('App Configuration Object');\n }\n\n if (!app.name) {\n throw getMissingValueError('App Name');\n } // Required app config keys\n\n\n var configKeys = ['projectId', 'apiKey', 'appId', 'messagingSenderId'];\n var options = app.options;\n\n try {\n for (var configKeys_1 = __values(configKeys), configKeys_1_1 = configKeys_1.next(); !configKeys_1_1.done; configKeys_1_1 = configKeys_1.next()) {\n var keyName = configKeys_1_1.value;\n\n if (!options[keyName]) {\n throw getMissingValueError(keyName);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configKeys_1_1 && !configKeys_1_1.done && (_a = configKeys_1.return)) _a.call(configKeys_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return {\n appName: app.name,\n projectId: options.projectId,\n apiKey: options.apiKey,\n appId: options.appId,\n senderId: options.messagingSenderId\n };\n}\n\nfunction getMissingValueError(valueName) {\n return ERROR_FACTORY.create(\"missing-app-config-values\"\n /* MISSING_APP_CONFIG_VALUES */\n , {\n valueName: valueName\n });\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar MESSAGING_NAME = 'messaging';\n\nfunction factoryMethod(container) {\n // Dependencies.\n var app = container.getProvider('app').getImmediate();\n var appConfig = extractAppConfig(app);\n var installations = container.getProvider('installations').getImmediate();\n var analyticsProvider = container.getProvider('analytics-internal');\n var firebaseDependencies = {\n app: app,\n appConfig: appConfig,\n installations: installations,\n analyticsProvider: analyticsProvider\n };\n\n if (!isSupported()) {\n throw ERROR_FACTORY.create(\"unsupported-browser\"\n /* UNSUPPORTED_BROWSER */\n );\n }\n\n if (self && 'ServiceWorkerGlobalScope' in self) {\n // Running in ServiceWorker context\n return new SwController(firebaseDependencies);\n } else {\n // Assume we are in the window context.\n return new WindowController(firebaseDependencies);\n }\n}\n\nvar NAMESPACE_EXPORTS = {\n isSupported: isSupported\n};\nfirebase.INTERNAL.registerComponent(new Component(MESSAGING_NAME, factoryMethod, \"PUBLIC\"\n/* PUBLIC */\n).setServiceProps(NAMESPACE_EXPORTS));\n\nfunction isSupported() {\n if (self && 'ServiceWorkerGlobalScope' in self) {\n // Running in ServiceWorker context\n return isSWControllerSupported();\n } else {\n // Assume we are in the window context.\n return isWindowControllerSupported();\n }\n}\n/**\r\n * Checks to see if the required APIs exist.\r\n */\n\n\nfunction isWindowControllerSupported() {\n return 'indexedDB' in window && indexedDB !== null && navigator.cookieEnabled && 'serviceWorker' in navigator && 'PushManager' in window && 'Notification' in window && 'fetch' in window && ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') && PushSubscription.prototype.hasOwnProperty('getKey');\n}\n/**\r\n * Checks to see if the required APIs exist within SW Context.\r\n */\n\n\nfunction isSWControllerSupported() {\n return 'indexedDB' in self && indexedDB !== null && 'PushManager' in self && 'Notification' in self && ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') && PushSubscription.prototype.hasOwnProperty('getKey');\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import firebase from '@firebase/app';\nimport { __awaiter, __generator, __spreadArrays } from 'tslib';\nimport { Component } from '@firebase/component';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview Constants used in the Firebase Storage library.\r\n */\n\n/**\r\n * Domain name for firebase storage.\r\n */\n\nvar DEFAULT_HOST = 'firebasestorage.googleapis.com';\n/**\r\n * The key in Firebase config json for the storage bucket.\r\n */\n\nvar CONFIG_STORAGE_BUCKET_KEY = 'storageBucket';\n/**\r\n * 2 minutes\r\n *\r\n * The timeout for all operations except upload.\r\n */\n\nvar DEFAULT_MAX_OPERATION_RETRY_TIME = 2 * 60 * 1000;\n/**\r\n * 10 minutes\r\n *\r\n * The timeout for upload.\r\n */\n\nvar DEFAULT_MAX_UPLOAD_RETRY_TIME = 10 * 60 * 1000;\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar FirebaseStorageError =\n/** @class */\nfunction () {\n function FirebaseStorageError(code, message) {\n this.code_ = prependCode(code);\n this.message_ = 'Firebase Storage: ' + message;\n this.serverResponse_ = null;\n this.name_ = 'FirebaseError';\n }\n\n FirebaseStorageError.prototype.codeProp = function () {\n return this.code;\n };\n\n FirebaseStorageError.prototype.codeEquals = function (code) {\n return prependCode(code) === this.codeProp();\n };\n\n FirebaseStorageError.prototype.serverResponseProp = function () {\n return this.serverResponse_;\n };\n\n FirebaseStorageError.prototype.setServerResponseProp = function (serverResponse) {\n this.serverResponse_ = serverResponse;\n };\n\n Object.defineProperty(FirebaseStorageError.prototype, \"name\", {\n get: function get() {\n return this.name_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseStorageError.prototype, \"code\", {\n get: function get() {\n return this.code_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseStorageError.prototype, \"message\", {\n get: function get() {\n if (this.serverResponse_) {\n return this.message_ + '\\n' + this.serverResponse_;\n } else {\n return this.message_;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseStorageError.prototype, \"serverResponse\", {\n get: function get() {\n return this.serverResponse_;\n },\n enumerable: false,\n configurable: true\n });\n return FirebaseStorageError;\n}();\n\nvar Code = {\n // Shared between all platforms\n UNKNOWN: 'unknown',\n OBJECT_NOT_FOUND: 'object-not-found',\n BUCKET_NOT_FOUND: 'bucket-not-found',\n PROJECT_NOT_FOUND: 'project-not-found',\n QUOTA_EXCEEDED: 'quota-exceeded',\n UNAUTHENTICATED: 'unauthenticated',\n UNAUTHORIZED: 'unauthorized',\n RETRY_LIMIT_EXCEEDED: 'retry-limit-exceeded',\n INVALID_CHECKSUM: 'invalid-checksum',\n CANCELED: 'canceled',\n // JS specific\n INVALID_EVENT_NAME: 'invalid-event-name',\n INVALID_URL: 'invalid-url',\n INVALID_DEFAULT_BUCKET: 'invalid-default-bucket',\n NO_DEFAULT_BUCKET: 'no-default-bucket',\n CANNOT_SLICE_BLOB: 'cannot-slice-blob',\n SERVER_FILE_WRONG_SIZE: 'server-file-wrong-size',\n NO_DOWNLOAD_URL: 'no-download-url',\n INVALID_ARGUMENT: 'invalid-argument',\n INVALID_ARGUMENT_COUNT: 'invalid-argument-count',\n APP_DELETED: 'app-deleted',\n INVALID_ROOT_OPERATION: 'invalid-root-operation',\n INVALID_FORMAT: 'invalid-format',\n INTERNAL_ERROR: 'internal-error'\n};\n\nfunction prependCode(code) {\n return 'storage/' + code;\n}\n\nfunction unknown() {\n var message = 'An unknown error occurred, please check the error payload for ' + 'server response.';\n return new FirebaseStorageError(Code.UNKNOWN, message);\n}\n\nfunction objectNotFound(path) {\n return new FirebaseStorageError(Code.OBJECT_NOT_FOUND, \"Object '\" + path + \"' does not exist.\");\n}\n\nfunction quotaExceeded(bucket) {\n return new FirebaseStorageError(Code.QUOTA_EXCEEDED, \"Quota for bucket '\" + bucket + \"' exceeded, please view quota on \" + 'https://firebase.google.com/pricing/.');\n}\n\nfunction unauthenticated() {\n var message = 'User is not authenticated, please authenticate using Firebase ' + 'Authentication and try again.';\n return new FirebaseStorageError(Code.UNAUTHENTICATED, message);\n}\n\nfunction unauthorized(path) {\n return new FirebaseStorageError(Code.UNAUTHORIZED, \"User does not have permission to access '\" + path + \"'.\");\n}\n\nfunction retryLimitExceeded() {\n return new FirebaseStorageError(Code.RETRY_LIMIT_EXCEEDED, 'Max retry time for operation exceeded, please try again.');\n}\n\nfunction canceled() {\n return new FirebaseStorageError(Code.CANCELED, 'User canceled the upload/download.');\n}\n\nfunction invalidUrl(url) {\n return new FirebaseStorageError(Code.INVALID_URL, \"Invalid URL '\" + url + \"'.\");\n}\n\nfunction invalidDefaultBucket(bucket) {\n return new FirebaseStorageError(Code.INVALID_DEFAULT_BUCKET, \"Invalid default bucket '\" + bucket + \"'.\");\n}\n\nfunction cannotSliceBlob() {\n return new FirebaseStorageError(Code.CANNOT_SLICE_BLOB, 'Cannot slice blob for upload. Please retry the upload.');\n}\n\nfunction serverFileWrongSize() {\n return new FirebaseStorageError(Code.SERVER_FILE_WRONG_SIZE, 'Server recorded incorrect upload file size, please retry the upload.');\n}\n\nfunction noDownloadURL() {\n return new FirebaseStorageError(Code.NO_DOWNLOAD_URL, 'The given file does not have any download URLs.');\n}\n\nfunction invalidArgument(index, fnName, message) {\n return new FirebaseStorageError(Code.INVALID_ARGUMENT, 'Invalid argument in `' + fnName + '` at index ' + index + ': ' + message);\n}\n\nfunction invalidArgumentCount(argMin, argMax, fnName, real) {\n var countPart;\n var plural;\n\n if (argMin === argMax) {\n countPart = argMin;\n plural = argMin === 1 ? 'argument' : 'arguments';\n } else {\n countPart = 'between ' + argMin + ' and ' + argMax;\n plural = 'arguments';\n }\n\n return new FirebaseStorageError(Code.INVALID_ARGUMENT_COUNT, 'Invalid argument count in `' + fnName + '`: Expected ' + countPart + ' ' + plural + ', received ' + real + '.');\n}\n\nfunction appDeleted() {\n return new FirebaseStorageError(Code.APP_DELETED, 'The Firebase app was deleted.');\n}\n/**\r\n * @param name The name of the operation that was invalid.\r\n */\n\n\nfunction invalidRootOperation(name) {\n return new FirebaseStorageError(Code.INVALID_ROOT_OPERATION, \"The operation '\" + name + \"' cannot be performed on a root reference, create a non-root \" + \"reference using child, such as .child('file.png').\");\n}\n/**\r\n * @param format The format that was not valid.\r\n * @param message A message describing the format violation.\r\n */\n\n\nfunction invalidFormat(format, message) {\n return new FirebaseStorageError(Code.INVALID_FORMAT, \"String does not match format '\" + format + \"': \" + message);\n}\n/**\r\n * @param message A message describing the internal error.\r\n */\n\n\nfunction internalError(message) {\n throw new FirebaseStorageError(Code.INTERNAL_ERROR, 'Internal error: ' + message);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar StringFormat = {\n RAW: 'raw',\n BASE64: 'base64',\n BASE64URL: 'base64url',\n DATA_URL: 'data_url'\n};\n\nfunction formatValidator(stringFormat) {\n switch (stringFormat) {\n case StringFormat.RAW:\n case StringFormat.BASE64:\n case StringFormat.BASE64URL:\n case StringFormat.DATA_URL:\n return;\n\n default:\n throw 'Expected one of the event types: [' + StringFormat.RAW + ', ' + StringFormat.BASE64 + ', ' + StringFormat.BASE64URL + ', ' + StringFormat.DATA_URL + '].';\n }\n}\n/**\r\n * @struct\r\n */\n\n\nvar StringData =\n/** @class */\nfunction () {\n function StringData(data, contentType) {\n this.data = data;\n this.contentType = contentType || null;\n }\n\n return StringData;\n}();\n\nfunction dataFromString(format, stringData) {\n switch (format) {\n case StringFormat.RAW:\n return new StringData(utf8Bytes_(stringData));\n\n case StringFormat.BASE64:\n case StringFormat.BASE64URL:\n return new StringData(base64Bytes_(format, stringData));\n\n case StringFormat.DATA_URL:\n return new StringData(dataURLBytes_(stringData), dataURLContentType_(stringData));\n // do nothing\n } // assert(false);\n\n\n throw unknown();\n}\n\nfunction utf8Bytes_(value) {\n var b = [];\n\n for (var i = 0; i < value.length; i++) {\n var c = value.charCodeAt(i);\n\n if (c <= 127) {\n b.push(c);\n } else {\n if (c <= 2047) {\n b.push(192 | c >> 6, 128 | c & 63);\n } else {\n if ((c & 64512) === 55296) {\n // The start of a surrogate pair.\n var valid = i < value.length - 1 && (value.charCodeAt(i + 1) & 64512) === 56320;\n\n if (!valid) {\n // The second surrogate wasn't there.\n b.push(239, 191, 189);\n } else {\n var hi = c;\n var lo = value.charCodeAt(++i);\n c = 65536 | (hi & 1023) << 10 | lo & 1023;\n b.push(240 | c >> 18, 128 | c >> 12 & 63, 128 | c >> 6 & 63, 128 | c & 63);\n }\n } else {\n if ((c & 64512) === 56320) {\n // Invalid low surrogate.\n b.push(239, 191, 189);\n } else {\n b.push(224 | c >> 12, 128 | c >> 6 & 63, 128 | c & 63);\n }\n }\n }\n }\n }\n\n return new Uint8Array(b);\n}\n\nfunction percentEncodedBytes_(value) {\n var decoded;\n\n try {\n decoded = decodeURIComponent(value);\n } catch (e) {\n throw invalidFormat(StringFormat.DATA_URL, 'Malformed data URL.');\n }\n\n return utf8Bytes_(decoded);\n}\n\nfunction base64Bytes_(format, value) {\n switch (format) {\n case StringFormat.BASE64:\n {\n var hasMinus = value.indexOf('-') !== -1;\n var hasUnder = value.indexOf('_') !== -1;\n\n if (hasMinus || hasUnder) {\n var invalidChar = hasMinus ? '-' : '_';\n throw invalidFormat(format, \"Invalid character '\" + invalidChar + \"' found: is it base64url encoded?\");\n }\n\n break;\n }\n\n case StringFormat.BASE64URL:\n {\n var hasPlus = value.indexOf('+') !== -1;\n var hasSlash = value.indexOf('/') !== -1;\n\n if (hasPlus || hasSlash) {\n var invalidChar = hasPlus ? '+' : '/';\n throw invalidFormat(format, \"Invalid character '\" + invalidChar + \"' found: is it base64 encoded?\");\n }\n\n value = value.replace(/-/g, '+').replace(/_/g, '/');\n break;\n }\n // do nothing\n }\n\n var bytes;\n\n try {\n bytes = atob(value);\n } catch (e) {\n throw invalidFormat(format, 'Invalid character found');\n }\n\n var array = new Uint8Array(bytes.length);\n\n for (var i = 0; i < bytes.length; i++) {\n array[i] = bytes.charCodeAt(i);\n }\n\n return array;\n}\n/**\r\n * @struct\r\n */\n\n\nvar DataURLParts =\n/** @class */\nfunction () {\n function DataURLParts(dataURL) {\n this.base64 = false;\n this.contentType = null;\n var matches = dataURL.match(/^data:([^,]+)?,/);\n\n if (matches === null) {\n throw invalidFormat(StringFormat.DATA_URL, \"Must be formatted 'data:[][;base64],\");\n }\n\n var middle = matches[1] || null;\n\n if (middle != null) {\n this.base64 = endsWith(middle, ';base64');\n this.contentType = this.base64 ? middle.substring(0, middle.length - ';base64'.length) : middle;\n }\n\n this.rest = dataURL.substring(dataURL.indexOf(',') + 1);\n }\n\n return DataURLParts;\n}();\n\nfunction dataURLBytes_(dataUrl) {\n var parts = new DataURLParts(dataUrl);\n\n if (parts.base64) {\n return base64Bytes_(StringFormat.BASE64, parts.rest);\n } else {\n return percentEncodedBytes_(parts.rest);\n }\n}\n\nfunction dataURLContentType_(dataUrl) {\n var parts = new DataURLParts(dataUrl);\n return parts.contentType;\n}\n\nfunction endsWith(s, end) {\n var longEnough = s.length >= end.length;\n\n if (!longEnough) {\n return false;\n }\n\n return s.substring(s.length - end.length) === end;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar TaskEvent = {\n /** Triggered whenever the task changes or progress is updated. */\n STATE_CHANGED: 'state_changed'\n};\nvar InternalTaskState = {\n RUNNING: 'running',\n PAUSING: 'pausing',\n PAUSED: 'paused',\n SUCCESS: 'success',\n CANCELING: 'canceling',\n CANCELED: 'canceled',\n ERROR: 'error'\n};\nvar TaskState = {\n /** The task is currently transferring data. */\n RUNNING: 'running',\n\n /** The task was paused by the user. */\n PAUSED: 'paused',\n\n /** The task completed successfully. */\n SUCCESS: 'success',\n\n /** The task was canceled. */\n CANCELED: 'canceled',\n\n /** The task failed with an error. */\n ERROR: 'error'\n};\n\nfunction taskStateFromInternalTaskState(state) {\n switch (state) {\n case InternalTaskState.RUNNING:\n case InternalTaskState.PAUSING:\n case InternalTaskState.CANCELING:\n return TaskState.RUNNING;\n\n case InternalTaskState.PAUSED:\n return TaskState.PAUSED;\n\n case InternalTaskState.SUCCESS:\n return TaskState.SUCCESS;\n\n case InternalTaskState.CANCELED:\n return TaskState.CANCELED;\n\n case InternalTaskState.ERROR:\n return TaskState.ERROR;\n\n default:\n // TODO(andysoto): assert(false);\n return TaskState.ERROR;\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @return False if the object is undefined or null, true otherwise.\r\n */\n\n\nfunction isDef(p) {\n return p != null;\n}\n\nfunction isJustDef(p) {\n return p !== void 0;\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction isFunction(p) {\n return typeof p === 'function';\n}\n\nfunction isObject(p) {\n return typeof p === 'object';\n}\n\nfunction isNonNullObject(p) {\n return isObject(p) && p !== null;\n}\n\nfunction isNonArrayObject(p) {\n return isObject(p) && !Array.isArray(p);\n}\n\nfunction isString(p) {\n return typeof p === 'string' || p instanceof String;\n}\n\nfunction isInteger(p) {\n return isNumber(p) && Number.isInteger(p);\n}\n\nfunction isNumber(p) {\n return typeof p === 'number' || p instanceof Number;\n}\n\nfunction isNativeBlob(p) {\n return isNativeBlobDefined() && p instanceof Blob;\n}\n\nfunction isNativeBlobDefined() {\n return typeof Blob !== 'undefined';\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @enum{number}\r\n */\n\n\nvar ErrorCode;\n\n(function (ErrorCode) {\n ErrorCode[ErrorCode[\"NO_ERROR\"] = 0] = \"NO_ERROR\";\n ErrorCode[ErrorCode[\"NETWORK_ERROR\"] = 1] = \"NETWORK_ERROR\";\n ErrorCode[ErrorCode[\"ABORT\"] = 2] = \"ABORT\";\n})(ErrorCode || (ErrorCode = {}));\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * We use this instead of goog.net.XhrIo because goog.net.XhrIo is hyuuuuge and\r\n * doesn't work in React Native on Android.\r\n */\n\n\nvar NetworkXhrIo =\n/** @class */\nfunction () {\n function NetworkXhrIo() {\n var _this = this;\n\n this.sent_ = false;\n this.xhr_ = new XMLHttpRequest();\n this.errorCode_ = ErrorCode.NO_ERROR;\n this.sendPromise_ = new Promise(function (resolve) {\n _this.xhr_.addEventListener('abort', function () {\n _this.errorCode_ = ErrorCode.ABORT;\n resolve(_this);\n });\n\n _this.xhr_.addEventListener('error', function () {\n _this.errorCode_ = ErrorCode.NETWORK_ERROR;\n resolve(_this);\n });\n\n _this.xhr_.addEventListener('load', function () {\n resolve(_this);\n });\n });\n }\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.send = function (url, method, body, headers) {\n if (this.sent_) {\n throw internalError('cannot .send() more than once');\n }\n\n this.sent_ = true;\n this.xhr_.open(method, url, true);\n\n if (isDef(headers)) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n this.xhr_.setRequestHeader(key, headers[key].toString());\n }\n }\n }\n\n if (isDef(body)) {\n this.xhr_.send(body);\n } else {\n this.xhr_.send();\n }\n\n return this.sendPromise_;\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.getErrorCode = function () {\n if (!this.sent_) {\n throw internalError('cannot .getErrorCode() before sending');\n }\n\n return this.errorCode_;\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.getStatus = function () {\n if (!this.sent_) {\n throw internalError('cannot .getStatus() before sending');\n }\n\n try {\n return this.xhr_.status;\n } catch (e) {\n return -1;\n }\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.getResponseText = function () {\n if (!this.sent_) {\n throw internalError('cannot .getResponseText() before sending');\n }\n\n return this.xhr_.responseText;\n };\n /**\r\n * Aborts the request.\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.abort = function () {\n this.xhr_.abort();\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.getResponseHeader = function (header) {\n return this.xhr_.getResponseHeader(header);\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.addUploadProgressListener = function (listener) {\n if (isDef(this.xhr_.upload)) {\n this.xhr_.upload.addEventListener('progress', listener);\n }\n };\n /**\r\n * @override\r\n */\n\n\n NetworkXhrIo.prototype.removeUploadProgressListener = function (listener) {\n if (isDef(this.xhr_.upload)) {\n this.xhr_.upload.removeEventListener('progress', listener);\n }\n };\n\n return NetworkXhrIo;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Factory-like class for creating XhrIo instances.\r\n */\n\n\nvar XhrIoPool =\n/** @class */\nfunction () {\n function XhrIoPool() {}\n\n XhrIoPool.prototype.createXhrIo = function () {\n return new NetworkXhrIo();\n };\n\n return XhrIoPool;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction getBlobBuilder() {\n if (typeof BlobBuilder !== 'undefined') {\n return BlobBuilder;\n } else if (typeof WebKitBlobBuilder !== 'undefined') {\n return WebKitBlobBuilder;\n } else {\n return undefined;\n }\n}\n/**\r\n * Concatenates one or more values together and converts them to a Blob.\r\n *\r\n * @param args The values that will make up the resulting blob.\r\n * @return The blob.\r\n */\n\n\nfunction getBlob() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var BlobBuilder = getBlobBuilder();\n\n if (BlobBuilder !== undefined) {\n var bb = new BlobBuilder();\n\n for (var i = 0; i < args.length; i++) {\n bb.append(args[i]);\n }\n\n return bb.getBlob();\n } else {\n if (isNativeBlobDefined()) {\n return new Blob(args);\n } else {\n throw Error(\"This browser doesn't seem to support creating Blobs\");\n }\n }\n}\n/**\r\n * Slices the blob. The returned blob contains data from the start byte\r\n * (inclusive) till the end byte (exclusive). Negative indices cannot be used.\r\n *\r\n * @param blob The blob to be sliced.\r\n * @param start Index of the starting byte.\r\n * @param end Index of the ending byte.\r\n * @return The blob slice or null if not supported.\r\n */\n\n\nfunction sliceBlob(blob, start, end) {\n if (blob.webkitSlice) {\n return blob.webkitSlice(start, end);\n } else if (blob.mozSlice) {\n return blob.mozSlice(start, end);\n } else if (blob.slice) {\n return blob.slice(start, end);\n }\n\n return null;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @param opt_elideCopy If true, doesn't copy mutable input data\r\n * (e.g. Uint8Arrays). Pass true only if you know the objects will not be\r\n * modified after this blob's construction.\r\n */\n\n\nvar FbsBlob =\n/** @class */\nfunction () {\n function FbsBlob(data, elideCopy) {\n var size = 0;\n var blobType = '';\n\n if (isNativeBlob(data)) {\n this.data_ = data;\n size = data.size;\n blobType = data.type;\n } else if (data instanceof ArrayBuffer) {\n if (elideCopy) {\n this.data_ = new Uint8Array(data);\n } else {\n this.data_ = new Uint8Array(data.byteLength);\n this.data_.set(new Uint8Array(data));\n }\n\n size = this.data_.length;\n } else if (data instanceof Uint8Array) {\n if (elideCopy) {\n this.data_ = data;\n } else {\n this.data_ = new Uint8Array(data.length);\n this.data_.set(data);\n }\n\n size = data.length;\n }\n\n this.size_ = size;\n this.type_ = blobType;\n }\n\n FbsBlob.prototype.size = function () {\n return this.size_;\n };\n\n FbsBlob.prototype.type = function () {\n return this.type_;\n };\n\n FbsBlob.prototype.slice = function (startByte, endByte) {\n if (isNativeBlob(this.data_)) {\n var realBlob = this.data_;\n var sliced = sliceBlob(realBlob, startByte, endByte);\n\n if (sliced === null) {\n return null;\n }\n\n return new FbsBlob(sliced);\n } else {\n var slice = new Uint8Array(this.data_.buffer, startByte, endByte - startByte);\n return new FbsBlob(slice, true);\n }\n };\n\n FbsBlob.getBlob = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (isNativeBlobDefined()) {\n var blobby = args.map(function (val) {\n if (val instanceof FbsBlob) {\n return val.data_;\n } else {\n return val;\n }\n });\n return new FbsBlob(getBlob.apply(null, blobby));\n } else {\n var uint8Arrays = args.map(function (val) {\n if (isString(val)) {\n return dataFromString(StringFormat.RAW, val).data;\n } else {\n // Blobs don't exist, so this has to be a Uint8Array.\n return val.data_;\n }\n });\n var finalLength_1 = 0;\n uint8Arrays.forEach(function (array) {\n finalLength_1 += array.byteLength;\n });\n var merged_1 = new Uint8Array(finalLength_1);\n var index_1 = 0;\n uint8Arrays.forEach(function (array) {\n for (var i = 0; i < array.length; i++) {\n merged_1[index_1++] = array[i];\n }\n });\n return new FbsBlob(merged_1, true);\n }\n };\n\n FbsBlob.prototype.uploadData = function () {\n return this.data_;\n };\n\n return FbsBlob;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @struct\r\n */\n\n\nvar Location =\n/** @class */\nfunction () {\n function Location(bucket, path) {\n this.bucket = bucket;\n this.path_ = path;\n }\n\n Object.defineProperty(Location.prototype, \"path\", {\n get: function get() {\n return this.path_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Location.prototype, \"isRoot\", {\n get: function get() {\n return this.path.length === 0;\n },\n enumerable: false,\n configurable: true\n });\n\n Location.prototype.fullServerUrl = function () {\n var encode = encodeURIComponent;\n return '/b/' + encode(this.bucket) + '/o/' + encode(this.path);\n };\n\n Location.prototype.bucketOnlyServerUrl = function () {\n var encode = encodeURIComponent;\n return '/b/' + encode(this.bucket) + '/o';\n };\n\n Location.makeFromBucketSpec = function (bucketString) {\n var bucketLocation;\n\n try {\n bucketLocation = Location.makeFromUrl(bucketString);\n } catch (e) {\n // Not valid URL, use as-is. This lets you put bare bucket names in\n // config.\n return new Location(bucketString, '');\n }\n\n if (bucketLocation.path === '') {\n return bucketLocation;\n } else {\n throw invalidDefaultBucket(bucketString);\n }\n };\n\n Location.makeFromUrl = function (url) {\n var location = null;\n var bucketDomain = '([A-Za-z0-9.\\\\-_]+)';\n\n function gsModify(loc) {\n if (loc.path.charAt(loc.path.length - 1) === '/') {\n loc.path_ = loc.path_.slice(0, -1);\n }\n }\n\n var gsPath = '(/(.*))?$';\n var gsRegex = new RegExp('^gs://' + bucketDomain + gsPath, 'i');\n var gsIndices = {\n bucket: 1,\n path: 3\n };\n\n function httpModify(loc) {\n loc.path_ = decodeURIComponent(loc.path);\n }\n\n var version = 'v[A-Za-z0-9_]+';\n var firebaseStorageHost = DEFAULT_HOST.replace(/[.]/g, '\\\\.');\n var firebaseStoragePath = '(/([^?#]*).*)?$';\n var firebaseStorageRegExp = new RegExp(\"^https?://\" + firebaseStorageHost + \"/\" + version + \"/b/\" + bucketDomain + \"/o\" + firebaseStoragePath, 'i');\n var firebaseStorageIndices = {\n bucket: 1,\n path: 3\n };\n var cloudStorageHost = '(?:storage.googleapis.com|storage.cloud.google.com)';\n var cloudStoragePath = '([^?#]*)';\n var cloudStorageRegExp = new RegExp(\"^https?://\" + cloudStorageHost + \"/\" + bucketDomain + \"/\" + cloudStoragePath, 'i');\n var cloudStorageIndices = {\n bucket: 1,\n path: 2\n };\n var groups = [{\n regex: gsRegex,\n indices: gsIndices,\n postModify: gsModify\n }, {\n regex: firebaseStorageRegExp,\n indices: firebaseStorageIndices,\n postModify: httpModify\n }, {\n regex: cloudStorageRegExp,\n indices: cloudStorageIndices,\n postModify: httpModify\n }];\n\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n var captures = group.regex.exec(url);\n\n if (captures) {\n var bucketValue = captures[group.indices.bucket];\n var pathValue = captures[group.indices.path];\n\n if (!pathValue) {\n pathValue = '';\n }\n\n location = new Location(bucketValue, pathValue);\n group.postModify(location);\n break;\n }\n }\n\n if (location == null) {\n throw invalidUrl(url);\n }\n\n return location;\n };\n\n return Location;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns the Object resulting from parsing the given JSON, or null if the\r\n * given string does not represent a JSON object.\r\n */\n\n\nfunction jsonObjectOrNull(s) {\n var obj;\n\n try {\n obj = JSON.parse(s);\n } catch (e) {\n return null;\n }\n\n if (isNonArrayObject(obj)) {\n return obj;\n } else {\n return null;\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview Contains helper methods for manipulating paths.\r\n */\n\n/**\r\n * @return Null if the path is already at the root.\r\n */\n\n\nfunction parent(path) {\n if (path.length === 0) {\n return null;\n }\n\n var index = path.lastIndexOf('/');\n\n if (index === -1) {\n return '';\n }\n\n var newPath = path.slice(0, index);\n return newPath;\n}\n\nfunction child(path, childPath) {\n var canonicalChildPath = childPath.split('/').filter(function (component) {\n return component.length > 0;\n }).join('/');\n\n if (path.length === 0) {\n return canonicalChildPath;\n } else {\n return path + '/' + canonicalChildPath;\n }\n}\n/**\r\n * Returns the last component of a path.\r\n * '/foo/bar' -> 'bar'\r\n * '/foo/bar/baz/' -> 'baz/'\r\n * '/a' -> 'a'\r\n */\n\n\nfunction lastComponent(path) {\n var index = path.lastIndexOf('/', path.length - 2);\n\n if (index === -1) {\n return path;\n } else {\n return path.slice(index + 1);\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction makeUrl(urlPart) {\n return \"https://\" + DEFAULT_HOST + \"/v0\" + urlPart;\n}\n\nfunction makeQueryString(params) {\n var encode = encodeURIComponent;\n var queryPart = '?';\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n // @ts-ignore TODO: remove once typescript is upgraded to 3.5.x\n var nextPart = encode(key) + '=' + encode(params[key]);\n queryPart = queryPart + nextPart + '&';\n }\n } // Chop off the extra '&' or '?' on the end\n\n\n queryPart = queryPart.slice(0, -1);\n return queryPart;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction noXform_(metadata, value) {\n return value;\n}\n/**\r\n * @struct\r\n */\n\n\nvar Mapping =\n/** @class */\nfunction () {\n function Mapping(server, local, writable, xform) {\n this.server = server;\n this.local = local || server;\n this.writable = !!writable;\n this.xform = xform || noXform_;\n }\n\n return Mapping;\n}();\n\nvar mappings_ = null;\n\nfunction xformPath(fullPath) {\n if (!isString(fullPath) || fullPath.length < 2) {\n return fullPath;\n } else {\n return lastComponent(fullPath);\n }\n}\n\nfunction getMappings() {\n if (mappings_) {\n return mappings_;\n }\n\n var mappings = [];\n mappings.push(new Mapping('bucket'));\n mappings.push(new Mapping('generation'));\n mappings.push(new Mapping('metageneration'));\n mappings.push(new Mapping('name', 'fullPath', true));\n\n function mappingsXformPath(_metadata, fullPath) {\n return xformPath(fullPath);\n }\n\n var nameMapping = new Mapping('name');\n nameMapping.xform = mappingsXformPath;\n mappings.push(nameMapping);\n /**\r\n * Coerces the second param to a number, if it is defined.\r\n */\n\n function xformSize(_metadata, size) {\n if (isDef(size)) {\n return Number(size);\n } else {\n return size;\n }\n }\n\n var sizeMapping = new Mapping('size');\n sizeMapping.xform = xformSize;\n mappings.push(sizeMapping);\n mappings.push(new Mapping('timeCreated'));\n mappings.push(new Mapping('updated'));\n mappings.push(new Mapping('md5Hash', null, true));\n mappings.push(new Mapping('cacheControl', null, true));\n mappings.push(new Mapping('contentDisposition', null, true));\n mappings.push(new Mapping('contentEncoding', null, true));\n mappings.push(new Mapping('contentLanguage', null, true));\n mappings.push(new Mapping('contentType', null, true));\n mappings.push(new Mapping('metadata', 'customMetadata', true));\n mappings_ = mappings;\n return mappings_;\n}\n\nfunction addRef(metadata, service) {\n function generateRef() {\n var bucket = metadata['bucket'];\n var path = metadata['fullPath'];\n var loc = new Location(bucket, path);\n return service.makeStorageReference(loc);\n }\n\n Object.defineProperty(metadata, 'ref', {\n get: generateRef\n });\n}\n\nfunction fromResource(service, resource, mappings) {\n var metadata = {};\n metadata['type'] = 'file';\n var len = mappings.length;\n\n for (var i = 0; i < len; i++) {\n var mapping = mappings[i];\n metadata[mapping.local] = mapping.xform(metadata, resource[mapping.server]);\n }\n\n addRef(metadata, service);\n return metadata;\n}\n\nfunction fromResourceString(service, resourceString, mappings) {\n var obj = jsonObjectOrNull(resourceString);\n\n if (obj === null) {\n return null;\n }\n\n var resource = obj;\n return fromResource(service, resource, mappings);\n}\n\nfunction downloadUrlFromResourceString(metadata, resourceString) {\n var obj = jsonObjectOrNull(resourceString);\n\n if (obj === null) {\n return null;\n }\n\n if (!isString(obj['downloadTokens'])) {\n // This can happen if objects are uploaded through GCS and retrieved\n // through list, so we don't want to throw an Error.\n return null;\n }\n\n var tokens = obj['downloadTokens'];\n\n if (tokens.length === 0) {\n return null;\n }\n\n var encode = encodeURIComponent;\n var tokensList = tokens.split(',');\n var urls = tokensList.map(function (token) {\n var bucket = metadata['bucket'];\n var path = metadata['fullPath'];\n var urlPart = '/b/' + encode(bucket) + '/o/' + encode(path);\n var base = makeUrl(urlPart);\n var queryString = makeQueryString({\n alt: 'media',\n token: token\n });\n return base + queryString;\n });\n return urls[0];\n}\n\nfunction toResourceString(metadata, mappings) {\n var resource = {};\n var len = mappings.length;\n\n for (var i = 0; i < len; i++) {\n var mapping = mappings[i];\n\n if (mapping.writable) {\n resource[mapping.server] = metadata[mapping.local];\n }\n }\n\n return JSON.stringify(resource);\n}\n\nfunction metadataValidator(p) {\n if (!isObject(p) || !p) {\n throw 'Expected Metadata object.';\n }\n\n for (var key in p) {\n if (p.hasOwnProperty(key)) {\n var val = p[key];\n\n if (key === 'customMetadata') {\n if (!isObject(val)) {\n throw 'Expected object for \\'customMetadata\\' mapping.';\n }\n } else {\n if (isNonNullObject(val)) {\n throw \"Mapping for '\" + key + \"' cannot be an object.\";\n }\n }\n }\n }\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar MAX_RESULTS_KEY = 'maxResults';\nvar MAX_MAX_RESULTS = 1000;\nvar PAGE_TOKEN_KEY = 'pageToken';\nvar PREFIXES_KEY = 'prefixes';\nvar ITEMS_KEY = 'items';\n\nfunction fromBackendResponse(service, bucket, resource) {\n var listResult = {\n prefixes: [],\n items: [],\n nextPageToken: resource['nextPageToken']\n };\n\n if (resource[PREFIXES_KEY]) {\n for (var _i = 0, _a = resource[PREFIXES_KEY]; _i < _a.length; _i++) {\n var path = _a[_i];\n var pathWithoutTrailingSlash = path.replace(/\\/$/, '');\n var reference = service.makeStorageReference(new Location(bucket, pathWithoutTrailingSlash));\n listResult.prefixes.push(reference);\n }\n }\n\n if (resource[ITEMS_KEY]) {\n for (var _b = 0, _c = resource[ITEMS_KEY]; _b < _c.length; _b++) {\n var item = _c[_b];\n var reference = service.makeStorageReference(new Location(bucket, item['name']));\n listResult.items.push(reference);\n }\n }\n\n return listResult;\n}\n\nfunction fromResponseString(service, bucket, resourceString) {\n var obj = jsonObjectOrNull(resourceString);\n\n if (obj === null) {\n return null;\n }\n\n var resource = obj;\n return fromBackendResponse(service, bucket, resource);\n}\n\nfunction listOptionsValidator(p) {\n if (!isObject(p) || !p) {\n throw 'Expected ListOptions object.';\n }\n\n for (var key in p) {\n if (key === MAX_RESULTS_KEY) {\n if (!isInteger(p[MAX_RESULTS_KEY]) || p[MAX_RESULTS_KEY] <= 0) {\n throw 'Expected maxResults to be a positive number.';\n }\n\n if (p[MAX_RESULTS_KEY] > 1000) {\n throw \"Expected maxResults to be less than or equal to \" + MAX_MAX_RESULTS + \".\";\n }\n } else if (key === PAGE_TOKEN_KEY) {\n if (p[PAGE_TOKEN_KEY] && !isString(p[PAGE_TOKEN_KEY])) {\n throw 'Expected pageToken to be string.';\n }\n } else {\n throw 'Unknown option: ' + key;\n }\n }\n}\n\nvar RequestInfo =\n/** @class */\nfunction () {\n function RequestInfo(url, method,\n /**\r\n * Returns the value with which to resolve the request's promise. Only called\r\n * if the request is successful. Throw from this function to reject the\r\n * returned Request's promise with the thrown error.\r\n * Note: The XhrIo passed to this function may be reused after this callback\r\n * returns. Do not keep a reference to it in any way.\r\n */\n handler, timeout) {\n this.url = url;\n this.method = method;\n this.handler = handler;\n this.timeout = timeout;\n this.urlParams = {};\n this.headers = {};\n this.body = null;\n this.errorHandler = null;\n /**\r\n * Called with the current number of bytes uploaded and total size (-1 if not\r\n * computable) of the request body (i.e. used to report upload progress).\r\n */\n\n this.progressCallback = null;\n this.successCodes = [200];\n this.additionalRetryCodes = [];\n }\n\n return RequestInfo;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Throws the UNKNOWN FirebaseStorageError if cndn is false.\r\n */\n\n\nfunction handlerCheck(cndn) {\n if (!cndn) {\n throw unknown();\n }\n}\n\nfunction metadataHandler(service, mappings) {\n function handler(xhr, text) {\n var metadata = fromResourceString(service, text, mappings);\n handlerCheck(metadata !== null);\n return metadata;\n }\n\n return handler;\n}\n\nfunction listHandler(service, bucket) {\n function handler(xhr, text) {\n var listResult = fromResponseString(service, bucket, text);\n handlerCheck(listResult !== null);\n return listResult;\n }\n\n return handler;\n}\n\nfunction downloadUrlHandler(service, mappings) {\n function handler(xhr, text) {\n var metadata = fromResourceString(service, text, mappings);\n handlerCheck(metadata !== null);\n return downloadUrlFromResourceString(metadata, text);\n }\n\n return handler;\n}\n\nfunction sharedErrorHandler(location) {\n function errorHandler(xhr, err) {\n var newErr;\n\n if (xhr.getStatus() === 401) {\n newErr = unauthenticated();\n } else {\n if (xhr.getStatus() === 402) {\n newErr = quotaExceeded(location.bucket);\n } else {\n if (xhr.getStatus() === 403) {\n newErr = unauthorized(location.path);\n } else {\n newErr = err;\n }\n }\n }\n\n newErr.setServerResponseProp(err.serverResponseProp());\n return newErr;\n }\n\n return errorHandler;\n}\n\nfunction objectErrorHandler(location) {\n var shared = sharedErrorHandler(location);\n\n function errorHandler(xhr, err) {\n var newErr = shared(xhr, err);\n\n if (xhr.getStatus() === 404) {\n newErr = objectNotFound(location.path);\n }\n\n newErr.setServerResponseProp(err.serverResponseProp());\n return newErr;\n }\n\n return errorHandler;\n}\n\nfunction getMetadata(service, location, mappings) {\n var urlPart = location.fullServerUrl();\n var url = makeUrl(urlPart);\n var method = 'GET';\n var timeout = service.maxOperationRetryTime;\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nfunction list(service, location, delimiter, pageToken, maxResults) {\n var urlParams = {};\n\n if (location.isRoot) {\n urlParams['prefix'] = '';\n } else {\n urlParams['prefix'] = location.path + '/';\n }\n\n if (delimiter && delimiter.length > 0) {\n urlParams['delimiter'] = delimiter;\n }\n\n if (pageToken) {\n urlParams['pageToken'] = pageToken;\n }\n\n if (maxResults) {\n urlParams['maxResults'] = maxResults;\n }\n\n var urlPart = location.bucketOnlyServerUrl();\n var url = makeUrl(urlPart);\n var method = 'GET';\n var timeout = service.maxOperationRetryTime;\n var requestInfo = new RequestInfo(url, method, listHandler(service, location.bucket), timeout);\n requestInfo.urlParams = urlParams;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n\nfunction getDownloadUrl(service, location, mappings) {\n var urlPart = location.fullServerUrl();\n var url = makeUrl(urlPart);\n var method = 'GET';\n var timeout = service.maxOperationRetryTime;\n var requestInfo = new RequestInfo(url, method, downloadUrlHandler(service, mappings), timeout);\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nfunction updateMetadata(service, location, metadata, mappings) {\n var urlPart = location.fullServerUrl();\n var url = makeUrl(urlPart);\n var method = 'PATCH';\n var body = toResourceString(metadata, mappings);\n var headers = {\n 'Content-Type': 'application/json; charset=utf-8'\n };\n var timeout = service.maxOperationRetryTime;\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\n requestInfo.headers = headers;\n requestInfo.body = body;\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nfunction deleteObject(service, location) {\n var urlPart = location.fullServerUrl();\n var url = makeUrl(urlPart);\n var method = 'DELETE';\n var timeout = service.maxOperationRetryTime;\n\n function handler(_xhr, _text) {}\n\n var requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.successCodes = [200, 204];\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nfunction determineContentType_(metadata, blob) {\n return metadata && metadata['contentType'] || blob && blob.type() || 'application/octet-stream';\n}\n\nfunction metadataForUpload_(location, blob, metadata) {\n var metadataClone = Object.assign({}, metadata);\n metadataClone['fullPath'] = location.path;\n metadataClone['size'] = blob.size();\n\n if (!metadataClone['contentType']) {\n metadataClone['contentType'] = determineContentType_(null, blob);\n }\n\n return metadataClone;\n}\n\nfunction multipartUpload(service, location, mappings, blob, metadata) {\n var urlPart = location.bucketOnlyServerUrl();\n var headers = {\n 'X-Goog-Upload-Protocol': 'multipart'\n };\n\n function genBoundary() {\n var str = '';\n\n for (var i = 0; i < 2; i++) {\n str = str + Math.random().toString().slice(2);\n }\n\n return str;\n }\n\n var boundary = genBoundary();\n headers['Content-Type'] = 'multipart/related; boundary=' + boundary;\n var metadata_ = metadataForUpload_(location, blob, metadata);\n var metadataString = toResourceString(metadata_, mappings);\n var preBlobPart = '--' + boundary + '\\r\\n' + 'Content-Type: application/json; charset=utf-8\\r\\n\\r\\n' + metadataString + '\\r\\n--' + boundary + '\\r\\n' + 'Content-Type: ' + metadata_['contentType'] + '\\r\\n\\r\\n';\n var postBlobPart = '\\r\\n--' + boundary + '--';\n var body = FbsBlob.getBlob(preBlobPart, blob, postBlobPart);\n\n if (body === null) {\n throw cannotSliceBlob();\n }\n\n var urlParams = {\n name: metadata_['fullPath']\n };\n var url = makeUrl(urlPart);\n var method = 'POST';\n var timeout = service.maxUploadRetryTime;\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\n requestInfo.urlParams = urlParams;\n requestInfo.headers = headers;\n requestInfo.body = body.uploadData();\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n/**\r\n * @param current The number of bytes that have been uploaded so far.\r\n * @param total The total number of bytes in the upload.\r\n * @param opt_finalized True if the server has finished the upload.\r\n * @param opt_metadata The upload metadata, should\r\n * only be passed if opt_finalized is true.\r\n * @struct\r\n */\n\n\nvar ResumableUploadStatus =\n/** @class */\nfunction () {\n function ResumableUploadStatus(current, total, finalized, metadata) {\n this.current = current;\n this.total = total;\n this.finalized = !!finalized;\n this.metadata = metadata || null;\n }\n\n return ResumableUploadStatus;\n}();\n\nfunction checkResumeHeader_(xhr, allowed) {\n var status = null;\n\n try {\n status = xhr.getResponseHeader('X-Goog-Upload-Status');\n } catch (e) {\n handlerCheck(false);\n }\n\n var allowedStatus = allowed || ['active'];\n handlerCheck(!!status && allowedStatus.indexOf(status) !== -1);\n return status;\n}\n\nfunction createResumableUpload(service, location, mappings, blob, metadata) {\n var urlPart = location.bucketOnlyServerUrl();\n var metadataForUpload = metadataForUpload_(location, blob, metadata);\n var urlParams = {\n name: metadataForUpload['fullPath']\n };\n var url = makeUrl(urlPart);\n var method = 'POST';\n var headers = {\n 'X-Goog-Upload-Protocol': 'resumable',\n 'X-Goog-Upload-Command': 'start',\n 'X-Goog-Upload-Header-Content-Length': blob.size(),\n 'X-Goog-Upload-Header-Content-Type': metadataForUpload['contentType'],\n 'Content-Type': 'application/json; charset=utf-8'\n };\n var body = toResourceString(metadataForUpload, mappings);\n var timeout = service.maxUploadRetryTime;\n\n function handler(xhr) {\n checkResumeHeader_(xhr);\n var url;\n\n try {\n url = xhr.getResponseHeader('X-Goog-Upload-URL');\n } catch (e) {\n handlerCheck(false);\n }\n\n handlerCheck(isString(url));\n return url;\n }\n\n var requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.urlParams = urlParams;\n requestInfo.headers = headers;\n requestInfo.body = body;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n/**\r\n * @param url From a call to fbs.requests.createResumableUpload.\r\n */\n\n\nfunction getResumableUploadStatus(service, location, url, blob) {\n var headers = {\n 'X-Goog-Upload-Command': 'query'\n };\n\n function handler(xhr) {\n var status = checkResumeHeader_(xhr, ['active', 'final']);\n var sizeString = null;\n\n try {\n sizeString = xhr.getResponseHeader('X-Goog-Upload-Size-Received');\n } catch (e) {\n handlerCheck(false);\n }\n\n if (!sizeString) {\n // null or empty string\n handlerCheck(false);\n }\n\n var size = Number(sizeString);\n handlerCheck(!isNaN(size));\n return new ResumableUploadStatus(size, blob.size(), status === 'final');\n }\n\n var method = 'POST';\n var timeout = service.maxUploadRetryTime;\n var requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.headers = headers;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n/**\r\n * Any uploads via the resumable upload API must transfer a number of bytes\r\n * that is a multiple of this number.\r\n */\n\n\nvar resumableUploadChunkSize = 256 * 1024;\n/**\r\n * @param url From a call to fbs.requests.createResumableUpload.\r\n * @param chunkSize Number of bytes to upload.\r\n * @param status The previous status.\r\n * If not passed or null, we start from the beginning.\r\n * @throws fbs.Error If the upload is already complete, the passed in status\r\n * has a final size inconsistent with the blob, or the blob cannot be sliced\r\n * for upload.\r\n */\n\nfunction continueResumableUpload(location, service, url, blob, chunkSize, mappings, status, progressCallback) {\n // TODO(andysoto): standardize on internal asserts\n // assert(!(opt_status && opt_status.finalized));\n var status_ = new ResumableUploadStatus(0, 0);\n\n if (status) {\n status_.current = status.current;\n status_.total = status.total;\n } else {\n status_.current = 0;\n status_.total = blob.size();\n }\n\n if (blob.size() !== status_.total) {\n throw serverFileWrongSize();\n }\n\n var bytesLeft = status_.total - status_.current;\n var bytesToUpload = bytesLeft;\n\n if (chunkSize > 0) {\n bytesToUpload = Math.min(bytesToUpload, chunkSize);\n }\n\n var startByte = status_.current;\n var endByte = startByte + bytesToUpload;\n var uploadCommand = bytesToUpload === bytesLeft ? 'upload, finalize' : 'upload';\n var headers = {\n 'X-Goog-Upload-Command': uploadCommand,\n 'X-Goog-Upload-Offset': status_.current\n };\n var body = blob.slice(startByte, endByte);\n\n if (body === null) {\n throw cannotSliceBlob();\n }\n\n function handler(xhr, text) {\n // TODO(andysoto): Verify the MD5 of each uploaded range:\n // the 'x-range-md5' header comes back with status code 308 responses.\n // We'll only be able to bail out though, because you can't re-upload a\n // range that you previously uploaded.\n var uploadStatus = checkResumeHeader_(xhr, ['active', 'final']);\n var newCurrent = status_.current + bytesToUpload;\n var size = blob.size();\n var metadata;\n\n if (uploadStatus === 'final') {\n metadata = metadataHandler(service, mappings)(xhr, text);\n } else {\n metadata = null;\n }\n\n return new ResumableUploadStatus(newCurrent, size, uploadStatus === 'final', metadata);\n }\n\n var method = 'POST';\n var timeout = service.maxUploadRetryTime;\n var requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.headers = headers;\n requestInfo.body = body.uploadData();\n requestInfo.progressCallback = progressCallback || null;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @struct\r\n */\n\n\nvar Observer =\n/** @class */\nfunction () {\n function Observer(nextOrObserver, error, complete) {\n var asFunctions = isFunction(nextOrObserver) || isDef(error) || isDef(complete);\n\n if (asFunctions) {\n this.next = nextOrObserver;\n this.error = error || null;\n this.complete = complete || null;\n } else {\n var observer = nextOrObserver;\n this.next = observer.next || null;\n this.error = observer.error || null;\n this.complete = observer.complete || null;\n }\n }\n\n return Observer;\n}();\n\nvar UploadTaskSnapshot =\n/** @class */\nfunction () {\n function UploadTaskSnapshot(bytesTransferred, totalBytes, state, metadata, task, ref) {\n this.bytesTransferred = bytesTransferred;\n this.totalBytes = totalBytes;\n this.state = state;\n this.metadata = metadata;\n this.task = task;\n this.ref = ref;\n }\n\n return UploadTaskSnapshot;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @param name Name of the function.\r\n * @param specs Argument specs.\r\n * @param passed The actual arguments passed to the function.\r\n * @throws {fbs.Error} If the arguments are invalid.\r\n */\n\n\nfunction validate(name, specs, passed) {\n var minArgs = specs.length;\n var maxArgs = specs.length;\n\n for (var i = 0; i < specs.length; i++) {\n if (specs[i].optional) {\n minArgs = i;\n break;\n }\n }\n\n var validLength = minArgs <= passed.length && passed.length <= maxArgs;\n\n if (!validLength) {\n throw invalidArgumentCount(minArgs, maxArgs, name, passed.length);\n }\n\n for (var i = 0; i < passed.length; i++) {\n try {\n specs[i].validator(passed[i]);\n } catch (e) {\n if (e instanceof Error) {\n throw invalidArgument(i, name, e.message);\n } else {\n throw invalidArgument(i, name, e);\n }\n }\n }\n}\n/**\r\n * @struct\r\n */\n\n\nvar ArgSpec =\n/** @class */\nfunction () {\n function ArgSpec(validator, optional) {\n var self = this;\n\n this.validator = function (p) {\n if (self.optional && !isJustDef(p)) {\n return;\n }\n\n validator(p);\n };\n\n this.optional = !!optional;\n }\n\n return ArgSpec;\n}();\n\nfunction and_(v1, v2) {\n return function (p) {\n v1(p);\n v2(p);\n };\n}\n\nfunction stringSpec(validator, optional) {\n function stringValidator(p) {\n if (!isString(p)) {\n throw 'Expected string.';\n }\n }\n\n var chainedValidator;\n\n if (validator) {\n chainedValidator = and_(stringValidator, validator);\n } else {\n chainedValidator = stringValidator;\n }\n\n return new ArgSpec(chainedValidator, optional);\n}\n\nfunction uploadDataSpec() {\n function validator(p) {\n var valid = p instanceof Uint8Array || p instanceof ArrayBuffer || isNativeBlobDefined() && p instanceof Blob;\n\n if (!valid) {\n throw 'Expected Blob or File.';\n }\n }\n\n return new ArgSpec(validator);\n}\n\nfunction metadataSpec(optional) {\n return new ArgSpec(metadataValidator, optional);\n}\n\nfunction listOptionSpec(optional) {\n return new ArgSpec(listOptionsValidator, optional);\n}\n\nfunction nonNegativeNumberSpec() {\n function validator(p) {\n var valid = isNumber(p) && p >= 0;\n\n if (!valid) {\n throw 'Expected a number 0 or greater.';\n }\n }\n\n return new ArgSpec(validator);\n}\n\nfunction looseObjectSpec(validator, optional) {\n function isLooseObjectValidator(p) {\n var isLooseObject = p === null || isDef(p) && p instanceof Object;\n\n if (!isLooseObject) {\n throw 'Expected an Object.';\n }\n\n if (validator !== undefined && validator !== null) {\n validator(p);\n }\n }\n\n return new ArgSpec(isLooseObjectValidator, optional);\n}\n\nfunction nullFunctionSpec(optional) {\n function validator(p) {\n var valid = p === null || isFunction(p);\n\n if (!valid) {\n throw 'Expected a Function.';\n }\n }\n\n return new ArgSpec(validator, optional);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a function that invokes f with its arguments asynchronously as a\r\n * microtask, i.e. as soon as possible after the current script returns back\r\n * into browser code.\r\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction async(f) {\n return function () {\n var argsToForward = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n argsToForward[_i] = arguments[_i];\n } // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n Promise.resolve().then(function () {\n return f.apply(void 0, argsToForward);\n });\n };\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Represents a blob being uploaded. Can be used to pause/resume/cancel the\r\n * upload and manage callbacks for various events.\r\n */\n\n\nvar UploadTask =\n/** @class */\nfunction () {\n /**\r\n * @param ref The firebaseStorage.Reference object this task came\r\n * from, untyped to avoid cyclic dependencies.\r\n * @param blob The blob to upload.\r\n */\n function UploadTask(ref, service, location, mappings, blob, metadata) {\n var _this = this;\n\n if (metadata === void 0) {\n metadata = null;\n }\n\n this.transferred_ = 0;\n this.needToFetchStatus_ = false;\n this.needToFetchMetadata_ = false;\n this.observers_ = [];\n this.error_ = null;\n this.uploadUrl_ = null;\n this.request_ = null;\n this.chunkMultiplier_ = 1;\n this.resolve_ = null;\n this.reject_ = null;\n this.ref_ = ref;\n this.service_ = service;\n this.location_ = location;\n this.blob_ = blob;\n this.metadata_ = metadata;\n this.mappings_ = mappings;\n this.resumable_ = this.shouldDoResumable_(this.blob_);\n this.state_ = InternalTaskState.RUNNING;\n\n this.errorHandler_ = function (error) {\n _this.request_ = null;\n _this.chunkMultiplier_ = 1;\n\n if (error.codeEquals(Code.CANCELED)) {\n _this.needToFetchStatus_ = true;\n\n _this.completeTransitions_();\n } else {\n _this.error_ = error;\n\n _this.transition_(InternalTaskState.ERROR);\n }\n };\n\n this.metadataErrorHandler_ = function (error) {\n _this.request_ = null;\n\n if (error.codeEquals(Code.CANCELED)) {\n _this.completeTransitions_();\n } else {\n _this.error_ = error;\n\n _this.transition_(InternalTaskState.ERROR);\n }\n };\n\n this.promise_ = new Promise(function (resolve, reject) {\n _this.resolve_ = resolve;\n _this.reject_ = reject;\n\n _this.start_();\n }); // Prevent uncaught rejections on the internal promise from bubbling out\n // to the top level with a dummy handler.\n\n this.promise_.then(null, function () {});\n }\n\n UploadTask.prototype.makeProgressCallback_ = function () {\n var _this = this;\n\n var sizeBefore = this.transferred_;\n return function (loaded) {\n return _this.updateProgress_(sizeBefore + loaded);\n };\n };\n\n UploadTask.prototype.shouldDoResumable_ = function (blob) {\n return blob.size() > 256 * 1024;\n };\n\n UploadTask.prototype.start_ = function () {\n if (this.state_ !== InternalTaskState.RUNNING) {\n // This can happen if someone pauses us in a resume callback, for example.\n return;\n }\n\n if (this.request_ !== null) {\n return;\n }\n\n if (this.resumable_) {\n if (this.uploadUrl_ === null) {\n this.createResumable_();\n } else {\n if (this.needToFetchStatus_) {\n this.fetchStatus_();\n } else {\n if (this.needToFetchMetadata_) {\n // Happens if we miss the metadata on upload completion.\n this.fetchMetadata_();\n } else {\n this.continueUpload_();\n }\n }\n }\n } else {\n this.oneShotUpload_();\n }\n };\n\n UploadTask.prototype.resolveToken_ = function (callback) {\n var _this = this; // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n this.service_.getAuthToken().then(function (authToken) {\n switch (_this.state_) {\n case InternalTaskState.RUNNING:\n callback(authToken);\n break;\n\n case InternalTaskState.CANCELING:\n _this.transition_(InternalTaskState.CANCELED);\n\n break;\n\n case InternalTaskState.PAUSING:\n _this.transition_(InternalTaskState.PAUSED);\n\n break;\n }\n });\n }; // TODO(andysoto): assert false\n\n\n UploadTask.prototype.createResumable_ = function () {\n var _this = this;\n\n this.resolveToken_(function (authToken) {\n var requestInfo = createResumableUpload(_this.service_, _this.location_, _this.mappings_, _this.blob_, _this.metadata_);\n\n var createRequest = _this.service_.makeRequest(requestInfo, authToken);\n\n _this.request_ = createRequest;\n createRequest.getPromise().then(function (url) {\n _this.request_ = null;\n _this.uploadUrl_ = url;\n _this.needToFetchStatus_ = false;\n\n _this.completeTransitions_();\n }, _this.errorHandler_);\n });\n };\n\n UploadTask.prototype.fetchStatus_ = function () {\n var _this = this; // TODO(andysoto): assert(this.uploadUrl_ !== null);\n\n\n var url = this.uploadUrl_;\n this.resolveToken_(function (authToken) {\n var requestInfo = getResumableUploadStatus(_this.service_, _this.location_, url, _this.blob_);\n\n var statusRequest = _this.service_.makeRequest(requestInfo, authToken);\n\n _this.request_ = statusRequest;\n statusRequest.getPromise().then(function (status) {\n status = status;\n _this.request_ = null;\n\n _this.updateProgress_(status.current);\n\n _this.needToFetchStatus_ = false;\n\n if (status.finalized) {\n _this.needToFetchMetadata_ = true;\n }\n\n _this.completeTransitions_();\n }, _this.errorHandler_);\n });\n };\n\n UploadTask.prototype.continueUpload_ = function () {\n var _this = this;\n\n var chunkSize = resumableUploadChunkSize * this.chunkMultiplier_;\n var status = new ResumableUploadStatus(this.transferred_, this.blob_.size()); // TODO(andysoto): assert(this.uploadUrl_ !== null);\n\n var url = this.uploadUrl_;\n this.resolveToken_(function (authToken) {\n var requestInfo;\n\n try {\n requestInfo = continueResumableUpload(_this.location_, _this.service_, url, _this.blob_, chunkSize, _this.mappings_, status, _this.makeProgressCallback_());\n } catch (e) {\n _this.error_ = e;\n\n _this.transition_(InternalTaskState.ERROR);\n\n return;\n }\n\n var uploadRequest = _this.service_.makeRequest(requestInfo, authToken);\n\n _this.request_ = uploadRequest;\n uploadRequest.getPromise().then(function (newStatus) {\n _this.increaseMultiplier_();\n\n _this.request_ = null;\n\n _this.updateProgress_(newStatus.current);\n\n if (newStatus.finalized) {\n _this.metadata_ = newStatus.metadata;\n\n _this.transition_(InternalTaskState.SUCCESS);\n } else {\n _this.completeTransitions_();\n }\n }, _this.errorHandler_);\n });\n };\n\n UploadTask.prototype.increaseMultiplier_ = function () {\n var currentSize = resumableUploadChunkSize * this.chunkMultiplier_; // Max chunk size is 32M.\n\n if (currentSize < 32 * 1024 * 1024) {\n this.chunkMultiplier_ *= 2;\n }\n };\n\n UploadTask.prototype.fetchMetadata_ = function () {\n var _this = this;\n\n this.resolveToken_(function (authToken) {\n var requestInfo = getMetadata(_this.service_, _this.location_, _this.mappings_);\n\n var metadataRequest = _this.service_.makeRequest(requestInfo, authToken);\n\n _this.request_ = metadataRequest;\n metadataRequest.getPromise().then(function (metadata) {\n _this.request_ = null;\n _this.metadata_ = metadata;\n\n _this.transition_(InternalTaskState.SUCCESS);\n }, _this.metadataErrorHandler_);\n });\n };\n\n UploadTask.prototype.oneShotUpload_ = function () {\n var _this = this;\n\n this.resolveToken_(function (authToken) {\n var requestInfo = multipartUpload(_this.service_, _this.location_, _this.mappings_, _this.blob_, _this.metadata_);\n\n var multipartRequest = _this.service_.makeRequest(requestInfo, authToken);\n\n _this.request_ = multipartRequest;\n multipartRequest.getPromise().then(function (metadata) {\n _this.request_ = null;\n _this.metadata_ = metadata;\n\n _this.updateProgress_(_this.blob_.size());\n\n _this.transition_(InternalTaskState.SUCCESS);\n }, _this.errorHandler_);\n });\n };\n\n UploadTask.prototype.updateProgress_ = function (transferred) {\n var old = this.transferred_;\n this.transferred_ = transferred; // A progress update can make the \"transferred\" value smaller (e.g. a\n // partial upload not completed by server, after which the \"transferred\"\n // value may reset to the value at the beginning of the request).\n\n if (this.transferred_ !== old) {\n this.notifyObservers_();\n }\n };\n\n UploadTask.prototype.transition_ = function (state) {\n if (this.state_ === state) {\n return;\n }\n\n switch (state) {\n case InternalTaskState.CANCELING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING);\n this.state_ = state;\n\n if (this.request_ !== null) {\n this.request_.cancel();\n }\n\n break;\n\n case InternalTaskState.PAUSING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING);\n this.state_ = state;\n\n if (this.request_ !== null) {\n this.request_.cancel();\n }\n\n break;\n\n case InternalTaskState.RUNNING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSED ||\n // this.state_ === InternalTaskState.PAUSING);\n var wasPaused = this.state_ === InternalTaskState.PAUSED;\n this.state_ = state;\n\n if (wasPaused) {\n this.notifyObservers_();\n this.start_();\n }\n\n break;\n\n case InternalTaskState.PAUSED:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSING);\n this.state_ = state;\n this.notifyObservers_();\n break;\n\n case InternalTaskState.CANCELED:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSED ||\n // this.state_ === InternalTaskState.CANCELING);\n this.error_ = canceled();\n this.state_ = state;\n this.notifyObservers_();\n break;\n\n case InternalTaskState.ERROR:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING ||\n // this.state_ === InternalTaskState.CANCELING);\n this.state_ = state;\n this.notifyObservers_();\n break;\n\n case InternalTaskState.SUCCESS:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING ||\n // this.state_ === InternalTaskState.CANCELING);\n this.state_ = state;\n this.notifyObservers_();\n break;\n }\n };\n\n UploadTask.prototype.completeTransitions_ = function () {\n switch (this.state_) {\n case InternalTaskState.PAUSING:\n this.transition_(InternalTaskState.PAUSED);\n break;\n\n case InternalTaskState.CANCELING:\n this.transition_(InternalTaskState.CANCELED);\n break;\n\n case InternalTaskState.RUNNING:\n this.start_();\n break;\n }\n };\n\n Object.defineProperty(UploadTask.prototype, \"snapshot\", {\n get: function get() {\n var externalState = taskStateFromInternalTaskState(this.state_);\n return new UploadTaskSnapshot(this.transferred_, this.blob_.size(), externalState, this.metadata_, this, this.ref_);\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Adds a callback for an event.\r\n * @param type The type of event to listen for.\r\n */\n\n UploadTask.prototype.on = function (type, nextOrObserver, error, completed) {\n function typeValidator() {\n if (type !== TaskEvent.STATE_CHANGED) {\n throw \"Expected one of the event types: [\" + TaskEvent.STATE_CHANGED + \"].\";\n }\n }\n\n var nextOrObserverMessage = 'Expected a function or an Object with one of ' + '`next`, `error`, `complete` properties.';\n var nextValidator = nullFunctionSpec(true).validator;\n var observerValidator = looseObjectSpec(null, true).validator; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n function nextOrObserverValidator(p) {\n try {\n nextValidator(p);\n return;\n } catch (e) {}\n\n try {\n observerValidator(p);\n var anyDefined = isJustDef(p['next']) || isJustDef(p['error']) || isJustDef(p['complete']);\n\n if (!anyDefined) {\n throw '';\n }\n\n return;\n } catch (e) {\n throw nextOrObserverMessage;\n }\n }\n\n var specs = [stringSpec(typeValidator), looseObjectSpec(nextOrObserverValidator, true), nullFunctionSpec(true), nullFunctionSpec(true)];\n validate('on', specs, arguments);\n var self = this;\n\n function makeBinder(specs) {\n function binder(nextOrObserver, error, complete) {\n if (specs !== null) {\n validate('on', specs, arguments);\n }\n\n var observer = new Observer(nextOrObserver, error, completed);\n self.addObserver_(observer);\n return function () {\n self.removeObserver_(observer);\n };\n }\n\n return binder;\n }\n\n function binderNextOrObserverValidator(p) {\n if (p === null) {\n throw nextOrObserverMessage;\n }\n\n nextOrObserverValidator(p);\n }\n\n var binderSpecs = [looseObjectSpec(binderNextOrObserverValidator), nullFunctionSpec(true), nullFunctionSpec(true)];\n var typeOnly = !(isJustDef(nextOrObserver) || isJustDef(error) || isJustDef(completed));\n\n if (typeOnly) {\n return makeBinder(binderSpecs);\n } else {\n return makeBinder(null)(nextOrObserver, error, completed);\n }\n };\n /**\r\n * This object behaves like a Promise, and resolves with its snapshot data\r\n * when the upload completes.\r\n * @param onFulfilled The fulfillment callback. Promise chaining works as normal.\r\n * @param onRejected The rejection callback.\r\n */\n\n\n UploadTask.prototype.then = function (onFulfilled, onRejected) {\n // These casts are needed so that TypeScript can infer the types of the\n // resulting Promise.\n return this.promise_.then(onFulfilled, onRejected);\n };\n /**\r\n * Equivalent to calling `then(null, onRejected)`.\r\n */\n\n\n UploadTask.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n /**\r\n * Adds the given observer.\r\n */\n\n\n UploadTask.prototype.addObserver_ = function (observer) {\n this.observers_.push(observer);\n this.notifyObserver_(observer);\n };\n /**\r\n * Removes the given observer.\r\n */\n\n\n UploadTask.prototype.removeObserver_ = function (observer) {\n var i = this.observers_.indexOf(observer);\n\n if (i !== -1) {\n this.observers_.splice(i, 1);\n }\n };\n\n UploadTask.prototype.notifyObservers_ = function () {\n var _this = this;\n\n this.finishPromise_();\n var observers = this.observers_.slice();\n observers.forEach(function (observer) {\n _this.notifyObserver_(observer);\n });\n };\n\n UploadTask.prototype.finishPromise_ = function () {\n if (this.resolve_ !== null) {\n var triggered = true;\n\n switch (taskStateFromInternalTaskState(this.state_)) {\n case TaskState.SUCCESS:\n async(this.resolve_.bind(null, this.snapshot))();\n break;\n\n case TaskState.CANCELED:\n case TaskState.ERROR:\n var toCall = this.reject_;\n async(toCall.bind(null, this.error_))();\n break;\n\n default:\n triggered = false;\n break;\n }\n\n if (triggered) {\n this.resolve_ = null;\n this.reject_ = null;\n }\n }\n };\n\n UploadTask.prototype.notifyObserver_ = function (observer) {\n var externalState = taskStateFromInternalTaskState(this.state_);\n\n switch (externalState) {\n case TaskState.RUNNING:\n case TaskState.PAUSED:\n if (observer.next) {\n async(observer.next.bind(observer, this.snapshot))();\n }\n\n break;\n\n case TaskState.SUCCESS:\n if (observer.complete) {\n async(observer.complete.bind(observer))();\n }\n\n break;\n\n case TaskState.CANCELED:\n case TaskState.ERROR:\n if (observer.error) {\n async(observer.error.bind(observer, this.error_))();\n }\n\n break;\n\n default:\n // TODO(andysoto): assert(false);\n if (observer.error) {\n async(observer.error.bind(observer, this.error_))();\n }\n\n }\n };\n /**\r\n * Resumes a paused task. Has no effect on a currently running or failed task.\r\n * @return True if the operation took effect, false if ignored.\r\n */\n\n\n UploadTask.prototype.resume = function () {\n validate('resume', [], arguments);\n var valid = this.state_ === InternalTaskState.PAUSED || this.state_ === InternalTaskState.PAUSING;\n\n if (valid) {\n this.transition_(InternalTaskState.RUNNING);\n }\n\n return valid;\n };\n /**\r\n * Pauses a currently running task. Has no effect on a paused or failed task.\r\n * @return True if the operation took effect, false if ignored.\r\n */\n\n\n UploadTask.prototype.pause = function () {\n validate('pause', [], arguments);\n var valid = this.state_ === InternalTaskState.RUNNING;\n\n if (valid) {\n this.transition_(InternalTaskState.PAUSING);\n }\n\n return valid;\n };\n /**\r\n * Cancels a currently running or paused task. Has no effect on a complete or\r\n * failed task.\r\n * @return True if the operation took effect, false if ignored.\r\n */\n\n\n UploadTask.prototype.cancel = function () {\n validate('cancel', [], arguments);\n var valid = this.state_ === InternalTaskState.RUNNING || this.state_ === InternalTaskState.PAUSING;\n\n if (valid) {\n this.transition_(InternalTaskState.CANCELING);\n }\n\n return valid;\n };\n\n return UploadTask;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Provides methods to interact with a bucket in the Firebase Storage service.\r\n * @param location An fbs.location, or the URL at\r\n * which to base this object, in one of the following forms:\r\n * gs:///\r\n * http[s]://firebasestorage.googleapis.com/\r\n * /b//o/\r\n * Any query or fragment strings will be ignored in the http[s]\r\n * format. If no value is passed, the storage object will use a URL based on\r\n * the project ID of the base firebase.App instance.\r\n */\n\n\nvar Reference =\n/** @class */\nfunction () {\n function Reference(service, location) {\n this.service = service;\n\n if (location instanceof Location) {\n this.location = location;\n } else {\n this.location = Location.makeFromUrl(location);\n }\n }\n /**\r\n * @return The URL for the bucket and path this object references,\r\n * in the form gs:///\r\n * @override\r\n */\n\n\n Reference.prototype.toString = function () {\n validate('toString', [], arguments);\n return 'gs://' + this.location.bucket + '/' + this.location.path;\n };\n\n Reference.prototype.newRef = function (service, location) {\n return new Reference(service, location);\n };\n\n Reference.prototype.mappings = function () {\n return getMappings();\n };\n /**\r\n * @return A reference to the object obtained by\r\n * appending childPath, removing any duplicate, beginning, or trailing\r\n * slashes.\r\n */\n\n\n Reference.prototype.child = function (childPath) {\n validate('child', [stringSpec()], arguments);\n var newPath = child(this.location.path, childPath);\n var location = new Location(this.location.bucket, newPath);\n return this.newRef(this.service, location);\n };\n\n Object.defineProperty(Reference.prototype, \"parent\", {\n /**\r\n * @return A reference to the parent of the\r\n * current object, or null if the current object is the root.\r\n */\n get: function get() {\n var newPath = parent(this.location.path);\n\n if (newPath === null) {\n return null;\n }\n\n var location = new Location(this.location.bucket, newPath);\n return this.newRef(this.service, location);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Reference.prototype, \"root\", {\n /**\r\n * @return An reference to the root of this\r\n * object's bucket.\r\n */\n get: function get() {\n var location = new Location(this.location.bucket, '');\n return this.newRef(this.service, location);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Reference.prototype, \"bucket\", {\n get: function get() {\n return this.location.bucket;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Reference.prototype, \"fullPath\", {\n get: function get() {\n return this.location.path;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Reference.prototype, \"name\", {\n get: function get() {\n return lastComponent(this.location.path);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Reference.prototype, \"storage\", {\n get: function get() {\n return this.service;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Uploads a blob to this object's location.\r\n * @param data The blob to upload.\r\n * @return An UploadTask that lets you control and\r\n * observe the upload.\r\n */\n\n Reference.prototype.put = function (data, metadata) {\n if (metadata === void 0) {\n metadata = null;\n }\n\n validate('put', [uploadDataSpec(), metadataSpec(true)], arguments);\n this.throwIfRoot_('put');\n return new UploadTask(this, this.service, this.location, this.mappings(), new FbsBlob(data), metadata);\n };\n /**\r\n * Uploads a string to this object's location.\r\n * @param value The string to upload.\r\n * @param format The format of the string to upload.\r\n * @return An UploadTask that lets you control and\r\n * observe the upload.\r\n */\n\n\n Reference.prototype.putString = function (value, format, metadata) {\n if (format === void 0) {\n format = StringFormat.RAW;\n }\n\n validate('putString', [stringSpec(), stringSpec(formatValidator, true), metadataSpec(true)], arguments);\n this.throwIfRoot_('putString');\n var data = dataFromString(format, value);\n var metadataClone = Object.assign({}, metadata);\n\n if (!isDef(metadataClone['contentType']) && isDef(data.contentType)) {\n metadataClone['contentType'] = data.contentType;\n }\n\n return new UploadTask(this, this.service, this.location, this.mappings(), new FbsBlob(data.data, true), metadataClone);\n };\n /**\r\n * Deletes the object at this location.\r\n * @return A promise that resolves if the deletion succeeds.\r\n */\n\n\n Reference.prototype.delete = function () {\n var _this = this;\n\n validate('delete', [], arguments);\n this.throwIfRoot_('delete');\n return this.service.getAuthToken().then(function (authToken) {\n var requestInfo = deleteObject(_this.service, _this.location);\n return _this.service.makeRequest(requestInfo, authToken).getPromise();\n });\n };\n /**\r\n * List all items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * This is a helper method for calling list() repeatedly until there are\r\n * no more results. The default pagination size is 1000.\r\n *\r\n * Note: The results may not be consistent if objects are changed while this\r\n * operation is running.\r\n *\r\n * Warning: listAll may potentially consume too many resources if there are\r\n * too many results.\r\n *\r\n * @return A Promise that resolves with all the items and prefixes under\r\n * the current storage reference. `prefixes` contains references to\r\n * sub-directories and `items` contains references to objects in this\r\n * folder. `nextPageToken` is never returned.\r\n */\n\n\n Reference.prototype.listAll = function () {\n validate('listAll', [], arguments);\n var accumulator = {\n prefixes: [],\n items: []\n };\n return this.listAllHelper(accumulator).then(function () {\n return accumulator;\n });\n };\n\n Reference.prototype.listAllHelper = function (accumulator, pageToken) {\n return __awaiter(this, void 0, void 0, function () {\n var opt, nextPage;\n\n var _a, _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n opt = {\n // maxResults is 1000 by default.\n pageToken: pageToken\n };\n return [4\n /*yield*/\n , this.list(opt)];\n\n case 1:\n nextPage = _c.sent();\n\n (_a = accumulator.prefixes).push.apply(_a, nextPage.prefixes);\n\n (_b = accumulator.items).push.apply(_b, nextPage.items);\n\n if (!(nextPage.nextPageToken != null)) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , this.listAllHelper(accumulator, nextPage.nextPageToken)];\n\n case 2:\n _c.sent();\n\n _c.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\r\n * List items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * List API is only available for Firebase Rules Version 2.\r\n *\r\n * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'\r\n * delimited folder structure.\r\n * Refer to GCS's List API if you want to learn more.\r\n *\r\n * To adhere to Firebase Rules's Semantics, Firebase Storage does not\r\n * support objects whose paths end with \"/\" or contain two consecutive\r\n * \"/\"s. Firebase Storage List API will filter these unsupported objects.\r\n * list() may fail if there are too many unsupported objects in the bucket.\r\n *\r\n * @param options See ListOptions for details.\r\n * @return A Promise that resolves with the items and prefixes.\r\n * `prefixes` contains references to sub-folders and `items`\r\n * contains references to objects in this folder. `nextPageToken`\r\n * can be used to get the rest of the results.\r\n */\n\n\n Reference.prototype.list = function (options) {\n validate('list', [listOptionSpec(true)], arguments);\n var self = this;\n return this.service.getAuthToken().then(function (authToken) {\n var op = options || {};\n var requestInfo = list(self.service, self.location,\n /*delimiter= */\n '/', op.pageToken, op.maxResults);\n return self.service.makeRequest(requestInfo, authToken).getPromise();\n });\n };\n /**\r\n * A promise that resolves with the metadata for this object. If this\r\n * object doesn't exist or metadata cannot be retreived, the promise is\r\n * rejected.\r\n */\n\n\n Reference.prototype.getMetadata = function () {\n var _this = this;\n\n validate('getMetadata', [], arguments);\n this.throwIfRoot_('getMetadata');\n return this.service.getAuthToken().then(function (authToken) {\n var requestInfo = getMetadata(_this.service, _this.location, _this.mappings());\n return _this.service.makeRequest(requestInfo, authToken).getPromise();\n });\n };\n /**\r\n * Updates the metadata for this object.\r\n * @param metadata The new metadata for the object.\r\n * Only values that have been explicitly set will be changed. Explicitly\r\n * setting a value to null will remove the metadata.\r\n * @return A promise that resolves\r\n * with the new metadata for this object.\r\n * @see firebaseStorage.Reference.prototype.getMetadata\r\n */\n\n\n Reference.prototype.updateMetadata = function (metadata) {\n var _this = this;\n\n validate('updateMetadata', [metadataSpec()], arguments);\n this.throwIfRoot_('updateMetadata');\n return this.service.getAuthToken().then(function (authToken) {\n var requestInfo = updateMetadata(_this.service, _this.location, metadata, _this.mappings());\n return _this.service.makeRequest(requestInfo, authToken).getPromise();\n });\n };\n /**\r\n * @return A promise that resolves with the download\r\n * URL for this object.\r\n */\n\n\n Reference.prototype.getDownloadURL = function () {\n var _this = this;\n\n validate('getDownloadURL', [], arguments);\n this.throwIfRoot_('getDownloadURL');\n return this.service.getAuthToken().then(function (authToken) {\n var requestInfo = getDownloadUrl(_this.service, _this.location, _this.mappings());\n return _this.service.makeRequest(requestInfo, authToken).getPromise().then(function (url) {\n if (url === null) {\n throw noDownloadURL();\n }\n\n return url;\n });\n });\n };\n\n Reference.prototype.throwIfRoot_ = function (name) {\n if (this.location.path === '') {\n throw invalidRootOperation(name);\n }\n };\n\n return Reference;\n}();\n/**\r\n * A request whose promise always fails.\r\n * @struct\r\n * @template T\r\n */\n\n\nvar FailRequest =\n/** @class */\nfunction () {\n function FailRequest(error) {\n this.promise_ = Promise.reject(error);\n }\n /** @inheritDoc */\n\n\n FailRequest.prototype.getPromise = function () {\n return this.promise_;\n };\n /** @inheritDoc */\n\n\n FailRequest.prototype.cancel = function (_appDelete) {};\n\n return FailRequest;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @param f May be invoked\r\n * before the function returns.\r\n * @param callback Get all the arguments passed to the function\r\n * passed to f, including the initial boolean.\r\n */\n\n\nfunction start(f, // eslint-disable-next-line @typescript-eslint/no-explicit-any\ncallback, timeout) {\n // TODO(andysoto): make this code cleaner (probably refactor into an actual\n // type instead of a bunch of functions with state shared in the closure)\n var waitSeconds = 1; // Would type this as \"number\" but that doesn't work for Node so ¯\\_(ツ)_/¯\n // TODO: find a way to exclude Node type definition for storage because storage only works in browser\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var timeoutId = null;\n var hitTimeout = false;\n var cancelState = 0;\n\n function canceled() {\n return cancelState === 2;\n }\n\n var triggeredCallback = false; // TODO: This disable can be removed and the 'ignoreRestArgs' option added to\n // the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n function triggerCallback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!triggeredCallback) {\n triggeredCallback = true;\n callback.apply(null, args);\n }\n }\n\n function callWithDelay(millis) {\n timeoutId = setTimeout(function () {\n timeoutId = null;\n f(handler, canceled());\n }, millis);\n } // TODO: This disable can be removed and the 'ignoreRestArgs' option added to\n // the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n function handler(success) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (triggeredCallback) {\n return;\n }\n\n if (success) {\n triggerCallback.call.apply(triggerCallback, __spreadArrays([null, success], args));\n return;\n }\n\n var mustStop = canceled() || hitTimeout;\n\n if (mustStop) {\n triggerCallback.call.apply(triggerCallback, __spreadArrays([null, success], args));\n return;\n }\n\n if (waitSeconds < 64) {\n /* TODO(andysoto): don't back off so quickly if we know we're offline. */\n waitSeconds *= 2;\n }\n\n var waitMillis;\n\n if (cancelState === 1) {\n cancelState = 2;\n waitMillis = 0;\n } else {\n waitMillis = (waitSeconds + Math.random()) * 1000;\n }\n\n callWithDelay(waitMillis);\n }\n\n var stopped = false;\n\n function stop(wasTimeout) {\n if (stopped) {\n return;\n }\n\n stopped = true;\n\n if (triggeredCallback) {\n return;\n }\n\n if (timeoutId !== null) {\n if (!wasTimeout) {\n cancelState = 2;\n }\n\n clearTimeout(timeoutId);\n callWithDelay(0);\n } else {\n if (!wasTimeout) {\n cancelState = 1;\n }\n }\n }\n\n callWithDelay(0);\n setTimeout(function () {\n hitTimeout = true;\n stop(true);\n }, timeout);\n return stop;\n}\n/**\r\n * Stops the retry loop from repeating.\r\n * If the function is currently \"in between\" retries, it is invoked immediately\r\n * with the second parameter as \"true\". Otherwise, it will be invoked once more\r\n * after the current invocation finishes iff the current invocation would have\r\n * triggered another retry.\r\n */\n\n\nfunction stop(id) {\n id(false);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @struct\r\n * @template T\r\n */\n\n\nvar NetworkRequest =\n/** @class */\nfunction () {\n function NetworkRequest(url, method, headers, body, successCodes, additionalRetryCodes, callback, errorCallback, timeout, progressCallback, pool) {\n var _this = this;\n\n this.pendingXhr_ = null;\n this.backoffId_ = null;\n this.canceled_ = false;\n this.appDelete_ = false;\n this.url_ = url;\n this.method_ = method;\n this.headers_ = headers;\n this.body_ = body;\n this.successCodes_ = successCodes.slice();\n this.additionalRetryCodes_ = additionalRetryCodes.slice();\n this.callback_ = callback;\n this.errorCallback_ = errorCallback;\n this.progressCallback_ = progressCallback;\n this.timeout_ = timeout;\n this.pool_ = pool;\n this.promise_ = new Promise(function (resolve, reject) {\n _this.resolve_ = resolve;\n _this.reject_ = reject;\n\n _this.start_();\n });\n }\n /**\r\n * Actually starts the retry loop.\r\n */\n\n\n NetworkRequest.prototype.start_ = function () {\n var self = this;\n\n function doTheRequest(backoffCallback, canceled) {\n if (canceled) {\n backoffCallback(false, new RequestEndStatus(false, null, true));\n return;\n }\n\n var xhr = self.pool_.createXhrIo();\n self.pendingXhr_ = xhr;\n\n function progressListener(progressEvent) {\n var loaded = progressEvent.loaded;\n var total = progressEvent.lengthComputable ? progressEvent.total : -1;\n\n if (self.progressCallback_ !== null) {\n self.progressCallback_(loaded, total);\n }\n }\n\n if (self.progressCallback_ !== null) {\n xhr.addUploadProgressListener(progressListener);\n } // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n xhr.send(self.url_, self.method_, self.body_, self.headers_).then(function (xhr) {\n if (self.progressCallback_ !== null) {\n xhr.removeUploadProgressListener(progressListener);\n }\n\n self.pendingXhr_ = null;\n xhr = xhr;\n var hitServer = xhr.getErrorCode() === ErrorCode.NO_ERROR;\n var status = xhr.getStatus();\n\n if (!hitServer || self.isRetryStatusCode_(status)) {\n var wasCanceled = xhr.getErrorCode() === ErrorCode.ABORT;\n backoffCallback(false, new RequestEndStatus(false, null, wasCanceled));\n return;\n }\n\n var successCode = self.successCodes_.indexOf(status) !== -1;\n backoffCallback(true, new RequestEndStatus(successCode, xhr));\n });\n }\n /**\r\n * @param requestWentThrough True if the request eventually went\r\n * through, false if it hit the retry limit or was canceled.\r\n */\n\n\n function backoffDone(requestWentThrough, status) {\n var resolve = self.resolve_;\n var reject = self.reject_;\n var xhr = status.xhr;\n\n if (status.wasSuccessCode) {\n try {\n var result = self.callback_(xhr, xhr.getResponseText());\n\n if (isJustDef(result)) {\n resolve(result);\n } else {\n resolve();\n }\n } catch (e) {\n reject(e);\n }\n } else {\n if (xhr !== null) {\n var err = unknown();\n err.setServerResponseProp(xhr.getResponseText());\n\n if (self.errorCallback_) {\n reject(self.errorCallback_(xhr, err));\n } else {\n reject(err);\n }\n } else {\n if (status.canceled) {\n var err = self.appDelete_ ? appDeleted() : canceled();\n reject(err);\n } else {\n var err = retryLimitExceeded();\n reject(err);\n }\n }\n }\n }\n\n if (this.canceled_) {\n backoffDone(false, new RequestEndStatus(false, null, true));\n } else {\n this.backoffId_ = start(doTheRequest, backoffDone, this.timeout_);\n }\n };\n /** @inheritDoc */\n\n\n NetworkRequest.prototype.getPromise = function () {\n return this.promise_;\n };\n /** @inheritDoc */\n\n\n NetworkRequest.prototype.cancel = function (appDelete) {\n this.canceled_ = true;\n this.appDelete_ = appDelete || false;\n\n if (this.backoffId_ !== null) {\n stop(this.backoffId_);\n }\n\n if (this.pendingXhr_ !== null) {\n this.pendingXhr_.abort();\n }\n };\n\n NetworkRequest.prototype.isRetryStatusCode_ = function (status) {\n // The codes for which to retry came from this page:\n // https://cloud.google.com/storage/docs/exponential-backoff\n var isFiveHundredCode = status >= 500 && status < 600;\n var extraRetryCodes = [// Request Timeout: web server didn't receive full request in time.\n 408, // Too Many Requests: you're getting rate-limited, basically.\n 429];\n var isExtraRetryCode = extraRetryCodes.indexOf(status) !== -1;\n var isRequestSpecificRetryCode = this.additionalRetryCodes_.indexOf(status) !== -1;\n return isFiveHundredCode || isExtraRetryCode || isRequestSpecificRetryCode;\n };\n\n return NetworkRequest;\n}();\n/**\r\n * A collection of information about the result of a network request.\r\n * @param opt_canceled Defaults to false.\r\n * @struct\r\n */\n\n\nvar RequestEndStatus =\n/** @class */\nfunction () {\n function RequestEndStatus(wasSuccessCode, xhr, canceled) {\n this.wasSuccessCode = wasSuccessCode;\n this.xhr = xhr;\n this.canceled = !!canceled;\n }\n\n return RequestEndStatus;\n}();\n\nfunction addAuthHeader_(headers, authToken) {\n if (authToken !== null && authToken.length > 0) {\n headers['Authorization'] = 'Firebase ' + authToken;\n }\n}\n\nfunction addVersionHeader_(headers) {\n var version = typeof firebase !== 'undefined' ? firebase.SDK_VERSION : 'AppManager';\n headers['X-Firebase-Storage-Version'] = 'webjs/' + version;\n}\n\nfunction addGmpidHeader_(headers, appId) {\n if (appId) {\n headers['X-Firebase-GMPID'] = appId;\n }\n}\n/**\r\n * @template T\r\n */\n\n\nfunction makeRequest(requestInfo, appId, authToken, pool) {\n var queryPart = makeQueryString(requestInfo.urlParams);\n var url = requestInfo.url + queryPart;\n var headers = Object.assign({}, requestInfo.headers);\n addGmpidHeader_(headers, appId);\n addAuthHeader_(headers, authToken);\n addVersionHeader_(headers);\n return new NetworkRequest(url, requestInfo.method, headers, requestInfo.body, requestInfo.successCodes, requestInfo.additionalRetryCodes, requestInfo.handler, requestInfo.errorHandler, requestInfo.timeout, requestInfo.progressCallback, pool);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * A service that provides firebaseStorage.Reference instances.\r\n * @param opt_url gs:// url to a custom Storage Bucket\r\n *\r\n * @struct\r\n */\n\n\nvar StorageService =\n/** @class */\nfunction () {\n function StorageService(app, authProvider, pool, url) {\n var _a;\n\n this.bucket_ = null;\n this.appId_ = null;\n this.deleted_ = false;\n this.app_ = app;\n this.authProvider_ = authProvider;\n this.maxOperationRetryTime_ = DEFAULT_MAX_OPERATION_RETRY_TIME;\n this.maxUploadRetryTime_ = DEFAULT_MAX_UPLOAD_RETRY_TIME;\n this.requests_ = new Set();\n this.pool_ = pool;\n\n if (url != null) {\n this.bucket_ = Location.makeFromBucketSpec(url);\n } else {\n this.bucket_ = StorageService.extractBucket_((_a = this.app_) === null || _a === void 0 ? void 0 : _a.options);\n }\n\n this.internals_ = new ServiceInternals(this);\n }\n\n StorageService.extractBucket_ = function (config) {\n var bucketString = config === null || config === void 0 ? void 0 : config[CONFIG_STORAGE_BUCKET_KEY];\n\n if (bucketString == null) {\n return null;\n }\n\n return Location.makeFromBucketSpec(bucketString);\n };\n\n StorageService.prototype.getAuthToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n var auth, tokenData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n auth = this.authProvider_.getImmediate({\n optional: true\n });\n if (!auth) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , auth.getToken()];\n\n case 1:\n tokenData = _a.sent();\n\n if (tokenData !== null) {\n return [2\n /*return*/\n , tokenData.accessToken];\n }\n\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n , null];\n }\n });\n });\n };\n /**\r\n * Stop running requests and prevent more from being created.\r\n */\n\n\n StorageService.prototype.deleteApp = function () {\n this.deleted_ = true;\n this.app_ = null;\n this.requests_.forEach(function (request) {\n return request.cancel();\n });\n this.requests_.clear();\n };\n /**\r\n * Returns a new firebaseStorage.Reference object referencing this StorageService\r\n * at the given Location.\r\n * @param loc The Location.\r\n * @return A firebaseStorage.Reference.\r\n */\n\n\n StorageService.prototype.makeStorageReference = function (loc) {\n return new Reference(this, loc);\n };\n\n StorageService.prototype.makeRequest = function (requestInfo, authToken) {\n var _this = this;\n\n if (!this.deleted_) {\n var request_1 = makeRequest(requestInfo, this.appId_, authToken, this.pool_);\n this.requests_.add(request_1); // Request removes itself from set when complete.\n\n request_1.getPromise().then(function () {\n return _this.requests_.delete(request_1);\n }, function () {\n return _this.requests_.delete(request_1);\n });\n return request_1;\n } else {\n return new FailRequest(appDeleted());\n }\n };\n /**\r\n * Returns a firebaseStorage.Reference for the given path in the default\r\n * bucket.\r\n */\n\n\n StorageService.prototype.ref = function (path) {\n function validator(path) {\n if (typeof path !== 'string') {\n throw 'Path is not a string.';\n }\n\n if (/^[A-Za-z]+:\\/\\//.test(path)) {\n throw 'Expected child path but got a URL, use refFromURL instead.';\n }\n }\n\n validate('ref', [stringSpec(validator, true)], arguments);\n\n if (this.bucket_ == null) {\n throw new Error('No Storage Bucket defined in Firebase Options.');\n }\n\n var ref = new Reference(this, this.bucket_);\n\n if (path != null) {\n return ref.child(path);\n } else {\n return ref;\n }\n };\n /**\r\n * Returns a firebaseStorage.Reference object for the given absolute URL,\r\n * which must be a gs:// or http[s]:// URL.\r\n */\n\n\n StorageService.prototype.refFromURL = function (url) {\n function validator(p) {\n if (typeof p !== 'string') {\n throw 'Path is not a string.';\n }\n\n if (!/^[A-Za-z]+:\\/\\//.test(p)) {\n throw 'Expected full URL but got a child path, use ref instead.';\n }\n\n try {\n Location.makeFromUrl(p);\n } catch (e) {\n throw 'Expected valid full URL but got an invalid one.';\n }\n }\n\n validate('refFromURL', [stringSpec(validator, false)], arguments);\n return new Reference(this, url);\n };\n\n Object.defineProperty(StorageService.prototype, \"maxUploadRetryTime\", {\n get: function get() {\n return this.maxUploadRetryTime_;\n },\n enumerable: false,\n configurable: true\n });\n\n StorageService.prototype.setMaxUploadRetryTime = function (time) {\n validate('setMaxUploadRetryTime', [nonNegativeNumberSpec()], arguments);\n this.maxUploadRetryTime_ = time;\n };\n\n Object.defineProperty(StorageService.prototype, \"maxOperationRetryTime\", {\n get: function get() {\n return this.maxOperationRetryTime_;\n },\n enumerable: false,\n configurable: true\n });\n\n StorageService.prototype.setMaxOperationRetryTime = function (time) {\n validate('setMaxOperationRetryTime', [nonNegativeNumberSpec()], arguments);\n this.maxOperationRetryTime_ = time;\n };\n\n Object.defineProperty(StorageService.prototype, \"app\", {\n get: function get() {\n return this.app_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StorageService.prototype, \"INTERNAL\", {\n get: function get() {\n return this.internals_;\n },\n enumerable: false,\n configurable: true\n });\n return StorageService;\n}();\n/**\r\n * @struct\r\n */\n\n\nvar ServiceInternals =\n/** @class */\nfunction () {\n function ServiceInternals(service) {\n this.service_ = service;\n }\n /**\r\n * Called when the associated app is deleted.\r\n */\n\n\n ServiceInternals.prototype.delete = function () {\n this.service_.deleteApp();\n return Promise.resolve();\n };\n\n return ServiceInternals;\n}();\n\nvar name = \"@firebase/storage\";\nvar version = \"0.3.43\";\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Type constant for Firebase Storage.\r\n */\n\nvar STORAGE_TYPE = 'storage';\n\nfunction factory(container, url) {\n // Dependencies\n var app = container.getProvider('app').getImmediate();\n var authProvider = container.getProvider('auth-internal');\n return new StorageService(app, authProvider, new XhrIoPool(), url);\n}\n\nfunction registerStorage(instance) {\n var namespaceExports = {\n // no-inline\n TaskState: TaskState,\n TaskEvent: TaskEvent,\n StringFormat: StringFormat,\n Storage: StorageService,\n Reference: Reference\n };\n instance.INTERNAL.registerComponent(new Component(STORAGE_TYPE, factory, \"PUBLIC\"\n /* PUBLIC */\n ).setServiceProps(namespaceExports).setMultipleInstances(true));\n instance.registerVersion(name, version);\n}\n\nregisterStorage(firebase);\nexport { registerStorage };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import { __awaiter, __generator, __assign } from 'tslib';\nimport firebase from '@firebase/app';\nimport '@firebase/installations';\nimport { Logger } from '@firebase/logger';\nimport { ErrorFactory, calculateBackoffMillis, FirebaseError, validateIndexedDBOpenable, isIndexedDBAvailable, isBrowserExtension, areCookiesEnabled } from '@firebase/util';\nimport { Component } from '@firebase/component';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Key to attach FID to in gtag params.\n\nvar GA_FID_KEY = 'firebase_id';\nvar ORIGIN_KEY = 'origin';\nvar FETCH_TIMEOUT_MILLIS = 60 * 1000;\nvar DYNAMIC_CONFIG_URL = 'https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig';\nvar GTAG_URL = 'https://www.googletagmanager.com/gtag/js';\nvar GtagCommand;\n\n(function (GtagCommand) {\n GtagCommand[\"EVENT\"] = \"event\";\n GtagCommand[\"SET\"] = \"set\";\n GtagCommand[\"CONFIG\"] = \"config\";\n})(GtagCommand || (GtagCommand = {}));\n/*\r\n * Officially recommended event names for gtag.js\r\n * Any other string is also allowed.\r\n */\n\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"ADD_SHIPPING_INFO\"] = \"add_shipping_info\";\n EventName[\"ADD_PAYMENT_INFO\"] = \"add_payment_info\";\n EventName[\"ADD_TO_CART\"] = \"add_to_cart\";\n EventName[\"ADD_TO_WISHLIST\"] = \"add_to_wishlist\";\n EventName[\"BEGIN_CHECKOUT\"] = \"begin_checkout\";\n /** @deprecated */\n\n EventName[\"CHECKOUT_PROGRESS\"] = \"checkout_progress\";\n EventName[\"EXCEPTION\"] = \"exception\";\n EventName[\"GENERATE_LEAD\"] = \"generate_lead\";\n EventName[\"LOGIN\"] = \"login\";\n EventName[\"PAGE_VIEW\"] = \"page_view\";\n EventName[\"PURCHASE\"] = \"purchase\";\n EventName[\"REFUND\"] = \"refund\";\n EventName[\"REMOVE_FROM_CART\"] = \"remove_from_cart\";\n EventName[\"SCREEN_VIEW\"] = \"screen_view\";\n EventName[\"SEARCH\"] = \"search\";\n EventName[\"SELECT_CONTENT\"] = \"select_content\";\n EventName[\"SELECT_ITEM\"] = \"select_item\";\n EventName[\"SELECT_PROMOTION\"] = \"select_promotion\";\n /** @deprecated */\n\n EventName[\"SET_CHECKOUT_OPTION\"] = \"set_checkout_option\";\n EventName[\"SHARE\"] = \"share\";\n EventName[\"SIGN_UP\"] = \"sign_up\";\n EventName[\"TIMING_COMPLETE\"] = \"timing_complete\";\n EventName[\"VIEW_CART\"] = \"view_cart\";\n EventName[\"VIEW_ITEM\"] = \"view_item\";\n EventName[\"VIEW_ITEM_LIST\"] = \"view_item_list\";\n EventName[\"VIEW_PROMOTION\"] = \"view_promotion\";\n EventName[\"VIEW_SEARCH_RESULTS\"] = \"view_search_results\";\n})(EventName || (EventName = {}));\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Logs an analytics event through the Firebase SDK.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param eventName Google Analytics event name, choose from standard list or use a custom string.\r\n * @param eventParams Analytics event parameters.\r\n */\n\n\nfunction _logEvent(gtagFunction, initializationPromise, eventName, eventParams, options) {\n return __awaiter(this, void 0, void 0, function () {\n var measurementId, params;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(options && options.global)) return [3\n /*break*/\n , 1];\n gtagFunction(GtagCommand.EVENT, eventName, eventParams);\n return [2\n /*return*/\n ];\n\n case 1:\n return [4\n /*yield*/\n , initializationPromise];\n\n case 2:\n measurementId = _a.sent();\n params = __assign(__assign({}, eventParams), {\n 'send_to': measurementId\n });\n gtagFunction(GtagCommand.EVENT, eventName, params);\n _a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Set screen_name parameter for this Google Analytics ID.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param screenName Screen name string to set.\r\n */\n\n\nfunction _setCurrentScreen(gtagFunction, initializationPromise, screenName, options) {\n return __awaiter(this, void 0, void 0, function () {\n var measurementId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(options && options.global)) return [3\n /*break*/\n , 1];\n gtagFunction(GtagCommand.SET, {\n 'screen_name': screenName\n });\n return [2\n /*return*/\n , Promise.resolve()];\n\n case 1:\n return [4\n /*yield*/\n , initializationPromise];\n\n case 2:\n measurementId = _a.sent();\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'screen_name': screenName\n });\n _a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Set user_id parameter for this Google Analytics ID.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param id User ID string to set\r\n */\n\n\nfunction _setUserId(gtagFunction, initializationPromise, id, options) {\n return __awaiter(this, void 0, void 0, function () {\n var measurementId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(options && options.global)) return [3\n /*break*/\n , 1];\n gtagFunction(GtagCommand.SET, {\n 'user_id': id\n });\n return [2\n /*return*/\n , Promise.resolve()];\n\n case 1:\n return [4\n /*yield*/\n , initializationPromise];\n\n case 2:\n measurementId = _a.sent();\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'user_id': id\n });\n _a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Set all other user properties other than user_id and screen_name.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param properties Map of user properties to set\r\n */\n\n\nfunction _setUserProperties(gtagFunction, initializationPromise, properties, options) {\n return __awaiter(this, void 0, void 0, function () {\n var flatProperties, _i, _a, key, measurementId;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(options && options.global)) return [3\n /*break*/\n , 1];\n flatProperties = {};\n\n for (_i = 0, _a = Object.keys(properties); _i < _a.length; _i++) {\n key = _a[_i]; // use dot notation for merge behavior in gtag.js\n\n flatProperties[\"user_properties.\" + key] = properties[key];\n }\n\n gtagFunction(GtagCommand.SET, flatProperties);\n return [2\n /*return*/\n , Promise.resolve()];\n\n case 1:\n return [4\n /*yield*/\n , initializationPromise];\n\n case 2:\n measurementId = _b.sent();\n gtagFunction(GtagCommand.CONFIG, measurementId, {\n update: true,\n 'user_properties': properties\n });\n _b.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Set whether collection is enabled for this ID.\r\n *\r\n * @param enabled If true, collection is enabled for this ID.\r\n */\n\n\nfunction _setAnalyticsCollectionEnabled(initializationPromise, enabled) {\n return __awaiter(this, void 0, void 0, function () {\n var measurementId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , initializationPromise];\n\n case 1:\n measurementId = _a.sent();\n window[\"ga-disable-\" + measurementId] = !enabled;\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar logger = new Logger('@firebase/analytics');\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Inserts gtag script tag into the page to asynchronously download gtag.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\n\nfunction insertScriptTag(dataLayerName) {\n var script = document.createElement('script'); // We are not providing an analyticsId in the URL because it would trigger a `page_view`\n // without fid. We will initialize ga-id using gtag (config) command together with fid.\n\n script.src = GTAG_URL + \"?l=\" + dataLayerName;\n script.async = true;\n document.head.appendChild(script);\n}\n/**\r\n * Get reference to, or create, global datalayer.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\n\n\nfunction getOrCreateDataLayer(dataLayerName) {\n // Check for existing dataLayer and create if needed.\n var dataLayer = [];\n\n if (Array.isArray(window[dataLayerName])) {\n dataLayer = window[dataLayerName];\n } else {\n window[dataLayerName] = dataLayer;\n }\n\n return dataLayer;\n}\n/**\r\n * Wrapped gtag logic when gtag is called with 'config' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param measurementId GA Measurement ID to set config for.\r\n * @param gtagParams Gtag config params to set.\r\n */\n\n\nfunction gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, measurementId, gtagParams) {\n return __awaiter(this, void 0, void 0, function () {\n var correspondingAppId, dynamicConfigResults, foundConfig, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n correspondingAppId = measurementIdToAppId[measurementId];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 7,, 8]);\n\n if (!correspondingAppId) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , initializationPromisesMap[correspondingAppId]];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 6];\n\n case 3:\n return [4\n /*yield*/\n , Promise.all(dynamicConfigPromisesList)];\n\n case 4:\n dynamicConfigResults = _a.sent();\n foundConfig = dynamicConfigResults.find(function (config) {\n return config.measurementId === measurementId;\n });\n if (!foundConfig) return [3\n /*break*/\n , 6];\n return [4\n /*yield*/\n , initializationPromisesMap[foundConfig.appId]];\n\n case 5:\n _a.sent();\n\n _a.label = 6;\n\n case 6:\n return [3\n /*break*/\n , 8];\n\n case 7:\n e_1 = _a.sent();\n logger.error(e_1);\n return [3\n /*break*/\n , 8];\n\n case 8:\n gtagCore(GtagCommand.CONFIG, measurementId, gtagParams);\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Wrapped gtag logic when gtag is called with 'event' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementId GA Measurement ID to log event to.\r\n * @param gtagParams Params to log with this event.\r\n */\n\n\nfunction gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementId, gtagParams) {\n return __awaiter(this, void 0, void 0, function () {\n var initializationPromisesToWaitFor, gaSendToList, dynamicConfigResults, _loop_1, _i, gaSendToList_1, sendToId, state_1, e_2;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 4,, 5]);\n\n initializationPromisesToWaitFor = [];\n if (!(gtagParams && gtagParams['send_to'])) return [3\n /*break*/\n , 2];\n gaSendToList = gtagParams['send_to']; // Make it an array if is isn't, so it can be dealt with the same way.\n\n if (!Array.isArray(gaSendToList)) {\n gaSendToList = [gaSendToList];\n }\n\n return [4\n /*yield*/\n , Promise.all(dynamicConfigPromisesList)];\n\n case 1:\n dynamicConfigResults = _a.sent();\n\n _loop_1 = function _loop_1(sendToId) {\n // Any fetched dynamic measurement ID that matches this 'send_to' ID\n var foundConfig = dynamicConfigResults.find(function (config) {\n return config.measurementId === sendToId;\n });\n var initializationPromise = foundConfig && initializationPromisesMap[foundConfig.appId];\n\n if (initializationPromise) {\n initializationPromisesToWaitFor.push(initializationPromise);\n } else {\n // Found an item in 'send_to' that is not associated\n // directly with an FID, possibly a group. Empty this array,\n // exit the loop early, and let it get populated below.\n initializationPromisesToWaitFor = [];\n return \"break\";\n }\n };\n\n for (_i = 0, gaSendToList_1 = gaSendToList; _i < gaSendToList_1.length; _i++) {\n sendToId = gaSendToList_1[_i];\n state_1 = _loop_1(sendToId);\n if (state_1 === \"break\") break;\n }\n\n _a.label = 2;\n\n case 2:\n // This will be unpopulated if there was no 'send_to' field , or\n // if not all entries in the 'send_to' field could be mapped to\n // a FID. In these cases, wait on all pending initialization promises.\n if (initializationPromisesToWaitFor.length === 0) {\n initializationPromisesToWaitFor = Object.values(initializationPromisesMap);\n } // Run core gtag function with args after all relevant initialization\n // promises have been resolved.\n\n\n return [4\n /*yield*/\n , Promise.all(initializationPromisesToWaitFor)];\n\n case 3:\n // Run core gtag function with args after all relevant initialization\n // promises have been resolved.\n _a.sent(); // Workaround for http://b/141370449 - third argument cannot be undefined.\n\n\n gtagCore(GtagCommand.EVENT, measurementId, gtagParams || {});\n return [3\n /*break*/\n , 5];\n\n case 4:\n e_2 = _a.sent();\n logger.error(e_2);\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Wraps a standard gtag function with extra code to wait for completion of\r\n * relevant initialization promises before sending requests.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n */\n\n\nfunction wrapGtag(gtagCore,\n/**\r\n * Allows wrapped gtag calls to wait on whichever intialization promises are required,\r\n * depending on the contents of the gtag params' `send_to` field, if any.\r\n */\ninitializationPromisesMap,\n/**\r\n * Wrapped gtag calls sometimes require all dynamic config fetches to have returned\r\n * before determining what initialization promises (which include FIDs) to wait for.\r\n */\ndynamicConfigPromisesList,\n/**\r\n * Wrapped gtag config calls can narrow down which initialization promise (with FID)\r\n * to wait for if the measurementId is already fetched, by getting the corresponding appId,\r\n * which is the key for the initialization promises map.\r\n */\nmeasurementIdToAppId) {\n /**\r\n * Wrapper around gtag that ensures FID is sent with gtag calls.\r\n * @param command Gtag command type.\r\n * @param idOrNameOrParams Measurement ID if command is EVENT/CONFIG, params if command is SET.\r\n * @param gtagParams Params if event is EVENT/CONFIG.\r\n */\n function gtagWrapper(command, idOrNameOrParams, gtagParams) {\n return __awaiter(this, void 0, void 0, function () {\n var e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 6,, 7]);\n\n if (!(command === GtagCommand.EVENT)) return [3\n /*break*/\n , 2]; // If EVENT, second arg must be measurementId.\n\n return [4\n /*yield*/\n , gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, idOrNameOrParams, gtagParams)];\n\n case 1:\n // If EVENT, second arg must be measurementId.\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 2:\n if (!(command === GtagCommand.CONFIG)) return [3\n /*break*/\n , 4]; // If CONFIG, second arg must be measurementId.\n\n return [4\n /*yield*/\n , gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, idOrNameOrParams, gtagParams)];\n\n case 3:\n // If CONFIG, second arg must be measurementId.\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 4:\n // If SET, second arg must be params.\n gtagCore(GtagCommand.SET, idOrNameOrParams);\n _a.label = 5;\n\n case 5:\n return [3\n /*break*/\n , 7];\n\n case 6:\n e_3 = _a.sent();\n logger.error(e_3);\n return [3\n /*break*/\n , 7];\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n }\n\n return gtagWrapper;\n}\n/**\r\n * Creates global gtag function or wraps existing one if found.\r\n * This wrapped function attaches Firebase instance ID (FID) to gtag 'config' and\r\n * 'event' calls that belong to the GAID associated with this Firebase instance.\r\n *\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param dataLayerName Name of global GA datalayer array.\r\n * @param gtagFunctionName Name of global gtag function (\"gtag\" if not user-specified).\r\n */\n\n\nfunction wrapOrCreateGtag(initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, dataLayerName, gtagFunctionName) {\n // Create a basic core gtag function\n var gtagCore = function gtagCore() {\n var _args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n } // Must push IArguments object, not an array.\n\n\n window[dataLayerName].push(arguments);\n }; // Replace it with existing one if found\n\n\n if (window[gtagFunctionName] && typeof window[gtagFunctionName] === 'function') {\n // @ts-ignore\n gtagCore = window[gtagFunctionName];\n }\n\n window[gtagFunctionName] = wrapGtag(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId);\n return {\n gtagCore: gtagCore,\n wrappedGtag: window[gtagFunctionName]\n };\n}\n/**\r\n * Returns first script tag in DOM matching our gtag url pattern.\r\n */\n\n\nfunction findGtagScriptOnPage() {\n var scriptTags = window.document.getElementsByTagName('script');\n\n for (var _i = 0, _a = Object.values(scriptTags); _i < _a.length; _i++) {\n var tag = _a[_i];\n\n if (tag.src && tag.src.includes(GTAG_URL)) {\n return tag;\n }\n }\n\n return null;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar _a;\n\nvar ERRORS = (_a = {}, _a[\"already-exists\"\n/* ALREADY_EXISTS */\n] = 'A Firebase Analytics instance with the appId {$id} ' + ' already exists. ' + 'Only one Firebase Analytics instance can be created for each appId.', _a[\"already-initialized\"\n/* ALREADY_INITIALIZED */\n] = 'Firebase Analytics has already been initialized.' + 'settings() must be called before initializing any Analytics instance' + 'or it will have no effect.', _a[\"interop-component-reg-failed\"\n/* INTEROP_COMPONENT_REG_FAILED */\n] = 'Firebase Analytics Interop Component failed to instantiate: {$reason}', _a[\"invalid-analytics-context\"\n/* INVALID_ANALYTICS_CONTEXT */\n] = 'Firebase Analytics is not supported in this environment. ' + 'Wrap initialization of analytics in analytics.isSupported() ' + 'to prevent initialization in unsupported environments. Details: {$errorInfo}', _a[\"indexeddb-unavailable\"\n/* INDEXEDDB_UNAVAILABLE */\n] = 'IndexedDB unavailable or restricted in this environment. ' + 'Wrap initialization of analytics in analytics.isSupported() ' + 'to prevent initialization in unsupported environments. Details: {$errorInfo}', _a[\"fetch-throttle\"\n/* FETCH_THROTTLE */\n] = 'The config fetch request timed out while in an exponential backoff state.' + ' Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.', _a[\"config-fetch-failed\"\n/* CONFIG_FETCH_FAILED */\n] = 'Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}', _a[\"no-api-key\"\n/* NO_API_KEY */\n] = 'The \"apiKey\" field is empty in the local Firebase config. Firebase Analytics requires this field to' + 'contain a valid API key.', _a[\"no-app-id\"\n/* NO_APP_ID */\n] = 'The \"appId\" field is empty in the local Firebase config. Firebase Analytics requires this field to' + 'contain a valid app ID.', _a);\nvar ERROR_FACTORY = new ErrorFactory('analytics', 'Analytics', ERRORS);\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Backoff factor for 503 errors, which we want to be conservative about\r\n * to avoid overloading servers. Each retry interval will be\r\n * BASE_INTERVAL_MILLIS * LONG_RETRY_FACTOR ^ retryCount, so the second one\r\n * will be ~30 seconds (with fuzzing).\r\n */\n\nvar LONG_RETRY_FACTOR = 30;\n/**\r\n * Base wait interval to multiplied by backoffFactor^backoffCount.\r\n */\n\nvar BASE_INTERVAL_MILLIS = 1000;\n/**\r\n * Stubbable retry data storage class.\r\n */\n\nvar RetryData =\n/** @class */\nfunction () {\n function RetryData(throttleMetadata, intervalMillis) {\n if (throttleMetadata === void 0) {\n throttleMetadata = {};\n }\n\n if (intervalMillis === void 0) {\n intervalMillis = BASE_INTERVAL_MILLIS;\n }\n\n this.throttleMetadata = throttleMetadata;\n this.intervalMillis = intervalMillis;\n }\n\n RetryData.prototype.getThrottleMetadata = function (appId) {\n return this.throttleMetadata[appId];\n };\n\n RetryData.prototype.setThrottleMetadata = function (appId, metadata) {\n this.throttleMetadata[appId] = metadata;\n };\n\n RetryData.prototype.deleteThrottleMetadata = function (appId) {\n delete this.throttleMetadata[appId];\n };\n\n return RetryData;\n}();\n\nvar defaultRetryData = new RetryData();\n/**\r\n * Set GET request headers.\r\n * @param apiKey App API key.\r\n */\n\nfunction getHeaders(apiKey) {\n return new Headers({\n Accept: 'application/json',\n 'x-goog-api-key': apiKey\n });\n}\n/**\r\n * Fetches dynamic config from backend.\r\n * @param app Firebase app to fetch config for.\r\n */\n\n\nfunction fetchDynamicConfig(appFields) {\n var _a;\n\n return __awaiter(this, void 0, void 0, function () {\n var appId, apiKey, request, appUrl, response, errorMessage, jsonResponse, _ignored_1;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n appId = appFields.appId, apiKey = appFields.apiKey;\n request = {\n method: 'GET',\n headers: getHeaders(apiKey)\n };\n appUrl = DYNAMIC_CONFIG_URL.replace('{app-id}', appId);\n return [4\n /*yield*/\n , fetch(appUrl, request)];\n\n case 1:\n response = _b.sent();\n if (!(response.status !== 200 && response.status !== 304)) return [3\n /*break*/\n , 6];\n errorMessage = '';\n _b.label = 2;\n\n case 2:\n _b.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , response.json()];\n\n case 3:\n jsonResponse = _b.sent();\n\n if ((_a = jsonResponse.error) === null || _a === void 0 ? void 0 : _a.message) {\n errorMessage = jsonResponse.error.message;\n }\n\n return [3\n /*break*/\n , 5];\n\n case 4:\n _ignored_1 = _b.sent();\n return [3\n /*break*/\n , 5];\n\n case 5:\n throw ERROR_FACTORY.create(\"config-fetch-failed\"\n /* CONFIG_FETCH_FAILED */\n , {\n httpStatus: response.status,\n responseMessage: errorMessage\n });\n\n case 6:\n return [2\n /*return*/\n , response.json()];\n }\n });\n });\n}\n/**\r\n * Fetches dynamic config from backend, retrying if failed.\r\n * @param app Firebase app to fetch config for.\r\n */\n\n\nfunction fetchDynamicConfigWithRetry(app, // retryData and timeoutMillis are parameterized to allow passing a different value for testing.\nretryData, timeoutMillis) {\n if (retryData === void 0) {\n retryData = defaultRetryData;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var _a, appId, apiKey, measurementId, throttleMetadata, signal;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n _a = app.options, appId = _a.appId, apiKey = _a.apiKey, measurementId = _a.measurementId;\n\n if (!appId) {\n throw ERROR_FACTORY.create(\"no-app-id\"\n /* NO_APP_ID */\n );\n }\n\n if (!apiKey) {\n if (measurementId) {\n return [2\n /*return*/\n , {\n measurementId: measurementId,\n appId: appId\n }];\n }\n\n throw ERROR_FACTORY.create(\"no-api-key\"\n /* NO_API_KEY */\n );\n }\n\n throttleMetadata = retryData.getThrottleMetadata(appId) || {\n backoffCount: 0,\n throttleEndTimeMillis: Date.now()\n };\n signal = new AnalyticsAbortSignal();\n setTimeout(function () {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\n signal.abort();\n return [2\n /*return*/\n ];\n });\n });\n }, timeoutMillis !== undefined ? timeoutMillis : FETCH_TIMEOUT_MILLIS);\n return [2\n /*return*/\n , attemptFetchDynamicConfigWithRetry({\n appId: appId,\n apiKey: apiKey,\n measurementId: measurementId\n }, throttleMetadata, signal, retryData)];\n });\n });\n}\n/**\r\n * Runs one retry attempt.\r\n * @param appFields Necessary app config fields.\r\n * @param throttleMetadata Ongoing metadata to determine throttling times.\r\n * @param signal Abort signal.\r\n */\n\n\nfunction attemptFetchDynamicConfigWithRetry(appFields, _a, signal, retryData // for testing\n) {\n var throttleEndTimeMillis = _a.throttleEndTimeMillis,\n backoffCount = _a.backoffCount;\n\n if (retryData === void 0) {\n retryData = defaultRetryData;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var appId, measurementId, e_1, response, e_2, backoffMillis, throttleMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n appId = appFields.appId, measurementId = appFields.measurementId;\n _b.label = 1;\n\n case 1:\n _b.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , setAbortableTimeout(signal, throttleEndTimeMillis)];\n\n case 2:\n _b.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n e_1 = _b.sent();\n\n if (measurementId) {\n logger.warn(\"Timed out fetching this Firebase app's measurement ID from the server.\" + (\" Falling back to the measurement ID \" + measurementId) + (\" provided in the \\\"measurementId\\\" field in the local Firebase config. [\" + e_1.message + \"]\"));\n return [2\n /*return*/\n , {\n appId: appId,\n measurementId: measurementId\n }];\n }\n\n throw e_1;\n\n case 4:\n _b.trys.push([4, 6,, 7]);\n\n return [4\n /*yield*/\n , fetchDynamicConfig(appFields)];\n\n case 5:\n response = _b.sent(); // Note the SDK only clears throttle state if response is success or non-retriable.\n\n retryData.deleteThrottleMetadata(appId);\n return [2\n /*return*/\n , response];\n\n case 6:\n e_2 = _b.sent();\n\n if (!isRetriableError(e_2)) {\n retryData.deleteThrottleMetadata(appId);\n\n if (measurementId) {\n logger.warn(\"Failed to fetch this Firebase app's measurement ID from the server.\" + (\" Falling back to the measurement ID \" + measurementId) + (\" provided in the \\\"measurementId\\\" field in the local Firebase config. [\" + e_2.message + \"]\"));\n return [2\n /*return*/\n , {\n appId: appId,\n measurementId: measurementId\n }];\n } else {\n throw e_2;\n }\n }\n\n backoffMillis = Number(e_2.httpStatus) === 503 ? calculateBackoffMillis(backoffCount, retryData.intervalMillis, LONG_RETRY_FACTOR) : calculateBackoffMillis(backoffCount, retryData.intervalMillis);\n throttleMetadata = {\n throttleEndTimeMillis: Date.now() + backoffMillis,\n backoffCount: backoffCount + 1\n }; // Persists state.\n\n retryData.setThrottleMetadata(appId, throttleMetadata);\n logger.debug(\"Calling attemptFetch again in \" + backoffMillis + \" millis\");\n return [2\n /*return*/\n , attemptFetchDynamicConfigWithRetry(appFields, throttleMetadata, signal, retryData)];\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n}\n/**\r\n * Supports waiting on a backoff by:\r\n *\r\n *
    \r\n *
  • Promisifying setTimeout, so we can set a timeout in our Promise chain
  • \r\n *
  • Listening on a signal bus for abort events, just like the Fetch API
  • \r\n *
  • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\r\n * request appear the same.
  • \r\n *
\r\n *\r\n *

Visible for testing.\r\n */\n\n\nfunction setAbortableTimeout(signal, throttleEndTimeMillis) {\n return new Promise(function (resolve, reject) {\n // Derives backoff from given end time, normalizing negative numbers to zero.\n var backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\n var timeout = setTimeout(resolve, backoffMillis); // Adds listener, rather than sets onabort, because signal is a shared object.\n\n signal.addEventListener(function () {\n clearTimeout(timeout); // If the request completes before this timeout, the rejection has no effect.\n\n reject(ERROR_FACTORY.create(\"fetch-throttle\"\n /* FETCH_THROTTLE */\n , {\n throttleEndTimeMillis: throttleEndTimeMillis\n }));\n });\n });\n}\n/**\r\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\r\n */\n\n\nfunction isRetriableError(e) {\n if (!(e instanceof FirebaseError)) {\n return false;\n } // Uses string index defined by ErrorData, which FirebaseError implements.\n\n\n var httpStatus = Number(e['httpStatus']);\n return httpStatus === 429 || httpStatus === 500 || httpStatus === 503 || httpStatus === 504;\n}\n/**\r\n * Shims a minimal AbortSignal (copied from Remote Config).\r\n *\r\n *

AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\r\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\r\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\r\n * swapped out if/when we do.\r\n */\n\n\nvar AnalyticsAbortSignal =\n/** @class */\nfunction () {\n function AnalyticsAbortSignal() {\n this.listeners = [];\n }\n\n AnalyticsAbortSignal.prototype.addEventListener = function (listener) {\n this.listeners.push(listener);\n };\n\n AnalyticsAbortSignal.prototype.abort = function () {\n this.listeners.forEach(function (listener) {\n return listener();\n });\n };\n\n return AnalyticsAbortSignal;\n}();\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction validateIndexedDB() {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!isIndexedDBAvailable()) return [3\n /*break*/\n , 1];\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\"\n /* INDEXEDDB_UNAVAILABLE */\n , {\n errorInfo: 'IndexedDB is not available in this environment.'\n }).message);\n return [2\n /*return*/\n , false];\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , validateIndexedDBOpenable()];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n e_1 = _a.sent();\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\"\n /* INDEXEDDB_UNAVAILABLE */\n , {\n errorInfo: e_1\n }).message);\n return [2\n /*return*/\n , false];\n\n case 4:\n return [2\n /*return*/\n , true];\n }\n });\n });\n}\n/**\r\n * Initialize the analytics instance in gtag.js by calling config command with fid.\r\n *\r\n * NOTE: We combine analytics initialization and setting fid together because we want fid to be\r\n * part of the `page_view` event that's sent during the initialization\r\n * @param app Firebase app\r\n * @param gtagCore The gtag function that's not wrapped.\r\n * @param dynamicConfigPromisesList Array of all dynamic config promises.\r\n * @param measurementIdToAppId Maps measurementID to appID.\r\n * @param installations FirebaseInstallations instance.\r\n *\r\n * @returns Measurement ID.\r\n */\n\n\nfunction initializeIds(app, dynamicConfigPromisesList, measurementIdToAppId, installations, gtagCore) {\n return __awaiter(this, void 0, void 0, function () {\n var dynamicConfigPromise, fidPromise, _a, dynamicConfig, fid, configProperties;\n\n var _b;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dynamicConfigPromise = fetchDynamicConfigWithRetry(app); // Once fetched, map measurementIds to appId, for ease of lookup in wrapped gtag function.\n\n dynamicConfigPromise.then(function (config) {\n measurementIdToAppId[config.measurementId] = config.appId;\n\n if (app.options.measurementId && config.measurementId !== app.options.measurementId) {\n logger.warn(\"The measurement ID in the local Firebase config (\" + app.options.measurementId + \")\" + (\" does not match the measurement ID fetched from the server (\" + config.measurementId + \").\") + \" To ensure analytics events are always sent to the correct Analytics property,\" + \" update the\" + \" measurement ID field in the local config or remove it from the local config.\");\n }\n }).catch(function (e) {\n return logger.error(e);\n }); // Add to list to track state of all dynamic config promises.\n\n dynamicConfigPromisesList.push(dynamicConfigPromise);\n fidPromise = validateIndexedDB().then(function (envIsValid) {\n if (envIsValid) {\n return installations.getId();\n } else {\n return undefined;\n }\n });\n return [4\n /*yield*/\n , Promise.all([dynamicConfigPromise, fidPromise])];\n\n case 1:\n _a = _c.sent(), dynamicConfig = _a[0], fid = _a[1]; // This command initializes gtag.js and only needs to be called once for the entire web app,\n // but since it is idempotent, we can call it multiple times.\n // We keep it together with other initialization logic for better code structure.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n gtagCore('js', new Date());\n configProperties = (_b = {}, // guard against developers accidentally setting properties with prefix `firebase_`\n _b[ORIGIN_KEY] = 'firebase', _b.update = true, _b);\n\n if (fid != null) {\n configProperties[GA_FID_KEY] = fid;\n } // It should be the first config command called on this GA-ID\n // Initialize this GA-ID and set FID on it using the gtag config API.\n\n\n gtagCore(GtagCommand.CONFIG, dynamicConfig.measurementId, configProperties);\n return [2\n /*return*/\n , dynamicConfig.measurementId];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Maps appId to full initialization promise. Wrapped gtag calls must wait on\r\n * all or some of these, depending on the call's `send_to` param and the status\r\n * of the dynamic config fetches (see below).\r\n */\n\n\nvar initializationPromisesMap = {};\n/**\r\n * List of dynamic config fetch promises. In certain cases, wrapped gtag calls\r\n * wait on all these to be complete in order to determine if it can selectively\r\n * wait for only certain initialization (FID) promises or if it must wait for all.\r\n */\n\nvar dynamicConfigPromisesList = [];\n/**\r\n * Maps fetched measurementIds to appId. Populated when the app's dynamic config\r\n * fetch completes. If already populated, gtag config calls can use this to\r\n * selectively wait for only this app's initialization promise (FID) instead of all\r\n * initialization promises.\r\n */\n\nvar measurementIdToAppId = {};\n/**\r\n * Name for window global data layer array used by GA: defaults to 'dataLayer'.\r\n */\n\nvar dataLayerName = 'dataLayer';\n/**\r\n * Name for window global gtag function used by GA: defaults to 'gtag'.\r\n */\n\nvar gtagName = 'gtag';\n/**\r\n * Reproduction of standard gtag function or reference to existing\r\n * gtag function on window object.\r\n */\n\nvar gtagCoreFunction;\n/**\r\n * Wrapper around gtag function that ensures FID is sent with all\r\n * relevant event and config calls.\r\n */\n\nvar wrappedGtagFunction;\n/**\r\n * Flag to ensure page initialization steps (creation or wrapping of\r\n * dataLayer and gtag script) are only run once per page load.\r\n */\n\nvar globalInitDone = false;\n/**\r\n * For testing\r\n */\n\nfunction resetGlobalVars(newGlobalInitDone, newInitializationPromisesMap, newDynamicPromises) {\n if (newGlobalInitDone === void 0) {\n newGlobalInitDone = false;\n }\n\n if (newInitializationPromisesMap === void 0) {\n newInitializationPromisesMap = {};\n }\n\n if (newDynamicPromises === void 0) {\n newDynamicPromises = [];\n }\n\n globalInitDone = newGlobalInitDone;\n initializationPromisesMap = newInitializationPromisesMap;\n dynamicConfigPromisesList = newDynamicPromises;\n dataLayerName = 'dataLayer';\n gtagName = 'gtag';\n}\n/**\r\n * For testing\r\n */\n\n\nfunction getGlobalVars() {\n return {\n initializationPromisesMap: initializationPromisesMap,\n dynamicConfigPromisesList: dynamicConfigPromisesList\n };\n}\n/**\r\n * This must be run before calling firebase.analytics() or it won't\r\n * have any effect.\r\n * @param options Custom gtag and dataLayer names.\r\n */\n\n\nfunction settings(options) {\n if (globalInitDone) {\n throw ERROR_FACTORY.create(\"already-initialized\"\n /* ALREADY_INITIALIZED */\n );\n }\n\n if (options.dataLayerName) {\n dataLayerName = options.dataLayerName;\n }\n\n if (options.gtagName) {\n gtagName = options.gtagName;\n }\n}\n/**\r\n * Returns true if no environment mismatch is found.\r\n * If environment mismatches are found, throws an INVALID_ANALYTICS_CONTEXT\r\n * error that also lists details for each mismatch found.\r\n */\n\n\nfunction warnOnBrowserContextMismatch() {\n var mismatchedEnvMessages = [];\n\n if (isBrowserExtension()) {\n mismatchedEnvMessages.push('This is a browser extension environment.');\n }\n\n if (!areCookiesEnabled()) {\n mismatchedEnvMessages.push('Cookies are not available.');\n }\n\n if (mismatchedEnvMessages.length > 0) {\n var details = mismatchedEnvMessages.map(function (message, index) {\n return \"(\" + (index + 1) + \") \" + message;\n }).join(' ');\n var err = ERROR_FACTORY.create(\"invalid-analytics-context\"\n /* INVALID_ANALYTICS_CONTEXT */\n , {\n errorInfo: details\n });\n logger.warn(err.message);\n }\n}\n\nfunction factory(app, installations) {\n warnOnBrowserContextMismatch();\n var appId = app.options.appId;\n\n if (!appId) {\n throw ERROR_FACTORY.create(\"no-app-id\"\n /* NO_APP_ID */\n );\n }\n\n if (!app.options.apiKey) {\n if (app.options.measurementId) {\n logger.warn(\"The \\\"apiKey\\\" field is empty in the local Firebase config. This is needed to fetch the latest\" + (\" measurement ID for this Firebase app. Falling back to the measurement ID \" + app.options.measurementId) + \" provided in the \\\"measurementId\\\" field in the local Firebase config.\");\n } else {\n throw ERROR_FACTORY.create(\"no-api-key\"\n /* NO_API_KEY */\n );\n }\n }\n\n if (initializationPromisesMap[appId] != null) {\n throw ERROR_FACTORY.create(\"already-exists\"\n /* ALREADY_EXISTS */\n , {\n id: appId\n });\n }\n\n if (!globalInitDone) {\n // Steps here should only be done once per page: creation or wrapping\n // of dataLayer and global gtag function.\n // Detect if user has already put the gtag