{"version":3,"sources":["webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/classof.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/enum-keys.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.match.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.replace.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.search.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.species.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.split.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/esnext.symbol.dispose.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/esnext.symbol.observable.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/esnext.symbol.pattern-match.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/symbol/iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/symbol/iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/string-at.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/validate-set-prototype-of-arguments.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/@firebase/app/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@firebase/util/node_modules/tslib/tslib.es6.js","webpack:///./src/components/popup/popup.css","webpack:///./src/components/popup/pushNotifications/pushNotifications.css","webpack:///./src/components/popup/pushNotifications/smallPushNotification.css","webpack:///./node_modules/@firebase/messaging/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@firebase/messaging/dist/index.esm.js","webpack:///./src/core/state/context/popup.js","webpack:///./src/components/popup/popup.js","webpack:///./src/components/popup/pushNotifications/pushNotifications.js","webpack:///./src/components/popup/pushNotifications/smallPushNotification.js","webpack:///./src/core/services/pwa/push.js","webpack:///./src/core/services/pwa/apply.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/json2mq/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/react-media/esm/react-media.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/core/services/google-analytics/google-analytics.js","webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/global.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/has.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/fails.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/hide.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/export.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/entry-unbind.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/is-array.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/path.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/wrapped-well-known-symbol.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/array-methods.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/@firebase/app/dist/index.cjs.js","webpack:///./node_modules/@firebase/util/dist/index.cjs.js","webpack:///./src/core/services/pwa/serviceWorker.js","webpack:///./node_modules/firebase/app/dist/index.cjs.js","webpack:///./node_modules/@firebase/polyfill/dist/index.esm.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/promise-polyfill/lib/polyfill.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/array/find.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/array/find.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/html.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/array/find-index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/array/find-index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/object/assign.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/object/assign.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/string/starts-with.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/string/starts-with.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/validate-string-method-arguments.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/string/repeat.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/string/repeat.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.string.repeat.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/features/symbol/index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/es/symbol/index.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/create-property.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/@firebase/polyfill/node_modules/core-js/modules/es.object.to-string.js"],"names":["classof","test","module","exports","String","this","toString","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","arguments","it","result","undefined","tag","key","error","O","Object","callee","wrap","description","symbol","AllSymbols","nativeObjectCreate","$Symbol","PROTOTYPE","setInternalState","type","SYMBOL","DESCRIPTORS","$defineProperties","P","anObject","keys","enumKeys","toIndexedObject","i","l","length","$defineProperty","$propertyIsEnumerable","E","nativePropertyIsEnumerable","call","toPrimitive","ObjectPrototype","has","ObjectPrototypeSymbols","HIDDEN","$getOwnPropertyDescriptor","D","nativeGetOwnPropertyDescriptor","enumerable","$getOwnPropertyNames","names","nativeGetOwnPropertyNames","hiddenKeys","push","$getOwnPropertySymbols","IS_OP","global","IS_PURE","$export","redefine","fails","shared","setToStringTag","uid","wellKnownSymbol","wrappedWellKnownSymbolModule","defineWellKnownSymbol","isArray","isObject","createPropertyDescriptor","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","definePropertyModule","propertyIsEnumerableModule","hide","objectKeys","InternalStateModule","set","getInternalState","getterFor","f","nativeDefineProperty","Symbol","JSON","nativeJSONStringify","stringify","TO_PRIMITIVE","SymbolRegistry","WellKnownSymbolsStore","QObject","NATIVE_SYMBOL","USE_SETTER","findChild","setSymbolDescriptor","get","value","a","ObjectPrototypeDescriptor","isSymbol","iterator","TypeError","setter","configurable","unsafe","name","forced","sham","wellKnownSymbols","k","target","stat","keyFor","sym","useSetter","useSimple","create","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","replacer","$replacer","args","apply","valueOf","getOwnPropertySymbolsModule","symbols","propertyIsEnumerable","windowNames","window","slice","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","native","regexp","copyConstructorProperties","NativeSymbol","prototype","symbolPrototype","constructor","string","desc","replace","Math","codePointAt","defineIterator","STRING_ITERATOR","iterated","index","state","done","point","toInteger","requireObjectCoercible","that","pos","CONVERT_TO_STRING","first","S","position","size","charCodeAt","second","charAt","returnThis","IteratorPrototype","Iterators","IteratorConstructor","NAME","next","F","getPrototypeOf","validateSetPrototypeOfArguments","setPrototypeOf","correctSetter","Array","proto","__proto__","COLLECTION_NAME","DOMIterables","ArrayIteratorMethods","ITERATOR","ArrayValues","values","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","ARRAY_ITERATOR","kind","Arguments","extendStatics","d","b","p","hasOwnProperty","__extends","__","__assign","assign","t","s","n","__rest","e","indexOf","__decorate","decorators","c","r","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","y","_","label","sent","trys","ops","g","verb","v","op","pop","__exportStar","m","__values","o","__read","ar","__spread","concat","__await","__asyncGenerator","q","asyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","MessageParameter","MessageType","errorFactory","DEFAULT_PUBLIC_VAPID_KEY","Uint8Array","ENDPOINT","isArrayBufferEqual","byteLength","viewA","DataView","viewB","getUint8","arrayBufferToBase64","arrayBuffer","uint8Version","btoa","fromCharCode","IidModel","getToken","senderId","subscription","publicVapidKey","subscribeOptions","responseData","message","_a","p256dh","getKey","auth","fcmSubscribeBody","endpoint","buffer","applicationPubKey","headers","Headers","append","method","fetch","json","token","pushSet","updateToken","fcmToken","fcmPushSet","updateOptions","fcmUpdateBody","deleteToken","unsubscribeOptions","fcmUnsubscribeBody","base64ToArrayBuffer","base64String","base64","repeat","rawData","atob","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","cleanV1","request","indexedDB","open","onerror","event","onsuccess","db","iidModel","openCursorRequest","objectStoreNames","contains","objectStore","transaction","openCursor","console","warn","tokenDetails","cursor","fcmSenderId","continue","close","deleteDatabase","DbInterface","createTransaction","getIndex","put","delete","closeDatabase","dbPromise","runRequest","mode","getDb","objectStoreName","oncomplete","_this","dbName","dbVersion","onupgradeneeded","onDbUpgrade","TokenDetailsModel","_super","oldVersion","createObjectStore","keyPath","createIndex","unique","cursorRequest_1","newValue","createTime","Date","now","vapidKey","update","getTokenDetailsFromToken","validateInputs","getTokenDetailsFromSWScope","swScope","saveTokenDetails","details","input","ArrayBuffer","VapidDetailsModel","getVapidFromSWScope","saveVapidDetails","deleteVapidDetails","SENDER_ID_OPTION_NAME","BaseController","swReg","pushSubscription","currentPermission","getNotificationPermission_","getSWRegistration_","getPublicVapidKey_","getPushSubscription","tokenDetailsModel","scope","manageExistingToken","getNewToken","isEndpointEqual","isAuthEqual","isP256dhEqual","deleteTokenFromDB","updatedToken","allDetails","e_1","messagingSenderId","vapidDetailsModel","registration","pushManager","getSubscription","unsubscribe","swRegistration","subscribe","userVisibleOnly","applicationServerKey","requestPermission","useServiceWorker","usePublicVapidKey","b64PublicKey","onMessage","nextOrObserver","completed","onTokenRefresh","setBackgroundMessageHandler","callback","all","Notification","permission","getTokenDetailsModel","getVapidDetailsModel","getIidModel","app","options","INTERNAL","FCM_MSG","SwController","onPush","waitUntil","onPush_","onSubChange","onSubChange_","onNotificationClick","onNotificationClick_","msgPayload","notificationDetails","notificationTitle","reg","actions","maxActions","data","err","hasVisibleClients_","sendMessageToWindowClients_","getNotificationData_","title","showNotification","bgMessageHandler","err_2","err_1","link","windowClient","internalMsg","notification","action","stopImmediatePropagation","fcmOptions","click_action","getWindowClient_","self","clients","openWindow","focus","createNewMsg","NOTIFICATION_CLICKED","attemptToMessageClient_","notificationInformation","url","parsedURL","clientList","suitableClient","URL","location","href","getClientList","client","postMessage","some","visibilityState","startsWith","PUSH_MSG_RECEIVED","map","vapidKeyFromDatabase","addEventListener","matchAll","includeUncontrolled","msgType","msgData","TYPE_OF_MSG","DATA","WindowController","manifestCheckPromise","manifestTag","manifestContent","document","querySelector","gcm_sender_id","permissionResult","ServiceWorkerRegistration","registrationToUse","publicKey","publicVapidKeyToUse","parsedKey","onMessageInternal","onTokenRefreshInternal","waitForRegistrationToActivate_","serviceWorker","installing","waiting","active","stateChangeListener","removeEventListener","navigator","register","catch","browserErrorMessage","setupSWMessageListener_","workerPageMessage","pushMessage","messageObserver","tokenRefreshObserver","observer","isSupported","PushSubscription","cookieEnabled","registerService","React","createContext","Popup","_React$PureComponent","render","_jsx","PopupContext","Provider","children","_jsxs","Fragment","className","styles","props","PureComponent","propTypes","PropTypes","node","isRequired","cx","classnames","bind","PushNotificationsPopup","_len","_key","topicList","topics","toggleTopic","_ref","_objectSpread2","topicId","dataset","_objectSpread","setState","onAccept","selectedTopics","filter","onDecline","_this2","_this$props","logoUrl","i18n","externalLinkTitle","newTab","declineButtonClassName","footer__button","acceptButtonClassName","role","aria-labelledby","aria-modal","alt","logoAltText","src","id","Icon","glyph","arrowSvg","link__icon","subtitle","topicInfo","pill__button","data-value","onClick","aria-hidden","decline","a11yDecline","accept","a11yAccept","object","func","PushNotification","Media","query","media","matches","titleDesktop","titleMobile","ref","declineButtonRef","crossSvg","decline__icon","getElementById","firebaseSenderId","notificationsEnabled","sameValue","regExpExec","defined","SEARCH","$search","maybeCallNative","fn","RegExp","previousLastIndex","res","rx","lastIndex","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","setTimeout","clearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","runClearTimeout","marker","Item","array","noop","nextTick","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","is","x","ctx","toObject","isArrayIter","toLength","createProperty","getIterFn","iter","from","arrayLike","C","aLen","mapfn","mapping","iterFn","_typeof","obj","_toPropertyKey","arg","hint","prim","Number","_extends","source","_setPrototypeOf","_inheritsLoose","subClass","superClass","_assertThisInitialized","ReferenceError","obj2mq","mq","features","forEach","feature","camel2hyphen","isDimension","_defineProperty","toPropertyKey","writable","MediaQueryListener","targetWindow","listener","nativeMediaQueryList","matchMedia","cancellableListener","cancel","queryType","oneOfType","arrayOf","_React$Component","queryNames","queries","reduce","acc","mqListener","_extends2","queryObject","__DEFAULT__","newMatches","getMatches","onChange","defaultMatches","_extends3","initialize","_proto","qs","updateMatches","componentDidMount","componentWillUnmount","_ref2","isAnyMatches","Children","only","cloneElement","Component","bool","objectOf","createHTML","attribute","p1","quot","exec","toLowerCase","split","sendGAEvent","eventCategory","eventAction","eventLabel","ga","str","match","condition","format","argIndex","framesToPop","Function","path","store","setGlobal","isForced","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","targetProperty","noTargetGet","IE8_DOM_DEFINE","Attributes","IndexedObject","SHARED","copyright","bitmap","TAG","argument","min","ceil","floor","isNaN","val","NASHORN_BUG","1","V","nativeFunctionToString","enforceInternalState","enforce","TEMPLATE","simple","join","wmget","wmhas","wmset","STATE","NATIVE_WEAK_MAP","objectHas","sharedKey","WeakMap","TYPE","internalObjectKeys","enumBugKeys","CONSTRUCTOR","METHOD","postfix","random","UNSCOPABLES","ArrayPrototype","Empty","html","documentCreateElement","IE_PROTO","createDict","iframe","style","display","appendChild","iframeDocument","contentWindow","write","lt","Properties","arraySpeciesCreate","specificCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","boundFunction","aFunction","SPECIES","originalArray","exist","createElement","ownKeys","arrayIndexOf","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","methods","KEY","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","CurrentIteratorPrototype","arrayIterator","PrototypeOfArrayIteratorPrototype","CORRECT_PROTOTYPE_GETTER","tslib_1","util","appErrors","ErrorFactory","code","DEFAULT_ENTRY_NAME","tokenListeners","FirebaseAppImpl","checkDestroyed_","automaticDataCollectionEnabled_","name_","options_","firebase_","removeApp","services","_i","services_","serviceKey","_b","_c","instanceKey","service","isDeleted_","_getService","instanceIdentifier","instanceSpecifier","factories","extendApp","deepExtend","addAuthTokenListener","config","automaticDataCollectionEnabled","deepCopy","getUid","removeAuthTokenListener","createFirebaseNamespaceCore","firebaseAppImpl","apps","appHooks","namespace","initializeApp","rawConfig","callAppHooks","SDK_VERSION","createService","serviceProperties","appHook","allowMultipleInstances","getApps","serviceNamespace","appArg","useAsService","eventName","factoryName","patchProperty","log","isNode","sdkVersion","firebase","createFirebaseNamespace","extendNamespace","createSubscribe","assert","assertion","assertionError","CONSTANTS","stringToByteArray","out","base64Decode","decodeString","NODE_CLIENT","NODE_ADMIN","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","HAS_NATIVE_SUPPORT","encodeByteArray","opt_webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte3","outByte4","encodeString","byteArrayToString","bytes","decodeStringToByteArray","u","c2","c3","c1","charToByteMap","byte4","ENCODED_VALS","ENCODED_VALS_WEBSAFE","getTime","prop","Deferred","wrapCallback","promise","getUA","FirebaseError","captureStackTrace","fullCode","template","errors","PATTERN","fullMessage","serviceName","jsonEval","parse","decode","header","claims","signature","parts","extend","objTo","objFrom","findKey","opt_this","Sha1","reset","chain_","inbuf_","total_","compress_","buf","opt_offset","W","W_","opt_length","lengthMinusBlock","blockSize","buf_","inbuf","digest","totalBits","pad_","j","ObserverProxy","forEachObserver","complete","methods_1","unsub","unsubscribeOne","observers","finalized","task","finalError","observerCount","onNoObservers","sendOne","executor","unsubscribes","errorPrefix","fnName","argumentNumber","optional","argName","async","onError","base64Encode","utf8Bytes","clone","proxy","every","findValue","getAnyKey","getCount","rv","getValues","isAdmin","isEmpty","isMobileCordova","isNodeSdk","isNonNullObject","isReactNative","isValidFormat","isValidTimestamp","validSince","validUntil","issuedAtTime","opt_obj","querystring","querystringParams","params","arrayVal","encodeURIComponent","querystringDecode","safeGet","stringLength","high","validateArgCount","minCount","maxCount","argCount","argError","validateCallback","validateContextObject","context","validateNamespace","Boolean","hostname","ex","support","viewClasses","isDataView","isArrayBufferView","redirectStatuses","normalizeName","normalizeValue","iteratorFor","items","consumed","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","text","readAsText","chars","formData","Request","upcased","credentials","toUpperCase","referrer","form","trim","decodeURIComponent","Response","bodyInit","status","ok","statusText","isView","oldValue","response","redirect","RangeError","init","xhr","XMLHttpRequest","rawHeaders","getAllResponseHeaders","line","responseURL","responseText","ontimeout","withCredentials","responseType","setRequestHeader","send","polyfill","finallyConstructor","reason","setTimeoutFunc","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","ret","cb","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","prom","arr","remaining","race","setImmediate","globalNS","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","registerImmediate","channel","attachTo","runIfPresent","installPostMessageImplementation","onGlobalMessage","messagePrefix","attachEvent","canUsePostMessage","postMessageIsAsynchronous","oldOnMessage","importScripts","onmessage","MessageChannel","port1","port2","documentElement","script","onreadystatechange","removeChild","internalFind","FIND","SKIPS_HOLES","find","getOwnPropertyNamesModule","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","max","integer","detection","normalize","POLYFILL","NATIVE","replacement","internalFindIndex","FIND_INDEX","findIndex","nativeAssign","A","B","alphabet","chr","T","argumentsLength","validateArguments","STARTS_WITH","CORRECT_IS_REGEXP_LOGIC","nativeStartsWith","searchString","search","isRegExp","MATCH","count","Infinity","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","spreadable","propertyKey","foo"],"mappings":"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","file":"pwa.min.js?v=1742493153278","sourcesContent":["'use strict';\nvar classof = require('../internals/classof');\nvar TO_STRING_TAG = require('../internals/well-known-symbol')('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var classofRaw = require('../internals/classof-raw');\nvar TO_STRING_TAG = require('../internals/well-known-symbol')('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\nvar $export = require('../internals/export');\nvar redefine = require('../internals/redefine');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar fails = require('../internals/fails');\nvar shared = require('../internals/shared');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar enumKeys = require('../internals/enum-keys');\nvar isArray = require('../internals/is-array');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar hide = require('../internals/hide');\nvar objectKeys = require('../internals/object-keys');\nvar HIDDEN = require('../internals/shared-key')('hidden');\nvar InternalStateModule = require('../internals/internal-state');\nvar SYMBOL = 'Symbol';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar $Symbol = global.Symbol;\nvar JSON = global.JSON;\nvar nativeJSONStringify = JSON && JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\nvar ObjectPrototype = Object[PROTOTYPE];\nvar QObject = global.QObject;\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, key);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[key];\n nativeDefineProperty(it, key, D);\n if (ObjectPrototypeDescriptor && it !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, key, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) nativeDefineProperty(it, HIDDEN, createPropertyDescriptor(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = nativeObjectCreate(D, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(it, key, D);\n } return nativeDefineProperty(it, key, D);\n};\n\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIndexedObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\n\nvar $create = function create(it, P) {\n return P === undefined ? nativeObjectCreate(it) : $defineProperties(nativeObjectCreate(it), P);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = nativePropertyIsEnumerable.call(this, key = toPrimitive(key, true));\n if (this === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIndexedObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var D = nativeGetOwnPropertyDescriptor(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && !has(hiddenKeys, key)) result.push(key);\n } return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OP ? ObjectPrototypeSymbols : toIndexedObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectPrototype, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n require('../internals/object-get-own-property-names').f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n require('../internals/object-get-own-property-symbols').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n}\n\n$export({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { Symbol: $Symbol });\n\nfor (var wellKnownSymbols = objectKeys(WellKnownSymbolsStore), k = 0; wellKnownSymbols.length > k;) {\n defineWellKnownSymbol(wellKnownSymbols[k++]);\n}\n\n$export({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$export({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$export({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nJSON && $export({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return nativeJSONStringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || nativeJSONStringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || nativeJSONStringify(Object(symbol)) != '{}';\n}) }, {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return nativeJSONStringify.apply(JSON, args);\n }\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\n// all enumerable object keys, includes symbols\nmodule.exports = function (it) {\n var result = objectKeys(it);\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n if (getOwnPropertySymbols) {\n var symbols = getOwnPropertySymbols(it);\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (propertyIsEnumerable.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\nrequire('../internals/define-well-known-symbol')('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar NativeSymbol = require('../internals/global').Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n require('../internals/export')({ global: true, forced: true }, { Symbol: SymbolWrapper });\n}\n","// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\nrequire('../internals/define-well-known-symbol')('hasInstance');\n","// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\nrequire('../internals/define-well-known-symbol')('isConcatSpreadable');\n","// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\nrequire('../internals/define-well-known-symbol')('match');\n","// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\nrequire('../internals/define-well-known-symbol')('replace');\n","// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\nrequire('../internals/define-well-known-symbol')('search');\n","// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\nrequire('../internals/define-well-known-symbol')('species');\n","// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\nrequire('../internals/define-well-known-symbol')('split');\n","// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\nrequire('../internals/define-well-known-symbol')('toPrimitive');\n","// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\nrequire('../internals/define-well-known-symbol')('toStringTag');\n","// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\nrequire('../internals/define-well-known-symbol')('unscopables');\n","// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nrequire('../internals/set-to-string-tag')(Math, 'Math', true);\n","// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nrequire('../internals/set-to-string-tag')(require('../internals/global').JSON, 'JSON', true);\n","// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-using-statement\nrequire('../internals/define-well-known-symbol')('dispose');\n","// https://github.com/tc39/proposal-observable\nrequire('../internals/define-well-known-symbol')('observable');\n","// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\nrequire('../internals/define-well-known-symbol')('patternMatch');\n","module.exports = require('../../es/symbol/iterator');\n","require('../../modules/es.symbol.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = require('../../internals/wrapped-well-known-symbol').f('iterator');\n","'use strict';\nvar codePointAt = require('../internals/string-at');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = codePointAt(string, index, true);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n// CONVERT_TO_STRING: true -> String#at\n// CONVERT_TO_STRING: false -> String#codePointAt\nmodule.exports = function (that, pos, CONVERT_TO_STRING) {\n var S = String(requireObjectCoercible(that));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","module.exports = !require('../internals/fails')(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments');\n\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var correctSetter = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n correctSetter = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n validateSetPrototypeOfArguments(O, proto);\n if (correctSetter) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) {\n throw TypeError(\"Can't set \" + String(proto) + ' as a prototype');\n }\n};\n","var DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar global = require('../internals/global');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n hide(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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 () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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 () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"background\":\"popup__background\",\"overlay\":\"popup__overlay\",\"notification-container\":\"popup__notification-container\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"pushNotifications__wrapper\",\"notificationAppear\":\"pushNotifications__notificationAppear\",\"header\":\"pushNotifications__header\",\"header__logo\":\"pushNotifications__header__logo\",\"container\":\"pushNotifications__container\",\"title\":\"pushNotifications__title\",\"text\":\"pushNotifications__text\",\"link\":\"pushNotifications__link\",\"link__text\":\"pushNotifications__link__text\",\"link__icon\":\"pushNotifications__link__icon\",\"subtitle\":\"pushNotifications__subtitle\",\"pills\":\"pushNotifications__pills\",\"pill\":\"pushNotifications__pill\",\"pill__checkbox\":\"pushNotifications__pill__checkbox\",\"pill__button\":\"pushNotifications__pill__button\",\"pill__button--active\":\"pushNotifications__pill__button--active\",\"footer\":\"pushNotifications__footer\",\"footer__button\":\"pushNotifications__footer__button\",\"footer__button--decline\":\"pushNotifications__footer__button--decline\",\"footer__button--accept\":\"pushNotifications__footer__button--accept\",\"button__text--hidden\":\"pushNotifications__button__text--hidden\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"smallPushNotification__wrapper\",\"notificationAppearBottom\":\"smallPushNotification__notificationAppearBottom\",\"notificationAppearSide\":\"smallPushNotification__notificationAppearSide\",\"accept__button\":\"smallPushNotification__accept__button\",\"logo\":\"smallPushNotification__logo\",\"title\":\"smallPushNotification__title\",\"link\":\"smallPushNotification__link\",\"link__text\":\"smallPushNotification__link__text\",\"link__icon\":\"smallPushNotification__link__icon\",\"decline__button\":\"smallPushNotification__decline__button\",\"decline__icon\":\"smallPushNotification__decline__icon\",\"button__text--hidden\":\"smallPushNotification__button__text--hidden\"};","/*! *****************************************************************************\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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 () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import firebase from '@firebase/app';\nimport * as tslib_1 from 'tslib';\nimport { __spread, __awaiter, __generator, __extends, __assign } from 'tslib';\nimport { ErrorFactory, createSubscribe } from '@firebase/util';\n\n/**\r\n * @license\r\n * Copyright 2018 Google Inc.\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 * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar _a;\r\nvar ERROR_MAP = (_a = {},\r\n _a[\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */] = 'This method is available in a Window context.',\r\n _a[\"only-available-in-sw\" /* AVAILABLE_IN_SW */] = 'This method is available in a service worker ' + 'context.',\r\n _a[\"should-be-overriden\" /* SHOULD_BE_INHERITED */] = 'This method should be overriden by ' + 'extended classes.',\r\n _a[\"bad-sender-id\" /* BAD_SENDER_ID */] = \"Please ensure that 'messagingSenderId' is set \" +\r\n 'correctly in the options passed into firebase.initializeApp().',\r\n _a[\"permission-default\" /* PERMISSION_DEFAULT */] = 'The required permissions were not granted and ' + 'dismissed instead.',\r\n _a[\"permission-blocked\" /* PERMISSION_BLOCKED */] = 'The required permissions were not granted and ' + 'blocked instead.',\r\n _a[\"unsupported-browser\" /* UNSUPPORTED_BROWSER */] = \"This browser doesn't support the API's \" +\r\n 'required to use the firebase SDK.',\r\n _a[\"notifications-blocked\" /* NOTIFICATIONS_BLOCKED */] = 'Notifications have been blocked.',\r\n _a[\"failed-serviceworker-registration\" /* FAILED_DEFAULT_REGISTRATION */] = 'We are unable to register the ' +\r\n 'default service worker. {$browserErrorMessage}',\r\n _a[\"sw-registration-expected\" /* SW_REGISTRATION_EXPECTED */] = 'A service worker registration was the ' + 'expected input.',\r\n _a[\"get-subscription-failed\" /* GET_SUBSCRIPTION_FAILED */] = 'There was an error when trying to get ' +\r\n 'any existing Push Subscriptions.',\r\n _a[\"invalid-saved-token\" /* INVALID_SAVED_TOKEN */] = 'Unable to access details of the saved token.',\r\n _a[\"sw-reg-redundant\" /* SW_REG_REDUNDANT */] = 'The service worker being used for push was made ' + 'redundant.',\r\n _a[\"token-subscribe-failed\" /* TOKEN_SUBSCRIBE_FAILED */] = 'A problem occured while subscribing the ' + 'user to FCM: {$message}',\r\n _a[\"token-subscribe-no-token\" /* TOKEN_SUBSCRIBE_NO_TOKEN */] = 'FCM returned no token when subscribing ' + 'the user to push.',\r\n _a[\"token-subscribe-no-push-set\" /* TOKEN_SUBSCRIBE_NO_PUSH_SET */] = 'FCM returned an invalid response ' + 'when getting an FCM token.',\r\n _a[\"token-unsubscribe-failed\" /* TOKEN_UNSUBSCRIBE_FAILED */] = 'A problem occured while unsubscribing the ' + 'user from FCM: {$message}',\r\n _a[\"token-update-failed\" /* TOKEN_UPDATE_FAILED */] = 'A problem occured while updating the ' + 'user from FCM: {$message}',\r\n _a[\"token-update-no-token\" /* TOKEN_UPDATE_NO_TOKEN */] = 'FCM returned no token when updating ' + 'the user to push.',\r\n _a[\"use-sw-before-get-token\" /* USE_SW_BEFORE_GET_TOKEN */] = 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n _a[\"invalid-delete-token\" /* INVALID_DELETE_TOKEN */] = 'You must pass a valid token into ' +\r\n 'deleteToken(), i.e. the token from getToken().',\r\n _a[\"delete-token-not-found\" /* DELETE_TOKEN_NOT_FOUND */] = 'The deletion attempt for token could not ' +\r\n 'be performed as the token was not found.',\r\n _a[\"delete-scope-not-found\" /* DELETE_SCOPE_NOT_FOUND */] = 'The deletion attempt for service worker ' +\r\n 'scope could not be performed as the scope was not found.',\r\n _a[\"bg-handler-function-expected\" /* BG_HANDLER_FUNCTION_EXPECTED */] = 'The input to ' + 'setBackgroundMessageHandler() must be a function.',\r\n _a[\"no-window-client-to-msg\" /* NO_WINDOW_CLIENT_TO_MSG */] = 'An attempt was made to message a ' + 'non-existant window client.',\r\n _a[\"unable-to-resubscribe\" /* UNABLE_TO_RESUBSCRIBE */] = 'There was an error while re-subscribing ' +\r\n 'the FCM token for push messaging. Will have to resubscribe the ' +\r\n 'user on next visit. {$message}',\r\n _a[\"no-fcm-token-for-resubscribe\" /* NO_FCM_TOKEN_FOR_RESUBSCRIBE */] = 'Could not find an FCM token ' +\r\n 'and as a result, unable to resubscribe. Will have to resubscribe the ' +\r\n 'user on next visit.',\r\n _a[\"failed-to-delete-token\" /* FAILED_TO_DELETE_TOKEN */] = 'Unable to delete the currently saved token.',\r\n _a[\"no-sw-in-reg\" /* NO_SW_IN_REG */] = 'Even though the service worker registration was ' +\r\n 'successful, there was a problem accessing the service worker itself.',\r\n _a[\"incorrect-gcm-sender-id\" /* INCORRECT_GCM_SENDER_ID */] = \"Please change your web app manifest's \" +\r\n \"'gcm_sender_id' value to '103953800507' to use Firebase messaging.\",\r\n _a[\"bad-scope\" /* BAD_SCOPE */] = 'The service worker scope must be a string with at ' +\r\n 'least one character.',\r\n _a[\"bad-vapid-key\" /* BAD_VAPID_KEY */] = 'The public VAPID key is not a Uint8Array with 65 bytes.',\r\n _a[\"bad-subscription\" /* BAD_SUBSCRIPTION */] = 'The subscription must be a valid ' + 'PushSubscription.',\r\n _a[\"bad-token\" /* BAD_TOKEN */] = 'The FCM Token used for storage / lookup was not ' +\r\n 'a valid token string.',\r\n _a[\"bad-push-set\" /* BAD_PUSH_SET */] = 'The FCM push set used for storage / lookup was not ' +\r\n 'not a valid push set string.',\r\n _a[\"failed-delete-vapid-key\" /* FAILED_DELETE_VAPID_KEY */] = 'The VAPID key could not be deleted.',\r\n _a[\"invalid-public-vapid-key\" /* INVALID_PUBLIC_VAPID_KEY */] = 'The public VAPID key must be a string.',\r\n _a[\"use-public-key-before-get-token\" /* USE_PUBLIC_KEY_BEFORE_GET_TOKEN */] = 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.',\r\n _a[\"public-vapid-key-decryption-failed\" /* PUBLIC_KEY_DECRYPTION_FAILED */] = 'The public VAPID key did not equal ' + '65 bytes when decrypted.',\r\n _a);\r\nvar errorFactory = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar DEFAULT_PUBLIC_VAPID_KEY = new Uint8Array([\r\n 0x04,\r\n 0x33,\r\n 0x94,\r\n 0xf7,\r\n 0xdf,\r\n 0xa1,\r\n 0xeb,\r\n 0xb1,\r\n 0xdc,\r\n 0x03,\r\n 0xa2,\r\n 0x5e,\r\n 0x15,\r\n 0x71,\r\n 0xdb,\r\n 0x48,\r\n 0xd3,\r\n 0x2e,\r\n 0xed,\r\n 0xed,\r\n 0xb2,\r\n 0x34,\r\n 0xdb,\r\n 0xb7,\r\n 0x47,\r\n 0x3a,\r\n 0x0c,\r\n 0x8f,\r\n 0xc4,\r\n 0xcc,\r\n 0xe1,\r\n 0x6f,\r\n 0x3c,\r\n 0x8c,\r\n 0x84,\r\n 0xdf,\r\n 0xab,\r\n 0xb6,\r\n 0x66,\r\n 0x3e,\r\n 0xf2,\r\n 0x0c,\r\n 0xd4,\r\n 0x8b,\r\n 0xfe,\r\n 0xe3,\r\n 0xf9,\r\n 0x76,\r\n 0x2f,\r\n 0x14,\r\n 0x1c,\r\n 0x63,\r\n 0x08,\r\n 0x6a,\r\n 0x6f,\r\n 0x2d,\r\n 0xb1,\r\n 0x1a,\r\n 0x95,\r\n 0xb0,\r\n 0xce,\r\n 0x37,\r\n 0xc0,\r\n 0x9c,\r\n 0x6e\r\n]);\r\nvar ENDPOINT = 'https://fcm.googleapis.com';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar MessageParameter;\r\n(function (MessageParameter) {\r\n MessageParameter[\"TYPE_OF_MSG\"] = \"firebase-messaging-msg-type\";\r\n MessageParameter[\"DATA\"] = \"firebase-messaging-msg-data\";\r\n})(MessageParameter || (MessageParameter = {}));\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_MSG_RECEIVED\"] = \"push-msg-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google Inc.\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 */\r\nfunction isArrayBufferEqual(a, b) {\r\n if (a == null || b == null) {\r\n return false;\r\n }\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a.byteLength !== b.byteLength) {\r\n return false;\r\n }\r\n var viewA = new DataView(a);\r\n var viewB = new DataView(b);\r\n for (var i = 0; i < a.byteLength; i++) {\r\n if (viewA.getUint8(i) !== viewB.getUint8(i)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nfunction toBase64(arrayBuffer) {\r\n var uint8Version = new Uint8Array(arrayBuffer);\r\n return btoa(String.fromCharCode.apply(String, __spread(uint8Version)));\r\n}\r\nfunction arrayBufferToBase64(arrayBuffer) {\r\n var base64String = toBase64(arrayBuffer);\r\n return base64String\r\n .replace(/=/g, '')\r\n .replace(/\\+/g, '-')\r\n .replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar IidModel = /** @class */ (function () {\r\n function IidModel() {\r\n }\r\n IidModel.prototype.getToken = function (senderId, subscription, publicVapidKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var p256dh, auth, fcmSubscribeBody, applicationPubKey, headers, subscribeOptions, responseData, response, err_1, message;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n p256dh = arrayBufferToBase64(subscription.getKey('p256dh'));\r\n auth = arrayBufferToBase64(subscription.getKey('auth'));\r\n fcmSubscribeBody = \"authorized_entity=\" + senderId + \"&\" +\r\n (\"endpoint=\" + subscription.endpoint + \"&\") +\r\n (\"encryption_key=\" + p256dh + \"&\") +\r\n (\"encryption_auth=\" + auth);\r\n if (!isArrayBufferEqual(publicVapidKey.buffer, DEFAULT_PUBLIC_VAPID_KEY.buffer)) {\r\n applicationPubKey = arrayBufferToBase64(publicVapidKey);\r\n fcmSubscribeBody += \"&application_pub_key=\" + applicationPubKey;\r\n }\r\n headers = new Headers();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n subscribeOptions = {\r\n method: 'POST',\r\n headers: headers,\r\n body: fcmSubscribeBody\r\n };\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(ENDPOINT + '/fcm/connect/subscribe', subscribeOptions)];\r\n case 2:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n responseData = _a.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_1 = _a.sent();\r\n throw errorFactory.create(\"token-subscribe-failed\" /* TOKEN_SUBSCRIBE_FAILED */);\r\n case 5:\r\n if (responseData.error) {\r\n message = responseData.error.message;\r\n throw errorFactory.create(\"token-subscribe-failed\" /* TOKEN_SUBSCRIBE_FAILED */, {\r\n message: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw errorFactory.create(\"token-subscribe-no-token\" /* TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n if (!responseData.pushSet) {\r\n throw errorFactory.create(\"token-subscribe-no-push-set\" /* TOKEN_SUBSCRIBE_NO_PUSH_SET */);\r\n }\r\n return [2 /*return*/, {\r\n token: responseData.token,\r\n pushSet: responseData.pushSet\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update the underlying token details for fcmToken.\r\n */\r\n IidModel.prototype.updateToken = function (senderId, fcmToken, fcmPushSet, subscription, publicVapidKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var p256dh, auth, fcmUpdateBody, applicationPubKey, headers, updateOptions, responseData, response, err_2, message;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n p256dh = arrayBufferToBase64(subscription.getKey('p256dh'));\r\n auth = arrayBufferToBase64(subscription.getKey('auth'));\r\n fcmUpdateBody = \"push_set=\" + fcmPushSet + \"&\" +\r\n (\"token=\" + fcmToken + \"&\") +\r\n (\"authorized_entity=\" + senderId + \"&\") +\r\n (\"endpoint=\" + subscription.endpoint + \"&\") +\r\n (\"encryption_key=\" + p256dh + \"&\") +\r\n (\"encryption_auth=\" + auth);\r\n if (!isArrayBufferEqual(publicVapidKey.buffer, DEFAULT_PUBLIC_VAPID_KEY.buffer)) {\r\n applicationPubKey = arrayBufferToBase64(publicVapidKey);\r\n fcmUpdateBody += \"&application_pub_key=\" + applicationPubKey;\r\n }\r\n headers = new Headers();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n updateOptions = {\r\n method: 'POST',\r\n headers: headers,\r\n body: fcmUpdateBody\r\n };\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(ENDPOINT + '/fcm/connect/subscribe', updateOptions)];\r\n case 2:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n responseData = _a.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_2 = _a.sent();\r\n throw errorFactory.create(\"token-update-failed\" /* TOKEN_UPDATE_FAILED */);\r\n case 5:\r\n if (responseData.error) {\r\n message = responseData.error.message;\r\n throw errorFactory.create(\"token-update-failed\" /* TOKEN_UPDATE_FAILED */, {\r\n message: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw errorFactory.create(\"token-update-no-token\" /* TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return [2 /*return*/, responseData.token];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Given a fcmToken, pushSet and messagingSenderId, delete an FCM token.\r\n */\r\n IidModel.prototype.deleteToken = function (senderId, fcmToken, fcmPushSet) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var fcmUnsubscribeBody, headers, unsubscribeOptions, response, responseData, message, err_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n fcmUnsubscribeBody = \"authorized_entity=\" + senderId + \"&\" +\r\n (\"token=\" + fcmToken + \"&\") +\r\n (\"pushSet=\" + fcmPushSet);\r\n headers = new Headers();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n unsubscribeOptions = {\r\n method: 'POST',\r\n headers: headers,\r\n body: fcmUnsubscribeBody\r\n };\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(ENDPOINT + '/fcm/connect/unsubscribe', unsubscribeOptions)];\r\n case 2:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n responseData = _a.sent();\r\n if (responseData.error) {\r\n message = responseData.error.message;\r\n throw errorFactory.create(\"token-unsubscribe-failed\" /* TOKEN_UNSUBSCRIBE_FAILED */, {\r\n message: message\r\n });\r\n }\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_3 = _a.sent();\r\n throw errorFactory.create(\"token-unsubscribe-failed\" /* TOKEN_UNSUBSCRIBE_FAILED */);\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return IidModel;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nfunction base64ToArrayBuffer(base64String) {\r\n var padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n var base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n var rawData = atob(base64);\r\n var outputArray = new Uint8Array(rawData.length);\r\n for (var i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar OLD_DB_NAME = 'undefined';\r\nvar OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nfunction handleDb(db) {\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // We found a database with the name 'undefined', but our expected object\r\n // store isn't defined.\r\n return;\r\n }\r\n var transaction = db.transaction(OLD_OBJECT_STORE_NAME);\r\n var objectStore = transaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n var iidModel = new IidModel();\r\n var openCursorRequest = objectStore.openCursor();\r\n openCursorRequest.onerror = function (event) {\r\n // NOOP - Nothing we can do.\r\n console.warn('Unable to cleanup old IDB.', event);\r\n };\r\n openCursorRequest.onsuccess = function () {\r\n var cursor = openCursorRequest.result;\r\n if (cursor) {\r\n // cursor.value contains the current record being iterated through\r\n // this is where you'd do something with the result\r\n var tokenDetails = cursor.value;\r\n iidModel.deleteToken(tokenDetails.fcmSenderId, tokenDetails.fcmToken, tokenDetails.fcmPushSet);\r\n cursor.continue();\r\n }\r\n else {\r\n db.close();\r\n indexedDB.deleteDatabase(OLD_DB_NAME);\r\n }\r\n };\r\n}\r\nfunction cleanV1() {\r\n var request = indexedDB.open(OLD_DB_NAME);\r\n request.onerror = function (event) {\r\n // NOOP - Nothing we can do.\r\n };\r\n request.onsuccess = function (event) {\r\n var db = request.result;\r\n handleDb(db);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar DbInterface = /** @class */ (function () {\r\n function DbInterface() {\r\n this.dbPromise = null;\r\n }\r\n /** Gets record(s) from the objectStore that match the given key. */\r\n DbInterface.prototype.get = function (key) {\r\n return this.createTransaction(function (objectStore) { return objectStore.get(key); });\r\n };\r\n /** Gets record(s) from the objectStore that match the given index. */\r\n DbInterface.prototype.getIndex = function (index, key) {\r\n function runRequest(objectStore) {\r\n var idbIndex = objectStore.index(index);\r\n return idbIndex.get(key);\r\n }\r\n return this.createTransaction(runRequest);\r\n };\r\n /** Assigns or overwrites the record for the given value. */\r\n // tslint:disable-next-line:no-any IndexedDB values are of type \"any\"\r\n DbInterface.prototype.put = function (value) {\r\n return this.createTransaction(function (objectStore) { return objectStore.put(value); }, 'readwrite');\r\n };\r\n /** Deletes record(s) from the objectStore that match the given key. */\r\n DbInterface.prototype.delete = function (key) {\r\n return this.createTransaction(function (objectStore) { return objectStore.delete(key); }, 'readwrite');\r\n };\r\n /**\r\n * Close the currently open database.\r\n */\r\n DbInterface.prototype.closeDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var db;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.dbPromise) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.dbPromise];\r\n case 1:\r\n db = _a.sent();\r\n db.close();\r\n this.dbPromise = null;\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates an IndexedDB Transaction and passes its objectStore to the\r\n * runRequest function, which runs the database request.\r\n *\r\n * @return Promise that resolves with the result of the runRequest function\r\n */\r\n DbInterface.prototype.createTransaction = function (runRequest, mode) {\r\n if (mode === void 0) { mode = 'readonly'; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var db, transaction, request, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getDb()];\r\n case 1:\r\n db = _a.sent();\r\n transaction = db.transaction(this.objectStoreName, mode);\r\n request = transaction.objectStore(this.objectStoreName);\r\n return [4 /*yield*/, promisify(runRequest(request))];\r\n case 2:\r\n result = _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n transaction.oncomplete = function () {\r\n resolve(result);\r\n };\r\n transaction.onerror = function () {\r\n reject(transaction.error);\r\n };\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /** Gets the cached db connection or opens a new one. */\r\n DbInterface.prototype.getDb = function () {\r\n var _this = this;\r\n if (!this.dbPromise) {\r\n this.dbPromise = new Promise(function (resolve, reject) {\r\n var request = indexedDB.open(_this.dbName, _this.dbVersion);\r\n request.onsuccess = function () {\r\n resolve(request.result);\r\n };\r\n request.onerror = function () {\r\n _this.dbPromise = null;\r\n reject(request.error);\r\n };\r\n request.onupgradeneeded = function (event) { return _this.onDbUpgrade(request, event); };\r\n });\r\n }\r\n return this.dbPromise;\r\n };\r\n return DbInterface;\r\n}());\r\n/** Promisifies an IDBRequest. Resolves with the IDBRequest's result. */\r\nfunction promisify(request) {\r\n return new Promise(function (resolve, reject) {\r\n request.onsuccess = function () {\r\n resolve(request.result);\r\n };\r\n request.onerror = function () {\r\n reject(request.error);\r\n };\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar TokenDetailsModel = /** @class */ (function (_super) {\r\n __extends(TokenDetailsModel, _super);\r\n function TokenDetailsModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.dbName = 'fcm_token_details_db';\r\n _this.dbVersion = 3;\r\n _this.objectStoreName = 'fcm_token_object_Store';\r\n return _this;\r\n }\r\n TokenDetailsModel.prototype.onDbUpgrade = function (request, event) {\r\n var db = request.result;\r\n // Lack of 'break' statements is intentional.\r\n switch (event.oldVersion) {\r\n case 0: {\r\n // New IDB instance\r\n var objectStore = db.createObjectStore(this.objectStoreName, {\r\n keyPath: 'swScope'\r\n });\r\n // Make sure the sender ID can be searched\r\n objectStore.createIndex('fcmSenderId', 'fcmSenderId', {\r\n unique: false\r\n });\r\n objectStore.createIndex('fcmToken', 'fcmToken', { unique: true });\r\n }\r\n case 1: {\r\n // Prior to version 2, we were using either 'fcm_token_details_db'\r\n // or 'undefined' as the database name due to bug in the SDK\r\n // So remove the old tokens and databases.\r\n cleanV1();\r\n }\r\n case 2: {\r\n var objectStore = request.transaction.objectStore(this.objectStoreName);\r\n var cursorRequest_1 = objectStore.openCursor();\r\n cursorRequest_1.onsuccess = function () {\r\n var cursor = cursorRequest_1.result;\r\n if (cursor) {\r\n var value = cursor.value;\r\n var newValue = __assign({}, value);\r\n if (!value.createTime) {\r\n newValue.createTime = Date.now();\r\n }\r\n if (typeof value.vapidKey === 'string') {\r\n newValue.vapidKey = base64ToArrayBuffer(value.vapidKey);\r\n }\r\n if (typeof value.auth === 'string') {\r\n newValue.auth = base64ToArrayBuffer(value.auth).buffer;\r\n }\r\n if (typeof value.auth === 'string') {\r\n newValue.p256dh = base64ToArrayBuffer(value.p256dh).buffer;\r\n }\r\n cursor.update(newValue);\r\n cursor.continue();\r\n }\r\n };\r\n }\r\n }\r\n };\r\n /**\r\n * Given a token, this method will look up the details in indexedDB.\r\n */\r\n TokenDetailsModel.prototype.getTokenDetailsFromToken = function (fcmToken) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!fcmToken) {\r\n throw errorFactory.create(\"bad-token\" /* BAD_TOKEN */);\r\n }\r\n validateInputs({ fcmToken: fcmToken });\r\n return [2 /*return*/, this.getIndex('fcmToken', fcmToken)];\r\n });\r\n });\r\n };\r\n /**\r\n * Given a service worker scope, this method will look up the details in\r\n * indexedDB.\r\n * @return The details associated with that token.\r\n */\r\n TokenDetailsModel.prototype.getTokenDetailsFromSWScope = function (swScope) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!swScope) {\r\n throw errorFactory.create(\"bad-scope\" /* BAD_SCOPE */);\r\n }\r\n validateInputs({ swScope: swScope });\r\n return [2 /*return*/, this.get(swScope)];\r\n });\r\n });\r\n };\r\n /**\r\n * Save the details for the fcm token for re-use at a later date.\r\n * @param input A plain js object containing args to save.\r\n */\r\n TokenDetailsModel.prototype.saveTokenDetails = function (tokenDetails) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!tokenDetails.swScope) {\r\n throw errorFactory.create(\"bad-scope\" /* BAD_SCOPE */);\r\n }\r\n if (!tokenDetails.vapidKey) {\r\n throw errorFactory.create(\"bad-vapid-key\" /* BAD_VAPID_KEY */);\r\n }\r\n if (!tokenDetails.endpoint || !tokenDetails.auth || !tokenDetails.p256dh) {\r\n throw errorFactory.create(\"bad-subscription\" /* BAD_SUBSCRIPTION */);\r\n }\r\n if (!tokenDetails.fcmSenderId) {\r\n throw errorFactory.create(\"bad-sender-id\" /* BAD_SENDER_ID */);\r\n }\r\n if (!tokenDetails.fcmToken) {\r\n throw errorFactory.create(\"bad-token\" /* BAD_TOKEN */);\r\n }\r\n if (!tokenDetails.fcmPushSet) {\r\n throw errorFactory.create(\"bad-push-set\" /* BAD_PUSH_SET */);\r\n }\r\n validateInputs(tokenDetails);\r\n return [2 /*return*/, this.put(tokenDetails)];\r\n });\r\n });\r\n };\r\n /**\r\n * This method deletes details of the current FCM token.\r\n * It's returning a promise in case we need to move to an async\r\n * method for deleting at a later date.\r\n *\r\n * @return Resolves once the FCM token details have been deleted and returns\r\n * the deleted details.\r\n */\r\n TokenDetailsModel.prototype.deleteToken = function (token) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var details;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (typeof token !== 'string' || token.length === 0) {\r\n return [2 /*return*/, Promise.reject(errorFactory.create(\"invalid-delete-token\" /* INVALID_DELETE_TOKEN */))];\r\n }\r\n return [4 /*yield*/, this.getTokenDetailsFromToken(token)];\r\n case 1:\r\n details = _a.sent();\r\n if (!details) {\r\n throw errorFactory.create(\"delete-token-not-found\" /* DELETE_TOKEN_NOT_FOUND */);\r\n }\r\n return [4 /*yield*/, this.delete(details.swScope)];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, details];\r\n }\r\n });\r\n });\r\n };\r\n return TokenDetailsModel;\r\n}(DbInterface));\r\n/**\r\n * This method takes an object and will check for known arguments and\r\n * validate the input.\r\n * @return Promise that resolves if input is valid, rejects otherwise.\r\n */\r\nfunction validateInputs(input) {\r\n if (input.fcmToken) {\r\n if (typeof input.fcmToken !== 'string' || input.fcmToken.length === 0) {\r\n throw errorFactory.create(\"bad-token\" /* BAD_TOKEN */);\r\n }\r\n }\r\n if (input.swScope) {\r\n if (typeof input.swScope !== 'string' || input.swScope.length === 0) {\r\n throw errorFactory.create(\"bad-scope\" /* BAD_SCOPE */);\r\n }\r\n }\r\n if (input.vapidKey) {\r\n if (!(input.vapidKey instanceof Uint8Array) ||\r\n input.vapidKey.length !== 65) {\r\n throw errorFactory.create(\"bad-vapid-key\" /* BAD_VAPID_KEY */);\r\n }\r\n }\r\n if (input.endpoint) {\r\n if (typeof input.endpoint !== 'string' || input.endpoint.length === 0) {\r\n throw errorFactory.create(\"bad-subscription\" /* BAD_SUBSCRIPTION */);\r\n }\r\n }\r\n if (input.auth) {\r\n if (!(input.auth instanceof ArrayBuffer)) {\r\n throw errorFactory.create(\"bad-subscription\" /* BAD_SUBSCRIPTION */);\r\n }\r\n }\r\n if (input.p256dh) {\r\n if (!(input.p256dh instanceof ArrayBuffer)) {\r\n throw errorFactory.create(\"bad-subscription\" /* BAD_SUBSCRIPTION */);\r\n }\r\n }\r\n if (input.fcmSenderId) {\r\n if (typeof input.fcmSenderId !== 'string' ||\r\n input.fcmSenderId.length === 0) {\r\n throw errorFactory.create(\"bad-sender-id\" /* BAD_SENDER_ID */);\r\n }\r\n }\r\n if (input.fcmPushSet) {\r\n if (typeof input.fcmPushSet !== 'string' || input.fcmPushSet.length === 0) {\r\n throw errorFactory.create(\"bad-push-set\" /* BAD_PUSH_SET */);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar UNCOMPRESSED_PUBLIC_KEY_SIZE = 65;\r\nvar VapidDetailsModel = /** @class */ (function (_super) {\r\n __extends(VapidDetailsModel, _super);\r\n function VapidDetailsModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.dbName = 'fcm_vapid_details_db';\r\n _this.dbVersion = 1;\r\n _this.objectStoreName = 'fcm_vapid_object_Store';\r\n return _this;\r\n }\r\n VapidDetailsModel.prototype.onDbUpgrade = function (request) {\r\n var db = request.result;\r\n db.createObjectStore(this.objectStoreName, { keyPath: 'swScope' });\r\n };\r\n /**\r\n * Given a service worker scope, this method will look up the vapid key\r\n * in indexedDB.\r\n */\r\n VapidDetailsModel.prototype.getVapidFromSWScope = function (swScope) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (typeof swScope !== 'string' || swScope.length === 0) {\r\n throw errorFactory.create(\"bad-scope\" /* BAD_SCOPE */);\r\n }\r\n return [4 /*yield*/, this.get(swScope)];\r\n case 1:\r\n result = _a.sent();\r\n return [2 /*return*/, result ? result.vapidKey : undefined];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Save a vapid key against a swScope for later date.\r\n */\r\n VapidDetailsModel.prototype.saveVapidDetails = function (swScope, vapidKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var details;\r\n return __generator(this, function (_a) {\r\n if (typeof swScope !== 'string' || swScope.length === 0) {\r\n throw errorFactory.create(\"bad-scope\" /* BAD_SCOPE */);\r\n }\r\n if (vapidKey === null || vapidKey.length !== UNCOMPRESSED_PUBLIC_KEY_SIZE) {\r\n throw errorFactory.create(\"bad-vapid-key\" /* BAD_VAPID_KEY */);\r\n }\r\n details = {\r\n swScope: swScope,\r\n vapidKey: vapidKey\r\n };\r\n return [2 /*return*/, this.put(details)];\r\n });\r\n });\r\n };\r\n /**\r\n * This method deletes details of the current FCM VAPID key for a SW scope.\r\n * Resolves once the scope/vapid details have been deleted and returns the\r\n * deleted vapid key.\r\n */\r\n VapidDetailsModel.prototype.deleteVapidDetails = function (swScope) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var vapidKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getVapidFromSWScope(swScope)];\r\n case 1:\r\n vapidKey = _a.sent();\r\n if (!vapidKey) {\r\n throw errorFactory.create(\"delete-scope-not-found\" /* DELETE_SCOPE_NOT_FOUND */);\r\n }\r\n return [4 /*yield*/, this.delete(swScope)];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, vapidKey];\r\n }\r\n });\r\n });\r\n };\r\n return VapidDetailsModel;\r\n}(DbInterface));\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar SENDER_ID_OPTION_NAME = 'messagingSenderId';\r\n// Database cache should be invalidated once a week.\r\nvar TOKEN_EXPIRATION_MILLIS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nvar BaseController = /** @class */ (function () {\r\n /**\r\n * An interface of the Messaging Service API\r\n */\r\n function BaseController(app) {\r\n var _this = this;\r\n if (!app.options[SENDER_ID_OPTION_NAME] ||\r\n typeof app.options[SENDER_ID_OPTION_NAME] !== 'string') {\r\n throw errorFactory.create(\"bad-sender-id\" /* BAD_SENDER_ID */);\r\n }\r\n this.messagingSenderId = app.options[SENDER_ID_OPTION_NAME];\r\n this.tokenDetailsModel = new TokenDetailsModel();\r\n this.vapidDetailsModel = new VapidDetailsModel();\r\n this.iidModel = new IidModel();\r\n this.app = app;\r\n this.INTERNAL = {\r\n delete: function () { return _this.delete(); }\r\n };\r\n }\r\n /**\r\n * @export\r\n */\r\n BaseController.prototype.getToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var currentPermission, swReg, publicVapidKey, pushSubscription, tokenDetails;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n currentPermission = this.getNotificationPermission_();\r\n if (currentPermission === 'denied') {\r\n throw errorFactory.create(\"notifications-blocked\" /* NOTIFICATIONS_BLOCKED */);\r\n }\r\n else if (currentPermission !== 'granted') {\r\n // We must wait for permission to be granted\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, this.getSWRegistration_()];\r\n case 1:\r\n swReg = _a.sent();\r\n return [4 /*yield*/, this.getPublicVapidKey_()];\r\n case 2:\r\n publicVapidKey = _a.sent();\r\n return [4 /*yield*/, this.getPushSubscription(swReg, publicVapidKey)];\r\n case 3:\r\n pushSubscription = _a.sent();\r\n return [4 /*yield*/, this.tokenDetailsModel.getTokenDetailsFromSWScope(swReg.scope)];\r\n case 4:\r\n tokenDetails = _a.sent();\r\n if (tokenDetails) {\r\n return [2 /*return*/, this.manageExistingToken(swReg, pushSubscription, publicVapidKey, tokenDetails)];\r\n }\r\n return [2 /*return*/, this.getNewToken(swReg, pushSubscription, publicVapidKey)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * manageExistingToken is triggered if there's an existing FCM token in the\r\n * database and it can take 3 different actions:\r\n * 1) Retrieve the existing FCM token from the database.\r\n * 2) If VAPID details have changed: Delete the existing token and create a\r\n * new one with the new VAPID key.\r\n * 3) If the database cache is invalidated: Send a request to FCM to update\r\n * the token, and to check if the token is still valid on FCM-side.\r\n */\r\n BaseController.prototype.manageExistingToken = function (swReg, pushSubscription, publicVapidKey, tokenDetails) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isTokenValid, now;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n isTokenValid = isTokenStillValid(pushSubscription, publicVapidKey, tokenDetails);\r\n if (isTokenValid) {\r\n now = Date.now();\r\n if (now < tokenDetails.createTime + TOKEN_EXPIRATION_MILLIS) {\r\n return [2 /*return*/, tokenDetails.fcmToken];\r\n }\r\n else {\r\n return [2 /*return*/, this.updateToken(swReg, pushSubscription, publicVapidKey, tokenDetails)];\r\n }\r\n }\r\n // If the token is no longer valid (for example if the VAPID details\r\n // have changed), delete the existing token from the FCM client and server\r\n // database. No need to unsubscribe from the Service Worker as we have a\r\n // good push subscription that we'd like to use in getNewToken.\r\n return [4 /*yield*/, this.deleteTokenFromDB(tokenDetails.fcmToken)];\r\n case 1:\r\n // If the token is no longer valid (for example if the VAPID details\r\n // have changed), delete the existing token from the FCM client and server\r\n // database. No need to unsubscribe from the Service Worker as we have a\r\n // good push subscription that we'd like to use in getNewToken.\r\n _a.sent();\r\n return [2 /*return*/, this.getNewToken(swReg, pushSubscription, publicVapidKey)];\r\n }\r\n });\r\n });\r\n };\r\n BaseController.prototype.updateToken = function (swReg, pushSubscription, publicVapidKey, tokenDetails) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var updatedToken, allDetails, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 4, , 6]);\r\n return [4 /*yield*/, this.iidModel.updateToken(this.messagingSenderId, tokenDetails.fcmToken, tokenDetails.fcmPushSet, pushSubscription, publicVapidKey)];\r\n case 1:\r\n updatedToken = _a.sent();\r\n allDetails = {\r\n swScope: swReg.scope,\r\n vapidKey: publicVapidKey,\r\n fcmSenderId: this.messagingSenderId,\r\n fcmToken: updatedToken,\r\n fcmPushSet: tokenDetails.fcmPushSet,\r\n createTime: Date.now(),\r\n endpoint: pushSubscription.endpoint,\r\n auth: pushSubscription.getKey('auth'),\r\n p256dh: pushSubscription.getKey('p256dh')\r\n };\r\n return [4 /*yield*/, this.tokenDetailsModel.saveTokenDetails(allDetails)];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, this.vapidDetailsModel.saveVapidDetails(swReg.scope, publicVapidKey)];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, updatedToken];\r\n case 4:\r\n e_1 = _a.sent();\r\n return [4 /*yield*/, this.deleteToken(tokenDetails.fcmToken)];\r\n case 5:\r\n _a.sent();\r\n throw e_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n BaseController.prototype.getNewToken = function (swReg, pushSubscription, publicVapidKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tokenDetails, allDetails;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.iidModel.getToken(this.messagingSenderId, pushSubscription, publicVapidKey)];\r\n case 1:\r\n tokenDetails = _a.sent();\r\n allDetails = {\r\n swScope: swReg.scope,\r\n vapidKey: publicVapidKey,\r\n fcmSenderId: this.messagingSenderId,\r\n fcmToken: tokenDetails.token,\r\n fcmPushSet: tokenDetails.pushSet,\r\n createTime: Date.now(),\r\n endpoint: pushSubscription.endpoint,\r\n auth: pushSubscription.getKey('auth'),\r\n p256dh: pushSubscription.getKey('p256dh')\r\n };\r\n return [4 /*yield*/, this.tokenDetailsModel.saveTokenDetails(allDetails)];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, this.vapidDetailsModel.saveVapidDetails(swReg.scope, publicVapidKey)];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, tokenDetails.token];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This method deletes tokens that the token manager looks after,\r\n * unsubscribes the token from FCM and then unregisters the push\r\n * subscription if it exists. It returns a promise that indicates\r\n * whether or not the unsubscribe request was processed successfully.\r\n */\r\n BaseController.prototype.deleteToken = function (token) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var registration, pushSubscription;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Delete the token details from the database.\r\n return [4 /*yield*/, this.deleteTokenFromDB(token)];\r\n case 1:\r\n // Delete the token details from the database.\r\n _a.sent();\r\n return [4 /*yield*/, this.getSWRegistration_()];\r\n case 2:\r\n registration = _a.sent();\r\n if (!registration) return [3 /*break*/, 4];\r\n return [4 /*yield*/, registration.pushManager.getSubscription()];\r\n case 3:\r\n pushSubscription = _a.sent();\r\n if (pushSubscription) {\r\n return [2 /*return*/, pushSubscription.unsubscribe()];\r\n }\r\n _a.label = 4;\r\n case 4: \r\n // If there's no SW, consider it a success.\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This method will delete the token from the client database, and make a\r\n * call to FCM to remove it from the server DB. Does not temper with the\r\n * push subscription.\r\n */\r\n BaseController.prototype.deleteTokenFromDB = function (token) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var details;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.tokenDetailsModel.deleteToken(token)];\r\n case 1:\r\n details = _a.sent();\r\n return [4 /*yield*/, this.iidModel.deleteToken(details.fcmSenderId, details.fcmToken, details.fcmPushSet)];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets a PushSubscription for the current user.\r\n */\r\n BaseController.prototype.getPushSubscription = function (swRegistration, publicVapidKey) {\r\n return swRegistration.pushManager.getSubscription().then(function (subscription) {\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n applicationServerKey: publicVapidKey\r\n });\r\n });\r\n };\r\n //\r\n // The following methods should only be available in the window.\r\n //\r\n BaseController.prototype.requestPermission = function () {\r\n throw errorFactory.create(\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */);\r\n };\r\n BaseController.prototype.useServiceWorker = function (registration) {\r\n throw errorFactory.create(\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */);\r\n };\r\n BaseController.prototype.usePublicVapidKey = function (b64PublicKey) {\r\n throw errorFactory.create(\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */);\r\n };\r\n BaseController.prototype.onMessage = function (nextOrObserver, error, completed) {\r\n throw errorFactory.create(\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */);\r\n };\r\n BaseController.prototype.onTokenRefresh = function (nextOrObserver, error, completed) {\r\n throw errorFactory.create(\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */);\r\n };\r\n //\r\n // The following methods are used by the service worker only.\r\n //\r\n BaseController.prototype.setBackgroundMessageHandler = function (callback) {\r\n throw errorFactory.create(\"only-available-in-sw\" /* AVAILABLE_IN_SW */);\r\n };\r\n //\r\n // The following methods are used by the service themselves and not exposed\r\n // publicly or not expected to be used by developers.\r\n //\r\n /**\r\n * This method is required to adhere to the Firebase interface.\r\n * It closes any currently open indexdb database connections.\r\n */\r\n BaseController.prototype.delete = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n this.tokenDetailsModel.closeDatabase(),\r\n this.vapidDetailsModel.closeDatabase()\r\n ])];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the current Notification Permission state.\r\n */\r\n BaseController.prototype.getNotificationPermission_ = function () {\r\n // TODO: Remove the cast when this issue is fixed:\r\n // https://github.com/Microsoft/TypeScript/issues/14701\r\n // tslint:disable-next-line no-any\r\n return Notification.permission;\r\n };\r\n BaseController.prototype.getTokenDetailsModel = function () {\r\n return this.tokenDetailsModel;\r\n };\r\n BaseController.prototype.getVapidDetailsModel = function () {\r\n return this.vapidDetailsModel;\r\n };\r\n // Visible for testing\r\n // TODO: make protected\r\n BaseController.prototype.getIidModel = function () {\r\n return this.iidModel;\r\n };\r\n return BaseController;\r\n}());\r\n/**\r\n * Checks if the tokenDetails match the details provided in the clients.\r\n */\r\nfunction isTokenStillValid(pushSubscription, publicVapidKey, tokenDetails) {\r\n if (!tokenDetails.vapidKey ||\r\n !isArrayBufferEqual(publicVapidKey.buffer, tokenDetails.vapidKey.buffer)) {\r\n return false;\r\n }\r\n var isEndpointEqual = pushSubscription.endpoint === tokenDetails.endpoint;\r\n var isAuthEqual = isArrayBufferEqual(pushSubscription.getKey('auth'), tokenDetails.auth);\r\n var isP256dhEqual = isArrayBufferEqual(pushSubscription.getKey('p256dh'), tokenDetails.p256dh);\r\n return isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar FCM_MSG = 'FCM_MSG';\r\nvar SwController = /** @class */ (function (_super) {\r\n __extends(SwController, _super);\r\n function SwController(app) {\r\n var _this = _super.call(this, app) || this;\r\n _this.bgMessageHandler = null;\r\n self.addEventListener('push', function (e) {\r\n _this.onPush(e);\r\n });\r\n self.addEventListener('pushsubscriptionchange', function (e) {\r\n _this.onSubChange(e);\r\n });\r\n self.addEventListener('notificationclick', function (e) {\r\n _this.onNotificationClick(e);\r\n });\r\n return _this;\r\n }\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.onPush = function (event) {\r\n event.waitUntil(this.onPush_(event));\r\n };\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.onSubChange = function (event) {\r\n event.waitUntil(this.onSubChange_(event));\r\n };\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.onNotificationClick = function (event) {\r\n event.waitUntil(this.onNotificationClick_(event));\r\n };\r\n /**\r\n * A handler for push events that shows notifications based on the content of\r\n * the payload.\r\n *\r\n * The payload must be a JSON-encoded Object with a `notification` key. The\r\n * value of the `notification` property will be used as the NotificationOptions\r\n * object passed to showNotification. Additionally, the `title` property of the\r\n * notification object will be used as the title.\r\n *\r\n * If there is no notification data in the payload then no notification will be\r\n * shown.\r\n */\r\n SwController.prototype.onPush_ = function (event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var msgPayload, hasVisibleClients, notificationDetails, notificationTitle, reg, actions, maxActions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!event.data) {\r\n return [2 /*return*/];\r\n }\r\n try {\r\n msgPayload = event.data.json();\r\n }\r\n catch (err) {\r\n // Not JSON so not an FCM message\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, this.hasVisibleClients_()];\r\n case 1:\r\n hasVisibleClients = _a.sent();\r\n if (hasVisibleClients) {\r\n // App in foreground. Send to page.\r\n return [2 /*return*/, this.sendMessageToWindowClients_(msgPayload)];\r\n }\r\n notificationDetails = this.getNotificationData_(msgPayload);\r\n if (!notificationDetails) return [3 /*break*/, 3];\r\n notificationTitle = notificationDetails.title || '';\r\n return [4 /*yield*/, this.getSWRegistration_()];\r\n case 2:\r\n reg = _a.sent();\r\n actions = notificationDetails.actions;\r\n maxActions = Notification.maxActions;\r\n // tslint:enable no-any\r\n if (actions && maxActions && actions.length > maxActions) {\r\n console.warn(\"This browser only supports \" + maxActions + \" actions.\" +\r\n \"The remaining actions will not be displayed.\");\r\n }\r\n return [2 /*return*/, reg.showNotification(notificationTitle, notificationDetails)];\r\n case 3:\r\n if (!this.bgMessageHandler) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.bgMessageHandler(msgPayload)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n SwController.prototype.onSubChange_ = function (event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var registration, err_1, err_2, tokenDetailsModel, tokenDetails;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.getSWRegistration_()];\r\n case 1:\r\n registration = _a.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n err_1 = _a.sent();\r\n throw errorFactory.create(\"unable-to-resubscribe\" /* UNABLE_TO_RESUBSCRIBE */, {\r\n message: err_1\r\n });\r\n case 3:\r\n _a.trys.push([3, 5, , 8]);\r\n return [4 /*yield*/, registration.pushManager.getSubscription()];\r\n case 4:\r\n _a.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n err_2 = _a.sent();\r\n tokenDetailsModel = this.getTokenDetailsModel();\r\n return [4 /*yield*/, tokenDetailsModel.getTokenDetailsFromSWScope(registration.scope)];\r\n case 6:\r\n tokenDetails = _a.sent();\r\n if (!tokenDetails) {\r\n // This should rarely occure, but could if indexedDB\r\n // is corrupted or wiped\r\n throw err_2;\r\n }\r\n // Attempt to delete the token if we know it's bad\r\n return [4 /*yield*/, this.deleteToken(tokenDetails.fcmToken)];\r\n case 7:\r\n // Attempt to delete the token if we know it's bad\r\n _a.sent();\r\n throw err_2;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n SwController.prototype.onNotificationClick_ = function (event) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var msgPayload, link, windowClient, internalMsg;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!event.notification ||\r\n !event.notification.data ||\r\n !event.notification.data[FCM_MSG]) {\r\n // Not an FCM notification, do nothing.\r\n return [2 /*return*/];\r\n }\r\n else if (event.action) {\r\n // User clicked on an action button.\r\n // This will allow devs to act on action button clicks by using a custom\r\n // onNotificationClick listener that they define.\r\n return [2 /*return*/];\r\n }\r\n // Prevent other listeners from receiving the event\r\n event.stopImmediatePropagation();\r\n event.notification.close();\r\n msgPayload = event.notification.data[FCM_MSG];\r\n if (!msgPayload.notification) {\r\n // Nothing to do.\r\n return [2 /*return*/];\r\n }\r\n link = (msgPayload.fcmOptions && msgPayload.fcmOptions.link) ||\r\n msgPayload.notification.click_action;\r\n if (!link) {\r\n // Nothing to do.\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, this.getWindowClient_(link)];\r\n case 1:\r\n windowClient = _a.sent();\r\n if (!!windowClient) return [3 /*break*/, 3];\r\n return [4 /*yield*/, self.clients.openWindow(link)];\r\n case 2:\r\n // Unable to find window client so need to open one.\r\n windowClient = _a.sent();\r\n return [3 /*break*/, 5];\r\n case 3: return [4 /*yield*/, windowClient.focus()];\r\n case 4:\r\n windowClient = _a.sent();\r\n _a.label = 5;\r\n case 5:\r\n if (!windowClient) {\r\n // Window Client will not be returned if it's for a third party origin.\r\n return [2 /*return*/];\r\n }\r\n // Delete notification and fcmOptions data from payload before sending to\r\n // the page.\r\n delete msgPayload.notification;\r\n delete msgPayload.fcmOptions;\r\n internalMsg = createNewMsg(MessageType.NOTIFICATION_CLICKED, msgPayload);\r\n // Attempt to send a message to the client to handle the data\r\n // Is affected by: https://github.com/slightlyoff/ServiceWorker/issues/728\r\n return [2 /*return*/, this.attemptToMessageClient_(windowClient, internalMsg)];\r\n }\r\n });\r\n });\r\n };\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.getNotificationData_ = function (msgPayload) {\r\n var _a;\r\n if (!msgPayload) {\r\n return;\r\n }\r\n if (typeof msgPayload.notification !== 'object') {\r\n return;\r\n }\r\n var notificationInformation = __assign({}, msgPayload.notification);\r\n // Put the message payload under FCM_MSG name so we can identify the\r\n // notification as being an FCM notification vs a notification from\r\n // somewhere else (i.e. normal web push or developer generated\r\n // notification).\r\n notificationInformation.data = __assign({}, msgPayload.notification.data, (_a = {}, _a[FCM_MSG] = msgPayload, _a));\r\n return notificationInformation;\r\n };\r\n /**\r\n * Calling setBackgroundMessageHandler will opt in to some specific\r\n * behaviours.\r\n * 1.) If a notification doesn't need to be shown due to a window already\r\n * being visible, then push messages will be sent to the page.\r\n * 2.) If a notification needs to be shown, and the message contains no\r\n * notification data this method will be called\r\n * and the promise it returns will be passed to event.waitUntil.\r\n * If you do not set this callback then all push messages will let and the\r\n * 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\r\n * and a notification must be shown. The callback will be given the data from\r\n * the push message.\r\n */\r\n SwController.prototype.setBackgroundMessageHandler = function (callback) {\r\n if (!callback || typeof callback !== 'function') {\r\n throw errorFactory.create(\"bg-handler-function-expected\" /* BG_HANDLER_FUNCTION_EXPECTED */);\r\n }\r\n this.bgMessageHandler = callback;\r\n };\r\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 */\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.getWindowClient_ = function (url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parsedURL, clientList, suitableClient, i, parsedClientUrl;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n parsedURL = new URL(url, self.location.href).href;\r\n return [4 /*yield*/, getClientList()];\r\n case 1:\r\n clientList = _a.sent();\r\n suitableClient = null;\r\n for (i = 0; i < clientList.length; i++) {\r\n parsedClientUrl = new URL(clientList[i].url, self.location.href)\r\n .href;\r\n if (parsedClientUrl === parsedURL) {\r\n suitableClient = clientList[i];\r\n break;\r\n }\r\n }\r\n return [2 /*return*/, suitableClient];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This message will attempt to send the message to a window client.\r\n * @param client The WindowClient to send the message to.\r\n * @param message The message to send to the client.\r\n * @returns Returns a promise that resolves after sending the message. This\r\n * does not guarantee that the message was successfully received.\r\n */\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.attemptToMessageClient_ = function (client, message) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // NOTE: This returns a promise in case this API is abstracted later on to\r\n // do additional work\r\n if (!client) {\r\n throw errorFactory.create(\"no-window-client-to-msg\" /* NO_WINDOW_CLIENT_TO_MSG */);\r\n }\r\n client.postMessage(message);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * @returns If there is currently a visible WindowClient, this method will\r\n * resolve to true, otherwise false.\r\n */\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.hasVisibleClients_ = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientList;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, getClientList()];\r\n case 1:\r\n clientList = _a.sent();\r\n return [2 /*return*/, clientList.some(function (client) {\r\n return client.visibilityState === 'visible' &&\r\n // Ignore chrome-extension clients as that matches the background pages\r\n // of extensions, which are always considered visible.\r\n !client.url.startsWith('chrome-extension://');\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param msgPayload The data from the push event that should be sent to all\r\n * available pages.\r\n * @returns Returns a promise that resolves once the message has been sent to\r\n * all WindowClients.\r\n */\r\n // Visible for testing\r\n // TODO: Make private\r\n SwController.prototype.sendMessageToWindowClients_ = function (msgPayload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientList, internalMsg;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, getClientList()];\r\n case 1:\r\n clientList = _a.sent();\r\n internalMsg = createNewMsg(MessageType.PUSH_MSG_RECEIVED, msgPayload);\r\n return [4 /*yield*/, Promise.all(clientList.map(function (client) {\r\n return _this.attemptToMessageClient_(client, internalMsg);\r\n }))];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This will register the default service worker and return the registration.\r\n * @return he service worker registration to be used for the push service.\r\n */\r\n SwController.prototype.getSWRegistration_ = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, self.registration];\r\n });\r\n });\r\n };\r\n /**\r\n * This will return the default VAPID key or the uint8array version of the\r\n * public VAPID key provided by the developer.\r\n */\r\n SwController.prototype.getPublicVapidKey_ = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var swReg, vapidKeyFromDatabase;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getSWRegistration_()];\r\n case 1:\r\n swReg = _a.sent();\r\n if (!swReg) {\r\n throw errorFactory.create(\"sw-registration-expected\" /* SW_REGISTRATION_EXPECTED */);\r\n }\r\n return [4 /*yield*/, this.getVapidDetailsModel().getVapidFromSWScope(swReg.scope)];\r\n case 2:\r\n vapidKeyFromDatabase = _a.sent();\r\n if (vapidKeyFromDatabase == null) {\r\n return [2 /*return*/, DEFAULT_PUBLIC_VAPID_KEY];\r\n }\r\n return [2 /*return*/, vapidKeyFromDatabase];\r\n }\r\n });\r\n });\r\n };\r\n return SwController;\r\n}(BaseController));\r\nfunction getClientList() {\r\n return self.clients.matchAll({\r\n type: 'window',\r\n includeUncontrolled: true\r\n // TS doesn't know that \"type: 'window'\" means it'll return WindowClient[]\r\n });\r\n}\r\nfunction createNewMsg(msgType, msgData) {\r\n var _a;\r\n return _a = {},\r\n _a[MessageParameter.TYPE_OF_MSG] = msgType,\r\n _a[MessageParameter.DATA] = msgData,\r\n _a;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nvar DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar WindowController = /** @class */ (function (_super) {\r\n __extends(WindowController, _super);\r\n /**\r\n * A service that provides a MessagingService instance.\r\n */\r\n function WindowController(app) {\r\n var _this = _super.call(this, app) || this;\r\n _this.registrationToUse = null;\r\n _this.publicVapidKeyToUse = null;\r\n _this.manifestCheckPromise = null;\r\n _this.messageObserver = null;\r\n // @ts-ignore: Unused variable error, this is not implemented yet.\r\n _this.tokenRefreshObserver = null;\r\n _this.onMessageInternal = createSubscribe(function (observer) {\r\n _this.messageObserver = observer;\r\n });\r\n _this.onTokenRefreshInternal = createSubscribe(function (observer) {\r\n _this.tokenRefreshObserver = observer;\r\n });\r\n _this.setupSWMessageListener_();\r\n return _this;\r\n }\r\n /**\r\n * This method returns an FCM token if it can be generated.\r\n * The return promise will reject if the browser doesn't support\r\n * FCM, if permission is denied for notifications or it's not\r\n * possible to generate a token.\r\n *\r\n * @return Returns a promise that resolves to an FCM token or null if\r\n * permission isn't granted.\r\n */\r\n WindowController.prototype.getToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.manifestCheckPromise) {\r\n this.manifestCheckPromise = manifestCheck();\r\n }\r\n return [4 /*yield*/, this.manifestCheckPromise];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, _super.prototype.getToken.call(this)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Request permission if it is not currently granted\r\n *\r\n * @return Resolves if the permission was granted, otherwise rejects\r\n */\r\n WindowController.prototype.requestPermission = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var permissionResult;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.getNotificationPermission_() === 'granted') {\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, Notification.requestPermission()];\r\n case 1:\r\n permissionResult = _a.sent();\r\n if (permissionResult === 'granted') {\r\n return [2 /*return*/];\r\n }\r\n else if (permissionResult === 'denied') {\r\n throw errorFactory.create(\"permission-blocked\" /* PERMISSION_BLOCKED */);\r\n }\r\n else {\r\n throw errorFactory.create(\"permission-default\" /* PERMISSION_DEFAULT */);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This method allows a developer to override the default service worker and\r\n * instead use a custom service worker.\r\n *\r\n * @param registration The service worker registration that should be used to\r\n * receive the push messages.\r\n */\r\n WindowController.prototype.useServiceWorker = function (registration) {\r\n if (!(registration instanceof ServiceWorkerRegistration)) {\r\n throw errorFactory.create(\"sw-registration-expected\" /* SW_REGISTRATION_EXPECTED */);\r\n }\r\n if (this.registrationToUse != null) {\r\n throw errorFactory.create(\"use-sw-before-get-token\" /* USE_SW_BEFORE_GET_TOKEN */);\r\n }\r\n this.registrationToUse = registration;\r\n };\r\n /**\r\n * This method allows a developer to override the default vapid key\r\n * and instead use a custom VAPID public key.\r\n *\r\n * @param publicKey A URL safe base64 encoded string.\r\n */\r\n WindowController.prototype.usePublicVapidKey = function (publicKey) {\r\n if (typeof publicKey !== 'string') {\r\n throw errorFactory.create(\"invalid-public-vapid-key\" /* INVALID_PUBLIC_VAPID_KEY */);\r\n }\r\n if (this.publicVapidKeyToUse != null) {\r\n throw errorFactory.create(\"use-public-key-before-get-token\" /* USE_PUBLIC_KEY_BEFORE_GET_TOKEN */);\r\n }\r\n var parsedKey = base64ToArrayBuffer(publicKey);\r\n if (parsedKey.length !== 65) {\r\n throw errorFactory.create(\"public-vapid-key-decryption-failed\" /* PUBLIC_KEY_DECRYPTION_FAILED */);\r\n }\r\n this.publicVapidKeyToUse = parsedKey;\r\n };\r\n /**\r\n * @export\r\n * @param nextOrObserver An observer object or a function triggered on\r\n * message.\r\n * @param error A function triggered on message error.\r\n * @param completed function triggered when the observer is removed.\r\n * @return The unsubscribe function for the observer.\r\n */\r\n WindowController.prototype.onMessage = function (nextOrObserver, error, completed) {\r\n if (typeof nextOrObserver === 'function') {\r\n return this.onMessageInternal(nextOrObserver, error, completed);\r\n }\r\n else {\r\n return this.onMessageInternal(nextOrObserver);\r\n }\r\n };\r\n /**\r\n * @param nextOrObserver An observer object or a function triggered on token\r\n * refresh.\r\n * @param error A function triggered on token refresh error.\r\n * @param completed function triggered when the observer is removed.\r\n * @return The unsubscribe function for the observer.\r\n */\r\n WindowController.prototype.onTokenRefresh = function (nextOrObserver, error, completed) {\r\n if (typeof nextOrObserver === 'function') {\r\n return this.onTokenRefreshInternal(nextOrObserver, error, completed);\r\n }\r\n else {\r\n return this.onTokenRefreshInternal(nextOrObserver);\r\n }\r\n };\r\n /**\r\n * Given a registration, wait for the service worker it relates to\r\n * become activer\r\n * @param registration Registration to wait for service worker to become active\r\n * @return Wait for service worker registration to become active\r\n */\r\n // Visible for testing\r\n // TODO: Make private\r\n WindowController.prototype.waitForRegistrationToActivate_ = function (registration) {\r\n var serviceWorker = registration.installing || registration.waiting || registration.active;\r\n return new Promise(function (resolve, reject) {\r\n if (!serviceWorker) {\r\n // This is a rare scenario but has occured in firefox\r\n reject(errorFactory.create(\"no-sw-in-reg\" /* NO_SW_IN_REG */));\r\n return;\r\n }\r\n // Because the Promise function is called on next tick there is a\r\n // small chance that the worker became active or redundant already.\r\n if (serviceWorker.state === 'activated') {\r\n resolve(registration);\r\n return;\r\n }\r\n if (serviceWorker.state === 'redundant') {\r\n reject(errorFactory.create(\"sw-reg-redundant\" /* SW_REG_REDUNDANT */));\r\n return;\r\n }\r\n var stateChangeListener = function () {\r\n if (serviceWorker.state === 'activated') {\r\n resolve(registration);\r\n }\r\n else if (serviceWorker.state === 'redundant') {\r\n reject(errorFactory.create(\"sw-reg-redundant\" /* SW_REG_REDUNDANT */));\r\n }\r\n else {\r\n // Return early and wait to next state change\r\n return;\r\n }\r\n serviceWorker.removeEventListener('statechange', stateChangeListener);\r\n };\r\n serviceWorker.addEventListener('statechange', stateChangeListener);\r\n });\r\n };\r\n /**\r\n * This will register the default service worker and return the registration\r\n * @return The service worker registration to be used for the push service.\r\n */\r\n WindowController.prototype.getSWRegistration_ = function () {\r\n var _this = this;\r\n if (this.registrationToUse) {\r\n return this.waitForRegistrationToActivate_(this.registrationToUse);\r\n }\r\n // Make the registration null so we know useServiceWorker will not\r\n // use a new service worker as registrationToUse is no longer undefined\r\n this.registrationToUse = null;\r\n return navigator.serviceWorker\r\n .register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n })\r\n .catch(function (err) {\r\n throw errorFactory.create(\"failed-serviceworker-registration\" /* FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: err.message\r\n });\r\n })\r\n .then(function (registration) {\r\n return _this.waitForRegistrationToActivate_(registration).then(function () {\r\n _this.registrationToUse = registration;\r\n // We update after activation due to an issue with Firefox v49 where\r\n // a race condition occassionally causes the service work to not\r\n // install\r\n registration.update();\r\n return registration;\r\n });\r\n });\r\n };\r\n /**\r\n * This will return the default VAPID key or the uint8array version of the public VAPID key\r\n * provided by the developer.\r\n */\r\n WindowController.prototype.getPublicVapidKey_ = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (this.publicVapidKeyToUse) {\r\n return [2 /*return*/, this.publicVapidKeyToUse];\r\n }\r\n return [2 /*return*/, DEFAULT_PUBLIC_VAPID_KEY];\r\n });\r\n });\r\n };\r\n /**\r\n * This method will set up a message listener to handle\r\n * events from the service worker that should trigger\r\n * events in the page.\r\n */\r\n // Visible for testing\r\n // TODO: Make private\r\n WindowController.prototype.setupSWMessageListener_ = function () {\r\n var _this = this;\r\n navigator.serviceWorker.addEventListener('message', function (event) {\r\n if (!event.data || !event.data[MessageParameter.TYPE_OF_MSG]) {\r\n // Not a message from FCM\r\n return;\r\n }\r\n var workerPageMessage = event.data;\r\n switch (workerPageMessage[MessageParameter.TYPE_OF_MSG]) {\r\n case MessageType.PUSH_MSG_RECEIVED:\r\n case MessageType.NOTIFICATION_CLICKED:\r\n var pushMessage = workerPageMessage[MessageParameter.DATA];\r\n if (_this.messageObserver) {\r\n _this.messageObserver.next(pushMessage);\r\n }\r\n break;\r\n default:\r\n // Noop.\r\n break;\r\n }\r\n }, false);\r\n };\r\n return WindowController;\r\n}(BaseController));\r\n/**\r\n * The method checks that a manifest is defined and has the correct GCM\r\n * sender ID.\r\n * @return Returns a promise that resolves if the manifest matches\r\n * our required sender ID\r\n */\r\n// Exported for testing\r\nfunction manifestCheck() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var manifestTag, manifestContent, response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n manifestTag = document.querySelector('link[rel=\"manifest\"]');\r\n if (!manifestTag) {\r\n return [2 /*return*/];\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(manifestTag.href)];\r\n case 2:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n manifestContent = _a.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_1 = _a.sent();\r\n // If the download or parsing fails allow check.\r\n // We only want to error if we KNOW that the gcm_sender_id is incorrect.\r\n return [2 /*return*/];\r\n case 5:\r\n if (!manifestContent || !manifestContent.gcm_sender_id) {\r\n return [2 /*return*/];\r\n }\r\n if (manifestContent.gcm_sender_id !== '103953800507') {\r\n throw errorFactory.create(\"incorrect-gcm-sender-id\" /* INCORRECT_GCM_SENDER_ID */);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nfunction registerMessaging(instance) {\r\n var messagingName = 'messaging';\r\n var factoryMethod = function (app) {\r\n if (!isSupported()) {\r\n throw errorFactory.create(\"unsupported-browser\" /* UNSUPPORTED_BROWSER */);\r\n }\r\n if (self && 'ServiceWorkerGlobalScope' in self) {\r\n // Running in ServiceWorker context\r\n return new SwController(app);\r\n }\r\n else {\r\n // Assume we are in the window context.\r\n return new WindowController(app);\r\n }\r\n };\r\n var namespaceExports = {\r\n isSupported: isSupported\r\n };\r\n instance.INTERNAL.registerService(messagingName, factoryMethod, namespaceExports);\r\n}\r\nregisterMessaging(firebase);\r\nfunction isSupported() {\r\n if (self && 'ServiceWorkerGlobalScope' in self) {\r\n // Running in ServiceWorker context\r\n return isSWControllerSupported();\r\n }\r\n else {\r\n // Assume we are in the window context.\r\n return isWindowControllerSupported();\r\n }\r\n}\r\n/**\r\n * Checks to see if the required APIs exist.\r\n */\r\nfunction isWindowControllerSupported() {\r\n return (navigator.cookieEnabled &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\r\n/**\r\n * Checks to see if the required APIs exist within SW Context.\r\n */\r\nfunction isSWControllerSupported() {\r\n return ('PushManager' in self &&\r\n 'Notification' in self &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\nexport { isSupported, registerMessaging };\n//# sourceMappingURL=index.esm.js.map\n","import React from 'react'\n\nexport default React.createContext({})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport PopupContext from '../../core/state/context/popup'\n\nimport styles from './popup.css'\n\nclass Popup extends React.PureComponent {\n static propTypes = {\n children: PropTypes.node.isRequired,\n }\n\n render() {\n return (\n \n \n
\n
\n
\n {this.props.children}\n
\n
\n \n \n )\n }\n}\n\nexport default Popup\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames/bind'\n\nimport arrowSvg from '../../../resources/svgs/NewTab.svg'\nimport Popup from '../popup'\n\nimport styles from './pushNotifications.css'\nimport Icon from '../../../core/patterns/icon/icon'\n\nconst cx = classnames.bind(styles)\n\nclass PushNotificationsPopup extends React.PureComponent {\n static propTypes = {\n i18n: PropTypes.object.isRequired,\n logoUrl: PropTypes.string.isRequired,\n topics: PropTypes.object.isRequired,\n onDecline: PropTypes.func,\n onAccept: PropTypes.func,\n }\n\n state = {\n topicList: this.props.topics,\n }\n\n toggleTopic = ({ target }) => {\n const topicId = target.dataset.value\n const { topicList } = this.state\n\n let topics = {\n ...topicList,\n [topicId]: {\n ...topicList[topicId],\n active: !topicList[topicId].active,\n },\n }\n\n this.setState({ topicList: topics })\n }\n\n onAccept = () => {\n const { topicList } = this.state\n const selectedTopics = Object.keys(topicList).filter(\n topicId => topicList[topicId].active === true\n )\n\n this.props.onAccept(selectedTopics)\n }\n\n onDecline = () => {\n const { topicList } = this.state\n const selectedTopics = Object.keys(topicList).filter(\n topicId => topicList[topicId].active === true\n )\n\n this.props.onDecline(selectedTopics)\n }\n\n render() {\n const { logoUrl, i18n } = this.props\n const { topicList } = this.state\n const externalLinkTitle = `${i18n.link} ${i18n.newTab}`\n\n const declineButtonClassName = cx({\n footer__button: true,\n 'footer__button--decline': true,\n })\n\n const acceptButtonClassName = cx({\n footer__button: true,\n 'footer__button--accept': true,\n })\n\n return (\n \n \n
\n \n
\n
\n

\n {i18n.title}\n

\n

{i18n.description}

\n \n {i18n.link}\n \n \n

{i18n.subtitle}

\n
    \n {Object.keys(topicList).map(topicId => {\n const topicInfo = topicList[topicId]\n\n return (\n
  • \n \n {topicInfo.name}\n \n
  • \n )\n })}\n
\n
\n
\n \n \n
\n
\n \n )\n }\n}\n\nexport default PushNotificationsPopup\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Media from 'react-media'\r\nimport media from '../../../styles/variables/media'\r\n\r\nimport crossSvg from '../../../resources/svgs/Cross.svg'\r\nimport arrowSvg from '../../../resources/svgs/NewTab.svg'\r\n\r\nimport styles from './smallPushNotification.css'\r\nimport Icon from '../../../core/patterns/icon/icon'\r\n\r\nclass PushNotification extends React.PureComponent {\r\n static propTypes = {\r\n i18n: PropTypes.object.isRequired,\r\n onDecline: PropTypes.func,\r\n onAccept: PropTypes.func,\r\n }\r\n\r\n onAccept = () => {\r\n this.props.onAccept()\r\n }\r\n\r\n onDecline = () => {\r\n this.props.onDecline()\r\n }\r\n\r\n render() {\r\n const { i18n } = this.props\r\n const externalLinkTitle = `${i18n.link} ${i18n.newTab}`\r\n\r\n return (\r\n \r\n \r\n \r\n {i18n.link}\r\n \r\n \r\n \r\n \r\n {i18n.a11yDecline}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default PushNotification\r\n","import React from 'react'\nimport { render } from 'react-dom'\nimport PushNotificationsPopup from '../../../components/popup/pushNotifications/pushNotifications'\nimport PushNotification from '../../../components/popup/pushNotifications/smallPushNotification'\n\nimport { askForMessagePermissions } from '../firebase/firebase'\nimport i18n from '../i18n/i18n'\nimport cookie from '../cookie/cookie'\nimport screen from '../screen/screen'\nimport sendGAEvent from '../google-analytics/google-analytics'\nimport {\n subscribeUserToTopics,\n getNotificationOptions,\n} from '../../api/notification'\n\nconst pnPopupElement = document.getElementById('push-notifications-popup')\nexport const COOKIE_PWA_PN = 'ln_pwa_pn'\n\nfunction removePopup() {\n // make popup disappear.\n render(null, pnPopupElement)\n // unlock body\n if (!screen.isDesktop()) {\n screen.unlock()\n }\n}\n\nconst getGALabel = (action, topics) => {\n const selection = topics.length > 0 ? 'selected' : 'nonselected'\n\n if (window.__PWA__.abTestingNotifications === 'small') {\n return `${action}-${window.__PWA__.abTestingNotifications}`\n }\n\n return `${action}-${window.__PWA__.abTestingNotifications}-${selection}`\n}\n\n/**\n * Callback for when user accept messages\n * within the custom popup.\n */\nfunction onAcceptPopupMessages(topics = []) {\n // send GA track event\n\n sendGAEvent(\n 'Push Notification Custom',\n location.pathname + location.search,\n getGALabel('accepted', topics)\n )\n\n removePopup()\n\n sendGAEvent(\n 'Push Notification Native',\n location.pathname + location.search,\n `displayed-${window.__PWA__.abTestingNotifications}`\n )\n\n askForMessagePermissions(\n // when user allows push permissions.\n token => {\n subscribeUserToTopics(token, topics)\n .then(() => {\n // set cookie to \"accepted\", so it's allways there\n cookie.set(COOKIE_PWA_PN, 1, 10 * 365)\n // send GA track event\n sendGAEvent(\n 'Push Notification Native',\n location.pathname + location.search,\n getGALabel('accepted', topics)\n )\n })\n .catch(() => {\n // wait X days (configurable) to ask again\n cookie.set(COOKIE_PWA_PN, 0, window.__PWA__.declineExpirationDays)\n })\n },\n // when user don't allow push permissions\n () => {\n // send GA track event\n sendGAEvent(\n 'Push Notification Native',\n location.pathname + location.search,\n getGALabel('declined', topics)\n )\n // wait X days (configurable) to ask again\n cookie.set(COOKIE_PWA_PN, 0, window.__PWA__.declineExpirationDays)\n removePopup()\n }\n )\n}\n\n/**\n * Callback for when user decline messages\n * within the custom popup.\n */\nfunction onDeclinePopupMessages(topics = []) {\n // set cookie with \"declined\" value to expire in X days (configurable)\n // after 15 days, cookie will desapear and custom poup\n // will show again.\n cookie.set(COOKIE_PWA_PN, 0, window.__PWA__.declineExpirationDays)\n // send GA track event\n\n sendGAEvent(\n 'Push Notification Custom',\n location.pathname + location.search,\n getGALabel('declined', topics)\n )\n\n removePopup()\n}\n\n/**\n * Show Push Notifications popup.\n * Will only show if element is on the page\n * and cookie is not set.\n */\nexport function showPushNotificationsPopup() {\n // show only if element is present on the page.\n if (!pnPopupElement) return false\n\n let { logoUrl } = pnPopupElement.dataset\n getNotificationOptions().then(response => {\n if (response.error) {\n return response.error\n }\n\n const mappedTopics = {}\n\n for (let topic of response.topics) {\n mappedTopics[topic.id] = topic\n }\n // lock the screen on mobile and tablet\n if (\n !screen.isDesktop() &&\n window.__PWA__.abTestingNotifications === 'big'\n ) {\n screen.lock()\n }\n\n sendGAEvent(\n 'Push Notification Custom',\n location.pathname + location.search,\n `displayed-${window.__PWA__.abTestingNotifications}`\n )\n\n if (window.__PWA__.abTestingNotifications === 'big') {\n render(\n ,\n pnPopupElement\n )\n } else {\n render(\n ,\n pnPopupElement\n )\n }\n })\n}\n","import { render } from 'react-dom'\nimport { register } from './serviceWorker'\nimport { initializeFirebase, initializeSWFirebase } from '../firebase/firebase'\nimport cookie from '../cookie/cookie'\n\nimport { showPushNotificationsPopup, COOKIE_PWA_PN } from './push'\nimport sendGAEvent from '../google-analytics/google-analytics'\n\n/**\n * GTM config:\n *\n * window.__PWA__ = {\n * abTestingNotifications: true,\n * declineExpirationDays: 60,\n * secondsForNextPopup: 5,\n * excludedPages: ['/register', '/login']\n * }\n */\n\nconst COOKIE_PWA_VISITED = 'visited'\n\n/**\n * Checks if Push notifications are supported\n * by the browser.\n */\nfunction pwaFeaturesSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction applyPWAUserFlow(firebaseSenderId, notificationsEnabled) {\n // do not continue with applying the user flow when SW or Push is not supported.\n if (pwaFeaturesSupported() === false) return false\n\n // read cookie values.\n const pnCookie = cookie.get(COOKIE_PWA_PN)\n const pnCookieIsSet = Boolean(pnCookie) === true\n // check for touch screen\n\n // initialize firebase.\n initializeFirebase(firebaseSenderId)\n // when sw is ready, initialize\n navigator.serviceWorker.ready.then(registration => {\n initializeSWFirebase(firebaseSenderId)(registration)\n })\n\n // user has already declined or accepted all\n if (pnCookieIsSet) return false\n\n // pn only\n if (\n // Feature Toggle for notifications is enabled\n notificationsEnabled &&\n // only install cookie is set\n !pnCookieIsSet\n ) {\n return showPushNotificationsPopup()\n }\n}\n\nfunction pageIsExcluded() {\n return window.__PWA__.excludedPages.indexOf(window.location.pathname) > -1\n}\n\nfunction apply({ firebaseSenderId, notificationsEnabled }) {\n return; // EEILN-9864 disable PWA/service worker stuff\n\n // set __PWA__ config if it's not set.\n window.__PWA__ = {\n declineExpirationDays: 60,\n secondsForNextPopup: 5,\n excludedPages: ['/register', '/login'],\n ...window.__PWA__,\n }\n\n // register SW.\n try {\n register()\n } catch (error) {\n return\n }\n\n // listen for app installed\n window.addEventListener('appinstalled', () => {\n // if they have accepted install, we want users\n // to continue their journey within the PWA.\n // so we set all cookies on the browser to\n // not show the popups in the browser.\n // set push cookie only to show in pwa\n cookie.set(COOKIE_PWA_PN, 'pwa', 10 * 365)\n // send GA track event\n sendGAEvent(\n 'PWA Total Install',\n location.pathname + location.search,\n 'installed'\n )\n })\n\n const { secondsForNextPopup } = window.__PWA__\n const runningInPwa = window.matchMedia('(display-mode: standalone)').matches\n const pushCookie = cookie.get(COOKIE_PWA_PN)\n const visitiedCookie = cookie.get(COOKIE_PWA_VISITED)\n // if we are running in PWA and push cookie is been set by the browser\n // as \"pwa\", it means that next time we run it, if we are running\n // inside the PWA we need to remove the push cookie and ask inside.\n if (runningInPwa && pushCookie === 'pwa') {\n cookie.remove(COOKIE_PWA_PN)\n }\n\n // if page is excluded in the user flow, don't continue\n if (pageIsExcluded()) return\n\n // set visited cookie for one day if not setted.\n if (Boolean(visitiedCookie) === false) {\n cookie.set(COOKIE_PWA_VISITED, true)\n } else {\n // wait Xs (configurable) to apply the user flow.\n setTimeout(\n () => applyPWAUserFlow(firebaseSenderId, notificationsEnabled),\n secondsForNextPopup * 1000\n )\n }\n}\n\nexport default apply\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// 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}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\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 try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\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\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\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\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\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 if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\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) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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 return self;\n}","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\nimport json2mq from 'json2mq';\n\nvar MediaQueryListener =\n/*#__PURE__*/\nfunction () {\n function MediaQueryListener(targetWindow, query, listener) {\n var _this = this;\n\n this.nativeMediaQueryList = targetWindow.matchMedia(query);\n this.active = true; // Safari doesn't clear up listener with removeListener\n // when the listener is already waiting in the event queue.\n // Having an active flag to make sure the listener is not called\n // after we removeListener.\n\n this.cancellableListener = function () {\n _this.matches = _this.nativeMediaQueryList.matches;\n\n if (_this.active) {\n listener.apply(void 0, arguments);\n }\n };\n\n this.nativeMediaQueryList.addListener(this.cancellableListener);\n this.matches = this.nativeMediaQueryList.matches;\n }\n\n var _proto = MediaQueryListener.prototype;\n\n _proto.cancel = function cancel() {\n this.active = false;\n this.nativeMediaQueryList.removeListener(this.cancellableListener);\n };\n\n return MediaQueryListener;\n}();\n\nvar queryType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.arrayOf(PropTypes.object.isRequired)]);\n/**\n * Conditionally renders based on whether or not a media query matches.\n */\n\nvar Media =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Media, _React$Component);\n\n function Media(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"queries\", []);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getMatches\", function () {\n var result = _this.queries.reduce(function (acc, _ref) {\n var _extends2;\n\n var name = _ref.name,\n mqListener = _ref.mqListener;\n return _extends({}, acc, (_extends2 = {}, _extends2[name] = mqListener.matches, _extends2));\n }, {}); // return result;\n\n\n return unwrapSingleQuery(result);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateMatches\", function () {\n var newMatches = _this.getMatches();\n\n _this.setState(function () {\n return {\n matches: newMatches\n };\n }, _this.onChange);\n });\n\n !(!(!props.query && !props.queries) || props.query && props.queries) ? process.env.NODE_ENV !== \"production\" ? invariant(false, ' must be supplied with either \"query\" or \"queries\"') : invariant(false) : void 0;\n !(props.defaultMatches === undefined || !props.query || typeof props.defaultMatches === \"boolean\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" when query is set, defaultMatches must be a boolean, received \" + typeof props.defaultMatches) : invariant(false) : void 0;\n !(props.defaultMatches === undefined || !props.queries || typeof props.defaultMatches === \"object\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" when queries is set, defaultMatches must be a object of booleans, received \" + typeof props.defaultMatches) : invariant(false) : void 0;\n\n if (typeof window !== \"object\") {\n // In case we're rendering on the server, apply the default matches\n var matches;\n\n if (props.defaultMatches !== undefined) {\n matches = props.defaultMatches;\n } else if (props.query) {\n matches = true;\n }\n /* if (props.queries) */\n else {\n matches = Object.keys(_this.props.queries).reduce(function (acc, key) {\n var _extends3;\n\n return _extends({}, acc, (_extends3 = {}, _extends3[key] = true, _extends3));\n }, {});\n }\n\n _this.state = {\n matches: matches\n };\n return _assertThisInitialized(_this);\n }\n\n _this.initialize(); // Instead of calling this.updateMatches, we manually set the initial state to prevent\n // calling setState, which could trigger an unnecessary second render\n\n\n _this.state = {\n matches: _this.props.defaultMatches !== undefined ? _this.props.defaultMatches : _this.getMatches()\n };\n\n _this.onChange();\n\n return _this;\n }\n\n var _proto = Media.prototype;\n\n _proto.initialize = function initialize() {\n var _this2 = this;\n\n var targetWindow = this.props.targetWindow || window;\n !(typeof targetWindow.matchMedia === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" does not support `matchMedia`.\") : invariant(false) : void 0;\n var queries = this.props.queries || wrapInQueryObject(this.props.query);\n this.queries = Object.keys(queries).map(function (name) {\n var query = queries[name];\n var qs = typeof query !== \"string\" ? json2mq(query) : query;\n var mqListener = new MediaQueryListener(targetWindow, qs, _this2.updateMatches);\n return {\n name: name,\n mqListener: mqListener\n };\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.initialize(); // If props.defaultMatches has been set, ensure we trigger a two-pass render.\n // This is useful for SSR with mismatching defaultMatches vs actual matches from window.matchMedia\n // Details: https://github.com/ReactTraining/react-media/issues/81\n\n if (this.props.defaultMatches !== undefined) {\n this.updateMatches();\n }\n };\n\n _proto.onChange = function onChange() {\n var onChange = this.props.onChange;\n\n if (onChange) {\n onChange(this.state.matches);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.queries.forEach(function (_ref2) {\n var mqListener = _ref2.mqListener;\n return mqListener.cancel();\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n render = _this$props.render;\n var matches = this.state.matches;\n var isAnyMatches = typeof matches === \"object\" ? Object.keys(matches).some(function (key) {\n return matches[key];\n }) : matches;\n return render ? isAnyMatches ? render(matches) : null : children ? typeof children === \"function\" ? children(matches) : !Array.isArray(children) || children.length // Preact defaults to empty children array\n ? isAnyMatches ? // We have to check whether child is a composite component or not to decide should we\n // provide `matches` as a prop or not\n React.Children.only(children) && typeof React.Children.only(children).type === \"string\" ? React.Children.only(children) : React.cloneElement(React.Children.only(children), {\n matches: matches\n }) : null : null : null;\n };\n\n return Media;\n}(React.Component);\n/**\n * Wraps a single query in an object. This is used to provide backward compatibility with\n * the old `query` prop (as opposed to `queries`). If only a single query is passed, the object\n * will be unpacked down the line, but this allows our internals to assume an object of queries\n * at all times.\n */\n\n\n_defineProperty(Media, \"propTypes\", {\n defaultMatches: PropTypes.oneOfType([PropTypes.bool, PropTypes.objectOf(PropTypes.bool)]),\n query: queryType,\n queries: PropTypes.objectOf(queryType),\n render: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n targetWindow: PropTypes.object,\n onChange: PropTypes.func\n});\n\nfunction wrapInQueryObject(query) {\n return {\n __DEFAULT__: query\n };\n}\n/**\n * Unwraps an object of queries, if it was originally passed as a single query.\n */\n\n\nfunction unwrapSingleQuery(queryObject) {\n var queryNames = Object.keys(queryObject);\n\n if (queryNames.length === 1 && queryNames[0] === \"__DEFAULT__\") {\n return queryObject.__DEFAULT__;\n }\n\n return queryObject;\n}\n\nexport default Media;\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","function sendGAEvent(eventCategory, eventAction, eventLabel) {\n if (!window.ga) return\n\n return window.ga('send', 'event', eventCategory, eventAction, eventLabel)\n}\n\nexport default sendGAEvent\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/**\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\n'use strict';\n\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(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 if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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 throw error;\n }\n};\n\nmodule.exports = invariant;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports = typeof window == 'object' && window && window.Math == Math ? window\n : typeof self == 'object' && self && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var store = require('../internals/shared')('wks');\nvar uid = require('../internals/uid');\nvar Symbol = require('../internals/global').Symbol;\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = require('../internals/descriptors') ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar nativeDefineProperty = Object.defineProperty;\n\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('../internals/fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.0.1',\n mode: require('../internals/is-pure') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar TO_STRING_TAG = require('../internals/well-known-symbol')('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toInteger = require('../internals/to-integer');\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('../internals/is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = nativeGetOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = nativeGetOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nrequire('../internals/shared')('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar WeakMap = require('../internals/global').WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var shared = require('../internals/shared')('keys');\nvar uid = require('../internals/uid');\n\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","module.exports = {};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/bind-context');\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar split = ''.split;\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar hiddenKeys = require('../internals/enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var UNSCOPABLES = require('../internals/well-known-symbol')('unscopables');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar IE_PROTO = require('../internals/shared-key')('IE_PROTO');\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nrequire('../internals/hidden-keys')[IE_PROTO] = true;\n","module.exports = require('../internals/global');\n","exports.f = require('../internals/well-known-symbol');\n","module.exports = {};\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\n// 0 -> Array#forEach\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n// 1 -> Array#map\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// 2 -> Array#filter\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// 3 -> Array#some\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n// 4 -> Array#every\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n// 5 -> Array#find\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n// 6 -> Array#findIndex\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\nmodule.exports = function (TYPE, specificCreate) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = specificCreate || arraySpeciesCreate;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: target.push(value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar SPECIES = require('../internals/well-known-symbol')('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('../internals/descriptors') && !require('../internals/fails')(function () {\n return Object.defineProperty(require('../internals/document-create-element')('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\nvar document = require('../internals/global').document;\n// typeof document.createElement is 'object' in old IE\nvar exist = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return exist ? document.createElement(it) : {};\n};\n","// Chrome 38 Symbol has incorrect toString conversion\nmodule.exports = !require('../internals/fails')(function () {\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","module.exports = require('../internals/shared')('native-function-to-string', Function.toString);\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayIndexOf = require('../internals/array-includes')(false);\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\nrequire('../internals/define-well-known-symbol')('iterator');\n","'use strict';\nvar $export = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar IS_PURE = require('../internals/is-pure');\nvar ITERATOR = require('../internals/well-known-symbol')('iterator');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar IS_PURE = require('../internals/is-pure');\nvar ITERATOR = require('../internals/well-known-symbol')('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar IE_PROTO = require('../internals/shared-key')('IE_PROTO');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\nvar ObjectPrototype = Object.prototype;\n\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tslib_1 = require('tslib');\nvar util = require('@firebase/util');\n\n/**\r\n * @license\r\n * Copyright 2019 Google Inc.\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 */\r\nvar _a;\r\nvar ERRORS = (_a = {},\r\n _a[\"no-app\" /* NO_APP */] = \"No Firebase App '{$name}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n _a[\"bad-app-name\" /* BAD_APP_NAME */] = \"Illegal App name: '{$name}\",\r\n _a[\"duplicate-app\" /* DUPLICATE_APP */] = \"Firebase App named '{$name}' already exists\",\r\n _a[\"app-deleted\" /* APP_DELETED */] = \"Firebase App named '{$name}' already deleted\",\r\n _a[\"duplicate-service\" /* DUPLICATE_SERVICE */] = \"Firebase service named '{$name}' already registered\",\r\n _a[\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */] = 'firebase.{$name}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n _a);\r\nvar appErrors = new util.ErrorFactory('app', 'Firebase', ERRORS);\r\nfunction error(code, args) {\r\n throw appErrors.create(code, args);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google Inc.\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 */\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n// An array to capture listeners before the true auth functions\r\n// exist\r\nvar tokenListeners = [];\r\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\r\nvar FirebaseAppImpl = /** @class */ (function () {\r\n function FirebaseAppImpl(options, config, firebase_) {\r\n this.firebase_ = firebase_;\r\n this.isDeleted_ = false;\r\n this.services_ = {};\r\n this.name_ = config.name;\r\n this.automaticDataCollectionEnabled_ =\r\n config.automaticDataCollectionEnabled || false;\r\n this.options_ = util.deepCopy(options);\r\n this.INTERNAL = {\r\n getUid: function () { return null; },\r\n getToken: function () { return Promise.resolve(null); },\r\n addAuthTokenListener: function (callback) {\r\n tokenListeners.push(callback);\r\n // Make sure callback is called, asynchronously, in the absence of the auth module\r\n setTimeout(function () { return callback(null); }, 0);\r\n },\r\n removeAuthTokenListener: function (callback) {\r\n tokenListeners = tokenListeners.filter(function (listener) { return listener !== callback; });\r\n }\r\n };\r\n }\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.automaticDataCollectionEnabled_;\r\n },\r\n set: function (val) {\r\n this.checkDestroyed_();\r\n this.automaticDataCollectionEnabled_ = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.name_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.options_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FirebaseAppImpl.prototype.delete = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.checkDestroyed_();\r\n resolve();\r\n })\r\n .then(function () {\r\n _this.firebase_.INTERNAL.removeApp(_this.name_);\r\n var services = [];\r\n for (var _i = 0, _a = Object.keys(_this.services_); _i < _a.length; _i++) {\r\n var serviceKey = _a[_i];\r\n for (var _b = 0, _c = Object.keys(_this.services_[serviceKey]); _b < _c.length; _b++) {\r\n var instanceKey = _c[_b];\r\n services.push(_this.services_[serviceKey][instanceKey]);\r\n }\r\n }\r\n return Promise.all(services.map(function (service) {\r\n return service.INTERNAL.delete();\r\n }));\r\n })\r\n .then(function () {\r\n _this.isDeleted_ = true;\r\n _this.services_ = {};\r\n });\r\n };\r\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 is the only one that is 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 */\r\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\r\n if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n this.checkDestroyed_();\r\n if (!this.services_[name]) {\r\n this.services_[name] = {};\r\n }\r\n if (!this.services_[name][instanceIdentifier]) {\r\n /**\r\n * If a custom instance has been defined (i.e. not '[DEFAULT]')\r\n * then we will pass that instance on, otherwise we pass `null`\r\n */\r\n var instanceSpecifier = instanceIdentifier !== DEFAULT_ENTRY_NAME\r\n ? instanceIdentifier\r\n : undefined;\r\n var service = this.firebase_.INTERNAL.factories[name](this, this.extendApp.bind(this), instanceSpecifier);\r\n this.services_[name][instanceIdentifier] = service;\r\n }\r\n return this.services_[name][instanceIdentifier];\r\n };\r\n /**\r\n * Callback function used to extend an App instance at the time\r\n * of service instance creation.\r\n */\r\n FirebaseAppImpl.prototype.extendApp = function (props) {\r\n var _this = this;\r\n // Copy the object onto the FirebaseAppImpl prototype\r\n util.deepExtend(this, props);\r\n /**\r\n * If the app has overwritten the addAuthTokenListener stub, forward\r\n * the active token listeners on to the true fxn.\r\n *\r\n * TODO: This function is required due to our current module\r\n * structure. Once we are able to rely strictly upon a single module\r\n * implementation, this code should be refactored and Auth should\r\n * provide these stubs and the upgrade logic\r\n */\r\n if (props.INTERNAL && props.INTERNAL.addAuthTokenListener) {\r\n tokenListeners.forEach(function (listener) {\r\n _this.INTERNAL.addAuthTokenListener(listener);\r\n });\r\n tokenListeners = [];\r\n }\r\n };\r\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 */\r\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\r\n if (this.isDeleted_) {\r\n error(\"app-deleted\" /* APP_DELETED */, { name: this.name_ });\r\n }\r\n };\r\n return FirebaseAppImpl;\r\n}());\r\n// Prevent dead-code elimination of these methods w/o invalid property\r\n// copying.\r\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\r\n FirebaseAppImpl.prototype.delete ||\r\n console.log('dc');\n\n/**\r\n * @license\r\n * Copyright 2019 Google Inc.\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 */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\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 */\r\nfunction createFirebaseNamespaceCore(firebaseAppImpl) {\r\n var apps = {};\r\n var factories = {};\r\n var appHooks = {};\r\n // A namespace is a plain JavaScript Object.\r\n var namespace = {\r\n // Hack to prevent Babel from modifying the object returned\r\n // as the firebase namespace.\r\n // @ts-ignore\r\n __esModule: true,\r\n initializeApp: initializeApp,\r\n app: app,\r\n apps: null,\r\n Promise: Promise,\r\n SDK_VERSION: '5.11.0',\r\n INTERNAL: {\r\n registerService: registerService,\r\n removeApp: removeApp,\r\n factories: factories,\r\n useAsService: useAsService\r\n }\r\n };\r\n // Inject a circular default export to allow Babel users who were previously\r\n // using:\r\n //\r\n // import firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase').default;\r\n //\r\n // instead of\r\n //\r\n // import * as firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase');\r\n util.patchProperty(namespace, 'default', namespace);\r\n // firebase.apps is a read-only getter.\r\n Object.defineProperty(namespace, 'apps', {\r\n get: getApps\r\n });\r\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\r\n function removeApp(name) {\r\n var app = apps[name];\r\n callAppHooks(app, 'delete');\r\n delete apps[name];\r\n }\r\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\r\n function app(name) {\r\n name = name || DEFAULT_ENTRY_NAME;\r\n if (!contains(apps, name)) {\r\n error(\"no-app\" /* NO_APP */, { name: name });\r\n }\r\n return apps[name];\r\n }\r\n util.patchProperty(app, 'App', firebaseAppImpl);\r\n function initializeApp(options, rawConfig) {\r\n if (rawConfig === void 0) { rawConfig = {}; }\r\n if (typeof rawConfig !== 'object' || rawConfig === null) {\r\n var name_1 = rawConfig;\r\n rawConfig = { name: name_1 };\r\n }\r\n var config = rawConfig;\r\n if (config.name === undefined) {\r\n config.name = DEFAULT_ENTRY_NAME;\r\n }\r\n var name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n error(\"bad-app-name\" /* BAD_APP_NAME */, { name: String(name) });\r\n }\r\n if (contains(apps, name)) {\r\n error(\"duplicate-app\" /* DUPLICATE_APP */, { name: name });\r\n }\r\n var app = new firebaseAppImpl(options, config, namespace);\r\n apps[name] = app;\r\n callAppHooks(app, 'create');\r\n return app;\r\n }\r\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\r\n function getApps() {\r\n // Make a copy so caller cannot mutate the apps list.\r\n return Object.keys(apps).map(function (name) { return apps[name]; });\r\n }\r\n /*\r\n * Register a Firebase Service.\r\n *\r\n * firebase.INTERNAL.registerService()\r\n *\r\n * TODO: Implement serviceProperties.\r\n */\r\n function registerService(name, createService, serviceProperties, appHook, allowMultipleInstances) {\r\n if (allowMultipleInstances === void 0) { allowMultipleInstances = false; }\r\n // Cannot re-register a service that already exists\r\n if (factories[name]) {\r\n error(\"duplicate-service\" /* DUPLICATE_SERVICE */, { name: name });\r\n }\r\n // Capture the service factory for later service instantiation\r\n factories[name] = createService;\r\n // Capture the appHook, if passed\r\n if (appHook) {\r\n appHooks[name] = appHook;\r\n // Run the **new** app hook on all existing apps\r\n getApps().forEach(function (app) {\r\n appHook('create', app);\r\n });\r\n }\r\n // The Service namespace is an accessor function ...\r\n function serviceNamespace(appArg) {\r\n if (appArg === void 0) { appArg = app(); }\r\n if (typeof appArg[name] !== 'function') {\r\n // Invalid argument.\r\n // This happens in the following case: firebase.storage('gs:/')\r\n error(\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */, { name: name });\r\n }\r\n // Forward service instance lookup to the FirebaseApp.\r\n return appArg[name]();\r\n }\r\n // ... and a container for service-level properties.\r\n if (serviceProperties !== undefined) {\r\n util.deepExtend(serviceNamespace, serviceProperties);\r\n }\r\n // Monkey-patch the serviceNamespace onto the firebase namespace\r\n namespace[name] = serviceNamespace;\r\n // Patch the FirebaseAppImpl prototype\r\n firebaseAppImpl.prototype[name] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var serviceFxn = this._getService.bind(this, name);\r\n return serviceFxn.apply(this, allowMultipleInstances ? args : []);\r\n };\r\n return serviceNamespace;\r\n }\r\n function callAppHooks(app, eventName) {\r\n for (var _i = 0, _a = Object.keys(factories); _i < _a.length; _i++) {\r\n var serviceName = _a[_i];\r\n // Ignore virtual services\r\n var factoryName = useAsService(app, serviceName);\r\n if (factoryName === null) {\r\n return;\r\n }\r\n if (appHooks[factoryName]) {\r\n appHooks[factoryName](eventName, app);\r\n }\r\n }\r\n }\r\n // Map the requested service to a registered service name\r\n // (used to map auth to serverAuth service when needed).\r\n function useAsService(app, name) {\r\n if (name === 'serverAuth') {\r\n return null;\r\n }\r\n var useService = name;\r\n var options = app.options;\r\n return useService;\r\n }\r\n return namespace;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google Inc.\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 */\r\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 */\r\nfunction createFirebaseNamespace() {\r\n var namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\r\n namespace.INTERNAL = tslib_1.__assign({}, namespace.INTERNAL, { createFirebaseNamespace: createFirebaseNamespace, extendNamespace: extendNamespace, createSubscribe: util.createSubscribe, ErrorFactory: util.ErrorFactory, deepExtend: util.deepExtend });\r\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\r\n function extendNamespace(props) {\r\n util.deepExtend(namespace, props);\r\n }\r\n return namespace;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nvar isNode = false;\r\ntry {\r\n isNode =\r\n Object.prototype.toString.call(global.process) === '[object process]';\r\n}\r\ncatch (e) { }\r\nisNode &&\r\n console.warn(\"\\nWarning: This is a browser-targeted Firebase bundle but it appears it is being\\nrun in a Node environment. If running in a Node environment, make sure you\\nare using the bundle specified by the \\\"main\\\" field in package.json.\\n\\nIf you are using Webpack, you can specify \\\"main\\\" as the first item in\\n\\\"resolve.mainFields\\\":\\nhttps://webpack.js.org/configuration/resolve/#resolvemainfields\\n\\nIf using Rollup, use the rollup-plugin-node-resolve plugin and set \\\"module\\\"\\nto false and \\\"main\\\" to true:\\nhttps://github.com/rollup/rollup-plugin-node-resolve\\n\");\r\n// Firebase Lite detection\r\nif (self && 'firebase' in self) {\r\n console.warn(\"\\n Warning: Firebase is already defined in the global scope. Please make sure\\n Firebase library is only loaded once.\\n \");\r\n var sdkVersion = self.firebase.SDK_VERSION;\r\n if (sdkVersion && sdkVersion.indexOf('LITE') >= 0) {\r\n console.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 \");\r\n }\r\n}\r\nvar firebase = createFirebaseNamespace();\n\nexports.default = firebase;\nexports.firebase = firebase;\n//# sourceMappingURL=index.cjs.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tslib_1 = require('tslib');\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n * @param {*} assertion The assertion to be tested for falsiness\r\n * @param {!string} message The message to display if the check fails\r\n */\r\nvar assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n * @param {string} message\r\n * @return {!Error}\r\n */\r\nvar assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar stringToByteArray = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) == 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\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 {Array} bytes Array of numbers representing characters.\r\n * @return {string} Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n * @type {string}\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n * @type {string}\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n * @type {string}\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\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 * @type {boolean}\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param {Array|Uint8Array} input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param {boolean=} opt_webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, opt_webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = opt_webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param {string} input A string to encode.\r\n * @param {boolean=} opt_webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), opt_webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param {string} input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return {string} string representing the decoded value.\r\n */\r\n decodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, opt_webSafe));\r\n },\r\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 {string} input Input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the web-safe alphabet.\r\n * @return {!Array} bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, opt_webSafe) {\r\n this.init_();\r\n var charToByteMap = opt_webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 != 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 != 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n * @param {!string} str\r\n * @return {!string}\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\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 {string} str To be decoded\r\n * @return {?string} Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\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 */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n if (!source.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\n// TODO: Really needed (for JSCompiler type checking)?\r\nfunction patchProperty(obj, prop, value) {\r\n obj[prop] = value;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\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 * @param {((?function(?(Error)): (?|undefined))| (?function(?(Error),?=): (?|undefined)))=} callback\r\n * @return {!function(?(Error), ?=)}\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return {string} user agent string\r\n */\r\nvar getUA = function () {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n};\r\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 in the Ripple emulator) nor\r\n * Cordova `onDeviceReady`, which would normally wait for a callback.\r\n *\r\n * @return {boolean} isMobileCordova\r\n */\r\nvar isMobileCordova = function () {\r\n return (typeof window !== 'undefined' &&\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n};\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return {boolean} True if ReactNative environment is detected.\r\n */\r\nvar isReactNative = function () {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n};\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return {boolean} True if Node.js environment is detected.\r\n */\r\nvar isNodeSdk = function () {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\nvar ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nvar FirebaseError = /** @class */ (function (_super) {\r\n tslib_1.__extends(FirebaseError, _super);\r\n function FirebaseError(code, message) {\r\n var _this = _super.call(this, message) || this;\r\n _this.code = code;\r\n _this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\r\n }\r\n return _this;\r\n }\r\n return FirebaseError;\r\n}(Error));\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n ErrorFactory.prototype.create = function (code, data) {\r\n if (data === void 0) { data = {}; }\r\n var fullCode = this.service + \"/\" + code;\r\n var template = this.errors[code];\r\n var message = template ? replaceTemplate(template, data) : 'Error';\r\n // Service Name: Error message (service/code).\r\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\r\n var error = new FirebaseError(fullCode, fullMessage);\r\n // Keys with an underscore at the end of their name are not included in\r\n // error.data for some reason.\r\n // TODO: Replace with Object.entries when lib is updated to es2017.\r\n for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (key.slice(-1) !== '_') {\r\n if (key in error) {\r\n console.warn(\"Overwriting FirebaseError base field \\\"\" + key + \"\\\" can cause unexpected behavior.\");\r\n }\r\n error[key] = data[key];\r\n }\r\n }\r\n return error;\r\n };\r\n return ErrorFactory;\r\n}());\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, function (_, key) {\r\n var value = data[key];\r\n return value != null ? value.toString() : \"<\" + key + \"?>\";\r\n });\r\n}\r\nvar PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\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 */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\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 */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\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 *\r\n * @param {?string} token\r\n * @return {{header: *, claims: *, data: *, signature: string}}\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\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 *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims, now = Math.floor(new Date().getTime() / 1000), validSince, validUntil;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (now && validSince && validUntil && now >= validSince && now <= validUntil);\r\n};\r\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 *\r\n * @param {?string} token\r\n * @return {?number}\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\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 *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\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 *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n// See http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/\r\nvar contains = function (obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar safeGet = function (obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key))\r\n return obj[key];\r\n // else return undefined.\r\n};\r\n/**\r\n * Enumerates the keys/values in an object, excluding keys defined on the prototype.\r\n *\r\n * @param {?Object.} obj Object to enumerate.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar forEach = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn(key, obj[key]);\r\n }\r\n }\r\n};\r\n/**\r\n * Copies all the (own) properties from one object to another.\r\n * @param {!Object} objTo\r\n * @param {!Object} objFrom\r\n * @return {!Object} objTo\r\n */\r\nvar extend = function (objTo, objFrom) {\r\n forEach(objFrom, function (key, value) {\r\n objTo[key] = value;\r\n });\r\n return objTo;\r\n};\r\n/**\r\n * Returns a clone of the specified object.\r\n * @param {!Object} obj\r\n * @return {!Object} cloned obj.\r\n */\r\nvar clone = function (obj) {\r\n return extend({}, obj);\r\n};\r\n/**\r\n * Returns true if obj has typeof \"object\" and is not null. Unlike goog.isObject(), does not return true\r\n * for functions.\r\n *\r\n * @param obj {*} A potential object.\r\n * @returns {boolean} True if it's an object.\r\n */\r\nvar isNonNullObject = function (obj) {\r\n return typeof obj === 'object' && obj !== null;\r\n};\r\nvar isEmpty = function (obj) {\r\n for (var key in obj) {\r\n return false;\r\n }\r\n return true;\r\n};\r\nvar getCount = function (obj) {\r\n var rv = 0;\r\n for (var key in obj) {\r\n rv++;\r\n }\r\n return rv;\r\n};\r\nvar map = function (obj, f, opt_obj) {\r\n var res = {};\r\n for (var key in obj) {\r\n res[key] = f.call(opt_obj, obj[key], key, obj);\r\n }\r\n return res;\r\n};\r\nvar findKey = function (obj, fn, opt_this) {\r\n for (var key in obj) {\r\n if (fn.call(opt_this, obj[key], key, obj)) {\r\n return key;\r\n }\r\n }\r\n return undefined;\r\n};\r\nvar findValue = function (obj, fn, opt_this) {\r\n var key = findKey(obj, fn, opt_this);\r\n return key && obj[key];\r\n};\r\nvar getAnyKey = function (obj) {\r\n for (var key in obj) {\r\n return key;\r\n }\r\n};\r\nvar getValues = function (obj) {\r\n var res = [];\r\n var i = 0;\r\n for (var key in obj) {\r\n res[i++] = obj[key];\r\n }\r\n return res;\r\n};\r\n/**\r\n * Tests whether every key/value pair in an object pass the test implemented\r\n * by the provided function\r\n *\r\n * @param {?Object.} obj Object to test.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar every = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n if (!fn(key, obj[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a params\r\n * object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n *\r\n * @param {!Object} querystringParams\r\n * @return {string}\r\n */\r\nvar querystring = function (querystringParams) {\r\n var params = [];\r\n forEach(querystringParams, function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n });\r\n return params.length ? '&' + params.join('&') : '';\r\n};\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object (e.g. {arg: 'val', arg2: 'val2'})\r\n *\r\n * @param {string} querystring\r\n * @return {!Object}\r\n */\r\nvar querystringDecode = function (querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var key = token.split('=');\r\n obj[key[0]] = key[1];\r\n }\r\n });\r\n return obj;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\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 */\r\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 */\r\nvar Sha1 = /** @class */ (function () {\r\n function Sha1() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @type {!Array}\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @type {!Array}\r\n * @private\r\n */\r\n this.buf_ = [];\r\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 * @type {!Array}\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @type {!Array}\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (var i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param {!Array|!Uint8Array|string} buf Block to compress.\r\n * @param {number=} opt_offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, opt_offset) {\r\n if (!opt_offset) {\r\n opt_offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(opt_offset) << 24) |\r\n (buf.charCodeAt(opt_offset + 1) << 16) |\r\n (buf.charCodeAt(opt_offset + 2) << 8) |\r\n buf.charCodeAt(opt_offset + 3);\r\n opt_offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[opt_offset] << 24) |\r\n (buf[opt_offset + 1] << 16) |\r\n (buf[opt_offset + 2] << 8) |\r\n buf[opt_offset + 3];\r\n opt_offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, opt_length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (opt_length === undefined) {\r\n opt_length = bytes.length;\r\n }\r\n var lengthMinusBlock = opt_length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < opt_length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf == 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += opt_length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}());\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 */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\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 */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\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 */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\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 {!string} fnName The function name\r\n * @param {!number} minCount The minimum number of arguments to allow for the function call\r\n * @param {!number} maxCount The maximum number of argument to allow for the function call\r\n * @param {!number} argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} argumentNumber The index of the argument\r\n * @param {boolean} optional Whether or not the argument is optional\r\n * @return {!string} The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param {!string} fnName\r\n * @param {!number} argumentNumber\r\n * @param {!string} namespace\r\n * @param {boolean} optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace)\r\n return;\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, callback, optional) {\r\n if (optional && !callback)\r\n return;\r\n if (typeof callback !== 'function')\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context)\r\n return;\r\n if (typeof context !== 'object' || context === null)\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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 */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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\nexports.CONSTANTS = CONSTANTS;\nexports.Deferred = Deferred;\nexports.ErrorFactory = ErrorFactory;\nexports.FirebaseError = FirebaseError;\nexports.Sha1 = Sha1;\nexports.assert = assert;\nexports.assertionError = assertionError;\nexports.async = async;\nexports.base64 = base64;\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\nexports.clone = clone;\nexports.contains = contains;\nexports.createSubscribe = createSubscribe;\nexports.decode = decode;\nexports.deepCopy = deepCopy;\nexports.deepExtend = deepExtend;\nexports.errorPrefix = errorPrefix;\nexports.every = every;\nexports.extend = extend;\nexports.findKey = findKey;\nexports.findValue = findValue;\nexports.forEach = forEach;\nexports.getAnyKey = getAnyKey;\nexports.getCount = getCount;\nexports.getUA = getUA;\nexports.getValues = getValues;\nexports.isAdmin = isAdmin;\nexports.isEmpty = isEmpty;\nexports.isMobileCordova = isMobileCordova;\nexports.isNodeSdk = isNodeSdk;\nexports.isNonNullObject = isNonNullObject;\nexports.isReactNative = isReactNative;\nexports.isValidFormat = isValidFormat;\nexports.isValidTimestamp = isValidTimestamp;\nexports.issuedAtTime = issuedAtTime;\nexports.jsonEval = jsonEval;\nexports.map = map;\nexports.patchProperty = patchProperty;\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.validateNamespace = validateNamespace;\n//# sourceMappingURL=index.cjs.js.map\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(config) {\n return; // EEILN-9864 disable PWA/service worker stuff\n\n if ('serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n return\n }\n\n const swUrl = `/sw.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'activated') {\n if (config && config.onInit) {\n config.onInit(registration)\n }\n }\n\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nrequire('@firebase/polyfill');\nvar firebase = _interopDefault(require('@firebase/app'));\n\n/**\r\n * @license\r\n * Copyright 2018 Google Inc.\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\nmodule.exports = firebase;\n//# sourceMappingURL=index.cjs.js.map\n","import 'whatwg-fetch';\nimport 'promise-polyfill/lib/polyfill';\nimport 'core-js/features/array/find';\nimport 'core-js/features/array/find-index';\nimport 'core-js/features/object/assign';\nimport 'core-js/features/string/starts-with';\nimport 'core-js/features/string/repeat';\nimport 'core-js/features/symbol';\nimport 'core-js/features/symbol/iterator';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\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//# sourceMappingURL=index.esm.js.map\n","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","'use strict';\n\n/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n return constructor.reject(reason);\n });\n }\n );\n}\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = finallyConstructor;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(values) {\n return new Promise(function(resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n (typeof setImmediate === 'function' &&\n function(fn) {\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\n/** @suppress {undefinedVars} */\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\nif (!('Promise' in globalNS)) {\n globalNS['Promise'] = Promise;\n} else if (!globalNS.Promise.prototype['finally']) {\n globalNS.Promise.prototype['finally'] = finallyConstructor;\n}\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a