{"version":3,"file":"FirebaseTokenInput.C6sk0jCU.mjs","names":["a","c","d","_","deepEqual","a","k","isObject","name","version","target","Component","FirebaseError","p","c","u","DecodeBase64StringError","base64Decode","getDefaultsFromGlobal","getDefaults","ErrorFactory","LogLevel","defaultLogHandler","r","s","e","i","o","a","c","t","u","d","n","Y","ae","getGlobal","replaceTemplate","Component","Logger","p","g","_","I","v","E","T","A","y","w","x","re","se","Component","_","v","firebaseConfig","error","d","name","x","className","css","error","oobCode","email"],"sources":["https:/framerusercontent.com/modules/IQzDFpniaD3AmKydBXP4/Cs0w5Su72eeuirGvKldQ/PhoneNumberInput.js","https:/www.gstatic.com/firebasejs/11.6.0/firebase-app.js","https:/www.gstatic.com/firebasejs/11.6.0/firebase-auth.js","https:/framerusercontent.com/modules/oFoQSIMw9D8MrmDsBf8f/PdOIhlx83U2ACLNobQ3v/ScheduleCall.js","https:/framerusercontent.com/modules/oepkdoTLPCeO5c0EoAY4/hj7wV8EqCXtZTqk3qzBl/T4NxYNcSD.js","https:/framerusercontent.com/modules/0TGlNaN2D2qzMcknGYcB/G1WqoVVwneF9v3y3A1Aj/FirebaseTokenInput.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{Border,createBackground,parsePadding,fillProp,borderProp,shadowsProp,useInstanceId,HiddenInput}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/p64C0n6xNEFY9NovSiJw/FramerFormsShared.js\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerDisableUnlink\n */export default function PhoneNumberInput(props){const{countryCodeOptions,border,shadows}=props;const id=useInstanceId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const hasCC=!!countryCodeOptions;const ccConnected=hasCC&&countryCodeOptions?.style!==\"split\";const phoneFormat=props.format==\"custom\"?props.customFormat==\"\"?\"XXXXXXXXXX\":props.customFormat:props.format;const countryCodeFormat=hasCC?countryCodeOptions.format==\"custom\"?countryCodeOptions.customFormat==\"\"?\"X\":countryCodeOptions.customFormat:countryCodeOptions.format:\"\";const maxDigits=countXCharacters(phoneFormat);const defaultCountryCode=String(countryCodeOptions?.defaultCountryCode)??\"1\";const[countryCode,setCountryCode]=useState(defaultCountryCode);const[phoneNumber,setPhoneNumber]=useState(\"\");const[countryCodeFocused,setCountryCodeFocused]=useState(false);const[phoneNumberFocused,setPhoneNumberFocused]=useState(false);const[invalid,setInvalid]=useState(false);const countryCodeInputRef=useRef(null);const phoneNumberInputRef=useRef(null);const[pt,pr,pb,pl]=parsePadding(props.padding);const[tl,tr,br,bl]=parsePadding(props.radius);const[bwt,bwr,bwb,bwl]=parsePadding(border?.width);useEffect(()=>{if(invalid){props.invalidEvent?.();}},[invalid]);const isComplete=phoneNumber.length===maxDigits;function onPhoneNumberChange(event){const unformatted=unformatValue(event.target.value).substring(0,maxDigits);const formattedValue=formatPhoneNumber(phoneNumber,phoneFormat);if(!isLastCharacterANumber(formattedValue)&&event.target.value.length<formattedValue.length){setPhoneNumber(unformatted.slice(0,-1));}else{setPhoneNumber(unformatted);}}function onCountryCodeChange(event){const unformatted=unformatValue(event.target.value).substring(0,3);const formattedValue=formatCountryCode(countryCode,countryCodeFormat);if(!isLastCharacterANumber(formattedValue)&&event.target.value.length<formattedValue.length){setCountryCode(unformatted.slice(0,-1));}else{setCountryCode(unformatted);}}function onCountryCodeFocus(){setCountryCodeFocused(true);if(invalid){setInvalid(false);}const lastChar=countryCodeFormat.slice(-1);if(lastChar!=\"X\"&&lastChar!=\"x\"){const countryCodeInput=countryCodeInputRef.current;if(countryCodeInput){const formattedValue=formatCountryCode(countryCode,countryCodeFormat);const cursorPosition=Math.max(countryCodeFormat.lastIndexOf(\"X\"),countryCodeFormat.lastIndexOf(\"x\"))+countryCode.length;setTimeout(()=>countryCodeInput.setSelectionRange(cursorPosition,cursorPosition),5);}}props.focusEvent?.();}function onPhoneNumberKeyDown(event){if(hasCC&&phoneNumber===\"\"){if(event.key===\"Backspace\"){countryCodeInputRef.current?.focus();}if(event.key===\"ArrowLeft\"){countryCodeInputRef.current?.focus();event.preventDefault();}}}function onCountryCodeKeyDown(event){if(hasCC){if(event.key===\"ArrowRight\"&&event.target.selectionStart===event.target.value.length){phoneNumberInputRef.current?.focus();event.preventDefault();}}}function onCountryCodeBlur(event){if(countryCode.length===0){setCountryCode(defaultCountryCode);}setCountryCodeFocused(false);props.blurEvent?.();}function onPhoneNumberFocus(){setPhoneNumberFocused(true);props.focusEvent?.();if(invalid){setInvalid(false);}}function onPhoneNumberBlur(){setPhoneNumberFocused(false);props.blurEvent?.();}return /*#__PURE__*/_jsxs(\"div\",{\"data-framerforms\":true,id:id,style:{display:\"flex\",flexDirection:\"row\",gap:countryCodeOptions?.style==\"split\"?countryCodeOptions.gap:0,...props.style},children:[/*#__PURE__*/_jsx(HiddenInput,{name:props.name,required:props.required||phoneNumber.length>0&&!isComplete,value:isComplete?hasCC?`+${countryCode} ${phoneNumber}`:phoneNumber:\"\",setInvalid:setInvalid}),hasCC&&/*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(props.fill,null,countryCodeFocused,invalid),boxShadow:invalid&&shadows?.invalid||countryCodeFocused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:ccConnected?px(tl,0,0,bl):props.radius,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(\"input\",{ref:countryCodeInputRef,value:formatCountryCode(isCanvas?countryCodeOptions.defaultCountryCode:countryCode,countryCodeFormat),onChange:onCountryCodeChange,onFocus:onCountryCodeFocus,onBlur:onCountryCodeBlur,onKeyDown:onCountryCodeKeyDown,placeholder:props.placeholder||replaceXWithNumbers(phoneFormat),style:{background:\"none\",border:\"none\",color:props.color,width:countryCodeOptions.width+pl,height:\"100%\",margin:0,display:\"block\",padding:px(pt,0,pb,pl),...props.font},\"data-framerforms-no-prefill\":true}),border&&/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,0,bwb,bwl):border.width,opacity:countryCodeFocused&&border?.colorFocus?0:1,transition:props.transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:countryCodeFocused?1:0,transition:props.transition})]}),/*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(props.fill,null,phoneNumberFocused,invalid),boxShadow:invalid&&shadows?.invalid||phoneNumberFocused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:ccConnected?px(0,tr,br,0):props.radius,flex:1,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(\"input\",{ref:phoneNumberInputRef,autoFocus:props.autoFocus,value:formatPhoneNumber(phoneNumber,phoneFormat),onChange:onPhoneNumberChange,onFocus:onPhoneNumberFocus,onBlur:onPhoneNumberBlur,onKeyDown:onPhoneNumberKeyDown,placeholder:props.placeholder||replaceXWithNumbers(phoneFormat),style:{background:\"none\",border:\"none\",color:props.color,margin:0,display:\"block\",padding:props.padding,width:\"100%\",height:\"100%\",textOverflow:\"ellipsis\",...props.font},\"data-framerforms-no-prefill\":true}),border&&/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,bwr,bwb,0):border.width,opacity:phoneNumberFocused&&border?.colorFocus?0:1,transition:props.transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:phoneNumberFocused?1:0,transition:props.transition})]}),countryCodeOptions?.style==\"divider\"&&/*#__PURE__*/_jsx(motion.div,{animate:{opacity:border?.colorFocus&&(countryCodeFocused||phoneNumberFocused)?0:1},style:{position:\"absolute\",width:countryCodeOptions.divider.width,left:countryCodeOptions.width+pl-Math.round(countryCodeOptions.divider.width/2),top:countryCodeOptions.divider.inset,bottom:countryCodeOptions.divider.inset,backgroundColor:countryCodeOptions.divider.color},initial:false,transition:props.transition}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                    #${id} input::placeholder {\n                        color: ${props.placeholderColor};\n                    }\n                    #${id} input:focus {\n                        outline: none;\n                    }`}})]});}PhoneNumberInput.displayName=\"Phone Number Input\";addPropertyControls(PhoneNumberInput,{name:{type:ControlType.String,defaultValue:\"Phone Number\",preventLocalization:true},required:{type:ControlType.Boolean,defaultValue:false},autoFocus:{type:ControlType.Boolean,defaultValue:false,title:\"Auto-Focus\"},countryCodeOptions:{type:ControlType.Object,optional:true,defaultValue:{defaultCountryCode:1,format:\"+1\",width:40},title:\"Country Code\",controls:{defaultCountryCode:{title:\"Default\",type:ControlType.Number,min:0,max:999,step:1,defaultValue:1},format:{title:\"Format\",type:ControlType.Enum,defaultValue:\"+1\",options:[\"+X\",\"(X)\",\"(+X)\",\"X\",\"custom\"],optionTitles:[\"+1\",\"(1)\",\"(+1)\",\"1\",\"Custom Format\"]},customFormat:{title:\" \",type:ControlType.String,defaultValue:\"+X\",description:\"*X* -> country code\",preventLocalization:true,hidden:props=>props.format!==\"custom\"},width:{type:ControlType.Number,defaultValue:45,min:1,step:1},style:{type:ControlType.Enum,defaultValue:\"divider\",options:[\"connected\",\"divider\",\"split\"],optionTitles:[\"Connected\",\"Divider\",\"Split\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},divider:{type:ControlType.Object,hidden:props=>props.style!==\"divider\",controls:{color:{type:ControlType.Color,defaultValue:\"rgba(136, 136, 136, 0.15)\"},width:{type:ControlType.Number,defaultValue:1,min:1,step:1,displayStepper:true},inset:{type:ControlType.Number,defaultValue:8,min:0,step:1,displayStepper:true}}},gap:{type:ControlType.Number,defaultValue:8,min:0,step:1,hidden:props=>props.style!==\"split\"}}},format:{type:ControlType.Enum,defaultValue:\"(XXX) XXX - XXXX\",options:[\"(XXX) XXX - XXXX\",\"(XXX) XXX-XXXX\",\"XXX-XXX-XXXX\",\"XXX.XXX.XXXX\",\"XXX XXX XXXX\",\"XXXXXXXXXXX\",\"XX XXXX XXXX\",\"custom\"],optionTitles:[\"(123) 456 - 7890\",\"(123) 456-7890\",\"123-456-7890\",\"123.456.7890\",\"123 456 7890\",\"1234567890\",\"12 3456 7890\",\"Custom Format\"]},customFormat:{title:\" \",type:ControlType.String,defaultValue:\"(XXX) XXX - XXXX\",description:\"*X* -> phone number\",preventLocalization:true,hidden:props=>props.format!==\"custom\"},placeholder:{type:ControlType.String,defaultValue:\"\",placeholder:\"Auto\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.2}},color:{type:ControlType.Color,defaultValue:\"#999999\"},placeholderColor:{type:ControlType.Color,defaultValue:\"#999999\",title:\"Placeholder\"},fill:fillProp({invalid:true}),radius:{type:ControlType.BorderRadius,defaultValue:\"10px\"},padding:{type:ControlType.Padding,defaultValue:\"12px\"},border:borderProp({invalid:true}),shadows:shadowsProp(),bgBlur:{type:ControlType.Number,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\"},transition:{type:ControlType.Transition,defaultValue:{type:false}},focusEvent:{type:ControlType.EventHandler,title:\"Focus\"},blurEvent:{type:ControlType.EventHandler,title:\"Blur\"},invalidEvent:{type:ControlType.EventHandler,title:\"Invalid\"}});function formatPhoneNumber(phoneNumber,format){if(!phoneNumber){return\"\";}let index=0// Tracks the position in the replacements string\n;let cutOffIndex=null// To determine where to slice the template after replacement\n;const result=format.replace(/[Xx]/g,(match,offset)=>{if(index<phoneNumber.length){return phoneNumber[index++];}else{if(phoneNumber.length<10&&cutOffIndex===null){// Set cut-off index at the first unmatched Xx after all replacements are used\ncutOffIndex=offset;}return\"\";}});// Slice the template to remove the part after the last valid replacement if necessary\nreturn cutOffIndex!==null?result.slice(0,cutOffIndex):result;}function replaceXWithNumbers(input){let count=1;return input.replace(/[Xx]/g,()=>{let number=count%10;if(number===0)number=0;count++;return number;});}function formatCountryCode(countryCode,format){return format.replace(/[Xx]/,countryCode);}function unformatValue(value){return value.replace(/\\D/g,\"\");}function isLastCharacterANumber(str){if(str.length===0)return false// Check if the string is empty\n;const lastChar=str[str.length-1]// Get the last character\n;return!isNaN(lastChar)&&!isNaN(parseFloat(lastChar))// Check if it's a numeric value\n;}const px=(a,b,c,d)=>`${a}px ${b}px ${c}px ${d}px`;function countXCharacters(str){// Convert the string to lowercase to count both 'X' and 'x'\nconst lowercaseStr=str.toLowerCase();// Use a regular expression to match 'x' characters\nconst xRegex=/x/g;// Use the match() method to find all occurrences of 'x'\nconst matches=lowercaseStr.match(xRegex);// Return the count of matches, or 0 if no matches found\nreturn matches?matches.length:0;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhoneNumberInput\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PhoneNumberInput.map","/**\n * @license\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// This value is retrieved and hardcoded by the NPM postinstall script\nconst getDefaultsFromPostinstall = () => undefined;\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst stringToByteArray$1 = function (str) {\n    // TODO(user): Use native implementations if/when available\n    const out = [];\n    let p = 0;\n    for (let i = 0; i < str.length; i++) {\n        let c = str.charCodeAt(i);\n        if (c < 128) {\n            out[p++] = c;\n        }\n        else if (c < 2048) {\n            out[p++] = (c >> 6) | 192;\n            out[p++] = (c & 63) | 128;\n        }\n        else if ((c & 0xfc00) === 0xd800 &&\n            i + 1 < str.length &&\n            (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n            // Surrogate Pair\n            c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n            out[p++] = (c >> 18) | 240;\n            out[p++] = ((c >> 12) & 63) | 128;\n            out[p++] = ((c >> 6) & 63) | 128;\n            out[p++] = (c & 63) | 128;\n        }\n        else {\n            out[p++] = (c >> 12) | 224;\n            out[p++] = ((c >> 6) & 63) | 128;\n            out[p++] = (c & 63) | 128;\n        }\n    }\n    return out;\n};\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes) {\n    // TODO(user): Use native implementations if/when available\n    const out = [];\n    let pos = 0, c = 0;\n    while (pos < bytes.length) {\n        const c1 = bytes[pos++];\n        if (c1 < 128) {\n            out[c++] = String.fromCharCode(c1);\n        }\n        else if (c1 > 191 && c1 < 224) {\n            const c2 = bytes[pos++];\n            out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n        }\n        else if (c1 > 239 && c1 < 365) {\n            // Surrogate Pair\n            const c2 = bytes[pos++];\n            const c3 = bytes[pos++];\n            const c4 = bytes[pos++];\n            const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n                0x10000;\n            out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n            out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n        }\n        else {\n            const c2 = bytes[pos++];\n            const c3 = bytes[pos++];\n            out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n        }\n    }\n    return out.join('');\n};\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\n// TODO(dlarocque): Define this as a class, since we no longer target ES5.\nconst base64 = {\n    /**\n     * Maps bytes to characters.\n     */\n    byteToCharMap_: null,\n    /**\n     * Maps characters to bytes.\n     */\n    charToByteMap_: null,\n    /**\n     * Maps bytes to websafe characters.\n     * @private\n     */\n    byteToCharMapWebSafe_: null,\n    /**\n     * Maps websafe characters to bytes.\n     * @private\n     */\n    charToByteMapWebSafe_: null,\n    /**\n     * Our default alphabet, shared between\n     * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n     */\n    ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n    /**\n     * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n     */\n    get ENCODED_VALS() {\n        return this.ENCODED_VALS_BASE + '+/=';\n    },\n    /**\n     * Our websafe alphabet.\n     */\n    get ENCODED_VALS_WEBSAFE() {\n        return this.ENCODED_VALS_BASE + '-_.';\n    },\n    /**\n     * Whether this browser supports the atob and btoa functions. This extension\n     * started at Mozilla but is now implemented by many browsers. We use the\n     * ASSUME_* variables to avoid pulling in the full useragent detection library\n     * but still allowing the standard per-browser compilations.\n     *\n     */\n    HAS_NATIVE_SUPPORT: typeof atob === 'function',\n    /**\n     * Base64-encode an array of bytes.\n     *\n     * @param input An array of bytes (numbers with\n     *     value in [0, 255]) to encode.\n     * @param webSafe Boolean indicating we should use the\n     *     alternative alphabet.\n     * @return The base64 encoded string.\n     */\n    encodeByteArray(input, webSafe) {\n        if (!Array.isArray(input)) {\n            throw Error('encodeByteArray takes an array as a parameter');\n        }\n        this.init_();\n        const byteToCharMap = webSafe\n            ? this.byteToCharMapWebSafe_\n            : this.byteToCharMap_;\n        const output = [];\n        for (let i = 0; i < input.length; i += 3) {\n            const byte1 = input[i];\n            const haveByte2 = i + 1 < input.length;\n            const byte2 = haveByte2 ? input[i + 1] : 0;\n            const haveByte3 = i + 2 < input.length;\n            const byte3 = haveByte3 ? input[i + 2] : 0;\n            const outByte1 = byte1 >> 2;\n            const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n            let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n            let outByte4 = byte3 & 0x3f;\n            if (!haveByte3) {\n                outByte4 = 64;\n                if (!haveByte2) {\n                    outByte3 = 64;\n                }\n            }\n            output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n        }\n        return output.join('');\n    },\n    /**\n     * Base64-encode a string.\n     *\n     * @param input A string to encode.\n     * @param webSafe If true, we should use the\n     *     alternative alphabet.\n     * @return The base64 encoded string.\n     */\n    encodeString(input, webSafe) {\n        // Shortcut for Mozilla browsers that implement\n        // a native base64 encoder in the form of \"btoa/atob\"\n        if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n            return btoa(input);\n        }\n        return this.encodeByteArray(stringToByteArray$1(input), webSafe);\n    },\n    /**\n     * Base64-decode a string.\n     *\n     * @param input to decode.\n     * @param webSafe True if we should use the\n     *     alternative alphabet.\n     * @return string representing the decoded value.\n     */\n    decodeString(input, webSafe) {\n        // Shortcut for Mozilla browsers that implement\n        // a native base64 encoder in the form of \"btoa/atob\"\n        if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n            return atob(input);\n        }\n        return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n    },\n    /**\n     * Base64-decode a string.\n     *\n     * In base-64 decoding, groups of four characters are converted into three\n     * bytes.  If the encoder did not apply padding, the input length may not\n     * be a multiple of 4.\n     *\n     * In this case, the last group will have fewer than 4 characters, and\n     * padding will be inferred.  If the group has one or two characters, it decodes\n     * to one byte.  If the group has three characters, it decodes to two bytes.\n     *\n     * @param input Input to decode.\n     * @param webSafe True if we should use the web-safe alphabet.\n     * @return bytes representing the decoded value.\n     */\n    decodeStringToByteArray(input, webSafe) {\n        this.init_();\n        const charToByteMap = webSafe\n            ? this.charToByteMapWebSafe_\n            : this.charToByteMap_;\n        const output = [];\n        for (let i = 0; i < input.length;) {\n            const byte1 = charToByteMap[input.charAt(i++)];\n            const haveByte2 = i < input.length;\n            const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n            ++i;\n            const haveByte3 = i < input.length;\n            const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n            ++i;\n            const haveByte4 = i < input.length;\n            const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n            ++i;\n            if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n                throw new DecodeBase64StringError();\n            }\n            const outByte1 = (byte1 << 2) | (byte2 >> 4);\n            output.push(outByte1);\n            if (byte3 !== 64) {\n                const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n                output.push(outByte2);\n                if (byte4 !== 64) {\n                    const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n                    output.push(outByte3);\n                }\n            }\n        }\n        return output;\n    },\n    /**\n     * Lazy static initialization function. Called before\n     * accessing any of the static map variables.\n     * @private\n     */\n    init_() {\n        if (!this.byteToCharMap_) {\n            this.byteToCharMap_ = {};\n            this.charToByteMap_ = {};\n            this.byteToCharMapWebSafe_ = {};\n            this.charToByteMapWebSafe_ = {};\n            // We want quick mappings back and forth, so we precompute two maps.\n            for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n                this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n                this.charToByteMap_[this.byteToCharMap_[i]] = i;\n                this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n                this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n                // Be forgiving when decoding and correctly decode both encodings.\n                if (i >= this.ENCODED_VALS_BASE.length) {\n                    this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n                    this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n                }\n            }\n        }\n    }\n};\n/**\n * An error encountered while decoding base64 string.\n */\nclass DecodeBase64StringError extends Error {\n    constructor() {\n        super(...arguments);\n        this.name = 'DecodeBase64StringError';\n    }\n}\n/**\n * URL-safe base64 encoding\n */\nconst base64Encode = function (str) {\n    const utf8Bytes = stringToByteArray$1(str);\n    return base64.encodeByteArray(utf8Bytes, true);\n};\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nconst base64urlEncodeWithoutPadding = function (str) {\n    // Use base64url encoding and remove padding in the end (dot characters).\n    return base64Encode(str).replace(/\\./g, '');\n};\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nconst base64Decode = function (str) {\n    try {\n        return base64.decodeString(str, true);\n    }\n    catch (e) {\n        console.error('base64Decode failed: ', e);\n    }\n    return null;\n};\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nfunction getGlobal() {\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/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = () => {\n    if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n        return;\n    }\n    const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n    if (defaultsJsonString) {\n        return JSON.parse(defaultsJsonString);\n    }\n};\nconst getDefaultsFromCookie = () => {\n    if (typeof document === 'undefined') {\n        return;\n    }\n    let match;\n    try {\n        match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n    }\n    catch (e) {\n        // Some environments such as Angular Universal SSR have a\n        // `document` object but error on accessing `document.cookie`.\n        return;\n    }\n    const decoded = match && base64Decode(match[1]);\n    return decoded && JSON.parse(decoded);\n};\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nconst getDefaults = () => {\n    try {\n        return (getDefaultsFromPostinstall() ||\n            getDefaultsFromGlobal() ||\n            getDefaultsFromEnvVariable() ||\n            getDefaultsFromCookie());\n    }\n    catch (e) {\n        /**\n         * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n         * to any environment case we have not accounted for. Log to\n         * info instead of swallowing so we can find these unknown cases\n         * and add paths for them if needed.\n         */\n        console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n        return;\n    }\n};\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Deferred {\n    constructor() {\n        this.reject = () => { };\n        this.resolve = () => { };\n        this.promise = new Promise((resolve, reject) => {\n            this.resolve = resolve;\n            this.reject = reject;\n        });\n    }\n    /**\n     * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\n     * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n     * and returns a node-style callback which will resolve or reject the Deferred's promise.\n     */\n    wrapCallback(callback) {\n        return (error, value) => {\n            if (error) {\n                this.reject(error);\n            }\n            else {\n                this.resolve(value);\n            }\n            if (typeof callback === 'function') {\n                // Attaching noop handler just in case developer wasn't expecting\n                // promises\n                this.promise.catch(() => { });\n                // Some of our callbacks don't expect a value and our own tests\n                // assert that the parameter length is 1\n                if (callback.length === 1) {\n                    callback(error);\n                }\n                else {\n                    callback(error, value);\n                }\n            }\n        };\n    }\n}\n/**\n * Detect Browser Environment.\n * Note: This will return true for certain test frameworks that are incompletely\n * mimicking a browser, and should not lead to assuming all browser APIs are\n * available.\n */\nfunction isBrowser() {\n    return typeof window !== 'undefined' || isWebWorker();\n}\n/**\n * Detect Web Worker context.\n */\nfunction isWebWorker() {\n    return (typeof WorkerGlobalScope !== 'undefined' &&\n        typeof self !== 'undefined' &&\n        self instanceof WorkerGlobalScope);\n}\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nfunction isIndexedDBAvailable() {\n    try {\n        return typeof indexedDB === 'object';\n    }\n    catch (e) {\n        return false;\n    }\n}\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nfunction validateIndexedDBOpenable() {\n    return new Promise((resolve, reject) => {\n        try {\n            let preExist = true;\n            const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\n            const request = self.indexedDB.open(DB_CHECK_NAME);\n            request.onsuccess = () => {\n                request.result.close();\n                // delete database only when it doesn't pre-exist\n                if (!preExist) {\n                    self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n                }\n                resolve(true);\n            };\n            request.onupgradeneeded = () => {\n                preExist = false;\n            };\n            request.onerror = () => {\n                var _a;\n                reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\n            };\n        }\n        catch (error) {\n            reject(error);\n        }\n    });\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n *   // TypeScript string literals for type-safe codes\n *   type Err =\n *     'unknown' |\n *     'object-not-found'\n *     ;\n *\n *   // Closure enum for type-safe error codes\n *   // at-enum {string}\n *   var Err = {\n *     UNKNOWN: 'unknown',\n *     OBJECT_NOT_FOUND: 'object-not-found',\n *   }\n *\n *   let errors: Map<Err, string> = {\n *     'generic-error': \"Unknown error\",\n *     'file-not-found': \"Could not find file: {$file}\",\n *   };\n *\n *   // Type-safe function - must pass a valid error code as param.\n *   let error = new ErrorFactory<Err>('service', 'Service', errors);\n *\n *   ...\n *   throw error.create(Err.GENERIC);\n *   ...\n *   throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n *   ...\n *   // Service: Could not file file: foo.txt (service/file-not-found).\n *\n *   catch (e) {\n *     assert(e.message === \"Could not find file: foo.txt.\");\n *     if ((e as FirebaseError)?.code === 'service/file-not-found') {\n *       console.log(\"Could not read file: \" + e['file']);\n *     }\n *   }\n */\nconst ERROR_NAME = 'FirebaseError';\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nclass FirebaseError extends Error {\n    constructor(\n    /** The error code for this error. */\n    code, message, \n    /** Custom data for this error. */\n    customData) {\n        super(message);\n        this.code = code;\n        this.customData = customData;\n        /** The custom name for all FirebaseErrors. */\n        this.name = ERROR_NAME;\n        // Fix For ES5\n        // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        // TODO(dlarocque): Replace this with `new.target`: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget\n        //                   which we can now use since we no longer target ES5.\n        Object.setPrototypeOf(this, FirebaseError.prototype);\n        // Maintains proper stack trace for where our error was thrown.\n        // Only available on V8.\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, ErrorFactory.prototype.create);\n        }\n    }\n}\nclass ErrorFactory {\n    constructor(service, serviceName, errors) {\n        this.service = service;\n        this.serviceName = serviceName;\n        this.errors = errors;\n    }\n    create(code, ...data) {\n        const customData = data[0] || {};\n        const fullCode = `${this.service}/${code}`;\n        const template = this.errors[code];\n        const message = template ? replaceTemplate(template, customData) : 'Error';\n        // Service Name: Error message (service/code).\n        const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n        const error = new FirebaseError(fullCode, fullMessage, customData);\n        return error;\n    }\n}\nfunction replaceTemplate(template, data) {\n    return template.replace(PATTERN, (_, key) => {\n        const value = data[key];\n        return value != null ? String(value) : `<${key}?>`;\n    });\n}\nconst PATTERN = /\\{\\$([^}]+)}/g;\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nfunction deepEqual(a, b) {\n    if (a === b) {\n        return true;\n    }\n    const aKeys = Object.keys(a);\n    const bKeys = Object.keys(b);\n    for (const k of aKeys) {\n        if (!bKeys.includes(k)) {\n            return false;\n        }\n        const aProp = a[k];\n        const bProp = b[k];\n        if (isObject(aProp) && isObject(bProp)) {\n            if (!deepEqual(aProp, bProp)) {\n                return false;\n            }\n        }\n        else if (aProp !== bProp) {\n            return false;\n        }\n    }\n    for (const k of bKeys) {\n        if (!aKeys.includes(k)) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction isObject(thing) {\n    return thing !== null && typeof thing === 'object';\n}\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nclass Component {\n    /**\n     *\n     * @param name The public service name, e.g. app, auth, firestore, database\n     * @param instanceFactory Service factory responsible for creating the public interface\n     * @param type whether the service provided by the component is public or private\n     */\n    constructor(name, instanceFactory, type) {\n        this.name = name;\n        this.instanceFactory = instanceFactory;\n        this.type = type;\n        this.multipleInstances = false;\n        /**\n         * Properties to be added to the service namespace\n         */\n        this.serviceProps = {};\n        this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\n        this.onInstanceCreated = null;\n    }\n    setInstantiationMode(mode) {\n        this.instantiationMode = mode;\n        return this;\n    }\n    setMultipleInstances(multipleInstances) {\n        this.multipleInstances = multipleInstances;\n        return this;\n    }\n    setServiceProps(props) {\n        this.serviceProps = props;\n        return this;\n    }\n    setInstanceCreatedCallback(callback) {\n        this.onInstanceCreated = callback;\n        return this;\n    }\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ENTRY_NAME$1 = '[DEFAULT]';\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nclass Provider {\n    constructor(name, container) {\n        this.name = name;\n        this.container = container;\n        this.component = null;\n        this.instances = new Map();\n        this.instancesDeferred = new Map();\n        this.instancesOptions = new Map();\n        this.onInitCallbacks = new Map();\n    }\n    /**\n     * @param identifier A provider can provide multiple instances of a service\n     * if this.component.multipleInstances is true.\n     */\n    get(identifier) {\n        // if multipleInstances is not supported, use the default name\n        const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n        if (!this.instancesDeferred.has(normalizedIdentifier)) {\n            const deferred = new Deferred();\n            this.instancesDeferred.set(normalizedIdentifier, deferred);\n            if (this.isInitialized(normalizedIdentifier) ||\n                this.shouldAutoInitialize()) {\n                // initialize the service if it can be auto-initialized\n                try {\n                    const instance = this.getOrInitializeService({\n                        instanceIdentifier: normalizedIdentifier\n                    });\n                    if (instance) {\n                        deferred.resolve(instance);\n                    }\n                }\n                catch (e) {\n                    // when the instance factory throws an exception during get(), it should not cause\n                    // a fatal error. We just return the unresolved promise in this case.\n                }\n            }\n        }\n        return this.instancesDeferred.get(normalizedIdentifier).promise;\n    }\n    getImmediate(options) {\n        var _a;\n        // if multipleInstances is not supported, use the default name\n        const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\n        const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\n        if (this.isInitialized(normalizedIdentifier) ||\n            this.shouldAutoInitialize()) {\n            try {\n                return this.getOrInitializeService({\n                    instanceIdentifier: normalizedIdentifier\n                });\n            }\n            catch (e) {\n                if (optional) {\n                    return null;\n                }\n                else {\n                    throw e;\n                }\n            }\n        }\n        else {\n            // In case a component is not initialized and should/cannot be auto-initialized at the moment, return null if the optional flag is set, or throw\n            if (optional) {\n                return null;\n            }\n            else {\n                throw Error(`Service ${this.name} is not available`);\n            }\n        }\n    }\n    getComponent() {\n        return this.component;\n    }\n    setComponent(component) {\n        if (component.name !== this.name) {\n            throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\n        }\n        if (this.component) {\n            throw Error(`Component for ${this.name} has already been provided`);\n        }\n        this.component = component;\n        // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n        if (!this.shouldAutoInitialize()) {\n            return;\n        }\n        // if the service is eager, initialize the default instance\n        if (isComponentEager(component)) {\n            try {\n                this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME$1 });\n            }\n            catch (e) {\n                // when the instance factory for an eager Component throws an exception during the eager\n                // initialization, it should not cause a fatal error.\n                // TODO: Investigate if we need to make it configurable, because some component may want to cause\n                // a fatal error in this case?\n            }\n        }\n        // Create service instances for the pending promises and resolve them\n        // NOTE: if this.multipleInstances is false, only the default instance will be created\n        // and all promises with resolve with it regardless of the identifier.\n        for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\n            const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\n            try {\n                // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n                const instance = this.getOrInitializeService({\n                    instanceIdentifier: normalizedIdentifier\n                });\n                instanceDeferred.resolve(instance);\n            }\n            catch (e) {\n                // when the instance factory throws an exception, it should not cause\n                // a fatal error. We just leave the promise unresolved.\n            }\n        }\n    }\n    clearInstance(identifier = DEFAULT_ENTRY_NAME$1) {\n        this.instancesDeferred.delete(identifier);\n        this.instancesOptions.delete(identifier);\n        this.instances.delete(identifier);\n    }\n    // app.delete() will call this method on every provider to delete the services\n    // TODO: should we mark the provider as deleted?\n    async delete() {\n        const services = Array.from(this.instances.values());\n        await Promise.all([\n            ...services\n                .filter(service => 'INTERNAL' in service) // legacy services\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                .map(service => service.INTERNAL.delete()),\n            ...services\n                .filter(service => '_delete' in service) // modularized services\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                .map(service => service._delete())\n        ]);\n    }\n    isComponentSet() {\n        return this.component != null;\n    }\n    isInitialized(identifier = DEFAULT_ENTRY_NAME$1) {\n        return this.instances.has(identifier);\n    }\n    getOptions(identifier = DEFAULT_ENTRY_NAME$1) {\n        return this.instancesOptions.get(identifier) || {};\n    }\n    initialize(opts = {}) {\n        const { options = {} } = opts;\n        const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\n        if (this.isInitialized(normalizedIdentifier)) {\n            throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\n        }\n        if (!this.isComponentSet()) {\n            throw Error(`Component ${this.name} has not been registered yet`);\n        }\n        const instance = this.getOrInitializeService({\n            instanceIdentifier: normalizedIdentifier,\n            options\n        });\n        // resolve any pending promise waiting for the service instance\n        for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\n            const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\n            if (normalizedIdentifier === normalizedDeferredIdentifier) {\n                instanceDeferred.resolve(instance);\n            }\n        }\n        return instance;\n    }\n    /**\n     *\n     * @param callback - a function that will be invoked  after the provider has been initialized by calling provider.initialize().\n     * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n     *\n     * @param identifier An optional instance identifier\n     * @returns a function to unregister the callback\n     */\n    onInit(callback, identifier) {\n        var _a;\n        const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n        const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\n        existingCallbacks.add(callback);\n        this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n        const existingInstance = this.instances.get(normalizedIdentifier);\n        if (existingInstance) {\n            callback(existingInstance, normalizedIdentifier);\n        }\n        return () => {\n            existingCallbacks.delete(callback);\n        };\n    }\n    /**\n     * Invoke onInit callbacks synchronously\n     * @param instance the service instance`\n     */\n    invokeOnInitCallbacks(instance, identifier) {\n        const callbacks = this.onInitCallbacks.get(identifier);\n        if (!callbacks) {\n            return;\n        }\n        for (const callback of callbacks) {\n            try {\n                callback(instance, identifier);\n            }\n            catch (_a) {\n                // ignore errors in the onInit callback\n            }\n        }\n    }\n    getOrInitializeService({ instanceIdentifier, options = {} }) {\n        let instance = this.instances.get(instanceIdentifier);\n        if (!instance && this.component) {\n            instance = this.component.instanceFactory(this.container, {\n                instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n                options\n            });\n            this.instances.set(instanceIdentifier, instance);\n            this.instancesOptions.set(instanceIdentifier, options);\n            /**\n             * Invoke onInit listeners.\n             * Note this.component.onInstanceCreated is different, which is used by the component creator,\n             * while onInit listeners are registered by consumers of the provider.\n             */\n            this.invokeOnInitCallbacks(instance, instanceIdentifier);\n            /**\n             * Order is important\n             * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n             * makes `isInitialized()` return true.\n             */\n            if (this.component.onInstanceCreated) {\n                try {\n                    this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\n                }\n                catch (_a) {\n                    // ignore errors in the onInstanceCreatedCallback\n                }\n            }\n        }\n        return instance || null;\n    }\n    normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME$1) {\n        if (this.component) {\n            return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME$1;\n        }\n        else {\n            return identifier; // assume multiple instances are supported before the component is provided.\n        }\n    }\n    shouldAutoInitialize() {\n        return (!!this.component &&\n            this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\n    }\n}\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier) {\n    return identifier === DEFAULT_ENTRY_NAME$1 ? undefined : identifier;\n}\nfunction isComponentEager(component) {\n    return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nclass ComponentContainer {\n    constructor(name) {\n        this.name = name;\n        this.providers = new Map();\n    }\n    /**\n     *\n     * @param component Component being added\n     * @param overwrite When a component with the same name has already been registered,\n     * if overwrite is true: overwrite the existing component with the new component and create a new\n     * provider with the new component. It can be useful in tests where you want to use different mocks\n     * for different tests.\n     * if overwrite is false: throw an exception\n     */\n    addComponent(component) {\n        const provider = this.getProvider(component.name);\n        if (provider.isComponentSet()) {\n            throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\n        }\n        provider.setComponent(component);\n    }\n    addOrOverwriteComponent(component) {\n        const provider = this.getProvider(component.name);\n        if (provider.isComponentSet()) {\n            // delete the existing provider from the container, so we can register the new component\n            this.providers.delete(component.name);\n        }\n        this.addComponent(component);\n    }\n    /**\n     * getProvider provides a type safe interface where it can only be called with a field name\n     * present in NameServiceMapping interface.\n     *\n     * Firebase SDKs providing services should extend NameServiceMapping interface to register\n     * themselves.\n     */\n    getProvider(name) {\n        if (this.providers.has(name)) {\n            return this.providers.get(name);\n        }\n        // create a Provider for a service that hasn't registered with Firebase\n        const provider = new Provider(name, this);\n        this.providers.set(name, provider);\n        return provider;\n    }\n    getProviders() {\n        return Array.from(this.providers.values());\n    }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A container for all of the Logger instances\n */\nconst instances = [];\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nvar LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n    LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\n    LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\n    LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\n    LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\n    LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\n})(LogLevel || (LogLevel = {}));\nconst levelStringToEnum = {\n    'debug': LogLevel.DEBUG,\n    'verbose': LogLevel.VERBOSE,\n    'info': LogLevel.INFO,\n    'warn': LogLevel.WARN,\n    'error': LogLevel.ERROR,\n    'silent': LogLevel.SILENT\n};\n/**\n * The default log level\n */\nconst defaultLogLevel = LogLevel.INFO;\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n    [LogLevel.DEBUG]: 'log',\n    [LogLevel.VERBOSE]: 'log',\n    [LogLevel.INFO]: 'info',\n    [LogLevel.WARN]: 'warn',\n    [LogLevel.ERROR]: 'error'\n};\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler = (instance, logType, ...args) => {\n    if (logType < instance.logLevel) {\n        return;\n    }\n    const now = new Date().toISOString();\n    const method = ConsoleMethod[logType];\n    if (method) {\n        console[method](`[${now}]  ${instance.name}:`, ...args);\n    }\n    else {\n        throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\n    }\n};\nclass Logger {\n    /**\n     * Gives you an instance of a Logger to capture messages according to\n     * Firebase's logging scheme.\n     *\n     * @param name The name that the logs will be associated with\n     */\n    constructor(name) {\n        this.name = name;\n        /**\n         * The log level of the given Logger instance.\n         */\n        this._logLevel = defaultLogLevel;\n        /**\n         * The main (internal) log handler for the Logger instance.\n         * Can be set to a new function in internal package code but not by user.\n         */\n        this._logHandler = defaultLogHandler;\n        /**\n         * The optional, additional, user-defined log handler for the Logger instance.\n         */\n        this._userLogHandler = null;\n        /**\n         * Capture the current instance for later use\n         */\n        instances.push(this);\n    }\n    get logLevel() {\n        return this._logLevel;\n    }\n    set logLevel(val) {\n        if (!(val in LogLevel)) {\n            throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n        }\n        this._logLevel = val;\n    }\n    // Workaround for setter/getter having to be the same type.\n    setLogLevel(val) {\n        this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n    }\n    get logHandler() {\n        return this._logHandler;\n    }\n    set logHandler(val) {\n        if (typeof val !== 'function') {\n            throw new TypeError('Value assigned to `logHandler` must be a function');\n        }\n        this._logHandler = val;\n    }\n    get userLogHandler() {\n        return this._userLogHandler;\n    }\n    set userLogHandler(val) {\n        this._userLogHandler = val;\n    }\n    /**\n     * The functions below are all based on the `console` interface\n     */\n    debug(...args) {\n        this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n        this._logHandler(this, LogLevel.DEBUG, ...args);\n    }\n    log(...args) {\n        this._userLogHandler &&\n            this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n        this._logHandler(this, LogLevel.VERBOSE, ...args);\n    }\n    info(...args) {\n        this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n        this._logHandler(this, LogLevel.INFO, ...args);\n    }\n    warn(...args) {\n        this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n        this._logHandler(this, LogLevel.WARN, ...args);\n    }\n    error(...args) {\n        this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n        this._logHandler(this, LogLevel.ERROR, ...args);\n    }\n}\nfunction setLogLevel$1(level) {\n    instances.forEach(inst => {\n        inst.setLogLevel(level);\n    });\n}\nfunction setUserLogHandler(logCallback, options) {\n    for (const instance of instances) {\n        let customLogLevel = null;\n        if (options && options.level) {\n            customLogLevel = levelStringToEnum[options.level];\n        }\n        if (logCallback === null) {\n            instance.userLogHandler = null;\n        }\n        else {\n            instance.userLogHandler = (instance, level, ...args) => {\n                const message = args\n                    .map(arg => {\n                    if (arg == null) {\n                        return null;\n                    }\n                    else if (typeof arg === 'string') {\n                        return arg;\n                    }\n                    else if (typeof arg === 'number' || typeof arg === 'boolean') {\n                        return arg.toString();\n                    }\n                    else if (arg instanceof Error) {\n                        return arg.message;\n                    }\n                    else {\n                        try {\n                            return JSON.stringify(arg);\n                        }\n                        catch (ignored) {\n                            return null;\n                        }\n                    }\n                })\n                    .filter(arg => arg)\n                    .join(' ');\n                if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\n                    logCallback({\n                        level: LogLevel[level].toLowerCase(),\n                        message,\n                        args,\n                        type: instance.name\n                    });\n                }\n            };\n        }\n    }\n}\n\nconst instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n    return (idbProxyableTypes ||\n        (idbProxyableTypes = [\n            IDBDatabase,\n            IDBObjectStore,\n            IDBIndex,\n            IDBCursor,\n            IDBTransaction,\n        ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n    return (cursorAdvanceMethods ||\n        (cursorAdvanceMethods = [\n            IDBCursor.prototype.advance,\n            IDBCursor.prototype.continue,\n            IDBCursor.prototype.continuePrimaryKey,\n        ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n    const promise = new Promise((resolve, reject) => {\n        const unlisten = () => {\n            request.removeEventListener('success', success);\n            request.removeEventListener('error', error);\n        };\n        const success = () => {\n            resolve(wrap(request.result));\n            unlisten();\n        };\n        const error = () => {\n            reject(request.error);\n            unlisten();\n        };\n        request.addEventListener('success', success);\n        request.addEventListener('error', error);\n    });\n    promise\n        .then((value) => {\n        // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n        // (see wrapFunction).\n        if (value instanceof IDBCursor) {\n            cursorRequestMap.set(value, request);\n        }\n        // Catching to avoid \"Uncaught Promise exceptions\"\n    })\n        .catch(() => { });\n    // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n    // is because we create many promises from a single IDBRequest.\n    reverseTransformCache.set(promise, request);\n    return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n    // Early bail if we've already created a done promise for this transaction.\n    if (transactionDoneMap.has(tx))\n        return;\n    const done = new Promise((resolve, reject) => {\n        const unlisten = () => {\n            tx.removeEventListener('complete', complete);\n            tx.removeEventListener('error', error);\n            tx.removeEventListener('abort', error);\n        };\n        const complete = () => {\n            resolve();\n            unlisten();\n        };\n        const error = () => {\n            reject(tx.error || new DOMException('AbortError', 'AbortError'));\n            unlisten();\n        };\n        tx.addEventListener('complete', complete);\n        tx.addEventListener('error', error);\n        tx.addEventListener('abort', error);\n    });\n    // Cache it for later retrieval.\n    transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n    get(target, prop, receiver) {\n        if (target instanceof IDBTransaction) {\n            // Special handling for transaction.done.\n            if (prop === 'done')\n                return transactionDoneMap.get(target);\n            // Polyfill for objectStoreNames because of Edge.\n            if (prop === 'objectStoreNames') {\n                return target.objectStoreNames || transactionStoreNamesMap.get(target);\n            }\n            // Make tx.store return the only store in the transaction, or undefined if there are many.\n            if (prop === 'store') {\n                return receiver.objectStoreNames[1]\n                    ? undefined\n                    : receiver.objectStore(receiver.objectStoreNames[0]);\n            }\n        }\n        // Else transform whatever we get back.\n        return wrap(target[prop]);\n    },\n    set(target, prop, value) {\n        target[prop] = value;\n        return true;\n    },\n    has(target, prop) {\n        if (target instanceof IDBTransaction &&\n            (prop === 'done' || prop === 'store')) {\n            return true;\n        }\n        return prop in target;\n    },\n};\nfunction replaceTraps(callback) {\n    idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n    // Due to expected object equality (which is enforced by the caching in `wrap`), we\n    // only create one new func per func.\n    // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n    if (func === IDBDatabase.prototype.transaction &&\n        !('objectStoreNames' in IDBTransaction.prototype)) {\n        return function (storeNames, ...args) {\n            const tx = func.call(unwrap(this), storeNames, ...args);\n            transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n            return wrap(tx);\n        };\n    }\n    // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n    // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n    // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n    // with real promises, so each advance methods returns a new promise for the cursor object, or\n    // undefined if the end of the cursor has been reached.\n    if (getCursorAdvanceMethods().includes(func)) {\n        return function (...args) {\n            // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n            // the original object.\n            func.apply(unwrap(this), args);\n            return wrap(cursorRequestMap.get(this));\n        };\n    }\n    return function (...args) {\n        // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n        // the original object.\n        return wrap(func.apply(unwrap(this), args));\n    };\n}\nfunction transformCachableValue(value) {\n    if (typeof value === 'function')\n        return wrapFunction(value);\n    // This doesn't return, it just creates a 'done' promise for the transaction,\n    // which is later returned for transaction.done (see idbObjectHandler).\n    if (value instanceof IDBTransaction)\n        cacheDonePromiseForTransaction(value);\n    if (instanceOfAny(value, getIdbProxyableTypes()))\n        return new Proxy(value, idbProxyTraps);\n    // Return the same value back if we're not going to transform it.\n    return value;\n}\nfunction wrap(value) {\n    // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n    // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n    if (value instanceof IDBRequest)\n        return promisifyRequest(value);\n    // If we've already transformed this value before, reuse the transformed value.\n    // This is faster, but it also provides object equality.\n    if (transformCache.has(value))\n        return transformCache.get(value);\n    const newValue = transformCachableValue(value);\n    // Not all types are transformed.\n    // These may be primitive types, so they can't be WeakMap keys.\n    if (newValue !== value) {\n        transformCache.set(value, newValue);\n        reverseTransformCache.set(newValue, value);\n    }\n    return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n    const request = indexedDB.open(name, version);\n    const openPromise = wrap(request);\n    if (upgrade) {\n        request.addEventListener('upgradeneeded', (event) => {\n            upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n        });\n    }\n    if (blocked) {\n        request.addEventListener('blocked', (event) => blocked(\n        // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n        event.oldVersion, event.newVersion, event));\n    }\n    openPromise\n        .then((db) => {\n        if (terminated)\n            db.addEventListener('close', () => terminated());\n        if (blocking) {\n            db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n        }\n    })\n        .catch(() => { });\n    return openPromise;\n}\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n    if (!(target instanceof IDBDatabase &&\n        !(prop in target) &&\n        typeof prop === 'string')) {\n        return;\n    }\n    if (cachedMethods.get(prop))\n        return cachedMethods.get(prop);\n    const targetFuncName = prop.replace(/FromIndex$/, '');\n    const useIndex = prop !== targetFuncName;\n    const isWrite = writeMethods.includes(targetFuncName);\n    if (\n    // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n    !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n        !(isWrite || readMethods.includes(targetFuncName))) {\n        return;\n    }\n    const method = async function (storeName, ...args) {\n        // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n        const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n        let target = tx.store;\n        if (useIndex)\n            target = target.index(args.shift());\n        // Must reject if op rejects.\n        // If it's a write operation, must reject if tx.done rejects.\n        // Must reject with op rejection first.\n        // Must resolve with op value.\n        // Must handle both promises (no unhandled rejections)\n        return (await Promise.all([\n            target[targetFuncName](...args),\n            isWrite && tx.done,\n        ]))[0];\n    };\n    cachedMethods.set(prop, method);\n    return method;\n}\nreplaceTraps((oldTraps) => (Object.assign(Object.assign({}, oldTraps), { get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver), has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop) })));\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass PlatformLoggerServiceImpl {\n    constructor(container) {\n        this.container = container;\n    }\n    // In initial implementation, this will be called by installations on\n    // auth token refresh, and installations will send this string.\n    getPlatformInfoString() {\n        const providers = this.container.getProviders();\n        // Loop through providers and get library/version pairs from any that are\n        // version components.\n        return providers\n            .map(provider => {\n            if (isVersionServiceProvider(provider)) {\n                const service = provider.getImmediate();\n                return `${service.library}/${service.version}`;\n            }\n            else {\n                return null;\n            }\n        })\n            .filter(logString => logString)\n            .join(' ');\n    }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider) {\n    const component = provider.getComponent();\n    return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\n}\nconst name$q = \"https://www.gstatic.com/firebasejs/11.6.0/firebase-app.js\";\nconst version$1 = \"0.11.4\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst logger = new Logger('https://www.gstatic.com/firebasejs/11.6.0/firebase-app.js');\nconst name$p = \"@firebase/app-compat\";\nconst name$o = \"@firebase/analytics-compat\";\nconst name$n = \"@firebase/analytics\";\nconst name$m = \"@firebase/app-check-compat\";\nconst name$l = \"@firebase/app-check\";\nconst name$k = \"@firebase/auth\";\nconst name$j = \"@firebase/auth-compat\";\nconst name$i = \"@firebase/database\";\nconst name$h = \"@firebase/data-connect\";\nconst name$g = \"@firebase/database-compat\";\nconst name$f = \"@firebase/functions\";\nconst name$e = \"@firebase/functions-compat\";\nconst name$d = \"@firebase/installations\";\nconst name$c = \"@firebase/installations-compat\";\nconst name$b = \"@firebase/messaging\";\nconst name$a = \"@firebase/messaging-compat\";\nconst name$9 = \"@firebase/performance\";\nconst name$8 = \"@firebase/performance-compat\";\nconst name$7 = \"@firebase/remote-config\";\nconst name$6 = \"@firebase/remote-config-compat\";\nconst name$5 = \"@firebase/storage\";\nconst name$4 = \"@firebase/storage-compat\";\nconst name$3 = \"@firebase/firestore\";\nconst name$2 = \"@firebase/vertexai\";\nconst name$1 = \"@firebase/firestore-compat\";\nconst name$r = \"firebase\";\nconst version$2 = \"11.6.0\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The default app name\n *\n * @internal\n */\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\nconst PLATFORM_LOG_STRING = {\n    [name$q]: 'fire-core',\n    [name$p]: 'fire-core-compat',\n    [name$n]: 'fire-analytics',\n    [name$o]: 'fire-analytics-compat',\n    [name$l]: 'fire-app-check',\n    [name$m]: 'fire-app-check-compat',\n    [name$k]: 'fire-auth',\n    [name$j]: 'fire-auth-compat',\n    [name$i]: 'fire-rtdb',\n    [name$h]: 'fire-data-connect',\n    [name$g]: 'fire-rtdb-compat',\n    [name$f]: 'fire-fn',\n    [name$e]: 'fire-fn-compat',\n    [name$d]: 'fire-iid',\n    [name$c]: 'fire-iid-compat',\n    [name$b]: 'fire-fcm',\n    [name$a]: 'fire-fcm-compat',\n    [name$9]: 'fire-perf',\n    [name$8]: 'fire-perf-compat',\n    [name$7]: 'fire-rc',\n    [name$6]: 'fire-rc-compat',\n    [name$5]: 'fire-gcs',\n    [name$4]: 'fire-gcs-compat',\n    [name$3]: 'fire-fst',\n    [name$1]: 'fire-fst-compat',\n    [name$2]: 'fire-vertex',\n    'fire-js': 'fire-js', // Platform identifier for JS SDK.\n    [name$r]: 'fire-js-all'\n};\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @internal\n */\nconst _apps = new Map();\n/**\n * @internal\n */\nconst _serverApps = new Map();\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _components = new Map();\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nfunction _addComponent(app, component) {\n    try {\n        app.container.addComponent(component);\n    }\n    catch (e) {\n        logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\n    }\n}\n/**\n *\n * @internal\n */\nfunction _addOrOverwriteComponent(app, component) {\n    app.container.addOrOverwriteComponent(component);\n}\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nfunction _registerComponent(component) {\n    const componentName = component.name;\n    if (_components.has(componentName)) {\n        logger.debug(`There were multiple attempts to register component ${componentName}.`);\n        return false;\n    }\n    _components.set(componentName, component);\n    // add the component to existing app instances\n    for (const app of _apps.values()) {\n        _addComponent(app, component);\n    }\n    for (const serverApp of _serverApps.values()) {\n        _addComponent(serverApp, component);\n    }\n    return true;\n}\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nfunction _getProvider(app, name) {\n    const heartbeatController = app.container\n        .getProvider('heartbeat')\n        .getImmediate({ optional: true });\n    if (heartbeatController) {\n        void heartbeatController.triggerHeartbeat();\n    }\n    return app.container.getProvider(name);\n}\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\n    _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n/**\n *\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\n *\n * @returns true if the provide object is of type FirebaseApp.\n *\n * @internal\n */\nfunction _isFirebaseApp(obj) {\n    return obj.options !== undefined;\n}\n/**\n *\n * @param obj - an object of type FirebaseApp.\n *\n * @returns true if the provided object is of type FirebaseServerAppImpl.\n *\n * @internal\n */\nfunction _isFirebaseServerApp(obj) {\n    if (obj === null || obj === undefined) {\n        return false;\n    }\n    return obj.settings !== undefined;\n}\n/**\n * Test only\n *\n * @internal\n */\nfunction _clearComponents() {\n    _components.clear();\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst ERRORS = {\n    [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\n        'call initializeApp() first',\n    [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\n    [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\n    [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\n    [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\n    [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\n    [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\n        'Firebase App instance.',\n    [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\n    [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\n    [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\n    [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\n    [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\n    [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\n    [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\n};\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass FirebaseAppImpl {\n    constructor(options, config, container) {\n        this._isDeleted = false;\n        this._options = Object.assign({}, options);\n        this._config = Object.assign({}, config);\n        this._name = config.name;\n        this._automaticDataCollectionEnabled =\n            config.automaticDataCollectionEnabled;\n        this._container = container;\n        this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\n    }\n    get automaticDataCollectionEnabled() {\n        this.checkDestroyed();\n        return this._automaticDataCollectionEnabled;\n    }\n    set automaticDataCollectionEnabled(val) {\n        this.checkDestroyed();\n        this._automaticDataCollectionEnabled = val;\n    }\n    get name() {\n        this.checkDestroyed();\n        return this._name;\n    }\n    get options() {\n        this.checkDestroyed();\n        return this._options;\n    }\n    get config() {\n        this.checkDestroyed();\n        return this._config;\n    }\n    get container() {\n        return this._container;\n    }\n    get isDeleted() {\n        return this._isDeleted;\n    }\n    set isDeleted(val) {\n        this._isDeleted = val;\n    }\n    /**\n     * This function will throw an Error if the App has already been deleted -\n     * use before performing API actions on the App.\n     */\n    checkDestroyed() {\n        if (this.isDeleted) {\n            throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\n        }\n    }\n}\n/**\n * @license\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Parse the token and check to see if the `exp` claim is in the future.\n// Reports an error to the console if the token or claim could not be parsed, or if `exp` is in\n// the past.\nfunction validateTokenTTL(base64Token, tokenName) {\n    const secondPart = base64Decode(base64Token.split('.')[1]);\n    if (secondPart === null) {\n        console.error(`FirebaseServerApp ${tokenName} is invalid: second part could not be parsed.`);\n        return;\n    }\n    const expClaim = JSON.parse(secondPart).exp;\n    if (expClaim === undefined) {\n        console.error(`FirebaseServerApp ${tokenName} is invalid: expiration claim could not be parsed`);\n        return;\n    }\n    const exp = JSON.parse(secondPart).exp * 1000;\n    const now = new Date().getTime();\n    const diff = exp - now;\n    if (diff <= 0) {\n        console.error(`FirebaseServerApp ${tokenName} is invalid: the token has expired.`);\n    }\n}\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\n    constructor(options, serverConfig, name, container) {\n        // Build configuration parameters for the FirebaseAppImpl base class.\n        const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\n            ? serverConfig.automaticDataCollectionEnabled\n            : false;\n        // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\n        const config = {\n            name,\n            automaticDataCollectionEnabled\n        };\n        if (options.apiKey !== undefined) {\n            // Construct the parent FirebaseAppImp object.\n            super(options, config, container);\n        }\n        else {\n            const appImpl = options;\n            super(appImpl.options, config, container);\n        }\n        // Now construct the data for the FirebaseServerAppImpl.\n        this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\n        // Ensure that the current time is within the `authIdtoken` window of validity.\n        if (this._serverConfig.authIdToken) {\n            validateTokenTTL(this._serverConfig.authIdToken, 'authIdToken');\n        }\n        // Ensure that the current time is within the `appCheckToken` window of validity.\n        if (this._serverConfig.appCheckToken) {\n            validateTokenTTL(this._serverConfig.appCheckToken, 'appCheckToken');\n        }\n        this._finalizationRegistry = null;\n        if (typeof FinalizationRegistry !== 'undefined') {\n            this._finalizationRegistry = new FinalizationRegistry(() => {\n                this.automaticCleanup();\n            });\n        }\n        this._refCount = 0;\n        this.incRefCount(this._serverConfig.releaseOnDeref);\n        // Do not retain a hard reference to the dref object, otherwise the FinalizationRegistry\n        // will never trigger.\n        this._serverConfig.releaseOnDeref = undefined;\n        serverConfig.releaseOnDeref = undefined;\n        registerVersion(name$q, version$1, 'serverapp');\n    }\n    toJSON() {\n        return undefined;\n    }\n    get refCount() {\n        return this._refCount;\n    }\n    // Increment the reference count of this server app. If an object is provided, register it\n    // with the finalization registry.\n    incRefCount(obj) {\n        if (this.isDeleted) {\n            return;\n        }\n        this._refCount++;\n        if (obj !== undefined && this._finalizationRegistry !== null) {\n            this._finalizationRegistry.register(obj, this);\n        }\n    }\n    // Decrement the reference count.\n    decRefCount() {\n        if (this.isDeleted) {\n            return 0;\n        }\n        return --this._refCount;\n    }\n    // Invoked by the FinalizationRegistry callback to note that this app should go through its\n    // reference counts and delete itself if no reference count remain. The coordinating logic that\n    // handles this is in deleteApp(...).\n    automaticCleanup() {\n        void deleteApp(this);\n    }\n    get settings() {\n        this.checkDestroyed();\n        return this._serverConfig;\n    }\n    /**\n     * This function will throw an Error if the App has already been deleted -\n     * use before performing API actions on the App.\n     */\n    checkDestroyed() {\n        if (this.isDeleted) {\n            throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\n        }\n    }\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The current SDK version.\n *\n * @public\n */\nconst SDK_VERSION = version$2;\nfunction initializeApp(_options, rawConfig = {}) {\n    let options = _options;\n    if (typeof rawConfig !== 'object') {\n        const name = rawConfig;\n        rawConfig = { name };\n    }\n    const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\n    const name = config.name;\n    if (typeof name !== 'string' || !name) {\n        throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\n            appName: String(name)\n        });\n    }\n    options || (options = getDefaultAppConfig());\n    if (!options) {\n        throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\n    }\n    const existingApp = _apps.get(name);\n    if (existingApp) {\n        // return the existing app if options and config deep equal the ones in the existing app.\n        if (deepEqual(options, existingApp.options) &&\n            deepEqual(config, existingApp.config)) {\n            return existingApp;\n        }\n        else {\n            throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\n        }\n    }\n    const container = new ComponentContainer(name);\n    for (const component of _components.values()) {\n        container.addComponent(component);\n    }\n    const newApp = new FirebaseAppImpl(options, config, container);\n    _apps.set(name, newApp);\n    return newApp;\n}\nfunction initializeServerApp(_options, _serverAppConfig) {\n    if (isBrowser() && !isWebWorker()) {\n        // FirebaseServerApp isn't designed to be run in browsers.\n        throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\n    }\n    if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\n        _serverAppConfig.automaticDataCollectionEnabled = false;\n    }\n    let appOptions;\n    if (_isFirebaseApp(_options)) {\n        appOptions = _options.options;\n    }\n    else {\n        appOptions = _options;\n    }\n    // Build an app name based on a hash of the configuration options.\n    const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\n    // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\n    // construction of FirebaseServerApp instances. For example, if the object is the request headers.\n    if (nameObj.releaseOnDeref !== undefined) {\n        delete nameObj.releaseOnDeref;\n    }\n    const hashCode = (s) => {\n        return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\n    };\n    if (_serverAppConfig.releaseOnDeref !== undefined) {\n        if (typeof FinalizationRegistry === 'undefined') {\n            throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\n        }\n    }\n    const nameString = '' + hashCode(JSON.stringify(nameObj));\n    const existingApp = _serverApps.get(nameString);\n    if (existingApp) {\n        existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\n        return existingApp;\n    }\n    const container = new ComponentContainer(nameString);\n    for (const component of _components.values()) {\n        container.addComponent(component);\n    }\n    const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\n    _serverApps.set(nameString, newApp);\n    return newApp;\n}\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n *   provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n *   If no app name is provided, the default app is returned.\n *\n * @public\n */\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\n    const app = _apps.get(name);\n    if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\n        return initializeApp();\n    }\n    if (!app) {\n        throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\n    }\n    return app;\n}\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nfunction getApps() {\n    return Array.from(_apps.values());\n}\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n *   .then(function() {\n *     console.log(\"App deleted successfully\");\n *   })\n *   .catch(function(error) {\n *     console.log(\"Error deleting app:\", error);\n *   });\n * ```\n *\n * @public\n */\nasync function deleteApp(app) {\n    let cleanupProviders = false;\n    const name = app.name;\n    if (_apps.has(name)) {\n        cleanupProviders = true;\n        _apps.delete(name);\n    }\n    else if (_serverApps.has(name)) {\n        const firebaseServerApp = app;\n        if (firebaseServerApp.decRefCount() <= 0) {\n            _serverApps.delete(name);\n            cleanupProviders = true;\n        }\n    }\n    if (cleanupProviders) {\n        await Promise.all(app.container\n            .getProviders()\n            .map(provider => provider.delete()));\n        app.isDeleted = true;\n    }\n}\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nfunction registerVersion(libraryKeyOrName, version, variant) {\n    var _a;\n    // TODO: We can use this check to whitelist strings when/if we set up\n    // a good whitelist system.\n    let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\n    if (variant) {\n        library += `-${variant}`;\n    }\n    const libraryMismatch = library.match(/\\s|\\//);\n    const versionMismatch = version.match(/\\s|\\//);\n    if (libraryMismatch || versionMismatch) {\n        const warning = [\n            `Unable to register library \"${library}\" with version \"${version}\":`\n        ];\n        if (libraryMismatch) {\n            warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\n        }\n        if (libraryMismatch && versionMismatch) {\n            warning.push('and');\n        }\n        if (versionMismatch) {\n            warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\n        }\n        logger.warn(warning.join(' '));\n        return;\n    }\n    _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\n}\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nfunction onLog(logCallback, options) {\n    if (logCallback !== null && typeof logCallback !== 'function') {\n        throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\n    }\n    setUserLogHandler(logCallback, options);\n}\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nfunction setLogLevel(logLevel) {\n    setLogLevel$1(logLevel);\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\nlet dbPromise = null;\nfunction getDbPromise() {\n    if (!dbPromise) {\n        dbPromise = openDB(DB_NAME, DB_VERSION, {\n            upgrade: (db, oldVersion) => {\n                // We don't use 'break' in this switch statement, the fall-through\n                // behavior is what we want, because if there are multiple versions between\n                // the old version and the current version, we want ALL the migrations\n                // that correspond to those versions to run, not only the last one.\n                // eslint-disable-next-line default-case\n                switch (oldVersion) {\n                    case 0:\n                        try {\n                            db.createObjectStore(STORE_NAME);\n                        }\n                        catch (e) {\n                            // Safari/iOS browsers throw occasional exceptions on\n                            // db.createObjectStore() that may be a bug. Avoid blocking\n                            // the rest of the app functionality.\n                            console.warn(e);\n                        }\n                }\n            }\n        }).catch(e => {\n            throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\n                originalErrorMessage: e.message\n            });\n        });\n    }\n    return dbPromise;\n}\nasync function readHeartbeatsFromIndexedDB(app) {\n    try {\n        const db = await getDbPromise();\n        const tx = db.transaction(STORE_NAME);\n        const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\n        // We already have the value but tx.done can throw,\n        // so we need to await it here to catch errors\n        await tx.done;\n        return result;\n    }\n    catch (e) {\n        if (e instanceof FirebaseError) {\n            logger.warn(e.message);\n        }\n        else {\n            const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\n                originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\n            });\n            logger.warn(idbGetError.message);\n        }\n    }\n}\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\n    try {\n        const db = await getDbPromise();\n        const tx = db.transaction(STORE_NAME, 'readwrite');\n        const objectStore = tx.objectStore(STORE_NAME);\n        await objectStore.put(heartbeatObject, computeKey(app));\n        await tx.done;\n    }\n    catch (e) {\n        if (e instanceof FirebaseError) {\n            logger.warn(e.message);\n        }\n        else {\n            const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\n                originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\n            });\n            logger.warn(idbGetError.message);\n        }\n    }\n}\nfunction computeKey(app) {\n    return `${app.name}!${app.options.appId}`;\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst MAX_HEADER_BYTES = 1024;\nconst MAX_NUM_STORED_HEARTBEATS = 30;\nclass HeartbeatServiceImpl {\n    constructor(container) {\n        this.container = container;\n        /**\n         * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n         * the header string.\n         * Stores one record per date. This will be consolidated into the standard\n         * format of one record per user agent string before being sent as a header.\n         * Populated from indexedDB when the controller is instantiated and should\n         * be kept in sync with indexedDB.\n         * Leave public for easier testing.\n         */\n        this._heartbeatsCache = null;\n        const app = this.container.getProvider('app').getImmediate();\n        this._storage = new HeartbeatStorageImpl(app);\n        this._heartbeatsCachePromise = this._storage.read().then(result => {\n            this._heartbeatsCache = result;\n            return result;\n        });\n    }\n    /**\n     * Called to report a heartbeat. The function will generate\n     * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n     * to IndexedDB.\n     * Note that we only store one heartbeat per day. So if a heartbeat for today is\n     * already logged, subsequent calls to this function in the same day will be ignored.\n     */\n    async triggerHeartbeat() {\n        var _a, _b;\n        try {\n            const platformLogger = this.container\n                .getProvider('platform-logger')\n                .getImmediate();\n            // This is the \"Firebase user agent\" string from the platform logger\n            // service, not the browser user agent.\n            const agent = platformLogger.getPlatformInfoString();\n            const date = getUTCDateString();\n            if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null) {\n                this._heartbeatsCache = await this._heartbeatsCachePromise;\n                // If we failed to construct a heartbeats cache, then return immediately.\n                if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\n                    return;\n                }\n            }\n            // Do not store a heartbeat if one is already stored for this day\n            // or if a header has already been sent today.\n            if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\n                this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\n                return;\n            }\n            else {\n                // There is no entry for this date. Create one.\n                this._heartbeatsCache.heartbeats.push({ date, agent });\n                // If the number of stored heartbeats exceeds the maximum number of stored heartbeats, remove the heartbeat with the earliest date.\n                // Since this is executed each time a heartbeat is pushed, the limit can only be exceeded by one, so only one needs to be removed.\n                if (this._heartbeatsCache.heartbeats.length > MAX_NUM_STORED_HEARTBEATS) {\n                    const earliestHeartbeatIdx = getEarliestHeartbeatIdx(this._heartbeatsCache.heartbeats);\n                    this._heartbeatsCache.heartbeats.splice(earliestHeartbeatIdx, 1);\n                }\n            }\n            return this._storage.overwrite(this._heartbeatsCache);\n        }\n        catch (e) {\n            logger.warn(e);\n        }\n    }\n    /**\n     * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n     * It also clears all heartbeats from memory as well as in IndexedDB.\n     *\n     * NOTE: Consuming product SDKs should not send the header if this method\n     * returns an empty string.\n     */\n    async getHeartbeatsHeader() {\n        var _a;\n        try {\n            if (this._heartbeatsCache === null) {\n                await this._heartbeatsCachePromise;\n            }\n            // If it's still null or the array is empty, there is no data to send.\n            if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\n                this._heartbeatsCache.heartbeats.length === 0) {\n                return '';\n            }\n            const date = getUTCDateString();\n            // Extract as many heartbeats from the cache as will fit under the size limit.\n            const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\n            const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\n            // Store last sent date to prevent another being logged/sent for the same day.\n            this._heartbeatsCache.lastSentHeartbeatDate = date;\n            if (unsentEntries.length > 0) {\n                // Store any unsent entries if they exist.\n                this._heartbeatsCache.heartbeats = unsentEntries;\n                // This seems more likely than emptying the array (below) to lead to some odd state\n                // since the cache isn't empty and this will be called again on the next request,\n                // and is probably safest if we await it.\n                await this._storage.overwrite(this._heartbeatsCache);\n            }\n            else {\n                this._heartbeatsCache.heartbeats = [];\n                // Do not wait for this, to reduce latency.\n                void this._storage.overwrite(this._heartbeatsCache);\n            }\n            return headerString;\n        }\n        catch (e) {\n            logger.warn(e);\n            return '';\n        }\n    }\n}\nfunction getUTCDateString() {\n    const today = new Date();\n    // Returns date format 'YYYY-MM-DD'\n    return today.toISOString().substring(0, 10);\n}\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\n    // Heartbeats grouped by user agent in the standard format to be sent in\n    // the header.\n    const heartbeatsToSend = [];\n    // Single date format heartbeats that are not sent.\n    let unsentEntries = heartbeatsCache.slice();\n    for (const singleDateHeartbeat of heartbeatsCache) {\n        // Look for an existing entry with the same user agent.\n        const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\n        if (!heartbeatEntry) {\n            // If no entry for this user agent exists, create one.\n            heartbeatsToSend.push({\n                agent: singleDateHeartbeat.agent,\n                dates: [singleDateHeartbeat.date]\n            });\n            if (countBytes(heartbeatsToSend) > maxSize) {\n                // If the header would exceed max size, remove the added heartbeat\n                // entry and stop adding to the header.\n                heartbeatsToSend.pop();\n                break;\n            }\n        }\n        else {\n            heartbeatEntry.dates.push(singleDateHeartbeat.date);\n            // If the header would exceed max size, remove the added date\n            // and stop adding to the header.\n            if (countBytes(heartbeatsToSend) > maxSize) {\n                heartbeatEntry.dates.pop();\n                break;\n            }\n        }\n        // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n        // quota and the loop breaks early.)\n        unsentEntries = unsentEntries.slice(1);\n    }\n    return {\n        heartbeatsToSend,\n        unsentEntries\n    };\n}\nclass HeartbeatStorageImpl {\n    constructor(app) {\n        this.app = app;\n        this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n    }\n    async runIndexedDBEnvironmentCheck() {\n        if (!isIndexedDBAvailable()) {\n            return false;\n        }\n        else {\n            return validateIndexedDBOpenable()\n                .then(() => true)\n                .catch(() => false);\n        }\n    }\n    /**\n     * Read all heartbeats.\n     */\n    async read() {\n        const canUseIndexedDB = await this._canUseIndexedDBPromise;\n        if (!canUseIndexedDB) {\n            return { heartbeats: [] };\n        }\n        else {\n            const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n            if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\n                return idbHeartbeatObject;\n            }\n            else {\n                return { heartbeats: [] };\n            }\n        }\n    }\n    // overwrite the storage with the provided heartbeats\n    async overwrite(heartbeatsObject) {\n        var _a;\n        const canUseIndexedDB = await this._canUseIndexedDBPromise;\n        if (!canUseIndexedDB) {\n            return;\n        }\n        else {\n            const existingHeartbeatsObject = await this.read();\n            return writeHeartbeatsToIndexedDB(this.app, {\n                lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\n                heartbeats: heartbeatsObject.heartbeats\n            });\n        }\n    }\n    // add heartbeats\n    async add(heartbeatsObject) {\n        var _a;\n        const canUseIndexedDB = await this._canUseIndexedDBPromise;\n        if (!canUseIndexedDB) {\n            return;\n        }\n        else {\n            const existingHeartbeatsObject = await this.read();\n            return writeHeartbeatsToIndexedDB(this.app, {\n                lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\n                heartbeats: [\n                    ...existingHeartbeatsObject.heartbeats,\n                    ...heartbeatsObject.heartbeats\n                ]\n            });\n        }\n    }\n}\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nfunction countBytes(heartbeatsCache) {\n    // base64 has a restricted set of characters, all of which should be 1 byte.\n    return base64urlEncodeWithoutPadding(\n    // heartbeatsCache wrapper properties\n    JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\n}\n/**\n * Returns the index of the heartbeat with the earliest date.\n * If the heartbeats array is empty, -1 is returned.\n */\nfunction getEarliestHeartbeatIdx(heartbeats) {\n    if (heartbeats.length === 0) {\n        return -1;\n    }\n    let earliestHeartbeatIdx = 0;\n    let earliestHeartbeatDate = heartbeats[0].date;\n    for (let i = 1; i < heartbeats.length; i++) {\n        if (heartbeats[i].date < earliestHeartbeatDate) {\n            earliestHeartbeatDate = heartbeats[i].date;\n            earliestHeartbeatIdx = i;\n        }\n    }\n    return earliestHeartbeatIdx;\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction registerCoreComponents(variant) {\n    _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\n    _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\n    // Register `app` package.\n    registerVersion(name$q, version$1, variant);\n    // BUILD_TARGET will be replaced by values like esm2017, cjs2017, etc during the compilation\n    registerVersion(name$q, version$1, 'esm2017');\n    // Register platform SDK identifier (no version).\n    registerVersion('fire-js', '');\n}\n/**\n * Firebase App\n *\n * @remarks This package coordinates the communication between the different Firebase components\n * @packageDocumentation\n */\nregisterCoreComponents('');\n\nvar name = \"firebase\";\nvar version = \"11.6.0\";\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nregisterVersion(name, version, 'cdn');\n\nexport { FirebaseError, SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n\n//# sourceMappingURL=firebase-app.js.map\n","import{_getProvider,_isFirebaseServerApp as e,_registerComponent as t,registerVersion as r,getApp as n,SDK_VERSION as i}from\"https://www.gstatic.com/firebasejs/11.6.0/firebase-app.js\";const s={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+\"+/=\"},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+\"-_.\"},HAS_NATIVE_SUPPORT:\"function\"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error(\"encodeByteArray takes an array as a parameter\");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){const i=e[t],s=t+1<e.length,o=s?e[t+1]:0,a=t+2<e.length,c=a?e[t+2]:0,u=i>>2,d=(3&i)<<4|o>>4;let l=(15&o)<<2|c>>6,h=63&c;a||(h=64,s||(l=64)),n.push(r[u],r[d],r[l],r[h])}return n.join(\"\")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(e){const t=[];let r=0;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=63&i|128):55296==(64512&i)&&n+1<e.length&&56320==(64512&e.charCodeAt(n+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=63&i|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=63&i|128)}return t}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r<e.length;){const i=e[r++];if(i<128)t[n++]=String.fromCharCode(i);else if(i>191&&i<224){const s=e[r++];t[n++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){const s=((7&i)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(s>>10)),t[n++]=String.fromCharCode(56320+(1023&s))}else{const s=e[r++],o=e[r++];t[n++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&o)}}return t.join(\"\")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){const i=r[e.charAt(t++)],s=t<e.length?r[e.charAt(t)]:0;++t;const o=t<e.length?r[e.charAt(t)]:64;++t;const a=t<e.length?r[e.charAt(t)]:64;if(++t,null==i||null==s||null==o||null==a)throw new DecodeBase64StringError;const c=i<<2|s>>4;if(n.push(c),64!==o){const e=s<<4&240|o>>2;if(n.push(e),64!==a){const e=o<<6&192|a;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name=\"DecodeBase64StringError\"}}const base64Decode=function(e){try{return s.decodeString(e,!0)}catch(e){console.error(\"base64Decode failed: \",e)}return null};const getDefaultsFromGlobal=()=>function getGlobal(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"Unable to locate global object.\")}().__FIREBASE_DEFAULTS__,getDefaults=()=>{try{return getDefaultsFromGlobal()||(()=>{if(\"undefined\"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if(\"undefined\"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&base64Decode(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},getExperimentalSetting=e=>{var t;return null===(t=getDefaults())||void 0===t?void 0:t[`_${e}`]};function getUA(){return\"undefined\"!=typeof navigator&&\"string\"==typeof navigator.userAgent?navigator.userAgent:\"\"}class FirebaseError extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=\"FirebaseError\",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,i=this.errors[e],s=i?function replaceTemplate(e,t){return e.replace(o,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(i,r):\"Error\",a=`${this.serviceName}: ${s} (${n}).`;return new FirebaseError(n,a,r)}}const o=/\\{\\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const i of r){if(!n.includes(i))return!1;const r=e[i],s=t[i];if(isObject(r)&&isObject(s)){if(!deepEqual(r,s))return!1}else if(r!==s)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function isObject(e){return null!==e&&\"object\"==typeof e}function querystring(e){const t=[];for(const[r,n]of Object.entries(e))Array.isArray(n)?n.forEach((e=>{t.push(encodeURIComponent(r)+\"=\"+encodeURIComponent(e))})):t.push(encodeURIComponent(r)+\"=\"+encodeURIComponent(n));return t.length?\"&\"+t.join(\"&\"):\"\"}function querystringDecode(e){const t={};return e.replace(/^\\?/,\"\").split(\"&\").forEach((e=>{if(e){const[r,n]=e.split(\"=\");t[decodeURIComponent(r)]=decodeURIComponent(n)}})),t}function extractQuerystring(e){const t=e.indexOf(\"?\");if(!t)return\"\";const r=e.indexOf(\"#\",t);return e.substring(t,r>0?r:void 0)}class ObserverProxy{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error(\"Missing Observer.\");n=function implementsAnyMethods(e,t){if(\"object\"!=typeof e||null===e)return!1;for(const r of t)if(r in e&&\"function\"==typeof e[r])return!0;return!1}(e,[\"next\",\"error\",\"complete\"])?e:{next:e,error:t,complete:r},void 0===n.next&&(n.next=noop),void 0===n.error&&(n.error=noop),void 0===n.complete&&(n.complete=noop);const i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}})),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){\"undefined\"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function noop(){}function getModularInstance(e){return e&&e._delegate?e._delegate:e}var a;!function(e){e[e.DEBUG=0]=\"DEBUG\",e[e.VERBOSE=1]=\"VERBOSE\",e[e.INFO=2]=\"INFO\",e[e.WARN=3]=\"WARN\",e[e.ERROR=4]=\"ERROR\",e[e.SILENT=5]=\"SILENT\"}(a||(a={}));const c={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},u=a.INFO,d={[a.DEBUG]:\"log\",[a.VERBOSE]:\"log\",[a.INFO]:\"info\",[a.WARN]:\"warn\",[a.ERROR]:\"error\"},defaultLogHandler=(e,t,...r)=>{if(t<e.logLevel)return;const n=(new Date).toISOString(),i=d[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}]  ${e.name}:`,...r)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r}\"function\"==typeof SuppressedError&&SuppressedError;class Component{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode=\"LAZY\",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const l={PHONE:\"phone\",TOTP:\"totp\"},h={FACEBOOK:\"facebook.com\",GITHUB:\"github.com\",GOOGLE:\"google.com\",PASSWORD:\"password\",PHONE:\"phone\",TWITTER:\"twitter.com\"},p={EMAIL_LINK:\"emailLink\",EMAIL_PASSWORD:\"password\",FACEBOOK:\"facebook.com\",GITHUB:\"github.com\",GOOGLE:\"google.com\",PHONE:\"phone\",TWITTER:\"twitter.com\"},f={LINK:\"link\",REAUTHENTICATE:\"reauthenticate\",SIGN_IN:\"signIn\"},m={EMAIL_SIGNIN:\"EMAIL_SIGNIN\",PASSWORD_RESET:\"PASSWORD_RESET\",RECOVER_EMAIL:\"RECOVER_EMAIL\",REVERT_SECOND_FACTOR_ADDITION:\"REVERT_SECOND_FACTOR_ADDITION\",VERIFY_AND_CHANGE_EMAIL:\"VERIFY_AND_CHANGE_EMAIL\",VERIFY_EMAIL:\"VERIFY_EMAIL\"};function _prodErrorMap(){return{\"dependent-sdk-initialized-before-auth\":\"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.\"}}const g=function _debugErrorMap(){return{\"admin-restricted-operation\":\"This operation is restricted to administrators only.\",\"argument-error\":\"\",\"app-not-authorized\":\"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.\",\"app-not-installed\":\"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.\",\"captcha-check-failed\":\"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.\",\"code-expired\":\"The SMS code has expired. Please re-send the verification code to try again.\",\"cordova-not-ready\":\"Cordova framework is not ready.\",\"cors-unsupported\":\"This browser is not supported.\",\"credential-already-in-use\":\"This credential is already associated with a different user account.\",\"custom-token-mismatch\":\"The custom token corresponds to a different audience.\",\"requires-recent-login\":\"This operation is sensitive and requires recent authentication. Log in again before retrying this request.\",\"dependent-sdk-initialized-before-auth\":\"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.\",\"dynamic-link-not-activated\":\"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.\",\"email-change-needs-verification\":\"Multi-factor users must always have a verified email.\",\"email-already-in-use\":\"The email address is already in use by another account.\",\"emulator-config-failed\":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling \"connectAuthEmulator()\" sooner.',\"expired-action-code\":\"The action code has expired.\",\"cancelled-popup-request\":\"This operation has been cancelled due to another conflicting popup being opened.\",\"internal-error\":\"An internal AuthError has occurred.\",\"invalid-app-credential\":\"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.\",\"invalid-app-id\":\"The mobile app identifier is not registered for the current project.\",\"invalid-user-token\":\"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.\",\"invalid-auth-event\":\"An internal AuthError has occurred.\",\"invalid-verification-code\":\"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.\",\"invalid-continue-uri\":\"The continue URL provided in the request is invalid.\",\"invalid-cordova-configuration\":\"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.\",\"invalid-custom-token\":\"The custom token format is incorrect. Please check the documentation.\",\"invalid-dynamic-link-domain\":\"The provided dynamic link domain is not configured or authorized for the current project.\",\"invalid-email\":\"The email address is badly formatted.\",\"invalid-emulator-scheme\":\"Emulator URL must start with a valid scheme (http:// or https://).\",\"invalid-api-key\":\"Your API key is invalid, please check you have copied it correctly.\",\"invalid-cert-hash\":\"The SHA-1 certificate hash provided is invalid.\",\"invalid-credential\":\"The supplied auth credential is incorrect, malformed or has expired.\",\"invalid-message-payload\":\"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.\",\"invalid-multi-factor-session\":\"The request does not contain a valid proof of first factor successful sign-in.\",\"invalid-oauth-provider\":\"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.\",\"invalid-oauth-client-id\":\"The OAuth client ID provided is either invalid or does not match the specified API key.\",\"unauthorized-domain\":\"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.\",\"invalid-action-code\":\"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.\",\"wrong-password\":\"The password is invalid or the user does not have a password.\",\"invalid-persistence-type\":\"The specified persistence type is invalid. It can only be local, session or none.\",\"invalid-phone-number\":\"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].\",\"invalid-provider-id\":\"The specified provider ID is invalid.\",\"invalid-recipient-email\":\"The email corresponding to this action failed to send as the provided recipient email address is invalid.\",\"invalid-sender\":\"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.\",\"invalid-verification-id\":\"The verification ID used to create the phone auth credential is invalid.\",\"invalid-tenant-id\":\"The Auth instance's tenant ID is invalid.\",\"login-blocked\":\"Login blocked by user-provided method: {$originalMessage}\",\"missing-android-pkg-name\":\"An Android Package Name must be provided if the Android App is required to be installed.\",\"auth-domain-config-required\":\"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.\",\"missing-app-credential\":\"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.\",\"missing-verification-code\":\"The phone auth credential was created with an empty SMS verification code.\",\"missing-continue-uri\":\"A continue URL must be provided in the request.\",\"missing-iframe-start\":\"An internal AuthError has occurred.\",\"missing-ios-bundle-id\":\"An iOS Bundle ID must be provided if an App Store ID is provided.\",\"missing-or-invalid-nonce\":\"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.\",\"missing-password\":\"A non-empty password must be provided\",\"missing-multi-factor-info\":\"No second factor identifier is provided.\",\"missing-multi-factor-session\":\"The request is missing proof of first factor successful sign-in.\",\"missing-phone-number\":\"To send verification codes, provide a phone number for the recipient.\",\"missing-verification-id\":\"The phone auth credential was created with an empty verification ID.\",\"app-deleted\":\"This instance of FirebaseApp has been deleted.\",\"multi-factor-info-not-found\":\"The user does not have a second factor matching the identifier provided.\",\"multi-factor-auth-required\":\"Proof of ownership of a second factor is required to complete sign-in.\",\"account-exists-with-different-credential\":\"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.\",\"network-request-failed\":\"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.\",\"no-auth-event\":\"An internal AuthError has occurred.\",\"no-such-provider\":\"User was not linked to an account with the given provider.\",\"null-user\":\"A null user object was provided as the argument for an operation which requires a non-null user object.\",\"operation-not-allowed\":\"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.\",\"operation-not-supported-in-this-environment\":'This operation is not supported in the environment this application is running on. \"location.protocol\" must be http, https or chrome-extension and web storage must be enabled.',\"popup-blocked\":\"Unable to establish a connection with the popup. It may have been blocked by the browser.\",\"popup-closed-by-user\":\"The popup has been closed by the user before finalizing the operation.\",\"provider-already-linked\":\"User can only be linked to one identity for the given provider.\",\"quota-exceeded\":\"The project's quota for this operation has been exceeded.\",\"redirect-cancelled-by-user\":\"The redirect operation has been cancelled by the user before finalizing.\",\"redirect-operation-pending\":\"A redirect sign-in operation is already pending.\",\"rejected-credential\":\"The request contains malformed or mismatching credentials.\",\"second-factor-already-in-use\":\"The second factor is already enrolled on this account.\",\"maximum-second-factor-count-exceeded\":\"The maximum allowed number of second factors on a user has been exceeded.\",\"tenant-id-mismatch\":\"The provided tenant ID does not match the Auth instance's tenant ID\",timeout:\"The operation has timed out.\",\"user-token-expired\":\"The user's credential is no longer valid. The user must sign in again.\",\"too-many-requests\":\"We have blocked all requests from this device due to unusual activity. Try again later.\",\"unauthorized-continue-uri\":\"The domain of the continue URL is not whitelisted.  Please whitelist the domain in the Firebase console.\",\"unsupported-first-factor\":\"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.\",\"unsupported-persistence-type\":\"The current environment does not support the specified persistence type.\",\"unsupported-tenant-operation\":\"This operation is not supported in a multi-tenant context.\",\"unverified-email\":\"The operation requires a verified email.\",\"user-cancelled\":\"The user did not grant your application the permissions it requested.\",\"user-not-found\":\"There is no user record corresponding to this identifier. The user may have been deleted.\",\"user-disabled\":\"The user account has been disabled by an administrator.\",\"user-mismatch\":\"The supplied credentials do not correspond to the previously signed in user.\",\"user-signed-out\":\"\",\"weak-password\":\"The password must be 6 characters long or more.\",\"web-storage-unsupported\":\"This browser is not supported or 3rd party cookies and data may be disabled.\",\"already-initialized\":\"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.\",\"missing-recaptcha-token\":\"The reCAPTCHA token is missing when sending request to the backend.\",\"invalid-recaptcha-token\":\"The reCAPTCHA token is invalid when sending request to the backend.\",\"invalid-recaptcha-action\":\"The reCAPTCHA action is invalid when sending request to the backend.\",\"recaptcha-not-enabled\":\"reCAPTCHA Enterprise integration is not enabled for this project.\",\"missing-client-type\":\"The reCAPTCHA client type is missing when sending request to the backend.\",\"missing-recaptcha-version\":\"The reCAPTCHA version is missing when sending request to the backend.\",\"invalid-req-type\":\"Invalid request parameters.\",\"invalid-recaptcha-version\":\"The reCAPTCHA version is invalid when sending request to the backend.\",\"unsupported-password-policy-schema-version\":\"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.\",\"password-does-not-meet-requirements\":\"The password does not meet the requirements.\",\"invalid-hosting-link-domain\":\"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`).\"}},_=_prodErrorMap,I=new ErrorFactory(\"auth\",\"Firebase\",{\"dependent-sdk-initialized-before-auth\":\"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.\"}),v={ADMIN_ONLY_OPERATION:\"auth/admin-restricted-operation\",ARGUMENT_ERROR:\"auth/argument-error\",APP_NOT_AUTHORIZED:\"auth/app-not-authorized\",APP_NOT_INSTALLED:\"auth/app-not-installed\",CAPTCHA_CHECK_FAILED:\"auth/captcha-check-failed\",CODE_EXPIRED:\"auth/code-expired\",CORDOVA_NOT_READY:\"auth/cordova-not-ready\",CORS_UNSUPPORTED:\"auth/cors-unsupported\",CREDENTIAL_ALREADY_IN_USE:\"auth/credential-already-in-use\",CREDENTIAL_MISMATCH:\"auth/custom-token-mismatch\",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:\"auth/requires-recent-login\",DEPENDENT_SDK_INIT_BEFORE_AUTH:\"auth/dependent-sdk-initialized-before-auth\",DYNAMIC_LINK_NOT_ACTIVATED:\"auth/dynamic-link-not-activated\",EMAIL_CHANGE_NEEDS_VERIFICATION:\"auth/email-change-needs-verification\",EMAIL_EXISTS:\"auth/email-already-in-use\",EMULATOR_CONFIG_FAILED:\"auth/emulator-config-failed\",EXPIRED_OOB_CODE:\"auth/expired-action-code\",EXPIRED_POPUP_REQUEST:\"auth/cancelled-popup-request\",INTERNAL_ERROR:\"auth/internal-error\",INVALID_API_KEY:\"auth/invalid-api-key\",INVALID_APP_CREDENTIAL:\"auth/invalid-app-credential\",INVALID_APP_ID:\"auth/invalid-app-id\",INVALID_AUTH:\"auth/invalid-user-token\",INVALID_AUTH_EVENT:\"auth/invalid-auth-event\",INVALID_CERT_HASH:\"auth/invalid-cert-hash\",INVALID_CODE:\"auth/invalid-verification-code\",INVALID_CONTINUE_URI:\"auth/invalid-continue-uri\",INVALID_CORDOVA_CONFIGURATION:\"auth/invalid-cordova-configuration\",INVALID_CUSTOM_TOKEN:\"auth/invalid-custom-token\",INVALID_DYNAMIC_LINK_DOMAIN:\"auth/invalid-dynamic-link-domain\",INVALID_EMAIL:\"auth/invalid-email\",INVALID_EMULATOR_SCHEME:\"auth/invalid-emulator-scheme\",INVALID_IDP_RESPONSE:\"auth/invalid-credential\",INVALID_LOGIN_CREDENTIALS:\"auth/invalid-credential\",INVALID_MESSAGE_PAYLOAD:\"auth/invalid-message-payload\",INVALID_MFA_SESSION:\"auth/invalid-multi-factor-session\",INVALID_OAUTH_CLIENT_ID:\"auth/invalid-oauth-client-id\",INVALID_OAUTH_PROVIDER:\"auth/invalid-oauth-provider\",INVALID_OOB_CODE:\"auth/invalid-action-code\",INVALID_ORIGIN:\"auth/unauthorized-domain\",INVALID_PASSWORD:\"auth/wrong-password\",INVALID_PERSISTENCE:\"auth/invalid-persistence-type\",INVALID_PHONE_NUMBER:\"auth/invalid-phone-number\",INVALID_PROVIDER_ID:\"auth/invalid-provider-id\",INVALID_RECIPIENT_EMAIL:\"auth/invalid-recipient-email\",INVALID_SENDER:\"auth/invalid-sender\",INVALID_SESSION_INFO:\"auth/invalid-verification-id\",INVALID_TENANT_ID:\"auth/invalid-tenant-id\",MFA_INFO_NOT_FOUND:\"auth/multi-factor-info-not-found\",MFA_REQUIRED:\"auth/multi-factor-auth-required\",MISSING_ANDROID_PACKAGE_NAME:\"auth/missing-android-pkg-name\",MISSING_APP_CREDENTIAL:\"auth/missing-app-credential\",MISSING_AUTH_DOMAIN:\"auth/auth-domain-config-required\",MISSING_CODE:\"auth/missing-verification-code\",MISSING_CONTINUE_URI:\"auth/missing-continue-uri\",MISSING_IFRAME_START:\"auth/missing-iframe-start\",MISSING_IOS_BUNDLE_ID:\"auth/missing-ios-bundle-id\",MISSING_OR_INVALID_NONCE:\"auth/missing-or-invalid-nonce\",MISSING_MFA_INFO:\"auth/missing-multi-factor-info\",MISSING_MFA_SESSION:\"auth/missing-multi-factor-session\",MISSING_PHONE_NUMBER:\"auth/missing-phone-number\",MISSING_SESSION_INFO:\"auth/missing-verification-id\",MODULE_DESTROYED:\"auth/app-deleted\",NEED_CONFIRMATION:\"auth/account-exists-with-different-credential\",NETWORK_REQUEST_FAILED:\"auth/network-request-failed\",NULL_USER:\"auth/null-user\",NO_AUTH_EVENT:\"auth/no-auth-event\",NO_SUCH_PROVIDER:\"auth/no-such-provider\",OPERATION_NOT_ALLOWED:\"auth/operation-not-allowed\",OPERATION_NOT_SUPPORTED:\"auth/operation-not-supported-in-this-environment\",POPUP_BLOCKED:\"auth/popup-blocked\",POPUP_CLOSED_BY_USER:\"auth/popup-closed-by-user\",PROVIDER_ALREADY_LINKED:\"auth/provider-already-linked\",QUOTA_EXCEEDED:\"auth/quota-exceeded\",REDIRECT_CANCELLED_BY_USER:\"auth/redirect-cancelled-by-user\",REDIRECT_OPERATION_PENDING:\"auth/redirect-operation-pending\",REJECTED_CREDENTIAL:\"auth/rejected-credential\",SECOND_FACTOR_ALREADY_ENROLLED:\"auth/second-factor-already-in-use\",SECOND_FACTOR_LIMIT_EXCEEDED:\"auth/maximum-second-factor-count-exceeded\",TENANT_ID_MISMATCH:\"auth/tenant-id-mismatch\",TIMEOUT:\"auth/timeout\",TOKEN_EXPIRED:\"auth/user-token-expired\",TOO_MANY_ATTEMPTS_TRY_LATER:\"auth/too-many-requests\",UNAUTHORIZED_DOMAIN:\"auth/unauthorized-continue-uri\",UNSUPPORTED_FIRST_FACTOR:\"auth/unsupported-first-factor\",UNSUPPORTED_PERSISTENCE:\"auth/unsupported-persistence-type\",UNSUPPORTED_TENANT_OPERATION:\"auth/unsupported-tenant-operation\",UNVERIFIED_EMAIL:\"auth/unverified-email\",USER_CANCELLED:\"auth/user-cancelled\",USER_DELETED:\"auth/user-not-found\",USER_DISABLED:\"auth/user-disabled\",USER_MISMATCH:\"auth/user-mismatch\",USER_SIGNED_OUT:\"auth/user-signed-out\",WEAK_PASSWORD:\"auth/weak-password\",WEB_STORAGE_UNSUPPORTED:\"auth/web-storage-unsupported\",ALREADY_INITIALIZED:\"auth/already-initialized\",RECAPTCHA_NOT_ENABLED:\"auth/recaptcha-not-enabled\",MISSING_RECAPTCHA_TOKEN:\"auth/missing-recaptcha-token\",INVALID_RECAPTCHA_TOKEN:\"auth/invalid-recaptcha-token\",INVALID_RECAPTCHA_ACTION:\"auth/invalid-recaptcha-action\",MISSING_CLIENT_TYPE:\"auth/missing-client-type\",MISSING_RECAPTCHA_VERSION:\"auth/missing-recaptcha-version\",INVALID_RECAPTCHA_VERSION:\"auth/invalid-recaptcha-version\",INVALID_REQ_TYPE:\"auth/invalid-req-type\",INVALID_HOSTING_LINK_DOMAIN:\"auth/invalid-hosting-link-domain\"},E=new class Logger{constructor(e){this.name=e,this._logLevel=u,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw new TypeError(`Invalid value \"${e}\" assigned to \\`logLevel\\``);this._logLevel=e}setLogLevel(e){this._logLevel=\"string\"==typeof e?c[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(\"function\"!=typeof e)throw new TypeError(\"Value assigned to `logHandler` must be a function\");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}(\"@firebase/auth\");function _logError(e,...t){E.logLevel<=a.ERROR&&E.error(`Auth (${i}): ${e}`,...t)}function _fail(e,...t){throw createErrorInternal(e,...t)}function _createError(e,...t){return createErrorInternal(e,...t)}function _errorWithCustomMessage(e,t,r){const n=Object.assign(Object.assign({},_()),{[t]:r});return new ErrorFactory(\"auth\",\"Firebase\",n).create(t,{appName:e.name})}function _serverAppCurrentUserOperationNotSupportedError(e){return _errorWithCustomMessage(e,\"operation-not-supported-in-this-environment\",\"Operations that alter the current user are not supported in conjunction with FirebaseServerApp\")}function _assertInstanceOf(e,t,r){if(!(t instanceof r))throw r.name!==t.constructor.name&&_fail(e,\"argument-error\"),_errorWithCustomMessage(e,\"argument-error\",`Type of ${t.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function createErrorInternal(e,...t){if(\"string\"!=typeof e){const r=t[0],n=[...t.slice(1)];return n[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)}return I.create(e,...t)}function _assert(e,t,...r){if(!e)throw createErrorInternal(t,...r)}function debugFail(e){const t=\"INTERNAL ASSERTION FAILED: \"+e;throw _logError(t),new Error(t)}function debugAssert(e,t){e||debugFail(t)}function _getCurrentUrl(){var e;return\"undefined\"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||\"\"}function _isHttpOrHttps(){return\"http:\"===_getCurrentScheme()||\"https:\"===_getCurrentScheme()}function _getCurrentScheme(){var e;return\"undefined\"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function _isOnline(){return!(\"undefined\"!=typeof navigator&&navigator&&\"onLine\"in navigator&&\"boolean\"==typeof navigator.onLine&&(_isHttpOrHttps()||function isBrowserExtension(){const e=\"object\"==typeof chrome?chrome.runtime:\"object\"==typeof browser?browser.runtime:void 0;return\"object\"==typeof e&&void 0!==e.id}()||\"connection\"in navigator))||navigator.onLine}class Delay{constructor(e,t){this.shortDelay=e,this.longDelay=t,debugAssert(t>e,\"Short delay should be less than long delay!\"),this.isMobile=function isMobileCordova(){return\"undefined\"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())}()||function isReactNative(){return\"object\"==typeof navigator&&\"ReactNative\"===navigator.product}()}get(){return _isOnline()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function _emulatorUrl(e,t){debugAssert(e.emulator,\"Emulator should always be set here\");const{url:r}=e.emulator;return t?`${r}${t.startsWith(\"/\")?t.slice(1):t}`:r}class FetchProvider{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl?this.fetchImpl:\"undefined\"!=typeof self&&\"fetch\"in self?self.fetch:\"undefined\"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:\"undefined\"!=typeof fetch?fetch:void debugFail(\"Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill\")}static headers(){return this.headersImpl?this.headersImpl:\"undefined\"!=typeof self&&\"Headers\"in self?self.Headers:\"undefined\"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:\"undefined\"!=typeof Headers?Headers:void debugFail(\"Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill\")}static response(){return this.responseImpl?this.responseImpl:\"undefined\"!=typeof self&&\"Response\"in self?self.Response:\"undefined\"!=typeof globalThis&&globalThis.Response?globalThis.Response:\"undefined\"!=typeof Response?Response:void debugFail(\"Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill\")}}const T={CREDENTIAL_MISMATCH:\"custom-token-mismatch\",MISSING_CUSTOM_TOKEN:\"internal-error\",INVALID_IDENTIFIER:\"invalid-email\",MISSING_CONTINUE_URI:\"internal-error\",INVALID_PASSWORD:\"wrong-password\",MISSING_PASSWORD:\"missing-password\",INVALID_LOGIN_CREDENTIALS:\"invalid-credential\",EMAIL_EXISTS:\"email-already-in-use\",PASSWORD_LOGIN_DISABLED:\"operation-not-allowed\",INVALID_IDP_RESPONSE:\"invalid-credential\",INVALID_PENDING_TOKEN:\"invalid-credential\",FEDERATED_USER_ID_ALREADY_LINKED:\"credential-already-in-use\",MISSING_REQ_TYPE:\"internal-error\",EMAIL_NOT_FOUND:\"user-not-found\",RESET_PASSWORD_EXCEED_LIMIT:\"too-many-requests\",EXPIRED_OOB_CODE:\"expired-action-code\",INVALID_OOB_CODE:\"invalid-action-code\",MISSING_OOB_CODE:\"internal-error\",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:\"requires-recent-login\",INVALID_ID_TOKEN:\"invalid-user-token\",TOKEN_EXPIRED:\"user-token-expired\",USER_NOT_FOUND:\"user-token-expired\",TOO_MANY_ATTEMPTS_TRY_LATER:\"too-many-requests\",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:\"password-does-not-meet-requirements\",INVALID_CODE:\"invalid-verification-code\",INVALID_SESSION_INFO:\"invalid-verification-id\",INVALID_TEMPORARY_PROOF:\"invalid-credential\",MISSING_SESSION_INFO:\"missing-verification-id\",SESSION_EXPIRED:\"code-expired\",MISSING_ANDROID_PACKAGE_NAME:\"missing-android-pkg-name\",UNAUTHORIZED_DOMAIN:\"unauthorized-continue-uri\",INVALID_OAUTH_CLIENT_ID:\"invalid-oauth-client-id\",ADMIN_ONLY_OPERATION:\"admin-restricted-operation\",INVALID_MFA_PENDING_CREDENTIAL:\"invalid-multi-factor-session\",MFA_ENROLLMENT_NOT_FOUND:\"multi-factor-info-not-found\",MISSING_MFA_ENROLLMENT_ID:\"missing-multi-factor-info\",MISSING_MFA_PENDING_CREDENTIAL:\"missing-multi-factor-session\",SECOND_FACTOR_EXISTS:\"second-factor-already-in-use\",SECOND_FACTOR_LIMIT_EXCEEDED:\"maximum-second-factor-count-exceeded\",BLOCKING_FUNCTION_ERROR_RESPONSE:\"internal-error\",RECAPTCHA_NOT_ENABLED:\"recaptcha-not-enabled\",MISSING_RECAPTCHA_TOKEN:\"missing-recaptcha-token\",INVALID_RECAPTCHA_TOKEN:\"invalid-recaptcha-token\",INVALID_RECAPTCHA_ACTION:\"invalid-recaptcha-action\",MISSING_CLIENT_TYPE:\"missing-client-type\",MISSING_RECAPTCHA_VERSION:\"missing-recaptcha-version\",INVALID_RECAPTCHA_VERSION:\"invalid-recaptcha-version\",INVALID_REQ_TYPE:\"invalid-req-type\"},A=[\"/v1/accounts:signInWithCustomToken\",\"/v1/accounts:signInWithEmailLink\",\"/v1/accounts:signInWithIdp\",\"/v1/accounts:signInWithPassword\",\"/v1/accounts:signInWithPhoneNumber\",\"/v1/token\"],y=new Delay(3e4,6e4);function _addTidIfNecessary(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function _performApiRequest(e,t,r,n,i={}){return _performFetchWithErrorHandling(e,i,(async()=>{let i={},s={};n&&(\"GET\"===t?s=n:i={body:JSON.stringify(n)});const o=querystring(Object.assign({key:e.config.apiKey},s)).slice(1),a=await e._getAdditionalHeaders();a[\"Content-Type\"]=\"application/json\",e.languageCode&&(a[\"X-Firebase-Locale\"]=e.languageCode);const c=Object.assign({method:t,headers:a},i);return function isCloudflareWorker(){return\"undefined\"!=typeof navigator&&\"Cloudflare-Workers\"===navigator.userAgent}()||(c.referrerPolicy=\"no-referrer\"),FetchProvider.fetch()(await _getFinalTarget(e,e.config.apiHost,r,o),c)}))}async function _performFetchWithErrorHandling(e,t,r){e._canInitEmulator=!1;const n=Object.assign(Object.assign({},T),t);try{const t=new NetworkTimeout(e),i=await Promise.race([r(),t.promise]);t.clearNetworkTimeout();const s=await i.json();if(\"needConfirmation\"in s)throw _makeTaggedError(e,\"account-exists-with-different-credential\",s);if(i.ok&&!(\"errorMessage\"in s))return s;{const t=i.ok?s.errorMessage:s.error.message,[r,o]=t.split(\" : \");if(\"FEDERATED_USER_ID_ALREADY_LINKED\"===r)throw _makeTaggedError(e,\"credential-already-in-use\",s);if(\"EMAIL_EXISTS\"===r)throw _makeTaggedError(e,\"email-already-in-use\",s);if(\"USER_DISABLED\"===r)throw _makeTaggedError(e,\"user-disabled\",s);const a=n[r]||r.toLowerCase().replace(/[_\\s]+/g,\"-\");if(o)throw _errorWithCustomMessage(e,a,o);_fail(e,a)}}catch(t){if(t instanceof FirebaseError)throw t;_fail(e,\"network-request-failed\",{message:String(t)})}}async function _performSignInRequest(e,t,r,n,i={}){const s=await _performApiRequest(e,t,r,n,i);return\"mfaPendingCredential\"in s&&_fail(e,\"multi-factor-auth-required\",{_serverResponse:s}),s}async function _getFinalTarget(e,t,r,n){const i=`${t}${r}?${n}`,s=e,o=s.config.emulator?_emulatorUrl(e.config,i):`${e.config.apiScheme}://${i}`;if(A.includes(r)&&(await s._persistenceManagerAvailable,\"COOKIE\"===s._getPersistenceType())){return s._getPersistence()._getFinalTarget(o).toString()}return o}function _parseEnforcementState(e){switch(e){case\"ENFORCE\":return\"ENFORCE\";case\"AUDIT\":return\"AUDIT\";case\"OFF\":return\"OFF\";default:return\"ENFORCEMENT_STATE_UNSPECIFIED\"}}class NetworkTimeout{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(_createError(this.auth,\"network-request-failed\"))),y.get())}))}}function _makeTaggedError(e,t,r){const n={appName:e.name};r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber);const i=_createError(e,t,n);return i.customData._tokenResponse=r,i}function isV2(e){return void 0!==e&&void 0!==e.getResponse}function isEnterprise(e){return void 0!==e&&void 0!==e.enterprise}class RecaptchaConfig{constructor(e){if(this.siteKey=\"\",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error(\"recaptchaKey undefined\");this.siteKey=e.recaptchaKey.split(\"/\")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(const t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return _parseEnforcementState(t.enforcementState);return null}isProviderEnabled(e){return\"ENFORCE\"===this.getProviderEnforcementState(e)||\"AUDIT\"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled(\"EMAIL_PASSWORD_PROVIDER\")||this.isProviderEnabled(\"PHONE_PROVIDER\")}}async function getRecaptchaConfig(e,t){return _performApiRequest(e,\"GET\",\"/v2/recaptchaConfig\",_addTidIfNecessary(e,t))}async function getAccountInfo(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:lookup\",t)}function utcTimestampToDateString(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function getIdToken(e,t=!1){return getModularInstance(e).getIdToken(t)}async function getIdTokenResult(e,t=!1){const r=getModularInstance(e),n=await r.getIdToken(t),i=_parseToken(n);_assert(i&&i.exp&&i.auth_time&&i.iat,r.auth,\"internal-error\");const s=\"object\"==typeof i.firebase?i.firebase:void 0,o=null==s?void 0:s.sign_in_provider;return{claims:i,token:n,authTime:utcTimestampToDateString(secondsStringToMilliseconds(i.auth_time)),issuedAtTime:utcTimestampToDateString(secondsStringToMilliseconds(i.iat)),expirationTime:utcTimestampToDateString(secondsStringToMilliseconds(i.exp)),signInProvider:o||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}function secondsStringToMilliseconds(e){return 1e3*Number(e)}function _parseToken(e){const[t,r,n]=e.split(\".\");if(void 0===t||void 0===r||void 0===n)return _logError(\"JWT malformed, contained fewer than 3 sections\"),null;try{const e=base64Decode(r);return e?JSON.parse(e):(_logError(\"Failed to decode base64 JWT payload\"),null)}catch(e){return _logError(\"Caught error parsing JWT payload as JSON\",null==e?void 0:e.toString()),null}}function _tokenExpiresIn(e){const t=_parseToken(e);return _assert(t,\"internal-error\"),_assert(void 0!==t.exp,\"internal-error\"),_assert(void 0!==t.iat,\"internal-error\"),Number(t.exp)-Number(t.iat)}async function _logoutIfInvalidated(e,t,r=!1){if(r)return t;try{return await t}catch(t){throw t instanceof FirebaseError&&function isUserInvalidated({code:e}){return\"auth/user-disabled\"===e||\"auth/user-token-expired\"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class ProactiveRefresh{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var t;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const t=this.getInterval(e);this.timerId=setTimeout((async()=>{await this.iteration()}),t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void(\"auth/network-request-failed\"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class UserMetadata{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=utcTimestampToDateString(this.lastLoginAt),this.creationTime=utcTimestampToDateString(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function _reloadWithoutSaving(e){var t;const r=e.auth,n=await e.getIdToken(),i=await _logoutIfInvalidated(e,getAccountInfo(r,{idToken:n}));_assert(null==i?void 0:i.users.length,r,\"internal-error\");const s=i.users[0];e._notifyReloadListener(s);const o=(null===(t=s.providerUserInfo)||void 0===t?void 0:t.length)?extractProviderData(s.providerUserInfo):[],a=function mergeProviderData(e,t){return[...e.filter((e=>!t.some((t=>t.providerId===e.providerId)))),...t]}(e.providerData,o),c=e.isAnonymous,u=!(e.email&&s.passwordHash||(null==a?void 0:a.length)),d=!!c&&u,l={uid:s.localId,displayName:s.displayName||null,photoURL:s.photoUrl||null,email:s.email||null,emailVerified:s.emailVerified||!1,phoneNumber:s.phoneNumber||null,tenantId:s.tenantId||null,providerData:a,metadata:new UserMetadata(s.createdAt,s.lastLoginAt),isAnonymous:d};Object.assign(e,l)}async function reload(e){const t=getModularInstance(e);await _reloadWithoutSaving(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}function extractProviderData(e){return e.map((e=>{var{providerId:t}=e,r=__rest(e,[\"providerId\"]);return{providerId:t,uid:r.rawId||\"\",displayName:r.displayName||null,email:r.email||null,phoneNumber:r.phoneNumber||null,photoURL:r.photoUrl||null}}))}class StsTokenManager{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){_assert(e.idToken,\"internal-error\"),_assert(void 0!==e.idToken,\"internal-error\"),_assert(void 0!==e.refreshToken,\"internal-error\");const t=\"expiresIn\"in e&&void 0!==e.expiresIn?Number(e.expiresIn):_tokenExpiresIn(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){_assert(0!==e.length,\"internal-error\");const t=_tokenExpiresIn(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(_assert(this.refreshToken,e,\"user-token-expired\"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){const{accessToken:r,refreshToken:n,expiresIn:i}=await async function requestStsToken(e,t){const r=await _performFetchWithErrorHandling(e,{},(async()=>{const r=querystring({grant_type:\"refresh_token\",refresh_token:t}).slice(1),{tokenApiHost:n,apiKey:i}=e.config,s=await _getFinalTarget(e,n,\"/v1/token\",`key=${i}`),o=await e._getAdditionalHeaders();return o[\"Content-Type\"]=\"application/x-www-form-urlencoded\",FetchProvider.fetch()(s,{method:\"POST\",headers:o,body:r})}));return{accessToken:r.access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token}}(e,t);this.updateTokensAndExpiration(r,n,Number(i))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){const{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new StsTokenManager;return r&&(_assert(\"string\"==typeof r,\"internal-error\",{appName:e}),s.refreshToken=r),n&&(_assert(\"string\"==typeof n,\"internal-error\",{appName:e}),s.accessToken=n),i&&(_assert(\"number\"==typeof i,\"internal-error\",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new StsTokenManager,this.toJSON())}_performRefresh(){return debugFail(\"not implemented\")}}function assertStringOrUndefined(e,t){_assert(\"string\"==typeof e||void 0===e,\"internal-error\",{appName:t})}class UserImpl{constructor(e){var{uid:t,auth:r,stsTokenManager:n}=e,i=__rest(e,[\"uid\",\"auth\",\"stsTokenManager\"]);this.providerId=\"firebase\",this.proactiveRefresh=new ProactiveRefresh(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=r,this.stsTokenManager=n,this.accessToken=n.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new UserMetadata(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await _logoutIfInvalidated(this,this.stsTokenManager.getToken(this.auth,e));return _assert(t,this.auth,\"internal-error\"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return getIdTokenResult(this,e)}reload(){return reload(this)}_assign(e){this!==e&&(_assert(this.uid===e.uid,this.auth,\"internal-error\"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map((e=>Object.assign({},e))),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new UserImpl(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){_assert(!this.reloadListener,this.auth,\"internal-error\"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await _reloadWithoutSaving(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(e(this.auth.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(this.auth));const t=await this.getIdToken();return await _logoutIfInvalidated(this,async function deleteAccount(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:delete\",t)}(this.auth,{idToken:t})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map((e=>Object.assign({},e))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||\"\"}static _fromJSON(e,t){var r,n,i,s,o,a,c,u;const d=null!==(r=t.displayName)&&void 0!==r?r:void 0,l=null!==(n=t.email)&&void 0!==n?n:void 0,h=null!==(i=t.phoneNumber)&&void 0!==i?i:void 0,p=null!==(s=t.photoURL)&&void 0!==s?s:void 0,f=null!==(o=t.tenantId)&&void 0!==o?o:void 0,m=null!==(a=t._redirectEventId)&&void 0!==a?a:void 0,g=null!==(c=t.createdAt)&&void 0!==c?c:void 0,_=null!==(u=t.lastLoginAt)&&void 0!==u?u:void 0,{uid:I,emailVerified:v,isAnonymous:E,providerData:T,stsTokenManager:A}=t;_assert(I&&A,e,\"internal-error\");const y=StsTokenManager.fromJSON(this.name,A);_assert(\"string\"==typeof I,e,\"internal-error\"),assertStringOrUndefined(d,e.name),assertStringOrUndefined(l,e.name),_assert(\"boolean\"==typeof v,e,\"internal-error\"),_assert(\"boolean\"==typeof E,e,\"internal-error\"),assertStringOrUndefined(h,e.name),assertStringOrUndefined(p,e.name),assertStringOrUndefined(f,e.name),assertStringOrUndefined(m,e.name),assertStringOrUndefined(g,e.name),assertStringOrUndefined(_,e.name);const w=new UserImpl({uid:I,auth:e,email:l,emailVerified:v,displayName:d,isAnonymous:E,photoURL:p,phoneNumber:h,tenantId:f,stsTokenManager:y,createdAt:g,lastLoginAt:_});return T&&Array.isArray(T)&&(w.providerData=T.map((e=>Object.assign({},e)))),m&&(w._redirectEventId=m),w}static async _fromIdTokenResponse(e,t,r=!1){const n=new StsTokenManager;n.updateFromServerResponse(t);const i=new UserImpl({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r});return await _reloadWithoutSaving(i),i}static async _fromGetAccountInfoResponse(e,t,r){const n=t.users[0];_assert(void 0!==n.localId,\"internal-error\");const i=void 0!==n.providerUserInfo?extractProviderData(n.providerUserInfo):[],s=!(n.email&&n.passwordHash||(null==i?void 0:i.length)),o=new StsTokenManager;o.updateFromIdToken(r);const a=new UserImpl({uid:n.localId,auth:e,stsTokenManager:o,isAnonymous:s}),c={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new UserMetadata(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||(null==i?void 0:i.length))};return Object.assign(a,c),a}}const w=new Map;function _getInstance(e){debugAssert(e instanceof Function,\"Expected a class definition\");let t=w.get(e);return t?(debugAssert(t instanceof e,\"Instance stored in cache mismatched with class\"),t):(t=new e,w.set(e,t),t)}class InMemoryPersistence{constructor(){this.type=\"NONE\",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){const t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}InMemoryPersistence.type=\"NONE\";const S=InMemoryPersistence;function _persistenceKeyName(e,t,r){return`firebase:${e}:${t}:${r}`}class PersistenceUserManager{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;const{config:n,name:i}=this.auth;this.fullUserKey=_persistenceKeyName(this.userKey,n.apiKey,i),this.fullPersistenceKey=_persistenceKeyName(\"persistence\",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);if(!e)return null;if(\"string\"==typeof e){const t=await getAccountInfo(this.auth,{idToken:e}).catch((()=>{}));return t?UserImpl._fromGetAccountInfoResponse(this.auth,t,e):null}return UserImpl._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,r=\"authUser\"){if(!t.length)return new PersistenceUserManager(_getInstance(S),e,r);const n=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let i=n[0]||_getInstance(S);const s=_persistenceKeyName(r,e.config.apiKey,e.name);let o=null;for(const r of t)try{const t=await r._get(s);if(t){let n;if(\"string\"==typeof t){const r=await getAccountInfo(e,{idToken:t}).catch((()=>{}));if(!r)break;n=await UserImpl._fromGetAccountInfoResponse(e,r,t)}else n=UserImpl._fromJSON(e,t);r!==i&&(o=n),i=r;break}}catch(e){}const a=n.filter((e=>e._shouldAllowMigration));return i._shouldAllowMigration&&a.length?(i=a[0],o&&await i._set(s,o.toJSON()),await Promise.all(t.map((async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new PersistenceUserManager(i,e,r)):new PersistenceUserManager(i,e,r)}}function _getBrowserName(e){const t=e.toLowerCase();if(t.includes(\"opera/\")||t.includes(\"opr/\")||t.includes(\"opios/\"))return\"Opera\";if(_isIEMobile(t))return\"IEMobile\";if(t.includes(\"msie\")||t.includes(\"trident/\"))return\"IE\";if(t.includes(\"edge/\"))return\"Edge\";if(_isFirefox(t))return\"Firefox\";if(t.includes(\"silk/\"))return\"Silk\";if(_isBlackBerry(t))return\"Blackberry\";if(_isWebOS(t))return\"Webos\";if(_isSafari(t))return\"Safari\";if((t.includes(\"chrome/\")||_isChromeIOS(t))&&!t.includes(\"edge/\"))return\"Chrome\";if(_isAndroid(t))return\"Android\";{const t=/([a-zA-Z\\d\\.]+)\\/[a-zA-Z\\d\\.]*$/,r=e.match(t);if(2===(null==r?void 0:r.length))return r[1]}return\"Other\"}function _isFirefox(e=getUA()){return/firefox\\//i.test(e)}function _isSafari(e=getUA()){const t=e.toLowerCase();return t.includes(\"safari/\")&&!t.includes(\"chrome/\")&&!t.includes(\"crios/\")&&!t.includes(\"android\")}function _isChromeIOS(e=getUA()){return/crios\\//i.test(e)}function _isIEMobile(e=getUA()){return/iemobile/i.test(e)}function _isAndroid(e=getUA()){return/android/i.test(e)}function _isBlackBerry(e=getUA()){return/blackberry/i.test(e)}function _isWebOS(e=getUA()){return/webos/i.test(e)}function _isIOS(e=getUA()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function _isIE10(){return function isIE(){const e=getUA();return e.indexOf(\"MSIE \")>=0||e.indexOf(\"Trident/\")>=0}()&&10===document.documentMode}function _isMobileBrowser(e=getUA()){return _isIOS(e)||_isAndroid(e)||_isWebOS(e)||_isBlackBerry(e)||/windows phone/i.test(e)||_isIEMobile(e)}function _getClientVersion(e,t=[]){let r;switch(e){case\"Browser\":r=_getBrowserName(getUA());break;case\"Worker\":r=`${_getBrowserName(getUA())}-${e}`;break;default:r=e}const n=t.length?t.join(\",\"):\"FirebaseCore-web\";return`${r}/JsCore/${i}/${n}`}class AuthMiddlewareQueue{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){const wrappedCallback=t=>new Promise(((r,n)=>{try{r(e(t))}catch(e){n(e)}}));wrappedCallback.onAbort=t,this.queue.push(wrappedCallback);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const t=[];try{for(const r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(const e of t)try{e()}catch(e){}throw this.auth._errorFactory.create(\"login-blocked\",{originalMessage:null==e?void 0:e.message})}}}class PasswordPolicyImpl{constructor(e){var t,r,n,i;const s=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(t=s.minPasswordLength)&&void 0!==t?t:6,s.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=s.maxPasswordLength),void 0!==s.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=s.containsLowercaseCharacter),void 0!==s.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=s.containsUppercaseCharacter),void 0!==s.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=s.containsNumericCharacter),void 0!==s.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=s.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,\"ENFORCEMENT_STATE_UNSPECIFIED\"===this.enforcementState&&(this.enforcementState=\"OFF\"),this.allowedNonAlphanumericCharacters=null!==(n=null===(r=e.allowedNonAlphanumericCharacters)||void 0===r?void 0:r.join(\"\"))&&void 0!==n?n:\"\",this.forceUpgradeOnSignin=null!==(i=e.forceUpgradeOnSignin)&&void 0!==i&&i,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,r,n,i,s,o;const a={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,a),this.validatePasswordCharacterOptions(e,a),a.isValid&&(a.isValid=null===(t=a.meetsMinPasswordLength)||void 0===t||t),a.isValid&&(a.isValid=null===(r=a.meetsMaxPasswordLength)||void 0===r||r),a.isValid&&(a.isValid=null===(n=a.containsLowercaseLetter)||void 0===n||n),a.isValid&&(a.isValid=null===(i=a.containsUppercaseLetter)||void 0===i||i),a.isValid&&(a.isValid=null===(s=a.containsNumericCharacter)||void 0===s||s),a.isValid&&(a.isValid=null===(o=a.containsNonAlphanumericCharacter)||void 0===o||o),a}validatePasswordLengthOptions(e,t){const r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){let r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,r>=\"a\"&&r<=\"z\",r>=\"A\"&&r<=\"Z\",r>=\"0\"&&r<=\"9\",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=n)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=i))}}class AuthImpl{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Subscription(this),this.idTokenSubscription=new Subscription(this),this.beforeStateQueue=new AuthMiddlewareQueue(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=I,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise((e=>this._resolvePersistenceManagerAvailable=e))}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=_getInstance(t)),this._initializationPromise=this.queue((async()=>{var r,n,i;if(!this._deleted&&(this.persistenceManager=await PersistenceUserManager.create(this,e),null===(r=this._resolvePersistenceManagerAvailable)||void 0===r||r.call(this),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=(null===(i=this.currentUser)||void 0===i?void 0:i.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0):void 0}async initializeCurrentUserFromIdToken(e){try{const t=await getAccountInfo(this,{idToken:e}),r=await UserImpl._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn(\"FirebaseServerApp could not login user with provided authIdToken: \",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(t){var r;if(e(this.app)){const e=this.app.settings.authIdToken;return e?new Promise((t=>{setTimeout((()=>this.initializeCurrentUserFromIdToken(e).then(t,t)))})):this.directlySetCurrentUser(null)}const n=await this.assertedPersistence.getCurrentUser();let i=n,s=!1;if(t&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const e=null===(r=this.redirectUser)||void 0===r?void 0:r._redirectEventId,n=null==i?void 0:i._redirectEventId,o=await this.tryRedirectSignIn(t);e&&e!==n||!(null==o?void 0:o.user)||(i=o.user,s=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(s)try{await this.beforeStateQueue.runMiddleware(i)}catch(e){i=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(e)))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return _assert(this._popupRedirectResolver,this,\"argument-error\"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await _reloadWithoutSaving(e)}catch(e){if(\"auth/network-request-failed\"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function _getUserLanguage(){if(\"undefined\"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(t){if(e(this.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(this));const r=t?getModularInstance(t):null;return r&&_assert(r.auth.config.apiKey===this.config.apiKey,this,\"invalid-user-token\"),this._updateCurrentUser(r&&r._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&_assert(this.tenantId===e.tenantId,this,\"tenant-id-mismatch\"),t||await this.beforeStateQueue.runMiddleware(e),this.queue((async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()}))}async signOut(){return e(this.app)?Promise.reject(_serverAppCurrentUserOperationNotSupportedError(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(t){return e(this.app)?Promise.reject(_serverAppCurrentUserOperationNotSupportedError(this)):this.queue((async()=>{await this.assertedPersistence.setPersistence(_getInstance(t))}))}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create(\"unsupported-password-policy-schema-version\",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await async function _getPasswordPolicy(e,t={}){return _performApiRequest(e,\"GET\",\"/v2/passwordPolicy\",_addTidIfNecessary(e,t))}(this),t=new PasswordPolicyImpl(e);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new ErrorFactory(\"auth\",\"Firebase\",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise(((e,t)=>{if(this.currentUser)e();else{const r=this.onAuthStateChanged((()=>{r(),e()}),t)}}))}async revokeAccessToken(e){if(this.currentUser){const t={providerId:\"apple.com\",tokenType:\"ACCESS_TOKEN\",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await async function revokeToken(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts:revokeToken\",_addTidIfNecessary(e,t))}(this,t)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const t=e&&_getInstance(e)||this._popupRedirectResolver;_assert(t,this,\"argument-error\"),this.redirectPersistenceManager=await PersistenceUserManager.create(this,[_getInstance(t._redirectPersistence)],\"redirectUser\"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var t,r;return this._isInitialized&&await this.queue((async()=>{})),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(r=this.redirectUser)||void 0===r?void 0:r._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(e)))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,t;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const r=null!==(t=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==t?t:null;this.lastNotifiedUid!==r&&(this.lastNotifiedUid=r,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,n){if(this._deleted)return()=>{};const i=\"function\"==typeof t?t:t.next.bind(t);let s=!1;const o=this._isInitialized?Promise.resolve():this._initializationPromise;if(_assert(o,this,\"internal-error\"),o.then((()=>{s||i(this.currentUser)})),\"function\"==typeof t){const i=e.addObserver(t,r,n);return()=>{s=!0,i()}}{const r=e.addObserver(t);return()=>{s=!0,r()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return _assert(this.persistenceManager,this,\"internal-error\"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=_getClientVersion(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const t={\"X-Client-Version\":this.clientVersion};this.app.options.appId&&(t[\"X-Firebase-gmpid\"]=this.app.options.appId);const r=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());r&&(t[\"X-Firebase-Client\"]=r);const n=await this._getAppCheckToken();return n&&(t[\"X-Firebase-AppCheck\"]=n),t}async _getAppCheckToken(){var t;if(e(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;const r=await(null===(t=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getToken());return(null==r?void 0:r.error)&&function _logWarn(e,...t){E.logLevel<=a.WARN&&E.warn(`Auth (${i}): ${e}`,...t)}(`Error while retrieving App Check token: ${r.error}`),null==r?void 0:r.token}}function _castAuth(e){return getModularInstance(e)}class Subscription{constructor(e){this.auth=e,this.observer=null,this.addObserver=function createSubscribe(e,t){const r=new ObserverProxy(e,t);return r.subscribe.bind(r)}((e=>this.observer=e))}get next(){return _assert(this.observer,this.auth,\"internal-error\"),this.observer.next.bind(this.observer)}}let P={async loadJS(){throw new Error(\"Unable to load external scripts\")},recaptchaV2Script:\"\",recaptchaEnterpriseScript:\"\",gapiScript:\"\"};function _loadJS(e){return P.loadJS(e)}function _generateCallbackName(e){return`__${e}${Math.floor(1e6*Math.random())}`}const R=1e12;class MockReCaptcha{constructor(e){this.auth=e,this.counter=R,this._widgets=new Map}render(e,t){const r=this.counter;return this._widgets.set(r,new MockWidget(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t;const r=e||R;null===(t=this._widgets.get(r))||void 0===t||t.delete(),this._widgets.delete(r)}getResponse(e){var t;const r=e||R;return(null===(t=this._widgets.get(r))||void 0===t?void 0:t.getResponse())||\"\"}async execute(e){var t;const r=e||R;return null===(t=this._widgets.get(r))||void 0===t||t.execute(),\"\"}}class MockGreCAPTCHATopLevel{constructor(){this.enterprise=new MockGreCAPTCHA}ready(e){e()}execute(e,t){return Promise.resolve(\"token\")}render(e,t){return\"\"}}class MockGreCAPTCHA{ready(e){e()}execute(e,t){return Promise.resolve(\"token\")}render(e,t){return\"\"}}class MockWidget{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};const n=\"string\"==typeof e?document.getElementById(e):e;_assert(n,\"argument-error\",{appName:t}),this.container=n,this.isVisible=\"invisible\"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener(\"click\",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener(\"click\",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout((()=>{this.responseToken=function generateRandomAlphaNumericString(e){const t=[],r=\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join(\"\")}(50);const{callback:e,\"expired-callback\":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout((()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()}),6e4)}),500))}checkIfDeleted(){if(this.deleted)throw new Error(\"reCAPTCHA mock was already deleted!\")}}const k=\"NO_RECAPTCHA\";class RecaptchaEnterpriseVerifier{constructor(e){this.type=\"recaptcha-enterprise\",this.auth=_castAuth(e)}async verify(e=\"verify\",t=!1){function retrieveRecaptchaToken(t,r,n){const i=window.grecaptcha;isEnterprise(i)?i.enterprise.ready((()=>{i.enterprise.execute(t,{action:e}).then((e=>{r(e)})).catch((()=>{r(k)}))})):n(Error(\"No reCAPTCHA enterprise script loaded.\"))}if(this.auth.settings.appVerificationDisabledForTesting){return(new MockGreCAPTCHATopLevel).execute(\"siteKey\",{action:\"verify\"})}return new Promise(((e,r)=>{(async function retrieveSiteKey(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise((async(t,r)=>{getRecaptchaConfig(e,{clientType:\"CLIENT_TYPE_WEB\",version:\"RECAPTCHA_ENTERPRISE\"}).then((n=>{if(void 0!==n.recaptchaKey){const r=new RecaptchaConfig(n);return null==e.tenantId?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,t(r.siteKey)}r(new Error(\"recaptcha Enterprise site key undefined\"))})).catch((e=>{r(e)}))}))})(this.auth).then((n=>{if(!t&&isEnterprise(window.grecaptcha))retrieveRecaptchaToken(n,e,r);else{if(\"undefined\"==typeof window)return void r(new Error(\"RecaptchaVerifier is only supported in browser\"));let t=function _recaptchaEnterpriseScriptUrl(){return P.recaptchaEnterpriseScript}();0!==t.length&&(t+=n),_loadJS(t).then((()=>{retrieveRecaptchaToken(n,e,r)})).catch((e=>{r(e)}))}})).catch((e=>{r(e)}))}))}}async function injectRecaptchaFields(e,t,r,n=!1,i=!1){const s=new RecaptchaEnterpriseVerifier(e);let o;if(i)o=k;else try{o=await s.verify(r)}catch(e){o=await s.verify(r,!0)}const a=Object.assign({},t);if(\"mfaSmsEnrollment\"===r||\"mfaSmsSignIn\"===r){if(\"phoneEnrollmentInfo\"in a){const e=a.phoneEnrollmentInfo.phoneNumber,t=a.phoneEnrollmentInfo.recaptchaToken;Object.assign(a,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:t,captchaResponse:o,clientType:\"CLIENT_TYPE_WEB\",recaptchaVersion:\"RECAPTCHA_ENTERPRISE\"}})}else if(\"phoneSignInInfo\"in a){const e=a.phoneSignInInfo.recaptchaToken;Object.assign(a,{phoneSignInInfo:{recaptchaToken:e,captchaResponse:o,clientType:\"CLIENT_TYPE_WEB\",recaptchaVersion:\"RECAPTCHA_ENTERPRISE\"}})}return a}return n?Object.assign(a,{captchaResp:o}):Object.assign(a,{captchaResponse:o}),Object.assign(a,{clientType:\"CLIENT_TYPE_WEB\"}),Object.assign(a,{recaptchaVersion:\"RECAPTCHA_ENTERPRISE\"}),a}async function handleRecaptchaFlow(e,t,r,n,i){var s,o;if(\"EMAIL_PASSWORD_PROVIDER\"===i){if(null===(s=e._getRecaptchaConfig())||void 0===s?void 0:s.isProviderEnabled(\"EMAIL_PASSWORD_PROVIDER\")){const i=await injectRecaptchaFields(e,t,r,\"getOobCode\"===r);return n(e,i)}return n(e,t).catch((async i=>{if(\"auth/missing-recaptcha-token\"===i.code){console.log(`${r} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);const i=await injectRecaptchaFields(e,t,r,\"getOobCode\"===r);return n(e,i)}return Promise.reject(i)}))}if(\"PHONE_PROVIDER\"===i){if(null===(o=e._getRecaptchaConfig())||void 0===o?void 0:o.isProviderEnabled(\"PHONE_PROVIDER\")){const i=await injectRecaptchaFields(e,t,r);return n(e,i).catch((async i=>{var s;if(\"AUDIT\"===(null===(s=e._getRecaptchaConfig())||void 0===s?void 0:s.getProviderEnforcementState(\"PHONE_PROVIDER\"))&&(\"auth/missing-recaptcha-token\"===i.code||\"auth/invalid-app-credential\"===i.code)){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${r} flow.`);const i=await injectRecaptchaFields(e,t,r,!1,!0);return n(e,i)}return Promise.reject(i)}))}{const i=await injectRecaptchaFields(e,t,r,!1,!0);return n(e,i)}}return Promise.reject(i+\" provider is not supported.\")}async function _initializeRecaptchaConfig(e){const t=_castAuth(e),r=await getRecaptchaConfig(t,{clientType:\"CLIENT_TYPE_WEB\",version:\"RECAPTCHA_ENTERPRISE\"}),n=new RecaptchaConfig(r);if(null==t.tenantId?t._agentRecaptchaConfig=n:t._tenantRecaptchaConfigs[t.tenantId]=n,n.isAnyProviderEnabled()){new RecaptchaEnterpriseVerifier(t).verify()}}function initializeAuth(e,t){const r=_getProvider(e,\"auth\");if(r.isInitialized()){const e=r.getImmediate();if(deepEqual(r.getOptions(),null!=t?t:{}))return e;_fail(e,\"already-initialized\")}return r.initialize({options:t})}function connectAuthEmulator(e,t,r){const n=_castAuth(e);_assert(/^https?:\\/\\//.test(t),n,\"invalid-emulator-scheme\");const i=!!(null==r?void 0:r.disableWarnings),s=extractProtocol(t),{host:o,port:a}=function extractHostAndPort(e){const t=extractProtocol(e),r=/(\\/\\/)?([^?#/]+)/.exec(e.substr(t.length));if(!r)return{host:\"\",port:null};const n=r[2].split(\"@\").pop()||\"\",i=/^(\\[[^\\]]+\\])(:|$)/.exec(n);if(i){const e=i[1];return{host:e,port:parsePort(n.substr(e.length+1))}}{const[e,t]=n.split(\":\");return{host:e,port:parsePort(t)}}}(t),c={url:`${s}//${o}${null===a?\"\":`:${a}`}/`},u=Object.freeze({host:o,port:a,protocol:s.replace(\":\",\"\"),options:Object.freeze({disableWarnings:i})});if(!n._canInitEmulator)return _assert(n.config.emulator&&n.emulatorConfig,n,\"emulator-config-failed\"),void _assert(deepEqual(c,n.config.emulator)&&deepEqual(u,n.emulatorConfig),n,\"emulator-config-failed\");n.config.emulator=c,n.emulatorConfig=u,n.settings.appVerificationDisabledForTesting=!0,i||function emitEmulatorWarning(){function attachBanner(){const e=document.createElement(\"p\"),t=e.style;e.innerText=\"Running in emulator mode. Do not use with production credentials.\",t.position=\"fixed\",t.width=\"100%\",t.backgroundColor=\"#ffffff\",t.border=\".1em solid #000000\",t.color=\"#b50000\",t.bottom=\"0px\",t.left=\"0px\",t.margin=\"0px\",t.zIndex=\"10000\",t.textAlign=\"center\",e.classList.add(\"firebase-emulator-warning\"),document.body.appendChild(e)}\"undefined\"!=typeof console&&\"function\"==typeof console.info&&console.info(\"WARNING: You are using the Auth Emulator, which is intended for local testing only.  Do not use with production credentials.\");\"undefined\"!=typeof window&&\"undefined\"!=typeof document&&(\"loading\"===document.readyState?window.addEventListener(\"DOMContentLoaded\",attachBanner):attachBanner())}()}function extractProtocol(e){const t=e.indexOf(\":\");return t<0?\"\":e.substr(0,t+1)}function parsePort(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class AuthCredential{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return debugFail(\"not implemented\")}_getIdTokenResponse(e){return debugFail(\"not implemented\")}_linkToIdToken(e,t){return debugFail(\"not implemented\")}_getReauthenticationResolver(e){return debugFail(\"not implemented\")}}async function resetPassword(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:resetPassword\",_addTidIfNecessary(e,t))}async function linkEmailPassword(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:signUp\",t)}async function signInWithPassword(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithPassword\",_addTidIfNecessary(e,t))}async function sendOobCode(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:sendOobCode\",_addTidIfNecessary(e,t))}async function sendPasswordResetEmail$1(e,t){return sendOobCode(e,t)}async function sendSignInLinkToEmail$1(e,t){return sendOobCode(e,t)}class EmailAuthCredential extends AuthCredential{constructor(e,t,r,n=null){super(\"password\",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new EmailAuthCredential(e,t,\"password\")}static _fromEmailAndCode(e,t,r=null){return new EmailAuthCredential(e,t,\"emailLink\",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const t=\"string\"==typeof e?JSON.parse(e):e;if((null==t?void 0:t.email)&&(null==t?void 0:t.password)){if(\"password\"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if(\"emailLink\"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case\"password\":return handleRecaptchaFlow(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:\"CLIENT_TYPE_WEB\"},\"signInWithPassword\",signInWithPassword,\"EMAIL_PASSWORD_PROVIDER\");case\"emailLink\":return async function signInWithEmailLink$1(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithEmailLink\",_addTidIfNecessary(e,t))}(e,{email:this._email,oobCode:this._password});default:_fail(e,\"internal-error\")}}async _linkToIdToken(e,t){switch(this.signInMethod){case\"password\":return handleRecaptchaFlow(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:\"CLIENT_TYPE_WEB\"},\"signUpPassword\",linkEmailPassword,\"EMAIL_PASSWORD_PROVIDER\");case\"emailLink\":return async function signInWithEmailLinkForLinking(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithEmailLink\",_addTidIfNecessary(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:_fail(e,\"internal-error\")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function signInWithIdp(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithIdp\",_addTidIfNecessary(e,t))}class OAuthCredential extends AuthCredential{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new OAuthCredential(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):_fail(\"argument-error\"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const t=\"string\"==typeof e?JSON.parse(e):e,{providerId:r,signInMethod:n}=t,i=__rest(t,[\"providerId\",\"signInMethod\"]);if(!r||!n)return null;const s=new OAuthCredential(r,n);return s.idToken=i.idToken||void 0,s.accessToken=i.accessToken||void 0,s.secret=i.secret,s.nonce=i.nonce,s.pendingToken=i.pendingToken||null,s}_getIdTokenResponse(e){return signInWithIdp(e,this.buildRequest())}_linkToIdToken(e,t){const r=this.buildRequest();return r.idToken=t,signInWithIdp(e,r)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,signInWithIdp(e,t)}buildRequest(){const e={requestUri:\"http://localhost\",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=querystring(t)}return e}}async function sendPhoneVerificationCode(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:sendVerificationCode\",_addTidIfNecessary(e,t))}const C={USER_NOT_FOUND:\"user-not-found\"};class PhoneAuthCredential extends AuthCredential{constructor(e){super(\"phone\",\"phone\"),this.params=e}static _fromVerification(e,t){return new PhoneAuthCredential({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new PhoneAuthCredential({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function signInWithPhoneNumber$1(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithPhoneNumber\",_addTidIfNecessary(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function linkWithPhoneNumber$1(e,t){const r=await _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithPhoneNumber\",_addTidIfNecessary(e,t));if(r.temporaryProof)throw _makeTaggedError(e,\"account-exists-with-different-credential\",r);return r}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function verifyPhoneNumberForExisting(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithPhoneNumber\",_addTidIfNecessary(e,Object.assign(Object.assign({},t),{operation:\"REAUTH\"})),C)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){const{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){const e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){\"string\"==typeof e&&(e=JSON.parse(e));const{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e;return r||t||n||i?new PhoneAuthCredential({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class ActionCodeURL{constructor(e){var t,r,n,i,s,o;const a=querystringDecode(extractQuerystring(e)),c=null!==(t=a.apiKey)&&void 0!==t?t:null,u=null!==(r=a.oobCode)&&void 0!==r?r:null,d=function parseMode(e){switch(e){case\"recoverEmail\":return\"RECOVER_EMAIL\";case\"resetPassword\":return\"PASSWORD_RESET\";case\"signIn\":return\"EMAIL_SIGNIN\";case\"verifyEmail\":return\"VERIFY_EMAIL\";case\"verifyAndChangeEmail\":return\"VERIFY_AND_CHANGE_EMAIL\";case\"revertSecondFactorAddition\":return\"REVERT_SECOND_FACTOR_ADDITION\";default:return null}}(null!==(n=a.mode)&&void 0!==n?n:null);_assert(c&&u&&d,\"argument-error\"),this.apiKey=c,this.operation=d,this.code=u,this.continueUrl=null!==(i=a.continueUrl)&&void 0!==i?i:null,this.languageCode=null!==(s=a.languageCode)&&void 0!==s?s:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(e){const t=function parseDeepLink(e){const t=querystringDecode(extractQuerystring(e)).link,r=t?querystringDecode(extractQuerystring(t)).deep_link_id:null,n=querystringDecode(extractQuerystring(e)).deep_link_id;return(n?querystringDecode(extractQuerystring(n)).link:null)||n||r||t||e}(e);try{return new ActionCodeURL(t)}catch(e){return null}}}function parseActionCodeURL(e){return ActionCodeURL.parseLink(e)}class EmailAuthProvider{constructor(){this.providerId=EmailAuthProvider.PROVIDER_ID}static credential(e,t){return EmailAuthCredential._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const r=ActionCodeURL.parseLink(t);return _assert(r,\"argument-error\"),EmailAuthCredential._fromEmailAndCode(e,r.code,r.tenantId)}}EmailAuthProvider.PROVIDER_ID=\"password\",EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD=\"password\",EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD=\"emailLink\";class FederatedAuthProvider{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class BaseOAuthProvider extends FederatedAuthProvider{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class OAuthProvider extends BaseOAuthProvider{static credentialFromJSON(e){const t=\"string\"==typeof e?JSON.parse(e):e;return _assert(\"providerId\"in t&&\"signInMethod\"in t,\"argument-error\"),OAuthCredential._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return _assert(e.idToken||e.accessToken,\"argument-error\"),OAuthCredential._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return OAuthProvider.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return OAuthProvider.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:o}=e;if(!(r||n||t||i))return null;if(!o)return null;try{return new OAuthProvider(o)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class FacebookAuthProvider extends BaseOAuthProvider{constructor(){super(\"facebook.com\")}static credential(e){return OAuthCredential._fromParams({providerId:FacebookAuthProvider.PROVIDER_ID,signInMethod:FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return FacebookAuthProvider.credentialFromTaggedObject(e)}static credentialFromError(e){return FacebookAuthProvider.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!(\"oauthAccessToken\"in e))return null;if(!e.oauthAccessToken)return null;try{return FacebookAuthProvider.credential(e.oauthAccessToken)}catch(e){return null}}}FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD=\"facebook.com\",FacebookAuthProvider.PROVIDER_ID=\"facebook.com\";class GoogleAuthProvider extends BaseOAuthProvider{constructor(){super(\"google.com\"),this.addScope(\"profile\")}static credential(e,t){return OAuthCredential._fromParams({providerId:GoogleAuthProvider.PROVIDER_ID,signInMethod:GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return GoogleAuthProvider.credentialFromTaggedObject(e)}static credentialFromError(e){return GoogleAuthProvider.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return GoogleAuthProvider.credential(t,r)}catch(e){return null}}}GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD=\"google.com\",GoogleAuthProvider.PROVIDER_ID=\"google.com\";class GithubAuthProvider extends BaseOAuthProvider{constructor(){super(\"github.com\")}static credential(e){return OAuthCredential._fromParams({providerId:GithubAuthProvider.PROVIDER_ID,signInMethod:GithubAuthProvider.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return GithubAuthProvider.credentialFromTaggedObject(e)}static credentialFromError(e){return GithubAuthProvider.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!(\"oauthAccessToken\"in e))return null;if(!e.oauthAccessToken)return null;try{return GithubAuthProvider.credential(e.oauthAccessToken)}catch(e){return null}}}GithubAuthProvider.GITHUB_SIGN_IN_METHOD=\"github.com\",GithubAuthProvider.PROVIDER_ID=\"github.com\";class SAMLAuthCredential extends AuthCredential{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return signInWithIdp(e,this.buildRequest())}_linkToIdToken(e,t){const r=this.buildRequest();return r.idToken=t,signInWithIdp(e,r)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,signInWithIdp(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){const t=\"string\"==typeof e?JSON.parse(e):e,{providerId:r,signInMethod:n,pendingToken:i}=t;return r&&n&&i&&r===n?new SAMLAuthCredential(r,i):null}static _create(e,t){return new SAMLAuthCredential(e,t)}buildRequest(){return{requestUri:\"http://localhost\",returnSecureToken:!0,pendingToken:this.pendingToken}}}class SAMLAuthProvider extends FederatedAuthProvider{constructor(e){_assert(e.startsWith(\"saml.\"),\"argument-error\"),super(e)}static credentialFromResult(e){return SAMLAuthProvider.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return SAMLAuthProvider.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){const t=SAMLAuthCredential.fromJSON(e);return _assert(t,\"argument-error\"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return SAMLAuthCredential._create(r,t)}catch(e){return null}}}class TwitterAuthProvider extends BaseOAuthProvider{constructor(){super(\"twitter.com\")}static credential(e,t){return OAuthCredential._fromParams({providerId:TwitterAuthProvider.PROVIDER_ID,signInMethod:TwitterAuthProvider.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return TwitterAuthProvider.credentialFromTaggedObject(e)}static credentialFromError(e){return TwitterAuthProvider.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return TwitterAuthProvider.credential(t,r)}catch(e){return null}}}async function signUp(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signUp\",_addTidIfNecessary(e,t))}TwitterAuthProvider.TWITTER_SIGN_IN_METHOD=\"twitter.com\",TwitterAuthProvider.PROVIDER_ID=\"twitter.com\";class UserCredentialImpl{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){const i=await UserImpl._fromIdTokenResponse(e,r,n),s=providerIdForResponse(r);return new UserCredentialImpl({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);const n=providerIdForResponse(r);return new UserCredentialImpl({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function providerIdForResponse(e){return e.providerId?e.providerId:\"phoneNumber\"in e?\"phone\":null}async function signInAnonymously(t){var r;if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const n=_castAuth(t);if(await n._initializationPromise,null===(r=n.currentUser)||void 0===r?void 0:r.isAnonymous)return new UserCredentialImpl({user:n.currentUser,providerId:null,operationType:\"signIn\"});const i=await signUp(n,{returnSecureToken:!0}),s=await UserCredentialImpl._fromIdTokenResponse(n,\"signIn\",i,!0);return await n._updateCurrentUser(s.user),s}class MultiFactorError extends FirebaseError{constructor(e,t,r,n){var i;super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,MultiFactorError.prototype),this.customData={appName:e.name,tenantId:null!==(i=e.tenantId)&&void 0!==i?i:void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new MultiFactorError(e,t,r,n)}}function _processCredentialSavingMfaContextIfNecessary(e,t,r,n){return(\"reauthenticate\"===t?r._getReauthenticationResolver(e):r._getIdTokenResponse(e)).catch((r=>{if(\"auth/multi-factor-auth-required\"===r.code)throw MultiFactorError._fromErrorAndOperation(e,r,t,n);throw r}))}function providerDataAsNames(e){return new Set(e.map((({providerId:e})=>e)).filter((e=>!!e)))}async function unlink(e,t){const r=getModularInstance(e);await _assertLinkedStatus(!0,r,t);const{providerUserInfo:n}=await async function deleteLinkedAccounts(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:update\",t)}(r.auth,{idToken:await r.getIdToken(),deleteProvider:[t]}),i=providerDataAsNames(n||[]);return r.providerData=r.providerData.filter((e=>i.has(e.providerId))),i.has(\"phone\")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function _link$1(e,t,r=!1){const n=await _logoutIfInvalidated(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return UserCredentialImpl._forOperation(e,\"link\",n)}async function _assertLinkedStatus(e,t,r){await _reloadWithoutSaving(t);const n=!1===e?\"provider-already-linked\":\"no-such-provider\";_assert(providerDataAsNames(t.providerData).has(r)===e,t.auth,n)}async function _reauthenticate(t,r,n=!1){const{auth:i}=t;if(e(i.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(i));const s=\"reauthenticate\";try{const e=await _logoutIfInvalidated(t,_processCredentialSavingMfaContextIfNecessary(i,s,r,t),n);_assert(e.idToken,i,\"internal-error\");const o=_parseToken(e.idToken);_assert(o,i,\"internal-error\");const{sub:a}=o;return _assert(t.uid===a,i,\"user-mismatch\"),UserCredentialImpl._forOperation(t,s,e)}catch(e){throw\"auth/user-not-found\"===(null==e?void 0:e.code)&&_fail(i,\"user-mismatch\"),e}}async function _signInWithCredential(t,r,n=!1){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=\"signIn\",s=await _processCredentialSavingMfaContextIfNecessary(t,i,r),o=await UserCredentialImpl._fromIdTokenResponse(t,i,s);return n||await t._updateCurrentUser(o.user),o}async function signInWithCredential(e,t){return _signInWithCredential(_castAuth(e),t)}async function linkWithCredential(e,t){const r=getModularInstance(e);return await _assertLinkedStatus(!1,r,t.providerId),_link$1(r,t)}async function reauthenticateWithCredential(e,t){return _reauthenticate(getModularInstance(e),t)}async function signInWithCustomToken(t,r){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const n=_castAuth(t),i=await async function signInWithCustomToken$1(e,t){return _performSignInRequest(e,\"POST\",\"/v1/accounts:signInWithCustomToken\",_addTidIfNecessary(e,t))}(n,{token:r,returnSecureToken:!0}),s=await UserCredentialImpl._fromIdTokenResponse(n,\"signIn\",i);return await n._updateCurrentUser(s.user),s}class MultiFactorInfoImpl{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return\"phoneInfo\"in t?PhoneMultiFactorInfoImpl._fromServerResponse(e,t):\"totpInfo\"in t?TotpMultiFactorInfoImpl._fromServerResponse(e,t):_fail(e,\"internal-error\")}}class PhoneMultiFactorInfoImpl extends MultiFactorInfoImpl{constructor(e){super(\"phone\",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new PhoneMultiFactorInfoImpl(t)}}class TotpMultiFactorInfoImpl extends MultiFactorInfoImpl{constructor(e){super(\"totp\",e)}static _fromServerResponse(e,t){return new TotpMultiFactorInfoImpl(t)}}function _setActionCodeSettingsOnRequest(e,t,r){var n;_assert((null===(n=r.url)||void 0===n?void 0:n.length)>0,e,\"invalid-continue-uri\"),_assert(void 0===r.dynamicLinkDomain||r.dynamicLinkDomain.length>0,e,\"invalid-dynamic-link-domain\"),_assert(void 0===r.linkDomain||r.linkDomain.length>0,e,\"invalid-hosting-link-domain\"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(_assert(r.iOS.bundleId.length>0,e,\"missing-ios-bundle-id\"),t.iOSBundleId=r.iOS.bundleId),r.android&&(_assert(r.android.packageName.length>0,e,\"missing-android-pkg-name\"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function recachePasswordPolicy(e){const t=_castAuth(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function sendPasswordResetEmail(e,t,r){const n=_castAuth(e),i={requestType:\"PASSWORD_RESET\",email:t,clientType:\"CLIENT_TYPE_WEB\"};r&&_setActionCodeSettingsOnRequest(n,i,r),await handleRecaptchaFlow(n,i,\"getOobCode\",sendPasswordResetEmail$1,\"EMAIL_PASSWORD_PROVIDER\")}async function confirmPasswordReset(e,t,r){await resetPassword(getModularInstance(e),{oobCode:t,newPassword:r}).catch((async t=>{throw\"auth/password-does-not-meet-requirements\"===t.code&&recachePasswordPolicy(e),t}))}async function applyActionCode(e,t){await async function applyActionCode$1(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:update\",_addTidIfNecessary(e,t))}(getModularInstance(e),{oobCode:t})}async function checkActionCode(e,t){const r=getModularInstance(e),n=await resetPassword(r,{oobCode:t}),i=n.requestType;switch(_assert(i,r,\"internal-error\"),i){case\"EMAIL_SIGNIN\":break;case\"VERIFY_AND_CHANGE_EMAIL\":_assert(n.newEmail,r,\"internal-error\");break;case\"REVERT_SECOND_FACTOR_ADDITION\":_assert(n.mfaInfo,r,\"internal-error\");default:_assert(n.email,r,\"internal-error\")}let s=null;return n.mfaInfo&&(s=MultiFactorInfoImpl._fromServerResponse(_castAuth(r),n.mfaInfo)),{data:{email:(\"VERIFY_AND_CHANGE_EMAIL\"===n.requestType?n.newEmail:n.email)||null,previousEmail:(\"VERIFY_AND_CHANGE_EMAIL\"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function verifyPasswordResetCode(e,t){const{data:r}=await checkActionCode(getModularInstance(e),t);return r.email}async function createUserWithEmailAndPassword(t,r,n){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=_castAuth(t),s=handleRecaptchaFlow(i,{returnSecureToken:!0,email:r,password:n,clientType:\"CLIENT_TYPE_WEB\"},\"signUpPassword\",signUp,\"EMAIL_PASSWORD_PROVIDER\"),o=await s.catch((e=>{throw\"auth/password-does-not-meet-requirements\"===e.code&&recachePasswordPolicy(t),e})),a=await UserCredentialImpl._fromIdTokenResponse(i,\"signIn\",o);return await i._updateCurrentUser(a.user),a}function signInWithEmailAndPassword(t,r,n){return e(t.app)?Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t)):signInWithCredential(getModularInstance(t),EmailAuthProvider.credential(r,n)).catch((async e=>{throw\"auth/password-does-not-meet-requirements\"===e.code&&recachePasswordPolicy(t),e}))}async function sendSignInLinkToEmail(e,t,r){const n=_castAuth(e),i={requestType:\"EMAIL_SIGNIN\",email:t,clientType:\"CLIENT_TYPE_WEB\"};!function setActionCodeSettings(e,t){_assert(t.handleCodeInApp,n,\"argument-error\"),t&&_setActionCodeSettingsOnRequest(n,e,t)}(i,r),await handleRecaptchaFlow(n,i,\"getOobCode\",sendSignInLinkToEmail$1,\"EMAIL_PASSWORD_PROVIDER\")}function isSignInWithEmailLink(e,t){const r=ActionCodeURL.parseLink(t);return\"EMAIL_SIGNIN\"===(null==r?void 0:r.operation)}async function signInWithEmailLink(t,r,n){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=getModularInstance(t),s=EmailAuthProvider.credentialWithLink(r,n||_getCurrentUrl());return _assert(s._tenantId===(i.tenantId||null),i,\"tenant-id-mismatch\"),signInWithCredential(i,s)}async function fetchSignInMethodsForEmail(e,t){const r={identifier:t,continueUri:_isHttpOrHttps()?_getCurrentUrl():\"http://localhost\"},{signinMethods:n}=await async function createAuthUri(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:createAuthUri\",_addTidIfNecessary(e,t))}(getModularInstance(e),r);return n||[]}async function sendEmailVerification(e,t){const r=getModularInstance(e),n={requestType:\"VERIFY_EMAIL\",idToken:await e.getIdToken()};t&&_setActionCodeSettingsOnRequest(r.auth,n,t);const{email:i}=await async function sendEmailVerification$1(e,t){return sendOobCode(e,t)}(r.auth,n);i!==e.email&&await e.reload()}async function verifyBeforeUpdateEmail(e,t,r){const n=getModularInstance(e),i={requestType:\"VERIFY_AND_CHANGE_EMAIL\",idToken:await e.getIdToken(),newEmail:t};r&&_setActionCodeSettingsOnRequest(n.auth,i,r);const{email:s}=await async function verifyAndChangeEmail(e,t){return sendOobCode(e,t)}(n.auth,i);s!==e.email&&await e.reload()}async function updateProfile(e,{displayName:t,photoURL:r}){if(void 0===t&&void 0===r)return;const n=getModularInstance(e),i={idToken:await n.getIdToken(),displayName:t,photoUrl:r,returnSecureToken:!0},s=await _logoutIfInvalidated(n,async function updateProfile$1(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:update\",t)}(n.auth,i));n.displayName=s.displayName||null,n.photoURL=s.photoUrl||null;const o=n.providerData.find((({providerId:e})=>\"password\"===e));o&&(o.displayName=n.displayName,o.photoURL=n.photoURL),await n._updateTokensIfNecessary(s)}function updateEmail(t,r){const n=getModularInstance(t);return e(n.auth.app)?Promise.reject(_serverAppCurrentUserOperationNotSupportedError(n.auth)):updateEmailOrPassword(n,r,null)}function updatePassword(e,t){return updateEmailOrPassword(getModularInstance(e),null,t)}async function updateEmailOrPassword(e,t,r){const{auth:n}=e,i={idToken:await e.getIdToken(),returnSecureToken:!0};t&&(i.email=t),r&&(i.password=r);const s=await _logoutIfInvalidated(e,async function updateEmailPassword(e,t){return _performApiRequest(e,\"POST\",\"/v1/accounts:update\",t)}(n,i));await e._updateTokensIfNecessary(s,!0)}class GenericAdditionalUserInfo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class FederatedAdditionalUserInfoWithUsername extends GenericAdditionalUserInfo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class FacebookAdditionalUserInfo extends GenericAdditionalUserInfo{constructor(e,t){super(e,\"facebook.com\",t)}}class GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername{constructor(e,t){super(e,\"github.com\",t,\"string\"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class GoogleAdditionalUserInfo extends GenericAdditionalUserInfo{constructor(e,t){super(e,\"google.com\",t)}}class TwitterAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername{constructor(e,t,r){super(e,\"twitter.com\",t,r)}}function getAdditionalUserInfo(e){const{user:t,_tokenResponse:r}=e;return t.isAnonymous&&!r?{providerId:null,isNewUser:!1,profile:null}:function _fromIdTokenResponse(e){var t,r;if(!e)return null;const{providerId:n}=e,i=e.rawUserInfo?JSON.parse(e.rawUserInfo):{},s=e.isNewUser||\"identitytoolkit#SignupNewUserResponse\"===e.kind;if(!n&&(null==e?void 0:e.idToken)){const n=null===(r=null===(t=_parseToken(e.idToken))||void 0===t?void 0:t.firebase)||void 0===r?void 0:r.sign_in_provider;if(n)return new GenericAdditionalUserInfo(s,\"anonymous\"!==n&&\"custom\"!==n?n:null)}if(!n)return null;switch(n){case\"facebook.com\":return new FacebookAdditionalUserInfo(s,i);case\"github.com\":return new GithubAdditionalUserInfo(s,i);case\"google.com\":return new GoogleAdditionalUserInfo(s,i);case\"twitter.com\":return new TwitterAdditionalUserInfo(s,i,e.screenName||null);case\"custom\":case\"anonymous\":return new GenericAdditionalUserInfo(s,null);default:return new GenericAdditionalUserInfo(s,n,i)}}(r)}function setPersistence(e,t){return getModularInstance(e).setPersistence(t)}function initializeRecaptchaConfig(e){return _initializeRecaptchaConfig(e)}async function validatePassword(e,t){return _castAuth(e).validatePassword(t)}function onIdTokenChanged(e,t,r,n){return getModularInstance(e).onIdTokenChanged(t,r,n)}function beforeAuthStateChanged(e,t,r){return getModularInstance(e).beforeAuthStateChanged(t,r)}function onAuthStateChanged(e,t,r,n){return getModularInstance(e).onAuthStateChanged(t,r,n)}function useDeviceLanguage(e){getModularInstance(e).useDeviceLanguage()}function updateCurrentUser(e,t){return getModularInstance(e).updateCurrentUser(t)}function signOut(e){return getModularInstance(e).signOut()}function revokeAccessToken(e,t){return _castAuth(e).revokeAccessToken(t)}async function deleteUser(e){return getModularInstance(e).delete()}class MultiFactorSessionImpl{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new MultiFactorSessionImpl(\"enroll\",e,t)}static _fromMfaPendingCredential(e){return new MultiFactorSessionImpl(\"signin\",e)}toJSON(){const e=\"enroll\"===this.type?\"idToken\":\"pendingCredential\";return{multiFactorSession:{[e]:this.credential}}}static fromJSON(e){var t,r;if(null==e?void 0:e.multiFactorSession){if(null===(t=e.multiFactorSession)||void 0===t?void 0:t.pendingCredential)return MultiFactorSessionImpl._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null===(r=e.multiFactorSession)||void 0===r?void 0:r.idToken)return MultiFactorSessionImpl._fromIdtoken(e.multiFactorSession.idToken)}return null}}class MultiFactorResolverImpl{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,t){const r=_castAuth(e),n=t.customData._serverResponse,i=(n.mfaInfo||[]).map((e=>MultiFactorInfoImpl._fromServerResponse(r,e)));_assert(n.mfaPendingCredential,r,\"internal-error\");const s=MultiFactorSessionImpl._fromMfaPendingCredential(n.mfaPendingCredential);return new MultiFactorResolverImpl(s,i,(async e=>{const i=await e._process(r,s);delete n.mfaInfo,delete n.mfaPendingCredential;const o=Object.assign(Object.assign({},n),{idToken:i.idToken,refreshToken:i.refreshToken});switch(t.operationType){case\"signIn\":const e=await UserCredentialImpl._fromIdTokenResponse(r,t.operationType,o);return await r._updateCurrentUser(e.user),e;case\"reauthenticate\":return _assert(t.user,r,\"internal-error\"),UserCredentialImpl._forOperation(t.user,t.operationType,o);default:_fail(r,\"internal-error\")}}))}async resolveSignIn(e){const t=e;return this.signInResolver(t)}}function getMultiFactorResolver(e,t){var r;const n=getModularInstance(e),i=t;return _assert(t.customData.operationType,n,\"argument-error\"),_assert(null===(r=i.customData._serverResponse)||void 0===r?void 0:r.mfaPendingCredential,n,\"argument-error\"),MultiFactorResolverImpl._fromError(n,i)}function startEnrollPhoneMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaEnrollment:start\",_addTidIfNecessary(e,t))}class MultiFactorUserImpl{constructor(e){this.user=e,this.enrolledFactors=[],e._onReload((t=>{t.mfaInfo&&(this.enrolledFactors=t.mfaInfo.map((t=>MultiFactorInfoImpl._fromServerResponse(e.auth,t))))}))}static _fromUser(e){return new MultiFactorUserImpl(e)}async getSession(){return MultiFactorSessionImpl._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){const r=e,n=await this.getSession(),i=await _logoutIfInvalidated(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(i),this.user.reload()}async unenroll(e){const t=\"string\"==typeof e?e:e.uid,r=await this.user.getIdToken();try{const e=await _logoutIfInvalidated(this.user,function withdrawMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaEnrollment:withdraw\",_addTidIfNecessary(e,t))}(this.user.auth,{idToken:r,mfaEnrollmentId:t}));this.enrolledFactors=this.enrolledFactors.filter((({uid:e})=>e!==t)),await this.user._updateTokensIfNecessary(e),await this.user.reload()}catch(e){throw e}}}const b=new WeakMap;function multiFactor(e){const t=getModularInstance(e);return b.has(t)||b.set(t,MultiFactorUserImpl._fromUser(t)),b.get(t)}const O=\"__sak\";class BrowserPersistenceClass{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(O,\"1\"),this.storage.removeItem(O),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){const t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class BrowserLocalPersistence extends BrowserPersistenceClass{constructor(){super((()=>window.localStorage),\"LOCAL\"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=_isMobileBrowser(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const t of Object.keys(this.listeners)){const r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys(((e,t,r)=>{this.notifyListeners(e,r)}));const r=e.key;t?this.detachListener():this.stopPolling();const triggerListeners=()=>{const e=this.storage.getItem(r);(t||this.localCache[r]!==e)&&this.notifyListeners(r,e)},n=this.storage.getItem(r);_isIE10()&&n!==e.newValue&&e.newValue!==e.oldValue?setTimeout(triggerListeners,10):triggerListeners()}notifyListeners(e,t){this.localCache[e]=t;const r=this.listeners[e];if(r)for(const e of Array.from(r))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((e,t,r)=>{this.onStorageEvent(new StorageEvent(\"storage\",{key:e,oldValue:t,newValue:r}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener(\"storage\",this.boundEventHandler)}detachListener(){window.removeEventListener(\"storage\",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){const t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}BrowserLocalPersistence.type=\"LOCAL\";const N=BrowserLocalPersistence;function getDocumentCookie(e){var t,r;const n=e.replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\"),i=RegExp(`${n}=([^;]+)`);return null!==(r=null===(t=document.cookie.match(i))||void 0===t?void 0:t[1])&&void 0!==r?r:null}function getCookieName(e){return`${\"http:\"===window.location.protocol?\"__dev_\":\"__HOST-\"}FIREBASE_${e.split(\":\")[3]}`}class CookiePersistence{constructor(){this.type=\"COOKIE\",this.listenerUnsubscribes=new Map}_getFinalTarget(e){if(void 0===typeof window)return e;const t=new URL(`${window.location.origin}/__cookies__`);return t.searchParams.set(\"finalTarget\",e),t}async _isAvailable(){var e;return!(\"boolean\"==typeof isSecureContext&&!isSecureContext)&&(\"undefined\"!=typeof navigator&&\"undefined\"!=typeof document&&(null===(e=navigator.cookieEnabled)||void 0===e||e))}async _set(e,t){}async _get(e){if(!this._isAvailable())return null;const t=getCookieName(e);if(window.cookieStore){const e=await window.cookieStore.get(t);return null==e?void 0:e.value}return getDocumentCookie(t)}async _remove(e){if(!this._isAvailable())return;if(!await this._get(e))return;const t=getCookieName(e);document.cookie=`${t}=;Max-Age=34560000;Partitioned;Secure;SameSite=Strict;Path=/;Priority=High`,await fetch(\"/__cookies__\",{method:\"DELETE\"}).catch((()=>{}))}_addListener(e,t){if(!this._isAvailable())return;const r=getCookieName(e);if(window.cookieStore){const cb=e=>{const n=e.changed.find((e=>e.name===r));n&&t(n.value);e.deleted.find((e=>e.name===r))&&t(null)},unsubscribe=()=>window.cookieStore.removeEventListener(\"change\",cb);return this.listenerUnsubscribes.set(t,unsubscribe),window.cookieStore.addEventListener(\"change\",cb)}let n=getDocumentCookie(r);const i=setInterval((()=>{const e=getDocumentCookie(r);e!==n&&(t(e),n=e)}),1e3);this.listenerUnsubscribes.set(t,(()=>clearInterval(i)))}_removeListener(e,t){const r=this.listenerUnsubscribes.get(t);r&&(r(),this.listenerUnsubscribes.delete(t))}}CookiePersistence.type=\"COOKIE\";const D=CookiePersistence;class BrowserSessionPersistence extends BrowserPersistenceClass{constructor(){super((()=>window.sessionStorage),\"SESSION\")}_addListener(e,t){}_removeListener(e,t){}}BrowserSessionPersistence.type=\"SESSION\";const L=BrowserSessionPersistence;class Receiver{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const t=this.receivers.find((t=>t.isListeningto(e)));if(t)return t;const r=new Receiver(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:r,eventType:n,data:i}=t.data,s=this.handlersMap[n];if(!(null==s?void 0:s.size))return;t.ports[0].postMessage({status:\"ack\",eventId:r,eventType:n});const o=Array.from(s).map((async e=>e(t.origin,i))),a=await function _allSettled(e){return Promise.all(e.map((async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})))}(o);t.ports[0].postMessage({status:\"done\",eventId:r,eventType:n,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener(\"message\",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener(\"message\",this.boundEventHandler)}}function _generateEventId(e=\"\",t=10){let r=\"\";for(let e=0;e<t;e++)r+=Math.floor(10*Math.random());return e+r}Receiver.receivers=[];class Sender{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener(\"message\",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,r=50){const n=\"undefined\"!=typeof MessageChannel?new MessageChannel:null;if(!n)throw new Error(\"connection_unavailable\");let i,s;return new Promise(((o,a)=>{const c=_generateEventId(\"\",20);n.port1.start();const u=setTimeout((()=>{a(new Error(\"unsupported_event\"))}),r);s={messageChannel:n,onMessage(e){const t=e;if(t.data.eventId===c)switch(t.data.status){case\"ack\":clearTimeout(u),i=setTimeout((()=>{a(new Error(\"timeout\"))}),3e3);break;case\"done\":clearTimeout(i),o(t.data.response);break;default:clearTimeout(u),clearTimeout(i),a(new Error(\"invalid_response\"))}}},this.handlers.add(s),n.port1.addEventListener(\"message\",s.onMessage),this.target.postMessage({eventType:e,eventId:c,data:t},[n.port2])})).finally((()=>{s&&this.removeMessageHandler(s)}))}}function _window(){return window}function _isWorker(){return void 0!==_window().WorkerGlobalScope&&\"function\"==typeof _window().importScripts}const M=\"firebaseLocalStorageDb\",U=\"firebaseLocalStorage\",F=\"fbase_key\";class DBPromise{constructor(e){this.request=e}toPromise(){return new Promise(((e,t)=>{this.request.addEventListener(\"success\",(()=>{e(this.request.result)})),this.request.addEventListener(\"error\",(()=>{t(this.request.error)}))}))}}function getObjectStore(e,t){return e.transaction([U],t?\"readwrite\":\"readonly\").objectStore(U)}function _openDatabase(){const e=indexedDB.open(M,1);return new Promise(((t,r)=>{e.addEventListener(\"error\",(()=>{r(e.error)})),e.addEventListener(\"upgradeneeded\",(()=>{const t=e.result;try{t.createObjectStore(U,{keyPath:F})}catch(e){r(e)}})),e.addEventListener(\"success\",(async()=>{const r=e.result;r.objectStoreNames.contains(U)?t(r):(r.close(),await function _deleteDatabase(){const e=indexedDB.deleteDatabase(M);return new DBPromise(e).toPromise()}(),t(await _openDatabase()))}))}))}async function _putObject(e,t,r){const n=getObjectStore(e,!0).put({[F]:t,value:r});return new DBPromise(n).toPromise()}function _deleteObject(e,t){const r=getObjectStore(e,!0).delete(t);return new DBPromise(r).toPromise()}class IndexedDBLocalPersistence{constructor(){this.type=\"LOCAL\",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await _openDatabase()),this.db}async _withRetries(e){let t=0;for(;;)try{const t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return _isWorker()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Receiver._getInstance(function _getWorkerGlobalScope(){return _isWorker()?self:null}()),this.receiver._subscribe(\"keyChanged\",(async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)}))),this.receiver._subscribe(\"ping\",(async(e,t)=>[\"keyChanged\"]))}async initializeSender(){var e,t;if(this.activeServiceWorker=await async function _getActiveServiceWorker(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new Sender(this.activeServiceWorker);const r=await this.sender._send(\"ping\",{},800);r&&(null===(e=r[0])||void 0===e?void 0:e.fulfilled)&&(null===(t=r[0])||void 0===t?void 0:t.value.includes(\"keyChanged\"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&function _getServiceWorkerController(){var e;return(null===(e=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===e?void 0:e.controller)||null}()===this.activeServiceWorker)try{await this.sender._send(\"keyChanged\",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await _openDatabase();return await _putObject(e,O,\"1\"),await _deleteObject(e,O),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite((async()=>(await this._withRetries((r=>_putObject(r,e,t))),this.localCache[e]=t,this.notifyServiceWorker(e))))}async _get(e){const t=await this._withRetries((t=>async function getObject(e,t){const r=getObjectStore(e,!1).get(t),n=await new DBPromise(r).toPromise();return void 0===n?null:n.value}(t,e)));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite((async()=>(await this._withRetries((t=>_deleteObject(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=getObjectStore(e,!1).getAll();return new DBPromise(t).toPromise()}));if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],r=new Set;if(0!==e.length)for(const{fbase_key:n,value:i}of e)r.add(n),JSON.stringify(this.localCache[n])!==JSON.stringify(i)&&(this.notifyListeners(n,i),t.push(n));for(const e of Object.keys(this.localCache))this.localCache[e]&&!r.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;const r=this.listeners[e];if(r)for(const e of Array.from(r))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}IndexedDBLocalPersistence.type=\"LOCAL\";const V=IndexedDBLocalPersistence;function startSignInPhoneMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaSignIn:start\",_addTidIfNecessary(e,t))}const W=_generateCallbackName(\"rcb\"),x=new Delay(3e4,6e4);class ReCaptchaLoaderImpl{constructor(){var e;this.hostLanguage=\"\",this.counter=0,this.librarySeparatelyLoaded=!!(null===(e=_window().grecaptcha)||void 0===e?void 0:e.render)}load(e,t=\"\"){return _assert(function isHostLanguageValid(e){return e.length<=6&&/^\\s*[a-zA-Z0-9\\-]*\\s*$/.test(e)}(t),e,\"argument-error\"),this.shouldResolveImmediately(t)&&isV2(_window().grecaptcha)?Promise.resolve(_window().grecaptcha):new Promise(((r,n)=>{const i=_window().setTimeout((()=>{n(_createError(e,\"network-request-failed\"))}),x.get());_window()[W]=()=>{_window().clearTimeout(i),delete _window()[W];const s=_window().grecaptcha;if(!s||!isV2(s))return void n(_createError(e,\"internal-error\"));const o=s.render;s.render=(e,t)=>{const r=o(e,t);return this.counter++,r},this.hostLanguage=t,r(s)};_loadJS(`${function _recaptchaV2ScriptUrl(){return P.recaptchaV2Script}()}?${querystring({onload:W,render:\"explicit\",hl:t})}`).catch((()=>{clearTimeout(i),n(_createError(e,\"internal-error\"))}))}))}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!!(null===(t=_window().grecaptcha)||void 0===t?void 0:t.render)&&(e===this.hostLanguage||this.counter>0||this.librarySeparatelyLoaded)}}class MockReCaptchaLoaderImpl{async load(e){return new MockReCaptcha(e)}clearedOneInstance(){}}const H=\"recaptcha\",j={theme:\"light\",type:\"image\"};class RecaptchaVerifier{constructor(e,t,r=Object.assign({},j)){this.parameters=r,this.type=H,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=_castAuth(e),this.isInvisible=\"invisible\"===this.parameters.size,_assert(\"undefined\"!=typeof document,this.auth,\"operation-not-supported-in-this-environment\");const n=\"string\"==typeof t?document.getElementById(t):t;_assert(n,this.auth,\"argument-error\"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=this.auth.settings.appVerificationDisabledForTesting?new MockReCaptchaLoaderImpl:new ReCaptchaLoaderImpl,this.validateStartingState()}async verify(){this.assertNotDestroyed();const e=await this.render(),t=this.getAssertedRecaptcha(),r=t.getResponse(e);return r||new Promise((r=>{const tokenChange=e=>{e&&(this.tokenChangeListeners.delete(tokenChange),r(e))};this.tokenChangeListeners.add(tokenChange),this.isInvisible&&t.execute(e)}))}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch((e=>{throw this.renderPromise=null,e}))),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach((e=>{this.container.removeChild(e)}))}validateStartingState(){_assert(!this.parameters.sitekey,this.auth,\"argument-error\"),_assert(this.isInvisible||!this.container.hasChildNodes(),this.auth,\"argument-error\"),_assert(\"undefined\"!=typeof document,this.auth,\"operation-not-supported-in-this-environment\")}makeTokenCallback(e){return t=>{if(this.tokenChangeListeners.forEach((e=>e(t))),\"function\"==typeof e)e(t);else if(\"string\"==typeof e){const r=_window()[e];\"function\"==typeof r&&r(t)}}}assertNotDestroyed(){_assert(!this.destroyed,this.auth,\"internal-error\")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;if(!this.isInvisible){const t=document.createElement(\"div\");e.appendChild(t),e=t}this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){_assert(_isHttpOrHttps()&&!_isWorker(),this.auth,\"internal-error\"),await function domReady(){let e=null;return new Promise((t=>{\"complete\"!==document.readyState?(e=()=>t(),window.addEventListener(\"load\",e)):t()})).catch((t=>{throw e&&window.removeEventListener(\"load\",e),t}))}(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);const e=await async function getRecaptchaParams(e){return(await _performApiRequest(e,\"GET\",\"/v1/recaptchaParams\")).recaptchaSiteKey||\"\"}(this.auth);_assert(e,this.auth,\"internal-error\"),this.parameters.sitekey=e}getAssertedRecaptcha(){return _assert(this.recaptcha,this.auth,\"internal-error\"),this.recaptcha}}class ConfirmationResultImpl{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){const t=PhoneAuthCredential._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function signInWithPhoneNumber(t,r,n){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=_castAuth(t),s=await _verifyPhoneNumber(i,r,getModularInstance(n));return new ConfirmationResultImpl(s,(e=>signInWithCredential(i,e)))}async function linkWithPhoneNumber(e,t,r){const n=getModularInstance(e);await _assertLinkedStatus(!1,n,\"phone\");const i=await _verifyPhoneNumber(n.auth,t,getModularInstance(r));return new ConfirmationResultImpl(i,(e=>linkWithCredential(n,e)))}async function reauthenticateWithPhoneNumber(t,r,n){const i=getModularInstance(t);if(e(i.auth.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(i.auth));const s=await _verifyPhoneNumber(i.auth,r,getModularInstance(n));return new ConfirmationResultImpl(s,(e=>reauthenticateWithCredential(i,e)))}async function _verifyPhoneNumber(e,t,r){var n;if(!e._getRecaptchaConfig())try{await _initializeRecaptchaConfig(e)}catch(e){console.log(\"Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.\")}try{let i;if(i=\"string\"==typeof t?{phoneNumber:t}:t,\"session\"in i){const t=i.session;if(\"phoneNumber\"in i){_assert(\"enroll\"===t.type,e,\"internal-error\");const n={idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:i.phoneNumber,clientType:\"CLIENT_TYPE_WEB\"}},s=handleRecaptchaFlow(e,n,\"mfaSmsEnrollment\",(async(e,t)=>{if(t.phoneEnrollmentInfo.captchaResponse===k){_assert((null==r?void 0:r.type)===H,e,\"argument-error\");return startEnrollPhoneMfa(e,await injectRecaptchaV2Token(e,t,r))}return startEnrollPhoneMfa(e,t)}),\"PHONE_PROVIDER\");return(await s.catch((e=>Promise.reject(e)))).phoneSessionInfo.sessionInfo}{_assert(\"signin\"===t.type,e,\"internal-error\");const s=(null===(n=i.multiFactorHint)||void 0===n?void 0:n.uid)||i.multiFactorUid;_assert(s,e,\"missing-multi-factor-info\");const o={mfaPendingCredential:t.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:\"CLIENT_TYPE_WEB\"}},a=handleRecaptchaFlow(e,o,\"mfaSmsSignIn\",(async(e,t)=>{if(t.phoneSignInInfo.captchaResponse===k){_assert((null==r?void 0:r.type)===H,e,\"argument-error\");return startSignInPhoneMfa(e,await injectRecaptchaV2Token(e,t,r))}return startSignInPhoneMfa(e,t)}),\"PHONE_PROVIDER\");return(await a.catch((e=>Promise.reject(e)))).phoneResponseInfo.sessionInfo}}{const t={phoneNumber:i.phoneNumber,clientType:\"CLIENT_TYPE_WEB\"},n=handleRecaptchaFlow(e,t,\"sendVerificationCode\",(async(e,t)=>{if(t.captchaResponse===k){_assert((null==r?void 0:r.type)===H,e,\"argument-error\");return sendPhoneVerificationCode(e,await injectRecaptchaV2Token(e,t,r))}return sendPhoneVerificationCode(e,t)}),\"PHONE_PROVIDER\");return(await n.catch((e=>Promise.reject(e)))).sessionInfo}}finally{null==r||r._reset()}}async function updatePhoneNumber(t,r){const n=getModularInstance(t);if(e(n.auth.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(n.auth));await _link$1(n,r)}async function injectRecaptchaV2Token(e,t,r){_assert(r.type===H,e,\"argument-error\");const n=await r.verify();_assert(\"string\"==typeof n,e,\"argument-error\");const i=Object.assign({},t);if(\"phoneEnrollmentInfo\"in i){const e=i.phoneEnrollmentInfo.phoneNumber,t=i.phoneEnrollmentInfo.captchaResponse,r=i.phoneEnrollmentInfo.clientType,s=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:n,captchaResponse:t,clientType:r,recaptchaVersion:s}}),i}if(\"phoneSignInInfo\"in i){const e=i.phoneSignInInfo.captchaResponse,t=i.phoneSignInInfo.clientType,r=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:n,captchaResponse:e,clientType:t,recaptchaVersion:r}}),i}return Object.assign(i,{recaptchaToken:n}),i}class PhoneAuthProvider{constructor(e){this.providerId=PhoneAuthProvider.PROVIDER_ID,this.auth=_castAuth(e)}verifyPhoneNumber(e,t){return _verifyPhoneNumber(this.auth,e,getModularInstance(t))}static credential(e,t){return PhoneAuthCredential._fromVerification(e,t)}static credentialFromResult(e){const t=e;return PhoneAuthProvider.credentialFromTaggedObject(t)}static credentialFromError(e){return PhoneAuthProvider.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:r}=e;return t&&r?PhoneAuthCredential._fromTokenResponse(t,r):null}}function _withDefaultResolver(e,t){return t?_getInstance(t):(_assert(e._popupRedirectResolver,e,\"argument-error\"),e._popupRedirectResolver)}PhoneAuthProvider.PROVIDER_ID=\"phone\",PhoneAuthProvider.PHONE_SIGN_IN_METHOD=\"phone\";class IdpCredential extends AuthCredential{constructor(e){super(\"custom\",\"custom\"),this.params=e}_getIdTokenResponse(e){return signInWithIdp(e,this._buildIdpRequest())}_linkToIdToken(e,t){return signInWithIdp(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return signInWithIdp(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function _signIn(e){return _signInWithCredential(e.auth,new IdpCredential(e),e.bypassAuthState)}function _reauth(e){const{auth:t,user:r}=e;return _assert(r,t,\"internal-error\"),_reauthenticate(r,new IdpCredential(e),e.bypassAuthState)}async function _link(e){const{auth:t,user:r}=e;return _assert(r,t,\"internal-error\"),_link$1(r,new IdpCredential(e),e.bypassAuthState)}class AbstractPopupRedirectOperation{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}}))}async onAuthEvent(e){const{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:o}=e;if(s)return void this.reject(s);const a={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case\"signInViaPopup\":case\"signInViaRedirect\":return _signIn;case\"linkViaPopup\":case\"linkViaRedirect\":return _link;case\"reauthViaPopup\":case\"reauthViaRedirect\":return _reauth;default:_fail(this.auth,\"internal-error\")}}resolve(e){debugAssert(this.pendingPromise,\"Pending promise was never set\"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){debugAssert(this.pendingPromise,\"Pending promise was never set\"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const q=new Delay(2e3,1e4);async function signInWithPopup(t,r,n){if(e(t.app))return Promise.reject(_createError(t,\"operation-not-supported-in-this-environment\"));const i=_castAuth(t);_assertInstanceOf(t,r,FederatedAuthProvider);const s=_withDefaultResolver(i,n);return new PopupOperation(i,\"signInViaPopup\",r,s).executeNotNull()}async function reauthenticateWithPopup(t,r,n){const i=getModularInstance(t);if(e(i.auth.app))return Promise.reject(_createError(i.auth,\"operation-not-supported-in-this-environment\"));_assertInstanceOf(i.auth,r,FederatedAuthProvider);const s=_withDefaultResolver(i.auth,n);return new PopupOperation(i.auth,\"reauthViaPopup\",r,s,i).executeNotNull()}async function linkWithPopup(e,t,r){const n=getModularInstance(e);_assertInstanceOf(n.auth,t,FederatedAuthProvider);const i=_withDefaultResolver(n.auth,r);return new PopupOperation(n.auth,\"linkViaPopup\",t,i,n).executeNotNull()}class PopupOperation extends AbstractPopupRedirectOperation{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,PopupOperation.currentPopupAction&&PopupOperation.currentPopupAction.cancel(),PopupOperation.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return _assert(e,this.auth,\"internal-error\"),e}async onExecution(){debugAssert(1===this.filter.length,\"Popup operations only handle one event\");const e=_generateEventId();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch((e=>{this.reject(e)})),this.resolver._isIframeWebStorageSupported(this.auth,(e=>{e||this.reject(_createError(this.auth,\"web-storage-unsupported\"))})),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(_createError(this.auth,\"cancelled-popup-request\"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,PopupOperation.currentPopupAction=null}pollUserCancellation(){const poll=()=>{var e,t;(null===(t=null===(e=this.authWindow)||void 0===e?void 0:e.window)||void 0===t?void 0:t.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(_createError(this.auth,\"popup-closed-by-user\"))}),8e3):this.pollId=window.setTimeout(poll,q.get())};poll()}}PopupOperation.currentPopupAction=null;const G=new Map;class RedirectAction extends AbstractPopupRedirectOperation{constructor(e,t,r=!1){super(e,[\"signInViaRedirect\",\"linkViaRedirect\",\"reauthViaRedirect\",\"unknown\"],t,void 0,r),this.eventId=null}async execute(){let e=G.get(this.auth._key());if(!e){try{const t=await async function _getAndClearPendingRedirectStatus(e,t){const r=pendingRedirectKey(t),n=resolverPersistence(e);if(!await n._isAvailable())return!1;const i=\"true\"===await n._get(r);return await n._remove(r),i}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}G.set(this.auth._key(),e)}return this.bypassAuthState||G.set(this.auth._key(),(()=>Promise.resolve(null))),e()}async onAuthEvent(e){if(\"signInViaRedirect\"===e.type)return super.onAuthEvent(e);if(\"unknown\"!==e.type){if(e.eventId){const t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function _setPendingRedirectStatus(e,t){return resolverPersistence(e)._set(pendingRedirectKey(t),\"true\")}function _overrideRedirectResult(e,t){G.set(e._key(),t)}function resolverPersistence(e){return _getInstance(e._redirectPersistence)}function pendingRedirectKey(e){return _persistenceKeyName(\"pendingRedirect\",e.config.apiKey,e.name)}function signInWithRedirect(t,r,n){return async function _signInWithRedirect(t,r,n){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=_castAuth(t);_assertInstanceOf(t,r,FederatedAuthProvider),await i._initializationPromise;const s=_withDefaultResolver(i,n);return await _setPendingRedirectStatus(s,i),s._openRedirect(i,r,\"signInViaRedirect\")}(t,r,n)}function reauthenticateWithRedirect(t,r,n){return async function _reauthenticateWithRedirect(t,r,n){const i=getModularInstance(t);if(_assertInstanceOf(i.auth,r,FederatedAuthProvider),e(i.auth.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(i.auth));await i.auth._initializationPromise;const s=_withDefaultResolver(i.auth,n);await _setPendingRedirectStatus(s,i.auth);const o=await prepareUserForRedirect(i);return s._openRedirect(i.auth,r,\"reauthViaRedirect\",o)}(t,r,n)}function linkWithRedirect(e,t,r){return async function _linkWithRedirect(e,t,r){const n=getModularInstance(e);_assertInstanceOf(n.auth,t,FederatedAuthProvider),await n.auth._initializationPromise;const i=_withDefaultResolver(n.auth,r);await _assertLinkedStatus(!1,n,t.providerId),await _setPendingRedirectStatus(i,n.auth);const s=await prepareUserForRedirect(n);return i._openRedirect(n.auth,t,\"linkViaRedirect\",s)}(e,t,r)}async function getRedirectResult(e,t){return await _castAuth(e)._initializationPromise,_getRedirectResult(e,t,!1)}async function _getRedirectResult(t,r,n=!1){if(e(t.app))return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(t));const i=_castAuth(t),s=_withDefaultResolver(i,r),o=new RedirectAction(i,s,n),a=await o.execute();return a&&!n&&(delete a.user._redirectEventId,await i._persistUserIfCurrent(a.user),await i._setRedirectUser(null,r)),a}async function prepareUserForRedirect(e){const t=_generateEventId(`${e.uid}:::`);return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class AuthEventManager{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach((r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))})),this.hasHandledPotentialRedirect||!function isRedirectEvent(e){switch(e.type){case\"signInViaRedirect\":case\"linkViaRedirect\":case\"reauthViaRedirect\":return!0;case\"unknown\":return isNullRedirectEvent(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var r;if(e.error&&!isNullRedirectEvent(e)){const n=(null===(r=e.error.code)||void 0===r?void 0:r.split(\"auth/\")[1])||\"internal-error\";t.onError(_createError(this.auth,n))}else t.onAuthEvent(e)}isEventForConsumer(e,t){const r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(eventUid(e))}saveEventToCache(e){this.cachedEventUids.add(eventUid(e)),this.lastProcessedEventTime=Date.now()}}function eventUid(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join(\"-\")}function isNullRedirectEvent({type:e,error:t}){return\"unknown\"===e&&\"auth/no-auth-event\"===(null==t?void 0:t.code)}const B=/^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/,z=/^https?/;async function _validateOrigin(e){if(e.config.emulator)return;const{authorizedDomains:t}=await async function _getProjectConfig(e,t={}){return _performApiRequest(e,\"GET\",\"/v1/projects\",t)}(e);for(const e of t)try{if(matchDomain(e))return}catch(e){}_fail(e,\"unauthorized-domain\")}function matchDomain(e){const t=_getCurrentUrl(),{protocol:r,hostname:n}=new URL(t);if(e.startsWith(\"chrome-extension://\")){const i=new URL(e);return\"\"===i.hostname&&\"\"===n?\"chrome-extension:\"===r&&e.replace(\"chrome-extension://\",\"\")===t.replace(\"chrome-extension://\",\"\"):\"chrome-extension:\"===r&&i.hostname===n}if(!z.test(r))return!1;if(B.test(e))return n===e;const i=e.replace(/\\./g,\"\\\\.\");return new RegExp(\"^(.+\\\\.\"+i+\"|\"+i+\")$\",\"i\").test(n)}const K=new Delay(3e4,6e4);function resetUnloadedGapiModules(){const e=_window().___jsl;if(null==e?void 0:e.H)for(const t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}function loadGapi(e){return new Promise(((t,r)=>{var n,i,s;function loadGapiIframe(){resetUnloadedGapiModules(),gapi.load(\"gapi.iframes\",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{resetUnloadedGapiModules(),r(_createError(e,\"network-request-failed\"))},timeout:K.get()})}if(null===(i=null===(n=_window().gapi)||void 0===n?void 0:n.iframes)||void 0===i?void 0:i.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=_window().gapi)||void 0===s?void 0:s.load)){const t=_generateCallbackName(\"iframefcb\");return _window()[t]=()=>{gapi.load?loadGapiIframe():r(_createError(e,\"network-request-failed\"))},_loadJS(`${function _gapiScriptUrl(){return P.gapiScript}()}?onload=${t}`).catch((e=>r(e)))}loadGapiIframe()}})).catch((e=>{throw $=null,e}))}let $=null;const J=new Delay(5e3,15e3),Y={style:{position:\"absolute\",top:\"-100px\",width:\"1px\",height:\"1px\"},\"aria-hidden\":\"true\",tabindex:\"-1\"},X=new Map([[\"identitytoolkit.googleapis.com\",\"p\"],[\"staging-identitytoolkit.sandbox.googleapis.com\",\"s\"],[\"test-identitytoolkit.sandbox.googleapis.com\",\"t\"]]);function getIframeUrl(e){const t=e.config;_assert(t.authDomain,e,\"auth-domain-config-required\");const r=t.emulator?_emulatorUrl(t,\"emulator/auth/iframe\"):`https://${e.config.authDomain}/__/auth/iframe`,n={apiKey:t.apiKey,appName:e.name,v:i},s=X.get(e.config.apiHost);s&&(n.eid=s);const o=e._getFrameworks();return o.length&&(n.fw=o.join(\",\")),`${r}?${querystring(n).slice(1)}`}async function _openIframe(e){const t=await function _loadGapi(e){return $=$||loadGapi(e),$}(e),r=_window().gapi;return _assert(r,e,\"internal-error\"),t.open({where:document.body,url:getIframeUrl(e),messageHandlersFilter:r.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Y,dontclear:!0},(t=>new Promise((async(r,n)=>{await t.restyle({setHideOnLeave:!1});const i=_createError(e,\"network-request-failed\"),s=_window().setTimeout((()=>{n(i)}),J.get());function clearTimerAndResolve(){_window().clearTimeout(s),r(t)}t.ping(clearTimerAndResolve).then(clearTimerAndResolve,(()=>{n(i)}))}))))}const Q={location:\"yes\",resizable:\"yes\",statusbar:\"yes\",toolbar:\"no\"};class AuthPopup{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function _open(e,t,r,n=500,i=600){const s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-n)/2,0).toString();let a=\"\";const c=Object.assign(Object.assign({},Q),{width:n.toString(),height:i.toString(),top:s,left:o}),u=getUA().toLowerCase();r&&(a=_isChromeIOS(u)?\"_blank\":r),_isFirefox(u)&&(t=t||\"http://localhost\",c.scrollbars=\"yes\");const d=Object.entries(c).reduce(((e,[t,r])=>`${e}${t}=${r},`),\"\");if(function _isIOSStandalone(e=getUA()){var t;return _isIOS(e)&&!!(null===(t=window.navigator)||void 0===t?void 0:t.standalone)}(u)&&\"_self\"!==a)return function openAsNewWindowIOS(e,t){const r=document.createElement(\"a\");r.href=e,r.target=t;const n=document.createEvent(\"MouseEvent\");n.initMouseEvent(\"click\",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),r.dispatchEvent(n)}(t||\"\",a),new AuthPopup(null);const l=window.open(t||\"\",a,d);_assert(l,e,\"popup-blocked\");try{l.focus()}catch(e){}return new AuthPopup(l)}const Z=\"__/auth/handler\",ee=\"emulator/auth/handler\",te=encodeURIComponent(\"fac\");async function _getRedirectUrl(e,t,r,n,s,o){_assert(e.config.authDomain,e,\"auth-domain-config-required\"),_assert(e.config.apiKey,e,\"invalid-api-key\");const a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:i,eventId:s};if(t instanceof FederatedAuthProvider){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||\"\",function isEmpty(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(const[e,t]of Object.entries(o||{}))a[e]=t}if(t instanceof BaseOAuthProvider){const e=t.getScopes().filter((e=>\"\"!==e));e.length>0&&(a.scopes=e.join(\",\"))}e.tenantId&&(a.tid=e.tenantId);const c=a;for(const e of Object.keys(c))void 0===c[e]&&delete c[e];const u=await e._getAppCheckToken(),d=u?`#${te}=${encodeURIComponent(u)}`:\"\";return`${function getHandlerBase({config:e}){if(!e.emulator)return`https://${e.authDomain}/${Z}`;return _emulatorUrl(e,ee)}(e)}?${querystring(c).slice(1)}${d}`}const re=\"webStorageSupport\";const ne=class BrowserPopupRedirectResolver{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=L,this._completeRedirectFn=_getRedirectResult,this._overrideRedirectResult=_overrideRedirectResult}async _openPopup(e,t,r,n){var i;debugAssert(null===(i=this.eventManagers[e._key()])||void 0===i?void 0:i.manager,\"_initialize() not called before _openPopup()\");return _open(e,await _getRedirectUrl(e,t,r,_getCurrentUrl(),n),_generateEventId())}async _openRedirect(e,t,r,n){await this._originValidation(e);return function _setWindowLocation(e){_window().location.href=e}(await _getRedirectUrl(e,t,r,_getCurrentUrl(),n)),new Promise((()=>{}))}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:e,promise:r}=this.eventManagers[t];return e?Promise.resolve(e):(debugAssert(r,\"If manager is not set, promise should be\"),r)}const r=this.initAndGetManager(e);return this.eventManagers[t]={promise:r},r.catch((()=>{delete this.eventManagers[t]})),r}async initAndGetManager(e){const t=await _openIframe(e),r=new AuthEventManager(e);return t.register(\"authEvent\",(t=>{_assert(null==t?void 0:t.authEvent,e,\"invalid-auth-event\");return{status:r.onEvent(t.authEvent)?\"ACK\":\"ERROR\"}}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(re,{type:re},(r=>{var n;const i=null===(n=null==r?void 0:r[0])||void 0===n?void 0:n[re];void 0!==i&&t(!!i),_fail(e,\"internal-error\")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=_validateOrigin(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return _isMobileBrowser()||_isSafari()||_isIOS()}};class MultiFactorAssertionImpl{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case\"enroll\":return this._finalizeEnroll(e,t.credential,r);case\"signin\":return this._finalizeSignIn(e,t.credential);default:return debugFail(\"unexpected MultiFactorSessionType\")}}}class PhoneMultiFactorAssertionImpl extends MultiFactorAssertionImpl{constructor(e){super(\"phone\"),this.credential=e}static _fromCredential(e){return new PhoneMultiFactorAssertionImpl(e)}_finalizeEnroll(e,t,r){return function finalizeEnrollPhoneMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaEnrollment:finalize\",_addTidIfNecessary(e,t))}(e,{idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return function finalizeSignInPhoneMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaSignIn:finalize\",_addTidIfNecessary(e,t))}(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}}class PhoneMultiFactorGenerator{constructor(){}static assertion(e){return PhoneMultiFactorAssertionImpl._fromCredential(e)}}PhoneMultiFactorGenerator.FACTOR_ID=\"phone\";class TotpMultiFactorGenerator{static assertionForEnrollment(e,t){return TotpMultiFactorAssertionImpl._fromSecret(e,t)}static assertionForSignIn(e,t){return TotpMultiFactorAssertionImpl._fromEnrollmentId(e,t)}static async generateSecret(e){var t;const r=e;_assert(void 0!==(null===(t=r.user)||void 0===t?void 0:t.auth),\"internal-error\");const n=await function startEnrollTotpMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaEnrollment:start\",_addTidIfNecessary(e,t))}(r.user.auth,{idToken:r.credential,totpEnrollmentInfo:{}});return TotpSecret._fromStartTotpMfaEnrollmentResponse(n,r.user.auth)}}TotpMultiFactorGenerator.FACTOR_ID=\"totp\";class TotpMultiFactorAssertionImpl extends MultiFactorAssertionImpl{constructor(e,t,r){super(\"totp\"),this.otp=e,this.enrollmentId=t,this.secret=r}static _fromSecret(e,t){return new TotpMultiFactorAssertionImpl(t,void 0,e)}static _fromEnrollmentId(e,t){return new TotpMultiFactorAssertionImpl(t,e)}async _finalizeEnroll(e,t,r){return _assert(void 0!==this.secret,e,\"argument-error\"),function finalizeEnrollTotpMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaEnrollment:finalize\",_addTidIfNecessary(e,t))}(e,{idToken:t,displayName:r,totpVerificationInfo:this.secret._makeTotpVerificationInfo(this.otp)})}async _finalizeSignIn(e,t){_assert(void 0!==this.enrollmentId&&void 0!==this.otp,e,\"argument-error\");const r={verificationCode:this.otp};return function finalizeSignInTotpMfa(e,t){return _performApiRequest(e,\"POST\",\"/v2/accounts/mfaSignIn:finalize\",_addTidIfNecessary(e,t))}(e,{mfaPendingCredential:t,mfaEnrollmentId:this.enrollmentId,totpVerificationInfo:r})}}class TotpSecret{constructor(e,t,r,n,i,s,o){this.sessionInfo=s,this.auth=o,this.secretKey=e,this.hashingAlgorithm=t,this.codeLength=r,this.codeIntervalSeconds=n,this.enrollmentCompletionDeadline=i}static _fromStartTotpMfaEnrollmentResponse(e,t){return new TotpSecret(e.totpSessionInfo.sharedSecretKey,e.totpSessionInfo.hashingAlgorithm,e.totpSessionInfo.verificationCodeLength,e.totpSessionInfo.periodSec,new Date(e.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),e.totpSessionInfo.sessionInfo,t)}_makeTotpVerificationInfo(e){return{sessionInfo:this.sessionInfo,verificationCode:e}}generateQrCodeUrl(e,t){var r;let n=!1;return(_isEmptyString(e)||_isEmptyString(t))&&(n=!0),n&&(_isEmptyString(e)&&(e=(null===(r=this.auth.currentUser)||void 0===r?void 0:r.email)||\"unknownuser\"),_isEmptyString(t)&&(t=this.auth.name)),`otpauth://totp/${t}:${e}?secret=${this.secretKey}&issuer=${t}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`}}function _isEmptyString(e){return void 0===e||0===(null==e?void 0:e.length)}var ie=\"@firebase/auth\",se=\"1.10.0\";class AuthInterop{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(e)}}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const t=this.auth.onIdTokenChanged((t=>{e((null==t?void 0:t.stsTokenManager.accessToken)||null)}));this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){_assert(this.auth._initializationPromise,\"dependent-sdk-initialized-before-auth\")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const oe=getExperimentalSetting(\"authIdTokenMaxAge\")||300;let ae=null;function getAuth(e=n()){const t=_getProvider(e,\"auth\");if(t.isInitialized())return t.getImmediate();const r=initializeAuth(e,{popupRedirectResolver:ne,persistence:[V,N,L]}),i=getExperimentalSetting(\"authTokenSyncURL\");if(i&&\"boolean\"==typeof isSecureContext&&isSecureContext){const e=new URL(i,location.origin);if(location.origin===e.origin){const t=(s=e.toString(),async e=>{const t=e&&await e.getIdTokenResult(),r=t&&((new Date).getTime()-Date.parse(t.issuedAtTime))/1e3;if(r&&r>oe)return;const n=null==t?void 0:t.token;ae!==n&&(ae=n,await fetch(s,{method:n?\"POST\":\"DELETE\",headers:n?{Authorization:`Bearer ${n}`}:{}}))});beforeAuthStateChanged(r,t,(()=>t(r.currentUser))),onIdTokenChanged(r,(e=>t(e)))}}var s;const o=(a=\"auth\",null===(u=null===(c=getDefaults())||void 0===c?void 0:c.emulatorHosts)||void 0===u?void 0:u[a]);var a,c,u;return o&&connectAuthEmulator(r,`http://${o}`),r}!function _setExternalJSProvider(e){P=e}({loadJS:e=>new Promise(((t,r)=>{const n=document.createElement(\"script\");n.setAttribute(\"src\",e),n.onload=t,n.onerror=e=>{const t=_createError(\"internal-error\");t.customData=e,r(t)},n.type=\"text/javascript\",n.charset=\"UTF-8\",function getScriptParentElement(){var e,t;return null!==(t=null===(e=document.getElementsByTagName(\"head\"))||void 0===e?void 0:e[0])&&void 0!==t?t:document}().appendChild(n)})),gapiScript:\"https://apis.google.com/js/api.js\",recaptchaV2Script:\"https://www.google.com/recaptcha/api.js\",recaptchaEnterpriseScript:\"https://www.google.com/recaptcha/enterprise.js?render=\"}),function registerAuth(e){t(new Component(\"auth\",((t,{options:r})=>{const n=t.getProvider(\"app\").getImmediate(),i=t.getProvider(\"heartbeat\"),s=t.getProvider(\"app-check-internal\"),{apiKey:o,authDomain:a}=n.options;_assert(o&&!o.includes(\":\"),\"invalid-api-key\",{appName:n.name});const c={apiKey:o,authDomain:a,clientPlatform:e,apiHost:\"identitytoolkit.googleapis.com\",tokenApiHost:\"securetoken.googleapis.com\",apiScheme:\"https\",sdkClientVersion:_getClientVersion(e)},u=new AuthImpl(n,i,s,c);return function _initializeAuthInstance(e,t){const r=(null==t?void 0:t.persistence)||[],n=(Array.isArray(r)?r:[r]).map(_getInstance);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(n,null==t?void 0:t.popupRedirectResolver)}(u,r),u}),\"PUBLIC\").setInstantiationMode(\"EXPLICIT\").setInstanceCreatedCallback(((e,t,r)=>{e.getProvider(\"auth-internal\").initialize()}))),t(new Component(\"auth-internal\",(e=>(e=>new AuthInterop(e))(_castAuth(e.getProvider(\"auth\").getImmediate()))),\"PRIVATE\").setInstantiationMode(\"EXPLICIT\")),r(ie,se,function getVersionForPlatform(e){switch(e){case\"Node\":return\"node\";case\"ReactNative\":return\"rn\";case\"Worker\":return\"webworker\";case\"Cordova\":return\"cordova\";case\"WebExtension\":return\"web-extension\";default:return}}(e)),r(ie,se,\"esm2017\")}(\"Browser\");export{m as ActionCodeOperation,ActionCodeURL,AuthCredential,v as AuthErrorCodes,EmailAuthCredential,EmailAuthProvider,FacebookAuthProvider,l as FactorId,GithubAuthProvider,GoogleAuthProvider,OAuthCredential,OAuthProvider,f as OperationType,PhoneAuthCredential,PhoneAuthProvider,PhoneMultiFactorGenerator,h as ProviderId,RecaptchaVerifier,SAMLAuthProvider,p as SignInMethod,TotpMultiFactorGenerator,TotpSecret,TwitterAuthProvider,applyActionCode,beforeAuthStateChanged,D as browserCookiePersistence,N as browserLocalPersistence,ne as browserPopupRedirectResolver,L as browserSessionPersistence,checkActionCode,confirmPasswordReset,connectAuthEmulator,createUserWithEmailAndPassword,g as debugErrorMap,deleteUser,fetchSignInMethodsForEmail,getAdditionalUserInfo,getAuth,getIdToken,getIdTokenResult,getMultiFactorResolver,getRedirectResult,S as inMemoryPersistence,V as indexedDBLocalPersistence,initializeAuth,initializeRecaptchaConfig,isSignInWithEmailLink,linkWithCredential,linkWithPhoneNumber,linkWithPopup,linkWithRedirect,multiFactor,onAuthStateChanged,onIdTokenChanged,parseActionCodeURL,_ as prodErrorMap,reauthenticateWithCredential,reauthenticateWithPhoneNumber,reauthenticateWithPopup,reauthenticateWithRedirect,reload,revokeAccessToken,sendEmailVerification,sendPasswordResetEmail,sendSignInLinkToEmail,setPersistence,signInAnonymously,signInWithCredential,signInWithCustomToken,signInWithEmailAndPassword,signInWithEmailLink,signInWithPhoneNumber,signInWithPopup,signInWithRedirect,signOut,unlink,updateCurrentUser,updateEmail,updatePassword,updatePhoneNumber,updateProfile,useDeviceLanguage,validatePassword,verifyBeforeUpdateEmail,verifyPasswordResetCode};\n\n//# sourceMappingURL=firebase-auth.js.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useRef,useEffect}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{initializeApp,getApps}from\"https://www.gstatic.com/firebasejs/11.6.0/firebase-app.js\";import{getAuth}from\"https://www.gstatic.com/firebasejs/11.6.0/firebase-auth.js\";const firebaseConfig={apiKey:\"AIzaSyBn0sZ6XlcCuirGLyfv9314SvNWKwEWaD4\",authDomain:\"dex-prod-454110.firebaseapp.com\",projectId:\"dex-prod-454110\",storageBucket:\"dex-prod-454110.firebasestorage.app\",messagingSenderId:\"63687937246\",appId:\"1:63687937246:web:f213a9c49fec8abfadc64f\"};const thanksForCallingPath=\"/thanks-for-calling\";const useError=createStore(\"\");const useValid=createStore(false);const useSubmitting=createStore(false);const useSuccess=createStore(false);const useScheduling=createStore(false);const useDate=createStore(dateToDateLocal(new Date));const useHour=createStore(dateToHoursLocal(new Date));const useMinute=createStore(dateToMinutesLocal(new Date));const useToken=createStore(\"\");export function withInputHandler(Component){return props=>{const[error,setError]=useError();const[valid,setValid]=useValid();const[submitting,setSubmitting]=useSubmitting();const[scheduling,setScheduling]=useScheduling();const[date,setDate]=useDate();const[hour,setHour]=useHour();const[minute,setMinute]=useMinute();const ref=useRef(null);// We need to handle events that AFAICT we can't intercept via the react props of the framer components, so we intercept the DOM element itself using a ref, and set event handlers on the element directly.\nuseEffect(()=>effectHandleTimeInput(ref));useEffect(()=>effectHandleCallAtInput(ref));useEffect(()=>effectHandleSelectInput(ref,\"day\",setDate));useEffect(()=>effectHandleSelectInput(ref,\"hour\",setHour));useEffect(()=>effectHandleSelectInput(ref,\"minute\",setMinute));if(props.inputName===\"day\"){props.selectOptions=[...Array(8).keys()].map((_,i)=>{const[value,title]=dayFromOffset(i);return{type:\"option\",value,title};});}if(props.inputName===\"hour\"){props.selectOptions=buildHourSelectOptions(date).map(v=>({type:\"option\",value:v,title:v}));}if(props.inputName===\"minute\"){props.selectOptions=buildMinuteSelectOptions(date,hour).map(v=>({type:\"option\",value:v,title:v}));}return /*#__PURE__*/_jsx(Component,{ref:ref,...props});};}export function withFormHandler(Component){return props=>{const isPreview=window.location.host.endsWith(\".framercanvas.com\");const isStaging=window.location.host.endsWith(\".framer.app\");const apiUrl=`https://api-${isPreview||isStaging?\"dev\":\"prod\"}-63687937246.europe-west2.run.app`;const[error,setError]=useError();const[valid,setValid]=useValid();const[submitting,setSubmitting]=useSubmitting();const[success,setSuccess]=useSuccess();const[token,setToken]=useToken();const ref=useRef(null);// AFAICT we can't set onSubmit / onChange or equivalent via react props, so we intercept the form element itself using a ref, and set onsubmit/onchange on the element.\nuseEffect(()=>{if(!ref.current)return;const form=ref.current instanceof HTMLFormElement?ref.current:ref.current.querySelector(\"form\");if(!form)return;form.onsubmit=ev=>onFormSubmit(ev,submitting,setSubmitting,setSuccess,setError);});useEffect(()=>{if(!getApps().length){initializeApp(firebaseConfig);}const auth=getAuth();const unsubscribe=auth.onAuthStateChanged(async user=>{if(user){const idToken=await user.getIdToken();setToken(idToken);}});return unsubscribe;},[]);useEffect(()=>{if(!token)return;fetch(`${apiUrl}/users/v1/self`,{method:\"GET\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${token}`}}).then(async response=>{const result=await response.json();if(!result.user?.can_start_call){if(isPreview){console.log(\"Call already placed, would redirect to thank-you\");}else{console.log(\"Call already placed, redirecting to thank-you\");window.location.href=thanksForCallingPath;}}}).catch(function(error){console.error(\"Get self error\",error);});},[token]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});};}export function withSubmitHandler(Component){return props=>{const ref=useRef(null);const[submitting,setSubmitting]=useSubmitting();const[token,setToken]=useToken();return /*#__PURE__*/_jsx(Component,{ref:ref,...props,disabled:!token,style:{...props.style,opacity:token?1:.5},variant:token?props.variant:\"Loading\",onTap:()=>{const button=ref.current instanceof HTMLButtonElement?ref.current:ref.current.querySelector(\"button\");// We check validity here, before we even get to the form's submit handler, because\n// a) this button triggers a transition to a different screen of the form, so the form isn't actually submitted\n// b) if the form is invalid, we want to stop it from transitioning to the next screen\nif(!button?.form.reportValidity()){// emulate a tap cancel so that the button reverts to its unpressed state\nprops.onTapCancel?.call(arguments);return;}// since we've already checked validity, we could use form.submit directly, but that doesn't fire handlers - and we use the form's onsubmit handler to make the request\n// button.form?.requestSubmit()\nprops.onTap?.call(arguments);}});};}function effectHandleTimeInput(ref){if(!ref.current)return;const input=ref.current instanceof HTMLInputElement?ref.current:ref.current.querySelector(\"input\");if(!input||input.name!==\"time\")return;// Use onblur rather than oninput/onchange so that the user can type partial times without us \"fixing\" them\ninput.onblur=ev=>onTimeChange(ev);}function effectHandleCallAtInput(ref){if(!ref.current)return;const input=ref.current instanceof HTMLInputElement?ref.current:ref.current.querySelector(\"input\");if(!input||input.name!==\"call_at\")return;input.type=\"datetime-local\";const d=new Date;const min=dateToDateTimeLocal(d);input.min=roundTime(min.slice(0,min.lastIndexOf(\":\")))// remove sub-minute precision\n;d.setDate(d.getDate()+8);const max=dateToDateTimeLocal(d);input.max=roundTime(max.slice(0,min.lastIndexOf(\"T\"))+\"T00:00\")// set to beginning of 8th day from now\n;input.step=`${5*60}`;// Use onblur rather than oninput/onchange so that the user can type partial times without us \"fixing\" them\ninput.onblur=ev=>onTimeChange(ev);}function effectHandleSelectInput(ref,name,setter){if(!ref.current)return;const select=ref.current instanceof HTMLSelectElement?ref.current:ref.current.querySelector(\"select\");if(!select||select.name!==name){return;}select.onchange=ev=>setter(ev.target.value);}// datetime-local requires timezone-less datetime strings that _otherwise_ are in ISO format. To be able to use the toISOString() function, which always outputs UTC, we hack the date to offset it by the opposite of the actual timezone so that its value in UTC represents the original time, if you ignore the timezone.\nfunction dateToDateTimeLocal(d){return new Date(d.getTime()-d.getTimezoneOffset()*6e4).toISOString().slice(0,-1);}function dateToDateLocal(d){return dateToDateTimeLocal(d).replace(/T.*/,\"\");}function dateToHoursLocal(d){return d.getHours().toLocaleString(\"en-GB\",{minimumIntegerDigits:2});}function dateToMinutesLocal(d){return d.getMinutes().toLocaleString(\"en-GB\",{minimumIntegerDigits:2});}function roundTime(t){if(!t)return t;if(!/:\\d\\d$/.test(t))return t// Make sure it actually looks like a time. e.g. Chrome triggers input change events for partial inputs, whereas Firefox only does so for complete inputs\n;const splitAt=t.length-1;let[prefix,last]=[t.substring(0,splitAt),t.substring(splitAt)];// Only round down so we don't have to deal with overflows. TODO: use a proper lib for this, round properly\nif(\"1234\".includes(last)){last=\"0\";}if(\"6789\".includes(last)){last=\"5\";}return prefix+last;}const textFmt=new Intl.DateTimeFormat(\"en-GB\",{weekday:\"long\",day:\"numeric\",month:\"long\"});function dayFromOffset(offset){const d=new Date;d.setDate(d.getDate()+offset);let text=\"\";if(offset===0)text=\"Today - \";if(offset===1)text=\"Tomorrow - \";text+=`${textFmt.format(d)}`;const value=dateToDateLocal(d);return[value,text];}function buildHourSelectOptions(date){const today=date===dateToDateLocal(new Date);const notBefore=today?new Date().getHours():0;return[...Array(24).keys()].filter(x=>x>=notBefore).map(x=>x.toLocaleString(\"en-GB\",{minimumIntegerDigits:2}));}function buildMinuteSelectOptions(date,hour){const today=date===dateToDateLocal(new Date);const thisHour=today&&hour===dateToHoursLocal(new Date);const notBefore=thisHour?new Date().getMinutes():0;return[...Array(12).keys()].map(x=>x*5).filter(x=>x>=notBefore).map(x=>x.toLocaleString(\"en-GB\",{minimumIntegerDigits:2}));}function onFormSubmit(submitEvent,submitting,setSubmitting,setSuccess,setError){// Stop the actual form submit action from happening\nsubmitEvent.stopImmediatePropagation();if(submitting)return;const data=new FormData(submitEvent.target,submitEvent.submitter);const email=new URLSearchParams(window.location.search).get(\"email\")??undefined;let call_at;if(data.get(\"call_at\")){call_at=new Date(data.get(\"call_at\").toString());}else if(data.get(\"date\")&&data.get(\"time\")){call_at=new Date(data.get(\"date\")+\" \"+data.get(\"time\"));}else if(data.get(\"day\")&&data.get(\"hour\")&&data.get(\"minute\")){call_at=new Date(`${data.get(\"day\")} ${data.get(\"hour\")}:${data.get(\"minute\")}`);}// The phone number field kindly separates int. call number from national number.\n// On the other hand, it doesn't stop anyone entering the leading 0 for their national number.\n// So we replace `+XX 0...` with `+XX ...` here.\nconst phone_number=data.get(\"phone_number\")?.replace(/(\\+\\d+ )0/,\"$1\");const body={phone_number:phone_number,call_at:call_at,email:email};const isPreview=window.location.host.endsWith(\".framercanvas.com\");const isStaging=window.location.hostname.endsWith(\".framer.app\");const apiUrl=`https://api-${isPreview||isStaging?\"dev\":\"prod\"}-63687937246.europe-west2.run.app`;if(isPreview||isStaging){body[\"prompt_release_label\"]=\"staging\";}setSubmitting(true);fetch(`${apiUrl}/users/v1/request-call`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${data.get(\"token\")}`},body:JSON.stringify(body)}).then(()=>setSuccess(true)).catch(err=>{console.error(err);setError(true);}).finally(()=>setSubmitting(false));return false;}function onTimeChange(inputEvent,setScheduling){const input=inputEvent.target;if(input.value)input.value=roundTime(input.value);if(setScheduling)setScheduling(!!input.value);}export function withLogProps(Component){return props=>{console.log(\"render\",Component,props);const ref=useRef(null);useEffect(()=>{const elem=ref.current;console.log(\"effect\",Component,elem);if(elem){const input=elem.querySelector(\"input\");console.log(\"input\",Component,input);if(input){input.addEventListener(\"input\",ev=>console.log(\"change\",ev.target.value));}const form=elem instanceof HTMLFormElement?elem:elem.querySelector(\"form\");console.log(\"form\",Component,form);if(form){form.addEventListener(\"submit\",ev=>console.log(\"submit\",ev));}}});return /*#__PURE__*/_jsx(Component,{ref:ref,...props});};}export function withTypeButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,type:\"button\"});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withTypeButton\":{\"type\":\"reactHoc\",\"name\":\"withTypeButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSubmitHandler\":{\"type\":\"reactHoc\",\"name\":\"withSubmitHandler\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withInputHandler\":{\"type\":\"reactHoc\",\"name\":\"withInputHandler\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFormHandler\":{\"type\":\"reactHoc\",\"name\":\"withFormHandler\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLogProps\":{\"type\":\"reactHoc\",\"name\":\"withLogProps\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScheduleCall.map","// Generated by Framer (c07a8c1)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withSubmitHandler}from\"https://framerusercontent.com/modules/oFoQSIMw9D8MrmDsBf8f/PdOIhlx83U2ACLNobQ3v/ScheduleCall.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/gUcmazEsCeeus7ukpPgD/dQYkUbQ639kwqAyqrO6a/AKQxX0asg.js\";const RichTextWithFX=withFX(RichText);const MotionButtonWithSubmitHandler19e24do=withCodeBoundaryForOverrides(motion.button,{nodeId:\"YMIAQjSOW\",override:withSubmitHandler,scopeId:\"T4NxYNcSD\"});const cycleOrder=[\"K6FUnKkNP\",\"xWGgCj0SB\",\"ZDjazVN7M\"];const serializationHash=\"framer-HRJVW\";const variantClassNames={K6FUnKkNP:\"framer-v-mq08b5\",xWGgCj0SB:\"framer-v-667gnm\",ZDjazVN7M:\"framer-v-gzuuy8\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.9,skewX:0,skewY:0,transformPerspective:1200,x:0,y:0};const transition2={damping:20,delay:.2,mass:1,stiffness:400,type:\"spring\"};const animation1={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.9,skewX:0,skewY:0,transformPerspective:1200,transition:transition2,x:0,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"K6FUnKkNP\",\"Variant 2\":\"xWGgCj0SB\",\"Variant 3\":\"ZDjazVN7M\"};const getProps=({click,height,id,link,newTab,width,...props})=>{return{...props,C_p5K3wd4:newTab??props.C_p5K3wd4,Rm6zk7peU:click??props.Rm6zk7peU,variant:humanReadableVariantMap[props.variant]??props.variant??\"K6FUnKkNP\",vOzN3ViGe:link??props.vOzN3ViGe};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,Rm6zk7peU,vOzN3ViGe,C_p5K3wd4,o2ztllJc4,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"K6FUnKkNP\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapfedrup=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(Rm6zk7peU){const res=await Rm6zk7peU(...args);if(res===false)return false;}});const onTapgknvmr=activeVariantCallback(async(...args)=>{setVariant(\"L6eC6bHt8\");});const onTapx99dwa=activeVariantCallback(async(...args)=>{if(o2ztllJc4){const res=await o2ztllJc4(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:vOzN3ViGe,motionChild:true,nodeId:\"K6FUnKkNP\",openInNewTab:C_p5K3wd4,scopeId:\"T4NxYNcSD\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-mq08b5\",className,classNames)} framer-10zzctk`,\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"K6FUnKkNP\",onTap:onTapfedrup,ref:refBinding,style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4,...style},...addPropertyOverrides({xWGgCj0SB:{\"data-framer-name\":\"Variant 2\"},ZDjazVN7M:{\"data-framer-name\":\"Variant 3\",\"data-highlight\":undefined,onTap:undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(MotionButtonWithSubmitHandler19e24do,{className:\"framer-19e24do\",\"data-framer-name\":\"Button 9\",\"data-highlight\":true,\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"YMIAQjSOW\",onTap:onTapgknvmr,style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},children:/*#__PURE__*/_jsx(RichTextWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__fromCanvasComponent:true,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-spc0js\",\"data-styles-preset\":\"AKQxX0asg\",style:{\"--framer-text-alignment\":\"center\"},children:\"< Back\"})}),className:\"framer-zlpwa3\",\"data-highlight\":true,fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"em67KDVNx\",onTap:onTapx99dwa,style:{\"--framer-paragraph-spacing\":\"0px\",transformPerspective:1200},verticalAlignment:\"top\",withExternalLayout:true})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-HRJVW.framer-10zzctk, .framer-HRJVW .framer-10zzctk { display: block; }\",\".framer-HRJVW.framer-mq08b5 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 16px 10px 16px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-HRJVW .framer-19e24do { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-HRJVW .framer-zlpwa3 { cursor: pointer; flex: none; height: auto; max-width: 600px; overflow: visible; position: relative; white-space: pre-wrap; width: 100px; word-break: break-word; word-wrap: break-word; }\",\".framer-HRJVW.framer-v-gzuuy8.framer-mq08b5 { cursor: unset; padding: 4px 8px 4px 8px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 41\n * @framerIntrinsicWidth 132\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"xWGgCj0SB\":{\"layout\":[\"auto\",\"auto\"]},\"ZDjazVN7M\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"Rm6zk7peU\":\"click\",\"vOzN3ViGe\":\"link\",\"C_p5K3wd4\":\"newTab\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerT4NxYNcSD=withCSS(Component,css,\"framer-HRJVW\");export default FramerT4NxYNcSD;FramerT4NxYNcSD.displayName=\"Form Nav\";FramerT4NxYNcSD.defaultProps={height:41,width:132};addPropertyControls(FramerT4NxYNcSD,{variant:{options:[\"K6FUnKkNP\",\"xWGgCj0SB\",\"ZDjazVN7M\"],optionTitles:[\"Variant 1\",\"Variant 2\",\"Variant 3\"],title:\"Variant\",type:ControlType.Enum},Rm6zk7peU:{title:\"Click\",type:ControlType.EventHandler},vOzN3ViGe:{title:\"Link\",type:ControlType.Link},C_p5K3wd4:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean}});addFonts(FramerT4NxYNcSD,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerT4NxYNcSD\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"41\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"xWGgCj0SB\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ZDjazVN7M\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"Rm6zk7peU\\\":\\\"click\\\",\\\"vOzN3ViGe\\\":\\\"link\\\",\\\"C_p5K3wd4\\\":\\\"newTab\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"132\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{initializeApp,getApps}from\"https://www.gstatic.com/firebasejs/11.6.0/firebase-app.js\";import{getAuth,signInWithEmailLink}from\"https://www.gstatic.com/firebasejs/11.6.0/firebase-auth.js\";const firebaseConfig={apiKey:\"AIzaSyBn0sZ6XlcCuirGLyfv9314SvNWKwEWaD4\",authDomain:\"dex-prod-454110.firebaseapp.com\",projectId:\"dex-prod-454110\",storageBucket:\"dex-prod-454110.firebasestorage.app\",messagingSenderId:\"63687937246\",appId:\"1:63687937246:web:f213a9c49fec8abfadc64f\"};const unauthPath=\"/unauthorised\";const thanksForCallingPath=\"/thanks-for-calling\";export default function FirebaseTokenInput(props){const isPreview=window.location.host.endsWith(\".framercanvas.com\");const[haveAuth,setHaveAuth]=useState(false);const[haveUser,setHaveUser]=useState(false);const[email,setEmail]=useState(\"\");const[oobCode,setOobCode]=useState(\"\");const[token,setToken]=useState(\"\");const[error,setError]=useState(\"\");const[signingIn,setSigningIn]=useState(false);const[signInLink,setSignInLink]=useState(isPreview?\"\":window.location.href);useEffect(()=>{if(!getApps().length){initializeApp(firebaseConfig);console.log(\"Firebase App initialized\");}const auth=getAuth();const unsubscribe=auth.onAuthStateChanged(async user=>{setHaveAuth(true);setHaveUser(!!user);if(user){console.log(\"Firebase Auth has user initialized\");const idToken=await user.getIdToken();setToken(idToken);}});return unsubscribe;},[]);useEffect(()=>{if(!signInLink){return;}let url;try{url=new URL(signInLink);}catch(error){setError(`invalid sign-in URL ${signInLink}: ${error}`);return;}const oobCode=url.searchParams.get(\"oobCode\");const email=url.searchParams.get(\"email\");if(oobCode){setOobCode(oobCode);}if(email){setEmail(email);}},[signInLink]);useEffect(()=>{if(!haveAuth||haveUser||signingIn){return;}if(!email||!oobCode){setError(\"Missing email or oobCode\");return;}setSigningIn(true);const auth=getAuth();attemptSignInWithLink(auth,email,oobCode).catch(err=>setError(`${err}`)).finally(()=>setSigningIn(false));},[haveAuth,haveUser,email,oobCode,signingIn]);useEffect(()=>{if(!error){return;}console.error(\"Sign-in error\",error);if(!isPreview){console.log(\"Redirecting to unauthorized\");window.location.href=unauthPath;}else{console.log(\"Would redict to unauthorized\");}},[error]);if(isPreview&&!token){if(signingIn){return /*#__PURE__*/_jsx(\"input\",{type:\"text\",name:props.name,style:{...props.style,width:\"100%\"},placeholder:\"Signing in...\",value:\"\",readOnly:true});}return /*#__PURE__*/_jsx(\"input\",{type:\"text\",name:props.name,style:{...props.style,width:\"100%\"},placeholder:\"Preview login: paste link from Dex invite email\",value:signInLink,onChange:event=>setSignInLink(event.target.value)});}return /*#__PURE__*/_jsx(\"input\",{type:\"hidden\",name:props.name,value:token,readOnly:true});}// Function to handle the sign-in process, allowing for one retry\n// Implicitly triggers auth state change\nasync function attemptSignInWithLink(auth,email,oobCode){console.log(\"Signing in...\");const link=`https://dex-prod-454110.firebaseapp.com/__/auth/action?mode=signIn&oobCode=${oobCode}&apiKey=AIzaSyBn0sZ6XlcCuirGLyfv9314SvNWKwEWaD4&continueUrl=https%3A%2F%2Fmeetdex.ai%2F&lang=en`;try{await signInWithEmailLink(auth,email,link);}catch(error){console.log(`Initial sign-in failed: ${error}. Attempting retry...`);try{const isPreview=window.location.host.endsWith(\".framercanvas.com\");const isStaging=window.location.host.endsWith(\".framer.app\");const apiUrl=`https://api-${isPreview||isStaging?\"dev\":\"prod\"}-63687937246.europe-west2.run.app`;const regenResponse=await fetch(`${apiUrl}/users/v1/regenerate-sign-in-link`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email,expired_code:oobCode})});const data=await regenResponse.json();await signInWithEmailLink(auth,email,data.sign_in_link);}catch(error){console.log(`Retry sign-in attempt failed: ${error}`);throw error;}}}addPropertyControls(FirebaseTokenInput,{name:{title:\"Input Name\",type:ControlType.String,defaultValue:\"token\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FirebaseTokenInput\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FirebaseTokenInput.map"],"mappings":"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"}